79118976944030382434671889230114444331714351007130065663338203739600547223531733476921044366120694494338942726363308054527657214171229342573727837358920776455634042346276228486307876318497521412605405179904381937634780105684747396256557789259430860486013983397625515910680542934017613796732936813017061311617139376528501454152625951868238036122419807414228290484674163936912434662235059075132676967538819883372966486767864059477030978027117344804374219963413715836107343226410714734033100536025805702064924640639684556133049105530412891374909900559496341787166393034939320590099596341753036852029404099398407215202429988233931851206792561668002329268677684646620075867087346043689596275376976689763344080447085303869798685011273008645194287665323812732408198867942154056123021176977112499907715621954737435008749021636697782985241782918845857748681620746492134244922990229100453531635655692418626138621112200023738730312436944445259298831876245214348279488387622704046780159316691902437269571397750605596780157475453192906480882920032763872629245141809065422372136168795087548108957396754335364772095357778203064897237573019635316858589589305532266042697004775726047114483118997125516250287484434614219455556911197834780323785343675742965818865627653824531759977020112534187811700725256349983133347160669927805722210759886959409955492861032664491932821197088691784043345473246652621716920223481973107496956268975006720190166755063459373065858674823229614988159881820614662398730161820671417712333516976547284304146349375449513472699490691291867133411463072370659625620511718821831617108766352601367208510398374894624357695581673179809265312146752075491614156452975121979399519466453697484403369116484618684135979391728002938203858291787146729176532800819271055088646743065177450055626793122677686826729267126085202194623839389306290803718728671965786574963704280046685408752284942424830356926925073183109238516634690195214416745009800301692976102416194373652119189699556095350519936503975813948342309142732730915782556464813989339977615485507577784938381193876701236500539337565302124701525937030205801906670281844867691843896503982293869978587831537879356546347289611560948661638078717773473703079360928361393924032121332529305884299760371149629025182905911015835711530560870468524268877401729330642819198135063074270225716360392053252763309433513463371737879957344659746122125480575242420918175315761702761985723279873908297482942548102289719996229175108565179269286098400419560453950549227426572342224723617406066667502491810143398848228622127504454105953458976572484373318521205812015902213543114389600179716805230066895283783124455545136975263146761469266452623568821222675970280050741883162734618253971356902559511007275695773345357351727789763179064652890054179312107077657736344398011858306221218827749970405215065256973699653685529020701417004692391921051849230482933696496149500348943035629373413383426457581665203491652402969893651530289638171143714692252904272508699084708108471936731703964626075061858693962118675392403900696068010848078316356362235757880252647768105586769567967262679107515331852838889644254410633514924408209465371419102594318947005072407508363383611064086088476985594438822386200459170284819813785359395241212592526886857955622502400037563001897460649108849794154293080636770721223132932457589741152312552282098723516382632541876482162538558565698114851016965384003707497533614423046566131571156874819676621518428273522861859094237522672372906818733225454160678948880656508673504613391910991103163375417904559673659092129117457175452592583811292241268867655507579006150725313406424206559361289148674944537976338482134951391787992591964245542119171926064732960513065088224871892323614857757488853458074489703237021081956610898295797730030254155542557947841730625752232879808932931629677106124328521464140620478127914870482449216173316207976222962542784466384644221935190375752237478622411024498248844139632621799058870974236332949698395293565399693869437340290276483179570893821946704673575945190716208079685614601403329816635680247324383716142946334799636200256306901702352085773050124759467325261523500047332915625427798619331580351451190052595646602342423388613432468960002058136252277664219252717257309591419596261913113745086286542683039394532822830269372525899371759026422098828792991815078365364142447510245906496523741333727810159781186608736523566214927289820042482812186530556624077250584766994783672332922286573780657615118684388368626564255083837913339506948241034854060819973332703035136143742259526379718174077057758675929429397562995162398875392984765277696191290774559491658097757367119595223519427838972288331564875361058342485234017808113234345113540415868470088097758493439237770010325983338082026971774770347540585975291451589427854093636734889739456043841466811880772946978488177479911775654929290113678191370796432711166543439457040258408745686795731888353879946833336112152758861643356968924762003037986486794785339738081534392438206363419568843393839827960943308614142604990720300599944797051278575648366472474744374323842785229535793543032590973718295438745973708729718094102451488251748308087101214795040245950453706720686905718612908874121638583088180098779091500149265618135193130976516022653265274531048055922512479883565681830870275977527385014530350204321783093953845308968916453389986392438754500630411444415015649612570231440892826737635537734258419402861960844625445634360337047799045071508577117423188866202355771386722199041965649223249727015570907880697978644029271873453476322791668491926308550118335103038549492557275510889315234606495036351407456227688484647235707477191059495145140438266450026627002682841804992495895724842359550852757519090853993857452127581999229387237339511551609321829001150066188826116954089459761817678958366674446254674652033018800288897530494790554963717923094378293733981227841870616067442891104677327821250530260306032526228800902582687093362041672868732069601509768621031373139531720835312703228033925499131298738599302923141522760309132989043847288777932875899611258273952246475666902424771529010514138319382228253926806869663580977323806526337415617620608035815210606425210702354834835734975880667754699606640113026885393814608157328789898184296376488242671135665589408416373178977957867039723340522823547991947080059084472858618901572525096911540484992033679271943562189576596418658572130268480179838879076201709799628112414767601836595540092457316775688188113387366166758185038214421227612152774783245836357408708597593068642255196204779886770378943798670607061950995565231612390477742961647994186868380096638688387458800002865847958855169463711040054232844147082239276157333570964713318435559801504566846724962913507718762820607144703767433564590962605804827146637276278079156120117824542084697005472569475714867509046659896324725877415418500605954243488807235068151994526113193841175463040239846548490262525156992173907869496228620563492933486832785079488127188532976068234848291891319663906647181051923379006278148376398609128043496908443696667601404111087468579320118994393886376660703362747130204644373964652131645557357607745251845564988745220595085266637867428354040390881330039910582705468336164064681302891817372335717151130333248635920309173423305156715117427159014860435499590064255147981329427209843467379891520791832695107229690507760270321619960974097534188876896241174014093984165041633895287095762419856045117065270562011457000687277557762132401939023391632879527334625462538342639070829011705931447939662593802622601966246529668921042402820729352442225706025175862785544732331337578380370275234717114444751727760396363097235767432626213241253747969536879689008254333983538334762144080250765394491516042151388498132219469219416154693590266772377447351981404155396975623366303432644785676876188251485224508888399543109425993059597588434989435788252084598787202949407646446242744008113604950315825750533198338886698841557330136228033730378947828994815987224851633779006176577739886939179918050285692563843572998250187660123081793086357619473516036807929663265423183165130101188645378284090945247107472270517835939299561461268955182283825667474031576137615479921697140922579299376435279478729129851099614327626395793362864038765038439202285549800802346955013964160124242396418732254361552187350005243774341862274090214985107363187227820617141061182903288460779834599246677862343698877238578675284726717477593142453794522291041265447818877762000603565082367866918502985065160811266458253382304817487555464305998665883943315495729797069541975435840673008045711784397736217723735892455749056709628944348541324756853428421829834566882793067909451518771910909827622405194295879446094246073582262002088279994193826637228546342750409835839873601488211327624540229778253182860711684741295334538533727807172028471274110274791349995109524098368588478811409570578505766567129962307063833537425286049544291753883790760088683364010900665623406344853516576142011838243773259033854693720726004871784612239650543673137945884399073783806608625066890676612948856080979005875841788980987284175695533006676237989229509725368499345987666640839462722107186195403521166416841124160912335775999972104951158648040766725079518327668181643568058688474821093632493055290718792661515976259937040836628657947853353691569686866820896932206664427951152042660899457633568738477339559254223028747772395489953995206908343509681733929541833710152489760164253121395898766186423500169262705156906632431541986514339151332066485231690865351495286058047477098138600583004839415185125652071201058183831859472212713971495376442757574622835211954729002808820443156217495576137304308375741087964666719045707112163825820425480893562787423788927902982378934657649747459814231774179014924504500363939833898742709427906006249100141376471898817814328748982230405448723823747123155561155546035149066179076691794447022181538280027951804218380825086735055587408100175770141465762648521963911334241577520656266632888184392947729485140292336199204385543509711149915477898324547552874318578383979515573777865800164679445955965436561151745341929920027165822251377048762746845834534512701952449148372887804001149582392622977134790631317338699704253199933946934568548159282653024591516744606419002721469038719559410398873564453724692987441582381704849769322386935972973920735060147665425507436687299796567444211522774253481269312298950728050473924435533180598796610231774409768460168370884713707384868704224060530495055266139788446094957740774930237784949254207049313413427920059002439823884936322151520310378875188645819462347110866942721080505153465399345625185140315703404645799557397596929617036879751648722296734944737579569162717768572719503822552806635603917469895477736430332761154227019072789079182396442113535778479822473686188989983035322742076080139052267730967921984731274025473960385267235197168502664287782921419226755741067772601061744612308063662991900717683831302477201069686372615321402545767092478552522020986338928150145900847494563622639536465678869873798873447753466894790047616181721740428598379068292328749037459858531775725697270104259062224873584064697119690998386137716395243490656188920500732991762347607566614566608662573768092793190001118896730660129457436111307859655817246733710849797368754471519466006923377938389912962363758841240474903908526775960993555353878328617979077748480963874833210689230167534048544947723649760592677095340955391470299239620183673496256269917451579731108878055093962229227728785915329584946872604595236257676058399377157697293586624649759885109672669060811713603968577977198586532535969575831615670295831871844456484255220124496676949415411142084773775241740981575288207395228343391835504329473559004292583593640641377272222218043615707451434995365516601763092496513279401778602992455019875975373132543660113563101543871805253019780769673615231093169773983625851918086026671827601855207755812761278509912003161439952078847520021887120682930557234202575016331175329576692407779077412099930675011674330870822221813343488874098573189103617554020772564080464419871481168075777850095853251605506845012373417399497598996902219549737720879598552362838508481871450581295853262528571483150191883184712241816440537946905018360316864504125339950899427758394451022703172318336279195603403147856414990526994881785266005432476284417940487323002511079382413044155585880816301127897231983176192297317253002766518281893632308933591943187402315186397022866687809943983709704124950289473444174278326433139891275947464761672585812900700049564675206550851463006766923326618805198354569610353142385665790073390843304428991958368654204515493791917179409068107965202368847012181079662809325626348409678024229539921660454026661543408818261957277001671013267442431173836244331507074321147867093754708529481008135383760452453809231206433742577604828226464898097693287375883925763707286121234218064506506124843165080149216746524198868602089943630299950491934254071158919271716365902072844087080860494702574889754717140819029592085817577998375479534723120285820132291983636762485521704254143061560502972035603471694946001659743623270047944431360333170133955550699830811533701158457087804836881581002961831165918331714244437419360543874749802888461435467726302823932021524521601595549242548574909981303668208069635520143991765198545737744886942518243792911817982083230225778910170785337265782017246811994266594668540474450744259396248060932976050636112802924667741517194876360176517457657641731224188161558377952232383878693564661404121118640003917078618222632139148421131366316896851862609154381187792396356774318956190945390975212570089679815586829839082997573050328836646431555256954698042378614045655037854192343225602092674518798962784697829531610990590230189057165606132635020176601366374856857263973091164587576320694922836668493843885330619636593412718934251425007439142992013874487287232602149954061706389756072785344965336312574314770214805775308061856106020087629478146907528814517215617501473820658357590596335981889022483080659685335815370846954838554711016820821962050771735397491515306542278286028174753662890486053403847156808047305811680641437509013013932480681135016961779990837464269961288197804387806622076638531642613839937514661863323870496316468815642828861270370445957193773223679343941530568087924820596964987915831620141958592334561785954673091973500306369504133843003475771774601701545975184067540788387773371911676086336880761538213472522688966881288391853348485523432199015676972946472521979164631140809578405071838916053510360674189705321649830597574236297642869167400716530788115152827603045657034479988117586647627997022421688625084286745389352028967583251784439400663883737621583701443432392158434315972694287681101522573764750357024044816473854963462832917557535811995623176217192460545713065048092752288432856888552418919438153536152289966921729915488971791003110047914095795854684334759446073075648717569632796377571793232422693823738637461388772032072338355636197912072758470079174486030944895564068225195831970965083061461693123578689714220330814871816536987926662618702826975038824190159100065876607811439430088138260871806116917255582125546626922047163284923487897126852910693558913170389005233172728677810748895819958649179777415903910924768185516669061956096674551559421210466765011437647929817007552063596802652881131573079034538828897408751949890679320274312031163236341363614200196862697831486944033302551055800252392246199221617592338539887798583515047946499409279736374298791669577131843160315788964085214800628365794545825369047466867356034117585139189581758563595246045910836243517093787201233736264423109180761199862173820017788965107477210390938003241727792649718774700584721602113088584981722149827502514294800683496650064014697009881614644791156731497887367295866331217583190615055170772046503437304232655671025683227149324831103926589795826830730555733012834954838152330002025052160356495071899069882421720182037328272172449329104266275792054281851118692318853392724607390824644355978093922203832864949576650698696562150035470828500761913328101924888784612845534855664019946590633064654908947107658842053199424793705804162572573312196307711758902396689357767597616669016961540694899188578885189764912027989283864196301418412318514410394795095924408828870446519096623631225999959683139539351414342721573604534446980335882657183096543177592384891076679925371594342368033999090108355212261500952932462724233543973154419356401318787185560582864732890678218699077368013193527456938554629012239864510419131605533571982924302550242756342754010335651546071412672479480798851998652609910512769861193546351738703174870981630537819348838163613888453905523489814817340302653645034908280763731305623994766139957049102736286747871399038155849616380702974166940915128918784555247417825449477419913992178382974757757398916314476042593447612007714194699635552742539605235724939450726007701025801721430910952235883123817983829959853748683788001979294551339247261477888237297820212418622853658522125766423975601415369186699459670491657698741824398100264445832057445062038823098940915255495969964346899471284646327264582580349382190444821229120646952397573077022149668205250112014103443789114009470044153964149086451933932525111272247490552316003775306222211084394372407700503813515987900361270013180907924375306594423289433683272265940820854225615838723414057469617452006515801244788914739016499252888713802193954747340665548187146742495557734741401301059412874816431434350588381585465991572120596216761399428498906053993628969284127488771808816396421125770678834327103136981833147953567183311543716737542595821572225152676286148486836319063357239021133514821589295631071538261496593679195483596279989245527099104664231652635675897589986601673963643750020910637445104131044192833772553480271115596864093869665739434018503977999090454877353102346270280722168904619895545856244664438376792399329014098578408795115431090597168745053138705345491396626875678487555966877602156077845613242694551417139655280323532187981951513293100146487381089250462699467932418140021967364062813498183524330272857818694256511071769091893130040161201147798876367871312021991523923806879070366605395863037348074660576426145260392853756494465889775378454971588909835964588339071746573735754022555303432590404872517009485509808940598183198606300433194394081591732084226744138944856077670404659428040808805384538264199741894265709455132201293381781646111629115850286039258878864853058222311709900430757684955391091741190902102595423749991613506295603992434875819101957098702141468127729045181457202144104014902025699368843557439756436071479435644975689061825874656797777405147810102289837663359487349680141655804771105938247612683386196364081347406293305815548297998878262323480672279187784211665790908346088780653823689282162215864884251077157195678758956562799677335410308957059272935022499951573909470147850849389629272698214307926435624273655099349596994271350380458161550515275618278065727181122638460301346967681781343962542468636038582613420810277400542572594814936485615905278578490096594588227378079128418761477693872364575180977445608555727937472939285513885681307601778974399247831594492119870293163761755131034975670948173884884793663254941982531234848613283305416060350666035101453245849044513839965659829197393577009537706252819582445293204044437014501571163108110956946779830134004957289601829805776252667118478333497331417669388846314429775165455978201809021809829853395316948255593680006281509867946159862334594825540579748245315017905561852361385440964507287613917207522029101589174722297250036250988620713327914707808183983946671756204816774137988528331083920475138251788852825813566993973696394862309002600342005754060772764122184788912532986442622522554855063491320092007171181126651308347251639348558985483887339137959810084962563806582046302088950736401669970850278852306682449881094029965580195839209659414952506786497337728285971693488047762703200088521009091913598609395002161800011909805337736157669042328562858828759560410092437482066363299096352437644385795606587050653077558092922176605260031766920843731709951888079293419610298501786386283666493201484795931821250901145576936869558815922831558162417828819938354261711205124025876457801183248698554208628143730131162587622770059759358359792438299745241580168449464925987752791565116865488433408726432686577756214344966849288057097674271080334021681482745480269665996921559328995568544007319121200492429796897291475717826022430514091344296520326611813764235871364122858374790970204654149867245497435773335978231925452756141121626588837811579597598218732597324253281694957468755752541818239997193973129053342296529839911902613467490007164013632440261854285417987395137528162857030480528244856788536689762518914136471241045502545338853768474550018561267290006731649936420358963510413579492121681542195331319080668865638319968777912729715015614226138768806113723849395430105099991536475020205560457591377228929070814784246372879714352817205511783296647195223749471574376128001298739165420520031857670344613042182859213693669084096431907034067161642340702734393387389753252542956421603716518448173595201100051602065800619503946886121170787202529433495010301579086274973376045635844959146348279011108299594645614709807438477102051913932252127973783148257732432967902113506766823305601097038628644542363014309888076169388233200961514010961018621841113915718047836300519969567869974986827238700745477895796449764410383452527262278800717028289575649426004755212303058170452073899062563213353763610210213912495094079497762697704497461483017069140792010851219835568940672540792650352856372095943006888154877744446084603222434628573761625923341031337886833271072142030205697851224127053139777602294794668857540684076851761865848438312339358358131510127471193427332067413028039791970868886591035979770703682612302856576518828809581490628863745950282674587126092089982847770497078249300860901318178266316821561821334779171361693826349745066513787751488252494361035705280606411455812138338567607881641291926061133188871397587141677680474539946504786828977671909832728188138053442969337547094088350979759557768456194154493868066095524211517158263061703789773546846962791531485365819079376009687032002432394236314913794187998706604790041914391236691454675165476259665982086636781405630759410750467236774450596487326073899232529974636056079058747045870432709899394214964411657300549177483409584431749107115566166064470685984886332415642618937254291037250573617572990642011927894600695904451568404395350964130678468623114268298429737165885931028618446866038916283271190170508074388942186606412142232414685011194414798797396815592327932255137804105917141762069389956822476943454163962584006557782626560719263521654140128338935258997883608289618149281552655440900677704003873826550374998464450649402864121380923122823712074588306251887663329313804421685206637346802686757428205139102755061915355473575375069193172975631418218379437173179580165291223004887718748960952963304779084436931090474404887439858739429473849116843075292798551224131972687429871628480962206283959049024233775877082697029870354186291792527698700685342178708466132896491174698518065756682344352608343289258282842814982604464522726146909349533244063824563494165888745912182577681591773819866446883796484477943921317116069817143988441708916639079969752888555761812911957351358890321509651883109422768496706629128513679143268815953336017541965015615980060606020673004921158371172920824858306431842520880740496793256920623728298323287775988487612667311056868952172110590794302699490661230615572619779178459577126715947470486266291414670201305254554706550830283100417220805033602934269605565812183351334496198330338162921809211308262314431078585427809791901078697624455628674273201653781122132151674996446519591729706491006985630300881611800266283482426823987558254011475940708931377156220116445338790909791603353691970092652609087546433210612507278848960203637282862317608714540785117158089700443892866196871551173227389447333275885259597663257509628301863949383449759276224471826320013759106298282048077598351573147354727661446132437413523273413963705926569921759593253988719113810167880003538170410144994238552146334817047382425968656949835158757382023126162121966079146936273343509348408636087600786577132586157055663540203535988517918717243770972072841855885875482388535051492555804196518054530159794812037055271217326947935448919866384523087054044643182684848233567470831810717137930247311520002567337288065450785102155422740181751704078973632299805495300779735317503806757550853913107895155894198502618633294476825059382053874408086994179339561212569201498663921009871486547677102144300607079137120456634022052142180206746761151968077320292836330957171305848509411566525918051137044785280316289508624601046864371302667221672164467057627748366228700233131096628985429497672001514343523887039024043695092686622758905248025514228937789214851462238711408520211663475262171184908722482721289210959451318045252944612285067865117690617370200156370020670876265401090830357455548974224984288584919142412984959097950008732486630358647534276133592166393148991205398384923468432158130202522378679492544572107941308021041867161167652369472219126298080438091994899929969304840044339274166942601778500230977619094053809179333902522813079752950515232598617889260494731843763265229315993044707450184769344755508842506632015713889838510144330108420287033569143420771687346880707656820516924839399609363623344695286908969514718447621679655291343578508812337295831624720795429861896518131825080265014532577799640162229066266508592316373129744664761978387967732711985786610117800317241992948263445592903355978238852154480335511824944118424272776025693889271383219065154115809847327573735592295895550998231008706564122657442352655555824820691505969516561718328546578314049133812945770199524560700314858039333758330787890949297156759832328441035184083755363098345444641952263666515984760028657990678561852782060329121392762179778060319236196963428926107593691500584715481227387472637125235561520142843450790422720518628897075329670972522562187594305806128653314868716986154598489587076566660989164152684093316910996979467174794378979914940399812670617689962004400811263958762006699899887765455897326684024082217759219305735320962984132690010619634137678415136475200695517668494691915192755878800786114028211065040406762516266063108302891187546841208860485943456844673562325640141094445774119055181328668833966706117055738351264451070956497302356745693814234380434873922952226843008706697098214134728069180383599232334567208308972135059062407212203211589613161635742766464445334359890437266428759367294961913203140082631166418155149689793107489330431378224188945509403015602879317521673046628197074083492907603311456946866208767125925706244346003899894710876085640160743607099866474412593033241360160750729538600280454162128275340231643249150976708560758252959296719321098366257419063742044613163668005664899637331347956089413895627242379216915231086636806936513461192541890263397799205388241283198074299212216490887366584042990082317533453115576461768626797048889384871638064954710073157107207697676365974571712951894157253645382506159423245355823159161831551142039632184140892409574375020808211777870481665402454850029127290608029448674400336632529878357301998006686262091984812761545837352117851732101182086236603660488200369440448170713484620976885446267258238888325668266230711408659539010524869605053094340651556538448374911286483571008398388815511746412471371180366331141713729367671828759673105611898259111061882157430349092710765111271014510796257360675457923598654799663541762876680898511116517720561883242482385936190732936849539176843933713715087842200619730020182730167540518201213145284288898753638319059158677509811881831448477924359049241508426252748559577635037276731103146139751914132916985413042286910872644640711760698744689912132627814052618869734033873477314851258214073781248414991625943171076168682236222263647653173920210942441839638112969919614187972229152247993548221979242993696509039908566579386265643580165110555329026185396450335613120964434943746637107250512386852820933184104648723953826286121046028287580643632637233999090683838682634849805443796700617888977439645733341056399992642423145472342074203173615644657575641726782404170722124827252215465072672408159442825375068529195434597474839333485153107576691591917121483496566453283103362890910638444971078917334355771672906749282502323549912154944354130139019191966968884269778112794571562695911725430232378422220014383460798878752017070560507724993508646047333436062233081608955321486881805283252404113114401182524467630139720019918916379802291841842372463736263971168511126208260852255496824837599426118311344423415838065217110561364753418825304143268865726767979258282402025184707021207635719972883568570071652780492745646117720078893956313687389408090763014147236217665283683844903571645054545195391251238628061786820452383145033484900202718175836157699607536314659314037760551166357159270652610351388852503648995340318872856384927484629326195623431313232429990948615556551826143639160203658031940120573004043975968009583467039045030514233642424714484275851301336621335878847175114389335698667594747217355591766227181184200929977885614749919341432753382788172162037219765545791755912953737059863060547452924705522769175205105990783703379100147423247736507661512759171745407237349331702116356577238215017747620481585789057836141365921104253213628298723593753659984039215531330028536704124721783885627895804857619833573040931983494914919894028922674074174461051613446585582589820467445159764828002446016012402219351495674053604152961113909988639628555170959803421822631998424123918287767553264697728549517585021784529379936297060044726253808050544920096528434382829668104365969458115953973561280029631262175027222830611460177030784435842401678381004545613265833072105841623409597924207565162314605454161675111114900367062017708998261027622186575930935591945261687126970695563743952310851373753518516167471823572739074653741109752894999230572780945167964781717799570662536459435988914208533363906123253203881340864183815134548765849206593721959961250133574311727916315370290263241749055138148407912563660977443288048697211474323178670895901879469508834851111500906328031581381683249365737881947222572883699996609204241456541250202332746710872423999425943539592706310543697839063443866762472176269079573603783514167314631437712131387381156848253261820942149683479151729595934294537458121777026864976454827067856851248326538785725521541581656503541650501293661169113933802261312232186136413446042926086776924555479870163462022592169317919588166362148863654888179780403944830372488967031908976979490190145156722212044207236909606004873360363042473065989613553300036437091159800924946190811598023178114982405925568300685235194364085136704146685192348146470836982313383870870758525020275641184554990971272984493736625774565258805599841831105813903133468859579054355792676543675948818348640111213421178498059634764360549433651577769829153279658191865053771469156495964684995358901206049843820760786897084672798574822210911638293559754361729370253717187815973367736469637209887763107416864164307885993764690247617142037121684644886627244443359650241935367269898189928007802711734604238941873116130380879357134286197341859357739598700657330005129785837721654583511306649968871913780729052048582210379466970967514344486243419304993479166696825808599401125344247920829035249134023801197286114148365241623616477866233028687659316091583426852583552032360789723010230349088000716567549587775096150337276268545781190140528840596703930090954579294581153961885123688955890181367113346934347466638323252630604280141253383376943515464709618233166575641610218467542648192190951533590961575640676460660363093630685773495275460972184144246308125441591777207047326840968694902095925813026439075182859827314106289784061475098023283494772347164469343566166998774928590920801310239466473033674731385899986022921969046926700172175342032038118864659061492741889189862683202480503023372505510584755997706657863934868198899563019592592838613722542002756055018790866183585833496575924572617475315288984778774251697811362207479729431604111187197764432494815337961048376826783326261961012724360671334191988418336447045665344502835079858677130423942894961221190293601464154813509080726191208600236325298241485484966342386777746056104271813365010114605251882737506779984878135383008374922952311318357751524263211830430346199796497041421386360152016856668907771673707126022800628627728619985562610305659080408230855920776871431551048674337881788475723346564649333425119544388945042867076162440463460119160658773676984349913544011058923380174856249654407437892100693370814126094133852397753249239692518057735266168420181238227189670419160696010682100211727071255274421485018125746805650742980831487246574470394128476469610312439218933685348940545336265847720884132108607889857196000590418241062053734820141598622516221189829630218647969243729247296993870164269186879166627075463605271830709135064739716341442221253950775913001057622429654450986173226569476061273788717851370684031636518979463325941462441804530586220204979029968158605657008737849069641620315558647623408569343992860037892246128777129730613303523444388618581092948645053495167304874984052351898716463337873778405005056929081321025903625180793005790569957745184803616961938256068424721986130879004061633939182957624943447171066882960670210653903213176357112525353814828428266592519590538814401852189993248320061684846187671915168482357004951946053865553749937375434955264293323864081350771010850583175102731115589741318644148465764740928959531045670289430849483832464106560820204930953628156723148967515870893676129179956796966591349162198532559190248881124223754478535182667640736203253435533489503014486316062182530657352524090936801880661671491713114179331243628608771819912246165895422879416533894536644317655433445076737906926481828194730993796892858838875407016152057499094851264675785386523158457135851341665263782352829766511142734467628438111858799290425134023716317811908151297144227313795806985386330295398670826524276444921196606044626947342033907561273361478702394105196829071326688129482343194458360037572474213184250412789922311870677156383653576399773261383876187965268740208598675859824610539760430748678126396104428756589496171531401471693991560261538514846072317104073579561648052370320349983342187591085254764397020754972894048280345633060140311199870139922753043924091302336717783697281874255866216898883715021862069492771002951615175568835362319573309264414891686078148148769434228378109701332216410755792410375713017291081222224544516435499369548113192741259802381860690349372964509300340015513657627135382967783460860183440384631242424807441018887237832106827301992062557750290810539783927418695356537767203337583642898625532424127790750921790505338838494521260698171442516911637643343294915921581986091331636441059640325909305038122627255494403966457864414971858111860242579092592791998180383728264662813494035618430709030706878631772945844707182829238035664798824020124404509202857831363910200104481549231885722969945762432274808415270994972257164975591375718406402785797110105413129623194405264176523971574020885595908773245092119256886018450905705433184001623200422601581734459966862458383542905078913489546206477349558253102298821973443174466380789855310717657553757326167275723424133028360328380274099976854829041024030264159795607239818093211864228375346611941963390422139694783968755252536344438736087125819505934747944674429385351425210134908597099787445150370369949055736567488182044732540750205329450579595038767676722107027182247411436016933192510649568726142080145164695086234348141873239501766728808028449522188089200905870071255870304886052496772733859380518195305962966797863612187938772671511095806701376055294683555858024355514136264668075048805160724451971725310468833066052480180489654385560690032580981501266349523898911619442163981208211133305898326331443938853276706537842113924092518568376447384511762402713476441896845303866116217595003156644446521950011898519001113312492478776911576537112035468354048462592678580420240022652226472740437168600363544998334017298915418065734441948997667158052180097730056282765148525070067160716193603167909149775661581022839768113392922323792888290066101357977791735894370480726612009705826371421634549781063275984118811342484603545113037699600604207708532746666769317062268654810040859274637993216846670966752221601324435664201235562281025032161000119063982372655740067169239120442910837080224688013242824443451726764660815211383586551329313199151077608024304837302652497926588431503394692896026893292221261845157527454786094632044055070468786632966440570026410041978501883455957139009372163048266400673981414840499773504331264222553683051159111240569452386921674840142381131689273737259895589645158539161037794875484892655893234643154154190141062925001585233255990066768504156191367053557092416632472346787384713320604073053828409727237576657402494356645230926133694519632355531686021053568054108168954011097613292834739522047246715442250273465641783132104684336264462453699902901437163961572644871532778533041485434257334920575824031833396828113745043669672249088974754576287727733381034401062263839027837422160437223227485661437442045142617573900117834615929939962021982238596713340605393337629029914391259326264299354407982340902023491531968630125342595088932531462794595273751104563836137435397351658408592500804596931706075647329092410529575647631537942184769315092346570643352230840375337336343835350163843547891689018563679740291316344147443840945854632144258577177576984085749629789867857970301349700735034195451912319662857442202303389736770435585107969222176016117501362178720716402916017014129350301225627560541567862726840298676182765868834841430656531926614722499129499992094513194466565099973733919605375230090498149822047819429222671863284849233698922368999100165355096396762909757108045612693418468225285145629251634705261889244029923586503383850646808068878321609257044970516967107717773365353263870036688855492700270973027324644180821256038606195690416012666595568862142856723594045229914198615680846163706033475612582369812701122114938247455194365343753071947640463841807012816920923610783657279955985513786846259869214372865998623195902838123043485277130291032151482624634792709675311492831124468302962860152669106980645357406607340283887853945151921597551568647718204484204909225143083418357318444791393699683349044462761221507744051636564894661721697051281448540212578141500579419994402515076828603681978630575772431692554971115587452552930953554460582197144785289607312760855788812010183000223148158335492811473361199856570321954130311992616156364617165561012423921062585537923245687265412333863974521465497053758706247884257558157272657444219171148536365934417696410456229142308642827610262894778026129179452654301261216659011263178539571856598400231411208071387756873486610134791509607348236704359088570674237872004917184820504841516117479813239081843778748242442709754362656784996339264146865919046195129746315365195872649741414774659462414390540174536950910781521924620617817253907730269989253352091825964088059747847559738075344338445548626763011135826333885766675707805128361943958898946623175739485521993516347499944242132721333015656680367160330194123940951387069744185672651882593648580677540496236832252720156918112956211308806464963973354268010511489273155042097699078898664005602425683274622678769859722126617096963483705284957830865835365625074259834553317392367716233214697352290386522213978787133715671813819955821718046046759565441721128288218282553816213706285079513338951730751564879882620625986787787626368909813775928009037643563229878156088737546695411859593594611072353215768789881653509747972903424509561767971153995756072227067607994164320831157292784974890820156610805985920093161540960272765542535080173346278244887646643837284049106983063361956633972621660408730750752166735931915781595051370397102730324992526054267998291741648908105911168342803834776178115759775107087341589266071004478743181983312688537821340302327741650077522444856634046058453660802826463515715101531306936266749236915916401457766029664472373257467599455701908369559122898049132784596509458109323704039644409096732848765518670650142043651751691848988985974319833749568439796488773003640934613677824714671895939651570325409636995167025653755634360115658376154948460095626928488090553222734936750853716743992592564917263015886668474082006526222442953542416670100391273926317358683718924428937371650147978468910156080330976032363958780919580437961056610176354950060459792451082243727097469904162807942678990410374506441327419774093452426424279706248257829773863315786895139893229434433129507609953436811625876000503452609884665937131556648249956714418733325769559767290811061335766262338335868005478325934189291787191664416229209474342285326038020378903576158094478923670869233107548226466788138619935982682155444182678306294684296158621610089858392852992607645049286659742420492233901843293488993203717272030338886655858167669226542709458389957352605327544951769012831813946412501429942277937513310655336193212276439106513337528815536387934021586830730470463583744341282413299367425530873444560499737544602470393627035449109043005821884554613761984214074541592816380092628753606397794882287562207645536931008863729004775551341816239578269940264728049746821817004758894143135259878200872576808758742043380724473620317396304525271323299142384750204267124124725118038387732713091829271493870554570021641327969058997194595280414916336626885090064097563057688505870850640937612744203958973374152539271440256701168471897381940257094162111244165636481883055303461472233515306820620776154282507552899297404170662426014746328618253300595152111898195760955177205772163497861988092942698797446765824836228900580111340655210018592711631104561641297048791479694880948720797566483904795928138216688629844427761384972346209776476131003558946332161675730647143792262109342270452079577166034238709199150287853614019559628122506787218366651253821727349737425218919071451668283286839774825789275507249414354683850662514452391895631908366527794995098628006055624344145016095899198635880418058366459328124685872182657394897069658614112400481844957945172273674582602683232857919016090378360657659244070442223796999803700586052788995082366125929104314477299444147119197145275847608635590038533147856705720631583717421183070827552586595166014172182079702973129674006543318466621404457334421238202503923004818160689367256203614312671664288495475254656433260929780594038323032239116830723073078527490008613256670593217547572605281043467216042076829644665323968436081944602107647208543066137558441650803442409083079268375792846283126018831860073548797262354228605371144658891252145973045408161042010455897239229133987059627371351283725237302427225869111074642092273686721506376437050987559484792782182096672157154346818871367741798509510089956855711075277487130694070318719243881520908541931577755614588075306226270531874915679441907621165074746719662247721630068540654237182566145415584165179965178025720390941211432435026510917736446695951208219428880607057427299571514760488900165668790674876797123291869135305805631865193180399359487253804379664621385338619989163703876662466810427935905842186068017199853685572423603807380609683781225532969804300026846161383355896965559469907704911605644678951184179422243397892905344935517467027075291490695241576308421627602584793677827364593215182371920284635335397920084070381657793292629316463530024754188848848609617536142251121600374176510785406939686538616000247874588407105099286417272105523631541463358430961477656267399892611740332408261493429680969126202645369535559954776902160830333078157177345189960419837731508947826254848279146891562035474678366564278482913075971854235777327119145845629316623311542743687435149916836754566656238462432085588447755088063346352686007623453492285234250238598460714213856209123260515289783700164981135327278457677505672098775352330181126746477584801148341357705804173307906009781608620910081986191366954187815833289062655900813362882309504696707288910048848846824046964303314070955019704690542162528343002597521940851185643669853970919349662991094424503394730132369226517000148578590905262156605083939653865967464837921833910561581071694436742567734016640204710601503328649544685867421883365984826954060875588569842481272481213364112810769834704338035951709101342697778603230248877112131525799650277750670913539162940095919505682090201507925617495065890784701546038675340283349041990785271270413212817090559551308795097648890159394206650933695719029582847579236578828806792696727789398944821469361551489698458730921786666046321725209989857329299678355502298645209580410471145692961380009290846734909339900989497879633004700607606330953045512264937253291571802734406055061449287808951637728464712116737749527210909781289814075064703516067966200798668813165853355201897923409990040875979249163753563459872943578724011517041068341403265033725430028437616247917168040481807191449065383722901797549829471417429601090356877169436024131469076380823849578564625908328525285414857388067194164346298459378027752722232333095567339878090877177178229463553076872526718569457216007528711332252985698440919399696446210346691003815446414781797266821338112714857487561302726815681703222124833861098395895743461927400005149121649734634100450360925759057972196577880787546850882770522601610513560015010314842504395755586154453556208832080445033368814290670792391169175172137164070054878385788588664882381623962117839483901410133088045138849408390204385713798797004568567238342952441281055552464696973450128647676324310130934784380662376591125108754549449926771770059694706261375237233514634881097803402393002204052191303642301972990058273400604826977796944937399301912990662272941432731240037036129756845318802179149558354900472675988636484401773919951812287984014198488258252912675493877744308055710481422407140729705280130751987347478691199969632885868740855115257381736637716855129252915771811072411454094942205221890229052378788332026958993851511303670233512596812294149732270014390296364928853451737081431159999022846643222427538649097620022051177677088796993440759512064636691357045908152594843281320850024541128907824750690526456189673851486541500020648846434489560152749153705610311354347342146504617683134861838502325067885872350008697514422863915164877701697252528787095504341244686624329493334697531662139166792316887643741360976489489386325937378703045802066516955199541738531713740387353632390786900476763867026765422649755376885713057210343043473030489681650882396369218206982082486374195375185098771342402556030948753284287689429290440277390241281037642787585022708981113695525453000107753352013569041185133901423115163009444960087628089812694969515524812649134215666651271258173647481366705824519651612381162891955342792856593742981306638149714089660140746059611588702014194180893974380182814664305140601112733974151455696559961327675182514727286453813474638020188309537621196658107947316469652278208127464481214328561118796640874949325546119235682115581134457096768112667038530527555000521481067719353370558045057819924913264399127695056892479609107779949589737751955053405771544395823456737852967706043973731938290399522078239255143789113611454656833942029397972766571097534123685509649534397113817664587563861614629873612962688415100498348677106862808517178227538960379584706767148735297248943869005628691916178338635752235615247404082616104438204870684763593949218242318574245622636387028377874287892195504527607834731867209689845496079692910593840758167602508854858315782744640710531716827820078826521924732679104600122962837706092600851465294408701351171400766256869894172850338579790841164790616589873437401772068110639668069933638352092921558116110470354501769550707084974816835100924239015332043232647744898360979532753210046808824284125440439335452551591158290887626820339748133995590783055600386765331870556099043682080445432044213388471220367609697016253157726536889719791600444758029784301272201416762853739032402392964071279808977227493684620440360110237152977197835398194172092861921951159143195456886708794649345165846067406288956234377382359724390340868374136782416360248049608091323135302674498504134951363454476265737838542194416528543768377783845468782630875327343622331864339559191502081228605545103275735003281273831688001997898317383763705370655070413316046947695367867889408182601860492368482173130125828779735315275072187741276553901675542557308282941813108186996603834304876894064460076315950554028769244782006158752360428247967663431324701181482717777798939477731745354369289314596361644890807338749458363477672031974045983207922991862156681865161734187207641664885304530584354830918777028705832744901396617206181308491992313621618476794808747889970577548656823214407416273783133902805938178862307582383472350565336757560572044749156118170609695593554239441679382384334617351882668101933162877493019602630623975151259672080576127799775776283834685854254786653076632404550659853494890083150129576768840925843063169882180200942379556645122225182554970172395473515235612568866322887586951022958045315531463669094003622774609699774464153211728212313746420463853943820787700800111607042243223577257259812533577453491138862579726962922962879039315920737661167313534472807003196203125365027423356882662686478978871282839213622461252836525971173332282541997649736773397990110336481805358478444176154443752737526713254918196033462550741840615415031762138458764616254458361230409306482505252467485448932195880112829130678884789520015027209577607142754223837182938617859839215858419798845229281006535865302603491887074445877267151638866330799192977596469887159980404912638862297946950463929996876029518751780762120431273394558954377641188086538553895759367746228680435748898364068829859204015586477318679302774259286402375311949896920346013868687858440562107429309992512778210992534424781842631883082033707918139324160292386795730969833862461443788590035356235193915633174619050933367876843454098910171371770371762069854156221566653405301393337460020964462299479610768018816301288073784807141819905560759660886480652925093224401247897126403403706101151367603445047313415135813046501316980138602099851842941531122967623555770698193981227800125389090280495920507075797445768325555031672090896196848858831750484090607002327936945259677628513179814941159859321518522303752427604364514801251275400640401907655877800047340355692256579766511352835018018358660669486288628387102312149957180384661704950308731024610848161688953711285303077481364448313500203053654290449831360238975645876622431508112295977907509838114237293070469244723822033867832182007051818331367923613846285205077780775072110186527028304665482387067868306245139977444252516157219132062772566942362973943558963185339846499047773110369989534253075017312576257544345188603141087757450841938023976894142295964053925401313759530396099761047429063589100622007671224557399036050709737039105152842338870744806850829119065549966219671854089372652264733522767781828120451489027608157628484804261693286996763359196008565378226065199605194762808780010852945247535429653772152202506225358825008024340110639820819827900293156374629925085992104836398376016256536110837815564784144326641456094149488727348786322374846827596002208734543492089389914692052949519502150271927117194085221378266184256600674211619277615502410860224597494292564531361740549960993762029028039665329527009069331636333680500580424688114821153953281798866539394772149030875898763807282028431303506129696983571624149163701168637815338891643396786273980515936412001779183197793825146280819052483220205135896222045896500077742767443184292734724846734989876436683036092322876616911607422757925083053080006111978492868340749521990041690206775640223046167502011250533331076325118097781271779943011379946793772701813240718703639540512281890863048726076931700471049078868404629063314577467246148820412931323150679482233992024362902036589468717073243104809388951431832397573194271128652846343946691228798510526552523161595756514106746594320532164259818695318897868479097788919610431224961093031848434231715911282448092470246407055971792564649814733045541675242409753183509106728421484105631574979537850877209379387392725765895878926453991226397460877664297563968492009787393831369757584805296953579720354010272528792563886417453197008815273503577331738523466261145803575333817309298439730212917384961413443983883029823883661461493650159504975339177453958793881821763587285707860193267936210958274876498906919821613713362983113040357233271116744670455820568055170637324734874971650284439383030945801669072829850825357008709657030397516108591171105744220246243745644512595811272874064417120685125488697179187507643790106833106912635926318811053535320171524327634950963243332345515558690595165307491951434556009323827628407411725673532356641626319140273049306123708065335395933512964848361549369608932467186745284401171415521380864578694840526295776103839669217757307634869193902786660631336542262268525502123273356932453473457255905765268507722756572784550289127931373121660948949878705404725122940448116037756177838698607291349754910337638717634684672151240002543384770754020245376429499524207489512375071267991488883247883451478026336550312037668409456400301836849350197420846978038075274090303727441571799470431530599114003804902928392255288691731694180750749931105527253288607153073758980231906338286353708069716736983854438915301339796167406234762162990633214506802725199933350576809126653318538050335592483329423686555188303602476851586277048532949740165789588654461367546830042757597127410676171434698369033915277874420431342850043763052838420983523145353627161055559837775869586921164539821063411136788260119373538722064695857436581658956793965055836175931235383996228709036191304627876021674254494860294926850134310562801762235289366630059042042811497240325449391314126334436428881541376687622608332263739779937641879314792272701506695601115123755163813815968911808069595465238223978413680561746195517178448357258166102106795909878213729058576049247244588690571001952974853189225836151330543156882874937688563654417313688532342241509148221646674277594943618718611600365538554137438745190689698998046115451117554221974160697352423626499746187372166057041982599837866839310846518904106848165776449832357399267408573674183855510357503170200633721340269213666859161658734940271646427908970845688139932236834018259281483584693836493678623922147622179151554244491194097565330837751580463296204181242700252497890407179685899296826423281354569004528653234682341243241970945894916232119164165506964936725698580077259692822884834293839050850138621119223465220434878740239393360142703782963520934782929650634470111614188157257926180824361212914609188989795946931794226342586735854135447754272146358496411942381581274481191741899027602545706453996782586478266079562554977829788733862742411013814576755310691884884760476364320172090163804947382374074610683394775166299617715697345884059534139547914838298018837764926914460343450549429133294026233123012148156039606488028417377396746512442716974571156200942285906855639944466483767519491749083911383734992893249931558539072771539113671561256294921977576901919548257129074003286593942121623680808348564246147096349058555313873199942017306615964572002573693618945619134143676996174936058775808305403645490487747127346111106872708859778972013004125855091062134443561381339276368711488803070945839107666940106915199218581983469510163833030170654673800833225628703640809978514334973270846259829979260327959604606338764430175840158818414857707270724058871662750518724068461818859152549479780111884115483430773033463987870501205403175485718351751246918770938136288770520635649829373655527409465752852853642245170853776662330388804913084147233251735526025068778026065446913232638551502860096464861776613170812209623402527494992434682454279968734126890167267390032660718784680930022958360517320222581977424598220347354199654541243641986183950827721385654541550266580557128194044473967222526779438320427861042347368490348826505318900729016850230376024272775988520155606588635316977759914778293773778424859449716930862388296395421547922603543134162944060597529203681797320690148266787129764478308343942065709911337455487682314942766541456737701994501695032872305342564515462695867482415617191673206914779757970956817839918557970283783360975098167459884844098479412200984095749260422759226453365466447801918720377426840288480100762224611634187122438282094270962350624650086967069187755308114694932532092516750610131752276863731832103218857550422361480460966987555630442751865031426318437832224557815353893804459496232094670120202581246778964510751502606977968695634630783110764424909681402282816826926954571880986347841837353464820387440199314082112058574577961645814168724185859632771369889256969537284671205391821228244004801818455646427928244908608289596564726828763216988902932280275979414048145491303521775962367981718308561035870158733623700265986988166736412905192697296108130113723096239198566679012422219924556949106032592325708080215121347535826340881078480202105807934314862046779515166616205121653506748282509671841245803811343515519477292914326416186952252242947942830106205028294613385197555847113461422642819847344222129420517682573849098651758745627586633199814943775359026045650563694572730508454971998610487185985672770280504526378911943795110306822925840392609890384792411888560204134592312946177353651318451580445070424728791028540933345219365065451781396103432518807951998743587883472139436168322266780636022499261175272292172566953568707758907450876865107507004688431829084794966162495537134542103732329065008046027481756595544297706036246402709884053437934458572709481955378735626409477342852115971998286768124872978002015591773772658171694823584233131058192612236215159175449848921665268089811468588991651474461915042366876348636945636822876249436398583966570544731168674504557986886319120337569915854120780879166716473042257085034261335454470515485373720454440211207180624912561120509090595730163319204010684130193314235207749628843795093770402751474430937865927295501446937928779300416990089739825687653629458377737268608238228084177429686307269422747066302844286841837006850983935894054993744892277228950154310936762419003875136526208538779990537548985498951621013044847758385283867335188071501394912312837350101141933938088655560422439756868930726770206173634720116444098970568767607680795167352861096535347391523773602233750621441139350157932282997207498585490954927128337016495308380197114386704956626945723236205597824987446849606983420128581702687955857553286466114737773738601765671640574396167641672194288209550081158166348099970192742053593033660772126362317142535968406733945612704523687290347036016187016729696710790313218733160994071346915347129753650399142262975136323171412360368138971574619162769740485895421813832396548732393778307630323701174646413759498094183623723546996161051451894948887234529453957635530567198758453705889891170573053294227908220758141626490687091200389278959423312308295813945935703411819736796996785936707090311815846966471913559597370999313328603049522492136651028386635363999736328951353614813464226446615140030845616982937575566483779211884965518127786922279887444618535033366943406035554074874166353458960770650030521695052791836254457311026291970897570585179552905287485346108189622166339192518198201895230336693274992482080257051189774037108046225419375894877294265216848143907269256464294117002811974688441657350604137132165819674230622822532437823152883544501470453960949825040867145413707994252342625316276180377139608382200440458113472013334032174855163242543690911585285697251154453560725784756825141999406766172765578598511466166994243470440748881577863096235072550714583358273035993649351067377168166061190845413389776984344587602034783168180334807768834055074395326332441065022079357837843657939862407502705523056062244576869421959239502526429162809742574623572013017856838429237993838852104940732286194324499150066709358776657693088474791808877790979878375793585685459640132558211504251536698990069578880183463717137238298013009294400884978900116127505414697022258764522089636006395592312790371533155958222275140417028626070032323575279533315672307492137985269396387390927682139758527121463536354919712077213893580829278564742857797261522501425970846065619549015282021824647719674140137731442903750069109366914781422202531096367151631586873236411587362559476254023120964583182896516761708944752903814450014020749918231242019998138676125993334959079420541854870406833597153248917382423810180467175020569327313172202768407875154765873728605935419781677964039500822242262397273934876943917291126221123945027043627255028316595761193673017919406714915824045773800172911860345380585118245424430406606337268139579482134575757250004520400684355438463441208856195047411626204320168597820672987154632195399363703804272564255884601071674442885289022404147148566681953807421249907648940556450632016547647672141413515302127248922844810994936975780999488001102861186941860649290755342378097966666812841357961905888808657292086223483619999274694038248113373283355188092426349375500104830721898213857648246833924393529122872249852429639221183306589572872659478543061305376766382262852510896630811254564842021725821233452234577612447939288470840115914465373483293749593743218293337569798751952234647325707501909884928567717015643267925604610558236838976467795535330625117607380162211781780302229275812404438442807039793654563205124437811522573563267538590018435927785309586864909287031414569477139849131285476327492022886366089341152345742354522649048242107213002238061006530598248058854292961335110747142127739727690588386034910614078141535845173205510737381901314466851026580320228121373863160774837229989886598248971112419204751897427578818490130755183952495928684334937081275152259137849993486423277183931444550635779095663761505794160150781376326165692634060334565560791258292927442985420006259613479596240648000197442251530417954513878128855651429669373726430989688036229062053912696308880716686269029007267308912255980840598726375592782237236961995622497040640759605446238422388270631640302008163150013835560173273111273669053564996905431216711211080059462358132355865696957877609503574491009301934871081159303499435678691806265158703289586695596091064539503924640033592356090138852244139303670590919920518887575434318863050010634763435952490189981093920826754400245673922028540706073084614612931799237706132494706473794946652392248801580395238825952126427672264657845752180001999132810700032688294739901510287328075677460730640082650723372261275664104844514136785650426993620157741266705085321118061144099048386510159050107635271495608027783964429633148322141206625126739819220190842117783851586786784606396367451762309387867597196028111598705548363797339365681669752919121810824654930874220690006813332358293629247631592754188278144145312352520399164221410580544498850665732704487666037505991297101531527153328664983653597868571236945648205090132009355874717773656810342500901070115748418924421557328608389672279835216125440863367662385200609709310368513071288653804335157093764877255447766814980159031555844894960526928400335259762375062582976340004156216194237966436755281512944656064174431480354521664453682247058398558564662162076627671600563707135578026916943094865836109699607584010232747818341906856358614072862155547770250791933219701245306968592187609043001644681337169317057286991375147401071296487747500984289483692485115532710313613258227392416506616098509925569166392292115597499846264987662890022693146227251614040983869305340479366711511159204591317569105954416923965819539108982960162225230677532575100128967846413582767452660583425442711241481758026607194983099665341396905797667763953305788238501173422623180292212296245560081198286060158141770764734546970249072712563510326773262963032898048512181669417605407015675466463364790099212793905819767548123196217144170689875401046941246645200183422618931574396133039092701335877184833455425343522383021071042826575811372161729635604357156635021182760661540171907451781979459757989683034236691560473473857337876114040290346177939000260111356156466208791467053937048278156071532720381774825764432020606211867996344453479877977390102385062141248549865441142177581960000679448738221167355903957431207028448414758817353912998074657963630418536678567976196428722036853938834001254917631431161212109587972792006049001099342285632327594641153532030780465067163105812554597444966101286865783269970934327803092151482342937642963727696428611791625990724441997245188865255621473394879313617367583935829785561104945124582659570693772326178054922189527829426214486035739978194847410282350273602788612028443831537358322516681707094812031945393081889082738897862262233681947705305245154507884067303919343776104621201329485944596826080274609058959088036934566893203766145335025752310886063901954084534082841450996133387254119468271052221653578193375086548792856906786984849369953889259308182727036029413195431873778556948598724349418814108663247530132533956834393999162485928893626245513076887169932784029761947262035618098030249770642028966332663829195166070231911708169340914150027416025483740036256193012189983377986905540202880109253483412365706098357000338006312888027843470521013702902028686234495700045873706439352499974191337014822917961268199177076078075519710512862590272239652245588558076730950879083135280985521508882677022386139632182832072945489911905848976866672858352384448336372604943587136574992606182689363470749446843113112646561050042498756408549214883266007849684575222854605107214607465129299080589589668378768789257035148758441077531987443643499911736170055184921136736915032327047888751579012135382484135924016576552386205844331812954622224222575379297191153571617279561825447267577667351781787166910617250707350911894776411026798107793795479447851445046639280975277133267171735181405435618130685323758985458477202851141111290201350541258879117128054487159246141241793284471480647427088638776678466418989944480201914826947162484358177930071046658261569569312634362437391122701702681921081864131524665926636654890126042648544965673462805461896202898920872411612215378265011973030095615801616314288988633039144834903544801773834709860685180078394380440279263592509784726071371177579585817267164314426882606596939534386317003241969588793444364404360927748782840828739411021470894800571103692140943622384636821572235608116264852480954479366668210368691227953585596886380986187243008934501066124404729286542433185860681073050385275139194828446092285548213438049258351284542963038051236710953947277324984703187578686711844838179805756094300644255968459226604767450071476798600796071467309024233793778668552896214663603385335067712690140215917445631520567627492013530048057382044343927253810276278888936426806961799032428053179608828700463605401966141346819872826474341415446563734411295909427981791411889448505291387535021464484127384496282023636560419974160011844561253553968989526640178831702154465444717849024737001628682491701885423288935047270220367489621106609782747741307584819610174692326660628375118159249195094229848042446282749985740285556649009035809164300849000770336538193189047418353265296231432633244845822955802417322204067154487356963805974020842982299235550141977293113734771922091555876668686041119482806747821705965439263409221306422760057505543787093005985146898104920399788130124653283276923771473155986861824824757546482562365266264461061299283981051404636215505444580579870416456441909433690943661889212215609119619801856611489978877566450128971868010194251788158647578864611083465854432267096411942875278116088857176786664630769460601857530677286440759249658929013920684898169850694081109071135108406518720186632638660354729934740023384446951458146632320445578354878108219133280950697187486717070186903681140711080269116160357966430765117038671044143569993420435117704685758682132238971314182489336685107846895937812128541604757148052135163769137344401375566223839699859209941116456255614819818834209572417286984862415224391573404808066703736738057368136292275353819697654108583978987903084010534180382884082402689948742509712887815052263320572922686415805743869324691072026955480283258234209364840602850587684256937435365086710672666102962447917697912018837286937529594899933412901981780339951820563340310809399039335616530763050994101032492729387479485078050610634611620550621943190255768646236556942299072201346443107914304965987526600653973515118131931631612870288635749977587795105104314571027929004913942486548338166560604221213941662409318441886117551030783224273099572607889242885648823567931730338195432503471429971484448803611728167968718563708320326457903948810965228847957487957159135073188993106518161896852095402831766468055833543926594084326779859122958838429497909295212002826397112479801226623971630375190243205699644489251835813663011594834718916802906797869666255829909548104711780770302912715949236236839210020203090166439335913729842121874010409552164088314110610676635747118306635708380292715329106940486217007785548286362958457162284282515019764242697913264530003077364925965336030819634672058972762284161284530334571778773124557430704280636068480519967999783708669327182500623893944106007145768169998815777320380603992067985764661519282407847378197691105996944418503704215628089451181652702470976416632160469542036815549468213017708528715559179635855068091819279824897369195817775297303085027830600432329639508672066348098945104154711289905240854250879825439502824805532188435894792037344429863798046432838368358037105759108486286364309358592106748051852027289455662711232845453606785645963344436349635418681379925210669402975339521015460581367379731783963009206154698161786872817355642345994192911730007988244574478297327729253021515695367976581308026594880635290642970600773224032562073289997622411752714707816889023365409542307331047399674413855925941601240041790958087184518013292172882705607361565276197136145814857699726850077088816315268002521030886611950976954626784450172347784247706538976764625017305653973186593086482927903232394624225973169200291757021939936306378200889068503498409029464946004619989413082460833907736574153890708200492435144758608073544086084503173634454457431766114341096993198655364623963980807436948787373282761091204457870294629914550993606947265074282270340684102473278478958176869841224136571361333433812858228603076527797032936000422782778485170042242693746938184756961297815604706196645761052772051902680798033658490060067461966107889378142350290578909240952443701283376811348821153516243474019984207496188515145342201385552141086638893864509841247634579396466072605674746861836657255611943756881159195281782384472813655456148076167771218520479363033911244956785254548578283318530497106641687156017241449468147934204037599091279388541199647819576332619503408851237110082685745760076863574538555196523236010576762174347286010260154156188146555152407504218168043335408649927451227011883717846428506252550162163749392430904624630514409713376323334996112881187879250479444597215433441014313262120961939904865002912036896830652467903046164861621318427306047810152707529377068439704750106871568293236647893492171068140545371995539180350289476721438030165094885292247558357351077817510168655111039696185226387815374695373515116458391735325376364815434002833012252594442530305547036157284019776998633453559969038444530523096079927860015636993359453764287770195756483213734923580194257528189783926332356981074081168625689748895297255014434330878481826505695845270910950841195171739124988550176865459128238688031868064873779993993247046614175100465208099159383168706889044548790279733222697806580421217372476024550333207918232157172842386202333242231264260833619295062062324223037648240042307860975012177037313464353583209858883095025254476958237499482542840239419523967484875324941148857793014470807882248729581484838561470601835701303504473197079706441182449410070497901912674387359797007015583431328507887312260132237526888369596665955564812153333016380364315706736103954021811234602440269396234373692647209686619100007769629468263282547378903380006129249716256693869730363566283252195990957559638192022519750084100467577061989920828385861701248661157130882881654164817086393246265266835255734381211336757045311733512692485610709995202334135351374962085032534290222122654511059118197872380009554281220876399383629032116156647907853021242563322214804634054681013111911382052615667162695382954839916483903573865294298163876721096054084942222544127772376430728205837948901818185465539358008883081434204768432507715256700615357425371634096060908499665678997796238963293569096696205042520798578911679422517478354239305810458409755380998256734283417312951891287779611733057185143917479857163249683712552351112779011511143465130315632845093612526273190964803888615620338173589653200338214302944318540099310498885872312339890805203427361018389648434486466991137390101991224455425411797057094571318745100086219204812005348876544534622421404581411319576984196145151935403182711451213685904723108554371576037477402133094746517340654573157594230656490908170474996099834591896991076627759538890714720338926098668799204686604929358159507731456047173369346448649461834483200582477137642832464784026302223851361828858297182268616576103064812437987832274452587779944653066801814155841847948787517547146526376668359411853620921930240521546273033452996154270809589603836120161171198414577260203273913675945102129200768798131559250599204570761491332412330596966528487955936765184903362088527480380767709436167509712443034755220522992352057759613731004070956073748972352106633611017837906530177637215608236588068266522229335164397347209424337839113498829866570611577525286858019690869409867312531087018868374375910574212755282957172570117950038974408907246881610354679323098846828469187703173516341120267918355802585033557385952727677910559955646271128321599866599323752692339059767374629010351967153182083653388363631417510360530242511405923401781977487781130384379841738201197024765800641930286691726933552851399435980552182556721643252847878558883343542438292720578967916423119116021047188368600379811706360402782774921858576217190587472743581764822214471785717556391026736124154851297553980593657485852119422946397367449847653624718324932822508365102349811815289821143123696094404865346338459630764041611994199004085584463893865806809614134138079247984450074353052487437547021594102572686976103440933194731165301697316939576735568222998183241202828503294367193140551276035433386423757411727901071850776749639880081346758825049245010859578517164121466089639702964908134339323458883495587041690452660414909249577759928460762119368208240872123414991432481562184693649959672122320473065216411336157632804550532504239294193569550182067833250461316043351019662411908944484476834668441363873892168935011585096231101532676899668024937565045305156688169840114755132939182677533698729318506636397964209177522691694391866711447354476594600967532228542049910310540508147282214471953541209030800466989679991027540639698826008219369479384871600588993396709494647117187225863456279228853532511741972981107701576906357062222103960429002107550738163887132477380761724231141161854703612971989203811689564478886153369173723944812253388725932859389162170356121999338298900918883107680645383172739305000759467768300715654990171917614596202061404566021233860345313667070319362926969699079858434559725304586678721227091991121045013689464121272998403622323891454398986916934265543032057012779662378672023250585455685021151426301057762577354960597762284624361519196036477988936757276152180510173012938832684144437130882912585346578305317543168850250469774906480710519815103934509123599446278524166427270525980376750276643120778679197789431315241945140988696174652550656776459172444379246452640036485111063029966959657644011261871330735726007245364120722507098505253457215006076326211349476350620404142099093184613649975838992205223891336485817949592500295017159874946244519186226050175695545771973469326733204494602116642852195755689444494969298016065777109556368566992459376107019232457939070622133121082371300872158581185454107310639469449234195206497275864538342492341387479241710847840678554330218003705368273509142675695877277694173780103889124056322597415156604499609214688128883295891528945666998607395377154340061016974801550710061981947931244007857865349053441073613828761771898378188552222209679665918361117795133100198681784920565735078463688650381238043692254487595109283695777167307923479788274615721573287126185209525110938048754263765601566591037875390404482580588233246620040103529631882408530424718415532656073121328248691685168988691272948079465806516364998801600473797740360034702720287016339323671792054017843525204818385820452563582848241364432841846204311742611622471126996668894532195718828657734401431919066151158293858772169800238969982201328061833452528347735846354617113421597885498951189123862137217241400813569893625449146286650805912093761274067226573105194767706075588457540481086141674306787074157108332262795336470940585917963135391591679058247813471267571949246034719289078859669021441348908821088300540866446303801224579759007993537588774354866934704438400352003582623897085861868473282158613878397082006525153894252241777146800718891362144259558374724683257712714054848136910955194894444780232613794763995974797858168042645311628870530577291089458531183842791930152116195968444496329777326628974160579518284820893041328000054844599265237096134041287245183287055192768655107996860966337223549276546220304795647874334757603081464482496558174527035150497852104521646958302054495041015144485155084874968517531433446589060664685333588746074568683656848994740816677618453895021134281894047364982942897409693228579801340160818694518547458531930783384991065136540490906853828317497735144653866329702772333688534933994678016717143230405966538387827188651092038576158861742009847405728065790961937673392643439485005593258607336323007622362085963587130364291264802015399073803493058230651120549508971510398083575818723362787646240718774258980423494680620687913283709411250990479191780707243183208459882061398679959154716798778162649756148674697906386223714420912876381721241260870939128893090862910870060849644448590543152696717363724234941731646925211064723962118906861604237782340869941279638336843771926960946945235224101643528534776300465157895423694948148394988112819129844188049214684706007326910266782391781815248711318786007376776867703383757863880923017671467375420296925850478403157266691758959781503943400958871924473053835648706871144175600490460534693693753898774105802681441487583853618521890006091135671583491079644841787626419005294532220796735038642872711980415827451794076628128202670145259798081240459820909359287296245664629841193170941834565056814628381669788238212942486022830482139775718192162387828029830918749900202448082566242158193834923099256802086378154825673632277514531103262861587892832160078170531095236934489452991180233653043959174779147040195192766408480500518192669290634639065469821327399499045622040222973630588848074565663944318718618085042445060424784548703840211799998607618009566384025708646658597098654370461900317585244539813454286193149743801650996372728701678087902049391378371477150996369267047302982029274018402281640023058514446587802823533782407115476629746229773800536874085851924206914254329599244578024300673112246626923102482381098277522781776099339549236643005751620729673717506360439293761459585247493105960092119233121812688463758213579855688837892678863400472125706206870607587574951476297091143471967173801329187070195029560845236370604581571524561642354685467142262125543242882011210371384375889381299495974777839485492993416419012458143619726233269825341734414174249448003439559656574559080325964664062368961409297953339273315637406654083954427605753751506641967644206737323121181818431532970342857040221054415786108470182060402083634210736919483779579889175534027411661346006618879212830869020122514608224335903730673707921795357263294913371202374938017779596872104961214250337967061505324289278949466797711681815098855167562669481752164214575674132434763778791452575355868752156050247424329644471935480800774798679906830732482355224481446814465268568936569980177568702401535604942148481169792350973486420482208254719081862301720901883918002441803886473959313147378957937954782799183780725122845526988523905915455251603119600708456693439108157320005568252933799451312407344929615975068631514880580470663624443688817458735509906229836973466620896760175909398710084246302254128913126949262599215963083204470787023683319313224695011439686547188474126245226733954928797073186999845114612560774044294856527103762392972450369563871931945131199951930952599131510260909290905348059480641128215061135877235175689392551531174693433767277889409371305782052717282737697612282267754466583500460741549944423062526804288166883379835368768710118882512689128674112548785551759501004991828665619879271495652470163481795387597802308750044352244311556811373721693330261860230596502908749820354365723751339018633369653745578116774058573695452244405063800775913871684023743439351048324032329854504291977456016758258572089819695779618581688199826520976379979975066884075326008592365305612671170570829207857817676891851982223781194071113428266808961100824813091774434205368338227752500872859837361715766979693642664841533632245282296180479475353596086937823564976125757361971224875445743459689457627905429723482045709166901981201071448051549782751837966494856967630872151600610899108393709181691854926872773761676745541812122629408498056445424617629700897098257989890602874877383915732208906837482380745669453773701571518053461267034452445574857579929858204637761107895051464385957028966416220185895911366583956306297720955857835078428516188777172626086967067027333370803993644284837774292960580536338319355783928888077492463752497218939161389340144308960999431575785265550482813203745792010845372180957175960591092933333018183826004666004967102037452907565511701518833932483440261757280972028881435201533604939404966491121712454909835418627067724743952792525615248084557389820207850718501917861337297545718727471387850139975434049506123017942290002393085599584992557328145012373993381314611036922233936105974822020397383304158172335351228977842507054052968411238900585909739955437572373930082924452293041864485376406299554542256257145540444417161819473092549258837560449639931806203382634661842173353309803058262033486166181792538015561491362623368919014664562736193006110335715687027072505475506332481119559883148799427022718316625718952619666969055912152808693873241320725448567843106129562081271024773648388389579161322414139770417838203660128995067047596080397538532817284986503001995218287537334769005235984563567086617609914220345252483108655096217887131781537138124862526991395664339612221367925620607502146916689616115430081801065826372910172323538056017185012961805026144311008908811646149617769762675769435455136632364499592784859941069420644725219012595560096206645079337383503380963543671444124662730987063261310704426407669168915546494329205393571118322390648913066151973262154320147927611401379866043871525624643899471136228334432712678519923700120721159085813378999288012170665826399243207033745803544828614106556733557421352128186110744935815674789374969626880755245362674280938735153813603038508447342192526103621549380297255586337284317504942111834743262414885585404134479095075370507556909260735586743628478298610593788970491534308325941204313397005816570253989189696155077988828109138141923652972886144625725084375381338029627714153928456127429715865360547831072412598267883325819682754582169877968817886835059741300984676596268815238392425021363822921992911878415927368827305115573461557079766948926361097077921741962697624463708244922289199263689863906582493761818330997605722457008294941388375257331787766592409031830354985807577395696213816563821910126882537062904037333510181677343285934350149163466351060171103306662584859367976498754073515978295515796707636112784759040643958125008648359997888503315436150219948681758770768667416199525060650869824247607078978220383726853528336716916313335310099166526187717507747185321338837088060241170092847664938787136823659900116507297823427450164428509623079431766965323471344104337641116242621208420315489025889545220423848880880301653794113709172505699776041997207150556839109264108908431100573159767758554845500674492607668347142797153525717373941729223467958260011588676202676612667116756957306909978904365787605216764662274128883659456054185056225221358361550747883976655649837706971723052661189510946537209883594242604435071025492482200598482912669585317846723083077178090785482719800449825170426380226834192582139129792589693965270478323434642684828766004574561523333216513734783965923862134678507844416341538920180445853324472149173169835459515369429027219403217503168272181641047390762760950652884958689493814764605425856361809479552566050193068893400230155150858114263462116907004979372590520470235358708831966098825082309391430097852402006039687565050791962946573805903550552889167983036182426625019789437580282490315046629998503582295384184959916665384342584737557006868753409391835616160550934413072377250821283124826610417509784960179934367747212350186129541782091812526587013066174753432161788024788964560916349971533151302530235927385955475505543108460754900218114808641219272638096010110310989003937999418039780138415589495644796249362573138506603938224854767958560800736300633566185480175513695093851580571204431406120494244956713094817955757881915057038640229151450880520290705783091277551162801452169352894626018605230538518723004744617402358076430454139704209084483542448284252716484783600532402019566770060799009334614536325472316814249465592028904880816359933819108728231286296340467625025060709903889897785578753718893385315199559727625075909282769738278581346354408931243465940777510107117731646309568579867368299970867844483242394336113199721583367810335909795339234661349967152152966600279713353685360865797911909233959003496200155997365781004364659337353653854014351746631791808681371991985493650093412198834385579296122757746168636301245521071264291746878574536272483118613877792081367545455352829450296861947240854434723109096635106179725281687476842503783874613751980592691396390036760837066290912309700437934085775677620266615347729742411983831295639994111546871389809183807404461089935533068701729680383740391374067024443820644640413886152506940923046355319148300608595529868040583101822541541349275526744794759634568989519049152460286096262317385282090716748427326006081401312398797836426403112751144074962088717926350219732509693526815280382370592884835765055656935534397527399177831052310548048353426057397137865722949605785032932528166373466731993246362289475181718777565375447226314371722334503507610660579865885804271646811326436051975345717243665628655672328134992085362889033640320832716710147389392133695172338991860824142615938270401862106137583264432593112971752015032077501811387717912426015828074587478779971429920558605598918740186157204473139768340132773167871851252965607975420882863767890291147497670231602428750531701713624519380866579295280222819510657043821573520109452880911809054289654292679217855309987855588012141249871240218310214932520799220126733392022975627907869764591293268964525821724632634803099652385688955741921137275253355985972061392666849440805880678929826678276039964536224679322608793043310658205696393008601354792355192257410013706808851481135028333054194872777119884472906974310362039968545058833946822366559828546547873696011795326673721703680596263748914634685276853407824491596091655755934881555113828514218358189528401501549756070049880031113831503985924435902124344068670802257216272774234195009407512681905702468605306894082153041858991238215571433390040317916494972972075122134605493007046904281025940625979590015905975501777136775222318002077521026039035545410782953657723922288615952737876356340259626088105910326213141681649917705381522787029098368382202520757122335049373359768553695714007385934004733991833871870451479225825940034837132430671879252853228208140992936186399759029481614059959433771726549476571253841007305301947648464060862416148232557024574922502547218547833880972784755226068543615683506810752355640286098993059611065344431857177504874537096286118162688278131996818359327865437571403915555768691485843258671418136944589407763395944816457211886929613100596852979284349671745636133542136491630777840267122377951259743435208552439933258963708121787872553176463423974232743674087656672941208076189827363718469030156614986054051524720776230246095849269268594708017432454334812481759108894554578899359418434781700001253294129803584944362999087985212166772965560789733361167284277684246737651196711862039727764565303366256867899145225927808244918377330686083587036846142347860139433487129541884696222759455268330718705622553166416196098816851974035320045351146562365165575607529394573888707286409467825014030722708348032580128857905434687127618059413365297540383208514697084330604521827403827612554363146954018804411672694355428696432759196149892982352286519361130217889902530458109611478463461499213818294453027120635101491239641790873941671391306219417233869001980599570278753640675016498364259998573780341635917034212847072812297058020267401159001621815851051902356261091589693195496902853726442115924977814969214474270970402349126373210113617604346583246837904183001222921234904357705607956840233049944641847041630789638746001711723708421499437360467175820034910723554953223109132674468262959137002343295247950562184925271923812340377268342408000928220202314003205298409591886201683429326114995390157091824720930101057183053761862124757320942968423449441208918713414048447296701649838155944559808998958548705985943594297365513443692583852234536979933123912515302124189281466311198008436806157444074625460618274918945840751163313927009524522153666152381038058552234814555412003805541799145999235255424019310272632794695441940937983850824582334723795455593341593518720829397100362711504367844893624350283484783583220167466904718309350691012812871477473860765624973938030669410387246801301127444118556217868997125952264245633538076260872021039283801833238351891386716504117067867207050564108651993986511996084505510308864889450589326282232139854609244257828199053298233695085103538260760022891990187556943169943333708298312349999242427601303181564084243425865830735801316648153369058123033014822128267345688086375213787940414245699818354806045010908774585537464513078863007281595243612277704990543278624824619296434876876971790556022486416225022742630837520057392420279687012445052382794657364955711003132032002546743456950711577274349565403720558495459639430303873453415544748207103388829979078288319440381878755917178201682389714085021366213265397276813781938523579123406910433341670945660744990496025590552993562329702157103689177349117022726078747142282424250780915060842427529469946557838465291035568367577395156643770958006453003162597164105732010240530473371493368076608148353663787574253647578007826338015158958272450420926414053331158928805511427717879741010279205745289753730523050581275530943731413265678760851954535543754135864495727177821086076515833204846361718843353494798444863039494327231181307745087584160233992723600818793630156245466097292392912170677478758841448085032422768745991683526611284594144031416108061854855434659188145076849004594428115717022765522996081946535220489452381129232234210270153642894191772971774179283556487367969075420141283401409939802842112220931313340816744675765624305335339275845172746374521116451656068720666560809317761493010676784531924049228039038692870815100754414086902601311693262113597425077340819645029201387493848307165373743515347252192995419669712570585750583637264217262239337209296770322201983918090838193612130402944227349137229785473574118788477169375008541990749495962968047991991029418486969000428196185066190610595576961259315162406011761469737126203277397450395766289132862856564279407086223237040748898196028999486520441852841543578416369927467972671955961431450068256024494921154179442079492013185176230715557988082666176915610072915134783640651626442334213134364652893377177542524245437362751925191139940982632392631721091461656007082382667683261213375090098346891894190603223099020032782590851749056509990241000515816013447256274815184626860269970629418133740748830246650006229830473860749129631520195044744783620845839001048196344568826236197515925829460275302806177479383161792419550970761938792891661953047383120738668986912076596830623092640358648405360784438504013724294186861936476277039861118024087093309062997395688951971239994556301004996142888041834388202722265890104753879551358838092453668036617432710624656901807657905161009194274019672491237118903715487136771699957658575228813762519618539514586366445312824209611198342155891350862994202148508302126523014057511641044264253019689822715801353033619267825508449625749185617816358714271469722720589320630940413579243784107160314911260882531265989196336564636413307850394870753037869754280276893115737030014023684695951568863771174667183483640320143895870850032001270704414563467980215527262476747123810672543069649278222562799553965807409661344891126349138864041645810941967421072721236272615403698450300059027059799106298010367272940113634835339774426225382960003069921770200291966451985045570990995418867160295771174595247999491178417444065709057336328327094754251691847330233174200571715938160133532387498289184271339348073290279474772860684936045488728266252328914809959625246658739005350309302697442907540591009758698129375647986867823552860316849904297398959294703290216147273144920090925323813936730929609911506103177651686113087164919763075351782543014833142527519624203695992343399313584603121636350335906060285863763633870518277625938379500149589211924789684962782349664886581844204153384750146005198881977318074378147978590473793376352396308505406798441611519077901778975101097988361486635816480507761721259159022639762529491879316510252756457394900105947291389036350544969783642553212700316308646053092026003459050828944365973675303867166560258810535748970285819952367762498528445881048146061590249315961292425649631831303343798132078773772775659599032751526666635016316159613797900143569801074411565852108750455439760765169160563367322711505103122043814814851230724262262522778644626924436650896296402052207895793763214630901043786432900149640786515580377887945773773819210431726383060257854284571510816031652574966374936129850846594770797479193834222401110598028938924318449454425235396824543485205180859480719472086179526726635089946360116401551949473078513642912696480368851579672313417750934372034677396098742667021449219324523297070536810694996361526304463207582986833411952726419510926030628727624134052715917336119773940857402185997687182124729459999193203707365753608706906800401386290965606044978746173202731987551436035007059625322756633967687615084033730369696440824823010030942993703056376262225023044643045402275493487764772743092920616749407714673458813978296808273761642920485420125417525120169600461201362827345409673440983481251156225424983431251175342336559191326126802806373823047584391505903098308213692440248479692483751484222694593921630056847176540995283217522555434230861371415466956613920017730122082822443907499614558006589417714219483761630493760554493468366288890123312574728863311767230874338269426410610276255666187281932034469818622924198260204437202292851790099276976093526518888179996473426972884387510252352164612634327922144280807064416613528785419377655170852824528573752889589160842077709739202986746188326305749004079703188740292555518866883628442702728522014922610890574584898956513833267967011702427022683060681070934169400637577076935746042902877256870948120182329245982430578481952355789569566985117190840755848053655539089269359157682787633964219743200564964509678943131163418473839517788250152094994510779349395519999816665211520849428594538748571457581583175765139927476402435929447820572314821867296612575726942670818373052054359305843245936776286451670187741928149647624490629651725575500054041664641881754555182829840279044860692914822925383671437701216378896444598043162329763750140035547691096985165858956300714744272920286493142403641837584683421166470476719123418262473014129513688077533328990305848026660669725259938645126762461380397735527527141637892334706996243199187440169406225007870520631138235430949302337693291555001688779631034302718950408559284817153649900814206814482285704728954361487814800367300077238978528893516647088430472492251076208751138059821016365884845291338734752390296004123483911214008984293071719253287213891199502559155636524406862629129348906300142603004579600374287304469277156998868361755849083876346487067462006336695825633936717434882097152116887705486848387010827599280399038650826192294715722546918544078875535402523653318619126189980643427821592479233356981781847640374054956839651257409691919497588379638083080558030269934983393431609883665730265578689555946540529093144374873288970817656116822845841624145947853485722768533740210925978482114734156465435347647684122594569055986809987205578231771767693065153888433068494686418151829183341566738442392587773711942446731717522707017013804302583594244111411561294574175538330997050380731205371676402606262061912356264826082248542602897242010250295764783295622358130997440956684520764101712144444424294450951630750522191326499244955447139475171970447411789762023148732938494071809028179635543586377267830517452608276441556983845330272356158799587850579956489146325520666864178509270627861792401724802404585343201358507182471593846887721960666389282372373153633756766082933054422547269551287237867966952300180800186559925407290002889507003434835856015231255170972417928427449807141134240404331326003017984694241606175960775026339390119184765081655036846650642395739138258996774519698646045089502364925180993045669997398397695564265915125207854007501620106575279377348032020331336194398171005846602604899594544686531844701197876473601829735962588429360064172391117646881343959499315021416535916487989539989287834321218492404826861293692494187972755513005345186440365310765655195243665807537839483280692057956596097525576696827296473390171110343494889389577034107358710304894350535122915174551797545181252812369541104386407734540734493496401823832279746904355410057491136374275535624316785871638070643458807095404215466279252328756060388346636472866229433693860333094427115328635636000619396996119108521197468909697953703445581619899059770606387321172483519948278415210907522121579705075946468631685227102773888256915463564422555383047607109783215617385367730226540164913017555909189700890225757058480537203643254978266425994515198642184410295731153825957601453300516592734308278379817803499583347382753929980642524554559667470823672872046029123995676965135186031033918648603235494982728978370707141516282377194044179153226083992913464340539281027644502392449267912805107517066670175555371162053108683687064676082646487643336035866171735987585263783408384446790854829480164803858400826525639665222268323143754181820374636383080962661795946802405619636900494088618742745734274015257784004247571424578954846223854287145901869984293286142774865161011707429007055816044418441471282091571341782763572419715522585030184815881230606849699590414874217098069599299252966076193611420879943246467954152874381047800208747396614018710899091070110091631315228571506049656322329147642513450218557312913929783065698953422460506115047705580403946397381685181536831211915618273753107770003402610915859780524850597417749236261991204420407440332306049510264161838945552598473566251296458068646382002550634234536142966057303776068967566014101332036309564313615273730622822490172028115731962168825803431934398898364113417733293118314220008228874631621097417792099505401712775708284819999665339962241657828982812197618434218810786568431170321064988415039327979105766417766736340198466523275978678006415835232490595687660825478371001620362463501408795920714568425802813124948062323823996800140624447560576481410037089974885778711156512055915008167620714596687283716570934291566838592217742312837167656722894090942689597698518891637369027231858549340414093347481698411441434959034275920522332730221808464063571395673381087566493545151661137939893459519457564633980577629726327317975323566170148144964126563835274171692834834167713968107439216506649230458375837009235137306971610170121586926484151321108066121306081575996514712558940619655322405659729270758111996731878806036263053727364738981007201874713425304969694728808043770982515119298028081115231795716476788165658917467543262085277199416234486398272508353124292647367814301390639311346356918609405786357646212841796137610598497217059401120360816358929793424265324515768092687391429807175506802679474738087286712621133881462304552895747289163755746741529780871863338043016506757883729725434989712252634895010500549703426787451171018440280154646902714106740283075011820394388039709747937259996741295091594312154343150130813045925678929380306862216316543913017508182487875229408081099999715231393312428363595585940266631129270049062992204288243056630225303391377144527362661842581279575732255403744911337417661684117221337040010084093796968045356745487433696526222879801300479086177317087356857714694839646828953009649135199381755363567824117541923509748194528953735328250097526244800632047799227458613524982271773585995981780205357347622407333578056917416764648850592871218598095305847362535838816713065279332181300546247539632876496254033337044954216314190187410728999130929893057780420657190269413054520284806930844998258620430169241410331714841442453362369163311971899850014222001491023780347072287722785433854092897380943515255001375616717101144176010837354733390084447452321523852687721920190273737692853049511631514750717963200101680575515824735549280077412544800698057685138006095119347944929270086051370709004204733687573684081381002204095433040899542451360404732815709504444746811986898714105775150717447695845770104565313519958748707458121413599250344709861307521011878389738039984447502803491691901201288680639496218519187198579843251882030141065535479224631216074071107486100789692371413840161932309354534209182479588769480479972493406197826850694085386594879530637998093172274939830959446614008273415958326970910316879508818262095799116138129212154671295219207106235131933833178349458476732177721651193713400565246959382598353515825568441749364353638784652383339126858802576762078366880908547424605899755562005788024507259352104717495478005983173018562481141548043905756583816133067544972828917199597646807169685658978168614383865935582366322463969295794198965347552194608132037279925900325342047777476493321558716153602812444585495428619550551577036889203070103197224735088858197114218306545067724456780917073730204263230327338195921842990903687455047369045400461198194171159638997069299957378562572603010346856530830917169235535567592625779922076979900332822132223392244185407470515233458560971528416459805757715860696909251811050793619003522118792294202582743828420649185544909853527888140481036581947864886376834869078839931738580943005277824634288922951393453495308211001639379912544026683880303519396981981320386851768006954591627659871429178075634566874797154224373452653149684913435656400307322672347250826224160275965689212904625604968505436243735691881941718368537304605924411299588159022660017215361652881351844137982385456634339878968654935990008001541209551333177564407432530189637563076220872630056646677567715110104581039364499194968069169330957275864547584671671302563918406224863048875055865773601056907639517237449505363589592815815232206448620149213748396954551154712005341444783824599515216960771432280206027588739340945666817869886349408238099773819643285951056501917592215947508154984739675969282018861872755324774025040673836690220851010777686439672946542686171817644900466142647332573489189933548972725251853991567112024524032117104665036662304768749166291138312526775544332923402505867569636221543363871111382931532578828377211810227737946076210426915132564944799353793142226537955635123561141603341978560210178280008550091590974362173193227713325393305729035005544705126724176422543292134934393588749413830530183368734657124775351533124575446574650977585060375003776529796942826492495242084667192951028114404497854554171437353619773710090311706846743789229178244151697341381089553844322087068900997301012192440077739013283656487897253962346266007720536801411323945099869074000654827043975909178521530174726662062904346924763725581010144897137378961598423830940749199764716823016776714632623462562630463192110518051961996001865890797578121947083198189177423253449776667220318857926004300381409124975136191005183484614976660714405693893110921783892034150981301011122318363144849735052988591742362881914767342767532173333911815750813521912553388435269450870354635400370947185239045197446000161250239272907978302343980783107001682171388586167636141704709456824080146608104181118846369313868175359264332133027071057121791686110804069074111877011982520360156869781379966446098878091873717718109867154756506170211143517230494855645273236542171006596040406175479341017538395973564562744081424222125833285860530605779782462286125802634449475087535584187390936876908564432668810242613497418302672724253582938841334767952530201702564114809374074047601023534404932690497316225005431330645996856354508916462105217723682353250908190127285954816773460112798992166079178623210165901805268324651398643027132472611877781920051733737311805522854034159806447791822540985044356888225533531112368611045719102243629005669630944280628666514461724402141571976174400512837035048580123822640573396610912441583825407720506482700619386323858122051593177539548646104793446088637335431701298639967298401518214777842650955534653197301187594357822652068358125387476795987591356775559883207686923142611781101566309023684527636600722977538842189510023271713790117280031501998899450050280799343452705108902006631508627719231922260632600955003744684839486226865928074639009685790055280390278577190632432620962610476155226555453433225491636399114773866877743770716176200109759307179166232633977474846692013349928099412859117342610884274197484308085214991233431752533208795056922652751397824746079024145006027683265108056010079479423999778390826926790304164722111956933458655273088993804296207922536774519805081783889544122529457845591419035880958282997364094986825323787607422538471289341551984089300921046504564681776385391636309337762203172665584925896463610133288705155340757398798877697781690902799743456485607882582180971398301922738904564400827675299561104974167941306645394081043660420642871147779527189764473761362865379598261360585492747682314358891380016823334894563153952925261010560712394769524953475576050109477496150721588504012127389501214767688460401711779096439914177201241248346156662721596888667769357717215789519224382439477276239230907989830185066020729898466803043934314896926988074553613081697945070437430374598018159099286186990548458508481236363449535136604482522917040364283200163662877134865826690253499851287624095365325300198933159596954938084710307551692812811756273431459284496103752340446384352831716440410396073056116527435580480471066939425191896298768128160701858252614635674062835620159807614599641709455648241283218545679819955835594363923107577144088607018105498737837737183870815985377140678039250070528544418494416428403507765825556938158407199959548511754757702831834305440954526924650351937197449707891393704577637471919525961755093715573540225220500220951673507589316378329792953878029916576260351740131746423588621802215584961327766917215967873095309217550330521071547424956477349623369515464866870472759879249297225042301838551801296915328452501331267021014590617199735324814030032079163709237123460536341101455537767178650236995552597079217778494966321173543954512767939194961345352918445804993108126114118895216342269004485136752529405342294936670868043771212472831849227184058472642881551207204139468969812666554002897508330900129927573683412990222354373849976774052783614903255833862637366701937665244965905021415233396360192407018959853431407369386119302763734351171772313080086384333085916381313965486851787366462970308422530077333255647202656710968746325761106420871485971482916438929438224292052071172999697216948287102559018281471566520136968921398803653932213993564004615695334024610496834507769982716882095769194127878942428253418483251936433160958365643134828141459196887131050310509533694368381798448557853682229875494906718383964512066460586795163373927444169242624854539858640919497885227014634538120858092506745027812685305530358590276976788811248651853356327118581940848966726197335981867279639828565885043777745991631857281459926536854309509253681467751378047185269822081478539802709812973383502348541294333633948706751253949230376713845337979682584960254835602016847332768115987483339249380283970321137600565144468269731726845408105139320695387437243824326993937518622318510893982295005739316046826753236501798886357928150348172470872935080355877577581417988903349604652019526379604326659684482824094639572250542442528816368308566178610054895226398739969311540895740140560809477092508251317560872336150428308557416433088039188044445455952465796925917024920629564708247335689278754179986873926880536051746638333353324704103749020605316715566807500543457598748203045002317725384613826637862326866702318711827583944409695719154148071400779928682715603246334611455956963184778128924683770876095475254145697300950104134549204256465239242553175049138440695971143659187640259646482102482445935880084501203068774420907897782734718353475744290395721258637634217986894788294771591006366572637633465318828898305242661220334590047553441644300131456168708278461121303121372507219343487526535583812779057057795139051818092774843665533380622620784728419959236824988472198504075100335702317616286988992490592800315555244633515432894354586533312459394506197445324033036558350863870221340095512933719095835218838963064730826787397131175699789988441329804196510933311372213488586461361210390504064869001575873677859672980331980185240533310535945765013818237160597091128338240018988553759740389806201397651055719138846169344869702663944365812235901542722528988271462731402832933047470958721980831447276108313957751820604981378021371195915612652929580907685785859310014308630191845966532135066751529285807835699640016321014037101542145247838250233133462922212615720646478031105714296661583069096491736155304814275982587266224236703391362876852056564913996128502630196860139823631226654247758290490361621320705502487957069912934814390293683998340982362609535820519420904492570229021889023248669493082381002821133156272583647997796183431243232237231207158935899147972967672756619906020938189227818342443828040304131095215242672560760798163629713813086168316446350234467514768287807288950581321861615288521572027982755972012696129863048917621218560167069099698960663862467781639398121967564140159347458631014130061162432581798227340254059632159761432850043059416768554729075300396567646514683590647519617715160939370008549910749762650849440176730015879375260761674346458777632376975507229993977673967686582309655771094523820271788517357854869571434314760073481180269172944045457528619637253485540712314186378385474246917574701050952145939233160078233603577992052788526531508466071735282303338873366311928424265530083541042504340323243455094062957183731700770152814781603019585311011195641083967404242807113653105904962004668271140730178268372841441883867057812974848243612397180219891304128313868211889503611894957285173089692316600295937976539445515015537553833169478863725143503418032298885993914756587387850971294850410332170855451649871139208439000781302691026149730671419978780679259659341485437765996667697852754008775149703326630533028428742086914956766694563627431656611504148680185934533967615463084602240735482446144318785510183721182532136124513196450652852003112997672780607672853854640922911634177526643112745272198599468272926573944803234021620958026510084226653696575352959254443202508880246944887337775733647106694655159043623030542995919237708585978209777361893985328969150290073937392902318627293014121010098120427665519821854678732173759438709342683322823642794181353891392214796484425011226984489430469965695356381709662626091549404367770956858633045846995035612334798896480325159439588801400121981308624709042062788302747383206214393867812355614461372819941944587031327487705830962962896015537877335746299732979711913961462507478405944935803342427480931477149750000097862511080958573280787643036190173543431640149035730633514076944094972603710308762391070750687907508258282917016537132928192647337259417534592892154163944753892488055457093408009598045143828370158095420474217945711703563904755375276510600945412397058324331716064872310548837385551940445210161276819408609611057463687495829550928711195256568246877896889171885716009528412970193267768721538402322855122357601792409244184635218509370405337703732849208138174363417166260560894702645805079283754486287981211581625807006402551083316068751898508851574249045701608297828291789477420745841550939133253831515915905925565049069652949798159095139963982902712768924578783865352541671947082185696142343945252147954453760042782970955319559850095270362687974953339553255052640350981062876487348114863536232614468306013470923839375205918420767534115019869293804816923533868962821465269980703745714064818192100564574008966844498084857730574525348146631500942401358186393854624370863869127046080030689344923171452029562114040353605419949112124597809545622587486597611198096986214053736529845240558497912545704130116819829658371671121514059527236164055056923633731451387344318398051341698534086641591110817263355832464314705709947318590788688090422075570632554221450421291092306189194428713628747230548523047456257742157037261653070106536246614885178045610273053316408240701159988181312620509518224090131555026228445251694955073100441218177138827646495265208580099552626555253574739301492083326340230136308989146561271690574530181066551352621765585557634781368547135789279456899938758023947344076107567051713092644174116556181270198751593217097181567138962493950225739454474786060074312513317544634871325321952094373419515123285289699337824130496219729797937652492273248505721309022920234256752186881373776044320213810845392642415433268474177579739041990522440057301063389752040548261886908624057656072239946342556335861375864173753965998398243350635600199776163562949386804381831365293925152477215919568738490560063400732189420686618416168730638713213728879572134238053920064887320831865014632614030333594890768453622993316695692159847906994013248621277402023293922595550536122643032342730593321490781144890779334114284168459531296967855998210403684257545867254590486401022919249393202470491811794106679213563232644217402307385782937350412942059567782037642200430329022205442969297568238079548501136286871487672105095427233490310948420517451183470705272347900981133827260131982312288854660934697267415894595097051870806275796493565416342512914535690414993200752960473386570765679523762904339128285710254354701521803768126217681326826152295714452898918108141552628806912441082067131220302981057217190412240774941495454816260322784791100339658895090290401747371139464280275942769111260034966173313295225067188755754364348006023532494843487005590458724697694141488354248221286154483638710566278604229308069379240654497848306499395115475388020797164532522272216891705801458873228512784266717447843587065909611271028756785644602596121208644880636768280342305819077367884959697875175182883214263079834844201266392827536928192949368156066621703864396052212492814749571697623392326764006043657289200640840919410786076296522357420858370038825662868000422791781926281227769248927830556082349320413672977122080318835088396291371623895919781616867257474934731922536432965941972123899088894187486960631734872858727195038448532698172120064399405831686947213191037623815873910432105142979843861313919561110120948822600834635526328773280808754858399641161507725280210652322788323770194164294239114948021628642136675655973150160077258573907573246526290279598018676815946186820016026267759160548014011020349808855554904771422224189145744736154418957307328964782715832838867057144109812253932977390548244103918955529467591668405265455910121311648902804167039440577081200718108278435376323336540469823125097957540609045171482292206733798107473316293684046823783196818236607495797414631214917605712950498736510818290526038127606955784597198684459117667632517194573940945614789721959212005115588148138857521074443753216285409008324118900762691700505198010438568680111609022760022747655536605419111747215600880764638238285476929091221065854898967361217884410620611412080511248801551870084854002803979654793045934405460921317835630581076750434979894281991936189530960648980539409485192256430150497139427254421299338009626222450320762530121440717405040375452282865106157003936883656628925731765299274054726759567324905587132291683737201269501781123355147509361585248404808829866780897452169066462963317509278176724454187479856938908939506914989181117554704853289687396821662413729038788563166636090481514615358353857615397928656134756517879532737579684395610404247079038681118270555073790014872777818028430361794687971055703815386739739835696388750271287964731421531617936254916179715973614449884667879665490342018485453329213225279392100412174211022647623305088757121771661687001842454809160837855872982997557203261667463084811559607482530239640463153060287096887497844940758029901105686963737112005704719752069324624079981760469834935481652200847570328101590112913958606269578308439297254126987564964469292036838777289467595988078779816024024268165122353572325251679743828965992090562152386673114731494271887712224835800806321136326275058693614826942070059842201380177389000482810800883998223100102418979358873427897060548810405410631318750666055154712276973147744404035694620117541643049878470079827511153464373081449875589069120959188668462195452979553785658639900904793289853829962622772904360533762632563904508368032503708036241593032537183752893622714675057216731906871505848163514006762766439237234069668560930596090864774917325090843015978240054039430353773339111531472773455290341513829896000785330102450858217929989580537263221783241840694264781269514149043399879004227575178789305656251953866389888996109301847786123340327615539419545603675332146035626146574287743076875146384392299690464399704918479459858731578021072237033369995824894985270343880713290632380624259618345203603491440335732551491047840850603529865598692264287956493598175728262405161932087132420604345217972817408159286022229529153671205434021104079463360225741740859144805146036669902246369640608808335326982634361481132916708978627694775280119034114580193535181585480969562527927095824831162548881520073658144693966134198136629724744842208152817092970318563857366040028927156498883919747026623485424856385138809953623448749532678215121750409445113262556931738986625006850011528961404221991180072117087440431676813871389224438037493508837814685619860095961852615385847337790587673779397375466249059403388226419699662723931494979805231788462089409222781136782137033362149321905608669094651145645678852082294622799982786687497050674086019740649833995982987221386252458285384504435587450773108444886787740938109252282952792581369785553526725787855862435375129785015835818516127624895226917595981466216419085900309809575387727711924640808720656566739121214317768823289351114525555028366865724471731525709260471249939725299585219111242392837481888266573741193774599177591032912754109402352940200622610570019995519906203134154631065380589326184979803485258947827213280404153444761100099612081886003102192644039801544399546240108138136825929263040465579143376171718577752836245552840209104949513093280696892941296310054425228029563687674008184703326722280133494574676215741575364714875506401191722460927987398100499478847952188980844202383532420460088740378547251238890307767176552574747510453419351753887311415782896162762055555805132459140639979811900723549615949587355096396033946206748792440033505499962823509184750112290185271683143323071556782442871722166004598789015158797879828245289783479315853585556116234258977648957127184641144336608341495130645714111189548092515424173702689031976682331508359719991947223510965008300240966755990439603654706799636537725361098697479002359463830834586465341670374650406448864162280068693050301456171273183260460352796608814124265746560940600173465601032823805277625545910260709887805287433906793481315794683585941507124624806415151980219116750340550638855682931950730834880326363775269116717096909617853129807106713029303054305827735625735409804384835280095478789781894768085963843207557958499522795985450445862574704540432647724777419890343789776530320638295025317949395773477201039100168570674217909752898968854665295180506877877854113645725959834412844081491810856096954547750401735306634955528198121655963326115658005635052450394140858387017178620218353193392926005669236235478988729341152541221925931781775118577469613380655544606282229919837547931980122141663650118805609512014492914114676459066206217335639420898865225686218449762439833173473176676198077993662991781831854580652128825267669062237875777516029902745656297716157948743362431350020579177466682832732608624394681398618256352781471698009934858624129111771668421044586550113419564948633402399939463628371636260789943244143519859355872320348647096575216343515989273133953306883224103827677642719349578753648579711663676418289338832881728345475757823945475037558752033372835517648671838278293150171096841126570819617308643593735884111526829308599495253870202532947701297726418208543834382398033579091529092796969523760648589341624770680975019829919220207352040569033033741757571063957320340808646896915248842333735837157997247314153347504886895970799108425045843428846365439052926590598089650037352289370568265231983315823393649673642744897282887585928789629720383927096234375684684470454353808821348904723611100506639571151701620359641904408804135699238866701626088520327248583771515676317156302232697585769096497948394282276311323058976925982948001437694618490368629837009231294870913457128604170239914355418539253018352782970453955822292544474749438653304668470092070815704353575237265076836326565403613238384359099743786462030728370736622638740789484544781046724169066604685994021552879764803325127592080916303399292982955565459224013654099942879571964774846080850643222383280377448051362672897315027603597269310178044437748914343438506475012777490006558238884560308894652764203463040391007532203302155437240623296752172458156859954074186892105024686541383907459217071102628356875308046346706956232815041457645100761979759923561961130171778644473992766120068001212470231138638478563102058941473771861242965395862957462273266852181593965877578870236901118765686209235375651545600124338926749056795714080472950563897178856311587483649503758657278053165124576246110931699341005577846979335408122973824569251302207780908145296493560745894471114915278174560964872868851096875020117222369083694281197737134691016027159621187775165285969359293229189965583005345411893104699563346288881384030567324491911362605551407450957193074056017432864664485482089916621927977209178374751364539537435618087375550905757607154674998956785471582233612215002207587148515985399118425602660366514243146753020513727768516710655625648789250950199512196432792351923555205420049852500865635051491302961059548900996307764035030250485823108368975553269585958768239458013582551628291963065886355022000970912998875402170989491664599978891667446835397126107808678593051714278130043187852700685257089411286348996985295892792970725054563120491554401622414052486153809460744500581731660759480822455271099222945333979207470546447123328734098797456658324047197294251556825312662070676521687716149082863053873196332284393409520503148321919802580649542506974560469495656023019275599259699527318397835621964612123144978903349032026110830019207396020771597696095721611812539385927442863833414273083804485243777210250100488898950161644066183149505465425427095610445667779246679319544709358528903154985006993383853801697152456583166225559278909522117883597340465879461700595713957980071321551277295556949957057316531270680918862258967182439025000010376635095022768043951548041050718538050662643694789418862025047960634119768113077892237374143761905372255107197133474783630151901540848234318011351684746864180007138104422062094224808087130372232811466436771671393920482898669468054259221354776675641880093406342783689584030662865553231816027199369999377002137197199089939976353784186837328735258786890365311898556978845678330075872261570458506995272691987617831704844217934963035616711261311554871008659717455700156262888224413794664629920130246125483099901459283691039571662985646314714794678113382331549024965270500363526307081502391701249353812775834828819597258878183552356507882788776198023599726128596459576196896928567088347214108380012084597615051815516726262855377240762889402987744434155230536207169974875984584907238713805750386638324969826335252962502520763188491172186009634159385720107768306350224359087449068579241330578848405503510794838581693539840074889529249744772750541292299605297684109615137646561356846283680726204415649111886301507405133382026433159317718776240079221009677080182023392001046458847220774514173811968241108233553596734716549040589514428206315928795904892243703363369691559171522267117402102089588259307118581007500933713340554506396543010008362566533427371661597543587543664202060198915251285853221290596235052857599712434193146433098049535483135118129747883996610931221001591349198086279780945174180717941151224973673659747162980668230148522137821684350762695543055193312418749517822513444411452809953534725704673403451698493870335096867506351362764622794865323684869770028827857276655255127875592238536394733532498247747024049650184091151133342813991346333667200086243960497476928122117387027677275345953854508568789977015499248745878742680412530919218048731774830674720073059646722488234699736147493622115956591476738579898062585262516065027450420023327127818988229711474805440314518682557588216506908530922476251716555467937902008938354502375186541290615720916050585147233063522833803212720601972547057802233379172435090723223148012963565524320469636037829233444292797959723666885711096451105189742084020013346796513276467840414157084194117854364912121258440293094517320325286410277693767703288341986670263678193106946777308291672124308076683526904653987861398950582008450814561170273328027512793600825189581908353975780949731528255181537995811480964571395708452758583004172659606142199962631399809089837642781357443890786756489411271941687547232056873572449874609375269854201265775200660504462060506241300642102790164808136659586868548532571852502609855153857707608216077209788036116413678751891635312348089077472275910152390103278528343381979025808676332830562666224794329456232894144752455701093659306546993702471988283030862572022172297462051408160451367337485098041116210066913263354822941354148925009811812532383727415869597745261404480276384518365361364007080621994628779392996879964311854182850006884400051920394976381679321451624419107395921148950352270744022957509394116499573117499578124260222264780821604605170254653457320373932336570108147085059287838533124099230504503475804720307304492267495440448662252884284770201347102323359723334937996229485821505560850464322860828792557324640259038187246599969304194965661827510092507346134861426306192268026422251230100172700186260650493634180343597189045265542139546794011803848400305071829260516505094851889558813168179120954315940943397266980579393644835314611585047654171397444398563539684612452857434889776490898472382163203249292782974259035267184079484752781862099998488446418092502038099663327491573072903139959796231141212339055205970972939044691671439465427995791146214445248734833036729089706671003394621467785196604658877150928366738744521762743127489893557575227593925026441794331794775958505319813377773273088919673435087485623778722850100137037282090175065393989388366610477381338058824217416985290582097213686026298214771934646600195406216126712249904099106473281614287718239410320111855820781898705233803538840914192621453183983699447525232245219056062929652176807038529242195550786960097140053321059391891973663365725999020359382382414547433417795028292295049414746046569273331486283517609611255734600716013692426578309936368004797117499415025443611656872594285729239704308988102457486451615339854860223945255783888546479752126414814100188544881666411408154707291930572879552420315235897961541485454652609345710078212859373610702565118793403784334272832057568931424117547449033614410433996109290842946024098212993973979543726471369440229468308783529244714601088264632743508993875669738296545565851301218569062475530345484923019044929872096952242473692398802549692625781236201956563611465754688972825625035853374697808412297389165302814378121745778901856769239707008569102628592809007698027995521381007289267978772291259552048156816479843828780943235722288643175846496579249267661423102172959522476287023717940882721224106619848938973986792138636917503719534650193204518327918934308193581367328582393791902395009691493980187298561872145923303878557903265535572684060888986127396612670983112519551451747361669011273661011593065214917876329921347234047085505551721830870614803301170771047670257984060260214247866250833438249791532140075180921953359880030210534999355145054469861540202780064515783195604953916222312979575676339331125858084195254362635366328113620953902683380288934576291822272262283666855229031562153230174421213387793587450365937232292740420292801442099668717155863456712647802480565998060531075509571507404128463033391354301442538834321326366957224656195024782745748833557471364709334804243895748248894477254913661388921458402472550974232531958993288366652360189454128083650350786643744650413922845506683194737113850238768757557387237667561563284429481887471961388391350091563141256019585860788105512613889065284242816794184698534673150493181909826851419459045150616017324481610181744406020196956302817767424455316868845604350031053833589072012653400777957265554143335526096683026077279981520019634421468104134584829158915948585426480392922982220078315538158442091494247840689381999605028119136840969364072955070808085290979660419804493559580849654337368864900763112063210580531457242923998415602337201210707149721836633876403051019843828312414004243189386718421072556536766909650174442645446900701425582579796111325109116178447404641100291629860353323199719718983354290483401893467301851130423322927573564559295742709856249443498610208149962986371987136107334665855918182971611591084420479056688701275826100923139368126191502641951852883828924165608832304092981323671221928708265795896168412541612015236220759116173817606240641666513312588959871417228946403801635679411452483223680101712781706345400022688483898037253075721269738627552451699227669363853653828152279091333287187964427655642739524684881946762966773584523724654903958338345601035438374748857102365102744189691197508892614803518634585654610512449337541157747010113902160707644790726290276423972457800094275414708583993304728781241711762574944917478238036668802615253989457501452299308176807079211792426592894860831024003376362347700670647729036116434956402348617624067505652926598684764599683383674826252302440875824617161234313576132991079419271836774537688567829705581441063413025554203997874478959143608174363176046194884355221452238609839371743125618862222973734151050615047533005149925608159386384881148879073172545583250132568957603879072740608359967385379053859944360658632831762357108955105133232583697114668146305326502947512610371343592579811311663222336733842545417655828232835082775692181698233085236729973654565114051751192677034869627310825220125563650321848095744142668919375517697223522091822640411527361083609019815606985711919821700388649763583541782322547766774070119445486477434153796504247381688872368080416971598532218192610420257065740933102542015416720780495140705207178988954718953872278070423572479695345286591870636238715276705905307130090758045784575599243840626498394638379687561334145738757580579884312286201271509359482130977743296014514251735490500775203541589855711119598488093561440081080225577449721604086798858232242793424106828670663516384543420564580249364245034713111973277851302033685655905619708909278659467837270261398589966907103932248785767766656905745277302418681451451863887629880813015334841447863475575978358666312616131116414485865349648066460862310644804796477480738600810717282481051721294746422702137590589322880719694812323019165826033170884710815401995818778757094369422623830826377283754425149497531198298010872251233468961529197558219928527759352526114313255197298355845877148572534013089047811974210558818851648984828574236523140839045790822350420873203293448592922777102098070364456029896990687690103704336987458406841253964034308360412275961418682953443709537089691494378860377118574268661958417624896632315205959872515540020111572367424214584751577452638092998367808135878531413576851457802753582054351708211224463888718993723533885540873296702650966044576692016911610829821920847697404806012487781045351097511181167493111851728733020115600964489774478006663793675033833219082354200221840104254390644564821297416976181860668016227731709947123688551166082835229315260225012971455101454078045759969789301921767924158994734855720588301638844091144929942163760482896153509198425838283968083296857611751499629146036588430956873650058590794672923503260397525939816924857222027721575538167560013852586840386400662437038169116573757004371508560165284506259150325459334190563098859472759384400031328475405648326781833822989016679766786895959807284742833583024662777367604830953354517148263588740196159898439754989453533126536652557494196522522624191418829708181146438570430566757088324674596680008705928092509435361061564808959685159260417509286658406483232893284694979910543363576754501750512363304053358970825133347559115823878574710325092775952274307178655317029040999655407315768706785044942174878260914568655746760939315247203093117334328213755408081010622303625932439164951927900605737619447008976060361367317376755379040855165478242508269925047989492014722993175830823744548604364303970563977534302269893634206024169346822460121210789064356218080503096283518245411694390905712301371283617085406137032402270371273981854851761487523788232733367172990076700751066478467801497462432214733366368934512210044898385514817239758371779203827590599043861096168356223912984078302795110511636825499626698474203399794163142887919259677154466970608537774950795172214671050964772990055110281455743200302294253044874070497083744258532392461156677067514687575878027644279802455200455785139822432065333425154894112353313366431676763349547926188013611659844884568109242121520188425819416212936902523207362934385659948417318567610091767343431127280775110366022245125836430418607455500666306836352994537897379689631361113423915443424329291834276628061356671244571521283652828715539849661291620723910270710689955705786804054939063508112606464099019739792153159782814382315635472720197315800526448010239318971063905059774426223096084928581523838911946992987059831403841228632402265890258425271138600921807127917737005692812458898088851481857337421146869095055610960697342445092424088821225023537482405988012946743386366149599719378143465406160577963531530551604640769027405758551401298945660735968703298482860587275028242387433766812906978956114721643366014224363491288237714251613738103006519461990698569102430065284357524537305908843261740681609194556129374595361478497699619082497136814112706916867446869135781999309350226996650905760590619390340633475938545852660211404405620592038973963074861434255070144477819732400463235763518906859690404441476300635883258707789682652698708220556651166044418758682547628881095321563990672781303833177707357656395227918566859387361941795263741774373347818347355116625242366799461901545894353557717557515471088334273913238438299078057330408858663384925364049066304866709367853378634977730836151024567087383621384045689311789230772810820076635970620643145746006451729836303127070934166872827591511149117379745516727144733128205852259328338543180337359826412070488902647755724671752327123125244572680766326392363135769772240996783561080122144286694901066095916849517471142680820342360831566301764910538611577731521128102585688096708201082344912345595302765198471210385842430807096152279421170376502892909116642554068287789260461093157361089267672201193896876245150654164438312184279461448579187750296920672970836870855156678878655362781226040791723301635414359082184381480626110843640810019545758306147028122863476176737181699665706500141725809735681333364368461133828294184524652823598356014390795013694577491320814669179359121350412129313656313422679908659152703778460592157439439376148456928471935428385036849300003319463020646439931712148907155330678409934895218272095129756107341228202152856574147032562561002861024907036683291082125402425258074836457357803759872540271653715382451172158753524345869183922893475580621116376197631885240295875511804552958246886946772453016186237812409277891803764885573831861863521012151349987221147249387566029291112968153842983625167166529785001529732740495036082543259918277800988527064851160339249490656599871835115236989094015317951125468128538548777046207036895673140451950617144170416552779798756653518750665659013149153488725957976015805689387007757909592422334040626858161072709755182165119698954250630111808072335992476997523319590050426117656210408979556970330988285806960646222995358251509292428816833721639449878584783379294331925040916215256502423342922106062431551001181203010169851312517445271543899469572446387532013598861509243074304567318396192803497120065106398342046929216445093875661266990584216586763830738902064164275399220397471010460610868710766918983929690154573749423302641197551253865685737458405371751833500003096841185424947043881741359880355688121273155491569167216038375369681983742815794780457878427278241111372769352633013084994978644290837035170905966452646697005709193059065394334144293935673463325434860140061990822389946128152534079976138807086388031381594757038423303334206425831100399872275736945900738169888874065305128062675197789287069688473300946602244493926812147118501002959613811173584854482386933500626368729851667254819991740503775970631984693820910554820457662715253977006734268208957023732584292175252316777001095673614614885618260548102711660558747012220283252893755576459302729832796016042848962254333517077854970212152097450413634621173878504053145501405564179168825237160018346082941326723395097578932993324710095891244916545822577466520479990251719762953069531039465378374925151518372285441502880954260174919725577719071067910663909111074969622392508588037880473318499954984752009787007863262848215946492556189169600685755691842123642633036044869422261984619969498727960516131553567942834015513412706157849015936405310913606135103869842545950425487627530595142367675173219803551692329257193336102687130488629922491385650538528897205555549731764613612255965397578753866461156941592383299098641717689266493092795756179137849785743686386408045939331454737133950602205250161044091811581365667690386994359902008955803164699600373231259405817053611810037076193239564071578244650665380495071047199357147553239716373142839584067993093527596849788101233865702551887237209988551629723196551519225666882194206960462965632542081707850613816715703100083048405468370574630784761571003151801579304036688841425198778863326779092807728969000553341103276762717403070233776404533224477853089009028343322645253785415872799583255252836371360566425699557921133883909322113924234027528739004264112061415603755636850958309323429931650030379399912289453140251260783856696339028660298711378661717152370005886689463016498665003876096492408597946472265478565862524109445669370896740718304236216052473475303567672968413362931287363788635259848925659368776236533459007448853126930173761325756654864965249669379992488612284289107264901952858067518496325261013086601845304317002433699720639604746292527437352041927827662802324164512234440431178859114432447549307050615230948432649357232626467721540420337123839811193874682476529456576402113288400178013420017233395054414203838036483576512173852103027138448752671767162281783316241749204744578586842832941723823296757861566310710418502328037559046333886653652496321705220835574234113821673171104417347913253898344923139173061225292897655447767872600365816991877883346851747295856944900316203702182254411603749421902911119917125050519903160955010328690846070765042221770085832799752721205407751618793473537558642208478965236286928049270810692222195814605414343409557723752716486383897196784393412344594878813567964590267413236694484145052769370141896276143071827192823427067881515426500722953951457272802155348389772469566615383407851121176378118109176703484537900236779869236528864965747392988189705487194627155863311176328665317299909589243548175519544804791930859452154221491394082007755552776123376338892257475166283148130448864633451646173062244050700464878935130440103457646998094344208808825615628939351975762413613642489457349032344313215804503286957143455529535184445778899663791217251538899746196502438319124904699280638024211462884543084946409437307533050158972752264188478434918641343309169679483217347520676814058602229099604229814175298201923621551151904333795985397673066035818636094321455008855249432530312816313039162159399460444577071465323495682992800190224791338407483848302529603578729588794256192453980960137888749849441010461361763424489968941071600132542428604271480538291991069420798256189001869430338602137786598528543389258085283828931254144074091447048890809951721143990834289897824170332927594043710792936965413768252363944446675797545874743410372338383969866995981990923693316504011303860025291294447557351232788149837391008207474603794882240231082040299157049158962896554570537532328738425991195966000413039128983850419191748609846162683129375889328102078093991757739720578407683265267718259535487598224564665968815465322980464171674427074640396431079407633108316584914217148342686920737108693698135825244676123621610420210855811843063810095421229199401128513458572003463173472677000478314528783095480102056426187132377799103265718792345543295377405338750124011319456954593565037443654641707876745122780318858669272816465456245985054818801733741509322868597471956036588222183245926693190358320004431287658466829277930140130961015348808965170847603586107073773749495787282275069856250282303090406103383814783687011548128166331173162110749175187808514644876227529679089101439007685399754479498836785374986103232641881218803137870721939174202633602117171331485870101232340517393538527542626678174774835086951967653085005127577968015450198925863743602037645359053769628119995859956216398146611952922907021858695226907036951801133472850336146942041304501170093329457770871496606842486121551854890634447520465099086583436211526054909938564366462329489489248819599441348079789824037942229057325347316042812070616303514563698785292073831545845837637989967162050173416953974489490844017351893951290465876062726438547618225015839392867482519536423283780339476212193360622426189282800264573145261148889320553942686376290804921623802495887484271886952479653938388241215594722706408948201597519639598749123538650331067059401457840933935755514683727647175725926071123870243764268547278009236230179948831484490554037664415402982091800087248399496544589206538208047987456083633858305870325807873536360173582441530432609641028301271699127735357912043540168025951975580502469944185579735897708368768041200078287694603634026294491859525524022247211273248719741235152000330511147879200262983360401252370160846393867768059692873023153651493197526407766095577910130899775314436988741558902002902186719820210580499711185065348051196706806676590319116958162290480817981049961301071757984897125517957471015139690321179584610414138226964270876230846574214967891741364592842504195038467736890585607867228224400731469552933258369176588857082980988362227242773641615685036147126904675851037830313218266427066310408384665139501062336501482994213438128410406774016126442076466521064151599598956288833634450922994595430692171622053394857270464633606174427172752544507132992958683846559512082872227292034867189233209607646985955682675232111697606689504789153971845060815803080980938078306559044216513984113506260059247693307816751662925675478863614426440942160803231032965758039684397304126927079388201839131865054711651372920859804724410525128704246481399106204371739501393287450617644010524194533241919295370462379557021684647833549553974889827325683193178484671583222421608876883411194989207524096999844616154363133156870200540461807692945927788417227493783937484163840787424944706658594061709971210458973368834005323397460719252526242326959268295043113372413065003838451174288917552390346271304481944036947853788861440636459569231872058513067523669283827462454429839470213264425985271468881920259226327024237953816392328904374633773680689892427121029157664637177417057854942380984962564454594913643198153968969576431494180592649002293080093255377189326191333052363788353852046182986161688132318167748175397084079104734161533330390012477915258711888181547252964728794655980140427168956046642135537953588526364981997891110851685066856392820730788134404453234650803048887829178711474489661563155255713752527341069342552891835309339836873114788461351223362097491925174954756231087913090386367038751194143211973244795209802989713911175590376002225046863908216697256329485253654654033915308541645593169238883675231185214387672761173728661323174071622284214839277802010738491737614211084154358080394218134792747007303107575110799950137346734101455287379497943123431029511944496966986777185170620794253372182962534871752327859631540038819221206890184600471089472701092378532198546207134570298806812673019015956068403257814885520014756682921557287061039633796842501290391793893314920535103563594895432816697685395695241626926821792303368192270217194780615128400550350627586595267833734304827320017716332237788488915889019204289505420606617032599936656433709686059712201988539239867688389552954272648099835865250354906418006526306973678195210958061308902230162263154058377826180299559257836721504824211199730694142077958306389901761360111471654577718904475157187019643282680072070340289063530618415256557546454336034892148444820541255198606983151489641181495453782560815432799938377974111809653272259912455394320058707863965158289726250110723172490831604488411611600357053345875218899066308192902736066042951847400250567409042001230778633950260423518966221511472637544735246287251037715926123730598673460165622186576869483987816156892886003061196258453307191438563083884656916046515457514480946336821297216248903188971722989596222973318137821747295340199529168022585686137358038120541417238478069612911932714329455995594980465148343727958432120977914556955058744665721158872747780527553104683055270275354530331800229157990367563892623282160022454880030254838684681990641101319127620676124114618990576361868159470205007062846614020665921716443652333871322793592146131424014151157653600870128240604551022671443402459052415457726813613125691113993940496854721583291070855202126832382013612411645891171738741157957359815284711343007539790258978810015689028587437825481683765009521488054881438724753344955762659402685056975857970791910115720453720539373927135009098393674602366689016429402651815861432981037713149185356847918859590297078536779348157153239115153620322308784619990476428917799362408322765734093520495490199618438581151987369692158607531261305636559856551700796721246061092436416303890069401402070308218680630698761052419911393249977015198562529951385705396706391745642346337742170910257665424181406973846988977605344016753508003366210874945789796608585782754528293159423291971445741788262874767146044158694392923961085331142945708443194037991497159231878277999266288074198462733700467404986900245736801848562173012171654134953581283331663875046844850572496543845797822212673878544561044533613019329205884724877943559595925114342558271521672655457906640646205110965747663038622198419857017036233192788343499857867045464517244681526190530560052418974248356060052137809299409666732337619614876484047774535166045734235047785366109268822423801292138903996968818866855972636652549209552330049025009025485925759507524574257566420988558338995926130090853616350629263465740740524316911043055008300435279040995909573737322851446724529617926301372361764097581264022225640612777839767589605158560889089485852122536028642235572558792692177980800661261031095513218451450482293565559703629326564933192407033006817812820447365627959233408532507861518274440630786613398963206422817469828514292129634047244449754127984803223687288611592779151213147309788707318771953628183429643939219611359573444977658323750478022823011745392057465831012693256588061730687560361504811299606404328526572775468096606097277148656145826577263458406136901400631472888183038106612694578869774369922740481697899541423349060462908863508278860207464630749176892022275738741286864172758147041441712037831555023350122097343281358435782375587200961054559236110568143409382119430295455437709482251393912121960334234400605302120117957645029745581568507823156265434722501008672890093733191486971075989651963495711098626840337935410231749486550071543613518907483367180167407584212514152181109890815642246895287459910924385106052402059816001488557806458346247951419253727867258481026390319875113791940417452302435239658750318089872658746337048140098569786731841801552972019917290805630976981138337624474862535780787627902684571136618891839166192007449297384055062325451626839681874516688761076663023557132787378469342433404973417904662880084490903299844670926613744506074964134544706939873732337722413221294447986023684142393454987107333818616855806993233747045919562729289377431913868443790170810497020010704008832432259219136135352485080513078234797826008869772371426876218615890088588036113063831221190525345109456021394477204136720795688636156876143218078014726680371219116737792510215051236441812439541398283569518699598063689642510348895902007161237881263803020453088955809440533486282994786588839452824906328931477253941484741237246967620258168370795500181975748073315068113304323151942662959640919219593104384981131863146794129135855957433484200962944023737953338465745531615764815865751090157254317208193533112360110746730077738433774531549188143937210958729325089794815336162554729988273543884605962936558002989644003963939402701613392329748585601518429271675585733759666983930204381960998603109906548522885388521831723659308114268802232808464300428984571119345847717643479876572011053965358641711638880660614521051611361649160396060474757980806891534604617266996468630382895097951460134901236636221096047584393100919291910891630702487311984186136305147441194792801519823909953954980227297733472328634802546766358477672286382486752847276328635786107783617830321271863830679693052454533888665265510314838579437577820442155403838840874626087392486749594963938066931172847732380627399813965505288872177553020633351257998255963768925445530598201261284816257880734758234693559561979560932653308354107094574622498757747906986107194521810081460511811729148835234464472475803603471141732169424186297729224339044420332926061831304267748911321356623337728526084898780363408449436534494469243606395202047002169741159635435524279702887384325299913949415267839753002672858330299176429042107952241652250779386012721406794440457870223399076470747040205687963154851360173657012571011769588893287568277557669132532622089529669470045343685776199096287858921444743839631729068697938888830958332200733331552873008100317879467654915034025577691543129088495927885542458875222682067823774539518412078881618127165445501509675107829446101770121640880358743475955577484943120233728233811188803697052014278421371298834231357290895877644941012453769472159155849114677506233064764789295291876501470882816819233816690601742617077664459559399882317540609037180979281210206764829631940478164036369448111906100314695838679166954915641432121987718957145433989393462825229790421107837363581201482821974205909118294010478510606054862784323783976863851316132609020178478838057344254958076572331332932178301517891176754399062057154235659105300602721193185025989390852178624558111116793555395779293959896926927424932573781362370151802145723675202377332581142431376949357545386366823111582227943220541958029403626777986140966618888025270544458536795287740258880872063102874633840738402190172715193791197514236930635202416782717714154647519206647086038512331054473451911983591998863615868403024682528555448468610281267026603441187617122666416519789836447986335165600505051776052040169457017353280720036584593868177142156038600245811767721816408362468504940420163354777146883537890979919988850106823087892468587800366626082681213630348125362331438038813118601603197980506010475180804414560176227252161389476705014739915957126853365918487697555989875534263719086902911679442309576270725975790067102900204066502918662267965936529795093871170017068090397292174358196106416060790763963641981569896395487127980015800208138505805730701513415259927563849939039235803262239018516411883565208854854111293904373351283425409521406164735342541881808269837439148316141855710423219663879453422637795969407373733258181713944210399070498727272713362183667424122561950673079322458231978067081775706113302238680198936719621813102674572504301122502635782461070112827064208997113520356058740633422266274447806555178122226134036298213311600163245775864018083278343870331245100560130886677443182836224194713365319762372883631126216305398632051085552950775417728790363578721756299107581131797387369211627206452808576623840836877027952930307814289837861016210613688753089322152881560890911960469970313756981660105043967609262352030035948596087742718729414542466279039729425269758650743820861315080434205528006891388551115112995877558739918503752520624842176950099359878238339519873285896282434800072908362957220633152207793337001297603254189804243635457303751393213030298022312680788943989264535634184111827862326866111449081396943423339691236760972043168384583292333563797557253304178668593760145946164585847469345577946094837699682492399428252656164761382108057355065475079971709578733657570339245399461314230625060436135352985139091567880497849638810860485284771592481572385692344420673384631145112812105921359573962561290788385661136730693763262398833564494519286270672358646728941301132747483613084468460751639887886696994076673692650035701416838764526137063791716126047888571065049483925136702812838263586803271790140461913090109707251927091193541039750204017989264303440884013342010058382588586482247094704334850426512573791441558472803884934869287242085910841849593137826532270188243099544817084042203581657284521743313901049246880516410514689531167748784242694164353594893980895589743075318492467890466642991442021481694828565542409249485015008092228928725354233232329190669126581294060722353036771715493910621629248147152206411878779169620831003394438578799196514158799669350958656546953642731886651776575629298846285349250079891118140656362408470070042855760290084079544903989343284146431885816846332650097304401048864238123810870204461087973119939214402772427999497479887805626961194713190955470796671737946086779871501558499660460042930325013615591501749482516662993327045016053752591776914582110866000251716327781061114631363986795989871716411893048431805942459756675000402452029478197353287336210624740921637897436698720828799703701654201058356783531914209848636520837808349272018183256804409215947538696722186865327119505919012221081428690032446697428372219693411811566461035373000049880442775195879468137641058979571981292571325875813241436063960678791746594440772969129911159402320272201428641870924645739894076753310858612161015016024608249556440024876894664949727837682333466499496276661662536678913769347632217016024485921709553774666105440362819405647428798652391377877202232107635644116339947904257729409734303078560796373389528293787600042902149608813626996235877603698616629777142967492489144228840674536670574519949065232471396045745298145483364639683549387970422896565575117897254822032977809668306683064134607420579845417874646971027298917519015662352001667641592266230413319532900028059219843218068153390552704340624718697263566168614669914736475987372791334589840215352377147099477711946727695553793262516187640651949328166355636353497347881529007856532978565627768993075848641682168400188116341045133813279332466047418779419556794597514285763825342137473411824256880964012181160634218042024711502056133178640318970353051035437085294318131629214158192973886302497100116193259549528036831257637143690756899455073322959762948356384510809065992469309991039773358279324647838323463234567216431933376808454615579522874494565261985454021054527518317227063075436804304054840662833596633657637742071902433630977874066584187513752412963303061373434888433742460297718426175408836999785420024993170933757110880404352838175618004082779312291102231775723756452834550569291459321048051137889978236684713762961716387493794074487392865636432036502258192210697586689262136632086916576073027957141540586895890152160158713375682030832810739204626319222986868117440902930066254010879287434553666246297117113573450883999901656467509759574394795046582453835621392270133677133927992328533407649619145677485656358058330202655308147959415174952619543346197413219516907484731454517483552335199306152521602640519778431273013519211507041953564619273545954978526023711655653327281047245333699845785735950153648319931635954995597969931957206705639347989927233877610330409515464506421051901135542969440058004571748424977208031286739337816139259491605446948790196025508232860860082026625762445768403776111912698484978083889838679478835037334886319889959445192022652021937642978637835283874346903916365441819469396986141196808747553006462533400482281384739806500804663675191989142840139321505949654457331445856486271174939494629098946472127611761281447792775888302316773766793563889102664554675832009450825684423282388039002247211495013255893054122516236835799505682249904291508749105882439515139454699455354400681951263021571595438347303290572754831851014413738666904262271466906201799965141663800555885518785402606664340042228995326746370555814544511756629567588149982413418730373037316756058555361486166204942500224271749040833566444233514705435910532694359073854087330826642149924858033653313937003485949062969777136426751318575343639104284369005117745319802495680240919582532392734983215219286407057656988625226955178631434436853512938214322035030392396941833641541767477372180350810613634291316403758249241644596750162717588916040958205075750271235404419485320007336594508428824766408131874055801683855605511213138395228365856951909519049410656489082898065070648536440972375478088819924716951677704927918965012658172821741346285312151195195873571660906584824499960915878891520057182324746641667737027274637108560029830181360496328936093817946467162187874286752422414237187286395865134975841512533614211049747372812236392246957127814482109042214125366716119750097716515876449506513678296941546555162913928572846118071645668048178344042270493038862966216681055360269225750417941221253102484183833747651739827775601051774475958321283867091351227949845087450490028343638575867998671908095010059607474005066061588074440600921754143548388663424851080400962119400269962404913742192830912044049367852127124038973578513533349706544761797408091524106684071827780873277278919022984744091995394234462099044457042405046912433211210583280517770301146539384935019700040725761701594696238768151599620118817337125063518461456447734750538733791192553903020803759264797544090860514156296369005274473117698793911767765784516013301561261519948206944214298026267337101222975377447697757423267937339075045942353938364906201139517337294601689694576233120950921383630491597293756563346244163637651004453551546501611433809515494629192053522810630813811612962387333335444764710825115080236226716291376622588426230900003859382180302648882385524083719972240092818187853271786605951727858956882179912056316483307698041789257397357125763680190468506856701309277828457688322239887969116391120469564483859332038551525995122983869168963534325656762535841695156937612415328416747265164028222178202495906390627308504739517790648492550378965522551529619550598262459038793401258688237542567825586462847629042815866176993004741567773188808723954005337158073562135484484388504914632644021546914118206828653997357612556440264241931344764557986750594624354615260116396210490129411189541589140039653813222088045367806424227226137369070699229175971020642840014374118849688201665962500554617021344608679097766579387503288188557341838818180249883882985434664937364116869836321379652827420761666164624569576713243642191460945221499583468293129414926838891254985916637584426051053941878055454479669238081710308798562634803168198866839971864797782396694681608903755506788826289196286768394763743581082084793172045691708885350900077531806838041102979265802115078695286244000418395365171625347772401521544078297077141441946326638352003114327975669665391110684491748529759414760388983751499904719580534767124324253990656132432733361015214894003746767615326032537861047398135523603586784107479770584761037364910249950266705841580533888090692648040418522157759737635525988047562515510532682728252593537065429333948196342186702159131521258617977370655813916490994928842095450132714559058547820394383009438277600853762407621117384808534738343158225871601140519882872122390342097794051504088730153552910235399009410401553016780693007455294795687172861886127663992822755710288539401406248935420410836481464155196671515534820322675433953117560922012746023958069952342463627128662008595655520881368225464658517651642002002784167538040410617879006767333680677270501264581820426369958191167212141319736488065921075874243834746973217760338628483538973486260530043700686210828254272285018019593383382758338465050513701542161724411158972309852674050167588269442736511082152070542762647052066167889091281614117481205910652398357547143396071008373486897027490336712881898721843552876496977594848633443873899864663881511961252209931085296147041244869967517283017284494168820122737254807565460542562803440970946312069254690935729864812468804880169146104539297466928999645114268077635661177882475920422211858627029928547990829598460883283195126911317643648258571858908869370227633324836077706047836172256403963299875687800588884668530873107228613442526033022144173478862098477145385115852920198278755330761433311471769945298011158370768525797122374900015980126870363559457723264845137860723944994250337408706974762470321206091555686631315306454250517327843891420889702131331113022816683286560895229075735271086560006553449693703241788581149105670500545418858936793850964197300089054778648449530426525027079714854365804989206997915091041512028937283153116823512676197395080781217044397127951431984463525402916079963209485443670993458328949849321821000015336802913478315984419508012441436854673083233762976156603751679513315839417993137440356413447971585491438457414293949831879900529897741453775882915903972110974796853723058844271573200872150677825442135695587678484024325416916874921084403418034845075047278133079009726653417870152768920596069729574974127151661077240345370892642431824352172429104771852073208162502119276932632843440256547881920508825522308447978615723371173255308802197049202916162948349910657698954265370173718248037942867429387996980456374486612195910118353016512479616244311619508964666605009739782915602977273962282905610854385930243703254234514571589996673738392742943624266260392556275925531989340358416220958497375684462491412686848221751348792272723651162996519113088728645942539678186517198891104452838192767629645395480947501061785300737652114453915320362189442017754785575511989374967184264897692353652624923078293934656450776091154083015966774124553894251312226365942886991255714642825921223743601156964466379716395289061530456402504981120790627877575625768262211737343374449187113555697516962121636475067304020302531581828830336037690575163351924702388832964371720761448930042587857274112625207612214265524862116926853996076738475680638191182964751565157673502880325185612893325184605952043879722009604116551644228174846354951847216242274243067875471017115555359009233954360513483077190721327233354194122697072831466060425849224320990327865402277687133460141754674674190425192902301333686164342901908999693478083825213937744161761974932717032727012578029309003282747266325511456181966457473815959453434072302379916916585157009855500192854290533157862671786184585144227769609936651488345069482997123059665124872060039120897959482863137686073600063046319947722122931416179008132731411666575478375065749480280267356752917946697146335599944969444742542659913536181125474286489460789556511215630207270826963870163953638440048433778692446143255156438482065117521954370202194426190257574287638016508273672763686318438976768262971757554730546093892533407824819789780246629041257103850666962605528351141594501376482911821780822808352144380409314663375586124976472666807045164679040960556409227127203448192225981367491195512045479536363416528353038408245885358349581161275350607928844899742109115291819379261209830306312379081200756421366699534541546431327009289438162788930517123847002320556730555276988404960616535013188710032837499096125396075808454031989917098435580471214518599494708835524607025719771975267798879250622759508998411403793534231451755343993799381344868826406366006614047649060653837000112668067242333653722292376076865178906735781784826438513766803114388526208331017102588582812808903529710673948195519475035127745220468580203711049353169968073237284673289065561893390233020645423830248538508307519941398673615012902682967563902836740392827682169937674675707960090761617615077558701755157864530795947095587517321100218664142712733701874056173308850478984679107937431388618165000111749954330033419818854585875830373877524223439496396985804308086252306467056864376881868260175066671536084108678366192199151397904378065729165741692594531355093761026862539314390913010603808796241255182016406019701917200390975534110254980544322472871538971892790987214653672602306383614869632172692176726027742596099031975162182716911016699917101943446650543164367984565545468129748615631890928915063228197565358679957964030356485610914031333719135931673481422870617190176401253771744815751391756752616146383515385835863519614465109222909371974758948342717760785878273801362151618408790391345378363429722152947625957622171198325336980644615544144742289195274016665190969405973482932001687250686210367408636398694119711818813524944085947090702997548792975886678646045332120017507926099231525603563629963054830937569221563206633981869190850779990528144417456007199041586255837606552855675546479445736256190709564916149381181244805962502891937771281483194460047047596861193277707939471094468196114561105177002190741020247305447221890754194853468511853806882970375087062749578807906924199394899735016269846420054428446823483310684638518155116409431713255910057504120009570501421105887591455718784221559450410299101217391225083249376728290180930183590115275864230515524210731477508742925661350007747276997848804312957454456988056416645735680428000323466612158302884456135308691854393446405898900404097137062973188958397352570205076872947232986555753926131313755860296011470422180701367986229389662594154172271314106753674515108587854467686348969549301449509911104560130462793393377304782330525327124873950103182186711200960096204056254176816929098146445810228522826941049705501507913766233043893898143024074443999333560121802287441931918688246479915326510579626221361197482156612236856170769979363075355002230330836571152819873479039199849328262963910328127526604713408194724494358980504781925333913069151618243572977792009171954741817395779028714720483606211848977497963486944619557204044406474718163260552855647139670407403386784890742640740833787602361681775575184718540238035514264247100853365067602487433554000676120411074670370139059599933375523243582786434048848391577509411504459192434691309976518467068217282122593779931487625538607574667860462093077696048468510511406595673662973236927875941057241412520709012978382587470422823965127126219762709797192919976031241317164126177877602236072207980626600253630973687448495277230153243299993047601968642673830312091630880183699549682703778445098601966144399327375301614114450724284150445683183061418781809110345880965051066355018426722102895319662719636305119142723165536530972607338533104386674422477159891208092547668365890265681824432232649515446828136167216798684607384545752009461539441570634786054129163595402503447209633049603812955394892674399673198875076091016289312454942800990867991043885184270745104053333160238253317508684771331097189122186219295955498254453232377770807106847527026790466797124407172533707244213937460021671782014478737796808410027270149299625384512178341878168982293388319695228444383615191055121722052000352070130849128499346693498160485320794762084969773517808706194465411727989846038167055041365231720779723874172519629488943602590725079020022004336224331897775588751419145262847675637032747111824744926957943147388291043003047150971295491349588382709036667330293407276163984474526861448587078230887650870816399264771574023477668912744450821067569205440362820996533354456474769692658676796906281971508898781804524271485341473131405579966128752205712277672588388899833448296720603345616402282085370928637483737851108805833395685692372900155260189484778866035707734084813595161003310998290986485832080982642486364466703947506523749900549238612042291888396490989824033659633384643979182948685510151238536866835556421426357855878579492946070313023814197330854522618722980289844481987365549863854934199738832391824227078499243024922380463492043592416175070396722892329914557981250232643764000449893187310334366516175896560298395143945306996847154638348923707059802637944511811506928438128984257755468381884106318169431934824646481323635747790732873258403775874009743755403837474161128716956570216392960035327286453836477302372907146063765962054750735181353517438044630437335387613391236585949115653212332824412715103423064391967929618608936238517229449849277053690906209937841594221407405839553745571341435489455017788670134644069892117557086424108113218505343065159592793299335431698659892412860769797147485120598049447380609110075352837003723599116627245592970790745105097418836597124572968114025360529765029183655520583732371313036385046813678290949883991516815824559385577598183954654046927956583832029012297039960724957937252810029888247920274013253880808568886093742645018771710593726973221350874123337950242106939013413199502222489887976431743753339868520496068704869156240706587407556273508883627673590271139630424909361414332197180198359594769470354959454314043900401813329778083847679501756385884461675234913540331243807115713125771951279487140840549497358443057513610676374786666917090886346313908589262174439034767680014293261752987295202035244516247697362589187825666897079366410077545164367055940262304781383284684798203741525042013345051674497632636642019262806532170599211630352043118929081630995804303779947607956208116367760627894867194399842031104837240980416079838774616017536128738898729203005353228414441593975646647533319898867342606484759839081062646081466647055099719615211517667903875406116616487493051232647568355144707467495255482553012731664516687757683880256091005530369507530443641911262575835780117569091070480606489482656299306350295976677054402105941720020687411973234384659991670662822096453626351772035961440670541009095511992149320738120913427457279523397694815056507989161745626826479955315417463577397969187418928238099285098278854626610960507220357356132375977421469461502077263749073563014991599581127840222911044121890966371371288042498912409855041837139565233808129947715487132995546536786875048942784341451001816989343318434752402688562509359425690699270728131598259245964566137837658189030881424203498446459675463013595145175395744072591105075349914485809549536366613574378047150410549818173631207190307916181435800621296296208431048646030676005844922803558710717881441633404803572625807244704416523787189960673474628394157116130651106645900552460353693332802900763579732533410662823551546371607796826398728446163721641107723563452827854133305202649204654151637052066873995743628414054606775804171304183784907137176791736734097744409685005690797437838332407944400642179380375958704995276357573803463519130028997121653521009138020342064160897626606527238501111579770465830736429202266210200376750308144169057752696858662203949371752161220428772762815920503594582826490704009713764971067539982325965316528594774954499621640091803136715466210604250915860390237447728912724136860480892840036604309651052847919678054813765938614622859044305609655181851237169080588198941418216504124003621894865428596904558668363544875790633697086713767710130675992269598748634718548517095609706067238865135236923749993861907263153060224198974199732693299449609471454197464080525553836833481134185908666273772663075473286183516186794040915624083335753857744743123319856269858030520544889183418788666402277135283261280339058708797882253698370702990549503477752211833303816009790792769597896918128142710728159311747274420821104448644285572349290684095973429958980035662083505952921189040492429777045765235920504800111797210419251763845585502400135285974782319770572397944686135068114316194773478414333142688403534601242867632768083040764703672939549011076417210074053766540682499665844371809496494887569678952471974906363889145713484853399565727480575209899143013829367643964353960443154419422701035051766787437860409086611302800352369251430444017660999669935931568520253498680655013434736324687993935195042786514166137855314580942230792983280232782961370360670388134427639489235077603156541658580231007931619656986580560224365346457012055354762678598120932299581570914118165647628268878581322501180901812928673570307272890095027077899384745853600050808488517626615315324492679221709117598284414282226432586963291877563949211781386873210350736763962599372837716252261734335753065016011317690065154717506287138111862567377012999206211458974994780470924876172998012372003606259330494205565543314454581387397834972839369501505361542506731648355246179460584982803670615171300049803414923661932171513078202141821334208223854766277985012016173945156724640757227779262290520209645456971824500869644223887972168587510485232352435762866592688668710818542039514011172279559208360266553115748395792151240433099195592652772676947054446185686042449055609728240473888579549053132086834674810146366232233998112339736269539625935885395465829350879693984617981008988101133510658009844452635509408973262574477005276931359304779210669122013608738858210996686529668445644385443902481540506415444841001145973310897493965419308731963956474116710212537425391970874691289299952327596915773703426057853995348160301467966059270144029244053214714414090925964764270803971032348727793619763944310072613250532819139937503771787690261571822549415346982081691940500858582213037515729330126097603905173106178140410743731014000151996014933825647552142789679786634985836998030383474852875523388579167080416210087534989797442294726004416209835604966341944614285701056381756132680078226845680401435222389666770381407136380926955053134957403743263251077260841026748766619602506279895561023852030726472444818437280104914496882057290133264215781495011000088197612719265080317481448701078063042697357555207103850552446261821478797710888730297469375666090001613983537521897270532288889194393008294592725265635136152047582765125501398411827116752920836470327015014240768000473699084543208232728411423314692933228336330256373313790190549368724694696961695931548303468602334153283980006510308799077401615498532887151399263845454392592459410499235874437026114597955890512631445678575906696394642174942746788688730585838374024658335482660625549629195614443156256841526043247190404453509901976037349563430069609049338917481259796664662912670083562733751046817724744354722924897752758420922001013378652035155035961171658431447997547725782328381480084723545397607878993336733558379797949360147268621799108287962941862148629504980670021371208327120366665556376253181055211316291324430232485306613992940878512449308577347414367662680435856793832780991595013402125747292200667567395897659235562276102201025979077724939921921173955920982938897801522484271389194794741586723709091445259616298586061379620723595362785479128707458750864065939403928657673230110852068500317130371365872491039991747885358810538869073856401131098477843490077290686349783406449041690771205297336862669768758147445568509215891694141223229698810295200731798779476496503163507334247316085697270761323811579756223570513696287533936250591970549368367562203114636714073857334854342196101936569442624529958858199557577353205256875943792846741401597255453131140294177213212247473747148279641720669315764993298560317040529510762476307615934544286059035779621807506976849030245568310054704303914679262900309862283929779921858250554945899479080661146038576837941362963703528821571272305536128136703233612329321397468709615929610649137901872125099053747305307450959708620624194944267003186458351382037848166998863007918753335761360404774499333854267144471895155513934537362285396316243746230372050264634549216671324158164501597203364239199365397014059310129921585444842951622145097837044175851134542961870118058030657010308572205486933650810860871907847443195585444086354927441254309102030821559824995294021668693176218277604639634364811868480430827360701742087072426497023343621211264136062025693505221185484467901686810749348469397019361211218126382363649070147378757228813351482913462856472994863169290360061925105035391669438691585236355172598600187923484450523093750735488171766869095069795505449416292077361677099987419207540186068102190057092873753834038912130461075149549795033102434989289671055560867389133022442883675766965950283091398627142970144438790853432072164888896800188793371164806037668928283644578060496986122860582146769606046948959180374810441141833148226648418973497486122909644443385342516442741134112864393821760396536061279510430729266883773204683810499206949420224553849895239685006941487730385661848099880772826117542926858643387895315833240891643774333509875822089146781501191665445964913212033561955180747973673638148530844792596024025678791649327399311576559701173249572047538088347630235027376199964742776526721043779038365788744243010617950447560102346961937375333324714396556490664168608680115154037087419618613912010211899099648383381335375920888058529175574168400927698281523014270007232330337242958084804434719503770571926047440362669910339662976607199780157609319127569582391576615980000593398752344275296871112511809929509301388413015285205116727646497716637655298490804041949045192698082305309214739940264927249345809575539227838183877305809347837593871041617102349627835535107778276530929676744167099630463673403585770935085282205897939729130699635341373655806662316745466704858116265684110496761143928187924192523424765232102462971726012037152094377286022193330714862965611175071731489084327375839973450351601033515165244441367877201992583160958079155090459895761017599262810139152718323881316708545715547856634566502318366311949436756651560098678724526840197538412948334873575691136033298814716293705521337133832501864404287464290900790669417858144199118819142587713450953481157394935375244768188795233939601421845728910136206042108700302724574868212330097051619684451162985611435276292896091880555363336533573226849593677596174943756579236476694978344344890686498047681077235267810492165344268205447436886001048853088459021127651521695628304900666358777600885572284957552745938563227533018114082774843201934021918269162697558370343838428912436666842713265609012606697840145452998858264267873057285357717897499258423983238486379487669843073362018541242643487347674327705595311656250089446746988662570421418285597951436427128037220202772951507779564199966760446732903961360850052544720982984575323961417215120877646060874779732645419075127576454694618093929083295202814761268903100256847632123775892279779424656773762158279815459585890397318283067947185008383989545104877024817924510950545990159572676074726198260003423403666294719040389216344549149881085580887578069118307870078386817238756259032845921157595735493574785217263553237638896386040519883388129983536622225982840832477341450497316624886239507684325576223147245346373070256899743093410752196936784641169791218421974846384434740570543086198113663649442224520929601355494068368156071744214048015737379256418335683096306462904354957938756677214018239363283645337919164230297787899236672471987783338824274360311163935207130902278183016255755140493030010827551308233926271297772216591912179377008392468450063233115858435253446841273258436633632552642477126418364636881545291041821985458508325433224811454048843558370277901641054688003296640045691937142572897859711773719145549685113046334988005953687180410051084426918514440763826397479924064469061727673854945052903990237569758524605469500236141463706355517238644210350754664524014757609140546020609348099737333499752030867132626706227047193525759793133207734954385521443090608570816571877124115747555218286492089379717842110804338357729593266530133189012692678134977853273972136553107043020616263918758426136792020898309509849762596660987318935807739059064296502686687303521702191253305894922879396400602885733501213858385897249841401087167680308969719285843421705108286493796135257065005054932066829225789664020856042948281806140141984045393341876288057576767360853107524836887472888619461547226820968128749375890036821121139082036531123118523734268757410581087119363006568020457412856508046082473491952881757241546493528548690023288580101203889259222358634606389383905841907928835134505249491031601733960308688547717143331844154996456717860348702805919621089772580434243704309423943074196581380511495976176303431680890397007357646681500210213475751327676806047592236986965644856380161970255828496013258789905799893829462334778497677751246799025796603664810830672548125117489104278776561416527759703133431938226627412024652703023013845981445384527134748305885834754004906411379901123726834583972444686319747797093979963950133473265560383997532112327303698450672074457785050992816431000852026803010562451055866746449949146081437507107775080216051073285916623906024170145701034274883842519815055090220912183180563138828036283043408456387698157323637694228400738201142180846561279666463797507539617818889046048813810342014911665243707033203998062922566935985196221214469741199382754652871952778747275051643385889950372562990582407771497171455398228792710480990158101702099754930968171960347049400034721995665257844497261253533924589622487525561620997538321755337224452440859495936089972594655720220099308539591553224288078698862619671938955582861675816498177838974118546118031837071384200424215242372681713029347611391236918259874462936031888480108104578369187740609167551969674661040633183401301859651759676767487487868690254291032764245261625620321115385984350043472503575357008143069106097374476523080075467149940788428680053674891344611728140359728989326574632396098857663641977746524954334509644395335992484682615264505024171603812276064104036431514600408487198155388535122349710526791264435404888127008156018459314661232221674476369919815674149427821374435951145927860354017945436565333842605688484000494274308573867902663826029591096494901263627249770066875206449281735157876284489812347818616372644799763126277693174134261396723143427367549342104320416578951033405816111362452453113827486363318416456971213249438397853285593968552860706338888853729283156159089843724448363640235241791452789180845692698774795970350688785483499886119391462143081915730174230374858026114855648448726934466199551085509233893236558529253124604222417962269995295526950802138727145565946171912330645878112501258731384875063127183076230579010141105759797648394759915037440602544906570808324389152494149650039648044880865018927561569554557526821982115298627890504055847986914090974419906745013429885801309099232424289777878330375757561598025135839820028038419744999476160486746508293971217681506667580359449247086992900202557683214645159113884407911623113937362543786208228404413601473699689262210766476031662134512775416088081905646354093300080053164052197906295390475153585501141866904853303499405071422654792555727713981871771400034063207121335899178473328518744437835842970997247769645109302802048454954032519529207940294082183332978849244299492272017347581585085943796571415544445994141949196613522926755896956957412974809567168060063146215432088839827927303868078391735300494062403315333001901892653062746418160053036527900512536082735503025714481930447292487003982473479979849334484272124379087780500024224343620197662747931945117165750862149940560390705863451665545559958911812917899134893505632739688920118896088686890367104731704385025168215406616183942602041943397181412250481589850331092699400792112535658836410352727107254605882541146741059382281792846076938417318297336066301552205189968071715951475209630792605815971275481782412504628531813209094142312025890910092603558053651668749907474808724667172054672948079607943810401763648054711030458235624960894959392712296518895643903976306988649692112087742172192219122625999834717046431250708428429522640895716073432388193513937134416628092577240401963761929164310384419427023310190024657189273119679291174301594823661083666438852525527983897649054929651909572511281974334748236302393155816419477468259021298066076262665513772509916519283696695717862833643182568922375410986665195252379892878988843257274129257971346997046710715143097347513774200850962176528732460909683157101842334265212242071112797394862138516603437564817614270355828588348271364384037388418946241791065852914834060622909479418773132753542374777661762292297950930890935735302316223862109542095560396678357812356723740652558422297174797328388604067271390418701935013720566891953495594844046854044013656923459267925404880421445022722690079966041727583836520879742594714296052222334975619870334843047857618523086380434674798143418729445242258193014943079160648013668330864155553943584203052921882029246766760350494220513738373309886663038145049649028265837163619667392321022880485651418866836714158245581367593035560509512459514138454336222374504410630618561583369735664219198940409068897212190942419103565866822718262710370659877412054669428717852953453444002410427127810263581911984477912222310955433224628267817647976227963137959173102152239143545096373786039113756537177451183812081674194169972876177832507326344334756399787466284669472415117631164033286229634985199584517210002070663494035285880791073799970386254528585238251077192070088129159131180721281101896371898751639177477619659515108973723289537716545811643911823216008388813235726046276667426193108239518967386128966286740741778890433100795749851382348588177883552463718470227491675546427811311864752102703328206867904442603057720843910487068318626702835882393539436079718837774355037678560352873975759869984656305125416911696840475922420537880085686884542210257565172054241018433314782819485150894918007343835869038779957640231244465262818888379499907302801739473811094216063018678739802258741702838641736107734490670688165231051141870519383914694971649801497512574389804091335221113031166482950730389606266845442687424070355745279556215007499943744900048740733947406009627988374824763942319733091836442656652260433693480998456854423292570760010364456691930015278452833954989168853258786587233951415220607441855777122757014629708304391079166827271375378925902736065097836078215563686627985330903737717822572378097791597995511970722017247257152009168114084273120801472838080758908746053091988924079056653959937441491406031092786760418601904137030377455988826354769279680268018711909135589355942365118939648815614170193945506488846558516986567047935092651752468831023067085603507491394862907371623174855460916883944357414643565673706492772257297543111523914946946847018076932106528751002684424493542708873863353146539712886200268377682022137496774693146655515513810763123859535790214381956031824884447803565113593948247730812678372954228136368948956732150025256305128935937547370824868926425085449335947706600137255979459824687019947332268536061960893077490044707152991916726950138554252005152840599095552474534526291425986287667439063067434468169816579358561858526147381217011787185146399677911286656876046504551314285921046373866245202577678841248278320597182533108971397316956292819753956718832857706521903570951399944938650042389511978385251184360708348984557361395060959898476215059583801893349807586251480166958649176978415314965431980740675855607215001159633359236329857009021169197306595180914376574251569504712245630142680207820047515961572967401536419537358377967310460559180775717844616176379824654234400833893451821644922257258483259803387587109064957049716421518488901928910841233582653046384442180014750364854071275156861966507515305450559399216116623289074919388878621542857381934759635706927306873457070651599775901829699017065521724830347300223258184207472666434318734373329851189532572754010871116749553830669074358337411277387848901394721622055778604351240918394334009147794806831162087332660093956864311057670264161294889211977378347118544579374018068820656625267438250548455696589181860701588503332917668107284249259542133305712068393705810926577727546803360492018532071618056745480892486676424243123823959393172650353779692001240992167017786014937657825673658329342738217281448722649759887057409567925499781989996791466665652708687965076282767251574662861523327205395635793684055962371749490786057107831030749174026397326853350016632804214301781165120340728436176205586052336738719819188259461795646009828049680236717346939728516798084620656655328698778952630253019430268634782220193808188737236125508380669748039220805595100451842655985479398212658211936722375140478972453990482213820002937081019090325880748898340528634722614495091268448576495389812433423681106321057228330213534345404745405590217895176469717659156299067504932504436044095090819726523549446054799344052364410432098600762840869541886422814684176945265211905427078070742201069307292871872412178471679277586509719776168142609756633177438878208541311061310381049546767111690182252595418342325646004971190761398550864322065803723753312372532701804736505267404052817323885905207854224864610941107424444273554456410887695913752258213768322941338327290645977836479735177696227607962769722155273329459729044576072443713315967052282622110600649403199087885505827519314922180070877412024776061003179389634218872149091246634337690408056997591435789583091321363142987831282764016318745361232032954354546338012086502379761752835047080269689829047119370569197878611363054300954271380091058551864846704652149878478181682293331400621872975684370429512990420751987610526139555174628253092764445131645490694859267237499716529449324555805594149343557687002419294328915219823835149868831627721932974120668709888687806663891881199127436675555800828309609075249278434044137588230413895946552395749628891475446415710560973504643265981378291978666233446961335087921090600273087671479820716882728528568478800116764969142069843960629876880057956091459088383775347082732375880672751713842820324611784873739026003332152134462419760997321076090366859479187388796616391120925032192948222221940082033404328454164533898068642879173880178538695655784505356098186173974081477238862303218629943015486079379324656616317056888563789048636919549426153459542700138104663451769909309625815393881331949701775855358737235609650725847465745909697228416738552895713650824862603557398664918152326243369598094870643334732887405213470331775469911436235995982933947507310656779053902691506959878878049038554299501101928313474703303026258575851709085150813212534421395752419578452527519234564373946568629367994756037328647889831990031026390097147232442285662428816839934124514741143366952662204999341967663002947859032333917709032639982159598750158707533185902659809009883924432726188635432753234551433899461338463738255554536601894843356648339256961117851401172433038500084389850339886471422569880624274906687236311742199077276052132760985160180298992132278353621847846473686673449433681196212865024051746985537822668997738542862494430245903595811095283323093839228026885372916806316561499243307284789849578509080676620107337490561696641315647834409821245167651260922356467479871989423601161770738411466510244540758834476688532116409720694468981202421796328286172722352105402403435051888396547662296481627775132239529373056611964930100921025685745938718041406340729586433856140485774595812556851821829462395226469078512225338232915307126482100411021116000168357814904010067837204672034848541379407608235259049539969128033933700404786059795277819304911795876720560908431113614004865629198469422311199722060809633249015908201976315045086486658177442177357360833807081077468219793901119034057187655276710109856107224266380022432294141019197227700309705205786828051445126842741859040741574204557250224050155076603252026073374630375227477901464810717233438406192581386110373897507683372502381242449272231752277698392879374005837931195677531758167801378206596174786402501943718472125932669669622638633744873645712886630977193828816635676353770275778035971773916046765348383632799893259503149666485683251982076519032560135813459205782807954218827699656026733636798153090986731878444870913392055263457043412943997859228656456535422669397963669068174870785057937031130049933618433869098759751075380910143888925747283401472534289240685306287830308885996674701156570398959116552769616504582290805967487606438652997051704696659904351869491259884468026390079637888723705301965612720085609492392589196765324235759062257972197306556719299702573051759717185475837695307698685789727918868794603657342106401924664688927285557683338629557845057237528232925024310689520620082769858757104646280757610508580528445044902495313050295617143614372474237875939984509347357293709603130930389361134416734424743383853971944522164598191641231419256878895055396003207401694555047426804846240409531214561334036494979036216056738651382699855608715561828176823183762779445712454727647555689833770401988772794370167846868362085944370380807563477015973742198003948410410983073380473044081276006777057263949073051368350578517354070342293103236894031996883514380905194595291467978117349118777482051339284623537872641083087933368193184628484955919138163573934219213309523532423286015907726868177964930015706951397396278054579438394224973513765845888426434368937682828237335217281021804029348178130122577457886848755239626266808517292752102398355415184986293054732836539336593521198898734742093122728840656555150777002785510097325170202796607682193812969213449525017355989876630086957891641037124406936439099096203923156906735833631946232595397348937089819649890049727283169782176478302554058062752869873373818935346479588577081310265261056396236500745616352946872152638280149519790872548412644132032607534859500227519101256745363009544924800576519908613417061287048620787400799962685555927179747616302946668807542379901021311114564525808109871785339240050789309237858972782370516341273233316553258642597166678942906816289367982409505040404008426664916850792378657137106194259445579078899824262789783208695487758000976161610113134999735785298038661158090957251760037789557398769964615534854345474546006335304211188448179666710307747087485579039085584739944817798959506836359869699100445608373091905480917450929739456999730231249769122540324948205215916301061177172623587029260675167656719789959809530607266564877093265516164816350835764816247428852613409437522582958309617092536053065517632298331384439474347785815983010940428696416927844523826187249121135852099043290337773581734709184110657195241959452642108695182980008639840293386437622340492958554638391373476209673138691489383389718483400806456027999609059509824049581180622756490516183993709017834115642455148097129079995567853331427991504662452869651410386811142303734670472911591721618158463006265685747898242192182896398050686901407739861435479299351357633100054040512210951956659457651270451309528732904425600700082966107601198146433614741130261581364948559218290047758998335113513587137824675221821566049125009581087178012172137461304065643235218078044263294035882971520024147262723387467990330338890528830191109203229675988856931045248349328624502921635125427056886231190286355797818754708776964869426496033381525690852260249235507479356731650443917502701321470645233853808806990134315125553262361843352004877280498962031874616581019262833748122146952329438577531892466855824350810551575431369692839158313489971489114260402091734671098299888808147751061485115656625626095765433863411395139698238513723191753185756837953878845192145833241159911680813242270295449686197377268394631910313076893601597450093860610182058022135913596496324019719029567495768984552648859949496142135491333842920272576179966412780008534067517925892859821374913229845653828173794139639778738855780057874506834138640070995901751189978395355929745600584129914750480502974569897455617825570993453010792181105575129810111131666763372657731648903571036332649235799021994630604066746102953612838416834025462237506629049389371352439574779118371067698838298428266499922700203420842095479107345039342083759637554573076930980196020970965368786443019780274410817733283344111055413808811852034388204313992281986438968059926957064830417797081696525402353819312310665227890376622797378762452718136186118069231157052693664163683161177011316509838236887024374971979306145710713417088113203243235581700722949024528585164447950173738695817835259739133589221311147728375566854858321364173867646833609053453309796691213875310447643165374430673187326762898101020242171660853464597067769313538874686863594697648649534413934684351218805703206390681391028550245031884908518887475092470819277701148154246421443426474886768950293397568947784476879341977676233413630913224078837369505790390866604373935848820907453692652856599436536540586710824188069718668180309290144211190190513761818865841217257599828868850097945995693852325728284280639500798030206275308149535113438196337890394591597078858345124463776088009831488149306191166465932927117943641511926517365145744963680976628499914012428256624126236012823822642188811581334752884009310405299122642023077500746959649117894357979864808054629193486538168250019995017734197054088783999694051805657460935813593341431483012046886997894205858233635173869591235903581385035918664918288143400099999865869927340136672685485598257107108042307627079313690461227541642677806961486212106976521665127728910289239279069414255750205081890147050340469321009841087004044666109653566939852220026400091495799245818667536660479944682356681814815316096348233358442429370551839103434909635084576465980829906731867239207322300246284203056320539500551470326073364425966509699632853755919807824521250737186613522610683768113997425204347532724250240214734959412641085164888073039700760079675106527345242863214620725859619180093761149284074635221059038182069951603335939238757261707844860059221092689179280277319943166816527243101921494224595356206434582479740499626510894103139148663633694810114632962982891112016543582513382739776138048919002778742030950989026236745549719272978132312428681248579661346430394643439818318254772194393783026049325341083047409965590038374884366143247433585698778035035006745661601511791563682863309522531487415568953204353655781371877764674045781742358124186674445551080833005536732095332248469696047264213448330608838504517390850551376355776462210777401596916378713492149602158453375896393438236356973804797331471397751184756785310151841818869650463025172023338431009532484139673893733955671087400932467909159431679114449908006582675583792428957423712343395399886315856277723313042733497607772932657322917801631173056378687464313505117859364540278312347266805744353576085298230418987835777626619461318750457996174616102748244849110072474268276251229014596917571164704654890912736452593952749425320963603720886615790192352488674855176513314507638535883389146492733711041388839286887731102246859373731466803079912717344084513008371492561589980601328150128501355450749257799928059008400258593546991828113920615587484913203053543899674190290108410171820738183423030835277066598551524090723313428447137336718696336189379531009480170053964535849041146275646333362865515750208569692424250166483994028027934333607398089491082551202673383477298339387830546672996911003618388861450635847403489297204332267781832699043729227604654522855408906448847568082112733341100985113210222973595925028068107885762400199094146712136100919840107521682067788917933149545570670726330752554609923830405111172018103504333595006803968743073682709172424411915756698911356670591717400498414766748391855723214813383069379610838904758881773651857429065260707908219601113294221795992615558279371788564156584727005613829012196542127602746053552844305107650519141477910404531158604089282575481351618245336680719030346134900428881482069154917353146638887261431033447699158598727775533878979980806762064519667685742643060301677134286286230940852140618958435678681952929482824929482960673773910985895584607931461500557265946649581317326063767489218663425958827631430764941650430787077305487283566081396585144225014317137652401005321461383678040639965206790192479389068635300673882555031979849289358938892961038429979589701023582043284258803777655623813195987242024685583530424683222058456381891621477839457896573653708421949507472144176721476231107882474221677351132405471737176915254459328602715335460752120317051692262245419415161354276512236164378611374099504370087512486017883757394487110038197085247047461680122854047991460859845404064826952303441309056078082272637259654508553175968629735334757862750681416406528936703776990311519139841973922362842658347666589927678353434789827792603740395049835584905084930429227214367442165858538281160662666372693939803398759094352320061099928470693454751617871827518442859022857499904956622404483262115489000193130635118416000470063016805941893272052915332610231658790179043677428752735669970353206634894217931454653966403264053450567581341894018534162660154083764887666633449784795455949735866566837865837623416371511443004624108944289310426119119696730920557260167356593463607067757815087866912600498794923540814581023539851566019512453054375878660641568718204052569134964220301554052952655375050178318816622316170440870865302945445646743715197242467736554385176379379237830890960237004093327909235549583264120348255390608897066558161041054363748805500457568533023832226440936159545484489941684556336817106604270020948063444372522753410632661428641895930294170483235657511146644360606484039828002798196000185550245560027262324865485609824984010811145292037229149955185610930608687619140092763684962333322218351341161820291477916724731960350026388273319787875836968987350967073523383952380606188581640018512741728343393006442889542014786593775542698573083540255830723641617568444907691135899376220266941187233133849199353697312207391777126296801441323006162028255569920231717208455894038934138981785501413818070481332303503534385350577411217263904569282675368419850512486943068094157532450553946215158121361667062838913902978354783740101795947815874181250559329500580261672966244811729202659827844810948423775414093160326472883827943656774617278734656872659002353711313863516126488628468685168154849823181035479748750732529064785920425343986488209550604308592702792403070554944744380892072648288627022952103918465808315917291208622215358992988583366236192798267400914606646313380116816226491804235282282922743568967141270244001103474300934294332365387512656549047540826370889192969885567641189732340152255064511594638493682902261068168508992267171930304599076758928120474236021384615823749986471587099305806432324803639795727357284192305585137169511913062258343514515031992486257648740278822379019308266100006425759517406666884216453227274734302792727552639183582691243724808131065275997800452028930533252144787541100076457861377852640740925120105864391371160855879666682001697242834061669925279607837318319976763712509378832131908500437850245680014800153226036861732385972300614024253182332586520000380546013809716925035000772448476929171179445925372413100652126864229765693747610923295592414961964259085037568184803417020886881513322424797541527621354686705051822788906674444178992000110669564405887616769778417109298956236572590497185140815985215986032487581255269098665642467538034516207357465039266489131030137041335094717634438086383187267464641729707618216701578110642748796966317525943386753930103602736305769432345676183683814853882100881929191498759113444424198149785013651651147392878425475225180097316215033422343909729812593252952884618777216050124495573607581899159248502915343217499557338202962239759886761159879295143126889501914621248291529094961407646871111679139720643904159371395997140244235010326961542542913259456148702558287223924977042664210430380722337895595132448442410372249075195707704087614634980419139628112568420324792634773450544533419442175793078693394079288540989844198578436639676155979467948032898939831898611220476644612644566944050250976021292656613227212696241073925206761037593064002858942586700435893929576781439232913420243751131495066711867498609625836676085495987637097409388043781364365485903554793635436795249385960990813387478146088820184336020647924642175840186275824069284075968199476998136525688526171078970461458173801643311061709392322491641930427063828448681494162324024815030669899865858902465514008118921522235658604881703153137329924208982718790325064730890524345660660102114180676039926500278584776848865850288826756213004410327153076410762539106695663781334572708054654505285846506646005967753171636669764226819529428215265785904816747486206004379934621740249105425985465647696746624825657890501221134721185018664038406293685578657655656555248248119315259409883714593041808327395827510474286057163857539867548044231899805092852185886401198923129718129708556902429400593907196580589601216756727298285543545496934485592178549120382663607976722204856589275520778588849668557421593824641243834955570547362302725728984421534693442486342415974358041867600262631887520330722192582855373126006834194114623335196848625271423869939771766303043539016169685455079024749343523571996753386760699218614615513487973170670711743520965456206387976743458549792155394568487299481809110601734022481094635540530599469352936291686151292128618054754570765675557658089322269994495042147704081972436042173422855625875326367317077654179808509429351837186364804952575626959801950144665170515151874142415786602462497233983177783066779041359537020983958823183798183584579618154693550681853802903989707413124302125088649030956983588396895429197368006334057578043549284673855922594356227421718495719848727422781767633239975241371869041242136070990387965946212220772265145104431862732417928609862133858665829596032831083950959295679491056824005689289587124851588880406406316462043232771891846956739680715398678861631410275085928756732884681317387204822482375645317481940853150003108926625673907409698087125171895402115235148791627826186575172537930912699246839735890843310091995048277555214788982434110838438412961433932649449232933610471524783483503765259550234657212766497447920726927979556817943594550144030084105549594391698882562511961451626507621015119601505735204398516745705117720676347676415250090305649869678949709204705247143593139812967881128433180405971601848414366065753364546573817594785707892993338678550673631095427804972349171917186304317023270284564056489573143315151461735820563181286579290039732762837175300362206282984631805611180752314546006520649101948025833887215214571413251594356196326823048955678380816226539221583384596569118289460895411997986078083138565022770683319301269178521735350313787284483908404528002392458098213830034692398200155232745575076632038520786468385931121795977109370306307868742051137311332021847439370811192074808972445474510260205267060947660338191193875930850870726218895763032373933671489490662417263703045428379656980713204095057880831977697270159455451094749549515044625117465826668023957059105275592655364008618163623245494906050519894037300627819628212389372020279944552002711073293235539046031571096439605004055020097266372087276874133926660735610884101523700713630211352759749157816888056973635797295905101280269866324849537921927318907297231667975504534762505001596164957146374281034856815507213433159388138488710339916307484230929442476398918358281539158794730481531370602119252591650737575279909961356686020480711413989363112730938200715425497033270249743967977237890448260971343668038415301189783732427022884758378969222651272234916227442202359544117146188020895233023675570819281133962255683186167061168925134015068605246283800625371459610829080476153608079495267641843728072599860833878537978578996182075583662953402176497388374379806187708773900314930690930826163539788620629977573473889733625228736413363049169911993344247033343627163028745965429229572268769654322080743557877431925874144174122710038138696516015416651535047649734011396713659131921913477454255763140776263699682927117815296190790202937618797627814586922170680421831236481183505990924842326064382168360001242402004824486057154575355994382098261328489752260902977240433074799294743266743858658529935839785202371755692339755108593006728281329765954135926173194089348310641554739749846162231890594897978128550294633459692498250530679155439663538115643868428703418227789320752287166687269403339802514433434443269693885191119181894968699016963779440287675472313981687074052663443675479499363543837743067775322508325954981710256266346608951215633793624738927659605667597174308436237434808965586482147645111830107695864131223482746551454365336237409592951958158880316065490684586764037020972646243455901274547044529178225266430889556910265217169665764352965979042436899416893146921164732835908914364311559276001728441085143839710320070689932936529983558929211776156321519639871050703131927260866476260662680500769527967502136966233602385591393065544204209171460986946674280698874322528476508509719404109118314752005228104623991766302841626640123001910222818904923711730400750159932336439872468064824565412912125993994029198528668598344450264840031684383049603152100779715579743855066954933852057851435726055822643571874097825186685145717010447100932367130380307537235885747835799853092219506823846925934060682566849763301299838280535451291783897359480990520242834758559778607503011399716682744801664386820558253315298357446383599594705528017042344101000373048110854035845931664233403423275341795740689971267358140670702673146367094875551171707008990021617201811757455216630305114886865641245040929394450640534506706712729727361717133063032481013816143392746977292489925587228604997731293709754035287507937341749913286580070683802854364791134714132182371505982985063825282003614986037838857242040284899901314599668312016842245676770204188063921506318237643567378150389581517488298953746567319273165607664469765425449787351228402019455845552222258178983505894758508325656271151206319619727757451655088831271496365352006512754019813371500124612888293489266582040073926335059807939529069142163574213577719925753998107070042341226710210955984627663755905353618603920501872844425099551155692565254350743618172884786069692462280746575815065685694645610918739663454878108425543411948270881561419004738105214460346604033019424574006305334175672574499483945579181053051469432447347979946454510809787857523890661057296319499364537805424919711526392682487640157540508774149260594966379921594670441166082608071076332961921341047484873785193087173449705419094814545553617503859800935372148895764601139396049258387024571139170606857806244165778780843323938917724717162110743385804818096520921304346943530093244933194678791209322735771058358757695762393588128199227230159269581186074587069006828472887490252686758198010956768615992377878065476682351692018323690120514260604036592537620608841566029481162464858354648566090363865099731239325992819149050128054785185564548552766058559443297757486238547820148958559648750019631590027363069653119727911976898706245405951848129508156672836744220986177835209599873360992817111345645221225439573640467503780602724961946435549617704804909785196381629781883812826227430903034319540743420795904941115792047166745746077369111615023316880636894641085988824335008982781432028773335380126657521038445993969466304220553015046574559887504894776555055293962132369554844012598634937975163431570102220962819480702480695378008717123165401492884149011872079198539758569899457148019198791739331197113711137285349921343171179577222171530991547642253923411052776125754448911610581347436663969662132422822881518378845674250222595789911687801590599690341901387772700280822867919303605911891250838314813188706145034300977056907837647797407625778153654029920379178824314638802990457520505467449917576032878906437036893499424249240563889508719267054623878348825162833922714645332812642995866600858384209520575581517824300438042885367178967088826373006604168458528430998869159555498035048141134470711150794672434000876637232348742628204259091352363452490345988005674244025049112090979561199316104734801158242702342032309231631788600083208897638206769787470899265305321032267053979535106888371101548773375405813540532580957591551881696840093300359829656885019242036267822847627790937627091299324097410965133170394039332164197352745385624289769153588130007240438592249539367315900836113377565191236496681941220835759292809695113296624089481865260679914444838404984453446032673163324773297704623443886866920157917980910523831511913408288548934002531574491544220819575759698052317363375127194684207580503533016698387072991124036517673408440146339634244544950964573155245490463792008865624031508485643583926702119103395268606398815178170917705326610359347471358455055160502950638011642740517886422872010279808961639231601733396450222428110728388129811738626645877313671074864771656783837921163622090014482099675889858358506818573106068425371826037949462147223401933298148504379768672868556679245797686981798304529350822361590973895043756691436324666098590293356117115899330375708685224059927303395306133815444630202389639964759855884429712593958685713720974740054714707810392151983412479824892346522839740773361339264719271834427898057461540218144572299283449202954580256043500824463318107251034072498401939221347394446828396414102722180198778670385218346154315738349812276971815054498200149019523621076673443485154433247719660744143866136637336478502232876366930761576337053377616778536424323418150497891174655031510413352009814135674159607235661418292473276224954751529441024230759817783300764753846418162987201434337238844560533281298393240782606635229203624229653232049229694130470343140420678467475747793007027712190615806980911087431817012905910014331997048110396854259800953762533344532037622068534484213004777361008382875103783017612937610851835526556888965369681578836765186869340466458460449058763162271813007136293393128272015478165735232910043942630929450180882823290310594156883837946192223603129074282367676530777497119328525822411831627602135593434199532021729026880226471165075578667321519820191048883987146436958920283004125080170661341553780769328783903818319264775006623327254261545289547358465138763480115549268054345252258615149632406790753081347264824351479886432780492149588939306645226053545870302740698243218615561871582268910241480651221990407066717297728040547065963644570706805152630199510423062272620713248390364992667576196543291321026845636012015174678128286532126229337765228146877344318239344991293118633413639632856061331614333813408066591094096379119892225467575921349831854515696600889785032873282724561211839454357803932423537242979235492544223530398425913379996043663727430081811628051323134684057923709978965400103383341925571420764339988421899187521504722032034994281038139315881083154878228523549890862101130305046841811134894909504601525960988784163009454713405233564591565940795317348284484952829609249912341823599320938435091767566198836635350810876242159465879434745927439456376553552952790916350810306317942588097495613933439780495257244678632764937235056451415423878543316138937468680464742250139718097747308866914304502030812665944900501006229865775084084827172484687700475270055196957187471508546642433165648987485970192072733543276977459297824283316123628589483870920054385807625865032566479548235573460515101569513999167799501634642596258868228068234864307355339380300663462019815449759231679429956967044059335578786712562461644604910919092492707937069899519877444705941309018316388753141489999180109289358363826841042643232971715970866141000013529206629028071030855321731164528995952861290093956987640279698291315950211343672114077886216755209215328141783680354844047698220758015998668021554244655762227906959331379564207998976589949475180604574253558949369187771472239059980271130130087589634355794529539373201538069574313999056085927845248824516207178451577656477751608408724704963150902355231870980160925807429272696823803353111518473771636264033347404143962730134988793682986730567547493445466497249108810938440695977432473859559606158364033108289168209094137465899222073091034057242986230073341292346758475614176946463669243277830970213265611196595891639051907746704622575811597339295630669306831046344239507376808036850690836154197710335051584650189249916843012277462846401740142923620728459359059241948742347020207907142586401330094577376406324313143065160328367952308177347395185816581809539530661450516769130406552017448289273734028707177260430860763130591024191467957528185209821464319444048129558356755950980941941455251287993033588110675542308424248266493306285866524534348011958989906630967698031090380652123766997371268087410724913286468305160642867854332334742474132343932277985680416169657341275864758818589822787490794856526436764238065306004513131795460920979215582443149895990343588790562414822857941793715424308046224020974891277849030118509589403381110728623706855933802657415962431821642744539890859913893880836543863271554818878260038456473357555242574351129034917021990875787304049207987055089151370856525742250966960293536352062194236548024606632883463383143232841519366636701983380507338660593973586347072874301434515669949435503614278199825886104039298665844176157030058835568321091118350025600407822127751556835894701741090689607860526818117896803211923644233564018739757122494657084784582677634374863420603246557430638696842145297201615155651346651730997512343346672743072141051169252623291079428651385734591706906441959582681665867454665297236717220962601773929318894785119469563462436452336946364691676059916677374062028550736878615234095922594174053625157498996306534508663155871084896630035230408357938945018747473976379615068433465843526886784199891021436541127814267771734549108529819832726800199932097935831595143999709688423753484755056446290944743870774792490275557155645044927652934273457819514730924081157646502382233055696531243487153751803827980048800107417768747273264122285257438343897571487483976973332634963968268329468442550353077429988162662896841029124741923399529048791634349482746696850623373248739297289317993962088947712849322250412488079758107160664294334954343666644406482083635322199905398508527170522974802475179306710807614110412582825747802162765197475699147474999456496170372075996106677453146158172975703437776335379226420026606465330656760021861827436703158678226846420322740730629288057801598454054983286385613272370293337463351850654736880034831894604480622463132980262543788737938459274850070940539873099645133557547822611278039470561179848098929043442785851081179675375117538774992544149623270739034630818009054872578187598629957390925252615838503828728806054143217602755042129809295218527839738709831836604923492790386290066672225804426174350620642349386522552667039461520829195623420943676974183939742001362966951108635706090574630976411695057014808359298167769852347773566591929110782720208994385245599214594487226302674710163823839061632714343333440700202662350223838705544370032237611658341579526190301916529378806660305403229476338475522832157558395361573945720357192625509646954488181373588813512476454365093857681936885018927747922292972557561492015535733114324185814520008781984714588580746980292760413154150879516685466705405022204345378924729772094944005068695514449002137133165219782775916579261739204723413556578061930437103262237139496748892491445952087630212722240903721625452943094905836684925127155518219747789569913707196373933408495494969992652724415674785622588433709993772929285566158949413431862554388229670078829836112795117554267785373555663488269872858784913733910348986683462615286525066988706056290664223597966862668791517576076062369123680208027195946631592562205158623044373181816794449080150646245417661678330241538771288528075242354514844613120342431313526063059172730190947582139464882293480686414156759672129752765287284141923925378182343835201893211238955714413053587815130964457174333116503670993334608183429633570291549869426691970246697254655953668457719259179321564675875191061068034796033184468517211035870174996752683741052559977753803957192427989204095036671878285933502665440803344969861415358569319046542835529212912403181479250468651668708270852598033419457918880887335626774234025279772590469050224440209666540980759020395150603588703686934382140665216607036207052285532396961151079250835778876752861015597294505049393644675274296881076427760527134820484557837676854301073461290838165622369473989705040762092821880391552619574789479476166713242635659282908186809191551999044366521510559282637697084497735822072694297494587759606239148634141105628689459105827065371311386640199362153851928707565560567204418321830239872242365814661603790602759516159031627972067057334418161529022273270297889587001921839197029307857311096670602849278272205305032371609877939584410836361084172997438647082995327484992476031654932294487581515596475926151503765466050959985774568279546262133795875360318497898301417529741907840986746046957876912331436912065104583636517287006952276195057791802034281877130357453084545806164809568551141844167287192465673949375141525891441195899450854190191554953345234512838042343761270240651365023472059052328558956093660556193498300575108663435853385692720586771997088526937449295183666958527495536660089265642888949816839791806101942969969606148313391553703029387378774874610292349218736653911654946249383245663044978363550467104479094525602145605311542331913927379709904782103278069893013313616095138955749056046290843564181557175556071205219170001644551490191753618590205514639206048669844252852761515048790615571066031903373531341753197684760358522470103943018139959653933726672573086807365578411730162729707628305099745219668969329847229113902611203797831885074832240338146221289719883433484260210104575793662591163062121489048731581041188543459006077594277912172432043320031791099713392652549251966868963148129169345612704332784936954830531716249023590181329178375873295233192317359111135474409368573132799619740163267468800527137103117121788439457078441595474089297069197949672440306955171776716761117146126238559681965800006614927862677781053632961267077523136202929734301127934895095267960988547785641423926028692632122654955406792400828100040595213135204870152567911395262129919467332067300222460840006709048166389149034180424744374947846552871489876093797049446861647465672027566792894812617966672499995347074122201872286126021450264630312844903457850700360175405893229729448493736513940683638870838144057377848590276589510330194460288503417900245482010432460940773800542794371179611099962647933011173064867679603087902217200316845693938970207934080906354035095674408065736536085423456881455543081485605596018812257388361135048829753492279215402341092405676524582795928889021154897248285015759115329687546419700725429205161207647764813191449892570550550968916293374941834668985521594962565194371540819470917100037659435946221637166447926946874632645650448626527124507717836144281930975469615073894672644635268220146950647607611455800287112262759193930994051707689828316189090096698182621071058463792801413886833785984766814368190270843260908554203271195590258161049409485508538992392112752425098462361793238425198956052518479419887216656463074445072209159142415640403607917352413588754257395408587594345184660946419668809687820028929131286681378217869193119334752459440536898795943844737330382489436011288004738408722721563212884998210754644706000966270999628067815732677585935675062663534474554837765497615049563850594778234541138960390358534701437624227722214923572077444526024774474443463213010046773474427749739269001536627099617635808967952538276769399295532956888622394451683850754520702488160243531719789840467107995635994827575763308432000062230840895610555694641022127434667498681953136267649577411010741160378768020817946341859827764595278309855039269165526419732350498246285474686020767357128017515088210916990991423541463087801107710079718668881758011848347214358148299784935771906551225546423185585171635646179657090220043067615852509117374307297906685139238244787170085521288927036603167946952998346873439887559692393468949629151291704532100377033178611474239534685442946842727451217383816631143301753772644555739247232533497674780656826839663406168960845350037921451630209050401783274433857088875941524250295893195996560341777880689451148875833333975813512533680489926159454959108935934841282676663407268877556472529023381218782703261267005141979058510975495383143764675401121598042072553400947271687381676068170575744288793839781636228996690086033332145645833759296082850715755739666487236860153539503402213050948365362896792169572578941652630108357046145742301346971629888681871902000504367644539214417594331247627110983989690248913271934468274019113249011327221685012128001816154421445307850882099688283887437432321925512707786485199666799536190509873901294889267848454754391993751184805933202974162327596556417526903565686471036288000291621042118590459245220239413654682360176505402150911733500887488553045427144875006739706355912301600573762007291549056768540138023770802061043905902525081226829211003157535104830503283544863290736433673319709716326077899429940435972550051645246436213526380407064507501506794603625966377714776171076315322805235106322670806154020353838466203683529096058760287400863130487388627230760561680271864862385540115256833655695014136003519923035902224476691136286755305605528614899102631580787394163939125113141738158690849124584192328868757193960884537304079124293779473097241953407573563081790687311774934111692781284933031114479027137642791587203732392920794730659608744169357806151427768226379229506631858476862747479366147115770670211635622258035983077585988500567177298218136146173759830367612359525091560540493576841917321476000603984822894571608198357497115493346122881611405384462935430436188064800633757239415005891154710523953181856695675197072432671562415238735568666452051563509851113636715067797243148686557070471542451654190872743635236315395116409441796467581686183309853452951076532176133977402420581225465475137724873281449073083257946236102142390150915147517099382351204703883810413830944330780594329834791931079456246681892793037998315404407758860436307641030260957816637796231039978204780716352465715935458776226512858189397213466032870013275656946435856008465118306081972055436282175545946130451047560307895100622779871661674614706938581908457617441583153544117719773387891965191702156157103262588041369418333858057050126961210897243014542117402395071622684327356374321228909200628271262066020541515809766309455766124257540541376399999984268881478479858491142567506262690350539892103821098039625142388069475957716804001978693497176325717302513356467012697178154014635515265404114222379797023796188445224116135074503217909374143232679101043973811101805430220654029325972167974150252315200312091632922761645638191461726811781966305416982602379522206551350187866214023263823408752240566536099026588350224284979586414926263284255738104802732382307235815661928745674957192876392638203061417513137063887438588993891737137464656995084249878705803765327934774961648031626735462968546068199182862186145552649156646962705148776461637118032960035340434781514428150116850472699418669992417354520887348372251556082253921756535416835104128918798982892930499455981483247520099323696641843731443027755921182444020861974807788244859349418594471571279333645525469306862080647149570158830574932959590661551123954727100990247013748487846114819657025123391260073920044565025522808926346097195676335000100954989025008379978027063412991320894476548275818082264377277841227793764097000128909410013834654842910514454675528680455607165439939387196444715089375487292341253959760170370225912494495163839592252037640530318661139263879759202833769732280413896264130343385967804173394799111573588402636542715290198277474908836887601913936281430004952554254829728035605020699693883819620335428831514834068057792430072233465421355106128266312442732111476173727919971255989371237293860881365880378658476765382232036856907977528143540013801274233695339330084411876987572740510292500327858544337815349203274659929167347470145224621966185524249562770518891876127822287606064807297809371424471946129811826533921704199340788246444395722907609792512710529133525576777591401599925697846165698497720224996777422983079651699089281779352895219879543651662786768316403041773108022176555550990673451196544669813412659367787362379225898415139624415927719734856788147740299867748129439132333312221531366329845857023061659527538169262274307057087400084345497694747805025881787443408647863095310303918816131552146938824160482858890179431781991422068987747198353568859510850895187991013716910734378315743123957236879257381629299338068393548287377558236068972185301509433200596250283592443553680443272843819184152478377713503858100159910295412115153792728416232228745598946796463151160218375667232996501883448913436262758731901532553894762753023724777646269161798299925857175163745644874848065638465070286705204990500764551371509143507795438578652288512012166503829245398099481365125810569955574178799963386866886805244917813570889212292266151247993548445310915318734906382891842974119895758309953224431497347387074052664328409380847499972921318403628203289998700393494029651325464766085787844268124366205537355863121549342279835059296354532543934968317777539127340636917332959702090412610281497611966619029565883471102448106149195234150315244701969383802642170961077312540191964835251695639007767041388735616225969694785634955738899172209822964553770116548751759122581028211529933583051677939258805530452882317063589659137971757355844597121344285483208080038154322219822984958889366960790911218238459837827072061166725814552150222803952675047000942405675751753642708506424139118599045111119329985517930634712069360351003532560643736032409168684501722628647522654654188526113958656507211493843287639205378673334961863055192096381551745222436169290564834007841423245750308293401028885076453215128484789411380033324082828119184270598779751802312368814762109063526138953085835616322026179039676473258221463411013839628732556899765928627441705487141412249435323883872225370881428030199744255511236197658955002956661258040010101586653886487529092991917088318308087149457406638958329532590316998645047340258744167803694351955845967206001715979299703827229691507420644887541746106853000655374966333602758525064506733409782363317427799426451039574468088981180975758873533218555758373228522945075590456511644246071854142145002032784839279916734439660084731472990894238856512366666924397225496095332641937477358740727725212653539241236907223211243923812350572899726635980561758265155942106154333507831955239739254696112810440631558665645773347615688310787569634682896680382693021975215341283815687536234888421138493860153894006066228810344905306310278309599818852780160848634658495776347766991658582263502711576294168661968543256860765890073252570230000762235971659116372184381286689230809313156272284701187812948406738834830607281748976680916178799682250647131929157586734964735194063659334358205027499571995101197312047341756745602960844267189575016739824994257774184889697981554823580944841450084144226291728365810414111446303597210640645010580744201468168088749946983321529189232885121621772488191479272363931973720304344259221390111798045149503203340222569577865865467098003344951242357542891906464490136628075206492581586331815768440112090671682529234584261139073090913028395141439467312320150762752891476203084090979287036188167594746366068701442476698878308146577381394714985253377094175955993839594221226937696557850568729224841530436738075356805683835786998786170137109207505446510105454320526611794244026147803812001236920156181433257968415485706531608826148419027778839045983270154706976556446647076550794328891884732607748338102964528381815736469527736420008002966349947440077053514216260949374714797821661274085133364482062862833958297367013121820146359768609827721364806041400732407444685893565369961079783612886600715130180893462102949395787848187475906063242928516306120796882634737497588201814658032333510530689134023230732985299039796152953799714625326635255967476000986115925413668352262504347855811040720992209351240542001564486145262974268028799537807557833135459068588511557464220961762637808427763860485874967208644046195097746092552400499526887429660296477057066960449022710471447242929302496316008903050334628968644724577143836147071839985761688906189719175396664800435996303528079594431551204854511290024994491012632014148429575645971265353156414805884563632205947867776564869893606079559029883883056671064533822179135613281884876999970774167007390247542368739969345434701771307255765742155034384337569385276820294048751946490472530062890998403093159574251396622286057937474456697843734077608480890397174984981964362479918431197499305021602161777151817332936188956488079966445872963600830910647285892807687829610422553634113639125954119475248296247952438873162080665804975368157989166179259493541324215570554179421723623389966272456945499170895234908843313710623560965210758227615426900686854175159900292944715947389459515078524024246285723907020354981762247791649993742711764141618435126701498748654768236782327412272104135525999661686590701478606659277448432713910057688723382809886864432250107461138160043938414686847562935944886866892716313896633102033574229490637340210181372918472240194733338443583772590113187707081624609197079162968506429452899997878499880295071274982989975592515254178489699225902494685631628645662330427843780808532515523686157805344284552416037945144654321399955585646842264585463703683073560040820402769128614779234568285569899228823467784866986751251328255009677087504265011961025450957488161339145550831714040980125868551502634294075588830011130950135784266401451263796581371480109945432573976618156826468451388709890600684258800525712402240904817803521326120508062085095569810090899513104461305452815209378249680620988999229533068618499331141078184066444358547163823167908942166323060193123147051178954649418570715131303204741940311284833689798105374049203554181378589282390253092209984923330347215820265371745318977758569528916424838159570019350812281021975892106753744855053255225469253341219277252211259876793250540722612120715316379106958038852177916782240374822520706249604777183562807537660282868653244965250412893105318863407083156565794577699669708750316034702309860135790418951868523448892404878305264340289813161789213026915920427893004301772611276471376923727611928157851648328130937834493604984544019838702178203691416359994683529009363610789473667732526431232597998650961530289903821673321323024024203858241471448311570610535133673104186857990147659131687579722834901624001572267230624209095816198567216706837191990435295117527158119630710292936675795804845946033843350427390583181690315703917565939360940826677137138005591416885194278151398788925248252714530270432476222688242143568204802011106688321252121250901541956272703287490685440802324397670966006369588167209475046161779188076760648204306420021867076917296493756771530424579667620058621783389664311422821191696050298654481951646313144888988205342724421013438916795439751137438455884870413313751157098429193596639634152955367401653933616069063400098780191980395173721132538506197246127079117496055904911306427430067384954492435954249838498237288640081399252251706631608083893699309908014394760694596571702318156708367626439890278324118898085163769014592507384829040154621112160938570893018505948277258833938758379575640174311565439893631312648776267035872305539640593321675357706118221941125551719154329263165969649447059210558418334483403936447677302099201269242758117657309521306820320665160310806101099108455468160733465643520841785033363416472441855864059344290334079429195473846230135359290684202595422384573753917037122177922413519080647392512299212878747913213766408765783966888073824788226263713226198662163149494342559526190585787164271140813102575158913585291687678231957862984287524769424408637737442694505477715190345183752643760515771066997871445670474212997479574735486581941469851065416369618026349910038869902042829476984029332473815297725889417106961032702615756388445992408291661125305258930160767788526217412183570354132410429844503178015200996317619774646878517921681953351339598257610781959189555207170759395261043685570203062514586933861512511082538897169112368335554701981793602067666328554452006263959338551817534949426821803601626133461161673696081630842937888048370002043322894530066655540101588764059204475975841106107364404390384697988408407901929559959403787493824147065503044317715040308310263445244189915607673806653714663777673310878700016436975052699766096576720768163829469423819230583511690284863577629736682940002911001419040335406000547487566496878098165406709776820401064572853166131915386001512065260244015748404165012421113115636590381624887627834668165456098638222353938990565657076072069216428759820305698001416110571869019818760827531167112179989213239120986366582239253691600269253368134833734371137915708074360729036026482356790707681539484014253678100556372002533021735134598176716526897443576329435537565603700117867664704499545550857974037281425615365549796977318556353643190952243247263532642437804000988200654482754953631407295011213477355851563407575271263151512818374921671470574472904515079283254523765170384016287083518883146842335368392917140170250430395029427894268970687075631255364223361499838776363394308924947562372654288984929744623482864857671166081522202055013366276584859013252535082225567110977612446182442320491644961244696382976290553551600992497299385286961917917855507688928078707850238750138619958942019923058233863898417687952302398787643781754579732748451962601207375252530015544617461801091479906886055025308705251866312594192874631167624999467935768616890252927109639692926366914746527666588597176348787637187857747427355263635472238147928986732418177486279799724939727282083084037614348855447224704176689002825982971837565517095189147209073624171106816122956430583969961337390305864422787729048443324482564220459790911311741728249105083501831462631522564545638367247621147288200110562690713089887048654532190169339119075826900026035095020366980950042486000881851072246160497060272290905803358392687645956891950256910601416321276304719322921385157941397465886686735993129259023765673659354055822202677583777541795034318765632963522158033163027365108776145787704516731425704069717987211627077589457639795498018166469554791158938329224813909354040593171396481246011308699947629425720626061001900669665100999502842359624327041977424861207533447673920660171908067079375926552203281895972567197205350767717598404554407758103051009221104948757187904785102629698532230022242710446093758947224721246235434874310726856653673806542109478889337635596774081226206943297562138185263254181964497038393076594516879913078625458252977679397902665757366415419817584481681819339365086307036839647308295520546937556056569336104030278761688091158219666531644072752705321183861271410480670144313187123189939019879708056640878384232802337361222692223981125095619651104395499988141845983187137918234374324112293233290584312532482379821060555399541134227487394851152427827255277393083299433260101905919667817867583704654243413311029373912726832475055066470666554104344408239769644054464690199941651234245059904072105343920816298029497150538118622064062314827797805400888426205118604810493912299621079208260329599563817647115517418995185323811983410066161296043013513386403859863110492895456392532733480268207805805646416299659644288070635047910370135515848631553936699608630905758906484613041279959286476036235291460836716296383141591756136942164706901170603116631727900949705228327016155961209473715399953665731043711057887743548676257185674338145845345247956572750511956406037214324769235197785133046788968720228451688587530796932414176054229071018620109095388515774075400322548348830131970081615839537726674461055601035036851673248100639370978980450048224083540700243998817074218313334064458101861009515693525957055948920068320272872887084490073758444593402916967872912755280578729899061199562108932264756243136297287076653433478372296415758039479484109378883908895633812712889399243646443585142121525048795461692866217752642172010069735690079874958094381545951436377480407792392710092302148489722508525607505973101683183898795771435760836786947175036508203512137986981619350177875327001551038665616682466976315073289994388794847658475472732675592310391099172761746064096772152808704953778555311351602260916741582236532676063573535931033442151567028717904046293396600564422821884871316725248995137091746700554785415514310327094607815937461047715353177643863858793464563034158470478684557816325359670179746657368648389897568348945367221572975173067636823992130997821496554839290290258493909220713163978739849784243029616456030244757820850468872079003009383915196555812271852143088808966962701315169945995394057612372387379702727219281615501899388064459046554293331841445449741258460010921279134390503455845042485333627637645268800221108943564453585370175267482824616516083466468052445600509015488729178120837530155006033742066842107653580749572669706229807571079559646620322516762309763451069550900810048959310479317188584268953794073024171165474519512731476878042564362789185204879930769079751910528740499316873617934576565782025414413093162702824034115444427588350404495585835826042055853230883012349093403727458942898315602364983500013538639648475709976097970604350819759048148873962406542298863442328822267603251349279949086529194422750673083428456670334788753537615121754183700619741256396370583313190977208618964705836716874414004535791205441495642742982231950258241582443073421068866926970331986801466997802500269572936954197302777568891934509154426517458995338207566060851115284527985575181993246236063181728726501795290504563205246813167125942498365062955277397936195512563014468048081758793784697022029573727734340160264679990340598906085355030243715666548170061326590496726224602972560389825140160907257111841287532277424475884015042421731723080229804109873397342616037003407742307472536529130844900092849836178389219134587349682294861459462384175199409896959453059747897155188595374745920411917036437272866944749617197736490255814704479674555347452651230207890853831758601761099378095355189774882012662695070054031025540332748324023153370697951911986850049902009003829899755220836291530660037140042997122120471477995920981122035336388825887757585244470503909655137099942603125276129675145498860280191611955791960103493323109654123003521551162054372673114058658236840960240208676377182462048575887022641670386891217871014098660532196656128245590067167780868486113491607817221549910467271969170824821658917409309967570693463390783046818289305210703065666452216144002085527554512401782091462478145134031473111939049209791592851204851120355775917841272527177554904430742143885177123370487496055564650263571563217089133261734261547936294684548003896910257790294743659187676787441584696328509456999536830769959286227287690156769445194906626732133908234053831658994320390114914792149936766194835986493568199581718281201114811410011990614244209109400497341512071790264856486653174791276521117450445700356518943483034352928507835341639686691372515611308393687028531955511205920482784763760983736711334385690966558995652765700817374564914447534291123937648177343925880500941601225722046406675048642927538319167385852005337785119297264863339959942952352798706521532173176573114449052222613485085142836369962859011869771665533160339384839954555724728459641301956349854787550334322945370783710496717749734855171365139102689022729021304054047754620331712814361201173927969801948435859311948807350084983628259552115931301271394159866797822367036273807298091531723702451834593679415653477038308927912276880715295585473385373289269406681165333896260848863088325154401948885197287891012778037226123518918907176306190302613423753574987002099058571942942913271791021960636166883277613871824546462486167074002979153651798402517619790218265375604164093483724787635252795434039933646090036874558889366718866220844342029654903850066654854321999150833776121404434197691613444301497084751223481761796719445508330786527789063743221445639394047101085430078683276343334138201374184753441992077790759114740590733737230022246734719171721330926913238864486438992061305422599332488946567144196935582021735393633498632303395795839886239023219760454107271550811893335137510900560638082358831590446532733182473294606714057555731735738453131102217565077540395971843142384684414160851481187338963208492583866863060925301123300077837022875284691141429226472125686339059250553499276017799734576755363766226358102012957341340751958367584319471499440716107106552207311493943319415167000674698845486754096095050004745396130966676371552133956363502191966080111738135716200176356363396296377678306935616250265394222185188578528158421208782590949340414126376694763425031533592877857762121152727604181082589350882753795993051476736274434806456634401826956632386111319589079807287620036912592863121220654048894141719432622873444061452026339436152527932615818797858756524917061225685762703195518478867441971111542338292014137218736100275955437597292502708700877202489588243680612897516163433196233984586677352051299143125217645358958088156249462924680460281029828348251731076359976329369641983812370098665931009463868683857897221740415292763466506098379435925456934740006070383258584586602619180732948900823760048278402593774297458746069587718630050472235499354322109161219703880366048521157967416124522140971852769333169729842685549082358080709516753630628116060423769821139047185462005765313363167245739943924462210566127039673804539273214233986360950781529363069148066792744274530492744170500361609476014085344413833205946520165898884490418077479624484178108126197260927125429147655425003581373585861447801438345099308826739549541010000708367682370814604226908878439612140423608882230362600090719812470319146769415993606735149764982266150524191666464857990846344268247995721518882059808733952354765646621669288176193583579526229160148520711008100234930488779466561493104641036661550741149989072960124268443292366085919975220867801973054206869730169075055196784558660038305066097795474219832924898544621326336549012551143583748902433709343005454000138138734882231515781429394184533249336808981652749922185233820933016835801781269337523626523611788943145738731601597958233401633163862685148570342170187506744426018224933694364352697587374273203966958106415770904407518220549475253028405294121907404952657538892383341764596690756842688609364722317777672286150015226661806611262064684644082424133784521983102948841809677067765201322239797536818411711144145115188875336780982907590393704303876382601593838900851584319821612609022812295612352529470998648556415041533940153819927695396390160502389818202596253650704375377278891354750226124367370491432546757559371828432510757180577082359295692424866229109391147841812301609201813544393790257185539574889785683260578621288174047739265444094221552775270172277364806343861097993508766720998256230742394422462260663484758135141216763843469545085088026196681516954361818092006754084046852935838730630904209012153463247309152091125520431312091047337394373458684474419795645938511485662996094504322787421971652199974055159226912588557482677818195079520903980966212271871090066736803028648821800944160194742278419747967611843105950067198450047161658609905069144324795286054597508797882621411596525798467446117078079122905301045655581794631426430925755859287115663106799651199676747664937907970897712512267175233177787737166524796999712810866145913866430537708844819355504332702471655485713802200227220533222079664924399252584160320082112969024259591303503110072037642486739570436765619774722883257810350638444793293047042887327440814498968200167458676519553814522839359276738512119630549921432577950072087592434639117777906487280821792944480594431939349466840495756005595059065147605452912549933054821083954021526963374549696137322033817749185707727998917124070752794691756531738493633108687820976518749905224397176298593160934484295807949375931336137490134726511894143692135019905748744321173346102054124164894669520551072606641025688463771288099581766816864596730666083123406189882256430791158081539919317114697621986055077201623092669278188649765272426144063340213389544442189135531245305394333306005282692786933204121395330878661492071116172770200492880184643548582775511582634487415354471370997622780331100465334196068304643408675514579445910692647342005027889528800895858568632865475372022814394958467379640993640602224914730554149845353184438452732878023064619514498695778164710385806565303348793245273341514487271181904975137979413732214768605550876135305528477161797524873027026772361651564742079403962641997662748548485272327296141350569776302755690687947776131672759786467326540102693546986849244142156742849233916061030287476030419965346614340166087084660965772703202628411306669398906374421999826261913588058582080487929969179911536105174066437629908619430984699300355232812373573241064070991830090436047832403359023412273625817680270715769756027013754105199747332151404679753107519884535369889973815221822726406694682564680945879009331482987981221749838637456438708500176625712313188503062435249947242177864810553730237798185014421077097055257695179533339391387820892308507349636164996043193761722435808210271929872318548298888603581157239673955994826390615943458570848418740829633552970760609475053703806406846243141733901011328136517196851768114458606189897505415211788173913855361663986477535778466679933824691228064423241531241165742371094028242581823439650770343753338061569362264237059220631213810556515115141562649881027786412837629672203815987979283355589461083476358236509575804755343654209264263484654860903328616275067486203971054303025654690134912248791147550764521661469110860399972578785181425482983572402494564406330243765406317179498157354697748368162794558135858305471875476891969225935046269425695598082547632118618816843108244384583762643831202908735623599412047217699268101170497142831627978779572780718915078881226976709872508240550876779541391568794416653173982148693000796026350699095983638885435576183215067070761488484130923282191895838627400719001509416254460655056281676651446259348178825155721746159493274784289371687768744888571215932154000776949872366399780565495402837699816349985745268810272745669439503658813382238408831194049622638842519853557951640389770219501829814960234866682721213696564142244057054369257621752741714676438858328903362771000581512398094417639470255873745983488777313385835219516610121869472918871055794503566193399039408940034515735474685740945400895082615793919978641092901488893858262903047248511900487404363378658987473650761393963680766748102755173829784770389021384242763113969409505735828387030404068922814238958048176438749374667716384096346685630989540211709578419435298399092087296487515217581399888513964342325871711441561112920686196777227241828919837422160857933273652010016329311690045098976573291760905048267479075759847292594839041793935607886912598392540781127442745483666682313679453048055293185797291211477497999908526623881234663783864154538946658771929041369866644054393044178132918962441492947926349898901115330518155700007637347925701146690561519750220113891188543248456102840239222601635394020085969185433101318526805765073931090673365498675087892284134156618422656449559102933086296445438748965878178901215922281682727059033005395915439085085659319721106222888230519673426903781655040295775510122427577331531821827582346271902791247698915094308002943581136946095989226303243087094920574596158671228921243959924386220310403921205627584122854948863843337301373898032295953089741389123835655580014791287622715858458497185500483936681300197309121933378646367675737388316024354280548418165004305139067711310338144721516471886060140502305522958221798300364048256424197999271456598135084056923941058159940992102363395303083217126607557172985291487273722925510011484734497729373231120948779747518667831196797212264186826667314879110781946604905272162480803329983272914828862182464412851945006413799229535400255937660927833532531710595871647953635131079417328798851500098700818752638558034643330826733789526925447907083319810301794029597870400837541880170199664801382241927620743546006388959651994044281835244127865083089454809407765525944991160214633339278161459954247139314415392739804313645299963314158529602698548011471467135248333798828655101470337709326023847777879374376637311067006261905180810752434139965611924339597073659473311897503814153015424889758258042926352946567216962767279985655000326841500205920187692654465902844262449673090328539330496725382162369660738801712014079108920798627723603890905291890295457253437745658294319459707913236073252869616784538970984610878610773784624197351706904133301614476843998462496318171146342717532919706201231948783406909390793351263475152674313569368025948863678580053681241999370281996616770580470375138391623395632346263427302273684216176995461541786789104755816426983668374332008206457802934272753437668257450891962896874296503445675118351216384868859320884552116392157647632476082035805298014434875989923093078278718552489743495559660423467277357152075547266035916285561714846871979929434099348827634463157813438327292680278938276343130871397670419039193718985227405422350113777059260782029632714078217804555090156862975985295155860377827026593164872810348293656970585005722253519934116343784732464424288969162607524177903110692723840082478309720163838912823635651493680425517235546603075941287715574721992610526710825223974397790133855574951354473106642117192201063073022786436214685377626080258637625277088811622801080993232429447383537218130149982616774422080161892350035437342936833196053750751679031049620482071350897960569920869051217983146636215112219004680494617946366758105577508494742921979718880038553552770348795308006608945353794943909930893273940982114404219175024301647304516815458301650408253647862140955907007536331871841756905918988575600920070437207771219312108387517385568244216655539068726865121590344229884385476983510291754794271396870950017177174554090169445664742443505344852165952503312999861227259766015414404169219109166069759453719600335680947786508980960273818918469751071916423601311989000330718285493646053359566300601938711983539224786637120033499326077157158821066350357165971625327840040341018696716431230495915926810277492852037297595073332727644235290578559314427684559341004168091365005467514510903354716183012720154821420608741351377652516339251209704858686519753757213569060734811367000998411627381822789828443060897950685375016687311230656684442804208137776039728947929782178372687314145212868965099976958695809327053000815686543620538310295197384031601585491650479125053155088518342010284492484355534426955838098904981538023179612073142824972242196256580083118970159183067356838001351737123469292527980524765878282212134772006795537528834268212588116378584427661105413233819293113687234299975918593798947687703244468966453776610058926286986107771434956388599088038524158169150223483524223964791358385970667354584288635803841036885583489041374433905444895881500893126249852203006958263336569978247700695022893889315106680093409847375087649045158708429857936932357890271211102239200177553872697815619295558484146306353717414792373015655363145789236804844147441842941015991508210281358858390803296076604547568173195893518621034332259186283065236910030325762013222346177794572488483654053365282157729086551969465709175572131400023417782253226285856240768273228314807861425795487179163195730490066773165909820945535082374617760010659178056238601730097669906313556546010171252882840783390532971165425781395987686291494170343176176314817974346753187606790253766060831081120545690140215529880074083546499876756051835727006024710401038330708545076160273804466907613225846001917441942645347917816047187139949559970404564426812604721835899459169490723665494149964899325696248243136789498628120203606325286306638194626105908789024262450226677208253955511137522077776849094121453518631202552051264855742937667859089991365339397891479030957676193085130737057144468786649178862782428036592047334615141750046920483498762001677532333114038752429076353048686675907109646915940609501351097760335747785338332045979467664389085293310776338420453030395995602293977139620018507641897522854816114006543677549377277767267866258574234756886935670934833365695164172978684934526786317284744927069522303131063376956940409571475134662438246740472652646754507085149220219011688992488885494912737557828222666395013795075025935390193890238059530837749067230149821173626643333960451470672188389754495896186807988390859778603519883305799251252481764748557176559188639567892693111309970060729393212544840856553907030877229059608136890638899596850755877466495913812917166790987627809282993347974333226595782242932083839779200446652718487373963694618738346315108102349763790175694254666226247399991731089442216884433310056765269966512384568656355317776686190181099600432161219850181309358184478058093234572636195079289497943418655298665334471249277880351521078405487383086300030032557473502963670495023193786313671099445656122754085157012359905587820691575287643396496393117908401806727841054533652640883951120186208913782215765096214558700221975766492203758650642945210695652160391032779303371216474423302640547554016573544007938240432192131164324557512231621470420082671038441679323000094666642821505116566761371317615275789872561351555494900013122080213654012978429800734961245388212416424936305770070497086048298726543921468177621338410957696168647464300739487644478361353528141836843087439385932567147198487597160865346795011215584140816949178273114964278895136316455535937836080080343671679343026360984597691808494604206685474897507546863968330557846012480011318956058379187385971234579400534245211216048319532043887999747861635952089365802434788592410722261471888469705499046755006400778095103918562361830662494270251150708430721680461779450332659995104101601661260414867588910694855492742156173306429908485530228086681298870184505037651523684927759718745009272265984007971921225452439796881024567226946193267871753805586119495250702044046700835584984447174389027090770619013509933101416927208562696977476691491767667303553110720531038160760137728639291921159540727886106616312810881210075943630097507259195455830933293426041996881537537431385236488684229901752926806794738761936756095182776387695936498275955128538426083001972389493569673770273920478804209436261842038530511818540288211488666062041528646162660068575999361986342075017977448315180698939227404535372165256882581682260667845851983814090320768868381430743384888252707203072265246711968439242274729156285397966879692648569657418279777051812887421888166128952369343121269723977748002574290667863413311405965598857533580919498593785083098542064533042401853210811075154406311838820262038185689062263587008192030847854817713531156449438689441539644511223013001651533602983098993842039375070012746339457588992543857576480184084476653794164578789340457782614579122289499212211947407513352972473179174127325120596521090492502715178652531340204746775913804865737196008896363832638491985658239182816062424387239363777435418767487507906758795188158969959936986791682295837713883863757281603440123003731034343085824340175291973706275017100699029702809038066464980546992175766423342262765707000197707861264044078494821180287410478587224049052156887767942601622978657473246848465074873488368456447698939722926960714246145873144873604603676902402665208034891294961286332802545804460621766685620598773964811070551011776379190404496897722981830329315311524409474926797278209614338550141706926921027983828506193340854575551013400927900378101897217804834827382976774226256629311059449787568082399205545705592385182374243275420501403991898955374332594163613526815758498082238083368840054743777540806108980999061182218969677052903920020045889565242636077084762407795699494127006319045594548630007715845696451719646864778122318669729886759225253735443587850904128642378533800021247649954483563618129046522971310840595773019842276327032246471137681846894218656387309142126419258348541475555493689640118142930315933400542379833070571255740739182748436952588224711532679722474505179620905248636903674493152097097644524295507168326119130916713871066825318824937391664601822956352656011805939115993499045435532003790287021214046743282244058434729207840969777699754553561394260175799913671019213615488346565933519525383806983231243029749056914622172249372311021200067430850575879070431921958094301797898558079535958362819803137328916704602578732242360782360004480331393146217969937993188092567047149971223034570100980116376101522213707109572807896332699310798728346830078508126943666575176768422229951186713113792940358363685843538000946126238179883262107754004805926996991784475941664877755381153861859530628502755949623649251005656857137166854911276915694180642464201909461985516537137096851201491286850985323750136425373690121552625008011783834313411069272119030069315537067173563022526848925942041820486514559117954951103070730709455992185536842102383056378992671549754780657115372435825031737826038505380942829430846649597126367013857399583699354980877074050230420021921851139883557272023373677559161836726325678216330424833506210911002253135996813076376099979699052058864266649675599242865170368376298362878352062953737155965221316603738654878537873607764763526898300942019445606862176653960669982519322316766086975439516465117048151859287648310491318877925111518114707771475864854663485574114432653155625979343195924150118381471959181445689115386264870602879703063174741564257555447739492302062110973035126922843954739740589296434545844261428094882282716743994200809905237619736757375757739549341610248803456931217702314020792548091158665371138473536863903352200836146278565580998101098998352356114827321830480629790003052785359481406389958527173794046522856235280678040919683004777802209682147450500539438258704905602548010598003322636139016370650064443802714282185744279560774886796699888884993601944672005528241074224636483911879515150519869696183770850843890700314931258064698743737031129010573510709369619057785562245586378346433037901476271015374201900014793969526261919720287582335008617320227404017376629334385161038184009330323341300929239717513078544002279150606174389929652817883039312770777371145851797934974014124813732487312648533544956383605073235932464675643822596830450660549062536557079231026331605741846909492617208244409943558131206796495399987515972407798825878682991190376685234708339246757134348252998632807784916193403487964172348455600355713576117710661676924272643713634536322404515118568529542925367413409463756023144469798696462496106657777019306249457819238186876539861618944726540598859209863420941994225834566724135516976373658635615710743957969173940094319572862914103484545360644805729219408616897677036158262799441723979407469160593998451129032621684330421943849470590752693862439520852607787910136302295972060450837817921637812018433535372388539012721086067302023376447759609637097467361428713913000247521886053729893089132944844911543961899693670139392910525265677920638280452435392999103651242230228288171128372457445090388064437803495459334590140283083306226566531562030067577817910639708892866402955122006805219940282142366669745565739721678755652581515275326720107869965062738326853126727237460659124167847045708498131778411249802204450297764097547070151687025990769253895177470592219922858366659664323075715117853926592931661174657369628025028108886966659952717210082290822652552173657967383061230505165938116183475049719150307449113237253234855330481100346666160761039783010460247808080635307756877460800188691537363029254394564957447176930928637326639960451955136849692320934100057684695759139952275217069710120327544127528717919376299783896056417072916859524940818508164698548712626632691370796607379420371495220247913288982253575866814069717712238468125755653644444002595986900238843606360635392876379523723090819701155401448988675448728055446375343988913712367708112032532203980789042886955104569107311473968667633709654541336098577373955003228123500666461304050514673207086275803673547530955819462441894469467456112727245949756809395930799936404100457497239474571964344172416631279720786508639320807049993409522692876038367366891108935498247398973648856305569590689967891389707637289256408735292418686166146182155697372144644894417516814639311441506637282239016565815298659552357145022206758787304551163477552043999120780232043637977474921175880682236444557931956653858971537855717591777029914049610683251619127713238837689426379255195760377361704107018130743503833230539080521489413803133406830080367119350188832885323905743988877790757265943651592373981364532016558050121756610641926609452575878285599611942072565285412819662315144726332033426801462666193492841196811137071738713189877016436176566877872610730018671044907187826198508619819032204244628566370953646361347254224209652134203358051415162375722056567314404735138487421691013650236299053485452844631237514562381544811004116358820126641185500734229613797160758080785810101602534262148831518452259694732441366765020387694231105708986826406931636804225935124535873278494973503604049268714448192771865657940606808937626391138795330883852573526343512370881610216963305210737907510845154323609412068571530298380255919446890290777198379212336738950666785026932539514027028437123139491328377910842993492782868978944364030094858838192025546440346041817101772500082862238118702657725089461639282192429647788029961166045947355320470449634647551844638069794095391240431104306224443098968884993175615725940731358602792244444892354887543407601347754729238711072355714983610299391534084367359592938140740933347196615564511186343735152296384384419621157085980896661265966426398735851034357905325786838223654764140343195466018161626982572019128168575020659248735695064539209509265319735978652188367088219747719202115408704060022044550693678934981655483080447511446253296166671235876859490501570452707822379663764454589018542332243103712507969620315875872688231589451583638788333978963895720010159793402141985650922459049255247466915900697890763478360159131661138107613396091920885845206199941292257840941752587979573121518397960299633739696879850093388534587916714555780242715379799522542692457056680750972884117771487656030260287599951134056245270454465796792054088133482901486043942959618647824639018497489113617792308811541611517767240882463211884727726058839143975651381770192383944517189044081287941944861448191337401639980598519535879002940842125137734757917587035259060954100902397815225495695064240490596558588346135099716894730165300761953820418017820048941704619666094393273714096565947163188281381242016003827863604290903981496128080307390479845057023554091778745310790766466086737396419529843996170693112379743274239782430161340091960050228787472884310242308557353749196855733716090350355067142347790481066400750467769968256379447638595788635737212091876846612969575858348806741880124607617590013194156233857972822214206776460564854410421236067338709898028961791629002627484392849856904325704201732893352402768015654981041786818813084324036924572752902373909066689133017199845938528386444074407870707347583512311747160076889289430970532998497745605801301439196711612500721962251005068085395468349070670839104557748579144064103514356154149252340223699637187705894231070960648561647367373273170143663750696599129377233488572431210798757398319211076170489732332776278021275992797200269120080790556227829037054042904576005113694815230055121603468153363899669655946696816032512438051493472334855181781812636611098184042242145289787173246337515245074216254324661256991607683997487359013582309067036374670021855116090835364244098859198088841566139469636766046770631684936761234865447915081440908786926818527292031630743752860549966667667330027462864421687222560265781854648585235920283703920625903646079261981675353157635643409517603565801813280895318679828517103377616557499343988489944398729088490869729415195825331561238374283005445631788607447862450838186928027745601626870349564238781337772087290693417595978023273285060430742904786727596889197393907220194381793619842684666650455181383330892377051514244013813891991883746728271024427848380931563008316756352055814808284078746817083549765398188349939169422828835166871445894916436510214136601448088170793145957028719571858055120630560212030123777119297051676891659105983975867787791113533735992769068034121333544693068464965883550428528081972017070084257471802228697984093390721901035508969970949503589432547416281352549146680083591378530792586090579807513154312538982485169156096580503000100655969060235088792351750247836944480309377791472376836109873915090988130288404663929406582716764365029481498391153359888494241596989796536608846842681034411030930131063895855781879325111613650991787522030910688105738864941191418188341263373779953493203005667227470839596829224655933046922225663787409354896929653184137683385247660385576194696623930364321280477662515989132979801914774834857850055430528833436143589909906679082637426366665774199666076213546487303213034889273390358906668531152087385442525356550836007189857943592231822906736711887942998333203441588260289412594152730195608290568843646491930521339361616347349878928038453510669666615340198523391339974959973729730898617554215071755246512885996333127341384680422084664798954640912024341170346585341820163482511624906651156701015314359124497796571004948851477734225821256781315562636809895045108648133979856416071216821821272543546194298237214555829360508742927901276189135352067602436354226843403069502249875412241218762383299472849066928675397603917867761500188866290926548099008466432381420770975813466264438536886075143380470747850135183096191129575357474525464794128291653161976744108433062856843853943520590168619503087336783281433448649774615664501378915605992500051171921587848900842693349002468740373733814541193640027464171771094476143471426132059624604124135876279282213813585355916950845596847482452992702884944619588081897757086174741821763499258776507321551948627232300956888273277675856417210813035740907768560354841375615226262842644948574088775977225785808216570767052452430413805214828385803635713384499145348280305223683228217634996339461324140855547017340283138122981520228859219889086380110047922814439412182978855982083593851109215478936413460724317566319802131181098947357631735168843443742420026994060649583178471261388125703194796687846499575917283792184942493320470283044458064775438982277861376208815613655260279174156363220579823733451489822236286268691140134634362418859196715045928220266264323410476379986094266142746668283187784951620881806661579037606264923227444749209044900279461601699219777441994164812148596191345891684236540468187193986665807955060953712276622889696827916904112450311914539837777422603725157039201445635067169784063513788154819335337236954756377413690417487654793191144032136309732923040860696424681878759583145225173550493038609599907823328622183943982607079519710091793173828779643987516779559348174065358233551390605659676294685134912259366850015700225073318843337242709622663722929175516616381974305424579086305200824117178260049686865935673083551740472037190024497198445440027598318848880049477567888670626195239467533878900487070948321688052056152285611182005561563253990457481367065972288323882072507674128297819249268772094640965835469849135608501164259560891472140759122637069027593484386747804865359271942936873129486812344187798172174787217563760284592003663266018254900837222532365042051895715087617404598391205137914745676780541405358679132261331073311510141763883962768207407161782154825938457779958212599869370610989191169134908320760306029264744799406788366054533344009740631452493005692589074737883438280507514816031454615246427527702304589906858636929019018507052284430806887793219405596875810752424554517409773800148237022908890412711556485459682456774481238688380440572004078339094974717022700850314710843765618384503247450963412410343413876058496674370171282307162802013422181504499868767183923645037669205867803444992787353815059236103224411939018266864105586472485645185322296839844265119203258546394417738680601118176223106526497610764128197098580797947196134500056942371333708794178131970020681816079167942113063373790944385234083107483500709396693808280652139085496606801135735436171562699759305167667576784855405571376188664097411232526548640151908793815862440971324616532802520107835151150340331833016350913797311306340279141009019794166737111191092056136583774062013365890510837567408639759941475115495926964593707187194017754164925345695736298046478152312861094634285544796472724712037188985842901969421639448460952001425821416204548781275932713582712476964405566622942565627930942542531779919967030764838678421117364293210805704936190506144859372776349211680929333088288044676563019550237677507922309979675937696839461194714229517686344967403864269919123060927090290078761414587547201047666671438730306251286014874182361351986522742939950712549526023814873271853566157742317712158034483786584852459119624079078800130593222549598261672300092681356121871486451219455385522646113559756060196293700125770192046105864266737439271607599707840475460281637158875180217224269323360150449158787466386876556881135274684823424767920730189384252687034528108099759772830232563652720235429615271981451884105101517429550739341952632569251436702949931234682291146726910720249557964888157513996460666446287752066785955668365854809469118688727966372173610249608595992346545365974738299555495352236425546917567391335047671836148277058272891899923889931288593433595536794928923216585426709474200632003349272633632653655058582853944343255931087940717970230750800595015779943456115395753524401735636473177309679671837156113502156140524209624502332142731156503267816589438730348533671081639615683029385870458576085958723382450732287777630095999130104279916945806787598700668443892246065074639346215330227947155479101049811006399476495743975350775616802770421567218689970690134790723401583853050906599288785376295440184360164557190716395636852354738204688132681799858809681871115926893320769811294027099955367791368870538532900821548064857785521187141070507892453675340700042257333274390991178589924412875475231531199201938361941593193937523959213176825426471849768686768646149506255573530285686072900995268159196977892963445983555586125698552489133622883008194598142273116864494032691657144303395283380059418711255257892231674010224718155467881475847280261410971159920720043046247585596586802308126192874936995186165568878383592248767477652316680718707080089314991190254362312790715620512469396041196843168787766947002216527182438261665080045014107563155751936500076655641134695301020388034771904108711773160470191544150645535350085451975556978512861103909046360115174743091824459014299601427800227820954491357078382726702779570854064784011907512370255284532792973525378081476531827003277415963059507488884478355770124542156411448062372877886472338810442311557517447174807726195747820824281198622776555002336269198177410268289557885789346616274390497067857195612237729728911329157899721700194550964619426309613931705027825755467363765990141722848542278660049654756412452962546042744585549077177194819017520916842324706115709477970460596727100975375432610281261974828487619997225739956212229319731251140487986188685328069467265899899285219912654916905044332591069651072657932782297803028723551774932839841601414473416199871291833378608057677296590702909761176808556048647052013621438332287306313095884056102080206760292644279113842423001460334352558459403074276879083512900265937796586409477463823654639770251713365160650906824512822084791010599031551848185761989323273459572497010995913852981015382144722381299680139903367346635574175357190623306079304335736548412032008380786999874168218384868808818845809914384078946315274720255836414368257323315590458705151668725444233137025074977787362133504834127841099945979131061341958518155013649023706738898727923334532331637379743769028916217906857455895821606018458291361400588700777780962263424684402423433404858562618021441481833600597942749467804265598065907904785661170980100594171260958412577361548662148381253445874801838780961127686178728710880105940802206204023257154227135582121155609479164492491424587508777409628309422720112881566242834259738738919809041530126610505726926757874422374830837869098204559147822423770240727483616014679772679370003053833408594199802930400063608796094719586030040635710935546636627662643745112763688224095534025564853542913235363621161444778145474050928924615984898214132338069587936663733553872175469616738939552694447105976264630809863956211830468925430265786171561879414446173013007096968249426772759186877446871509135526207109752627471720680463750588320456531887833212742489199270925018772336154449161258798575483686668354091466461885984702433477003402717685300105395252556297313977315123506645149013306018549277548095330552309413442683695449670206070123888442254200804441017524802640943265865536341822485856842861091440592578899653643686145491179666543805661337211341976462181077150062358423015811788140343021993516565791739745597971613958638604007335760749914421866644468945457723632772354762007573856984374136773763061943972295986933290224787244834604373421354910734177153015461495421757724135316002209072243322225866817356228346620360449637110901129441135776324169672287679381950542182090389677967946873343012179689226610479621569055015222376160380530480905348051773766797181434228796324779250798444546183703578379245067850893974483311206171389365035727091354484727774250216555097955707574522864626969164329239399123644711210309821897270911166056332083789280568626511357777435048967325305068211668913416428093348400555783085723746635854844125754993041676727105289004688473825234515084527847210334440070456987954173740019343052031282298156685059000055548853543974110451310591691492122804705949710984055907743303715697754267994153503516372688408210334235324755612969021901845433501286452909709050368272392943849555924707954103144016805730932702973136197617978697801780286077869728579588584371174989240076082653470513425310404699244803854654179037593896302647173244013540320242342517872665187538272596362435677006527015101362284420831199066941532004498502784434524945386746326080440919056142516045058690288284047934188307129118832242985559671763342424726448639405870414003431758069793165578175116369625175158722193276626806180165915191401779389985729998624874595295303154397828188955743342346032868684921731914288883284435007824825537963985444792660179779123937327807437477328961144256625526292281983305995234831113690164221662073260223402004503123631039099505705170270114913136152603067530348143647815037001635628052894071957816203046834688686759661633844135229157919127237651968613188685133679023601493674478120083632361856460996578640452830742902949087816255269789206840226719766607538549245945927690929792738310838509831720374771401873189386708615360842186061175296610032992207103020572489371909690175016403658687482449408535649554237042491776744772751549947245962278469133225277402963253032030272452713539992367510736853776664476618022304610542358162426324187718355040549216101770346338469518832497081362724990455681018313275343318052193445393626022953291696081553554576552457969875557813993647866276877938964623230372411672606186225143367332839649828098477536695507324767440326028582656595430448548461801271141301456376126622026263080826697532656263102120018553985951051876135029249456320452405144386998290028868187257734973873830191671931797027206202624932386015170619738900521016607012158803257006156369305748069662710636540856447779190724500124933778407134078363458024782170869699716780013055817086533380509006482055666442607238812218164988993603479826297350462163208367331444930862817270323511273596202186693073923914056862302021073996943741131642920899783444576180411831285616055103673652466724099998249684468010784766168629395892798806301532159927657601791516531203050397978888682633225288520871282553946509094442863728650349206922983465000054890394395629125354545626586970156014289642458536395084334151557507166618546443267926283872683602667168840620296772793309043527821817855899189129537578387011384576759970971347323346021027147744750265300335735935911660219918207846787359570347974872340456251275579706576575483936490755242625346936475716050175321393157345022784605352247149670948112719179025216816382975985993907453897828083345249073884191635571845996474111174480166789945887541793466469244082125957542631909152298278199032622025664886692345611336342025408656590181338293965857264526508644960239915907828945898761221475369611018978817898934967747623839890431087276047130769159189152314875844152422896000954596192834661125664600540580174981143213879100388411942503737984225543598584418307448774249406159351487751077369623498783152712577957039533151021250157161874009497797633760028595798538912641384321731525450816862427757585741991260632222369944391873608771295252556078553375624702133355968688180582329659891399135028052106339552654136791049529902309241453247431932127602952069862515374891598926159569854408067668397988146295589306681311712326973410534714281114461555671336193562249533447678410708945806355716152482106239283912286569202903234887263241591163683707360095033114706383066580800474446662644937632478382973843569405623133308471469441048279932754087976674125261478763744581497426613224091145676919063074540147214931776143677699948440163264151325023111745836882599458593871730887073662828731852201874683960578111699573003025365024744421031477320240642355540296533584144027749527409718605416328328737537497423920344361724265740169331887563259099096654344571709332910504991906572671038004944293336442463904094726176256748468652014349716199322054331711380575277296649552612777511692549729763756911309826871979189915399131480616795270391552796375234696864138036109407387479830934981985058121913650296801876099219607820831383948049435204939644802731546053704564742892277828319656699397493369503849787522026720472504631415150416662779059989772471217723577710200949534200065525770925617043982742120347767225275414262300933738088484426468681417175828986674037923641807633947826755524095262429705825719949373088701361590517567454975780509196202915695905840893943923899979857247166843046550085346349716074949938722003258823676510378228637928441593004339165217100596033805943270256469329682403919581644867485966190577191792418937067924880133598263474209009828460696797566748606783292831934970449133683464066569629516618471659192546114819909271926526442706309448516140801584616023600803938839172829268518825182032122307779082320271163312721202998719960420124188229697588572577888864434856154523371328507399010782552222273906764976027554663955241054944245903355039241403701606919727100147249940356228549016600532022526103622953573019373634896211656469918843857320878119224044573766610856700927439319180436483444342256654943530366815073971851366934320420370386210311247056016717327474803735874489271684512165246369702643650033012899376476737397137631864292199005490015039925954229464685613573452395749490625121222469061551980674745732115839652872613103073624643201536491895642854553342208765214795865643235833650219400621252978969884724533889047106225509352658869448067475129699169458629806985389803256983410927790022331307019298010292253328022725401078910801431553274003665213136341167560937168593638290835021289193773912130087475783049754704890489763330684949042665117799132159157954108318972230845515039705112932452593109671389701761820174629574105028789064905550433783807422830811815580272821480445870761864362898403002882206927069371066078040735154786865634322230516452260505146543729045426292525666079966873713765014810442325970109228604178130643788826267574842666467259928107340057319980580549132207459836372823334008615298897917622486172575599224637239356434329272318067195278359197389731536222962875779215610629350247195485842242512586851250031602015488119263231932219117325176168828008027430316593840239371486274956694274576379395630623148814045201117043233335450441536388562501976760602156064129110871335278770137709507543560245166780220045968511296998324541392523991283759807741733360269978268072675899169708889813833699395091842064669669561502777941258829709925142466028611032609430868498608577745616926857992124378997282867630046409057443633655047834922104715809969118714043649301390111117229875258716320878101052364283953875252562979214517101639523821444435127141263194612681438847551547957425635973266270448281903585398126047675439881812750075997632406573214915329465054763026635538450567000906714716375887280143287015537601049744141198572420382187088647117611905530775233446549911248951840432543965504318605711219309989991562124274380152208645496487739022318147449009741704251307094910965607552120879590204426313971422174876120512085529157822036631036556964493377342227863917215154418622837439409776539481250816262461864452026069285325478963440271581471452136714980525513652077998210179256119271551292779710145839397854673466010949687317130817039799852637585231826296262827738344252739436440876407718538350656519414173408494953444818478802812842787486385524205062816033941597564763511341688425308321704474003697996687214122701846915887198632257401406318023513470819781534605677739863410703841490888416959821832936180089082172170031677719217278763536448278160372264730306765357632389129944340769456761015102273656548294817595792785338809575419507283876063542713756005941463251270813837166705004399837729689284034507163311878555893428219905822905507542568908881294748694884835985925035856792429190629224929640139300655872867464535736521878683140502720899046828006282761010954008660263302268024645900922416055900061734298735297708179375517953506738596302652635487855725914204867187710276576983514776552268805481217937148283966934478231421767753556385808026839097041600816911425149964396870406192807484865089700503660262245343813056224993250048146225148071913112746929236204392885191221513925098842761366279899033149361499710702636531223457144443647199905705014867169821683843822635889556805536649538973022069689410608446813841570200704674545431235075673744535179543132846853301013351357627213637552248348972886078750912169241951128116980468795424680210597047124201991966978696588458754270689258928941085122186258407265109755365644792962983138290910842280625578226469915456069289554526663545500001549564124177239130576875519211025148658658196983282156753131688563704212408693299062420792574109652290522649625139310038099074219568347161529335405732711450687687709015320581379940543820228420390507691223994614755982656518242935694988877154809208024858168580258020911717994210524455386976086178067508716673469886354719116666292281907869475298136088265045207099357068422239134887591941604785451825209452878697578074522113684670224980087656432905804879052906830381259521832465459934735912842084267666681304812865743052699428857073831670362175762949788569987000055420333321045854345873348624756244060755385333226928356212572087856206035814973608789123488943699637996303913913990226109891680593042631530155723599692949702575106608781751750686553831570659295723265973058055074680773914738861154857718350552940227926872551705917860872156068426701233343781839520984909593789914761205673498736954859225439619427663687281677763611829916447993634602482829836017534100580985469147823416612729842537502158125673893592952757151148586176431809692805162120056595212805269619299615232526684066624028514770754068535972576935619041603078469619224932482443150038834907639215625167429923594730708978759607570597806370508969394070707608085842557151189348720610244743162570235017145069929744611646734892187460453250299720600319189475293271521301193411805305851031948895723577354875336693668411236486506583105331556329561592089650470695681596028233082286171595440059440306974262932760061405222398291916669871878880444025945308829954186387684095278516551830490938209816243679512437318794326399485156071483237927653596018108111039425646427170120725946441415875818997273300838669498006327560680052617477394225417689994913303850227429949133480661570987091031604232262739025492208388881292630575932710818101692636344983085864112451623301696068419950722533536589808133455997755810140726746498536989027277654546271757318705808192172939240796436560671187935884043361214156547854272026576350649979337338823778924335637748137377171694384739693091099732505367514508490779097523319536551379604439917364985172910881378549267751757310120775186377815711446081392031949374181999098700565849909490895364499372684308998295846619842986834754514814523405604418690052111221791044105119852944962445585236624797551945489756975738308380126073086149277500653193640483169815292126498046045652598032008020991664262749332155100192129912934239210892774024976939102500632817572300967925258810165578491659183911288663060555241134171435473479898227174414355957628827204415474130432931395227208480666435332861871037528803184370510331440619036578756442295557538804370168101243894265162437192893318695091070564660457925870092418318786399649889655135435374413504346050308028277321732456515251466398991253605371551735227280035347223853985746009856669189602243930552977769592685075170772152580125450400570905768853538464444993596791014617130792676606939145234029975280167977166327388500762021379935969473500338074252413742941104356216345349244274104411267060360182358057371208139166174333319993405105083524854384827761368481907193144655041696132233707699801524953641846316730819703519207743537051653021719899397960539136065670723658935349645841231243167252804068819191148664601454806169578916591436993110642624083009903100099778331765323457441519715347507716938314996585504876153099094947388680529626332685250327462839473613186265487997787359674791358627925087941367464825165163477217528299458176501485047635597365978594644838629848777846659672682247787630536416748161427504919293963376363647128463935809733907848126909233776061702829094163280964492971954031834915167410178518001702827724652038242910953605377095351910169527189865791688706187508431251804781845829370673195510913288930086304912633012303976155991980919531978595357048323713175329739522637986795987932820069161177280294294141790436291266102388795038540982785912374904346323058784643109127483759939923065210566259634548844319901886131783770537906748872975171574673361977787839370266202234460855461742305580017159835125385136518075689597972740277495801544016764779180140986619638502465843484576961593602608005766452716141566612451190218996476012879434461816184893503588232042952057722401534259462146613456604897582663001776514227626174295983666144426579092439391671098193181837316205386035741575185007876084239093634681301979358852937542248609097207451876358353979136130628370385097580422033842754868582041049779331620287307408277416208669844331813810272682048452568710984105595858874160537905056934954927272183189759450221903043138961542388248550896091694237212777459480466913540205316922587816433474737134760649716941100998927034071996959121629462894853346869614928573597693262790984265268450078103422043243724593202190026761668433703799984112244708633803341669659912287262346711974647969112717682772473314620427215019530110856281684328534970972961651361265642034931217256055180215526053932730376861967597192658942648990576233589855067694845961055072946688371307777126552264100727636325570051388281245970578909818168686229705148036044315222545323065849548829306733091356481796648383996353494638323492806766274100814503175373360993142058251200349124014535870207393369294444999622858019991308557400595247152800367348927726534379930476337870378075256778183608338406053954525164049409579671373633338551336609275728495029824613614427951435673950408525752211627792355473148292221301037843244762654280119619595987508982817782685443318077223511631473849717863749454165431476269213558774535431653740899600529909037551209885891526292772353400227190755491989681687032961772386477910662360539390180269803176098292140036636615066434037558330197807330186667079506136476014822486602896350833139717605190602101491316128333541342659680711426429094849234559431768011873105468462895421405095071697950523046390483915681971119390175070796070351370104885807371451539728077790997401738155653865605685209437788414348212592946540037834918686370564979643658791459027699874778589296255269755092507116500009656058006702786208865282407717124705334469241092598281583950446230264447136281714220663391236484438026236929729727586304100538566380246981700774511961907446104352501534195587076542885266608603730432622839738938705315004364621933202047466800800122004938771333478277567415178423568248262618686168757474712077227687936101634893696083972071822328309585840240546720071452366474872915076586113276051364728900543572633954400691429196244723986976933977031002351672693799410672619608356249460244394737791825498840939264049375833754382235751005820098630402673330572626124142734287856840852738264363857520601884250684470334857225705705204860620137820863392866704804951204244671800834096479091762771921351079704105700841975666010647242342619945534241398927256818432194871252214647081162546815317073769370622315422727883926524049491567908499479384883559759322378309377826778828472353467862097758589661122369367438901036634527176796753636602032294912523506085892693381968744841422202086285229585890206406417079373590009143627846334389065633270104729238609346707916762556418020028546818837866635623093797738328992627721452683141393147128624211224175513566239495465744169227132746150482320580040394999238172538314251417383180465270267089623334277830380916716946038683466440197331859218918428801155560718745595010362332308532514063278699685036822660372169383139812290094320533538636781718820720182039246847276983237591371590103911619685295533906459823938171154637755914299246175828597711114330760268690748638572655636679815626013197223239235203944535336900703418461248606598936760459636130098911637973124928457687902762960974789511135352075190830001508222168906926567574447142707942289767377197191637848860665841629036278598933146123814227211664129405802347876625137289329480051214602536705148485417895616050920014492986350742240116840230235728238032240909278514709328986775904180416587557270634531278271100237280614344164101415482371353679993335897892115281481455424967304234259620597417710922335587202414037629697654396151115227440812956269198957137760273004701678012219144477067402480879639271208607659573347353016692864095907325595426281611570335251416148396515997810982099671121590987091135198064905791200221423065512305449875451966656126682305042240422160662017680640964563424349365389515423424290481052033128652214095717578001409934773166370965207586067527065961616257776976900212162725637450705765520603273777697253448986590524228212602112557666946665451901180792817033068941515221305994131219228324295279047417886698382379245909234987258292404347879143707786506555391914873085838754312570581498897164818506795008461253300244352324838044524659810603983619498293877005835590100069920135437480110731566299544583155817456385888206514836979493766519727255642569380693477827527419812747356040178548659645886041481687364497059301780561824110597613964620880543011009167369269237869564523533606055175151179654216636710896700300868638492683246686656267872454930975756549184105294216299725915194201213433179454730752340948189302503004800276204027555216207893518653622980423240945644069492906422274562529624231438764607086504315568186665760993511722394769961390008936276302296443227262482740896061141092920092619098005141048631395602548911207448725695710237648099216825656774620335940195774028711859346771184158039942215489252897467928719192669021116175075853936475173787713476452101938508724455012219823032346840565589599553061000579528329119126085952372587211378234995966275125849043150809981350418717393156063213662873029897232923019526016961673350191560908204996367879202091644782979928621440854261275083262981292805373663851555764140650189649281761134508430887508019437036729012429557761174751609294466903186725099214183233737835673305564382293203760538229025253310536682292257929884229638815646607696471445047432189840018063902785672659772592796010980968616765438390302028474065170699420316527999294545991711544253185351699299167110304387347543195659163995042521849986606848805767380886670835393819222794492089483767841404296194610864708820438767263240621013030029165870268636240398383048459690007705019069232646828793591909964995574181375903220165341545449676249573403878858178069752922851315269468952869529115405947465444253085582350918248539495461861118937380500816645683528236968585990533324284968618027009949221488699659186643793039912232786150464256446347625112403042374356467531297357451621579935067608252707684268686863831768839630784072598383303156853137792671793547851619319773802318153651203162971278108786031131015955991551713807148804160136809811664233236364818526447420821758626968631803183033426347594405609366200683222148435861260228942593470377113523639689351256023657212960095005483297251264936370850541046884566358916668796511571210264733575045923388670988179628853429239965146286073464506066815526574294544548364121626013701030251655700013536231451514410198913338972691696280207135975071035701059503456227099325165746897868766450237130706047470421139165072732675286393247182280401568223835413278568173677179309479759386454091377100107407620782092309615978875283841306084382332945853336136097839978222295616601917850242396948265212508578812455864261455499761164961897684718713442583332617999898237526965083774565835201313697405858301391640359629900756231980605849112715627281422714968862820459267445182318920560042353394667476680053702377765896771079804009363965564894003415489615792660679761776914014699863242736956804441325292936634214069141983184905328828285293130659952846327492371353115498955999010679042214445620130340324583190391910585909102628610037599042950785012993429614642913007239217463571703453789752408344975193708133675050366126277349293035268060766396710170645980605502500196951563504604834425119163170393320231110470465052071653939086850339276732589028635796150511176089219897002842351851495501156747911655453364566122144713682419519302546078935971186528412896026666177782971574422714310585454279436904842788257772580546099729692084787122894137562139142080888287260311885222073751916231473356088237845246264103035783609536462069205703446694421678365533895409176315375188448131815220577480945036199790869506637623016539140907166891952891758893642708649097656531469103257754945164160371810226849393545626059240304389403559447474139992106109295771523210889967486760278147919441709017293654086417342789750858877066737240843554036084783000617963802903963947374161958158031634456972701629863854573186456432619177863004345269337378085767433616995867811260822307850395893329616460590078140538696403558207051872778799119617807416020612813977628296842978935177725264423020727727492414070200431769881229082122299716640262054251609915791722440537012090753407233067269969744528244570097496321638677491709205197861714893048244350628007776853565786042645491882128539917996361248185772986765688401355793456731835069322411495067842891879828585704953184131204121783288696892589000850952215146823842561973707983572129970812567327376250955111460684026315103975513471563821804897170417403173847135837644623945377670235444905871362328397346340819338304562880215409399872537435794562710658202399410387130130888697384575108392422558797280450642090293706506512182321799709703746252829616639341009842677931708255365369799113409957974316916288354612359382293954403854423658290514652050850740845804222043561031656212042357778875197888692850009494174104749312251568828910013577829363066148730007334188944556558821305338887741976025373876254296770321497740957066930953909392879237266356961496446257413329388988397974738120607251598693254529348091397979555614718689564939149419904949089030688343400017981818339036456391743978766359523655752498084875825777214546907707323704180430384464862697842408719480453735889175719013143896127297424889348905608718612738025013965824669014404161274491736763351184640908935238570769878148870545706397588656044442775329601781973093676517926089774460844503994964842648270309480717600390675122914339405130895589375427722320988162798631461996182570906070578846434161320622710919985530383171388208864780826885587090130552734973367632513105093653638143432373990308741841440205203221766714210589343068208097164114752382546146525040474171204423691410677793627506656731363354464859485253820457120258507458215687708267022929612868700789624225672906520928792072180483508668985371556329566164629309489130351661562638437701502632511539289528399013520028860685765749025518419276785562754817605327070525081705994264334341871388629518118607742255190525285356620624926744534813624961281819266286880729262051949108972884517781875426421254404693266824441816025043657021521698945161303689731910474397318369028194007722181647655689628570570986171196151019197784872221477583324574453580555246861335617697454693442387690428353682694626084988740721795311869743870432072893963537005749365116431556828997027815790776764952725899875435614108410792496049062346327996820798781101237881611129227588067120800490654337959836345586324433110181698824542729191942887426535046980245868874392647330976145856574863959020130157225404795171501072343174023870073728159358369999240719982767695872922954949536682905025555507949479212647436606845377032219410886688734119637431663321403071024651214761154621041205970961903398360123245120047995384351563275760007090470444565309723363060137280111611841445914706800915253514258118292811998440470414905006247632640194794153864659014056427588738833071632904039136300737994913552170857039351947164107905853744565496060697259049437844144528268957928252246235559263486294217636260764848192814100415382530624489364636010460017576496444380473708322376598325305428907711983080021739468102593856750344260634173300997578835119379551363212283566520232817074930204610261515044192963492195008414092741096310900717443946269510244017776467826652195035816608168938070167661050732033800333341436571884922831081620387834314796029688435844328317415543400053522164716940798124906471466432615553639406470167280307331965790883646656744945505951724928908566126353160789177084439765059050072500869871180680641592461389661493747567704335054825695670755554353103117471268448139154699521673434136204184030980099489301108753851102547029725066049191471141753370200395582046017506122796190589739941480238307323621954182896619586770909549696213245639719044058414029992248405579951314415226353599403638721707288055164547111510160617868668033650489178639319087795188001851569462487583201968445542428663840293342859562630097389183995848268664707065793161015474574599003930171065940091808330025768103771746811571904429330973138526393369550399801416590881016586779268243118347886769255785730085138813906041033792350736420504839902309457813085216233567398998932038213129993746619577122523914354709160041567397393220627494794220378585755461415573326200522132652980107474554866620068980813216843680317051837764245406901416231959589549004329162448156647653929504883335842681790411371281561046534717078368398800521725995735009837963407135853481946696429718416705571703832776505183402517627290735232041708221874767680499209317664684161444296514088842926556472855789664180333492915601584138847796889241268501352091790420650000757283009656651692227179870594779045589502350003723456966186522955498476660109606508431102149813589031439242444802199953436080585946859109593500623486922952749637570910731600727302563508457172993674120707689533653724691259223348064564617241430846599687668734634917761421507467165917345093496383327372540530453987931293607987594221095628637199433347813730183013370406583275514683795194973351025874383599474178604295626131053036716790368217159094754254613456856056944522358457509638363333995702122652721025968442837657991539450821484915390455425344549943974291553773188163025301885653102847369069689916835395921683380140397072101793308784102700516568731306434390593236726343640106568480081493841676110988227412280889756277186159386352744410190401038217387838103313695608915041873651540987563254897640710537849913198252609403308906839579668356136629480956068006815237491471500169483312069663051391352284023022249125796776982471351488629907887595071504809237031471350138712784232498450188405076918908355591994484536261671446647175132998234734600452202175839033978501163149686298816026240893297753288066931613205310142823608915437010173843045202330786274088910137145105949394463721971557054461502525890328373247730650857397258377882294445078914169598462341897190312656844025672223231600286781143588888391095350967552919078431858911501734857877087115776148898130819305612016292571529464585515383798485328322843508522113656047437059588084445681651348557060335096121013177806687319113917661957387452060901010688031933036163132412525969197856693731736839354254714761193243280246475656872669985294106160555571983043665839688814333389000411801731985587113196690585611112409028564666447979404344646756007696562759152720982012853072419950295658059301069685438242619021838813341405371546242244652925990713188799381042137819244670038596982967729250056163108124961362201940501591452065524869989989468315719577422646648115577250020942917407053890566270370503281711659466907736299943736910270283566222615873823750994016300661284160326821332741070705302751177563091444042762230329766801138164213984008058434108359642543297991869657886990035302115820837506600256234450676681648956788193610540003650490285431030514328754572382940058516126404759032517936192378609428544903489945518854763791739223427953502876078821913168721481892489159051788991481694525324847582769277782113881929570041309393035124593712248454293975960753926521726124006558567995628098838556371036312642179541335531193892162925832770952929501838353412824380603606741936049398839831796152275069084281973057780151416563836423991370710045292940158617390252575474258904568010211010503980219971059699454833191253379694870125691944911439459517446335237572291796655171599688920933638410442979567079505985345869140498432456403548133992506069222999532726783956024980288566168025812095053446789483826404974487060249527492346873851610460147523836144272489732796010760378830019475966651264288827817266494854787662837392830736546985781946324940453509285765777015314538536951040300524042764394883481948778774471056908095850071590029223867180136879271911329037327989918366595055089917686284046672004653432250055708905760136568395734431303594562267731733185429008890445773565777812309957343050521006196660286453896915107091883946228154661209616359155435346926519902644672021669946446857992508804310287757832768055268587116735909586774380632598750550916237011440731294439365373043707782127964774939708975926669476905413516719303544062829851974291145727630445343043629300628606854825865078806146210001414803288645099409709305125964941631017377956543928362247714641828319595634609604721477397841031155529518470836405694980452013037930344400838176451923789111389677543511860219408799538270559746930804979192706425736383364331189308538250843771941090681379390898422902620742487836164422436336677686804689173548610283219902690689612125470410487923171074571384351886759807861840376635395404757738331625220416243868355118740846779032919543186611040303474327642708429957551613310070110366668592188360677517251538654353290898728163555702630241075406946838457765976973353738578646446015832410768582587709506490003922708157993156444034870781919691370245497899256819409698961500069933891374987301910475838761782369377686113854656928915576319521110386600933595904359609949464582551709149659598405745991687352483100140924912729445077428466277127120755741574301897374772109815547917097641047509744229907913149525818003131291715597858167759623267546608214136115147145155428779759504210636506083892074704834098676648896472849856453171511860314645901195861816720923426001011657520858378296505801683301506392804006217122453529758938190657341974466250833318017138782283294851993690109369585470297195900257487462002235982568001072816501927595711827134140821530894884512786721473860615922545662951296526554996738595141461842236255321183192997811001796342846445921210994717388604866935431219266828094827390674274001988829833251811649140778528179702302345121442823383437313927058777454516456168119180558249326179211031917953085762649572892825979010769625209464070327923659612373752004017270543309326703562630089843621988635776813666378857394283223332651271543723548889615989945469407786622631706546555598538662490592768819391468734268975037429148060358980954876513756111703970049621575501443240076185265773082151293573843124757735810911540617625203797520932526089160487017499864905047931314354031627714516122631325281914984829886364395134318015560312216950729277761221202092573820085839799525964650610318671463270669750227678129746787016491687479406348377917870178683119109721028715171280183613338746174396290591718900841275158476470143278600275659022113344526157146684991465018143727068650484048581815698950782211311735688186727149448722062136868663308746823391218270083324505506313524243123388354333888382387577643115473873983922696107877652859648475367739619186987398794147157159482012308234559073877997158444803975445262946189932558633062562357592753544592105175681165041693505835595734695938690722681043766286267588102746086076796635316663971952039616220149625491144329404225979883408677359166098978705027070130239511935908822385769827775328435616956733820017772724281876566563767246448590669783380811437964470475514266956854030086565604832776185316295841294764000818628890714885023567809111185987609919871381491453985440724236158481277123153298926576620423313077866637161947953470590180025785734019033649882892965686070783448558971324945742530957289700766753782596308723516512762491997425924048440457314404111491228417924461513312250658527005130817890077121766367646793002772973155026749012149590878905860984216962441061217949468639932043492485257090701102423923229676413364264013129246206369129098950502641541714509989130945011599290542972834509981314201036253362239819072843947816861218986650271401950210167184920304785896379142797128746804262450873064744420995122493868640757594424772048131493387506615213189802101215440522022543081134942495618731915428864277214565720730780309705678007646052149951758498103739802490168471412191548119267058975583130182660068280680300917211845823343829453139625644341811565251201187827695384566874602572222868953951212800380282960965455470624550949522615857085903981378027623282399015302059134716451642899318919974860827867682468462420618931266656824460988273986926286933275271811620021184135693449301951586547843865555613251554795302348349694005275323431587674789191308338773833455929791521831544587503569817628190366590972231780967284013378819769698816687364699648992768847579887426902940352182814628351912140371196262897593904530976397289114004458130907413676176704573167704061334903650981124033639833985425511349878246499512094674169575448953057004528021277534754127684972165737155793858261004801813826458187779464805340391773182733833492772920190541304192420492560256178439474775443454627125263048576811777694949453158886956921060571432862231805857321098775216740482359342394382458682936651571209013454659992607089667499277326785927668123383623845139735445736084554841679149373311261153608929906141949734601991852654391382266652654750138851285488252650128566642869567594772737699681371339219834061001931518195340220890832989715882597452930090765848285376412038513227116418116376772749623002952492556905387277732567641014942004010545176555751953794823428122646645849153709016848084801817484771685235723427786279075162550575670248762897177881718452537537717010183815790754076710076949395612440150928554522043159866134403752223017868909051850098447284057539805364702573494474279546945325932920983649972967992470759315670504636067682399342797912455575585130596490069133683360268068667598544860089407962533125508395329528175111421001029238032501663272877140739571259748047106375270725631343293216809272065746243149826653086657956022293719891520582772598073270919669485707273376096560862827009170602104469953007322124606668059350277983667515631261735012330241758329741349829766875810981128971322145937034315449044077463272097219037051596524060552601396002631588640948356458784418269283495767766126795399224787967111972980520847779670338047855934720053892539378632681466168835646280045012988751814739188618522980559836450172217896957399282296264005831534420650128821882043015269139970027985558996551014713378676820969179617550007516362939732305899797908524713791537050410504319431756909157530209545867103016417224270265175472168269768576951462943030923736908813906755250896166787787683184633577277406763672557821939255953981358646812328753598903114540157699275942783545020819467999201697022022918817914980167267066442281712886017271646379913055852468847376158198928027081019653825557045169407879227334020807355876293721596664068969828636740498256677704421510501147557707729265445475020524283165119473506476562104484451523335170234005985870252357256074576351595481530648634357473835068524989308785826688223454828464938188666742849005772045712217719473545319879037979793805309503084720962488664206059331712824713309742345398222455089948673550967516974049869297642536545458409867617969225373384547231358776103323664613433901003417754815619455938810343182011943413285449167822163753680540629221451124723185375469558217406212412859252654322985742087436682215282658814291935515050883948252662050739531035265789254380045248215796947173829542458971702972385992814128914984917781912107704833502371345048684905216434576928219337624994494113454783214344918737332912218230648345799937885923787427897896969789773402087639730705877718728224831159435420156733015319631092705782746819834194443000361919203237049500394835272878909057242866651132966015575802871449260385369765615361019866215307899959834168055383630192130315213094038981949037541852243675257941975669156786317406683366141728087912314078626632390020397473526218238307888442406203418573620439491730925061433855490592857112264796786174942971020638168553448434550869146117982084486619809776456377211451700800186645342982552033458802114671383671890027796046916878735953966483834081372977461775549557802861605418183922707394771612253575997389125878986681166291397877386328853756345097253904118920154756425074747751094477323731943992182652840602278921139970617244502980680718880018667796368574073082728459448325823412655249877673333589021990914318917529635619922647043634684078594509491308375905980807685873141011918058523952037506619960295428004998522280779423243432089217567507433804321157967640018110719968000178812271329162480497265787998972821056592686263612130917470625717282862991225220767960858735472043543053924534118810594373234115344266896679433004871202677682275681042675754703690960232854608523907376551174150174212767950361998918418554005767310304541364112619520103491697187752755461683156377557397546459791484875903747430942133665763690001455246504972288192691682315919837839807396941865181652616161864133620356459583565469914117141659496514407353268289323986173511765322621670652292331124438753748777319828282659762832464273901176156260437550545113032783813735846917142310027275190742134959635963150226823698877005433636739866387165131199584019117227972236376603399338207620105496736925746512907417342950310988587690690231604147521562690182145969663555875679070221225758258833689059540938458675003577183714933293043343665631167960613458934866592869802004357852353947668684859303421450896371724945292885387396491534898504549953602055477789139722467462170550025696342677990617482431996991941316499856840731531130990222927064799424344982653979815080731609217300782853641738649266886820999834321597262186712361857554934499054763415274674069287506410858501162226692847992544675555832803877069621906368739702386959337040745770892395888638380228716352061810527747188000503970385350389229796456760882445006278979003980010019438657637171099993892982945510051978218579231743330528383920794723883742114700312429641700407551827783858855645833416574363594435179718445300227202879826733655029716072293355369686670906254468149264322708031442740893161848773000505953393874110163468264390691118510903446608861443728751291305978870058419397844482181202209904314187078625360731826752889131098064664402825979432472394768420593362336695173678642217727811932614438897025661867356261306357518222402129515740295647247439589008007951659801355209191831690223261913394466697661420672246153344946983058002761653075047110874904650249941207392055756003990428454310190392339732994319281928932751643365055412523700565499846961188676922973732377700719450163639254600219265169183515459477886362109620803142374650698201113727917144259792500025018505823761813154682184799245887884738920703299406230753881678873220179450614665999742842635904022890436406344789710768492698499951747786128635002238201907169212702323390292632243070046505624911581662186934525997165251738258491221849427116183649801243234855688804320130889897823531493750630559444923581251407739967554973814686973801849705747827223103517720718684381470002366296014546318675745325311134964824103011372220298618249643301957579425745952994281153681903975105301547189639229638720154790389441806291469581990501207071273479077919001641194226759126608370540800704621400462857705201875501904321981433708770240300024515184276701661096081017183067927015499146614512978457238439628722952154834926038453606478918432795895319856966115975478463906881332591101472850715345123811687743309741739118321866195489445280743983731557124339146840319353088598507292349632486935065848798279246922353643987100341263756945983447677885824244994383759249285310780771745662952012455718743624545139178476823885359654176637652639464486214790229307239876985666439244278949491606105391670196162897806516464222167476471394836775048679792371630957735580687454691054416617378033451226381812613545919811756712626497672560315509576362111709518657321960221952732005782126272149375758384053842274021889966423301959970189319396391794010261858295275534181966057568873557442232521449549736992589671850515271131781949415008277285855242013857457223044625231407139712420574870813552375725363696577781831562318224471344436777951723166605406523408066711905811796268871025009759904562443926588346849147046305242759955026019931582592727719579087207105431887187275221891397981835342094373382507237238148325756367074694757577046953781768485235956023848650458035414415955521424264403918750808209955613557099578590783260697182755384558487354263570969596807293896672325622740468147079135051064535823925083256645429664415430634968426003175418312523330340229289865857505686334204426947235854714102242326790842954308965850740444722237351241460686936831473910042157024691368392993451977894341832305319839270217270114815037503602554109695822542088220126050075628826386250759197560893195353561989703281541400062713476079631112843151144656532068879591810073041274479482980963512414876964921998064886555435786562769725663407817277561038045202252828412502297678151743051995445392012609391110418229473066418426418555795598364689206338211141481118468872413800061694071069754565075949073372075751789945429907527101571970155076530789030773373931013002564400707059788749097759033674192826527205668724696827177213252240173988954968224110347160069999367326577203996190440585811848274259682310428289554300005397544865639267207702174022446877648854253385361780642752572887595392073495237790119278991650501193908540748170055785447202840596369154502712179690619896379304794657379695917737140616039975017447067185116983468674233918036462767277365401066475372632996605751807333325198075100766290391915676264939376912179549485087876698135796867805495147004205645132180581700520806961423026136862192380631783784226152896213695101605225391984551951941973381636215179530739053022724934364105510694261518264409667306406127349407461713148765776726465020862933830101207643099519037366712071904556984179647861961790028131591222262843092146759935429480430255466732870661370700632163572197011366553327904000999282422742047765897019417948593875202437686629225192029058690767751149159220884097622707790940863463372957627782536072162607641681663668367369378987181107921960613767218436159768165407317527038643434937613164608994232124645035500641463303527768205001432058455744550848834184932959946560202457718573789834505072378717673773409976564660727879922225741247084774681453273318060192483974445186390361715993766490413212227411669310808378663897834268395518447839918013187808959848101622706651975296117248359690494908897554596377576343115210779501295367983402473142538955656959157522670224314755843933795959590738636245474917932566501019480622794775296071281264491798989371314477095313043768314860108365489522550416836827016281426637935958494412327028774517331973967774434643768033096729130863221102182561465148333599629699015690208695775793399167497155547213490976109945236092171691579169726459393438197091548645887089074424539352142011136574437119019876924498530524189839367230569867689310565069815212051978748553217737731563062256042171997579868832185124611062200931346276050322745287460933400771618564531661946692213520667707380243338270521127665941595605474421054417254611468080126844821365487995846582737881911288142903684725140045163059582320912783806466037883936053232762628564028648631145214360964314881225700849939568082972644091059499489716737665401710072290358633751452582644445824852761629412823582682426082456320078827237839887282350056759033853853396149165233926617050765352817500189710598957719410757124355149333591876340610078858673086030251090604484855109975564345842364724277389523257049601015619977772724085916862322909083600426582748502655925624864558830587804245117984566095054819147250623565908986518184976137068372634112884307461264576488395244362974452786510825945955248973839585412910083457759801703105027354573120844266580486813118047805761571876948301648652462593455566504057370318062894008941710356776644899096667539960036746926516979174997816870453495344197319091453790330979260769599192614290964798976906112900802955346825840676081887236300670149942947931759758776960465508182210709359760780293071707687543175896641419282313563585332801986686484356034122505737105204185074031337678252687372564806259594147247526054379079166797211685444437896502952846445486475177125340043442610413528928870509335946941562426642961074274310787703943845243103410638432076982253161140478954191720609234445166870114504282793058041198853907092019842640792460120258511021723171884030162330883581159769863146727283738187812923021076712940843341904393351467390914649552076461878173003513183545327772597630009575958695108322534528951351966016277574962220012747799603341070578596062088129532935662097515827444889296018305712263778243358497475358572825110495764736126235936001272394943140792607877791101766254403402019617705405588735395014445362984707463770082184892735184076842038982769756648328920739913683263259835700314227092939562587188279243094834456188488315445943206098961233271523004293801505460914353051513123949941810205957682034695431423702368104829675454411887523861439160835423097840549585150112479422023315918012086935368467280526540717282861965684346780308202042448945788223644463105853472364100057302808443144545588752923293549435256352065970859288937239584657670496873582719445205034728904915212478311864460597482907956852568741511429124590740402381220080812045790152207106898811699557974217322136599234996245927514993492477191819907763926113468036738978831125332729171555388463511888684748449458998459707837988242051490251192087693247669963824198799288280829192297272162417260872751502410300671758011806237919954415146191344089222570809557744531069614509326072041104822151568731254701133917581233103192310407255780119450847692348579355071239727963686664419036882785694415548315771250953712280801320591743810440189449710558832821716440005582284978534375586226083481898765525181223564608156465280708023093893932711338580895390582242749895403315292254909309240897906468575288348971066769204987686752862244996727178540295052238438333966408791248457820643263505406816268671934212009270652085235459434618259436158447828893572621941752704463634440641385835157544267616979719063048921725666937834028701780475071542420139443669670905598741619760711639231554260374410072148074147465095536733672157244361071231490165258423023516583638876143901028796902832835540020543425518017844496536894067223289034550041368134308198798630738032213908885858909313451652023687587848078652628598516673423578111756618053393979467433766267269398678268788804301609535901048284263673470414355072043387757396539244076054200325140463076573297321851160842596975333407711542224601578959399406721723502265678417411209259017719751984219424404756578239655679821952501708264521655945949575490560151325343924084143261516185567447733537436874349949587247916715050402547619332682702358125633038763589788634293473054304812143741506914777027221459299459904395986662617182940222245264627591981084963467895211670428368735550102218226586418885372706304278818566942879163440583375003870580469799232329628836471140296059813721785492984381638795879073329854523235442826588454296795602321882616882612751459672626199560465999526049169807429097370741769958896485946251030917957349634382802317529713467031136390973328162186685668499975673053862194906486267557682079587988730248151188114693821086482698134298673706216046289662431406328620595896007721586905052754349829057122248226051921078163109301594430320149711955997435020089219554195339964359126421845981143955238863284353467503806657343418122912733876320666190828500937551016204839854188705050441566841119498180754568378114344207092980628756917940079480826933654823795003154313681938599229392572625130828895195917338253043619827402774961530895600229038848505434533616380547788214821765862195021612539181677037715508383185641255317795006971752044459869336230261015190381045461641946880148347151168730456080034319196210963863417798532406212216105365353199307977379413889468889022976432655826813341577103861433756710687311521532355632496700997387170600083491675402266210885506287568494078792901277422116639086408409047755069108033956801771793246147191714742211251969852617993856683825800319783715166521807709317295420028205408928042832423341345211575570698963461241036392767517724431326418132257638880152660572226359864386387970491095411012084299903911307258280961213022303992604780874564169573861879344330225131198657099653167917673011918360903735933375351429962539646280038053683019211359117695304912124850462865405461212090673000250638195162977219643786504447800292590836160273070633505234061993008777719813479918903717031631611281476406980668957661282239812622058582368335370553277592464199572767799336977932689866593948945578885275704366949018244931657512585032982401627602623958760968330419024385053431066701591635594889205070641298050277273942364107707977805739346133814537328199685573133404421941332569531210580673479022058346404128149307837685152260384289504838655005728971833071927128068101996077478512653295955109424601136687408490805041126792508837190562011626646286509106862473533762584749309385910276979488153719901611213734176425231493687688429290913802421026069448981454154891989546161938356003341293772991823698639483172810857350716655910435823141618964255249858580650384406823872524445790224657914904298934844001501598708865103957910231359827633220795946964862090147691917614104727580892316003323363491461141224875820791866156965302182930855790595609830797384994055241214478980350081890142325936544613084738640803307599457464084498714664403064318516908011523427753605268103862177808298186254101014942771419567469890535576027926482881636603293799961233832048986304544958283504373726230425614478892509286827492148079103146196130353909276475224309682463986201778399031523132463509326406838532509715571587639805753539513291035928454910693485433725666501942622793340133594378964715123143191622161764413325139354925373511219955905859755485440335927673460453664807708380886615442113953379809111628330487733237902443261200122794984515376174205100275302627986104708739627348480894214732375508137709695575008987960331744443385057667644669013374340464446077557469517725163703526535120075278335168588086477437468396413932917874946659931376366186673500058435423533724383558065931877940344084474522484599943440627956757193063213626914047286665248583457918233945059388055730376392785991035130746368585990959529915599838556780435270178753681475254095810527116485218556109291775730947029156916950895752607866351951105828212057858199492686114167511312910488941778620918488862504975249762283823783140123215800769103266153608190212859815199097562045398143728598380220898215723286785458619453363535392451796489248461077745526124717027814591148970427690467367828394117951841999682746660502578716091304523150488883370787390226300242427212681428498979371153086859033599287534450650011251607756448210423740438024230467365214291420520017566270222220248096146572374804564425040757229313479960805825618199367126262424525946366213121700900092554770677231246962683532681685354447171030907046673869033953729927431311522573305021038000904489567261216985919389291554739694191296620493680625706279656101367040988301832296334785659872639570065263352514725443564746723033528980757890200928994671735062924449735419256602500846467483668987477063485900240965022501505706597458242863499631110746148038208935427132278828062029850910124472008057402357809552040847236730725316343270662573006158455533698216082053110284585850149636623720958858501090497122880399415410640033533649913065851057340859409197527537780665252585502079334994996288938654034957057433279880171672675785430442943981951349111959223178041131321490871562949966960124417379520770739321339062751884882694069040885653035998944896864110704058708667730116195529508958603815198329473378552929652454659480241625478476111969976569121836644147843188118076097961319963204300353066248522173423745131963708836086181892142103535741942894003915825837602886834174805444819573358352042248708868236849084286553918046614137392329458096675730651975338601914419689615332875804284640165750757824600727439414294326571853827485480550166633564410469392629342447419359475165140884485368893817866634935108242913964421049945935607957366035753151747336965002380896432044436207764301210652831779359490122627626571215429435820373209788034310973770394801919692263258593813431308541576928505407783214054183028711063177316267631003079145448144310576465486489972152207147562860294402952331585837600556714311075060852155832623073847165969948766336188939774971762435118585036800410259493655583190203624052080128185094504422633155190727159009638703970074787404802297478313106496268390468910714935595746175032749980963276045539750689433663443381937584879410749793254191610571612109967698881266087903427560663297212193844004854260364790135134183338315547681798282175599901071662434852252782405084675641046455309461944710210345541823434644943019005677650820352241295551372518705895653789748709021886071448971808866876877097896200289185655137847194261071044619066481564381193373032891037966088289537917990418418631580109171312483480044210200427094995344850772117570025062913126296843684380966007870896461988472722305253554453676120482224048224839217360884422093023637281886419061884987796342500365700532342514506901352995976461603020707119429371623616399028527650421535098019733848618521003391063085974338958825413702240861153337253548228434498178639538229500760281416701066856031061677501715456306031972447019871438579433292992342252893705015450239707846315136193143814089412595022764156725278352511866821504904000343180221821089370848670650138172969001266003191352519505526516445760636235951413898401431455029483802684420476928539000053512481810207791808398136444964836308339508436379893160144688019164357749213365471004471528373994990809906654052618484602643833446743159900377172543188633208317440318298140126571478592283558144712034682692129736036220850122794062735224350747075569811092001997858127564038163044973724678704857348317585768415410552426708253547630778289756490113712619487802545502368545224809391778990384006895839721896956977041310846481186699078335607088641916776475168074511351098120805340858317025959542514314137127935723071676923680321477615858922467325732432368254800551416492977492605924340465812855561497254289078468748554925255907855103479261959022685270151638380291437007442585667210247875853698851143265848007433252512414294220095853833840333768084373264705399993773642599813444671222288483939525642352066671488755121099162806674671344563051399239314727092209278143128232642084539083085530726305265283980747252033905981529840733857773846828396044590173812540321761030424493145414154952250925036144539915675910765315813204442542241621420221271545304663438834999188458743845465560815729603223162762227060569483931693607974965020744742285008302162636079231351266650263587883463382444722116490692317295624924389548589640897051498582877009166517158054715320206273564852796323652557463407936113480669005604755213269100863548510975611377874642019203782940633057790344304932112057883978551554809922926119560245916228941582827375488301950468689613577293551078932039840551375577689487675673765597059160860162997125053335374110664070835414190129042015123134254289669016003858158172230403693186320228937539827665113249156970230421773472178955720041491311984492649888135533743082332795189511370878499288239295504251540085566378869779571138333902329520598472793078394706764468660453809427889698752079071172389519784210366259237255921626513884438292951408360175466878716688213530538968825889736226823163911667946409792301015882795343713753691647290352338636500200006506182902524252441325750489894127583679172373682990940243083360759148334542175444467091791201056898970660004887971032847042347192278991439778425725908329626172862819089620977463454073346136766333235317373874342331344189500277111967933967995698890912306196756676506244126485241505926557492805649594682371261042231831808972592933808635102389030101573915941245020671430030186528692107000166508504038143862631523299438362253421727810386765887034380757983143472395620777970144849402172495607389678724989573107006167594799784871384107118226598279082481830638562314930921289494127438587070056323555008963766544160702015905701162671379098673501946476994110274059265661912662553746239428391835807856985257185595738478023440526190229945564186464540212240816875635173465772306184693723539439281592816393990585306370985215376169473617149000006504243638990164949918977347141574365115399558744679735696864715265452354266124129502246600630834103254802321389944857174771674186881215659044457632791452835728131848421957621843327446208667319895022735369884295366869807649410818352355150895040476657154978369687550864069834391853242656252386396648618841532666028853354100810959367188048485083123967871269269595706663247340963360845633281538394048704022934599412041598198968431729296533425600022331749715290881645114819822821347273794843033983082137314706480258619501152117448684595341128063673210311587271942820370555449163362228582471142268674019734215981415391072528516783146196771614406680910831259474792949422046595156735728265504188874277896722621911974882611041954470748760116679603232702126496305604687205505300779855628732045924648239706542370607657960362193158850702577361700817457593284996245010778686257885424972880917413424415538764639396641017749638127134476271928658510116066603326409471408959562942924776988512055593397665241610730939984107429452401380175920680332140459054544690560767608627955816728339045198002686979095473856091298195469488507263487987670182041004174088613212354204502806609810931828640697817344158495363610564962966159238300156026504163968673315822510875167342895577414229385022224089375804571248676799459280169736133435155238884320132493928760562230688324087482731184118296791035899175702275559241518031627368405891044260493253117552967015269102209571704502276489442220667442036544644684883355069655198106567271542127743509621149498121557148584790124907764837380573660733494041624596490891426319296607320898244221738103240141333277936731561107593729543042116922472378680995288773494169937863131732892011367791910295875589306842794017211719057634121744009931564079541867170716803971366875383022345748798057329859909836625208296442308929741147045165576976848588375250773412584715241832967783018539329688854035468508089189909951748371746644841720001609712166752015473559894086030346561743344032759860026617546221645369856338109553027731364254206946262514532730712935822197335929853046427408987299972944806720655318977123478541149756169677493073556225298670277838000339839941881439799051581330169392738251750255493864905231558393583808440975573504348378967592567345912181900818079819898795442270162553281335469341705897175531120684229158424419387576965101465956401667013693774862992965593609591428297876528104095746918700368047457436976216021596332417691107466711920866828506164903947471172387853872544386320828306209830498033633729409465102272794140023099118703615389655927995061831442546914251357256155828121944743051671017075144751654152067467526378340258583954894312457902319663849205253864966663830127658780385391696968702725230627744835540541805939745128135078344544310647550296776079854527231510415500631231964604190739010329479424701526584689969693042434559434263798367713860379519389455653648267424424508003256814253967911527332806049009761649323572846103621997383538365320137090677269187176224484490460046086131427732534451642904688049872442113829941043759704836211990137525919036255139378711588639505972296262610913140835941115780821087318555472851470254905219463240659596969298323945703819925697925401639865468368929757882858181497216939724913232813556086199154857844651833799921756036246551472718162508841256616046878579373641944859041868854315716536136364281835321796702541836542687352296705776882394363926363170856423530552904005215784971869407693865214595066373058187194845418572501999116395781238870893976644058402510066571064412800778500460890455251855208339921513335353273266279536937075490811638394108002427338188737649470965418888841281335027730248356478570159525137978346550630698216772343753707501557833892703408539684759859114042096631268637913830329266613558873421380684559826841522288422528406317553802952357008073976523160081498287004024031695996597897306935154761369528444180635164995064490380735137352427538094770234279861028141293655581650498285863123578575563650506824473297064052122313644083510819634321180695064281894236326675684175659944416565889560827591151099253914154619602912142047677846820071193787609805991972838363112685909701466000658377898505077868008437196816490108151821368192783638202773661809986928563825298391286318462797813387631275769949827741910833075225948746088148102436730296639969064405879980506579952287630355136532254483055804412482403886496723199009436849088261725863819587062853872681568202653594341206384229043443237004555797491694905171876400702448105263694887241830111049920827253910794974681671356084561739323447309967539134368343754081032851488953502345283455652818471124362542123703699692340467264490400450196950251398586229928536441664202505998752893635603254790022881178809232078419533825337581141389723958768539493676694884656508944152131855978306490512685014981583172208183896645255279372930632490316176368909048562358362113512555971045689534375546839602911904804775898870258677533807502969848857800934375630207425183681521630823596180945892486421120792404855213318019860389945904566223274751373426041817182314415704608822171735176580778438621307804022950217401411195112339664502038126107936731940027121917357291480323535192210561021655106349807650148091584433126050879627931483458110920723267073539784416276795548373663225153502350484797763779408352265878871129527881828079336026898402325323360113630716776207079461656056293126832867768183311857182497332372423001506670348155104092033534087728697915997814116255404681824414574386720044118403227491718184539564123942128770894935012360885156373684645300740600058604315880431468667885168029889992545130033401894899593186456552196516119060763371117456951584684881246382670400876157482282080966481964952536648887374229538819976279712034720669194771614671708404973144340801486215548415135491539768841691400350268135090793985347613394630495816932614924762045598035414407368188215623241517566876581915621255621334093387796022407887946882049216331622632210095062657084461683245471285968851568837025810904699483210305544942515067802991466458974336234666265677670054384619960193713434137971265216417566002558641318025049583148601778759192091320289943668347383426189863919012901361075399474780109030358054484569890000187505010550609227216044188043019785429118462350586085192428064977339988260925413821853712172307385846871666730616405298695538901452278612534638152204114551541570891771716679717067143683699452346604683826975059599674561426725521304818281246792168550973929044490806192568716817369956331923150847918915457607450875100643526358691902337512455603612100594291071539126894696231752619504027063052037136200044214662450237415226280912420459551971330433823693247334112970720410373213940023477934035531097104960317816852073988506112865905759812669197485868515009049047341004773978649275208352375357002854518929581534174372191837281898664895625260240939107844135879636059646103846011545977351890670810995686677765751419146650540800334366370609790395534768978442035607012994296928027897000375836672565707239997902413146093385344277162352913899660050561933813498564962346755704739052240154652124717666228070428406703752084932899171073008315528233446619074431245761006502439585561694291326086225091674759479077619402183706305517181580794552256999166933314330399110164947102454169062356894684808845881664151808928532325754749264349931584463953040843117290785081788088607303512997188437727670513592637209033955585752861263690207566520309616782429913509969240004396305497777369055598918567278772147466346568325290552344755307674191230798631811877085281512830099567534082754719532894426634201509666224566174823438317701184277454613345487867960722455877068055945132829946270656571760195156134883038913173933537395879041507737767773242908850491069682229137103419282852290720094484415655782283470650654355857724777150815529991211986241878425600507486966877407576952755647634829008404420889112840170596093800793408410626810140426921944676517787189021700211124853059792964717088839468846659548685913588575123200294697227126830365274839195608409973982166119673355170895809772385522501831854722051881273163263342262586597856031597163278868076721029518765988410095890522460378197543153840072387347374824990940520563743279656594398745245228579949452105227969988053643962630752704971170847124868072042688699771238696655049990261347311036788861127807703331355820223595178397834932021216217105757337437427946764298175058850918029576195855642722668148409856995422520768645413081993723751830591679195486764659533097775642342532408084406978236192563544418548945596892143489249025509825061930089261436178152248440739804520048657647171317664987165442320608440612556246827009885360555549132697403735641546931873274536758179185925620162479471420806186564171974922716570906012745504980589410802068967420035048038766572517829937424125258777110456578245934762402443912049472036633456456882483380800110805123493139385129536508181108609051376949335040734082402775569977664439198242203220583980645199314007284295382506812432157188655439867640598547256344455051554254150912797745380942182012112299296023184469792395463837470393004037106635784937064865977830888306785179769829447186412745829167979716029267538633540188736221839906469565101291662965764757042768973446199471908059296619183585999983508302093098746787342930880460621184675411966634440873497843025422817744220883976367578260463376522098998461991416234823843872459518362714785113670706572445581605996466787526911649241531080437733426432849337022624807941854638382586593002223847371078648068859717790232375415661698919453523919181109218694560330786612231506703706448059346232984218073051053113833050482027849785486566783243005758350480723698641760802881423849665022941546677461508872317263303992449580334099929538110287059101468780462143741937603269319481554876241553684955230420541931788743764482611888898841924358046472193640729798046357089289694154198163755904612250747737210546225020688716288465774503224800847113600372189637159697580478055580951289664039655814301738817056192922418317186684108505818921831923868406322360765100398595078283095095374918274610364611762840638752819271529246239453955428665891315338866895721597478547044949013886458316762841918897870862016093358847596557962225100011027108513792711731452529766790126997289412689885087836550634772448293533354502103449446080839300679342517267916002456844284229622002126695624184986482925567350099397100282807218748592744355969751680757424738901499376061164872611735963176809719891855424408895565720570946253728539131459919278943348197866239795665024288112128812891355631305782078313121854590107816807956813697198830021425533508659078966586692485431165497253681431278839979169109962839077566840836543048857002469105375537508156483575821786466460380204500307838521749852139471319392782602073901305517489662368489387752495342245678869266972320122304328878526729005519994378178489533317821633109771861350290747833030217775086460296323917543682431924971603222070562597844492021487910403752862015878646670873508710318778104221089420681928990109668708915330657575884604828462265520858115878107720096387460054007896577920064728102957512906735964787516198849717901461179527806369304162629339176269285963628300083361459762461697819966927858196548359844313470588370584378832526727973595575544142441432686609667509235443991223084615900636884123030421144121082064395650149256851610208722018551187520897547544481024863537018488625978229205522670877194691117023330968216778220051948822235444434352854274515600663611385256514604976424151809506036928054829823291488080735626770912302262547428846799408739159229620957601113114216458251515830477716507068987106640305578741428191642598187282957602228420806471602072035485858864668321336475239942867910782198200713128287736628918231802163804499831928186694217768206290343276207330123730401462747523741844430100691920555543210838679455448006785420366214066740542580186002871643600123501599424124244956579549313920197439856573614892016201205220770786287987075794611484427186310722804520820757762592276526360371367167642325712232042556233894837557902012876411104218172613589027642260651695266553883558921976613719798736910916777777755310461668906116989626009813892131721282253098896187845024027699496556692862327020503922836502833413663069589846310313697648055487463305109981813606974601881436843504368209083138065512880950514432795640357205156250031221255121994246553205757065663833103585484388297237688735587723106056245747959475648718019312052744171540939913319467896705342535532845593792953756888368397083104657197689784085226922132388011683690324479068275232915165714921012165477553623500986368374048103105822408765966536727010548351333068265983762848609781536179348835204756543666645221972073033528550760852670386466983680855567454746131061791806723917597916820831768810065304418766376726116074863264943713471218758755815648188143200066687135387528199492922355890477524285251166538143364967278717071942351167049072798766346236708425277088239636133219294611531845433587557051378416232642149387583440864177241039504713922612402265061657668491357360158675068469550228264724244031160210216663243905076944501439819474903212400939906956243584847583526372889189505208332746859067059335823416711071439885053316754522430354883980737146485516364859790986734623949280092085507647399798459992811517942923909077054307464131025974701593458666264729513276843476736345472832700383235292698084638610424761991336533158716070769424302726885257954202816082304288255010788227225993644430833000436604641001135806063308279568826880386975669617838684409253761391919321437332750695220935475361409537959566827299002189582258900034256681580434736411161390678855119944137865933009851952302313548130297436625964751644785778865688506030411138415311047551035706428757382380335015665213307563087987947886939522025831775785756899938213495477390949821296834162136101536695943931992987362725356141005771710198346225887609329824835528174114793148210009187364026814942321895123747765307880193394449529985309296088793973520600349492786428541038206085757245445269853975927131078388799323265439651987667269479625167505573540869284637938177079573828707572021731903467367341970872379833856210350803725926021927843340333681373095061684654481004689656193558739343067247954747071687338910869444998223543843242320881779208878809820601433736558128057917995061316333155726898036284684488365946460024660807928764279908413847046473741373485987962693419083407560074133315307058913514476736385024201117980699983871073556159142626070459250428503948737663881273609185984746861658171503794618050226380069291346410234850282352269976381657148852708672188895556701080235106863913249476064420434943178073403146794785825275628952741540720183669450822108222100423966067433709646175298306034090449228908711657426410779632296992387109614091613911445333832361989395385826581374315479746161315534041058147876059753879988349064960268251395469054047346972084467284210833088983787555965443905033313276919892578341566968818609747497950228568542008247435879201371682537403844898082217293858724822586394742409586768439742061132241325411471435749924960664305995661483507758317224529336772029859924194691815591028279648663004997098126225528611428735178194618282792941797155195761443237817786741580817334349908947936716987858767413104753722740197324964198782676437776572453217535990303168888564887603028630762537443333318125583643625076604012913857814490993842474110762398813183394503599483228262895382476058526130932455315117299130103308981486068425998796436169660174067312694843620915731899908795364861577202678320650059184266126717378490589821790703248621097869334260683697425169126197279618906560447647851498443263016927920120285915945776897175040420452607127596325821235384573477606992834262722966355436662297030117460556597677749506732925622435793409244284081628533408714828533243549544957358061778997845096154700897056426323004454144273365978538261571919357822658113648055379159073969416745238217102910047500757678118440895607165084790072281272747524318068693594842744104415317656752935813370188776618362764833360022649786880000125926950128969087638320902900598106946183372662988284122311138534407252408139982544830119791857985563007607668070936645982539361423648910917931670766080166277546661872806506491283151146993738235435627408830444253902186190640081013269725917867219440965304999772436954240726739177966493696712910737940860268252932233783444042076596419253160671260014793710455548226988033893262007376920113069718367553785780961215762207111051044327728090136844119567099800409471017093695432009634170523099463700071810366849629665167216548090088261008131311215766709109707812708752608273862513610656271190692763008344432341036817197297190946896066792478002993151680903621475967011520683521327525728632150616002178538800619859932835586375917917257740897367715693400898113288531071143291266073505081276967900221895246230330033176081333708200494228694526729027871255953198690313886854976041492809810058685964135908848466403970988598365238014213664282616575592591058629452503384507063275057721560448778244697421561969349218628040022822550291626267561248250850698638497909061560440489706433323130592184317629631360546735398527776164563112338296090001208611555446015324574480354172426324640591666107866384771147750576303534176387065159030440775527947759959328973827631623515408155084195381246365788501657157145468508894475723426709944246026603798184535425665560078855597709934652287293179018928114897910146790702258828301574922752173545871141428600157325511150905502116820024855182774559339027088956175324540763864872762692051133657234699723483033223500989092892830006681219708691749321324923843238089267428171556385697096499632762762378618797405881670956227786548895219925947113073601220168227615181602553345314213509978214568426912761766944008365328668204977430738766401811670730699284216981118121403791650635993403860735905847455019816213514573764256809702755626757130728783034899604851356987270002231199921891594302315769066537316646960023645289123517235611521325453827949156209796394664566829694308100285345516993984889798767603589385264481539251372153887067013181510405073889514734762693498346965844533077518520784226800258552242724110311556245868771486773747746132341219627341900164417581730027487162779036524460178420325236368332921573099529975459903103723546952468476701139322354101668165210969419966343012385482181528266110390880704420232314311589354680021198443539606922111129568108112596242861151653515074918454182203164481037046204105596067598591840628571879217200519356068955371514443097087432294636137894638231904646939503708364186488720359556167965818048874270487502625122224047888622377321445117033087732694581515917596485188749417392336292149487137581501980665699837831133873823961839417329978278965295787733692244263400190044711099954840419960906825833383490919702514946736017764880622044079777529010082952085652960430030579556315596247557735386409419754571873744427452875403248883626886778046407271912619687953982181204382423831896072126174661288506022060083063592027830149024816924861293722273008504357783409048272150437017661666256060630564167699270189209288748441376839668502141478107019005847057047850160654507322409203516486254538091573500036298462464131254617642744043728759111866849427519736301886241100552192998765577068096656207093460044499834393751661825597966448808955170314849747704736408200613492667245575888226893386811961059844537870019418672801001840404281369484931279396777688658114957321631314589935696572370583685816460262119870914477656405969337268497259236965456744063505798259381109931472362812104327025400894350334705270495919495547475527971695985202352750094399456188380682641449104554576381842743482392364319893609806532700009237708969358678514155180738896862870813524870635610634478167160023264249621292846208579163979725588796666248997161813322647638237674613602433418748785244450472457785322965774448840393126637040164731824432458389371543103962478144420472656503405514704968359600215324583635561828236031274687268038715235594753436829398885782633098203380237056354999484179824367877134653908761471349419037452864356909634426129835089367511130920341910101996110039234276342916838833503837110413022982727927307770294569280754425997074309473707842133535588886771698912789089984860319880282948851292133299620712559487714746523436427094611095294939372652087001369178273892903276136888592832545755653025938840340037309877230316645509472263808230662144282796600459913397329057563733765756802129246502240037044264230168785680840554184280790305135741950843767027560322986771078188277819784159533998954339414457793601678139007270834887635002225098099287153639377391483845910106983041927235239701089618618581958975965940980208256038145202186476269543779930482628761276681782173839655563500264263156689205505555219877819977822420189587550201405366250671708380920932805204832462433659022975464058864163038416041014634829753284813364229922117460081335926087596410828449028859026322826792040228628242397639501821382929125738487046629593023397458556116447094277056219288663941331525138516460722490957706966938646824235956136218498227576757062038896848924949357590328168122808057566778505734656683266416368100711457141654995977457667676360578267019242187367736070791951723434052104398881569166339159073736409267910216823518519074237474065639521814594592814105582978599929641789590986494391973392295278506165698348160614530582126060222608654331482030023777828003844864764633409725348540425013191691779478067327394692945236413840208776304729565184496948590878668327970075332033558584549057204491386495906427977751948745241841071926521097356594931016455465759914045909026162276643089481554866719664991660270516798445120476780721595394446684795722188371338906281399504848092302657419220357446112525071203294760996256312392035534589271300188084865661466900493068112032412637821129368741699957603589011943632993633104222228042592512906718115190525123867669215623884017353130190234255332347397066733497777164894004190707625093334184916749589178426112757236675194397405286199501329423821322557647030768647693437950711287571174911112396829618324174626315236558189491540215755027906468425411285259906876286019472281309836106509421003683371564544290583178478217452588800135101795462497060763843052738202397195459240015657480741641835756169137107871687030765798020120028194600954492868837692797526936299697137772772732823087036167138423934259915273699344627509235093419412469424919935301357640546563485655634286233570821048141606346815690027994327522344581932359624429799826321570773385134621937039738924317522300109145153736042977013001657222153576548996189421042651566104795409244829748577910602596149075510209957027361277478672534644617162607414434289525121610374727926878633440512271158082642984042947798835802136102003313659474860815792177766966975135420927798590011644224895308597254298762324191997364677175544816545322507983558623904166681337117267231614938015802901293353210335652154733800675312141778338002562062530848079460220716183482597957215513223832392677323901267221271840325142023082038717394788063421727166534508850719270235375219532442980975797662400940388358724837568373694785819886930136940182057959732011584591835563746972390854588004312241995532274201139867006185187677067806880601153218906193895695047045433275744826112699087947393965118430246907524546140708763337860124232698212776182232653452060622774038882309866236389595600717747457488376313949817831486919479969072446505858599633014910448577710899783680600865847049738879419900053092705440966752225102557086147899932115694049879938371932523930999240371337501010726721993374086438997109338118829247798943868175445975230810591819956168752818641243079666976755838066493697326552091697763424858572327542448979674463913059300861371124199660510249908385088115276556164796731031707846113747500995047945761309357771049920763197418995901342042014059195713064182385532438354944168015311073633408190994143219023376874904589751204552469679193051803602712362967529993238375627167223420344211742925687250415193471865932122255666898898469266410074573015135575183771419280968611034658758374825284396397905000576768374623747372602230573023460088045914900766254242496350986454013645273380475845368326608071850394885705727945776035893014122830711935037815769364691732038857641449772099141534584617563457871649974862475278835693502199665190372540278092112648747966287500391456523261665058692732932457718814984662644273584780190304722503158036455349952651895377153031528704638379677105103893701999323032231884681870857911023418897920281177432975932585305586746317546604797973336048861000072982945903661092742732358710186141221682489228782570968014098538013724115575366690552079818647936895550984108869862645039930672714735630995669139464522320091138978423696006983484467298476198819035317687890846803427099043671036402729080257175057254712132586680323599301836451522418135643006017674471263034130855230477349607291709998061378643001849298977724660483508258461682966644704518068921681157581058098201808550322805935115114170234138208610269652853023739145655090580917690192895231636270747054146055652846010603867324633432136611225310086818264189316999095920000771196733298762148228144582263025755826924421951574864281555610872490736163608344024498652434365807883710767453829198924955268395044821726820930267554643450448763340979465359677961564647590167561817507571006254853555382098568649965474594079285029106462024498903292885084177607369709792400827452297945292662883830288610230181515481397783352956766024470525556117556804794662026522212195263590988638777901552161360331065659099857081604704354500787541958151830231685394652316826918956412082010246437769434507640473199701474648605548494318651058123395261294677534716256933149092538218201598494006244470283279606963872886104072847404266318210534977169659633566189860355766129012059926895038718079118909798747890068036295760500685480541157536549838634456923015340602105700542135579202335979014986777209280723932095211851328701681512983555984235990015378146548607649733602071223141075203627501442871801330052946557574010846061365823753141474959349554830734133567509505884223297358431532602268777892962219374111985303191050326206797394399480082931648479684007590620482184108651282212149817320183229268696498194900124021199990355388813899315797975159930670484337291392110729274042454082627127388935658171131715571951586349650712386494313171086487325499224116931845266978500829463825674709058850679212545886836005329952776174637879570517455309282855688783328729124690032759344724084447972424792565647848844649973435258754210870793863928484248251489314326915811863848542785022871218755926805590285718609005793402128213516289915068897468024923850779147258584399979466168557248943982873100208227970987908982561477789094044666380061457422086050704347824442051824040512770224026341525664689695673709239165392979342779676287602085077657888414932138694127851578218276466421487825489319651216223098737401201225063725882160798309863887742664788587362868802390525967620779816984880106795771233087868658265550652304285404824592431727686250715301371051977723248479659505758675374108130451716169035120921431753680497708920086229554922219704372804449768537944709461874970619523053383650399903407467175399658302726206572092038191743456796157090333478678460169035829765262781556655451730174584557423002956388535094239335350180758844772960116327015478223945151878702589356804423639216221340766128910267764304117337424659632444549578736112524273254119865489305937261809011135294299838095312689075465762500598156482506521197178926367270164897113996446256631320539561940864290678611521732716542943965998838339024661323209783816647202180809315310097109314587657991318245401493497262799493220317019119421770811338484718758639575007570626358635856173023268075568030823340156526386721895303140275257212888719554076653419019964758528040152170234635100565719164657824886442017208709493545342398929242173753403916561727516407355806015578222850912351393904113719400940251946724510082763079829180704524620434464116554743657262616850866437781118037595307683919310899079882429718713588649717466904818102493609284703002184834196570243482365774473921620500665709873677398659550246641509364524552903509656053892908411800572990342157936713497340056744706830386982011570744219529573199996987172236412384541570269639157020005033079618713872288210477241040907109140217007921931337419348610852972934563980529625376275859807172598180989773571813789582263422005489487922113234935939754953685338336923724900596441321444010713663586272564394295243369097778072663350979349604309631978239730727535090920540754917842901515764115101016012979737349226358994068842969281478432964491113467612751797469346784807841246208739824903669035361685569389781750069861743281751155245846683905505582244121218834088613862442572105561684383311106043566419424089886700150026536114743199610379671185108803242154500902250469244061722058353979359478570533145930776645994062845574551020698568245870440207558968495686035383457622343995036657924090594170215412959182284784405628497571127150863759414001476672082650562284034525239692549546706589145063670618447245272368044838776935744669767065591255759417934788855370459400394741697796309219079706205855159711955887656525544884857432512900852703647645596124404095844460559478717825418183779512252394099824519953571821682177080709505485505405662840066629758907136160562937264995362163326610773485973760618899000898011526239352377076551991368080852448050258520315943147143858300269579462907673748351293905875443202171971766368728098616476776046859193025992393264309273292180246589554147985228346701849411295149318333896226046642712519627348074093233105749473879631961171491757518294857541577622014371288511098237953217173005082293236820265137223570420205435521382397808064787708224973896813883979481567107455771315989474369816041422769566886899071492319297010622832278393802801346215975986733560230575717662788645785537301842045122111587484661831618654650347358888302366258142741739146466818132654293269262259927566082034506997270937659622841599240366006557712154293951344939989748690660793117371218075502479763205715798976851670191664172702449230822778887369646882773641133890293952704422729466698586862642852094901045138868758262327758234410598776553480001194565275757328079924062781961831029517890515549262745419460061604420618740440869707032146248619659823666782068772269119584680497597534959586339600185771903576647487611449613037999846872419647775719030824853216750401816469468102493671475865536221914542342279851525665180595233855674768048402346271224902888115306316524127752352745186848939109594651854973555836975078628218240472318261735326368847161142842975021515297818778370215088582862370601618980260449738176977885981511518444641364076575898542484952413138054812913543327894045940769386059637185025768237052833381091188785718448808006533123040176956828445444971414245670252007769949989197893895960296989483702074145535807349780136822657725204607460906215024171639164823459497466446891983449274441919985201542192607343464460569943901397671409744695457755774121539876805634475901911570755848124240945089512332154577312701964054505178139834261467857582038071559206290896215563806170002048535181884321177646328869721588888686108201422443856135599543343271426562240797402844390444454589153608724110479114019764466189032169310689587008678120754714820821988750693138795249379544385868596965748650598124635134129080762428444157956034842390322218426140364922376774101325785255016065522909574371180093795853476975007202588214489174108876117169026088823555433075568149372348382286160152493035261771388700137549974588098015608509487832910628263472232408047184331274607122867898517745941351162554762010888787799841504699279074443096489191363484810638889824869092065290441713511275944038744966370652859122835246378657114520027272884082289054983134055365365445472071987244193100577788982219878082716696048820948972835024326943145619532855130610441715291862586636101274945802494482502405280668654614263802138180853327132547954162822233190168816484840375130142554599890035206377662422541604445659316348199242585284166526023301021074436889096824561876176043555771776257982057842908866982574853057073079633004819006337343275403779162596270537713153066136722857241672430430852441944405507359311784679832064406646736775846828226189259176227030211753125671889741172108522475398441419398967547550077953616868191319345871947028487980393459531531202748375715256688140414794587834238395152471314535269085278210169824008253989317989559139457711121388021522187448570470963308951977315718376470611551191500983350884334132711831704208206214194856844562585678809769411871332201568842925722887988069331757253870527765769642719071953677623655148357833519962153521956204290366665867089610663612126003497222685245553088703577161904560603320120429979050122643003262806581025845879999596937090346711660121202380042939118550962073529178708498605998429225445641371839512021122363421467497402770361820387608932475436336140891182667655928397984988244484144124565603396292994896606926973406485517496916368626549330773831047538064222400730723434052095677524051403122131050099668374342742405906036865668723293834906385725073150404365981249445430974515596808594050000039634291562345617322075676916476629317530201981413255608532870302563872528084143859800765771942685331801448621486175228065151423496257376472390411513857552055418872373088030996894569777700834703814720051960722786418080817596814509678496302393381393132651087646896022489286140561262481286915168437059587288835931078879855957436787470115670889705988214621355070511226184828406165988529971204258232502689671731222236578169059916902434571022713554736792924344725911808073645038112306117570880721209040733813685468319965041391277639802295093865762442021841835488074746464339986491176193963788546243608952859473120285513738101136189065057453907230074822709234039486451467618662183486008274225048047911311801220143898025035049569830242869541637249000691978445268507578656957545558636152828150623893288420037758617704693682152998373549660994637387104665798319469909241709733654898252322402041335397503811517175473362064044344345052976094650607839073800702093491610973701362111226508833214374717028858628292008369405805840366154130589994759861942358856803409925725557776088851755808530305924729408803420712405354296843033090320632403502696401849782279625891318086337228915022571132169747863441892109536733700549541356717423510600451599260899702964214742885082018864175788731005024200701915188397027219525111783736817270613123598843215729129309612641993037165643237849194417015233378106374785677533042823144573253181914253420762004302787736469646775878119922879616954553296988014919932880940999619563288335431890608038012402891611914183848151486118947633527019138556773872007842522743478625487289031764142005805023966998156706203352916710151801774518952204299955267416867386948526444976543300493841095808931039170015640444555326261010396908350867956421030301284530495603187452309066800424452156601244122302894063801600686997445942545678764314146682587033404776256571362312145888726094534186799449705701826158330274056931405420805851589092287222581965911153937221624885508813131021584299683749291796251638103636833238943623533595347990122201645927530151435974317407141767901512249333544435430214635435847248918038793877644266544411314001290443561111559285494394113734364680883246753205144549816279784739633539344562615240593065742674881487719465412040443109784773757001554924039597233027455805066504985339632241025893024996369908481346488285093943281876208495174429909851111981851953427005313028559217428139433969673749830351817202887069318524912185449096240489501913554407880694544789343847367695136290780574099465705812608468663533169739586649637797369779848721475259855055818839970455202899426329164660642292949030629222023034404773567167063916018815339827429420218564704436443858018231534175021330214806036882889190304300279617089266647528869596957509027395585922001871914518081172398402168130506468257576192083788472236401478985214663361375586876957426481796720993001519841535989289419485683528996577942931886047546634712096690220177774433003765982705088969070102397449705575617476795788666390336303548430004593436379016845243100514399982346001920181100848810213799934168867075609027053103150796677441056006777770076231702138746458524256241145799124844202530883613893307280959855915558687502110318410521778379027263048573941981062526444929316485375550731936952903285467998972610147070981378135648640491539212796767507440125285500475449665342997089926341770233867638500642485627219303331199394587785213436867583820201126140327178199505954331371621524354729825667408216570002855245768778605753340220605043053786165032773370796316167405355358792564363994261018815213317705290139977246305566341380862618234172965264199155023257472606959912792124637583092877086129627075362557055254566269264433836211185056415146567276121050083614403797055884306985643946071423235820791922994795186697767192202393142166813451967456382727696969903434965380418071045393549255703655471591273380620378338543024296290110232595658895980296843064997908331245703987740384057812072859056879606794202118351585623814533976800407656257644019470651300478386846325684640918741110527821905111228943418472868460062919647599713824339806471358724737116184638251321950793104500087374189001163900931401853701392458962633674548485231870603236975222131562311581094705774652766685118986418847931738023699012901679200833260978080539356497330395553453583942016811795124221848390952717405252119949334501492855149738786898709163079803387898089887556792035605271974624047354398710615009252072186837408914047668934174714447948593816489251420081324618238156342309892046093964556618647338232475333917392132987577561334405087524302295216113693016394637813561402803291005480255095037254957915759170830322696868446846843863329806575955530756472627191067342267013758658558577335410487392592334880454528170518821912212839856481620299053433858494467437539642442405949109294749212835659854460990420878839704651690904085615567407156313408017084121676774649388240000449338784437017685675746507338817463745152876172655471895828754190442965778107984996675261800119105654828146537170152987166851029451586893263843165195435031447626273947716946693195894057303391267811011244009631074155541741807657567750337746965658898052237241225136685242406674436813704245099513613112815488269984867295694692864969388195707242739643088745746116708757844227339038267781755397388632027668976664182066321863908151948481521428268105689893339146367577776795808134929376498430606861554771626940820894768443706551367641867112728596636596223112492848625184897087498675963717553051706960548917642974946770550581714918024676587745549162778061040366576316640008424938922616579403591356957727970210275300254468137290659393186491902319775095548207280062009531626129613433363109297483044416047815792857548210654573708443729054234643536766752915362519627763340108432864257950807852900929984448835590842609720533801876390241010076204019459038755225581535461615759688637972039797601373831580508806268104891784172277992649896365925661860239606920458910059141796988913532568134894512883098987914495837675448233146635790349197001659287998769829693040984044005865991074182395104451537014470622516603043736369613039733385795159280748369685605648461378384710388392877661835988596010031164377095628601610309149459018012350248116899877518169031994029791846920002453838882480705022071319311822065456289571390015428595620939366209018955261390488425930666581943733802198305425194245682679224367980652292752740368650931793137945895381437396965994358579346137948646528881778691669806988787446611788913733091808705890353107768985396849223179928594390293916595627108993170915230285378817698643441317287311960873201083383663370946373783391616876384341944396422735120191866669643392760376008401366512500450126657189777625830435292524504082112117131714762630268970911364882448614462966889401487593285425976922169468601578584320974954829070622842040500664493261909612594481651745439699821121791527060474434645655269363777065998727443815740095558414627397862841266068980389453603949281161543750776032580616122306343778221869820625582120961853311370453260430291686698075241384579734378463867509991297234523105938337040632271222246422207537199331701661809733217056074148693226678801216283598320689523725986987699364290762524129676936578383789134897678705408138169684555775576367844087849304255146625981422330267893044204296051033220868542945596683740413034675938093701875094379034606244958109028122350654042021128391774285021153574358705619671560512054821765448408807961380822362322982648520275009520218870277064718376952905122799665116957914385434690525816054993487497141909676306615022778572541602485858501879162480929060664883336023429714208675526722933761741154678459120691917308196470125120652810429679337805151572790724673182261443658753397239587361137381581979866627472745684396063860499413035527261151819280916270543129870609663651509885036720126240570338031189143028740309824289861751940190152960749141142778153519633902764642366796236685586870102930987462012031168310049721053330892733171705363415219792431844231228310485483184954418448986212043422400599920838065758166852148307526116310643569776167056857646401792483519545378110333862175583013564995996732385874673876345437735325857785467445160992302599616691744197019669246749500131545992317764674776855976527217034099449351051372652281950689856563699732092429103375959771655369439281177554028746968346688640395105141345602795618628453248947271221606040805510511993343424148259910308715524474903886390927798293811269119357181400321153527823813197622894192440763011447605659294882480034280305113756186103067706345744819118420064940949645286833432141709336790423187347879414687689795412492725985505723323141344449231456733637398444609720245996127604654608359315435671796138479015700871654007787292197126049712638092619789526967643090608003997742554131756526273250794419436721091931160154754424092994337475830732912268745172875154511095817886012770365989190636460538243593065202907121676709657975001645279619380742574748255415895939021024454164344132234602944869236194436842567283809593359548923708104765045215962226184338391090999888588145034744068344099476052102431572506699296857967287149767577998166029497635509957337983139036466496924971736481833157524968189902102771391910703563325212865879471989865488439996062177188632280024654386609934506294172572411694496059273692774738561987442806622090780580526715306794401425369257750336781050490106172131992747658998723067838539851848955345277841549200633156143502920512968891021070548826958307248795287024938884088462461544193828128603825059728721958244500241016831152516075043237132448688249869587596565767503524602499791576361362096960427447124955681545533135082808974902118237822670486421625393430400556953710809986355386876858543529132250347484397766124445436920391078067634214008054620357792059356302715970232074424735142931470893108592837091217871313364102884271057766939273387818013823573118762676818852602565808940787265471444003807345142823973696386684154824927215068604034229955800140443585005470857756257124260619695508556006194477722047625498979207131516569887236401087250881658020922459812070726397601300848810649296839029595938436752028702338648956301736337629899795134265695140327170879238656396503508244954976466396747982786503832858175699547428041136492749776152962991240256023219463399252972032710040939695279569862848651023217230228728752216368258176703464814330961801178825408129003575797990770238975312939073481005468321657626751777591118130226931990278177202843646112478647652009294644942453580374754073195082019365908263273174365095572831643690115130655910860781604300006703238056436858021598739551665611445843514805597312465668945071048756255169908009702165424736853450284216080354527470035374180902292447279071133120297550039104949574818662024745455734748065137764903801173096984977338439071582323251145600015608755612889980497836868237074160123376277371619343694135836352971982741061004962217598896701512684280826732729533851036422460838251390879779895056281960610683994321814928180606805342455820595465498061846637055853349309726517374362478238949927110686175597329114099842244943731945760270074866721901864191261834378044703282370168013420950088530282649792974097415829134273614496458508913660658902338986715865622268292740697404984674470693876230833049042704616727807229922334136043685585269829094864070585783174522029608879483258398279682331181949099778473624298832906256108728950333732125496438010064513971061516500323331925902506931130402929711018727436278441580717441136398790264857944241548621433156660288538269408426446139490772694354953896579216485012996146580532803768503866785346435213865469977494149144631886678508014667280053770654912491659037368999826371543492503355160788956077813297961558947508421259109233672930706217826432751658940702087131738574960942888709643474594788159404630040649935017987053532239894666517015747158116790137742063106670271325361074911234113374734912394949634325127678670767909990527651077510832927920311818443013200703348416770412144411324560159135685498214944708882286861825349947520461571602349699005443325867348194043306584593362736840421068866162698009234401838406556812012410509767390146160811915956216663717455237114874382037715142321724734854347301862198495053677578417023327229162677566987810121964433057649809602464588989784501498583913970847429010124071523640036112627911029555497960670280548378702733543105768452709554448720461631428580404894044875865057048377545378160073466904288571409312512972469007513267686224183530050014787060394529279781064358371090641165107175104060365861127385880402755447132126617351068299197038029396333640398220160956036354874057497298922992375681400664181339983121722257804567515874313242085201777025707096328406996722247675598985999240298655653764560640385600346611986224043728521146267622237531356610202114356578417265861069785649194509632113998992349763428504692390484084180791291539304499979247409266871817886709083389255867610115329792153392854682841293343735374596115602853896446249296977585785455036262585007437052623460867390018488198646567752114092865486734360478746949486362740457143814399550703732402510646443923692773530100999260676108145777503223168142787876232186813664639224538739117881172878501025581966588206839813354977420285411867568835287275310368565335047046547029934925577753202965328991542896158853939840014561631983950635263627190495590691431784657849307351843035035728972954642339624433363509868488676610213927574453129414430542518280360241151952429091179729807681918804708767067107051335050176788560540720529146163977070707518106318658722619269206293029718924287986486369407866086185570482629250869924694185737243274529491455222872011125431829901330876441764299170199150385222113579243345875799378367145626310187702643934392687497541188866299769951798180811325989087439589559081521883409140404185852174674832462594862207291334337180972295319997412760057841445506390481356007499475051098220201181699036183216329917780257704797227666235037315817037479378429201142759214800515983807362140805082502395690094119883384514938181972749833450326454636196847657759478812501525971610266847397868999412140716476458614579049206533542672301037870805881819243300791990796359908362546049046305124427624013245452727129608017530781683538190861866927289442601417216081925587408941550360079308230370658139243945145592275556984032214379475747245527163054946195698039448922447216498944791904643147067930072447435781060842019030455328145667174281571383892602498558169673621431021737867319050827095996913784734316202717256727471528100868117779618772148172185292425227648179807642739032105200783382958923943876736832509861577049580634009833675845470996786813144205287378042186904730041369562961856836595865164241474741293845317333281375596799400867583346864978940026843799636913264294932259084430416390202460186198661700495000420918386958679888340669635375335579779881729737774176661374119745367959114152322759757056672582982830039091201456573478460966593012723021543869565992020903486993511493517317545398206234758497967873102149475174998092132152482737246012889948132799386278695818058821739060262999064190641733317793504761040633997397149227646969904400654660929768929437183651336648318991353996240168820958290861059199203518290394082791910256669449449220449091367170148408293843721392295404928850292899978825215296228176788253440520698294237283945081121984428626955640002116993339869637193554416846147894342706541164295819946195479573523615570854780894546286401815097646316626476782011220627299147916554406539734499925221096199110931418025418522763051888555085953462831761283814067641677291298690687263111858020382734380494981037805267245432222105974846422098654953552469931861229500321792649268180695860293708184552393048168045853917924620415979067219318978461539948883216832575493806342502851982844365653225108416867384831952800349153399275163049136476464832544429495423277919124601813258477795537617360785496415468336718019261444978228059608796332376930545758389957901371704090805456412792058911621326128650980340686692920992918509386258008548730088479436781255994844131657268772082866546618394982920675259950126489760257580778836962886188529133144034315158372803542757485339761365543298619597920660292613643885692908633784708163846266954358777935455419811585568286422612636907312404655982706529030321173585570991897042975512261821300437921517975342786020803022906822837707719245998034039248294218923610157483213937969885780071582033318743239259078060907938326718291450012714785806085210512878152383207834282919867686635908678171321252551928786204553534942792446345071721998853101134071038080254897609551791984749837625529763589909938640159909138221544525717286721705488096663712511291798621120979585902056146592147810938188479834901899722926149257704725091932968754107537507618537126146823281429294096044147109413075223638082838253522193328579450601873644784966252494762285845197623830054890530843098562086678716203025154610139345544086842838791174325152928011507594623485206780578732502267717344430760640197049579585358910701440385443295106549370972155757808830787944324839854300619587181518539000670197739468076709352407554080598140549454624118398042109219876488330960591082385752631443560681733153450228878974673744591140534853209748628606615236085951060820855731585424760179181475301736961580245516617344552448919524572397552698369562797684795015043307224976302416271257069470356229584259787015528490097955337618602890875931031458202583615612842209914380787446588466079798318420273137184814521184916616714884042614688866080405910578663637624204285214061062247743215182746939991873615757544378061564650342518699561934671748073868760846358719447633867889578423517517361403093872900040364355875260368443446521217840962749525236122261999869249920203480948633188799568149639196240780979016415976539595172069248048122603270060322719763489774902039365667008509133908212753740522737576161521496632656233175949124273073098987970283721318224057587111495877029228993990324963323520033561261316315753767447623355983535542445740742995078372028297801892247477076006985945854875461926288667641829679886135152183462139479899199023480681580365675927882959516520566712182101456963943973539889177589018237404952802113914329940858145566149154096075801212516336452433177318803520723453175041000236150627367344424736880577730051554353536732403137705052853440840869692426837057053709281423064329155898606745966452094620737826858921497157466136896974744685107633855981220243292078549626208963033519680323729095515968324298640659072876517182235088039458402815114261921209200895355425235620913593219560528821660041218893128282335522629283572903113958157246221075056515262844710203637830889935756528183367078294018692215212753024722864445599499871660327354173687033885151736020267815583313396755402635355205410535131057379499972619719608877342311538155447721005277754167807155003517527165957096366163956506098475706435307469179228762063533125871972136965519813214591910684586941758137890487223648891199438878930228246863920223783085101363802237674143923681719588397220040435634479726914611061280258428330144204787722079654835874621403458072786982874901695738272071931603923583124283006132514939163038919942190108114356344263676027744186715438725422510654376529685195384434525849182325773129256595267004096159271734230451174307624655429207232223616076826667155122935219322793153736342449976567007141047924549293419718087244527789493388763872244416176526257654791865853396778681481370912859883390615436057100396403890112157306535360597319942833090763776729036886740232366180299980959553067239425688029760418300795198204576054318739091454454148060192074455954126523766372691470549566345480081027335193359491477950798982256933172181452564798164757279648507824945854846289194293587453358337763108133619299233281883821065818502252708151842943208056962004248613185289566052381038895375380855199465625645823600473644368819535176114682242516714830217381312898566842281713899181502444017777566748886158782019831886541727868979731680109306513126348635422286662751177955286125627704659238079830230512503606478911907919801445585316255915858449378032486625794393260686908714791668236418197116128817651104953662398602001516246484400340960886653490689193655908493111497080622554047860629799472026057790363305008750748166594837677443064416906994669822401403023543947072806435588970200596167600698663712244448234195513655170209770232330544622437833633753653263160521764050358173132430210930701570215696396339910951788021434247106523885124535174610710167387849385933787039162780316964031768524282819063388824606560467688723322109258391297301945110110963572602068192572853943405931987498709122956777861071328144665156411756754960453976624203218703803801208166319290150856551735799056990729807729296656043500193988285660464634162391930102767909940538266154670047658188170842515633114967203528725370970067458097773249682607583927369138526499677989632462366844096980996073460223673700495877121900835397092324762233961683762726730019488298053499482912654966372775648436306208840105410084711601408516568992472978414778329949533640762657344640482026762717922660971605315992420023044443321195199151585902200309549618630389212482320131536970241316839044451263265315292313989690251065878141828966427816585599006779120435373606583607876025793978465047616430136267227934339722249942764561621908931313123906335546634683533439436510482972884971677574270697992276545691220087559984040058598433276541832675091393687157765209467831279771767561342966147223231319989585244524434719472590674837540592937332473888318863038769519576820490731137558383840839527172508296502752013767118403334268461148887546097355424190270412465833300414868873488202517924168039896475800537624513668234550566691423043208319291261916005752173749616801956066454964531104894095662806662877560250297536989770313351240678262926907188865201180530306724055485646600621612903316988770903570559163039773055302534822486147265285071671024290256617184857774985575322369654173997821907160856995754078207857400143568608203160733919244708599413198889409292998208391405417556043025153416846967354987070272770026292985716456905432931669872398911179794351200173811045825015732590496322560771353097949553447152418157123966197285214987863512110970931249963460750432936581055648789846511745083686514705997841391550894371155439434895545101331307797382188332699072515348643013282764258644527234288489681553782055841266875836386591755237139483669305386474453016658007328949650816306044620441821421494989014798196187493042431069351322716570556557021479253854228089929667116408083890960955723258672960594719732068637430426737326888209767065412520117765081300815785035284015098198836233558610909223893676794055002248577362929472598504016610160259250817808762418505952763174388869654989958239071464815656457511149878522894428150227676840215238294582447843281148527482813235471690554869682044195851421896685392873055655576521241373466329903287677054503735842252326065722970748379102261890853992201435757942724203822285744930145491616429302387661879606044286434293160755188996016132080568675761657567427346407172901869398114341848915664256561815975543287504297404001978145925530730675768730808794238327875635166182756231718824192501954388707749025636323257309548803194368921970370264368455246389227343631151343986088863434218290553228270892689453739914420527374673264961277295159249215634518431872149907765254504573007345009717947283465805776033900088036222450310840810253763058480953260559478573522889938916278512392266713326625315139209552970362693001011152540987851698576848647164166166279932829680826104168662820773849384744354049401170913146011625221539054897318979331662323967273939679120816157437213239249148587368301298494720217491079822782499628609286811774347040559989305183672558147008818655176472018506566052446115760633956871466266881458489520893938375787861313979958179790827646461478400882444667055574639462397222675011535827995409115674140700684539062146117800469834703795307209601878833345664761524589880952977707246501270244702793880320260056921255659175719806175061849728475917461510868238290937997865093004411099974047566415918253234839857668414093628580682653080039798436309858976592190001737794265263765357800568272427906942870692953397829252727910519518054866676170548170941615338890711249925734445834047024955104959078778149143901061239392432539388582903092411126320371981096741557648701836328772095183841283008323554139982497438107906052552407655397404125935639798862500147711102622098224243583203875567264032524334529061353322941211851945034214382259572181923004087463117232781517268841865802888636385007076072826187103417209534340977734539937739257893099032987340737644344573810692365840868359895171962136539901008805436420320715711200732114693027854934174927557175544250044444215446864505992235269339566807581910605482905884017599592123325482147450725679173106318373814524964633380789298036481244602032253868276318706534321700898356633868589243034139431615560788988693525809396049754115235460734888339245551243644552503877373047800377507179643416416560797995445951705140444907479021852772650060609282464634756977084968092450632554904993864802205063098132782068999677688974782237634533831074962022702556807644098675324247639396943651128195548986313588602210049541842485780143025123052970795147802538069129549692433139575677121600325363704425847520795018071624390024895460110051351867815690273297231873466271885401608988252446097087498649135805764231885999803762841751276843741862914126646430458063284522143608045093024222477359262521782048691508215123133986387951660834243270415180479010812101778944301384348612666646250943760048212609240508037534967487075731711751045468779113531636413379337001877258174680106777949398631837767385434871263624130157061484659932028166189177983921289134531627601897488115460222728635084133350914914218126364256401037183033451855144056582325420966915313846744894482396936400133631621696449094928376786620491380099773142050338013015128542437769634566844204965191673416626715339433561720768680612588004496993802573582620898415565252602792503326485278625512656370411233714717768810047568487817688022469346682518555551478323165267465064575295872247332361755364399975896204776901755434794272437572498474579042958817130976544900840454909566421463550562226471411930415901565953389803426657846154494466882610052046578266026221320413205898484251812331175841436809826352046673776257757618534145933334849278200122836569171863525385418877795432185644152331674081649868138120204947934263583872550648645412985335303727291303644023962570217409293505937782931686238627733143311462806734897189139776690635569798266285518857429575314691152418044976201042922775009566183159799595388203909543799789333074617391784844512032966710179973701867059478215723622497126505993785601472553691449654661156643184983672024289303161078943583266930148350883089647829834505290513566846142327187438127870904686900042696542768410334865753048041231362730051708599714160387229367322817321182068504380113954525472329765459999271727614108421484765024749315406465079315564056984752960790494148011583346593524232459685682455807616124620581887755222555514188592459267518086818429061082375205595308868513137386319261231673396117001854990821404021663198493950504782506882928267692330520410241894780694363702004904434973458026392378735951617548827284624638198100045015956132617769338578336747303104946267249674450801090623832481178235622530321947746465233963134347974577816916721197139364705969133100351018715687608236067018738605859332517320871177733462211895379704473968432024019246943181906479806918826514894406264158413745878503706278539905424704288059634514956972094507986568709593074230538665468441205569966647882773663734450345168502269243919765432235057345365299326409327494144126978198704415073963190898119959647901957734075961036884139191292629668589284847401485524479533481825689306412741596371159280402307961032165981698096307892797480585769684455395436728152568084810460344650693510013116882000390632793818256265673100160530132098636301931678031364386354438458451340970455689574869071692996854378688381082371656909096841203996131707382103508268644082009771023584314066246642365378527253091583772404128539170665316037647467132235209640110163105179295374082728627123685030554133791760893279620910285392156478000771599295428342025985087502828719680455545915868450013856275271071643207706700279177858502417653533002106321761461511624415959624916742494624678985651493092022328866233706378423122620920547573630837632439527280810534543734474088468277950868284159655828236306073775676864135648208696244923289449342175139813046270749479630151364723176557518122537096132735701548761710228909985944326393464039883388854224299605107218444318242598171154854097838268860160516252026104068466424473596043914531759078045241067291826777659897637672672715483634157623841413908115499814883619069687286716335383763621930485278567210824857484158253880187421671270071326277717808167984506575768093374863915381416781420971616404581225206448438445872418596187891689224884775467897190402551665535199901522080128081271041023598614510725444213606504600338553040125466169297347259439566869036141563681863327123667527539973361058186356788529250978486887049202389015981254232505028326080702303264382821848638512065796787377511397658691194657621398950467181567381489625135955212603680517007007589988395998514250203957242113327076650608623479871663992217281651961969262488537302694513484219643503746482694831202757790117927213549804319153747092318586699655313580425459346704360390874800742019243164588965738756386418486598504022916453348551751821041887075157620021734327027807769275593713455962432698608540683099756213716039738394569033961518298761053600886881021982136513929769081466486480609539975050242088017918653940969980344607277292520405460942511717220950272865885043551116191964570872201153511036420555232658028522039466971404212153962597709631248393727531228842374378926525232733839149282852498032487954828878836965956021258695379698184384328976990544488362390422120045437065307359991378213971536059802710353786647868030179156410427648500778511617141112221990866859248359636987009631275334816257338154085034527525958215930693077185253808085013632726521817914761391231253747656500472751479162151649979730006214861787617101138244948234707119452129263811814725527649396380976576594811455661450684998616390802255310150303336231412049389323259998593913927846449171498961282273369077383226547981385957167927893697575323875730619102913892147351169337844295596805919354150136886463680662984397156783776988295814517113759007081011182898211600202435714648119686108729718539214076896078293370894013143237645846573193167068380132542285871436199295040254969013455418286062481577737669394151701398376268301986795481477362582012997652703391423496456159271419065083442949312312920187392047718831765449228482504258569464421991442447952206147969838102111245028177379107411193087810934020726576781983042470141486281142868896805566948576170054715726627043871905952306199318736463226617345632277518705610403066352252935476676977606249258330935372482609102767275415787296316433118665184510047569925535540656616565066648210631180856242561490746289798628725960447634287659699442959924796112377034040355583261567235323908829260619784622027026446711558370255651385067556959144502009197058983318812858655088304249965561452912151124040160901246348465153301816924690479007604028857696023661494435256032860269543888375618532593711653194441770152572578645017224434411379366497368707681551705762840616827971599748142879953057655556046680961490781972085168772784855306936545705001906945233338131586551426982142366585569872520120082840220524811682067114042103004073125045085442412676252263343345189361972337342526807329873485131710890579132454276156011225214272501461889007717246777983979767876483731720346917250965557793459444645063545530167390686796815405576627839837458936387414685317186443519846875380328085782952222270789047651842110243305150315695062240156537545338218596220039914214343711277681086656272426105819317153740395979301269670035162435362805617190824135609190159645549951497266480288506897520198594467699131588591301887380088478224368410639771633367943588195458616513410025726408334137845297944536579536103191275886758302893292084840689506101734101954931686503929027243502480734938283016484906294659423923828888425085804852176955700006132748147591330005047047155832102063191821668656052576380912108385283539809623272580807325657804378195889748005435801943296122143943630365529977042113893064427643894142089602396702400568335773938203709460707695883811401224021255266769338851210075505782682225519599349097722603758961134312573980380016281871935207332508665514142968040016337100530423785796010309319386885849161850874418323144876273229511227474073172440182680133106751057493851462359853033799095577100835397251077511950964399952058593606543284041014588538042069192239732322555029989648818387720735546877985436943917293654115111750001969587265462727317856050964341083278708994219300580825976215150662181030891202042981957780266895744711350025459731039446936957618015874693857942164692240228652792742740055818278470669432393100928285160768308545043887239145011461022026494703747786048175145878230140981916337802201216395247184393116957264137918105916939535934922351632919803765120032745465136404947725107741891451477613145209580638930046125046803167433876126719078502346562975194428663941056251064452120868414997501928634391465960196832867347030870170001860516723089629266133840965920626444375433685990077605158994750384249615074171593928424619802202913081336961391071686008645983792305599864351195438255642329550253934071002196334820130322707703044168973490584601170765379529976989159078010074734804133697831471200152596120997080368491786383673794263120711427699182119731404098516446364980625134730831425327245779539531511219768951490811987662434166088892422811268382441737176397071882776335981214982061273948813614432037093918052993998994997033879834358735164362605292444404038604892835945736933546611336398283107782454347493550328633989178732352122728627000852400396048890829177735869423815797528969537763707781717032978536581666169378749625341556532456293646717983842843250502266117630956486250881398365581971314827459614735818973493094961147145484756097890825800352417049902177730542149961248490833660492766282926469656890509822650273714245385407556923376726065962322543826438861934439019078759201704808268358465215192253558359966521000989272163296664092954122153299874439243828083765992735288527669051761182112778150692809858938529799140589680505457839742972324189458419964063296970949386303563118650829685122027396872527477988103206715928072788004211260925461046046827437892366464864607343393388865157413107645187447950903747080749313689757315426010205201432789410536786649833446542188207210387740710550898760990691563370176030619114389535717911185510800330412432792389736212655675305374729769469132334784638660536217184278328723118191837784569174362553084290744070968777314632119068782060525016249046387463519923451324644909496610285964203538316357933011244676217677895512218486028606419619232329435274422369420342375701459438731495361107925653201911753361126605224657059184323357439544490766149166273607621337351683175155689533885311451191776601513706507267135526992634932758479031544459287903638711496906411636119590000065017529397074977315272293736937732485058668304670862591694985197609185661631384550686558925469790828955916929150371718081377390176082281649134601978295531335280890948984148241550294754888380221752804701590558582576013780904029794489851318099912528381159628705097999717764375647208685144649899990836013611524305965010640550316981840689596202841968572697561639031451582571978370865295843824946434682573921572086721417373205536994040810808933100798063214961387200283874493533627699423423278444920757508279756951696668296109006414448530673286609566307401193511091960068948739847613286714227906753607185133360910862137378909379599378243842941961959661050717854419217406000254400950919770134300295454138247739210531232398049036399686315023145262271728926514540807237378600491666169192895167294393161265012321293962175992185441019581408258977412161634192894593158873280817075556508983544817876327197959285938259490320428635549267575519733340586396086176144761590701656235822035805305970740229960305070841001416216806553342583340942924938923551679752744435427766596004861501586545202505991296670574880913751557063441226957590817186128306971183486477527463821641528966192931582852821178858583508908357513812466780782028161000182575949139906411094652326560075149987644010979166105722865171409129290528466995624185758567870653280757191285221573960000754889193839461516811668638269825060875537316234418163259906169817878690531763153210515479050260733676802595934983664773909907897794477157863996693958295647048259434368105682476609385613063504198245572546223246007469665603636227460497148811746836357745615156108011660147119784737494949411718795786853811566953257605637328233902810593295380101750588889455809070518716082184754770671618316555098651424130089697080918833566960833782132102362169955316419259628520992615777091200476468936205711955022459890547192868709436572354220737981072357508655468150999896240491893341197517555708428246104677757628742191352105916770121220100060842038822171547526370906849508030116091128856974923444526603454771246543563344716044625909646813829000064437786027221709818883950114180316323175198979656353223077580415032755593163578942097269251175240244175398140300802517026045814047393549126442439938150478306574931026502053694050899833055622388784673951998520917409448420777999748156557095375218598109774626916921897493663444876160804303334810557813091182544784497328692371900151705816859019783730585388762281595306686939045277158026968070783321330339044086861259261110279298122896569211820135876667430899460649612943888392686424651053706085024356439128199794633953125009613562968694343474347253719971734244802218106527755198601428236331757929349681834417810038003318602474446587015111360952634810232935957630276572390133576940281171460915638856029056972009980279332611293473446944572903370471928459002233323950466801021365447703440821521306898688976202617909027269190339328744495038733374067373302548535425023302661306123753337259201111641222784729911349296746008836253594617258022988491680969032321854071686964891915168800286379775925155019951139696268444750291780375290639293051016901331898917049635498556487168688324056804080325525819163514002044823515878883861730012658492331584897725199140802592776533015223679970487714427920412920148767590653999459027305934378102274372323990767971426709440710646088928143593725081648733631833631823080974674694823148402908969751097255848482484008607568677248028974851333532270253968540312743522900927630315992340827970271637056583253113217971241285192948137087639003292796000028530047522202820089017838675383500994985852225883285277822968188926002379387868728028483732066661092671459773723103675658486058590685243365408831130601865987846233013733393126723529751833793817279251989526634902431120378290876444422982492962815886409028670079674442780815461523308511772239628248422269821402216769857866983164982626604321067234953741911292277827727958913615590303001068040636445849241055528221063502795998512863540962770012113682486702374342035537142684630915249529419973923392047842067745718496088304949936363377055382216627954020052886982632304787390675781082599960391073474950834265956209273161981844626876371162719203070772825717630645629624919333543722152727564463188512481222479711301861858513338839176663937639561948841056236253594630906451494365506331565043800392067474978906380981654962738132094084110250970720793681598850878240754196246412605347955338675596851004364414768398960796862023577255675549072776498525622118586608689125494053221064467645167343580668455681936152807627883155509509424200780430989074767427986705455080860159140710768843651152997593877187721313297858036455729228000089212309576934626907210295809134331729066400725165480158772859670801830427619446725054445403627464092602286565758059254060704995922478619806753122491974008720146817400101740937693595732805017069205772230958770391990537989605542712615905833300835708113892468882236021052480152191845033220164513135894263622099539042637389153321784553758408681816537074730390574016139038391287307418801207774781103405272224603704291982859079162697824979979845438307601265723436939587606142796061764502888392287440523357139917880757522818130198236851586277345494860028087807777930705170215559329027902695661221560030330041110007188245183680190682961469545819627915236305065833224899167466142498073041432608351715618402167004107275351233796897866517403369988963842636272759474216939592832130499091781145099740233739102418002902335638497757791995266017043689117080354190416901698187378036582321845349294751416944645116631120678606130992366047822488531462676041319724723383960696738538230899885808036080566693300469182054013457287967845559684718951384305335525918043642126008281395214589956874917113394023303940359297169531159974799814301052861644249299932207611748817726497209028991109851862612268705606487549767168497822985763776294384436733952890328381977635820084367437902876822106241303042953817344373395333376761087233485711528621985099543369684451440595307113621405015526007176778929021005726610135719122903138356033421988091986667954148439842521741145248658221496472900981811380912342715889659654171071836226392199541801932936826285471647656801465169678416338178801910324773182987670934850271010053931259776978449467362607412969332098455545316579707173350636654193970251390921207398872569493778220688451276142660482753156653848641849642928397602993935982560597650792207867033177215982072936746088315619437073278797600535108453890016780446372173959763447286253186414356536397118373053752503482448478347499107684920234909245801938128755441696827967936618676401457402375493428684651567605729144303240977540785870107347398077461057450957512867407339923493726540177741371911712185689076932773136037101143024288080584184177625522582366196819557232312103751752363499006575974176657264327205150668706364865298711986385145429884382447420280949919547092725546011422800962871829270433477870688210400339417755783702356038043618113498879878942369227425358894219272217223111003036104254874613835446813224912217225216343534384094039808112779697156027081032701465288004788939091837753539345428559094688381113027632809426953974748051447108461523695659397217530898266678985713263506097500307819865906645745886743349686031511612859125931202314616707655483871640398270228610397651643107126579880156147292528556402155109801746457492364772859570797109265020734370894336404296043519302825532039155097489388197710266666190960108224534426433943166658217065077785275509285007601655768574372014117643031888021189058910034617730183603242655391650755253909751056349146724825388997892467966250233099589126392390570552128349686035898150112526167764638213619004102968911022718118648481199390305880043936473120522633472111267881479208287599982452880721909262466124797881554016743618275692289844005968260189526539443666264865826795308997067447484814888614943215393184495690625780046783969166333529163827058929521203231835265976153009505246471791935227726834533153576236904303550161925324584300902260435824945081568219073918892687612029824780317011588003471726080197095725793790568687824377641414855985098225830559877744393076104867328633668545577531616455434194624234106557795972830397146794026288000825276213264879790828331428699893458888731748675595860261014977574264371158616742467717469736591671910687174088420059734488606806172811041076045546891285899300320458303929865521082958316823150136617227223853548844569721298215377457324518934682398547274378034752413387720790554645997165833416830564023324557382308597546188937138282387698625545917890078069282528166080651054693991308683295715453329428858602261584047560404424501549012323899598753629593041113239974577989817171497555247990220324693951970444759072021367008547287244477489145563249975165219616366548154342113461328574263818984289980048935862669478402212677957932062757667961809817956887418723668038083076940481296778424879110361058401608676960619746968623978939566455689981029027711426572575130892556300852632967865447195219156530276939559896646767514882151414494736429867348271372358744398405391503762045970537599280981804011193498740609864678490282025308189758371786367750264117433543372442452202891280224170600480479378353305346246574294420152476390584515025187756505285179912639164752981361380823461496822560426211002887445575176659402972467969910079878878370224127151175072504187327424383179623283665405326859079807635602095221757980260363405492945892822557720313957831376499144252735197116905016297298855145720097187999747099949533537149640587357431954071804343138293850973644967813544864378227112347813326083951156166852043023543171827116725205002437819721458661420148792734903664283339662340323818778460396635530821326054233697668311697446344127142619056796534503720116963893606739437033713967506455993434057197732412607404449727267200695601943403993395800256093206030170288429005549293531456980902120747010904252997133191886887744050352945943014087004046829437028899102722508535528424905557799929612196770720286966697085462475316904147784750609017908141774838704217843978609339648994303545250897151669322548970449146924037437974051302686643854831271770378157733356906468035657280677772635739047795058379281524859712433611896625648565635837846404445545808044076942331399167688178345567144650194664990579537584633253559765167059376282030976530338919845818187253309059142329038261057144038719053706740357926574090616917920255318945406833389303677955283036900094461879245310111176856293794064508252596123406538391630602896019891203204843463920328208160229818955730962795357716758616227032075059345316889932862639550156109819823517668398764503470013534350185872668008811589275512742071014406182588790337818768726278235244211258732099893168050137846950752517535792955838804908496499187298002412923028245294528670588872220901600514605695006202053840367000424873140209706242657924825066140094119875675250018394193635494025668195959444187620617083619167502050354232748945735876326612928490684400969065489432776098001323116365482803101049974359896849003630018872027317956696894705699426736091450524344991531367515331056204694907533210788652772474590088289023922058293206493718488772760761186697164820414251795572796941093664032139289819648764101074282168213772194689891736497544242971286774498523152881494442408058879380396436048653334363737348320047569774896229701173658581507272507648793197409892437198440335713819452607899026869299845004131618474267801878843006203616464394528600594957053830066149567756382988331175695277314395086361489142007036595400965287422264790194004138350247449664788839860308090659747408793081721803273558018850076091177662264136649954642234420564047859863272894418879307554854942190465230264933237198289968406670506038808844056286631219105846708173165527284602096243196625023766582660570452126009149861282144007937563938986147574262852149352801748517150776418406427833787331601428824830448636695498905192543930649046148864738146507686476275894852441219570166551349751421831545595427054843368949971203963413290916507456365532048893119681922681251216722674035671129797450357405727756781016014820813830005360180280372479774311648143937381086192408642386358136959246897328534080891038530797374945623348027603368439921697392983520988676326575445076747692516320050381673409340945740770426251113192472067863452049201402793979723162991823893301899810313572344933579266268235329611227918578236648345717595146836863991630047373471303502440268697171481620518925889285007246154230134810129907200234602945416824077732127082709586867199294065754460979035308056437369817277825807631183174744590118837256980104249294786896394009079522695817346344588535760313956744945107082111641785711434223162866764957516519268603680100249598859294371760306634643553547071395935538490248674368634745751172211784579470968515688458788232449866956889296471919271086927283268907044727016886165919964891960380619153264413390312257333198203050257400465967797895707458091186847570333732672622940822599170221797180154759983125774153564101718377947197266116530015997019778935387263887449404791885246884053500725976243619614698980467080326308475407426166112442260316139924439334790457865709204925153853630796891629618447232051791334881970640032061744432727235717220751001807727652750294978340405837478580279634130500049709022150390277794654340042841774797534701064717007505068112685121219739896186842797340436113846370446954507308253601368294438737694319529219660664845568806995128903832201081307805674386141282996053371021827647138016684645665749391535840060076970705946688607891367007053609549260426519943828869461640675266219098822417679657378411465057116459870938448159096885909647690011275314305821412856190230818844123904719210490168862936959345729494180985036928317107696509477648094012419259813200973156351173413173468976893079979332108896135678137220883720061314000627930425290070313458616766132871867872398435760328642648658677127633185169753398256624798999575351584360325323743921565448724792102582001060754185106511826178604230243395558103867240359653608085331872104865711700257774434636650026504390983990648545031395766442095483338206884001635592944196227174494016953635037015767129681513164187784898735008908021785189983796737724447597604669223335305035600641966399048868728168776244210981811258331355048981152434818761955564649692354863987882984356614204308087738634920288599732823238546504510320051798796778006515208183912396110027839296053198474409834651348247724785773335516334300742299568108667928796075556543339761315280399446062127648507567128116729899531853473979982728740428856378105264148376500017432654427070720591587094507645211719936115506586230051148297558813199673990072656224824576804430090722621885552331723285664691501822813546901552498945325213913774165967078799813181948980074652906159710901476240539232980040102155762282130091073312168444218717310390540880202655457304387909791685260114827463896434818810781784466007482622036442746311956182261030252659620919135627380647225955289475586786970247790626477262117570853070216930127857022680794993358498410822402748544837496723074365387043619550725278334485422259560215856067100134042551829747093680207191805460703075641133756935799777310887580944586399739445726798045855903757860450672470960936822263302435779537718470843383504444732517789069018578017155741032265987055539532435385639127080689591405235538594087150512923679340569437568593183542453460378503425404864928471902908853666344791854085867839058584730993060408969419642120270468850523854547728733679869659526453202204245732066976564904519217020836573429499193522836739819672936264515777256043971931457989138272421250512243989145733776948616931315094683848358705589699682734345311374503359708909831216579362282007744711887429738154780534152822100609669421471358884328060591191252709803251438032694072148645799930812939516090037990932742374631027246937130223384253399297870903092836158783712596698403322662860278471529857469903307538263214853599993180399858836028013301278126777418686916601144251912229939203856043511256466147760577046868326664200763118213651922193538465218633878780929179296269098924780645743038265405115772074000293400517911336272301067211295459828815224491913735500942675572469156610945986777496775870628327487698140277924526424712261105393016359611115478612625070647435388509982811514419020394542162186934417310618307529591707035533522518961223993089230203673408744873455275972698319348123798390544860707758308892623671528490191423539168158824413148652998610683762845960156643911487696525287293720696181534310139704784972788355894888210002383073868066755555494527623664249096859241803535650604229127775454515431234442228415192260187294264900323762016936428479398772914326157949004078471385825246720962163247770512387454395346449866160745807475822434671508619315550877665262895966075777602142088956491994966585085019742299818270622940986708834550469583826712301874193469460582578227224401929149552161337223957832225846721313175685284909373063870936295758495367782083526603592479976952093194483775799814862010425442494837185474565052800249683487506108918858783597100608142494509247120673945155337389759463151255176046076726054291403320533334426145880504765607781378914204980979474832058949084737837748026882147029235176841891746428211523911552363552641096729802936693487649821979656827222126092775727690586301702309454284675808521238329021819238120858736867747104850455236965629956600116042123611224243852470045690681118178437789020899975691040001228845826932711431020461887648087445201089540709828425785481825780012086703619429151780212245728098077561626935488283195171886732164029353137092623767843508489830336330444457263730586263664102465727527291278418816435084339968143145056871086910464540293093203612433320459688085146052845997153794751633360342151561436767774865934970748680920170827156836957219821719234469949650222217495757568570165873695984689203562763199692571345169300678015087308805453874175554332618201352919134423242377503170421304317479567677392855319930249326169404436361670963435885635781183930335474258688363060134279727937273390813376657324567789403943422946408562138116236237860919260904448662820622066329841571429345550206925346386398056472836316789878060885259580653452122487417309038344517460406943539758141461138084264124652206480608275860486129941167549782634913783363012883007226203689840354636482573127434084646606818453634706568189761589559716740619972998207376103960319350666162602895316123761098812840967729854604518096404565947955102822779060368203352394975614553411575211149489398882694564493416347630276228251243036685193508818617269931795099069623450235796416568184885386126474497590662492417051018711659820290953242634780612359250059362826228687260520243693803977633993180809320050220193207572387799726706949245862172225214405551352242926148213059288744988449186391374100563959432852825320774246667370982316034798359673863426215012031929182817829094664133599380663545343464842214257052957662724438590579911086349290507377345631354550889816732933943966054752346007080302494327307971538843741348963579164358145532790931241757347813700512151229508580174521057229189122907643665055427868914265777818083626087606587073608253274696793238625345477195300512348101020354855290528419290631909371409449914599633460209258152306445513269999725972600261839811093512725091756154492339288420770084715588857991612795512809686975218016416171115697443479246130380272010739247017065706486315800550398456296486383646259820020459926838546133706641578044452311282928734989609504421024276603007862384922772079219502777201883603958572932957038653680002079708554760777173277479612975654573533317810995476675237260864455651889984232366746799382801238801811670491455014093197168180022714539106555340166550959975402148738347509068492380529126070798092325823337582321030234943011582377667939704018001713977542477721851534689915371869840296875625711416824153464973073216281116417025133727769323822880393611477514550702284760982190505133134725728584013996771011365720224815026380229594052550828651142392738818071829779285040143371952205886376937647471531763002916457715865883049803138385221182585626616315258447976474970533602431185215159576133892875961793596894621715701801020214018324261982306479433175358953242253124031256578323950335760496951184990710112716621200477692118868052075948465664797160292608892366697058597476613250579056724761374113244289742473171947764245109852978847760684557089002519802010804801044058571180854847953735114944510875430274020089803687949015340769059716900246587726297599910104817712802500532653280605035968044471219362143292856366855436494609823335613106994393887454040131301266107739342854281483056011201034170792063537560395643277002635195460320065027837784758172022346166570911435225196808009435966266779247988530589844308143803302442195302590877654296923363442932258309467191584072785895026411464430609891614591375453811004888590384059441589350712750147478629494665870234801780608767400553568884012424747892632859080416454716061119713276337976625451822051797959117623501622929306458676440189699173733920262897401869409608784196942355215250287102435710595489160119972618770829716257169403983601717238897932836305437961259915910778046874455412416161717483214918654106807753652570770022943092258237356233654767640882950583696066019478414611088174878922649585541767655870688772062217694180947616841805782877270151938797369606131823781541457100114726150420772344793676490623588392891787043281695150809994356915196729597080616326433428220306022778058703772304404792045711930564935435120581835151590376172874898046354813797225636712057340619398098206909236545275820638270971027799067157614478062436068078287478327292891482119523798876393512832263099245731197923877286234141326815162993072674991089071802007365737409619747259115236480305194625314618269452629835882028463558005933550336417988117683891269116459452430909984534612782562655078206381058946427876212391571460099178642173905696221911835293332517969754813595229733201942856918487549742365118328654311624600275621566496231084815687273369639732428817820250712956690260342167005658146374715480819301711145077553363406447694696512002284812780207731436021766836581158175605833115090786152390286303247363078098631817597587192921033509267582756627384918181221336329289062769209860764948741796850084745006542446336549607892791239115502943297177222729906488782575191176483689476558987764828597014944487062514555155116978220206367262595927391554101719497197998445246514872120242221599752225626812435871429238400172871471665156305792186058653826555786280947635343579072540132094735044388959041276323253118591232182464224349131415113594083044216186716603071023226047559675246257118529814893496873448357364856196179154126166864942410373633807093930709648868849702990756293775944953153720824860537801533874541503996593463455068621762021162454697904195213484173153006211072091086300419965756154828026893428255741617552760841816123190589174431195244849052678407385768569954322960884227094467698981209690071896726866670501184484729527029963454043237424514312851631504049899993626393841212429783511423135845089777030127271176405775819745129084028739408442514585843757802777097322425449970261838324743006709733684784420320283651909895167827461207803437684300021295135226170028058215833716152474598564235214097843875746899147017760986832624050447492706603269888210507074517125979015730608793389512421104667736234024563820775222494378413666935927278836540379515750333293620775387662797331230279666995632291556192713415872608159330518019709360250668218134516377412476723986563164584430732997086906001903334155872996000090496247542767398385464513172061635348013976815429224608823685044934482552597363027111875682148546057433890661150259447594014818213430314787765939484988283079588829954758564354454711442436378301878830557138663202821021210543985351368999403862542376843123681330682630665630025788547308586666176826609867677573329758758807173188057598174540687786138163616796916527210713597870276639282550428924775818386535853224336100319110165614363380113022012326237528445612856833702835792424516891744763316352953028573693166419734888221118262681710878482244892533107377348942115826056573006420285901530188811269200316989811478064757338133672586871070182456966756412290580591388655425316119266156340192100562294838533679695478079552454247860409454998264062263719325072283674570312215028914342996983051894530692316932460371543323741831848087315679770895975458728300856654968432575398433285206325482844786558323135032354843826913986628443952015982690085869635394741974893412213643890899236673076070944440232324779007578897594113403697505883686775740537372743382272683770426502703605319853908600974816222680314124912571556873254177727200040478400196226910631046606090680280154162975010614983766388927196085373780362779143409413526271028305713766929479389799544420093310032796192493008890880161177632294425898837344301465577282915857136831881267382957021496180444043398077423845362981882390310544984515158404618989555342245780711504088518235544200414493969277524115186966615592460526721017664357598381359910924172998609476323424864728809008122271155151304212697690967356018071742834652163899260496105278847631330050702002827246304538357076695771058338475454071257020684986371632831250899912253700430266635100386543298711561021223993208149929270908139303773591119625543341271319414510516345249410327955334173250095126885314073665540893226251402299160429577192333960518656782209308463682663507082573476267245911458434812502514023114355932522271090602510333240501166643287627557655846042802799689504757321941657496243743142788035678294228079950604148198254022334687653589382099251833423294122702793045795720965816794011152652813991975140083283783538813231446085735174449115384063711839334627757414754912991902913071159426355674437554271935143911281364077017283574978678429719151628407694430857176973200403317672027737797353054265935328562280991863383003648622987901474092391600299391314475954923877693864546386890772581465528758946848543530869048128807593195204024236703286418543010700054309317934733886564022345282370405080749455920859818493085843732285835158342311500277945582612212574202846229379337375579648926229025472243628112485700421578873287783854445429885686172587214157703726616252484736503637099343908478951555595799104289867403765732485533360488386039385604222785593892825039065430070372118388514481936544006869258896779153849409090298098027462018169394216053822974760191132473169626147183382598546073076574666362423324614718261995463824949769410816475147139721146092225025127147055379628026360495580763303860169905021203420482156855976779185750232625755411074037551230677297598404839477017509312208717388116471861913110321616769279131307222530331644774699911443766168041706557917397359512505089067015209460340490480315037663276420794482073050947957037875527798051410574761025294578618759924812579442429605382189340366477481903504969151339667528118222151649674628335366608649186753075073341227319559668953213642470619683586873034342382596617775549670206050757212283322568536840668325388521466466124653810615995580833387691475057735023217165787394839117709207314339029738052275440748931467483192729785860952523242485303887510307552968011644349278030186735568128098981315804369011392552785614352626990295786449625193106681530889370754061838930011974862718530234236512550260148792462064493925075320177640097174131401929280546787075337651812746943362171448699705183280150753720780500025379188588482794474687013160932193075142435313347075883571048089637770574809033252852153286947670808098426539188297689292992762722362971623437097166720739759487686747073645786665085756468682459283396616961329853312411606430586610286159838234029949718367136442486760007692380691854934274674400610492840370853550807521206752054031034720798600207554867360668168696389650797681659288567327217717000830764626480281753553160414774269824787385359636651135547978245630306736186413515038557330669776240692322025328858918097505514462676175339868071153801013405597744576173307251701284428996826728712773720847082950310781806973085489772998094676088848447466174226811782653545234104179136289047980859073137583454964793881018317552147699741610780298499588860864043863339726465854551417661875858573559279035563310655930315103332300147198837566658683546802716145895830871263902307378580518609644917731136977322211113820487149904765667565317871609002105311424607839550949341222353321125601726901545065930671506871423882032636877504914284391202634470613065540614898429692342535735493491999283226521231616479560452329795618552748660297467856445144493395974541873342500696370067162058941243158052101578330809002085036278272615763731538549170648758217334603157273790849597959592354916218761316810552360556910985564884704386177399808864652803997072417164786494916039974197012990676076041719276038264237505195123424620770637445313697572446307356106281899711445612794496169131644536405782340628164996149320313697052356280393810785700444850381850414237549271550367336826823373019575916814757836910444786022267253571604819645134284706099616488754101793778841743270995168617611144237968656411822776859097097770232611701218842955675725971296922481252981591589731519644987385856442903128982889433208126387857820239023691466324658976796158954724735005313881474087008020059189260313402834401004868433106510126297354925622278279203788429913245894634874762697863048895255814717218690381667219514923607291667100157252935920207596605776785569999007198304010046494194461085802986436951279662643872689482863864216539177841650911824795165294146685735161591010450759554019073151884265640680149451496300501697249357046726227152024066715833522275944815958351561513999200810017338169147374941332719988352864741390991958609254174143017196510741167621737944562739471510981699541927624494037603676349304157118505605566268387697365383061819966824234771754980749710630277741822806984888644718752277121160697592004186402831979990182651606394046270121571694413755713788500193907817330679019910943478123276870591722597994895478914252646279164769365404861117749346347111196393764502276548566859580910554100493171765909465212020298500822518463037780086605082791255417630750085722249115486508043652917009364335558786328310309604658167581561318939097595193815775977243596726691832584977411035401167297902142120815673200204397666041174151339372944134457217618422188530264563015763066515041913606878152922349562536204134159259226897997177268913870756654456058704305398416179904308721705570723010291206300948920550721496474973440445842717140370440197602780438953454568496916355833398023705452525668306419100578279091226109511666134432656708421584171263809431378696296904895799854895653252676296344662787652137428728305104355781190886620364061604977240807640943832763150656740687657829888057245504270683949298173224589016869824421739609347288278849391209578809571141981828249008541177641539484089790379750709457462552361815358191590319546120664460641221495132052830542759849435394999990799257347800281969004962129736004954727923975057071681273206736700709216566878225622864468526378873307307335052549330818486810056733891508509146711392121745867627000814223867041577250191784507202127446737033045068543814956533075204116500159877878747083373594128260771145756071498642371860119412729593060958839303811123003466263512032548245777759530529105913558330919051964514451617620824044959558764768786603735280173478829468033519487140382445140826772659914555486480746853820768079154144663241964946392681442637932985065552220494446822072730789251750014006843308564665177901806998172020066706548997747274296663562758228894093285776407327594406276017789999463542882470590706124577792629383382721622702298538122247117130403209789214715233536904913237844165879563217493003069599597860349015277938276605415258748506844801276396780203418809825126183191509118035797110402460401894366991436679219735437806620172720785848281399264505543672342556676313477949577863576811973095478743676543079069527385595780464934068530222814251584171889546225196245892026823053628576861903106207707911239197268843602616680313379423476280270434223458566561481872880445514797820515952036803619727121184648984688919256299758033601103934387023733138054162232223089360896499708861632180733057336786500901084297914257207157393315351387622498642280887767767029790445058013732717363657831221853663848242083326539415162760924828738438217359933726417138121792641198213904624882913251816911951262688922658927161208699739006779923586095774227548105464869637202935134826333613506115372908459314027458053052563574357871367152937625910064122819779262788717549065260505232519630339398366608268597504815353479188491958062499864192245384185664903282018809227080909355918912231568282614439608545850336191826096759391221897932975879050523233289996124966150783547437593599378814571295875720671972563879103572806874310872692684274852996823558252231631721888464902154386946335273663700149912822647432058577791920785232684559895011764621741035697993949665255652069676979769067251945409831742324871961810330077127566165263477142107268824879104067448906992410208984849987133937811832087709919942719289482372085895473733683532603663695240659153663530049912976426454110574850398514790524583287849775472818630558924735214094177141076832828680108328249694209497731939085389063458592113809534619572194224836771936319920054279523301474005317757648202022462554740436404266873666894875947381809457359062200106639063953008915657141961370622089062869074053110409750835661135597060698259997441485312929017294262709972636550987513038386251555315795313654968457630070531719395791514003393724524359883356422912102518352687598260328720808695659678106387823416501789911361523117289967510028132191608540196981311260585840353382768075872258209209367662203062231723235266792274286838247798398167649785210732035504915863295868254438220713930818191951274994150437044284039966480357419573488183403964156801081807133224658391584515668157387212883160270483640917612912190778823396532779443023506726821238810170140146967189151351415785231577965223953158565708649118683216665970719449183302119937834918725174460496845022391555146049847681171540656096980783082312986581617276088956548320245182416671170443116940152359886785506784069033731691700299152410530469287909603968528165468321340097224185071824312018007077380628261073272317095442552073775690573174956044450848595952995349298588370802297464841124458196505846838995549249957056557068313084540909928088800689775904810503904099791893004054869413424254550891989338250574740427728054039291980581723411985584242387236984426311084296386152711226249469270661374374192047037219857565545572054250207048883326197294496892652108747490959696122921526317401623610327891759207242525963716830018716944689506633783062083152971289624706624046145640215665433076530531814871292348390074013013364030283136283785049598854279854581724997549246138936308556072630781472656937238291383154397790422901640042849123738457396674799481792000932364929106658416999682205998792229017496502376928346797528215800266184013681632806312175882414012352359782058382056452117057528580833171878789638108328782342416276851126214752552913533543485716146825131651865491624309996224805557934553128147800325528654374275108213826503429765856527329914110865810455216471217282419042681793039148802765767837529302221243599284248763386372196295196628150179528557719842073252974103629172761403225617470119274702614472525289670067962909682307132378404681666111531827451972349980045635699223172485509881610323563356652405468295341794306595274687306958272409245137356971195248109512708074578169589788161549007940820277727669290607612759557596520246722566469495084031594774479369735174859218255562024553327140361551634140494376542367463466749570940841269241641989275167382383510466624833669966030764565265072017040005127665791803942864275748365928744134324583319890441383377002401367172014611159046026975137433612311041719007389199063021198249472795944331729391028849279516997838412937568558999109698935677140593674357641717577829590205869048149068454035174455605593626355333216615942397658185140932877220745177322801108774129803451487304844224402814516461884999627429163326639923687329291841701529972381944395540665216467750682038822146734139030027129104165101025713835688730070798333259909389819980980458411982327965371486895474734360637223713231739471632271005566563517096955632684601010001725728328871863490237886557898392091453219826051529206278118952354949602743005940725116378149822155638561831758473034565806479686722535991890104731128966306369766140415214463900216374280956387687670242891908829770397137187873593443932200650243725984584445841865893035231544302251543257511132765228861008998315337891714202104735853176238444070957614649270942730676189736721039661144075406430875789382933149699886966761777895552947033656237483705634591070504532599531711827310180510569088782611004294887331014220073500762441150335659001381601875669191822562597247094862987451163144334205221846505140517674751105244786412364200118954745057417437876829281572734406528286452459262666930490161299713833111371344158360305538366991513369675556587524249252411025180333983964440142713055566502761990365281807896299733201767381175615934936858043707612065239009875840627436286261692181188208887895060309738023497595349022128897692852724783369145786684425202096264029101160266912398175817064523562892559032467096374861472110443957131827227208100578616432016637006241262701704801292813948403582836090348920682054565136746477026354997220770594812163915212712506302302141526001072787284129889874091292733339047824099375478167900890481061693815201452871189140824994264258271515992660605997933798052436583474186717317887291389535464915108260555346041231252360275853854002698550228985335357706518521311150811116131717155780834051993335415944819643197025591420054829813689401822356046941813959730917206848007169250046141065131840980274308341282758428313650118751852136691066506478857058206955387976174174121022365148779289428496828150786657711437925489235912992621131737028636989018170754148101086221279187122209100359257911261214616223265078135846969190658901966493260676733520663968113557390632588473730478960787431565820944463181997972085257257952236414343212529421944200451200014109443835125032556604796415049128155995791775746452087250653321185748969593227573635128051157326764469115533074526881599535683320171051122305280308273513257132257295998161547328594586454177381773235828656310395426280311131027487860058673720485981727045611148535501038932289641057093121833279249347553272270683164113750100355565970499677905286996895320433761227257459727890843889672049678346195670646548729711223546012561252592596217494392314029067002977219718402516801421289667256919375834831177816015076378745782320187618195847317292317982478270822154356072684674402618239091514505262392666783400618187954032995555865582743341455129775461008035160006434619592838108283682128845612767118142082520919153548632503856045959058152866091306159494607374586092695869676409391490185715578701661532630018641285739793191722687087499574735232221322672956508570131815140183995038617799164695289350041083936688650341075646925364662017047498205571032536358161995753231788227861897891888645606640575054671380850433079515669698739780529278258887632094146878147735187891216487050923644057414498907276833245534898401094920973652190993536328668374929051614454428475454873965669126320307152310969145855380776565187168424830222118746679580484614690563133574503001684436434918900613444279715260806902760563559154776249150991450914905703859445168764010345429320734227485447988774702914336594006769851473823155473544630361546155218754195717924773660492574844323424122005157261221358984669010402217917851466228759950251237506422800117255311655665450819193189992209121116381031600733811283021770909129711586863069158357140489573074957932712347914746635077896041478330743501527383708784755020544599069918216752424065839578711334117624966320574318195547026992676861984459175854833142082734237640360031489663676895200384127513534219327744445094135383034982447042669596298009934733259483656849754903552036439884875852629582965618453488365763529729205587855198522235939398793949762657818903587092664278068456228816832259389161053696436878156236147792085094353660009172944509118656380150658184562020701833459917526616492313185731752768934469562263128924001489847780070240543241340500928367918698049660652090532364765352851446867863102077812569343732955512575308684768591932941764802092394232827062237590831812815036458223670944607926811660878934994130468068260399976456659466763748288531720639716924394330439799544897246617400173763183873909776846255505267137089065027451401125893020359402568881251006618294013746352884242776832667654156085056643548856725313572245386990399762214033899510696518685837500419641327882886008157986957549813576630783465380520842576750824048942030689498522093917001342544639969403375675255634056673216935324509438689797947185876056381126575674371286628302683497905908756868946396315189251965788083674397803846350937757166488546838962847515945710248872903870375923767087139829605255072852025564147569514035043391793032665579371257980602949067188534051964786551901700855067568152325568236441445976556458747761500702730949252751159544968828692108477153430390697218727098469599962901837964683946462095277695689494221110380399384895490292862733356374768726644316702679110115899602551952529893745498318988413968665405122736896527500476610793133411520564549449566375588744471616051668625240850167850726917364306223339021929364396282065112052661809218967345814343842193425762239643946460689074898127133860772920630325802978637155454820956205341508188048871960549505227545982444088129439418217717612314023144191147689283734457909272104420576792849775635907687248049785069532283060221256787978554476506504290041339470816550703128831257913857556081783789388796954264478051192903764260283988380452868205927811919307395543129789194613598728159434321605577651758772555443564717275344495638878588722887754328964772613592650027373109969767291053723509696230923465013572697125420134733687316934335913095011169692997618045726665021102595274636411169903389627079246013978692344875555578137708864858978958942027436389132707671609041790528651715606678351253101171467961356779991587984242890443739234937658602307689289964294354973315324101101273475754315608313643415242881824876538968379544919720581759357877491474834470298097526347605744197871376824042056196660335259739697778474704618636603604928216338939815493140737610479012626542566116274551150766098810387812224826959178052045776039856384988282283897421275823975664618821330790761639864128666516885828063125675039395482365087372581319425357662397059064249855671628741502587207630386904306163872462928354954219304554972630185152548852463203431464651125751494565875763135511080675536636450069805251170278684128785384136309366409817840266398144509881912670186863564902716860308940219838916523602037736746825349381707385075322746475081952160204526184240441531806203529294405873796568555247404987799568958830871156823524410424447272758024136790109744824478020346038585010191671151644656887449849276663861451231326086250229116631396653329311279167020297474595186057360637382181960942749456323580996054894324731605972447502652346033832061950033045243231337713356630494702465682213046992489948502992099121191241183181328471547462603212846735503168362829255232557812633848530974517542410074255776847081833675897354526353822996190000718447596303799989653182000815257047233536723129481659280299015154164161748438828233808353517000732983725574195105988985505616997750938437809327191472542835646798092626186023291474805890561182581913745557330928548726275431850215587788241268591997682556577780315306665378665390954897276051189864597880527979902262164030702865652588933881796109762189655386974827032048262167176020107742673844510769667973914632833105332723899145163612686913571959698085726134478033039652900293457900961013427476455701212860488112648487931873962400899055057443182078081896665060664806965293732049714558000564693764381293551404017347611332434103771111267149049388384261808780423312100969583117066009511847214406289902057637364776558686641483660492410243245679649806806647792689493712555354847852413447420811148009380771503506958584092399790986481322186096520111902470998024845263519060699308475169807324269256625861247431577193138506834510344947066785553961449199953600882989107680141479889384361640652182177441542206959915003982560793483341329917449848862471908023308550705954141631766277237312186320568123734281986711457273385049321533886164750133002492741202352343896584838513756538905397246258339017123381519158267143967765205857662446224146567940811107928191290138500969443217296587708047281124341157573948035446041804193195903244112335290730128563718002975435220086909777481322041763742755305067530136407563226944114921459781043187557437286732634240528435594292228313228096966798239698618283163269460695961166609941414347976232960839891634831396644896338150829200890855449421708436955678780322962233982080129562319048098038609361454130165611863030005740744609344586885184401318579956192307131454680881096265404699948848101124509870277927214683254709873716520728236160614109133189076240618023293085709452799338120731620195428811084874256728508042399580053897804510836431440917197541496951082036072551446318120383783753639365412948568900659308717253647936544912648853980987187103171011488787351454306144182095706777388482434136247616570133042354960947889930607633306462577201505983635698844371956784210128828151622710410790648578389535668522414290473497490556309429514005507111039359336187408870626526808118314772615418358839896505842104767630331777081236199770484532141537348654596141932141420149210981075924867239393771967705783032709721376636378282447870477565691514983839291062890115175996328206446982719416852480792063403862329128899003980941580620669343309693302551302980949397981559343506734426226191276236930605676690924593489073745745112626580809654060262027578740656986659060062656427042580519499680343952692583088725043515031780598974649023445984411025964054456253092181574846284501692143683609756408341606221553521319763423283307336126588942402591799518418787355837162466148106728257851309039901250019186544267940179763149241894672440943300633108901212828180072796197977296066832723881435506230715381944125404788291216872419660571802448419070948692935562328061303941527989455217451399652528349246399368394725757411406551977941559862728863066390560315434850336798209194609557598759717944044133011627884527595264839786574684620242149710828769380575751130226375012134661393055767959250877262116436761230784484435798200901303090052720452033928732775725443390388083910470101654267285553283969530598098573332749152069044838686394549191900083115724713189541575676544765736700328328263833243561219735415765867205417549455125117901385341761085869691605266760359557483824182842697132843071766799385045244599526375017889422894483533762130929791433767590668718283281689551343801336261935570242991716651018152009450990423244330398308697698080542404096801420099344469988918947438787006044152824339839196958761916728372991093728526451293071363672635853010976728664942727817056355916977759381321559747959412949444881381907706850566922779543552838926988310402924297964345922805361215876555231520812231126005814813322435776792723389707485887916464910602258956337259062436778272611079241619834845607674322746637327125436565384528290259636593972404503347798414454440641451216806299147613896550774662584010127385984436341272811522543107496916051097784768998714112706214852491335765632415834466132893062009351981673458579306594975935683831745355916323733821344202891804555332289965952206988156100078710120412069738157735940321885625920729465405289330482575226125520368010484604935697508332657725555351569670912071539301770155448326457435071237771333683871772831029568837015350205265192302637377149343372080977459597263729435282334442608495761304520853742621754537634993179801356005721915155274725018082368048869545063287496501940791016628370266433273283365060372230005780920361265039422064757500481239030448208345534043110968295319206512120931377934921222256858552901652365725698874165117792467936563636310479307013429654402282539107977897768364120322890792238540157764349554009216595285442074823079825257356495593153826560868376775126863135996958257888143779187408541181601297206937900060952773361884715917849980778023821820681319507541947993447762595319852455872297006148827204449866550031685204907463481549326737290508311579634543673732283626278506425794583011600649341659844386782212432853436836983262496859229189020383740546574447176293778886923975466902963977421826883280105530208297119057655932230556959787158500508419450749052979971964326239216107361938413957493473781953919157314111824631607778535387835349802687245596393751279250798842414757039447723720204173621799111803015813990536306678081775138481053830836520250969042345031646145480382838983873727434432154229307702628486706059616880110848237215498782408848084134261206089163505726376176225941536973004466881695801690657700077906865039459811369801006975363403603168332386573024693220929356903123278803155974470025924762053141361407899306056970562827376702219376456901987362695738804767085657734519851409174734214875817196018138970898774795595276527977496681989847135771347994769876803808919023920559637050066866213594677003681320138390846854669854999947645949541421849935163419603127779993407551099923016476847197534990341031996335618887693722778294388754830294693935648318938551864975206542454307514205235004758728062538329615048611441780880387940544519324948900711611558272397351157622903281536553089411763763151366326725524906084688326968433027152959081119227479948119668688609757875293388903975422471137765099669888781997225448818924986009550336791319142563850816425556253523789341074404084062242462445427483444807741020600733738750723059218773234327801308671056555802310661669663515619487204627341884760376366106550724278000906781543192706330507613471569862012297250596157348691748257286515436637440314712732460415692373099124890918313175266716733598043632859376932527360776511751816804339104067260156580551116804167225707784713329044857184846368511179014877067730769137678583356452154140352599806667986017228899571582852591799209009228902488907429677651566300062665881876516090992585299858280240765783577698753001130870135329899434342625985405385391449075071895522997184922474609823334336107427931702611742976189501578581323947825218576040172153163366830100318037843865139223590788344247854226627373234181711991925880831741627439827596336325595103079435326230715439522871703860328281723397154735140340683179044100600210959974427404321914614292186127026969464407181077929450022023309323467804219076712290603124376712311702596887773918492847534547247331851443842058913545493237861741898380848084852768023986129575277760730831505609122501241624060667189214667216299996567000106470125734739330959368123201516811966451158068046821826793866357011038386611983648648245568039962451254008467173009961393509143151155769903006989898392620461797581281667847271475978385695130778510865152041133842376422333009491440847187216848492470614988727407128842935727554603219590180496895035843557499499501517601417695304608959398708915537335572921837917636618962713101546014789848014145158945212673306764489100226832381387333847385904949388955852856431900494693820059833965384721685832676286944616001175214247497844370319906755219708050593510931160740796092366404015833543177442403498891367814024334848970832384318696237102693270934741668854333829624485169928864362894363092849894720835347394990960056303756210026059489165380721169291620630632357367899505506849541788305754895604104958493116142582584898964543363554708920531529939117307855898979996694753663858995583082858218813966460266416847567359620370474500698634928657011212653180932901516874620467411065980224870219822225993510571399652321627940494002714038046982367801199266327950043422199561388589425333397435061097924636455531680120838097770467662227385034546391358430155615667558395969562385092834938833199924956808194718821651167831436321889851716968391501586986052849738452094216391925810116659272996679588099836774734365948267282905880744819738601979873164467911274470717228662910983585196810577769198247819067816304481600888984939772279152858629647586953571876537734823455548619684795169192466431590255535227421385457694586527067793179153396847399654724637888475538157452018787593152944089940394645196304394608170572483293975162779640411041724525977532099720086148042157275419036807885815271333072416860212300996459413326852458623970249341139146898709403385845290489344101611221308187084328815653016950642886114301109785941379906909509730312624374170212986784914020248136351112087133820540560189378585914072963632799691595963654230158028283994814311243274875688376492777146739240596633757905143925506506967825360660981480579032223541585844642499004075368654145732202862786180582946009731405920347044356067671204942233195052770004238052402534089073239108537422226881004319085533658570693024295438487658111048654688827654271808028154347937660856851021778630995062399929859673555963922155053860626924713835097403120923604661461273192213271714277856945754529617754717532615949192801165871233827502842569671874396754151334799143583593664304861099193676616796397666041366751863102532812765132463314103948012106415496800685589161847247048124408625181189749838007710901678629225721393677804239904279418979280517804543160450309094797673001694494583325141160965070743451376415878593884896280989840658624943295288853182654445194003590583833642200758885616896162935095063853861983283037195768977690550924087778916883648145839928631127561732557168346990315452098982732033131365300678904824996895851362337722406167226906364924007349336127061964710322060625937303242311540000850358029735786673517604903095318717121939384278901087240264725232744696719809701673714594289698513491829409092583556917063099944129968449781783724260044743466802896115769908728275371655015870469697208478800719042672423903329895822822021208922313134014099861568187398444547467998364051061867708222581101716860239566504226210041903620172256990327053829551057521560252187402476199951818141239084296806483983540167322509877050299831238448982167469725139946361892326873401055532102915990198056578047227515745897822554968503209690090956776206779922518801648971997953344987326247489671742885707569690616679877203659096232491551694372039524657985243693115168714084944406730929404511850174304592339178034229159907477457669743388200423506318270636425471961306506454098798816870852163908534990732308698941185410538958055261193793118851246193846847728669514839920200470493123835674932389432196781760495531470713182369433142749422729817225184381056180429997400942509642597753124382919615387199195602270635029643057252443871507050250384520030632791221083114533612501387803097439842765908249707541242865511384818453271691873782298860746622692522638511807414261351439490766119562959459700486240881793699633678159949231207199189437409965017761718803822582324901131522962467175657622759597640478097114398015532302880588970424113274088463135773466111178248268539374021479846994303249608852122705605274199861795550880200882969958277041908208895179953908335180574474631804224374481340807772877520549760929467000902943567284682234433298072647290274761561489380863889707939528792814126115419421928189735246052614016769894248134142715838176807515959472418358605674908015315172629322176335315899031938179590486690119307175575731703169677593080548734119657118289165079679253736107026254116417656527047039152272485747142334285473261549617508654040701784997878934089073646294651495326269553208608758303786537549384393859681873239974914533603807652745417626953742786285237037341203920506295950648662652939548508425902765392601035697004010520941097053379717338253619602231107231677635358237254032541839220292707753022089453651123106665836783714798317359607973898041953504631010032681190475379757125347492124281331848818766326970035032985103298357423146465283119430518858080212263576746185600297499193715891117130876300840520805335249474369118255156541149118045276716543633838380171735542136175669961888595878351073824721993405812917332458008985222799741201323889330515548581254797324887547612300176135685930839085124260319766419863246600358786896285706968617987600763477482703761151580172942677730755944712565276401545704453097728605621097070582402604363227983838472447785570390665327686192629353341411703038195545648780093468980807884343491237272265442115740796372439655341840064339937619758436427462873363226314393128898339405619072294335716879610024572703125071577137299874070783145756738009990653127390278421940152397538261504425986293052566937425013027971179511081458284892705152664844386672146936291827266806128719152954587770777661160112388694843555013936613733454900625924423604177950192295686176262680179563627737605756982041178609933780626263696174808843574616600193703411089282954194641263507381138426957491363774064697994654310895029953371133455667352292780723596876307780117886883842520413867273678808808525470657874774540986869309015196680915009885284304218500730230815279515575460088851340609137059555615054872964195532695809418333767969146606160572460129853185109668668002077415249714612864688129557379942062942441406440034518410267232651728797646701778366977839348615868754101840158774750339404721412812236319407940387493285362008310126684031855863081738987264700944891173083139751477650555603551586580578510852340526341574670952828670582081350528771281074179867846110136209216702518483808361306352065847813509548500195922640001906771192937298525078673315460663285301192981368218400919789450680439871070253440143535702924340543991892150116894758940071095290338206893793391050303902977982076166067834650028315937463011175317504724673020489712172811824064957336454109295848701113375822776559674211275575945561366374422990604515318016940399830484741037598100407009966342517503851131278437944714925913869059330609163711313520707514389564323169695267593053878280893024408128092478451386174806716828341977774294051127557893773917592384759868923095097675079178657436741964053711041001967059764770754809993031100044703366486959366281340664836346253886839711991025644800808836372065536452219699330374973498419639353874030643022726465456309849305373435689616340967464779746398218084362134805303770563102024186122266196664917073121639993050274235262784132598157015307930708296890061300619238520747036466159807840002679611015475641513972930206596651275628224770662039332134845391278760191603543268193309904166956048568270397829786649423429164182835920150786982022798756767196661733811529530779094688912119694158625590169722048218043035178151218863518682920586994333549634161322913824360836444702117915345672978045102316965385324691769171587423095775513280455994559795919134286607892445647762467885748449822896204544881737325729805419696253730958008037116071826293108117819913423591436534382526738632747552699089139766907442665958702819236246691750448773244805768547799446820243739684585571768904219757167206963132834796619088326414462211773366220084177111487454476259049586981246975305312494419578811582010581061386049941563840634758087640911448051731124852371204600233615869261236922172704224771789722080260793032119937573332281714961401459856559000374101378872363249779222527519038616482821563341672364231029007026109989755257195237566451645235093838905579074525002184334529824406790439470123715981091810136505288508434622140485757616121239713463109864957536587206197247852862439226222534713687209971208260846330417775669174456226631630296289169326095609420423604478376181054187120652022253441218264806246024269170207971037964550207936444046067082981659217689721001593349970562708388758730710781889131298880780332645813910664892676042433566327262780587760311498668597310840999978270629613576553687104426875956059705575768890423562844695218853649305716777488987667762468140244334987724498127465937224985462150317820762651772459204731464804269986396232342658895980766913726803607747165113812850435890243596557021838720060122772961599668145395730374074912746442636136148762027698520939813538638884196062317011429160230710452134048207549062485728561625604470047299754114370650835197951595186211333045314470342933319140010157604715959849618147614029986085725802583063305360782460186517312676570956920848704337505028285846728562339271897324698772736091147986296054849872438625578549685309298409477174942779409356229715674001721334478729434779256343773447459076152178713082007954005049838343970654569976866053477158393370206760816125436521820051453726606217165082616068680791649293828902131860842871771760980451995144292666808534276188451787055562745918645111029880560419571199785824986278123987369599399302777712553595073588351931109857283173725113626346320360600779881945588785286477139216545484491759570151743850233360849745588719424828186260393993989042580947185405196429789496914091373494777603262432473122728599765916127256495307161340902267894158779790075168757569418979335985342043586161026126527551947519409191935892806016171085586092664693847492538025362797420600914064228275499310385118088493709672286281447396114665425478796054998674776698564857068751778203841786034193295148855422102679836979066812734678858066251027089746370360538668477543287245910849009126430216862065043631318564192158708253836350662107291496037567264635461136050428307290869568480893044149395718430081694917823713405617114356994963984814128950527800625876261399311810661116622744975352504652065719328409413516529900453071814583102008898298771234888194616638005371569374612227663382415346962629836075051851212470397399383745907300511705467549147473000526762556725249157536527165621810688832733091363310537852095314981492355620084703834275984117131101219921505378761384030870110349281902346070561859096961214799119504138010686947961922717819273155716714509955077009499739844137552080655060288658306059699366462442444836523069391676955204585037712120010409705303386159460818256502491453123923787167530903335063406808897107718578550570589213176538489103329571590037400373743759476892420763062711330204943901702124132035732640472443882711002396517134675658530017075249924163188492171036056434333269721288042879225954493409579314840024858998092411394507900614538987078067405926035234145061671223015660157388572423269536779620411524018145839974651003368658320244922754197481713291462706190372286312265241079396115504492271576479756761331126351516631452908655819067550819088834179655273989311997487821817761760308617541127791324314175030173515940918529313155993712867615856263350973904489686324390746296188181208622161264101275655490610776008292218623526467122854883902085825048006912290258394599652195495979019549973609008558074502894122170185804467909762460791765709010460080336775976981839635527830779967936662974215868403791306613752058402777022727106756174136936828033990343396189164740689723251656240704072648354845590009503621915332128764942594773426112185876446672477531458246639765566586842759939979593206907220008065939584234033771345319254097366719630226095459710031024366921804051747543662368648837103023549532760816458008096745816829303746337902694231130081208791040983656309296568599342439812454025468457947441641424546310133581937375740306794249188435953518954975884637818949385121390850427975045977334035825630865159305163610638763066331957880308551841562926105808943890073337235526327852197713960870387311425576675130179809988120469572469682025536920331984644394880630260673123114593832166803502822109714685159869512251998643176781510532615524627127221963345000725195628410996765354377273771249921824529880036683552835493259860203063717390081074992887502719896179508966228248596096527180040428693690558642767896300256465641460244856619227685574773880657787996734848815021863529703212962385928129150444880170634956129218920925366848916458481369194617059132580571950709751948961988656293119116613956143159425585203428189012097387729769933605346731193489951654351410105687915317568984408001126135400745495161593404750934441541091898633926576676656122016697177520226790005852051090776054028391964753322254103453418217849625237278364726787331569127031813914097968444211147754608594172758936938716019728703722630839589008234223091737594490326608089516212300243334766389911458386266936584240751196611167694542884313698493521312217030187237895682181544843904102910095326452032923943984315576547733101780170098165809205491181689218845044618504075547893207790159888739541136245837914385574431692305613212613472315468023412444905359082693790943990342337117845164404477386120353924866851791778970187714872462611604170430085359714279253558012706975960931572364890468438910183437430558658104435936676545475655811366799031602691531806250040088687836646380576307482462869249359029771255652854774243342590944950330160154949784692427520913350416697373161397516875874720888131986081557335226838074872386781743478330753117483637500151572268437510271350053588913857499199948968973385000610670448663704399718004730617273232107949012046027112198062377468216031037694887515683321446528435307214365657882608689258397003402738335600178389311303337224366711375939033122627270631551170949761735529537172103619858245167474945703791117656222325702169371156967260053771576855087000459332685203139407138683742367988099976780899546623775696549885475509836058110316778267380215023367947988030567685790807476781589667202953740119544707276005417380605428636336730578015320170269745893575615513151314591417459427579097522794893468768356253269018562630468087327283005272421452485644315572324941920109757351580963234513323914656076186127769099752446351881935730625303116898447329138765424543131641965248781711707912334559220603530243087484841198920687723462147748174071062676189065393478041138024411711536492679367355026263081872190566449022795437931133548548641330692182680329945901030713314082568141091372655537164896309334631445397820839794615003842630769831722410124789875634637498016869346047214608383163246398574278408654136876234806312556515393917363265314048618194392840326186175973263460069183068971488668154395905040267373633755268142931067512017562864132434850489325804375323357716804534016722265999053214538466658388946876990153656100509588417477125024707078877400290626818548927547219001879453945174255234999483173967188968659972558862721835865971403838585079873139964009836379566098053844672889418270425801612341835976252814136522886977775888827742814932250512242998033478724486003067085093687092805184633290913138325028749096113639168668779579488733497539624183008334791791871928913680875105277394552728342765973269794577426618460665048406902731887991778539108380781925038861708943774605161608096211971405489551563266378246968652647565133292868808553502586047152861878331713687323442319687009901541711545979827274578338845655199528604050614124861565494175364509936494471123324695199266739237751950372766416819146454239679680392106013595329755633984510948541847174308121045671479631089145702312206893856256139479619526766159490395605234804768941128033788370198393117236256830165884348919736920099934710630586032066823440680995257054196614676120832380188806817616025883769980459390433054220776232783483448477137647973358215213959839495770311610234697752335121949059731023149414981445898411850481036761641600253463651381264128364925304019222648758693562069194023034813630229111266742174755534891293903235322112250636591090158724526170502777247861877837331638370432403613203132040308527175581264260258862143324197782942872993307561766044758014577463216747883881489969844305214270848019708431271708823658359383434731559636505940347807308951580903958766794436228145961405722251170464486526855582612026070912636498859833621221050124305177628301029374742837402768434121476866844558597085989315755815253123264960616339950001136107917388347983088198059501955577690907080492794227699181905518073878883583987408238379028130225769894154796768690471267722429603872800677962086452391371752290410252545697878415839706957641675869322329940251477520101449744681693532385157537327538036004813633553728762773447781394034756553126201494836174928275334259826915693393708844284002718043448231181129691712710484552044151879041970007926730958742121639091048191597754047554391093414435742797915398409494428165035780656474823539352491938183725279367253631295421464041158079307812044337546411931637382925340081587399471478820826957458348970938807114301616327427497349548128022892180921807402248541087714191869232145297180916178392779845373889116373407045964073620030836822967606127613452677750786530877119559260798872985226873990065604528972776447693950479295144979043171584977750511403210318588297475595138645816896837456622186954932738402266031023821427669693928739142492862995937820216369439697097907519550598407718060686848457531712273107888307530216255608605768039208179862803258983505137714488045030919784516729271367127949144274522633953582454323101384911997573451341474134488357915544635824409736692896736277083120273861356985071715655680597442247027258478042111112865957779563575700742263328452132565875049248811052594493733484572750022393749042011677110455443972857117531754668922884659451058022964733868840828239040766525668383298496787177203981737179026865477436867096964713662871263114703790583597710833192021392446155788120019625598152532231260069677561220613139687746826344694240459297908030328854205588069219792481741978555144053451978672112746481438577164039046383334302533075869745354689070784525539775643339938488299183960556038592543167546065819627192958187641779362282367897541893282742655085973608481583450955615562192743314199503803681342685315071980259720637767870952873097963959320067774534886790528561731340724157467714860266313137436883022998646811757321398097947304423612506742639656906074956795055679050190414296837916261844132099290154463897601277109249474148401460241415306890169083868891281784510381064083889440585173429903788235159433850995676102085085654807049367643692770311402933814683875840814063179739427436126484749247943358778691818128753122048586511747371794744686992690737377475299555515917435671269571521795285726259996671067621921541600040258178747335694303882291201111123906709085692575217350935725038032441617400138491083787107792119467563613656096617623335994822035323243945680537152641784702011295409994845514457003732576159260296823630165272874447985621763574475997315917937728984605409304780329677758583866952343756628139712720023626183402835127855535022581530001846499993173260310341530243953988048709478881301122998515320640964943250983429172545757826660817725348515515792167240631394409890031486108936443603030414780690246100456802757299793688189199211175117833365176575911819866942083058445102325600071047674526317301571985190625596083716908687410262160987547230846668015011496813000651390862173690930315112801665579547798992982647831224414119842812292673079112574829852353527545639644865506583915968937780640234196496109436657010249975204326275536824989158613606443257841675922349035131373308932464178898462147039277149778167579144060871250175872842906272937553594007706264739320233376929119588261369671461298672601702206312640219358367230105736819773383917859571190916423956384525960503422545292047647571572773435234416487453911872751993332778077082137303469998594348947417839300776203334713059600733188642214322620712660809920436255785561300573740266202431217179188194563822275557616016610290655351079671053078868978427055388819519695838619600624062328214871191385077261379797630413016629686959252087591626007520104357973516402402531280102915604841050323833914560762904878384188040877644703135772712750229103743126563048090433152311288037213961378644179762926126203609153338966866658145945339940817895946118278613433237973091687606986816565351227834324254622290015396967220326238669267011277851395188559506515484063914783457311398620369416219017469021280457538387926200609050552683449954928850293329590941716906426620560485217858569694516170998345863393347385031070544025031935581144344920175902508127591041033853633285566485402610958290865728832155700756566608008450452041227272581944872395226764481515382361258934459113028723183892951327720172234346327628885139788898318014120476510827394835041398798788290506642890533449419074255951770414257599620713550356087398445074055947668189947253337591361481544699799133503983360093229250568263762133826031383876619126641547930749592292682448266394030778664367765385298399724713508618619666794568852568692148442038606373253300076840193630637773412694190567861066351921637654705284846942194886043979841727366620079831885460437071147256406129115009778822930331591629377011418216924488330553828042569569711030731668365432534724980920070078919928064895132178275891579642445699529846537933908803427617958608410361384477257204058099812427025763455568778332114428161539427588195801498677923199114925397425478892011351203409576315369427329546265860310764967432615287916378564749026853247457691462616966908781064896188309177458524839323596622993330303088403066070728755310436975039364924493778967474024290067926963014939617743220863004198076754137868760354269091222104022732168548026426322302403056906757123712336141616203637741373891695145357657583562998403687501155557017585686107415147731204996900639058283745583215478812107963277521221132766550200116689378640347243687428969059824495899147925252994796762094988879924969483799150875440010247142205204214916045846559645867391546303053636541358674795664573115027238006958459845912183447012537041285497688635643064825256475061702636162043489959111663385855725038088745087316123143434788891914739910918053597704097357721285676225803419792080810136470326518480484992795336442449787458001950874441160167402338099346864308459766006224445335295309171979604933852723232537264957562686226575633097967237523531521131503543969290020194409885207265877090915225360266713461257088599893781355222997898015666990601417614058822143165833787159501702414917288094142306078139930485826735615591684868907015955092741729526479087608285502578664804963440545639869928014857966957303329065053911779278952177362420594378915138579489765441911459789113348923527360955151265146954894435467657601752752407030244884692066063583724570654448684456094094097800153138557816054760438671986128096461114802901940850655818881656282001000394599022177659574043649069339380928894168422100820420530805771729436017609728432021682133917682985742545961857725752765907090258864177942307997465763109379788370627559956122317363878390852666725928556903316530362713789641397263257129011988635777018528711502619586379979172273102521908084334702636373613434002191797837367600683627686057787049678326207752769304423846144807853401205605997027807931297733093116740315276012362355041725058413436230758146380111751101820577483988563911909906651856276031366246609917165897011723705193437336973544254059415380768334068086003455528268744203672806296423538232886636534056549503587604288713138134925795873131758002490184737686127873567935807352105491836862321496022974993015538504042385825392710438530853290770368319181428829816402775063751469258827314911933764262198837770592514018320760044264692650685214151180146289383601578776833774122204044942633987053143117151510413711276407036837601888033573466560897001353583044035167059413741917338204367655042915938486859897451406794304841591523317222137258765531601477253269677532359934982237969153463809609351300972112011257379231321319085360124941524264967301713970917361597639298365180669545941966534759700632548616554198248900988909204174760239210830585560109809466441850609982279210528085048827831699317469392409898737050809036043344411759953863506945416504705365084547169285528351970722931942654023820048009312694802332656475207975951928192589566133892589809768688525089270197807181819170634691230375357925638233253558046673030416761808032138663272229669859656431125992239759689557781009642478037855706545571980764208665765228156908457558404299296485251448701936042608579581626614776152749058667957025346666111952852927189971119440706573746810539102176383744751986216874661058626263235233746315179365198440049572130980029553915615588062734338596100860600505778447441164721885804396744874037051932462327895350719656335558257313426168837605045625717229083758082737780194965787868525609040270746163030355369270439100538330908185012462200344781729420478771833346043969974560915062479139380635786338991480864561435381587755425755996783247286716167979155528623758409216928263297678466048888808302846558159302669749710184637087469522740622573233864142430202079552474373758102359645264640723108089520764924427295545960786817741941784078398284789412672784590234096743842039674078329727418197473949834056066317540167067931253206684659954539964210515543370050247260857276003096429489458379360169969449167473106942594681095546372397439316683511254793349144493308331127391964817557866420271309575599321496428455464317422298732264187119779188054983959035222746080016666704708341835933782433153904024135867803823631066524693870722193013149275758104578135935705548611594441914376643070410298240351906040489342528593040707318512769704045282053711301594007358528542099486077438697214531097974574349250392738248365112594132719166794113178465322609043619079617073594126016652045075375871138398457185590312211057278783001699902979977958470124566141786915890928491570441643983067355444952026671899709118521228101054300858751053506274929372602621091843118054147920122607616545249486072516649709764562610482715558897263095588144321154920562963390198719058560523082501546901425146198865361998172931580260266568919863294947882624041715782432661838728342752038991003623704334372340119223991834686930273350371083877086256511463217034789038702294278249439788374200110941443883506343906052760150471796380917716505099593274665466692323204436847970802016692760821099044768043510911368522795751832106339741754509408780204576637584385520082557004533605941494359782243219844519602354443329297332828862314649392180993932907775931168729936853037819861281810630691496675357683698104821245627899642039006572274115052520747739987706116376261389173459272402252067698592581830682024965301884266028619607500199280298361399990835760318706204174468647997243229450387610189623493827629284267345846209285780369295190421649505487759249414917538747223195373670786709724537136056117224167516016373258772749220166265799534782355614138470891991607079353865668873966675194355455166249258975799693880208742966538082263696295184994831334110322624201930263147302053901687591934139181332190218355634917760255328430057293088609120528965418893847321587757509097098949951973274746134930041179611494968066445834998696122767410856865549431811180497963037832378693092448599740085198210678771858549023514142015898077528220848997457719776406477950474165023725630251582341342399824075768531896352559212944866700122775500589827036440697434938441019324752965441017077461742413713696273288293600965511090855204122063137779098167443458344896625958493668153620058176037000568171052446135851375242267444380749482564056770254929925676623823831002323455980873431720463650343890032271659149967201083370140463003069283650529387654329351635550368145820762635848080729387489654063092212866607202523869833106864312863119926411939703885168650099297169788873884961507004145150532202043678415622981386776554475925976822230871178888907059196782631992481393572812905614463363093619130777024397758718144056210270587098855411445253720769241224164175289195242270594093260055359982351579765247586563091401024809003228051941247951784508142231942927186779071542388795304284876837820755887924386849483447471741431746404981075553540194243857285350201576799323278206266600502088260456682032330270166420532521973115600667865849926429858861486448192357417250518169536919521655310423857492761460639610350669826212627251984556803416296246438279892000514367539294220882542783331265241917319968592705546397665370952844784159902933703547838585209395754980246080662283341647678129509075995868583156308919988166358419495615470635975788797405398826620774687630908273784500709767772471432759268061455019031754693928671590791478286851526095508013844565997520350860092003734135897974199090697300679499356461066367697661338480800584993216322758018915547122467645544914721443407891603007159907828257500036839055879694174628757877899903563136663307215831628916556865113942345800399912768119928436729442753780751612651660755819048173149903890175454441238643193471629650403236627843598076040529385350914834884418146413476863360301892642412426392071043031415739035402662231332546917075854250800494528971091804770790673070380087531640521284472807151790713159087621466747272935276939341034222186464933118064337812422347449271183491262480488446089520748464596677255361122473025548271212725307246596087968701782880821750469709873196362994223050031667410130220110378523057205858274001473574938894423719885189792662397278822124961080539472299980161792376250450422819657747073135154144708463820161291435367818094421761000787068410566444156452141838120526143842964195377333713583459474631374525628696884122447440900037182159141879213335847976490647372442383635781445618873543029492391674197645410748135167599105119049233675786226079331536937211671675598714937540799408696007114310233330188175254147228690905681775747447810588691327618323911430058918177016471200633754922152343202535918510549293906769261766608595383024873941436052274283858623444360227572584236122304175899514705650271036202758161720784409490028577813131701964119742997488149341821150608589066193540560072209468231001272950940762392526033294530625410681782803613651618043630266313745691392965452883980024818701012755799104601702287175172981171235877221868624661441679860384249868767465624431280666272296574691560283954368384228267150102291828830749639591880370119694660043503997752965880960149112560349054826433880711369630040750521866225860226907905214359955265799884695404892351392147659760853623998689037945186966373703952020221174728530903633412180649161561888827844679738726365568443720160462706869829631230668494882323959006836443817533630374417234179630765305527022590770897190128862292443231452609040970477850128787887639279890988259256304450913936834162256267461225056669003175680912354693300532558773027366382684301359864151258417563677857531739090837513602442446301111532878790091039026939772773379064481341339028071302729825129944501362424878266562569211432054218636743122907178566732815982709074255295298884030470026390872455829811554027678969229849282473442661064965428956989882719300710656429170018556048153934946043880247145811774698395710492359898647188542212726771992004827871290204983363206975819523195283468042117947507013407204120031816918026401509715031649353313244585531054370420148596402634461056363055992270033493831546731481805339110787242457643528768789157964080679798150200081149617037823870105299878524334413639472063706827621333049082091821807385353794649016742114929137213764536779331886821698480067017708990208781251295711894528999153423821895295124098946393506714583104445418773259734340037629850815480039134362105781667682464491272221780521370748919015327174466939501545977504519924290027766300365836177904327988531651946375215111717776462614138447612097698722664308503944586000971471499761486767042951337695728069513446572936047811476697604909132527122894654899342161158178345975031333668260128958909634706497445199864380561024982149618911135031735175279342145134312152450705795993838124165984043491828706983927775905374137005534514958601960400524791595466552399908395643913052671725884029676132900897192662213123030361943691501290111690549855039324077916881948803428220543697713933704440468507469857192199852444925121121606748083999584823226600029186572446598712758419839869627899259383278339897323217814728164816441990569731702343160987121843935055861944784926119635170129814318618098613643362278128955663691930671770194729145504930290862849402715997982917038490448538068933029745287944474737894040064061819035334459285624425187412790359904205226910469652986674399523015686137771022919425866625268397956181746193254493039122420469923890535192568390889846446681667651956739971953728751053785010255697008339588661947257771304136674325354561258071953332279960303647307886437803736209838345561034101141636049184148622284252265371458753706827585198345921963957884576626560562877622733465648619607180356033955631666167635080127478803860721543180583485653219961844118111955895817762720483951892856605201753026036475427157852607474096474593482697722057925405278127145888838039627268587736102965159051817471219410766332609401117594933863812847538672848654444596063385578290415943041823913838170279330056452984345629204280840198495827603440246760118579477744920607422645283925292204995239615341388089279405801843068570359729227554520906556961249955770353587141031717468679034471836144459260392883207927702421926001207267039966092319944420821564344823276404160082941409483635588408003680139109646065659233887242333325028348523912290313292651552898517541906785042572229931775706498865074659336982886184832125928285004103430262046133924167461374358743753126618752066914169791775976975235696561954818571349163880821537824151342773047538838929428533185980077864143473865391496083956535382473566739110347833584593944226060474165733535591373864938738201381220265935785806168784568877258915059247206369700090697077930920782057007049993475219502543823289448573492141445790504775147800508737611267696416666468928105576000545930373227924763223432432063567879767955343534432517664870423564912087127222164747887832252774262790820753436503361993924516519255561608185840323125781972055943739660389786400664322118944180538549603217646094849649269680183503404048102510268952840238736882934424421901545461392227585166840920519175376263574805345352282265875624883315383892429695666544258091115306027359212227984231345983973282979411818473329282242776658873314913425875814848885096169046241892449683706607081613648323494561630347474344020135232095255067324277115937592489497263054493622091077466329324463381531453620721202770027379059374134036704899562048559332203251317942463688264537702534660141775022260329607035882993384874037908649092506041833369723325699666614814569702240336128953851791535183277248564523246313577533860426523996319558426901741262826254034339150466327185735364204788949123203013650686093240630562164312104306038894237300415640470294184163464071310859895433259730146655815184378741578185154108449188170238143952525033947983847956921913811679715082288090554243856135321969160288131104751784900159975272429193744921895916813878500833338509342216508397507453021946546321797466550803890387109894142804563766203978741817324624936262135346092674955971524517676294948603509047812694050760890577429232169135917249804112239746303318487096184792661568916227122914494529297473556675485829618308208308485469974986421209010284075527190742712508833445491534312459203649452220562054194925755200907088599794731957781627794894280894611719822940261419278442129201845214927298620356665685397785585413936893503520290601829687058323374612395891420961178337750859756996649995968156295199861867909599597549597364462152011955284184098157814657854423053348139288068257246443890339817828609489126769535585160343980143998532778534228341314387161886106354669310257609042595493625259744117199007905524142592562476973428578894471482035177646351520255272183540380685368064594452476036797641875432844882375578109359139736523597127676072165009805992785169785036958189936995393499990714030592813965397798382356211123807658953088043157866438698428925147921081244139291759177386686334792277198402026782026732504310281159499667045163265653658974718115732631127724299381108486427817145895459664556934162519457646386788762623348296285948279609554706222215805959162576855609341114966772064529602183003499487240002583969254335853817525667203302470524232867396970156651885168128875514865568292056830408478394015697101836048627010370075019371998037077644587974195437949620394641624158864532414548964017549942603176901694652339772513784193597226578908985993743339878758077179046031458256243011192206935723407459568503896863343246247780041744582451536753620508789912648928041398389428513055973562652060329359721155987322437271572079073136527364727384853919285362898293390190261200209073456996091939152260191185249729611061693840773504080368196852806491722109289174575404817810219910656718785329682638092053813530195581192016288412988647091199265014712011018768362168102577706363602308392832962291235283125968362523664101793694585542940342821856963722354450593638941825773111110697819839619903265861358524518384812777409203219341252240699489128416408987789437460935995377427046643489066600173864153092280449053060260763387750299725572353838363864510481513827205625868216776369366317466405380373198525440226509971894839427012792835308385629165054641150152320515334670250295622728141723097249752703002247732708068058230336657021836134145801097499948679480775366846424767858872132143087431541562088434132311753186186630022783862200263468556544953236541292530981288663173288840883783708922104871844698110620668523505555995276387598778171868954810393766098176595428478479952955502661356083764757955314230693996148910707398873623114359640498560546880864188956769891316786625754028682456920351209854510206509922396494389061116547375809519938780983015250304093502924157037693229897630414216027066275678612369198384167371380311649603785642334823945807996432662105178766965889156174254510050348793182595942821318734207573350955631083045694995275407048393764519223488228038351682159682368197903736917160794449781273307654819942225818058078256969419301987030862616775332939159657310590193244761660387023854515058982129899811683946875080246050060410956209574182837502381295309517582070848916547268310966460929785876356367099693274018458503164123437992816403465071762417317243126460240734278868766547494654203210924646647585178536799529495062677407996998890064138079330235105019995779983446192639969872824373805184696981580221949644276562291126979304254684905115673015442163393455616562886852123551904720301833534143874877395527257617833086525044122013975028592486948561087130685129008040328431296154947617638188121993843073906667473702495013943984100532591799930506821876307636963938553940168443751715465976722512474365070015073474617956606200946520767418983644574810632343514438598666343418796344417288909243505198425974138823032899768733490906156830049291214393507229935943286406491223392824164632308484758258920336941890858345867599200470416789207835224408279180064418181723373435786209704772383150712975371284772911519982137985380809594617920404033180423748881242493887325147119407103142314506596152237819243084150719151744972664327601855460670288974935248643561689530853671120269560630793514467194206523385244512717808848328527934127278936507373182181494446274429530898286569081034708167610701357417100069126699360112219759654992363880141884282051254289370047593852211217415382155460812985229287193485577659825088454632620072124975799269379818713647050561712447184157943252426772474404138134765223424905818775329223589319806587264351219580930671115218337427316916375653644208341772397144870676670629875157780620339396264467293159703509981671907972925919743026794711915109890009477347446375569741581482341765391003889446043131590568927570941841849022785409027171211791568994607158134051521548970333407851112374166006538517749850910227742150186595449456402112899456865604079567589577853786773392494561844982076194349962424600118711608243594648525278923291290647500850609240537090126124974868392430934681291636449986631181480257038588473306380313795548520701125054814822099913484948935810764975946477500170391925351769331118756028381163874792317004567295275155549588729756144713082305846395943215035106695008951347839831145221032839980263084699267786917370847454033295956588794250627082234842261914537583373490410010148966359319035335886804119186628319975973382981533193929763042696406183044787149478793297572826617090397215677352450442643500157473004331644990303946329719640885320903304532380584028679718417592152092859420441590435620006938301823202447788616736085268184547314418662155543149892107224126243216873586678699423476639340155296432239046142290886386360126754166300557524082987927698185428024676039062725212693195854001170352901625547027491467884417168393432691260408584229035030271126830957975740661501870374972348886365636607457489700919531664049546935877902564258064485929727627951927628268680100600849679025305513740579352041237995452748573090453914028874721219417778250973922472547278547809510000560764647520792299685880768292921733698658338318403547517555277340126930540150001306262679266345771854229919745003619709659568789880793102925769636621016042322684055124883442759872758544585343525506586899687231244194736834448429659797943522624666784397288257767135127986659854651543577403745802882325778535733252542201014758302692674643894491788182436444820455760869369303389900528834414642830575679369635676241069776779675837125627534153284837709849905798910413832006218307172672503693254281877042453319637163540653063418355307510210743202306262603113587693626483023274045686073307239950597228369082007607349997002807312436715709214802312854211567041051961555306198016814879631814741588883011328559845910485664160966776132531311461990218981514875491364413513022155767949747601013348196229330459417185826161435756523406089004320189942777819256713175964171703427015029907848137327304071218129574568247250761947931457277095367322922528941157718935128484844600701818895071238613601765376788191304357109355670492765990570917062536628055266156985550137893052466810207703723862326697154156056786938958515566015125585719088645215110312604062436737956653108478143056216428723548108217321965230433734038279149727705928403395409039384417391256515349659268430554663372841085269134627473805914080339543073574573076568444526676679481208696211242850029942965865274620195620024838412451048017004638139261859343757218393230632292512741935810541956229488846277535233925173589735266769734908355510240016987191152587449018429341142534630126832638433434660632965123790556245026574482682637889514547078060582217345290454199505617531311848186216911467041577314040364351735098221757463658515739984792130948143072662050375234171181361799193121880742217010092295557281695593231345365900494469617481066226872948618786797283553088701548035392727953105383907731333656561369255565496369911493645726958875419237985783943262663146378021925492971731035564922390445134042615960673210708915960902688794821117775709275371630111211286784495471344205488082197606874076621310827769441572835125716530354217063971291299757510590558366980146571790831985438599603433779102308374550645006634866213903628830088141142342898346926301834830375824312174605701107390183881351082255054883502087582437884722703883055077492539399732903935761271569484390210930929517346844571309921265361324845734153478547456745231923259108629653934797739502291945652608552712770506592910901689161992406505895256658068438976123764490715051685251723622127781538447242837433063232562951220230669740795854521847233834092100805528882153748783744800023520547021621674297981532188586916813949058196180070739513944220690729910987417717006046912615588012691000691073186686132329384618860664460263302646923833155956708252349076391594427173195862899889220722644553151879200650695479891883425808275501009662734363313166650035223341803394887201803699607151300467916797452689103822059468167685002184550377885742274135233036528421181600659057363438417228743097492569330474228002689391911040168702394371254901133699347864908512343688838664848213472489654306123365277531160769829517180106523305890550455251435124123116727699866383032285865132270053790876277829395065701728710827945371335456642468370954958982359891543326918589161265200682743967651973957507245014981664170774077212037807030872703940255034895338124526757832017092487863859229662248129688822751399089992799125003104092550815165661957219480979701036545817933688047539005294932952471921737829526548477968205880871077989926631622304935736955113492868487151701894099308191539648053865117058114836049974936125274682234008968951288357441499487818181863447757453064540434467681671428241848827776548882752690516794470000667623432097135903033241305855527830765696402117180922111820147667521413937342302339537598824711052640715731892650039006866520611689850815475702740922745994295247361312765135821986300854739107682712836718145037582713356190443158395387686160058810220960093022735254480348397788362036397235831795169635716323516277589836688895461217727621365367331805233840010437555964495932216727724121546017100347690982919452850159853077685071329994440786903638608292201505975356993366273001487029720572678816660731524642124977447060012026978613097848695140816259100449815611358070875731153476336359572424750569990300565651607822007461122839080840865451181093905728918582669602084442026449359612158758037232554768403005178028803574285934014870371981361770172625535944825457714419457936899870635822730371980977514880839012699207441862765899554802915582687592485947593319978692057892109038352881976896317900843369798385067561286695699160201509611091541220157976935890576659574751170649293333036763146492924015116937731869329917073022148332960353006984870924627433099620817950305866516322427197816309016909958012830281599677817594528315594432166409806287002302292260979950472233982011278063186472315135726097405587197864006531817918822355130149588382188917979721788748413989145124606963249406421327244468931724883742206014915459154806598431492819085255392051828699241623139389103848363599071411795303658961961488995501959459844161507710582524277871669952015944991296719801240918738705367330063590150823924508466555493936858726848353542035150504647138064852195169754792542308923558930921573722759534293756435374481549914114796903119692328190534938269760803094435780393831318372756181706316847839836474754299782067985666004359842297340197295110790920025916077264340828031205014996570320015180271920107558700400556344541916408848760432839141504312038212348420032552436690561376528524815732945221366332976828922577031108039459622171895254523990079368627258516506260790677699091754621940475774444714117877664133267644191683348115494589385240984637060116751401321234308534597853463720218042035811068109619133060928879208460849189705969490918192749668634035267042161767493841935231001650043908856803701529759330971462686466660819175740978116484037635583800055065486697812546564542824407223500550296918549027796462288607618436886560282502344098778871181582262657218977838321386885573068934335172811216504389896224807796574468264128578414422694127256556616257944320968861768864512110662156356941748363275310636394190513871977675694660354221140345299069597085542930865911820125528724403974546637298989198144403135605566429001818431935921768443556657614983089434456009837018699967453347414364703773137778953937148866544233331093473228789564470762933150954805845684424076265785274951233180559256986550546317628496276691754108164165148501109261222419358856115794303389788317610814837581107499587639705895672681904256047441940555446968103162685296208531098924855038037869704738332613918108775470348410090928929953775117391253263271297938026465872287269932174268475093425500268589016322219663459606330705719590403568963100523088031336430124678829003193873619619641208770156986892311826564047706577902802256823778254241907245047631927425771373759563558675017158077295864657959779566427432499784687480840231308240565883283201143988185252460583680566516191758564595573620881027123182589561261280676304878143733973682787909023022664712060321689025596865612577887793042200145843674265678376363047084095332730664068820464722203129849110639176205989738023315693287234511729605365133568610138616978416516079985015886756844446990365725108947898513925543792651125628779376097730936790252437479087562941016720627414806190523686384367492544110258127054131023456614394563452174604483007337465159390868459185141552170883462913143681913044563320911267055223440207584925872084111271778268142780608779105039123104109382413966738218567090925298071696447776168090372617000414575120174253987085521803106196530809762163287585404703474148423197060666869007907974755699968774944080078543475422210634929034045693342471297906010662137932665173933317080173827275734022904614144398277404396811578110779109950998516024779201441994620919991024864997840271198856038283579514431665903258041540781110372208849362230236735440472310007783414626442629150266706997970620850327152158666068325209543864834113930804259131757369859055783825464733441320707630232305481230597251658337180899526399282910104028842580282630850958509641432436831451459019627750682224675035174804568852417328811614818663706703946154749396715166624496249718028249997820124893089587014302898039561945129920221838509802518437543492171708431826578045891805375000998316296858851288298385122641393168066138886180331998780126176963089946387432475391236200397120130636830890434847634343683493718390015861030839907645094257230734199241986737725041039632161593994668583173968873421240779269574426945205509892124514062186293979295721801813740695855616700557558482882216939924797222980752212376694878563630212281005733932420710522871080039170928314847245608147489798835460775077791793317202664142124193265656309016814506588109832728093222355368253948605626468569060642947678216894385942548930344208192429008395071498929170852264434604329367959951962467932741976831977858170897052196304911027728282031066141375294116260775529856743671044764305526048961014708444645034472109395309463192225797658835735750681758024404793723273470104010997669033267405143134736624465296259840987202427108571323163730261758519695706952512269513259422098712412793235469342376485462489547011573263058903507529803062003872798976579375070455591513053739334004320855128731212786267745860265659244017087246611053315847376300321130528349945644799295175386402010789451390877200538539707409284869406830108072676439082093797913430001920711869042124592985379338904228513132525148953889582757529496871839098968227204832183547209846716273689025269077918351864615031115428165764711918665918288523876555068183619120203740983624798874975939875341622078415469596877959470977028798679288676109635339385210203832808334258087256841138796336805419443797384905513767771964985058348981022518983401693301577875286170763786949614914851825417952370676898896149734783012047731018840679402211172849867733267457039864949379030497581323608411586721311449779424852427527735031991413401632871988235226211109929385235265701527311928980264267816403061943120854358057433737317648901042863987659930357885055637000639469647841032388453991772879905521771937016619114390195090850533751744814738054020988361889118021111725897772301566797130844847568372390423715970091199835763790145903224000612841140267233275808112343092590284928979120013666043498242825834721586644829189074852569120448526359379943541155881357013475143940892434207917027154795825986083545239861320924949276425805184321453548749787985586651649876230194427678962540696405535290003631938828437256945946068347060013009692680940873960058695176058142697268368831664172835956796535953048349172227453497278321791102554094800562086536373876899153369782308136374394859363800170225495133248433894617092868588658291030801114959339937936257147931957790157186968403854985354384540393481103363959007471627599836218679190205918551380663689165109433196836645148145629294993823650968428642677077622004307961506310261388993493644340929087148066786874570067499580485841698161721553845801053738674174184239802761434469933838273130193123740260097524228804435447898207091930721871062590270187518760580412755109688882566409901819129929267459418796406549901854088131853697740140973479597216381814722057746677070143480700744287274341441528673038809973556406564366702031309714556754800413225229114052126691901779499798599397904250491021801472802459529252093418435786647155524525423948007557555505099464346742409062074388104215282092601495690378245235342251361840306618859767284774232827261124932269195111287409985356086102409597676205535291874216566053241627710249668836705418688007599470437167474995879266434204669251654214388213007560572129433252888428549665594082600574440473205542132350253046196101339164306965527132302551969428836943155980563466896447954627463055996043836978013668590796504761572524476880492091608357320191240525639623586122020952360315593625123127075568872980788255661486894711872683943524702808595171946930996590915733145969847874387688329016937237513142977399928600576962092369345334609016349530981120684187985313285704768231310229525117238228687889226478537224477438935296699991863714074737043797100650168836116480457797752829085491538510270477399380533034075975769889428615679919709330624836637647905525609373128577815548461797219580779560359660572869700747633288437706242535640498719808029293524291745755785150167272621024379922238604689361284777224877719271827238463710892180907234545818615197604340932296431432922976238057482525084582478676105269076354054896110039027503318882003185185893168417414685862791259939470189645712438003189973258693729857025247400419860761878474586168959027386640924221870528149863247315002937115847609854303252702339862915725318474376363589592161473818287515022025164252172377994486650608946059606045274526310581789423608851320184262371877847253264331247143382687561759671519788066166999683768371468875245030838820718975368224064675924929088724578582976932710517363776983792461157450939239058201700673085953828555156135318220985241112650698383723979464926444502631141052430050882482596263250916240484391590789719479633611929857623860253732988986545234035217926654808316030757847759686935605163734937143409103613997619836361613495213451620174315014261425000572927953447035760749637070614087710067469368347382808269754868432546555651335443055115566555289092155168354372371778671365537283286807944639294067756476234351436613272610396079869164329344114238118937046153934317596397411277360352906414165523065524155966758930626473366132360353261133034364682020270523208990728007561275716005375632668078244680296837753897279871910434458361753932271534660036674020364831515980238808948193589096249533122569190910851329904900106705119465807156407907876899703783826239846956653493259567016740111498820254642861862330355104893325948377184854942095742368010121727389365969046098724116878037337174537541944740098317511339390980749166027480877245718114410816375106838932568297098556920833144247126487690887914306048962467425506583770463601354505231370449695613398340781769790810966207877052929596270453734450636534741541291271114658772654004460511167205891258306257062410263239286800032148892853257913547345405928361076366723226062535439426931257640580623058841497491030748241405509288615606421114842824929670674187429543970981675795660432837095162688845234675361197324578044060679406259756744131120491051856893839100650109537192734089023004886324926255881569182183520454313256990899655281402161434351979349434048799985313967936412483663428342795339443969767243619440471696652471749471883247679956795891613950012070310136326456816145301027107978573218678357097767639943331486352953182966131825503029211873511742355622438747308104669004077955498302602816355168454047475600890646425576607278860898592763218814783608485811774040224669857629771953458978563870932587765300854745708665436130541672156173905181547863706362369166885109165687431242832768219968657129479012840141900919013307949730179865246465229102104057453380083323763637553333660935555642715127571046357315245525842863774358772983656806756955695961259182769083998012489434483792563894049071368691431775444963988942016781018019934448620741006614141409672659241563256184480570144791856254039746117725201618136496773296151388122999727976629749585999802738774859310444264732327662810066779846247176633464767189979227389115067644598374815787993929535738841091651493675844798767518992526665186940528536545882081671213557957067369560071427618626483197214797153004126074833329614291865219360559385883071776451315735321825042408311001764741950794733353400034039160883237096112061018095540092266699993300597845946906403045792084525658244047749232797471688330721399138420381935981994464747682019204642206121544160633807489868756990928343061929421671010359229013243611320653997499230639526531161676536204949758803438191214632718406687320189477996819834551032753880438723741353618008193842056870612055478631278634134391693847435626083935055578336810178192347187489370808965202542649792052388776488608931285941355824221702266873646765938299809190303778038858382542152218776687481074801755957261054257831477336306328425383906217520774419878670908666421055415000111639504537003385558519485775806393137077550628086134817357989816651605425523121935490670693935692126213347743245888201856081940522376640422170182422950932238461695014557855846791518004854630154733571630529448799610901232008155763319259319877735992445621572052837273452446374648786414207555442728760695412762764411558633556958491538239028523485715642536617585863364416698545723507864829174796823045814573128398665716344617689204338786746094589573883272385851466091999518483693622329404837970636817812009921401553787495539843850269333591309367284468119109209683507132631077200362749814804256422503614183264464303568108233674023084223014518533207587681625610028213562480554459528678353827773002699915084095166699966836679151280910525802400628888056665594488641278638838842006111044341013860151325189924264131804297240531643432816728126306331176288064217898798409660277086396229937284946803692513351311391211104829316926698368595270202035879603453748936001145270017434276262020800705964593012429105651346208809215952637728865403410204120814642230348241716177995255990173265353923048190270176359350665100609199602843876939289395568046662175900971650457511026574954802234319758669051459471561505335268692424292581536176288290158423724049297114811584993910861297143702311069383869833701007816960680093664318092288578942990171007119495948281676368905477474827705256287609036159200148953976485003018404642735388155651142375623373318016668696560458746008185373573500931663339039530268939733433138601776319656341611530557450182618438534209167413923833659330239546184743458638937220466088372246259896844436419498293365753761457111856186212020564367305946146224905407862570045688753484709782590830439761994502192813143093471308518830183656739937984240697786016512973644992937372107465229276669726876023058889905721098898618986462999052245746744476043437323828827352945754023404040057348518020881012868249332158474764054872789412249273929551982141294006171520665642775322915714917856023876573213039718404631813617410807058327495536780064521757569411014710168145540472605582762428431336867704010859767884188163698100631348535124220977269882231036015130986029834926048520246476682730589326188028448088423316217505298692914474481240392833479217934873647122715403358027731917287046333970626327829813657358846742573515518183934194604104262255473261471982827645085171924923281468237744981151546685947868716374422089003143241733271904880872721597009826849104265758440075942117363563070609433414726226515708966963932945823233854839088943913490243531678174143543554701316852393125814602004472819089417253218360459933920062712786995984779546333924754415641230096801921752825333443469554288359921745409177609662126935574875824204735480363857522676088157414273763291036163761873428498571482201833501398576489393519211636061003746065104962862585861903108609561431250960718137256400268627864980404592708413871528766049752451887129560913361038018400432257520379976892059463362208539108578071347985846474667532815395609807849569772550991413739305044620007577355026097089860133740942751641665726202937416303435980576454485348133817763457530240229025117468729257784662926354003735424621443153361119931989925053747814619383876093023838328580824544143979785202115785151354445313961261516915181992278766411277440771363362111450610493607009864940711926881826883866079538663184224740326053342177426612606384149680540105618566870061072528273987721649111789761317578516345430312213466456376381060154422930926852329067759144188563492817140611494435397993122523939710100781208964269374664328174357182436568106570935814132101186909800088764562183915842285642456693069828674128145162448761524243451760369618102573849471764223407833523034549945694746918971547190000075748368715791946602560692769506159119433011921565702799906751744944250071190837578112696438516765242792033599795270671135360719136974761602110387344501142055845289691367424953724920232067744663549994194488688275323134310497412868553516116569556548879963207487317118708528684292194707340673302780495861855457389309090745042286602633890246843369489891199370999166787394934154420843206251164237563262637537217448466489518672693096130349722467304901675111210142846748997153023976207510220837046359317046731273248405430996914981739461094595859638096026618360108392095362198597487551416955718849512675934970742896617594905860005304001508307728455730246426415054295329384190071750275373391207191169046505513342002383689982461746034817763316604073853309515969087763817567024091322707638498687331683729664554563110381189725614795661549790374406894699693227442063461892842178927338072932566961543153551706788434255688041641196173991130673938372573973467745107449653346611723584486309689066454607540937296694367725160271841054727311795249392303715650692285985456740246936577460798876526828811435003574566927537507186105424993986769312023422552456841226649625074103338821816388097029930102677152442048115390456384415475202992663209547072165974295715470387039849772784113464061664704714475965090876981572213092677909358125779039063717354314439630090003442049593831714355942959167347744419118363997734706352580098287975966351534847841059096546350060561014698656196240380774938109101746274362310358260439786228102155950277593968043914463109765721434486698862896692220750554298321230425937399004455469702191500087261401363832267748818475617220940168109887392771804802645095655585623557269062279164594835994361972197452318882718793261860425281933420740493101242557981801745862317939496585516225571636554593471469810862113835467703675483689411309921085379612419409032672866325428699898940511409030036695510204459170145339806787992333579030245936435721745871698272866805807859495755687911677152760401470861758554601100977603598469163524510309689252978623135455206032173057335794459327997097741859890182741003457587058900192444994753091734023634989173101068565669836030398856762048775503872368319703763058082196204458926971672134198814204787544741752214507191815169430514052004464099138927024114485812279250571005138219879535539010762723860637511313120061941913827201245730904133216807539109898508815307965979672891030771978600822776451158292346646564327893294745330636779663538807553144128209755620669074348007560858918992331556230146673155719846978680824134227372285845612394866042432711647116369080871576103360220369606406217356378927155519865955745922323669232444256567988071446708381302972592625319080263748826236941406545502795676186804749943805102680044943426432263488205322227576454805458032299423256696987984460503173138582938207921503269064376373524820057341748504070297200975369293890213727035648572267094412275511624844666332538021430756330092762799235595829614362810617407577258744481044585741822201048763767358599173790758670762684259964640529392268217688370199854424877472964743936151929028529412168044418659002272526311394238692481988261440191677000428335019841915590453512560094639601492231457313723524587475922197216335091806359198526803356516551661519664020218212570018223816525966585896257499125325305731356858631423728483172046563601824918808344449218350590342357946857539994687088751440083087517417402793986399583563871371167592416917576512177798092541679839578209878182072641999395497143803648111488502925410036280796441739701658827328280432755934522602635428560539079414463490313572091782757890481766200559255354104064116148054433404939678726550229530461426933459145416185908679871478567479911927034050815836429769806720235279803714750738342367622524328100192892054821319569548861358085660546380993422734723585298261860297867381676747644406380721944495398053728126022698625735612851798894285508499896496403473173475213220134502624364023828673080822909544881393093372741179971179548690151049762144951448809598022440699937498362951812823709725320137289203533459971713825072374134600529428172481015837246315223489095701353006538234182908442359438924219743634570002913484224501013192361072720577750008878687613741398579045998265987601069043978661207857379649863628304432162419948500912622328054760175324760971647227765612146661445810603153949839154959186149548181370224114804622824940731174391973511592869751170966603233059361925627350289098694390750641364101426737473190519775927892369728467179360374830696698287648242184093011802159332031711022476113292067758121678129928664320289141323604047185970959751517721700259707526734431473763413336759470294486720776225078262727671360707277562381855751102071049662335915857361894967520141854582751708518713888691756366352842294985235638445634853414637293387972908517211930924071848012538792765732326514602657479096977884537846398873921723474641952458517050181445281191278180201881127097828553234905953038934645062731472548634953458784615195399491429289094363902805954363823188497774572613937532692901110492361755677562454390721439127932777232525923503100332174436828914564019441149093226685262954685848906906263753567657587943402286299687800933005606489504883069180088487659477729211575504059382701868310202535558074421586493344418971681408903163664965173120056330412548371893243328497271145556367251822413366446759662384161329915947663985258962289398241287630102638732095121791159838544174540048419337158874936286600334068687716389105826477046260278122263709396242755631831953459630431027107459973394935592753912794565225694491581343544509744394189240148798213227706805632957744765099108379764764306204851183797228677516266125087233626275436477784509885599787460135637490485463101055669813158792223190166555527390704335211461961505774163810447199238778226554646292918780841494494625531318691709385922126363838383450645612725745335764260877675407488516799640917126490979528776969643019922012682731566650344007964997463186594665748031668603772886307143035548530809165761822670503288766651864830222011103364366002561662704607671621329992748686990784497165592534889002638715011601607668288149630656520282540290674286103155756113929467676215850274650278101766447013441409924869002765141266865179419957242599686322542044557940267147871074893783421354727223460314862453675776599522545882892278649641784654910224192051938068369210896473826605867379360871743495194584418585871981173612112923165653874752741432599160996665575718908103108360408507091243157157654069004210938431397579979612896900739594587421259690092170071957241977983089765743327294118971068956011089217506228874823307967141933775697877420921634359526587542625123158366143903855053827621936980777123120487928775727964111574306256860912403992564585677707377184320322133235763823742550342924924353224391653941405688669995178760624111635169321183439577247378374490759016451579282823686692576682044240077006981156568876729813198501095000970632417621812218452476181605563059733128382126065138755859190179290315761535943815241932521533184741109535378833626155425734613490472641258229698281603118431161756689783015076067782790595902408900026960564500188303451501606218191796536122877526872891708830708984287979356763207531178723234375876030221344025925662286144301054235996410068037881173232280181899856828289288831326363719104587883576923147496009518896181763390184199274878970470616704898335461284667655365073696627353771645498255260714078810038718721829201590725264035423672471931363844838014942078216760508297997944918257216007026240685411761998874239974536397602045832274365548147046968712594156205273763615723515685066425650946754663364015666207131760861332305417661135703649539285908173601877943156143102284192117217736474258585665697302675881895603877175842019606268838135629732396173283816011640978132585472871494220590844234082986108698453497276272195289609161049864673287867034120422447530864165851723794027610915602268263122804658725831321863262157393605052370251831144641926986040008606174110632798118691960198860506509260901339746402040398833820336977187113967781757301290352185927468245936768744429589168504340754876528860749212651605579980277944866753762186412499812085918711167336150085467368010072052507063150267167681402587934240424266391870288550831656713879004321282707913580855809072738736424646386433913372628032378002468175650071509615398954637003863990823755439586285733911890611318020259308451421801565890297437314688390273755918347046592542817484907936200792432929640040340428525990154582469677841330092857075840281299609478909865641170153205552333491803321276793239459033790243228175336843358075631104159845366223595635543553068211788527333460740539142836898045069254747549529992859870426115518383671884751186110033778786827960560918454859390787811717294803238397991230158513050718268985587573364438448120621817015988701608322271693693112300306999812480583645033867177767060787684447630221843395131140134344020194563479434905553760984115182261405252977796870951600737169935522116547927663816882986621874463553669336343601122197026140452554483059762952597025911996906099311316429167549841176483839891606922265930011769631688040909221867160259008099834104923715004221085007228338999370114032686016532927185692671952645791066116938510027933701520323166090088465513359762936703586938162705442387248246511610846301481645608380382982407229851312166853933719460581881292299533729262775513153768243359466099714749473817526675743655556846424676054940598797470072483252263429087647668957809598056071467308823045196817154623318731950347327684141908842975214045311910657749097022485794877471815796344692849096143252228336736462894403923069452655656251663605000877006839267401273679096220330084342884171215828661526633931437102081464687953194882237143258588426849105115555621146643392069452954789200898014966304594818178201016661929655092514472429326124871574647909534007950788276705227707193920264407621270850356629495410937441664015281422563138760015912234113455120291152358965214422857373476038912624144238220306253369290012072304999982898862389993394490756177473938873394025376274220480564971696349438780013789851903494131901689488934378008522563124801965058445010958353843289624323545007447609411304207750903646022728262559457661241638981755821264618630693311617569317671194815367533585122149121199111638796398866758217258671109595545637208895463116547626977884436551090055594933500759310853445543633054435374222923576614896454452161177950571264484271388955062704199204698545158112566279824541844401192760410745626261562679463080272578740724537099632163095591645949137039002157443514516998810516048075204733681307693433471511826018682951361411282672235864080345004095367818017927900527201254069655394078749563116957786426414533995172619885479090303820852569411964178754968867908431212552435597626145636867181108187068103446273759131864563823175300754001821903276524082714968110215103369469593780377232376982456183565750906842705346820372313417371820101636541128624701011346709991299980052350630861406851640366290326414165257269899491899918027266783641680040891212389721760823840986254448232596418983494956833732948135366693338933491964067363094092188080723338575876961424580976978772457337788223835579311243481469184229690495316920480115906479597262408117126590392090667327977176726917336148953607196717146849461304654693548528685931244640571919783368790361864693083064068676796236351516789648699762697164005092245301885563785870821720503061854394100474999939666717838232229903512166855787231886066139981969667655295926259571738113809738291571455094306904504584058452369753902761985880910960863628627722854041483926164720961984177249286149072350298392951881874817392844512153712744190084498401745359750154361497515671020834169759559854538458914599959952599836807654804935260580794784294150614154089536621211484895748434138572982239316848712728918594462012284401710846725401671232875398508016107038852734346196866917233381053732111505464037510315744214390477563670946271284363746627904708146252373442648904760317252095907158700521193261351486367590958961936165207068011003058628133736395251528650010955544595844351811530450545063293600346942377781643102273660133876839500368737855543773292663301342308403221873536039796349073872826369869683659042885288639260395398908461729284026136478486368872019924451085958992867374926613121881852124853180153964509466766575423815789849064088287828510693052884727770278667727763630275463276752769574458241221161950413533509008619028460177714369650723331608026328370878751154285652730870046393347276425798459615014263508620327837584494014521279422501438364191411402523763885622400230504117450130275983211003088277161447139742704649996654791164173602993296297391523801749986109697002386221523151896233681603584647119204890588974286441194789580519918352435847684808291140250547778962237845672707271128058572097817232490748653249906660523392951332564856884170595027494247031850843583719904845483936294166911259613849344383999508687704376970739103145788695142695983125354910948193909709378869054780955237028839333995151623508063315827055871644710010364939357733366515012925680576487396434993923872052301582254137200155395347754086273326184671007215198480147361631035847489705269992857708178891967997533970569501931985536218290043071023119246413565175455202111710507567737583591575524491730856914799270596225177477833984123904204208495334215758323215748129490919103806056296736166238160655037933242846722648326236877847463316880526415939710455205416064561740127593692188775217583759691454584591265290388882223594824642841571886532006893452131088748844523341328136394409993318956098249590631307930831896070106583053548687847894542264543633312250734029103860208078936011319525908526693241066678359082414240440487489249529461547582439504012364236122546686675134477219401574543805737318306812219175816247896309014793548996456388092462369898414202377810271804877423333125401372047880814301699430827488779058150829868844378466294294657886648462112656546859948307336913929265180665522387969814911745704000239462983414288214915113265869320633246263621546214849666240749878628443849998444244766780084260654876402903500777338230073098922105972328239341742338167278969184087047964178122484380433777389496071305149961565623897326230756880643431051424641439174019973849309877746152975432086158081252811963776005659716157876013296883121279906172943790274177130583214389633373130802382698773982376540789404884196929103625103976063022044701390496003215717153758971262271790400876927016886787524264251110091829857661778636090054857114591190463264938996305246715900295176499216854624382103124424054392350689786064461645620352943953963176400425463408218278267931740018714916854769706691190405589340515187163596952509547812102956585888324879771466339552349775863156537578959052720441718612446313531547194378291744703492595251693403824501222521138439525611051085545236536173268824279828375552200294724557935566106279390170156275103959092151979565197681742385744090846611989500901800348696023823206568209569656160268953588370171363132436890103337191882026492295094715160698018785934951944050862798306583951080769067545899784142470991062552186500853334494706249594499212451963275473173716566021844273559293227662326124179371563048056831794772808022353725955852133915402583754233116796783180687716521546877233181563509478901763539364549103230360348355273245353368658057282108215625527667835921953622629420435318329392208850186045518211991957255477138844294490848341069758021038337712816069625271375877319230822638156946689909401687482668866365976208040667319036226266933726852508248282424439656637071854913913113895172791520502260635194369094170071273089993552811207502288573786200063069928150480410458792627123700175556780245572181802036478703433684124191907565777443601677392702704704450015421795910306756912484470354002601227366024164415274069599108647127353482657422075510611907968068812154351080419003725151504899989983445177692562016708051648045085081201516833695243504809794108683497775402500519759500069836621943580046783316614838839234458177557173193084775412268955322495932134024997229514133509695734124831186658226308084938239079442066588366514682783721766969932706659415679126511404852279278289996675613649552536394301501766918412781314937425157842745720876659262429839362119050123293832285441518373394527757609638678880744624856335073672427674598791157352122812342288924767985772633736368738312540750779069163437032326166171978117644206851359950709067705642399218012744744373721942055113451752305297417897678993943014513270194904274754579586783110617243351444056079180858391013154310646539346001149763841727288057837016038715444746264967795134820525910968014924008132542449930282796392356688095042803078670340787369653431316725166725138357726008206479127579474359552408414480912579870009970140563010672599778116499762107971617206206932806293974103518793094955951943396394077555741368231280659996807971250464847308640163954632205944283629962320571467917099158510520070428088912609850053314820335583980609079875145507150197543083296511579600749949311561741468817395356937997111082955685932451155391390299013758528776013177065385682716914739918569698536652868880291778715748175799065141860497421100956061004146854745585160793391732031787145714023942687557367528651102874051987182843169672237858372481502129773830168681081694234139413830494777357832771882788329904860840551368270521102831209114698405837385456663019134649613018575989424696542720718411567715025297644754141339100979308648081305786007238630843315869003610210782753847244894947065880369076571730201103338481206994469092397123516849812437251649075486988706867992083471662357445786291066735033908006283019241221212329835506372409918847758104846983021165808737900847928626745779565220059766606814516874171673648393239826202619255645840104109707619539748694997620822640619925214164645637823294549401571505348458406908013929210244711429795178594050275907887099506781187957671502377751684593347867264335884421461528963975349824440784538444552306149611347768022348442667825940347501258413243417214034169570518096770995923980612535659181221548471299489705061818890988991683633681354270158160082805361276163765712440636215467895428511175023041973472551485972673582302393915455081289945535024772656002302135334985133783914150120209621772947413842859956706856520596021685673897406213189007224891869920040266724326581147229297034451013393912328108651669744680586130706110414754446577565344007678686115255197886640383784933899635446260478249725093695674387170387836017925424472236585577643091626973329509814232523525288323625213599073092025728711283535321082894589749853464017730113500070843300306909010196346846155068378482762745858202962082038072758034351004626700624986860749612893620751065811884994831943093776275860791682635221431889454482126629165000988109214266295502742125770094947526254303252192979173741315663531362017884252789781463455197720749926922286349294796801134029557973587551440664057144900925207498052811774333967434687349409063720520446700543283194165239605033871129060888211521060674169961550294166223464790784340497567046637909552711005756729788687207786595493290795248440976357878678762894431827096560443291687227116272942633770631394233421070193568670542645689292485817860504906736422942814906416355142894686522783329447149338417034317062532028247635315148021618754479172887385460156278615618575956467366414118799496286896521985506966050708931227754211576471280123681681914551338754223077187892315652640821517732367781401519031523390228049239174833528172575491480488047554008742421854256275783146191698207807841244539811955103469238527230582169339492660866988427325333330264646301844954093136655453753542301063236841159289895583858918537153953870484625596432573642559215168123658853901437288664852796715704984307608449184849132132079837351314044195229412952267187587707235298039094676621024476846191357784938311743219344565440953540012817229610369756237556565729314528959211120009431973124865738912643553650354171755665521755677276961374689896339158484577296111619093973331716425431139044702896131963261155960875849182218875062412703643398096586405172646982947673231141439391368991129172399984650730226307514168327972569869654526610909565572769799927689833123769718952471468059836476018601904199236218786839845103624914424670309211088435141095430265280068534387303706653090715868949979403616202286216980474165612559742563209175112147243461828176063293164875794528798446213035949749612789782862228897622084608119226328744135888522242476202527737771305846966665968398864614687668421692218161026703530025593184700592194676978159695229831609110363708575820123266602191695700361021326872795203257037131932757440249726692030105526636450358837863961390804044442702007454376672871071375869938001803352986304639343167498550530584115468159527335801732852310146113573946084441231650062909455432657307473958306442951632952844103346555226718959428230449124062529803788982944683705482586171569869015955144220456578546542183129479496312311353469263313600239121764633478658218564073353540471979440585057563552641246243913533011947897642559421487094480344030303536966670529559743287253469979234575385720203882512342648280538181189466152681874316565091600079951022195810483660134671637163574599482717104111452720096342783318214658848808289612298367926693745822375514712045024695221710857026404863685012194228730823055214956700882589837517554228889937442280134679420624280846327775567320749580147413180305396267741124639437800381850495436022440878143444621529695458722300179740721543649449261380015059064784896796454441804538463670596328566199934786838812102185059959393533471491977183807910382657664128676086890142167273989658871069194062541063281937855098416074781334884525442350465144366971718230493570021247688054217636013452739258340916544911686046381157954679950425615411379218627956085937461951569609681454147956347307103748939310111039792358350754789328291164369485048208625525750087917523542499403468611811532639487454499111637802033674258540453061744252069202911528746293317139334030912668022900911220491173523542275406259281245824353933697156882039567289484641500172975306990009310801976002586828965284618355989339132893280273077162425788505295203536437394950246618403631878517293648883945786344747826891855651977984164518040776787207412243675164463173010594359881840534604088051484170442937386570511071072012607868924069611120482937876169302386570804334172210526918829500640328212511714136621700421982676481112977655545215233794897442358880607927851885022801254160555051837041842899389886298235176267009197448411995415226607935097580993763890825993956310431276800803283230714228874937690769775171974137332634802924348137256965666642892951009311187358323991882892941393642124173490864668367425278136982909998771421908062306622252084893816350393984410059967907346119539797526148212684285362439192384314457911758818042443746964620372523989597080828830117958873281791912126620475747216918122229196840708161267020812923688238842988530559034403987816824420012476400530871916698461197177935389009117630340007500902342995613973059508652802887775059641896428052554012486431588133892484721602245985022941235127730693851130870457469505881489652807312842976691535241411334340019701920078553055685695211227698157117477526717127294717468151670040102967290768216740547367808413015176996627357877665854498244118294450561953514266126786061512790506358598979219393997605917986136452663220309080418795108819359428088263252821052982468477330270391542536495284343810422386441525339856506551413510414544020401552291176913388600091409980457802452322648114054820317570172115169563171503909154385116058195191322517694528118095216622721590716332347578038234312836941690825854684528342011928491319712988806679186885543615341156218829099873692150262150866361199887183792985917237360069067110312910878668129496690300380468122897823549462616689248715276013007002377007481954715376743843885100508436201431496207619284996394904695002695376720194228588446110347173257965964762491215903977234740829370910003027608167847202747057946286312132197559224019186548141759023584629265454558120148662626143752164221914195199790622520491536855449342041079777442406485568619151665763390314671388074977268444616614732656914336184492095057653808496394858703156041520869212976341460918929852842353033251116329994077726004003154928159613363821461350671672997323773798481862004390061251916672234626529571282165983435316775088208868761448318682382522953089314523477167963885434696872077718933925620582156591132668313895701501846197829925066338024292072414217315014598744618422103108126908560605054274148651397340535496619520466058036109436774080321638897903996281914175575068336207827926734372597452282362337389399005447281550891572499117050379590594593413166562149328296513674603920285891509944181001378943186314249683744551535050350926871920841531377971553624949445896245321326185592246714022635361391125532108730615822369827852151106956625252506194582721268098007727277054762104082103812171137275669926770964950576532908003665679988619911818578215028888405540483335832410279208707487931838801743165650880555660302076094175258865163072020323676019720780708408041953555189521587431121129417272731738886008322599716112424307436286746392803078293530734310782120942043544023805810389544867063199210840072922595765708021551725702234211265657573667389774950049731199894898361026565417941810510587090510019457996471947032817565569950568193818477732824150663546878498009171839890551482207036019020524768814824402221585714747445242678562959132320958443876972462109741436088402721615449008467659688336223392470631351071114913668872167319012672621513269115487917266175759964910880199717781208339030910040356123117319798324860662837376462854786996153730293090296222736057367368126741036097168600841020589027967814358888233705620344260315205302518153723806926006697102476984692438527589169188852689157089520950916219110072512132327243832424602410927591922683231167882934211891638892279151710819533325212726056014376736083565851878355507710804858311401710558981841786932988664417881708938197566049451174799307149607661518187966680973153416621319607066920661868209563550071020647315063696745986623568188770588151683150691216896055321732809271236270566094995080832818599250717048590189084826074730386531519978879917639090179732245473082257498698750735159522334774501536596802646418881397565810051730016402409001820511847160911036942240742317598434334820274248334510421901373948394949564038903795287708384359109160253326488914502806120899839348954271006037989044460535690232335600417830426946627301993177975832653034486781026877152237433709523696135596426871117903404329993550888591769975365537458902269884081534025183371443434886774978417932639190425843567765657264084806055043410054224485228809381252342264678801525239776953152904088348984038830404633945503371922516443477467593781758982328962129989321713827991199923272712023957159951743786263828963389835150843510654982537121755921170807939385255125590937592772916678207114303861782092221394027187437841875272493548789648322291479601710470682749811232653385202077686546926757580852066198783013604731667993062844283002734798023891439175659112793772688488571598475807011712227202341230607533039896730457931384360115342137987048197716220730358553798296112025661915153945613941575403167307667538382552215392143149235968774280143516985611758137813753902408045125863563140654117098613040862054847327190658637645900005986948526250275757033506715826662565887952237690349008122305003151459199280064806066506220297480267806099946958941871402407086199658912879752730587117006100480723977270999677647607994466623394665088178459100640944853072919014479112717700468483576263030630788495215158527886826555362930635127360466755961215090084168619791724201714478216914307525708851957491206143300900233711116696222300587780447435345849613937482949506082293772553478424345903917424482317509608555448871001591763472232410731533692518656669697546897058387000036359119607840065593886211771527794454795670993652018000772018852780774147173821894622565471920425082659125794508588156624850050977759831678571494502457355293717113520590153424906872494862406534794912847804315223146671596700760366678032411709286451128410549060093685983194026832230070441066323071949541467882182333816762805545691681998058888446640102613330561662951842583675068976313876860386007459223907103726982347977731183986581314304232726100145306916721279415386059451488252489467908998826022929283155761966885251399633097292031636260227476032638754688260094825187901918414683186591963729323157193420451079029987041611617282489331887999804559075793997151213773373112621233510769822513228878978674559172127771965304695158759899477965387298947356112775311129083962463336503458737914140546112362328115295620295109440168080497410139298630794962907224555628162897892570764672021186191195527880495795127798028043197330097671527822313286037164772588164286924741833941314228731649015463295090525447192406646917833674715822117965926703913736547003089604569657893770491123264791662666672776706974483917252185100036349239352413747473925197672566824197857476242137091002608255928404120983013496037700060590750583834673327293868325713929559618348436436989188890520968095279695073920627653711237716057700374876189731498775522617070722960115678005005110396282764312349182553080604695411117706973508292041841778113111906618184141756937920497199912696190874173431120756910846693459487862953939767954909069727291999770740192674707200748410484388521611210107990045171953231933697962426641045731521755584993022219667915770367344271716111781106688175281159084413523789898737535258138500661568706972279594716735762045339637342201825964189003566584061735713601061417904212584547779411772166318208902589298547883438268354347804333369241763526961946739913926080046095376236080267477249847457625931047627958525311065689274170514438107599068060609754674072738565769965979791392410547874220003800665536414591952296742407304785858458003637595337813904508331804760970914370230960922297189938715797282120058318254096534474657794326587480304400828474113737886058009284197900839372991986348985102919055109901621790889829639303406451713168429626055747203207186831643836835981267938464430517868387464532041671493175607609490415059781015395606262114889878014084165709691167172175016613755519774992429813091774511508032608518166035802103216566660977849613692103972895397222547115578518031115718993595947871471247360868997650116187489049632526104717883682864450881370122188369660753089029137422133086823509122881943851292425618804526669525669474409058235550043942072894558073789399504126143289701989937104907514357027043598432488794771973757486387865387751943831703488914884251216862195948241145541213275054872551808289633162049331188948177412615009266587342507741156224843803259111998185382979599559985099121097608956411571324202242700475361384192200781048029207379688766950048530489849860347999045140565690327872904863104608977025792862561062579813096822639030831444557480291809857345899099111593877133667003072131330899388800774546086941359579483964227876526446695891842907978391560690735081214016141137030425843786628637049422116402848021302007300270837932418783839268321823796434243164392767108912960070900969596868591606511790985603072022524631220204121758075620889476074028520319784789692674425947654906590078277149378968619160357833238345279827649048487037642007294257054250064193923722149673061590063072100379591538092173184105008941537066996250773349167091445909959959386060368584569553945962723865337044876681231596569830728343955559823251403972715628946405220953582132706285424999659028205294656048912441619067676505761071493555777544991009323523797146790418188692897498800218120234353198897860747323087482029408959571210685214479499651452001004867784074444868148642877725354059652272954758580788976172640052758196303226215363779293247510628747168417720249425804297534590539660005924415699416671388649581246048925516148827579985207251672247839478954184993112198430473014276910723880393699904397536683971070965626457884775977637441436684592354947642643386693165184163655212873585461139201610578914520093573075093809048062825879228589217054023793983886222983903875446343001507380861511885208305642215449777017755215195654845978667869018027567966635670658654499380286704704615217828034384342904228992055422912557907246455617878727066912756019119547708882603648394779720843508337896692499442452164158080448549862005728564985333146905590587969709526876721041157919333511619289334767900526484427421433656262545772539035078754815450486313268531260675468978202061854800209984759456182135320417587903077230158109967562331796916862392365251381684554252176105997545072331424421683215678959088244830986469544185612508622135574016001807362424778876495450662607446036388179891693016789416704952675508008487603625176186680238339707259156364150044330358062932252293606296904326882654531614542349389462365190635261526105017389564027040852749061768169466493727993734259568663643389455121876867373392533531109948293764579677062484066479605027224378910255853406716625719466313527533235223515243573157945647462326548524212801831337657857411970186667407503675332765601257276789648960315256174691626984828290797699348428253769978271072952966026949507360391690788191793612098944136937037068063248342430380788078674851379268993165058826804022169256061789014200143560163492268325439309181470781793036342181957954937781005814844107842589120190742326663447081745849380554662050882522282227969502729931605050364226680425809158524216307767167804862377305376985543158134726559734594807346648116160127734179661395795782517142445264655487239720238813578096175011480345563508484917581967341404250268629789921308136933750989913708869617295082116643060565083611191623431367425537684986377826565259813352496023691770198433400864521803925559818731219727744579812141658008605911634392907051149175861265781449823401820086509189769836362578504714635241254699674172102040125452327485510994368267709759878244039245790693183212826955365659653818896431422081252928670396081445469843045246953249994450600428279882035220162346346193535858191199145678514281866675533860030806935005211348538642718812991808837670873781749579143755171254346711400036168327729898184021930852728206857052384460719581190616336434506531844531393449870710950994234387967362981884792200820129218616789977384445742392603502223434378283309786396004403827557740521542631875773874596993264507132210682555928868008084363832040336712671857156605847135918159480147719582106411567242147174289453121304283254539434391869697512314970516485586085876847060241974091556786318765237170449444375779675389446823546004605390545854267042088065053157658875392428730295435658198723209172263485228689034425005688128874967606835187011545862278312033552450318909567303356849141591521998073354396585173867176144194451594200236747563450196509439806098509924110592989726393773819535764892716163430167582170436957428696691586948790823483898655106097351654290113831440200086649309425053457385569476699097401980914140718418080457758575903470960692111193926193546455136524704443259419591331802258647195829496660257258159536334229769805316424891988984760368958931463679817233361296607625428878687198445362724882012572744473369014656464948414668895723514942558623386619871245253710422807693218774463224234565758676829499353061880564575636540256815898931201523126326495357388146664682710095600799231836532318894007954556745935246598981188182424781827360666788278409575827677138959712691143100855044036762265081956682853135271991918744211553297047503656594753640255821233274335378574344802493836310749250873558578957553450110099798763502279022328318092878928225011917093136141541885009188362631156320103697713112836338071271771576918176047592631983728119173891570189465798452783790388371372224838671156275360357162637461486762270577453576885118718473946766684445917352780895759475848699698054772816503103525631618558244656391862046601650046458386116026551987958980987846138398072017232345158634211457038671404289273028327289209160033526619366153424645060374221175250262093935737928182483191952270392728997191974655184194762885136165659481933520117723045350950353094748079790748744763999368811848331148294982286663377059936076987789472964366844765515054167276997330219159777104138561116387398820796820332346843405987441803056021701742638724498211378795783978712634548257904266500244499783105638181897448248629405444754254707244341425223504440016090134142245827182455070081789594587334460300068154714682863130133366902305124384289648088541564871283538038573500759784982009490812348998633757054961735135178883466002075448762218970803108963343077595393474333867038189378478582210834450273264280818877295823767354816108314012085759311095025145102352900148179859045862162301996442179405628588544269535247599069350036311120562895079422539227016261640684750078097329967320661826919144497559461814272545604358211549501974887994700567812192560908026918931455605110487728069557639398377628282276616071943647382562646998454611125837446572475617303098620389913545544822610433738523121600733996977573536074509900282625751255529167115291455476005601670252464856444315730732442431278440927537207980442463137040261944446303408917207054846530901222700978945323963508982538845622072681117287722088738913593690546569534545135598083618637092230372456596498107823091404498508868922522921029813261416525065895361009523057831341170676062902803292437855494147907353365967127923313047875807669436559842586148707951334437123724900528797836230686296198735129448167220012386756222351429226176279134547955700514186288241410642002731551301422355126658552668042659871379724292253818871909297556118468572686695536146520772459291412347467313067499037686308375433106253817440673708424817466391727760837018991615334873270174662069112660176324100993735690967550765360625596507901212948904947366195252535354372256033133153029178627830632925725426919732059675708423834837526835491397845661243514564080725776932535415324731806889711678688252503751384972493046056736177575851743349950413871131994059084815824826268026302950943179445401300754210078304672380119463831455198192493480478543013584559309228890989398445295414717542858232029733446353626322879904411163239571986084309228571659380787025482142834655243333508413660752661364087230844122958178476791765487641867308018350155741035915378608402840381347789078123755825734916308315350913894117811960373736595187670527958157561737323316529409622974377914294249419576793646835664921165714805896439585767027156180268471936814125336787078471990900084710200310641066195971950675125874392253772156539365580656868251844199324629070596594639057958871371369523796735620883551619223475737536610073663738435557609258279486312430408394341158223968972776277508026350933289846239567986240675451007748494124809357339907373035740807946790553241876140697918165052923773782410826276342103153504083007014929894258043181409761707068072744951213064974983723524281789385628779741363092317660824530695394182471256124788880789696347148926494817256235472781051603639536176297178209185364885720380915641217301275499716281461215106950388738144559231070991532095623282056389555658282051780306802521575102522159857462445623815359743674606500501288958560621505378563289724119968123402741222819514283174254826605618949331039623409372186745710179343522270782972137552988810202292879604983468891532167200252422735467944909957159560500057229606523612317445800059486487806739785914463283957157129773022739081104804235221780205372846470218927209944153985268696632290903678663098864175308037995003966210111159629476425749985597323878197052650008087927034338345373529633503610460821683563955007077723837070801399014843898907911449653298917026308888897404964686892961103048879027814787442356937297606672532892792645484385138397121344034279154587211764913002967968657159559629486748759524546328016017150979550424552689747442475768872917797096314548931824304229149575354495187073565177423144894337242837126566143569445041386968792350709903760699240672800679586413488266217367816509526552104034065895634475873448551476257814778589329015574234437145056769660920057912336608342478497444816210889446638763659420994483456540135130044639462061043337949891361596398369530607481342683882555522395120952844847467348768209800149017125200357189470787447192764390488131812420081393571537027848186634501345581580257593407543226372157819980736462612049076237857545360823345206752638432411858110598524614862589757946067713749443950409006447787423170859470364980242683818723785430448992475923410141937912179244576678092488837948210621186657602543839536162280058617720701566315133411378114590967855648619157421054392451032124067973367899460350582998774768780514163939258686987513596605158559946984743862382880811891444369602788291798223365496096959951422454869745378646326005024196315236311796436001046806000125699600532423125980121014179493991453301569192013235544221996633716896367733074220631389752241586892065333686618955162410303281610638732321826943436818802175495214365104318498930755287943774397761295228651241510324197698082818940104301101505136143230453708997753751719766242829842872068760879573326665040014601617250368854284082801996583934812461050841845400498053711304415184880966867782652452537924375564362119471873881647372958397387353687452002246109644424037026514054172404688273401196745395558395933933009162790199530327434341101070708152159509381736785627155992348919323988720667499694846009025903601977750361914834698067803690719244798700089092073955601418793048683209990691933840331546791414963703290770000220477623918650180581781699293719023693368556350018814305726034092015301420545900255873124463892752345252732744111044764494326401048010111992959329079538854845675239070089210218041130062231067444967271835960564226909177039793609778765528350802202101348187991846201388626537761551925928861711848454237922888087873243822122435015739359485297631671497225859565472853578816449823033376563516332391074725457761170714746812148204005747856959999134993625005715686069875991761814707936161308065550506183040769254096418874586705216047854234714129008398277771498834155645722496712136183238416985099946823626631669765797682664791551578342098008096181401082953870785327852660887819515863916399901696491598605939343535895034312328931984399292709451964886879985108312013718015521953553590225475411958232493714231544644253371307359526438612246920558847096863168183439173387015126706353751451308115956205356767011622041504201744931696257163825002873673749525045138047278907284937780487766366414641283071061365764586439568241557844880630618406321698625970203291860230102454070046657394745778467832444951856359242260406388137150997435327572382497164221340763335247055283587378972467627054874649401094071686748255443048985981838846811394537633734929705708345080017122197549447165133414249386221917990994078317477565689318187944377408496614115706353532700106756955817958785971855600256105738820678075958148613026537776916267467810067595311032142970038842696292506314430251400499345685502891341146738923180793229256170184366470322056740833959100762636169540464361251827737205173877490958421316356961496087758653616252012243858979109601918436043019049848346104439178139180074992518909293150774288938416566503822112382317898991641993222562452472239583200900975406797409312352478909332492897501425018058363877635753771802661635471778132950077109249589381232132352587295174445333918335020959566200431237997625858473903372620746403910502583176664510876161596498339194351527948623361223797636636410760204492287511732297842815322717291324588243803881657041407502948547400864878944795232249358613616153748365081893062661938495438048756136482747308828645574018988048304506183540167033037435919976536418279169010836469552626645565797734410398765811909743207099683534924077229525655579972212912381684574008458289232293382370877120815014797350476844943038798457357081384085476253373110052838307966435580182293843418464339193813238713356426923787541206110192827576152964762821398522244524377272593252801002359380752807311699117128451975479529620051243718351436024310563834059580302528871449671472805352751197952945822504558406389366769994893723153881840759149619621761369951028543161580385509600458523178344913469863472762621643751621955706616913903738448481643340837563137783796685956972447109576617414860133532536043797152370366464243126126207825893494319545661540052262339883329479765780654292496718340531246942462835209039134742319445762925781257642690500475368227736816785804412503589326015495319811047297703577385771238550800489845860335741133266630344249667020974198492603913316059906512614438665743777249811739479410701355439067895972756620468297359499128394564392647359905474316826179106151528146651434705487919615703089516672724450907170481957797390068948329540118934335108169406787255720512732805456278877153852387186138749294089356763698124668788605615898483630755455789006655914040686511926427640327114593930426375221160006735498752426358807522256750807276041568917181221265943559113310188235997970131104535567892758920013872828112839268142481211762099335170502929214009447128621539661623583860438381165661086795994945387617439817834666627033895007445576225864238317967708584425861221085765856072878779643927397494216122466616589807708671000146084604438468741015461073597801061590046546015297645201042758105600709444663435395435598940807353167451567388992521577843173889425957995908362204408963768415018546131153787698042764263055806566765496192479289063858057749572453948411702194678304261534813980428562079530212204328901223853009002895566252586793589556503480570109993759224876538015245025449770277200364828134158638831820256206312799812816690957829793728256027547829158862764949743155422231063558061008340822807731932888148666338171709633257323287161075780659338037704437900401630315078695934335020587408443997989679145891776266670326941727458659046078283832878905236958870008804588708111481975662997658214957158946264153426611436628437805880668050482062847800525905034996146523339225960859178908311494405460486345162782464573019016959069666310146503651139590552305393332819220304243898750810359531461202580758054828125868227691795139103826659239903066176360221340660932711716676548589708661608489485354625787783096432669110946078851571562946467412756546524263485754253635353340155781935795024757092262713420361891333323620228988792174821724297134322763930463662968345369681509833055114159470983044750521591217372895287595361016068183477048312880294730436696964179180478025459458009453050989813248342474393429931243497460206806328630260747426369627537248423130891712097406423223402935522362405612349077639054953761524797986412083069753665469936886440181608197755335218310213576538653839066508587570761651158579136869696265372559716543662185280627205592093197799794479512422965885249785506244659154788445866526729224809048990595143070725074337091705904224637405692237997163799620969507324748668806331339509493306924526493462106473485905503078519676210331126279527159642660748193462248198604789349149077359124592181965191847479909391778495486804630816226511256412472198901163104141631995173437162502345588602182954905609171405793199560631547558649477556560033569293946521483465918477316798512107541624899788071384592378992451205813489523570337726511659111926105364083127145950433278055124957343610769437548878948623031854597976544543769548451882699897466628437906334198112414597397877422714202027155537623425603604883532744983225893381759570180321814707154759709070894203032185051729632557458623607305463806629706009826641504101158454983421788864514059862503569588716167528968509662497433621402384928943812989633196511050000677191370223966357592020939155934085983635757866197453695621492181986212671839973048853514275598943147996928960298613023286506917797012871340369489634752319022598982054668198855764584170120696912687149762740395355067888656998950603706147287831180743672065936795138655779219864638314372623867656561063593807174712661136669810565597391772024892833880429121603347678333295801195126915553891569905457931979602424053772138706680195493649802374776141545041223915107451964913709321775344513077009316348750679989444152828937795778743967315787582280745021114617841936452664108385792614687639728567040807840513213750964753892817807029932811338621842814659959188758534338108990463087274208388486590827383533934493609432545980739654122040139202783688737660554867978476504001247166268512185580611992890186073116192334534617208922764348302109955744589596089311977377833183870881666230668783378643910021786133180631533579274448443121727974550081246627938612985685019956815546269680907960038897387123419128854909313193648643821207706396950628737445046881847154861003638040611535023719123253628502557915931453723433352480721609155847890803959070247474878534013921620767493156648378138387803722110283170295249653351369361942170993028943812944380214701154620023197488382170764670394031326923436982470217324370002072210496944565589813321060459566779015566869935800950479702987295675796371536474868611169324035384090055391192101517186460311984964676089496806544358748913877085481050894595725090521744471247405694310357896910170747072870324749985173792173499137511693090948182365070302238057227672396652395698848356155412901611659206769614997995369345012647375364784483058694349760203725427951498564421370722408758851460021343433320212820857625365753434533012238118950064151353619341551801916582757684888385934789523079072498393756806948278926634131225580473216365032628785693676873494496509054094426649204262461665103952699329697191605135328120565256330946206289735992561240960914278353682080960044280360729841266051132728541304177957138494444872751295906679598460327629529815745189106982408660873510704310924555434262936769615802486378513312756876231055193310050817044599416648470046149093655197682142940188968658172346746357420071891889969114978607520548238338661285618851436099149975639940832323634152683221674790719633623676671500266981283462620910431155593709628303088930110814113069013370116643518061500703504118879116198742942598268433567272706876108977819549417625838813998707143750995526088846030663384176492839498218090896046247316472967792161419903732639186376255295020194697681656303997655650252640185386116929752121353779294909201929165247822402342980619635424785700688833425897756384860263241182706625786977766627829520490801162057245877453710051003568243045300443603449417526136611513373371875394823688576348025022363959039889666661357062035048967138060303226516920740464473841162336368337493092174644186633423054527206490736462434141235714021316603027408004017754295014326126923257593508642605090572206624773064407274072069850956548238263212694720393451289559718996575138763171347743126532672251738966830957398513362753493046294481009245362466269247378821155257409366244495739035141715983286269195958287053882115480986595112036939021850027706556017568624960218836914020659735134724106551876167615721798933137184089238357253856174952536727054357221958968889506781539868804604972974418062084597928925209951586306882923418000663765201273182295806266480808666222423616843094311727666539478357185036508441152052440130496406113428974255426179119224374867983829638937123184815570904898144024499525017777519110653875530592794642758025854492519545249268961688484347106033365238367558074245369778766225493617818719521313885232248246113653964711797629303761689279846827520395510039720163032031887759260435398831307485743172546796577724103756255120945291346118130405678743182287326459884835966361292311482943595831416952988592943778736918081625426939771965070735123570750823187593240929505694542418684975804231859331207058675160529691498984718409303925397591720334462007492402483167829368895549121814925297506221703847174295386396533773371328884919516821031560098374412909489621943248249527120270928303678396408485412670541159244277512275910281565851396461321752800724527768044079110662152914021230593602799826779382082777595906509317139385483282634745008987648896227886676476869758706905719043930174257528860550869585999125167049575047960710623700105672253083667505733882478143528002485761445898963312324586648618361550244378705459415625369110613933316649424362872928487312613645010385891820759424133002916514528297599913459013569525184830992263111727633133299242763114796443137052589454151521599397991556042660722573005017627579612538594997152736734451265168423331257425858160084010313798313316944663890765423545398618230702189803320158249610143416771363844663682505988906080142341574830209425535496993605701542712065718671072906051282950839668488214592030252696212833844151442142715868848178234854940231349769692253651993721295256113942887751580107406689819046528050242295112807894056558834622605630380311603444522077375069841026350672045946232921329524801788671149462376024198176194422282405182256100415393282628530466080188311507898155103049411403662154204982982551697635939887729103609035313043814098044262853024006521959349464953552317246438865972818529235964880279379462128970707904483129819263720738740926257081224314598670347052634161123603015780461600676810104713526731913902013823811927934856349245598367838484992258691959913439021125321923810077902168543830493779476405694751565363004449647938685025695631130712405251317649974073130816087463719313555554155970240581852427033966634571896492617948139926823081815900164874613397893152490230386289393846543476061625387002540379434965202245395148991939936758947697114600675308598959236676320529711484372412267170583301812653088081753234027269243458947876767374361194523907576769511744729881406288032646163464395174467118032296029057908657979839328521163561984370022732388274522668293166678057548708972633104821942072975789022697402889033532995926821191073526629835432707642505447813889403971994999828173328051522031519130290918422462677234405225688419602443169501615480361255341317765624831367253806937361418654816929576421607067431492491493037279469256834507650994982064268827215420237349145300263006003957686009234463898277182577459419606117735270543077463972631710225168039379414250075207467694192655253005278166252172950698520088018006742336418242100432441927469079238236500780281176977758098891824590934280705727330841151742137615660388883082776067326954851758803920141057868649973585001138563182680492134904129378259425122987789366126133713936859298796152278706006011601043943310401180095444359352318398982333365821120413513014216690579042613639066174732724496099304171482238328083686509341297167469361257935161663817273627414211518511798948859728647402991919669658280235601112025377606259489231124480605138713559586961303662968912682659747459164460236204147349395821367006259553654761295519246937850691920982675646105187225448690143382527802788641146721794914080639447686688847306938798590020291965848472334236854687397224867977309150152148480702372235340684984113650118650806007431742748711149158144776011001926771551367391487840133748506678833415819646888105330304608388419068240262221611873002826539161740370389126277103699404387247851656729490984370630360348984239769649423664557705064062442411178066747365541214796992063319902316681219436920621155387131608477404710821675679627255369294705552750822087153198254927932304085270747102949805559975125984110025056142243778722184444271510540898574963100237809452538896828012856055252787309119884274335532069924445702678946810796717430100687823777117406454135004737547149215229293408907282488082139281584817932024330842244374630036036907514675349583250396608452344162048801405950968120407450269822422402658605076583955726077475067745009158623186915455288169584304746754733462680217869003234410698533784845024670262885595644791924143515076905559108424931134062994750245228926857392126892098691947698528457492716801129638355866765258478958501293018144255029512856647458463919818734930063533304018533882600868169252064758966659029070733274922138891886841911668705112710215079251188696617586747788485178729027888510240696002648265987995359509103892294201377222716544735296233183498525439886839471009974523489399970325457059344916610919165852105389088108295021240515593573149293832201623413707736917444639756754070971400603750795992242889640761021139518248486384895169418764805563833081843531026549450414158238888250769294439396645238598620339065132394200798224332400079511656633728907371954713940319434533815535668136126048179822987780266740403896776391391143478358713204294629115817012428037836596449084816167509963193175646318076134408570397574242259819445554704710516774887887356441053972850496304402997020465727693176078772081138232483424374570600456514937586776298472060021751092260779373827094845165467095180240188138046844683547946802664524409235966283746908620551038310855214762104018621337725812164852928675528431354114332587077981132016962129951437257245127159660269122810528016701573510312119203465914117684963770041676004202605865233736645745167639354009835281242933651352494476376971601775730183472318605191191842746142899575938331597365183205241122835240383812615190176826371527397900537747826568346644422871508658211737355959445204096042592245698969289264041184659848630722980464732776455609749112239812864892585690866900214910788252017893046494855686403867113597046344361185793467674147748648150543054126653579021131933034960468622105654628516173289260195597257666136477185166277660271861112959042233437400219656779833222397955443416459581668048131999036174870871229558384065337464921780179310076843739459513870382881771376078794875798440223824544611556464183987509205445906260382953839614645358436244983281476214395385210819057702536547306203841377007195550493552808886771213524333659168708023917674808806416737213124138233366162648704829976346356136568879086466396893126455323267943276032448417951263003627780326613803546605597645855930726497304488463714357900365898243915716128650657443583531530790751034922385204330890998324129162015024242626123039379723650020183365409248084590587491127755642940804047020350864975937567725523973284665204899071235590799332847336751847019315405494217350231421467292645554140986260334175312266167427722452775027845778063231977516939998944846579292753328103729063152487606173449058011319625984793930022162784799103167873860024003577488155725191772681317851676679444832782035687683560102423773472519197632426231234167821432054225951546576746299978223806697969538102405565713643904354532417072707769427340209931556838640323362518507510840255694468452076522393210548200157840186474673675043803284847375808388614174544767429655480187073343710408533223088350060012248155980631123436213659281454282747941062238480018813963250005988020235931528940122823116472723872293990992344617622518695647312283153182895457894012740066286835187154939578171511484666104310478665516461043741495993244488003456637114760448966348945430616107860909287614572353737358253119346597916210073192308373829042370574933533612331706758237878876700551815116005810425964994979096944759279448592055849507642720778492922190875430115054609318640027280374762779227710727322467413556828939992206678490789914596276516632912233503896336015102208001698047978657857228061098041794975820447585370160209092882083588140138739835553130630144913016122099746082800581787531196324225371082871885409183968452432286942570963715539430139493257249760759321650496551906701872030781623507244220463166413271425925071642858907491871954230022085164006209463287185867184104131039963140186647715372728874279836728953194133209931849943982340143366617507523760222439450379433610601644995266067511144546164853026078747163432220311609896669000901929158214687605655946291834412053296744326014985159536046321805135787596904298909088840957324272508274090536325293125067613626172789092694459653704481606223233237730146446548536017939350453960546994829036203381845657951123835408365702659689386553830043959543892170030814715948629979298836115141135223701900725364309709176783302105989850926147753227503567251260079680575866287126334907725797530147802651021232994025132985652427326737717366628950356318745323841939396718754387584974446266250077535574022283463324645307199168064201292852092565960951889950117821596556240452753207186829228644074541386380382475438455698359407397945333256576513823967025451631828476532749260737075829350600538092101567065512127613577264066549707853902757195579879213256131381760756482980933600834024043259153042664176789036985860433868211044442990163444329246176078969189929757386002463674039430300736298741082262532161361435059837831436260259293125641188574766119200618685708539682398036980809789802724984684473354179362760620643370988980313538240352821713789852594613341797280573951903531757551150125193943316595857506549934424515282406526222765383965209399162932193504673436854412184985005009400145345490502285161996657124902679052800954808574830982781244750601052690095507593061826431749366791036442748446736100838421397420887930813317873827023687998605039799481606151558817696150532702174505131441352492319010522930903937816290982071396159320108959120211473989270653903480874741562196772318736615712705573776389638995674500067784967416317119397414418204401831626573998346024350695325051834490685658483538221923744264188214273343384530293959048387717780402819542085838477560439502634565688085927576564818058344831723715592729169169496319367132646927924639807839399373407663825353308797289980675492978722893180235654787729025440145745829382343772517951678057714009642629338691241787431244343840137587916874339085767818410172185796587746410952900705855471112916039267871774828929685302045865220952656685489751501494014164997750579791319015897179127739868664903110407323001249770243113777655044767801943196345738464019907165145654780401790674631177417517802564457721860793760259113640445295014158657303816414062084229040308118334449476199014244188359320035631712226423130345588908056172466598412646990093212107252342149569786871595853157549515571861776864325914174423657069363354382965949552138383291648641675089834440322863817583049218791583251294573582416786702094554332243218600707910449660820507082919233299204258527632001430082852224720947638357698368067761317549625697678485074661376767966313840754777945967012715586046463287300866065608317867522337590983807812028683959740017591879551208232850715016201880020231967398192454449784842693171646592565256753676457607953824004599305393139408419427686880604204536172514221552615511916037880406939646172348836558879463548812089829732155213565053620471705277341342159240497393152158741430349168204600854036698947222258123663077569668065521756305059209915670523902393712500786067386578763676231029283264795423332290698463885269328845735002881190248649435924603550113976806567285945229598405513020177134336738959054899157409742572735292534308567744943237969561417143719353295573406220161267556408564042430632552143652476867265782503993639667939809270502810514622714700214891070796609910015308583607962202266300624599920343361770507718941952571391766735908546189260755985193545738412013400087619810868590044960161517706208090777205780220022673567212230573818477845948217854464145172403639402958590647917836947527905796131347186265202428106018551961845798474284722200424281805265372750392839908563253057822607567591234593224601166769163709979053627099297262985959796443651217861945847054496292813805854594775626240386562848715088739168201010629854365475789495224418979819941691947360162839313421663349725103117569538476223824836578301592380487657168560767072882751055848934903549299687648737900879953950307493860869572469029492340063504402253948541144368796421790869318558325761268911915127704057177558037025074504725433249477253686695714677444036339720082900360210870996709862833414996238184530547958933630003104360031025999408131932143237774052989802131595745863487514662288908320534548938288045481172463970745714848519488327206570157985397245727112581757212040155535385721084487635564276620684178554911823782452383688910876684524362458663071287013392890787225378512120269656636117041809511427268108475755511575343922901905347146113896543855657144925606273923941301780328475125167837327538560620257833412130582846529916604025873482488864221255306775444826039694609497051097949717903531030469762982145589495127261944685940808481417279494791943084563975896980598104559053303408521581556986318418729378422102219313619386823279229835058956282668837771036062326772022461265612454187043085374597976184780448276348244812009028356233438389128748197522401435312042899919318958768235880633705571953745425517715733031643633808158323486983334675944570654741304719211638299379234585981405418633028127153435341608248360134753545126683499406022588919564793983062363448189790935880214070895615083390980151132461422607225595218242085099123714141709484028092646387342894275160020502748380564047765012410312906139593573263316496234692346909879191803179917003649251059719555604821403386762155317804950910857171198393321993773222348962887241117182732522157894821129120411041784823192037384111532211953879126121768765419201044111894242350355695665335742834326397043457980484089066555392037954023721796716145364165277757643437292946277159567253740679358338105686341490601880222826106468051945758079301333828711910919207217762158671365514044733993202792471449609640786274240376346985407075878165401257947542677289165002821313254619446534727087137066116117863429421808220539390900271327887248874953875368080967003337028132874653860815011663356416500275420924800731250954802484452255534094714656386604101557118965878728378500660249936834653806750628115841104675109441019941988319015866252870998623706257656899312090485279202972695811179716126754350203821007010233158787668028782794039578468223166665337632913505839673392743626171308092525747317685038620678940595156392790963651788795447752102353574734306318566281911768582776610856921531115416643568900401591605493033719673787545575440540258587824671116542289538883482483200233322425239873070931399920415322093679381967472373685666435623376375232416302385398747448944607095985348677036500395782939600773458339725681295527784992069605593204188832850838662594907378273811963208077932109153139977403090014606431716747387862523561799240682598582292461434423830519109346809524401604499292939810006481509914898765427316269429967155154624060280860865997480199603274330129779395248838141716771861869372633958027446308708143292176937979780222594025528094973441145605810157823689421881626751460185192438108975384833314735232821875882310820295268071953304595762653014963078233504716308910049702859812547242928818505378947197237014587457712231172126917122721937209155452237305876946970337089761683387505890930546799328664539098182868861735665928958927122737611727725439752155730607495932505257226821728470021624528906650604288971956775579250232316185835156656335388767309261417704868240377770252174577896973956153565636895247559158377107002437633379649817447329575889311628719185289374084438669303621009770744992662214480006222300099739017211133319637894861181955145294533592190575360684489877696752076601444706649878511698769993271876753007826900137122537359626624568724278153987321564113166857166505933680185019741798769044839168209536855934838157286712705998081129815332842916116364449852630451138600153504874678448125312310867418603630803801990858094115000000788435345838661482291435993876143272143745833581431508604486318187338639046696002156512337696984707958011675352336586565000190084491460463145080063357992473430817636155882672972744390782350363825057185435720107547897352928716548513061641924851336621165964253095246090289566700988738339319310202015321355426234768433701025795776133073102709782751387299885784624550669730936661816248366154740986393927312634364795737434998662962131400015912986028285288255653284291125502927882611162282310993067932742559558454023099861793382268556108300616179381075959718999304942527541139077172032945515971333454297152830751612013054915124506841741016828718830959464009949197955314223755907118572689714714052981216235182423948260097448710529598657126512816112815540155336526739240235127853785759798934976881339783346107745462772583995011368014808220212796005508322956777328660685175917767202594377815080311851237214368862368920159484791555041188811494560234635383683118596022320162752559473702597804859080735486507287272563992384967089908215229040833992529271913291728839809256027472900353422221969411672895515217087994205086346004131648193864932087618040263812204095860654118110252453178130916045855347126952133553228093635062563860645755941684230454126951324640427305045386687601433432024371221651979842463972120597692126711882490234735583313828498906545075444274629118075931127850425143518922980967724815211335296537753359933645468845335626891807540717979329160004680209566679983205870642120071794228487794340095973319277454983293148518276387156138628612040628276615996308771828284767688034097930120399395457552484888802811311688721679193948239828005688808135151236781850655447000954608127230579182458476844671721719130307329189564409751602209720519010823776306007298422319121140709040041251805684013964433994822017920181463674873706751553996638988927851313298951622357347667382051066813844090287723681245943590394878554870112698721305869533539343813768451362257754415885408809874801623296225328235174982499181762902029370790407246216581819506396987430404848337274972464845584427557759544833161775592838424569870116359492815548218661422099341328310791148396046526671775917857039992583525693136747410132044820609654645269891846708570301565526125746283290132617190896041144576671909202379201187875558479924414930171916282359584472217955447919615164615899062049526383696457846979011303756258090365429001465925476788939088585800164701265251607061382757822261553036168005749896117495127623631471302783300154411096511786232427496383128803047099152075273128171514500440143850006075423812051693136314405098785853884014643724030942765336093747979535831905518160820553551986003214827625555327879875606970128897838874406403698406577310642121591337596842865827745151737763494571029351850279862393591223828800371436117534386009168750045745314486264227654029899848388782424528718253211426100563604395834753253164280984639515269296759543090573633453929925072543209057474466354045324871935412511798004406628911619779901695932570027399619953132653902162876386873690591286165758854317295284403311674124449446156467056341493227629196435363423238678354731634750066035393809355954586118758742038898123882326488837525293567663959637277952340967120892791983550573742462017747865108991660437761836513377416334220169099985943868491189056869146180112738849698707508425658020575911926498591887748539116092973833706775612354050250193975263040496997620995910641195615380264446028745367165587120569599599390137246552588658763538491625586065351235065144641497019006789444971901174100249608144870040501506406795593987445458391704984435104298961389264876505866148724588490340350798252253360653875577343779812500230856078039508454361058396540915859690679068893942603690559539648874037525007004329839684854252638601128156381829632838956653531562079688354829022443616686889027864576359728696396301078824376676782613480589178745218815343144924960153281008996741609910074405664974956457234943773117513745905558039170983468867458329598731455970275793777217988932092027691940374451834293407518481431261475273583486502408893595696784314036461850036055672322682930830014824201461711362868575767035273314281136265373038611112244055355296576385968690849763423745281725881944148384697072350080981986827358749486437972139370062399903090737740792375380863178090430074173572121900478183970559757917396910488997640848085232327430074830115092982640642322593199789446990870137206047850492348073764398136401535558392216818183996564251777479471311749743233275726600953062493214878592858706013095728746336451963030499488837996497123262129219702012662848847155148670050324924992015832394101883346812610722271861026232246620195811094129098746252297826861625141368580449386683267251767720638117993068876243595708713569180062924610697510740616002933428749245793550568793752971158835297451915700952169259729119705555095930146391268553640217311552345057955604583233217688435004888132942033586569050136486074287064499084694444088925077833882328411732041049455024859192068954283302270094852919291515256949904044772833192855318965282199149289524417615691882699587019417831747517002425535377014307156030415462520046369974329325533048041983054464757910661340249229941517940963482067008207224946238204543847042604730728963743171449817806422468988285257755931438465585175241524857310816987605584089062468309881783877242972277474750059873794355458346881060595169091413319276308123513899910464253755369287003207409989991399695545946814963202300306523621867423037591313125109512730544212667728477283602631791825673081634739694923118590575683264018509411365124677749286004118796565815359393720535133965006451172156270052636314080327880214228752889234189961374218352034166773163079012062419370320415065319145943775687452510151958106173340234390610198565739799344043308466262200475653386728279733603983756674340887957374577434075527734405617291014783678656608303078275175202537398013529610704107100373981088601828697044369437821621870993269849717247972778026548348077584581364003087781305336342812664179649134274477992867466104809384786687682449351622153116494196007635682518265123976778150692820575720418861554111447226641976542648845364038387496376260388475036469214878201269091251804020227395291089488670814402953861428403483719594858490446318325380992349674209226428026816595064873016203375841775628836502089637910879995704080823752403324534498034768872855811447163855987562839797137922942950931856422881903021607830518743878072308121554453657017750762703765617386131922104595250245099109279869352806584874954098542763990310419334409020093515887425884854193028997060118679227766166008684336304207300089270448374844464301583258026387351984948831272159263351042602003672392386235827796776670986961342564772178487586801782820544555677263696056436030284403196187938431842016258520720942874449415185803895826567769211709798982366792642365377579174402936881066835722763966829076524036133001855471891700684117504606391698536240320976803806968654807106512917630572276676001938138561038246876048615499903581898021694882714259348059436713134645536189506518224583734072115073189662753818271728785459807027666399013767706313738684330847973845599233574284884321418878802965067560323082005576143776642617223497115680727817133464605083654516213738046814624248260627212522175391869525462868058162365295585068131475979446139374644721983480818093220390709374677298414747748017696348304080582545135614128315396785063273456401694048833793002854400798522610486074756442149763221178376248764682080639236066713789848794121271952268015289277262637906788297259064337038304012405916238975557046687165125843396493549276540145881728754125572222696139412707838517779144547623329247451641735570138282832631933166288797608747739754389745195427893124024682161777830082180644347078957728204309067705262835771438219768581154689116540541336654589035893583497645487477675599260938721335038327508105286632538507115276429324572384722514880296225417436293895024006566756114335410628600475235096776566564298404841086884687892559882084827785206883042722385351739415540029179653997834148730956703477042447157348784302755272020021293273525823456370412331832325569394889974859728558210499248643575060504356368549206690602510038680781882389277350002545131999450186660868974532995384265102192732966314704858391511498560265133214952377738599763288305352206203057015568320348280044888051971430058059905670427799681845128671375337931993285626506018985482876346215647139836278709741580281612189917024845112733431543921549628218031039119156341384743315988630609902513081626887278830816479750449637754302392996055384198440981952946624207726370389717835124185768995264112575663903871554926767391910445243712372117875356802302635219988731443583043781643688647004236041870868097980173759479452099361332487501975075336150294903955833057399927346204893252655873469567568781092219454685267924900932871845594777745368271938375180326731044753614856596584104889656274035352227609248030385414074230102123574594560099443497423516270729795566441365705795402139547710122208195769150563002732205652398661589472137882905141821346453864825518114817532715056652854621319281099624185419836344849991117700377413511815329083881538139044149347506615425460253090797291855514447443528878798214061931478145027144191684852986170238965498201809216173955844265514835384006772145483377969059148588018568496025581143697993757594046887298019726707253301975082315667081309535812534084485081765241743139520740248592242643712066312064294827686015038176778155684480091431227864840278024809847907233154538559018397965575155122773062273310712587875147718460327976838827049378622684581260795178004699913859123018937257239471228073688504769321355294004233951544036792918401629078822102300351866422923392239102697148426906883899980136202846528484490555666629934897724453518053104686571641753340302012463215490073737108602489666829924589810315384103076536476916489971337410039162633900629311626317671297984687180255311880267723510944636790034191673889178735910685926865187431593326194193810726473774272300830593950092586260720191991788579158194369483907420277236483001840242784115120498507687961151526367677354182203017184916432348003304754991795533619332538641959791338488472432305780516665077771643033074534394562124655830810947901659057354276721592209789385256223153350305530210432525083791398571195152850356729454984907860416626536989657335534777240138602737454537609210664474730010447265290107773508124295133636191002350175063370384136095133822019797974623886409524377845949058516526531967634907988766551385371797244826163920012030686717351676586237025274751213854370760760876662778089365163015533307990597556943803657604516905228167590890141383113897805619230428516641138037205970913001794212401979670444955412598354765143210386771178236566409333528458214185571250192321102106741604258266297354439443437157519544111855729104336415378807735639802347757827453453337153095811441111354899076816041634548017367821906180456896524124765406927813153207865867962551966610415920208640411270462794943260603378357494336362245402984039967699165847790357216959446456956255322477542840032833306534593324311659689707262546598664567161615015466156770521734259549354060646996296767162734873453118429904894419293039174420336973457868873399756494802091735356728329474286773907794362404523137190572977957514955657515380883740542359686108559621500780610111337091099833231809601259468778539797389346031965179252437902442820286121329755410773396009013800354737249677394409596489098908535053769893790619378245629074544679524097491795768121574471655875490456310924075233522085504214887944229513353617605881498083629144897686575206056717817598013341660423071762186167677646619251932867426899087574741833498415997877159563594770187761859826024143650512254848703241434931939449196051283475098523671837365156485561431648454367678884633213551634563652998241332182779605951375394286014564369780716933904315712409373149584190705907208756164408748958426271339210632903602995448196119000420740314912618640632044907264454806189697421622249552285293033111092534071107888231781712938270269761562554245007088417907263272737616852853552065527147593521250196929932649660538889572411358474469094390048730201360634383331797249629369811269344563937846820749567908152489111751881165560034988578756542684460723557627816896621327682550167991796983230242950226700654933344134838063813507452469544378449224228714751847903611308897920177223199344747809381707392225335589211850860606752713795225835368313969079594634830563080151226974734861963695201111583582963147848514981729772235285141381667827884055327533292768775332472465266389612876889191547129494619258796948572102482551961985552053332750076252282272781707105993902677903930479676306626240307329538729717314960212710434385926279022934583898769661536421423645437967313814750636024112278011705717398340679317632349839347997956266896742127260994375595974363306134018678274782621904720961982710956447682045195091997473231666470178109727796075763703695415315951636928414511463662446881953712577706650290286156884254109650535333293652021709358595129183679197123082002086603412477038028536714315934360578483549715601674981320128690043282553280639806304634005863616371923866070956330889688397954801870800993114585604962969701912548455290519574666411713391904519568266926404317543155383914270863612165222623667246875088411717079608732273432692580726285337410842226253458787459894341188388501258153089992666963728406551327693468803769270895076152966500127389127369888776661863163443722456658997934413528527918453748472773155441181506369205953697065554004023167580380657949377910446201125111210323418787253212086255916751363815924360528202242247784926815688268038135943262167362582419753635843386231159965952309461470201371687752339928762593983045575927695612335509673773510957931934072151574898557371359879472132537438957853933339936110774378540405330595085842237366319031737790031459283433318479036050520743446832260063788957206905299118983438048169653731761351600338928807232157609379066264759867866417425682801544219456386468986864508304122882163482911113815193043703175796653116712044595896331462764002611452626324285854167042433682661059157081682431813617375611239239966434786958410457803684064589998102403731180712870103473373940690048000301780807792910642800985331854744247033828056215918035718116572971970387765139498400334117639803056050997997854778376365044101715169792645760340804409995495819008294471354353554767256888511203196676434703465871827706161399554748775033653068128750562095844020584722658497995622902340894194419111838352015657790096081531490427876862644060164642732258104014919401477017103340574340312072428681314551022173048736444175679237632253057019492513086012376414100371824721549249776283165770870442957094132107428113268189843916221676123315504433326288435052255427693505451299989780535443630920973610811711462163354417219109111372071901102874212588402068170878040205169761841483293316350589062003055226983422153797166576105068698440479593829132448512291696036480536089410219737071371364005852543521629617626442231635603937767923671607829114544381555006625441547863561845436056361630449855300799824574949191205467221988950866654025377070263276577558872305448306684806914448868152853990137017497786391395250020114468754905917103134193549456406437345589913756707769462761038891527125469493426016264713512534897957112245972814109173536116746021600387805097949389657980883060580270560162199866550568953963563708128635380820959147141243417194147772066319128258517363787180019382711395336720731253964204874233431141155024587549761374073189007163290823667039776466103989149594189162787190165250844242687059266895597211167264490766980569261719951719442702464282270605922851509369436782111495191126835642033763268707764506777905025506570494208743717226388650468869127618835646512771667597147485148503730098455864337084063964792516400825541751091742384336033837436549206094354701044387326138772175681773150953553330690715853884876461712607346504045985375037644016801443761957884164984257820399546963634185118467864483555633662004257227692537833934437100637672298777535721302423674479284316243951724265097423788054358954229897987123213385293550001902028590818019263991648562761307907933040720563896078763871320872399585213986661052519374833809929627925839960272232249872984006389091849340155923203993382517861698565310737426287251392843347055671905505427081621159543079237986716068832252245025859195055923628244411699979579090042776482214676954091655089839565969051696662161296799082626652618237636186250779309415281279630181214954711081498920380067580097690793070771961997573033119290327874972507059364356324511150393194597865162916857125402151279122661569038386447844655480063118965181187697502437948935594205034684585969017167458992603918214553820476473401770848192599827244084246761536245601042341476131605056000973342285140496465024672701972458869094639376058266841852260597424899286919100956881894287454227310373646114508838968199499168428802750224920388772707179926105897295251368312688151995520469816822018135085520328542389381249403591402748854736069962969072155816165277569724159593122407678755848617139165572324211062148688092033180020276000067612580012799330547521216229808080767431109410706764870920866989065976208272816142783576643910212008406563746742719756852024370772427664583894235812769174698206784054187827084555085724695068861299302455335537144196333014055675319083169658432089755929218641939990560585609574615772451456387676279750785366447856235486166910452862597942297470613967218630915139094840947028276273777408404381650068378279987230482649621030501717585102334515409252368663939984357708482389376454564413194247414623349502862130542575138442752222567591509625947659214637465825371180602673087464602337578008664723006852590303331629375754990274775822669941308819102105439453367683672081140332037073304188194432975707392959822952232424957005794809391755031480543383352711909403182812190875212976716037633794798982231263855005960898944005432246882580059991814106320118197574330436977322334358170912037023833251594483132018477103824221975974342531324728052977471672162844443494490593758128052725806590544616417681920876209043753498289646174983625732258595107750401171138610045476824982161721032239933407656064058297432562303820572196464597101210637793288289662099837686228606845941786848859979953746466695949819118278977271207582762414615777847321798742232637672576117887685151832843107254574799274578999355946976818999745637415647463291685442853923352042797216792745038319251499139263026474016965322065122323041464896579394039017188689047026939512796197807475620392079166763221164058896484820712837764365347047496062264828494915510634346462758387477918404766886843739178712462618963096901069954539526061967684286403971255179045428750346178464461495481922104824174381777194517862418503574206951923447920393655162036762033496406321780192710881931439336075139329640186031952371206992407978769344130123363646143645534417092368553597289416824191133824796277664024995822997600766213020330208262649954770612707905201101680936537011646569433723343437191181808173023342920588551905001536280065793709232672756166814435379567986197008030250982588653012633854253042185742762604608041327755429369002450603583273589038206095785438806737051561138589375598198817721464627868381267125530858281553676013143018884929028130832732028840072992779900155820455325785297756493976322127675740377142494826991305819753189718841186400432845038174351067275731934286748434261065475322311113859850607625447277079401883946499335292136827910587795736046995406507551250997689976919367499033116759103356702015855120754325389261145952265643792854538202098454238437881574244682256889356304514290593396254008903826793997597083354691397185902773136886219541942672419389439984695060804612772134380777901145560855967601055904749574624134777298633167434905293478015001331142245227150772111350673330775032074984901255903000824359344742795365459187178215433921845717609318791674950107520100887023044863309272513195629649317553101073291288216381939731715213716233588625435085942518442141711945054183967656219653403117611469630385073109673667385662048233161722809054672930017335780172907776752370326990056177024532571231843137164979389166407751657587080945635595921581843817121568126848995973890879537688383190165707716873813073480940087246039051645398020285660862649827010775174532903529368244751835365558034367970502293177701294617906828532093281895808168944819288237922737631173302137266503638021688758660845172400667560434225239265626636415992800440179401804744169282732891328542819698522295356262007262090290713597984888087962173506116882378492813621088589975304408257652320383633158321559473651919950947333526290979099106531176564180113799911199044883634099338451821790166456673674902419371699085435911795004189528008805161937994814692602725331410526047772326336999951458326241813949175909972859267644234148198276444915015169554487203247461096199155195934821837004758688712338595240189632779163094548756842761822982328235878399952343776663983022988693508037858344087602663316669727066284430911468394426310433190809470383299316412924301223319025109807319072962347806386989192922978893637261219883561953767168587361753995146022279708057056702305710977571046446585894810877662825358271281359619926364447149833493909394628231588164719667721138537763046660626211529092512138835310790334983952127169477750779193145504192773877191018304748244049776190715635254323284316213231764059483074575191535359093566685939599740675141949557576462730143062698962430625675440264585245172936310506137488098916875438816743331529504419530222854393228301594816830043271341493704198736125444910382895774688859303133021433148554494876410440255304483102929803884715208686729746526728419725086583048337474164935185004958631328984508398010684414337978516292373767314006496275208236573154798145876305579261027521776600267511964722211181145515298671477604631055115597676219796344105564918407051171229485009906597834270031759752582780819886469087500204224516029873247932252945800521813499978375430385933323329185760879118819017139120694204142330437729985380289096615885084814077421638076211405081885268636462562571697758540398522450896370193291336186466126587648870590540895295069327625187768329221558522325583822355386475027508446683014791629686898252954514859296076902615133019620520138036552954795671495356125114847966562067792156810572414983961500072620454949835213862903632908628503285034279530360817975136724909882722492836422813506884320427767837402403598054138177939399184938747902351040635032555792872894315555730669405311762599936305914950680717878469191561118517233804067226415808050532236926502418447845627022143371712582226767198072954727756481683283257142885700377370296095343841900137111997544198830242555141257845171187236370857743827912748477540166914987290769714882575315371029401654160701960655670600824015666178558954593387136718901106064008089745503924809204946067386822763765125189336668904693510032546046488010824032974350099307820660678674454897506706594685214256793709216661144369723585370437962264418387856711191120136672746914721674502281175159175103216318118615499005845004361372204312833829746429821667284584383276595499758448658279337391995121408142733568008637191521839692189079897485997220747133424931245226025334793241202515235158234283945677592268992175645633037389873691665160328286308198837489501348182465516158718685851742464721280239654642649829575294778098290840621190158001997612216496301444017481086245086605953378431427429651756044576809773277921932780678800768944869792275236118479008577669111698874265838166508842338764348114801982322192399930193524891251702786832114935632988363323944558792921869580417228226026172548262576382164280141524972728266938003921947127608201771983699436994663600569774715043354085624628654920399846122766540989500107275359320474378507004814492354050764316857534534253508704846609476609210561671193353279342320948642196427977278081399801108194307846688826672835854961696817657970395632902674579001974084186458504813251688179534692541154101815888221652072586634432346241553570891414506368571154681343672555867412398943783477927646102691193296450657952358687527852997405647797475327081961047536999128654091703664954937189517436128194495537609092768420211945980670439839712929421570382664269493511848262863672727831212405427603278950186804608765925269396994235481001271517262645933019363468409094301693116299997091136816153800320851280655002241630064027084646592262871942721147336271480486650023804321887917918436043568076209960187661048917353383890127430328617064100195328628289187794695544251921508107868945030497108929982482920188490949441481634958172533691808623404142576486167966264070843029789942089374727308043368176578328212939459474231156032229285265469830995424601874376611335547575392478375911785055319360478216473912701551854259950759848773148375190045141903329632741604848450689734978703275100429821417174528941575409861509627115036454857319782013751540698564031897936570793621367682128920972796686754747730981182319776944736761065912462571068829429786548940087924773275272578078681065885634830774026978710016022794097893718448320144731188969251729557640431102850433163053793030126488612101046013616072244511219429838360549005401806799552446322046759301821999948447224003923215730326152475967136494748564040895702710152453478413337490924434089250626582990243621758066404154818599096391232425961962823361185605962671987601478944371791742649233113442267719870787145513135242656892132919037919869915718440541114241237899126774994463096724389216525847251588749748546554394630946637000232367284705406277460160459228033849914079473068864258237564799383321762742169017152944160004981819893593971874011956225319792881860309461296772509864541666969634308376875763287611808980686210048762201729374323778941744877059889665891194918207188603663033555579668197498123841131339095289987063730986480085503019529788427731963487313934077550999295665458684430302946671953027801393020263142935936028001647164480878264555914537368101431459386180069969152686404362371938755546228801722094280066303417640734768425346958052629615604320910212876935067222754578109101522269984800533364063685266376211845407455966588135546497850839067065978507287808311653386373278840252884261742443523913851926873874183345694398219556389343816787581012171318058924550759315445581424152065448107027528869221441783047187652574750485273216714787578431732570796884879428889945038804038945209275754887518272442701193062566271180590417858360257643552164458865952645305928095146481873457048447624339893833485565787211386653313748222753440549472034427486441732755143554953458515227683254052133139106809830072712843777186706859993282955671900475062916508182678007455807352112895585809662933344950791284290427357681261802983422577665518659852945438305494409411530573692537680302009340029866097046200014564654759600111285211368261928126512765807349141335768070973548159489042813159363578349597688987666466391673379806828291118593302563768343618058843891030076687521552084773698560097755354616769924248636926479794163702964976737341125842811535411574106601191740836058692508172351633899930898793622819611112825673797373140743788095108024163652950666239339699746759970718052223674359380325967720882131150338771435004703590843069181797249047519526041778639598623125116724625478462176288738523557967907616690258585933533500516051475392455797173877277632993514596772804194542891511694673690895588830487875079408302213959098994867379786480335689238598652178211168991120947027729673028382091961568112186274283430238090211407921139481331206681602715832333812667164894018643865168991098560831634039932366673038607660102126814890762950796434158036756694947264095877910931340479181838337817887462454019985441784999545936411179903247271592924470431331670748586868634122858877042631079711318148550508935985294061625459721015027540922581057008496205753694194043248235890211091530571114642243097905513667365940140251420287252633158296892701838699900063360680508718950123554191794942683640474224851644561516224195122132847138493004662238656798775363094626592696644182620479021052811067527879433639922129538173885698052510927970026171143908580840583715260730729125107795765625888714332058487954084323154680224777028155206284296987547665806610402501879243953877392386069070177257101578731318685147500658031478701199101793566417807446503142930249488792799572624314504905399081368190000764560558037849563577825964274889390654128688091877154023243050925086233333640048794096389753643930009850889208400033064651311950469931600852687876490051879412416343394892548997432550905119877585846602505916193747572059160700818521066065272327060545994422584368208576373697216500635458912634707968592437315030564590785480126121717482402656320160971996709414901356701555687155870993898016539944762154876429100314302666948155266855468302955054674797699842713665221563883438784860326799079340944042973502046626200073837592204894453627471662213056136537062551657767646501264192778002335045020852065230100895602399343884830708803191545652936717452383096425785524201878069077860023479853174861488895730756311845483454835941719505416217187515736170935654261128663206522501856183384893526421160205771043346427403862909038508423715591383629430459856298553910410602943785256432920727917411607349177540317359522349406171316861452245086256942144413290998405627686781711283202378221723707747059706493598301446529418513063743627611997227273744688937197173950214959197644602939823031868911216701913077981735535287773750937534806013066860104889694298057285608831042560408112848529400606151366126677794079480388138962738636436200522491790612998285395212788835009139804940790465641231116433557184757855195071692187156952524695262750138874417660031879621796109636452634325991114522905279786604427518688423745736037565018387319446960944607482102443756590831892194014552087758451973610972871646936281342244721044042649888227874531426261621754420644170388320796522214387223612285677228065490027535254034712765461915691873840014522141704737071119022511608674292474996370029896974918871767890311310057272424116063210918673178340196764867418730764856465475095560590892815099398232390287821289693855201726043047208660087000554100831435139559844350961374696010227192297900468897933110860937608366383236658246476609228437272781713004522685966687940898624101635753632441255289191987374459825247059544030906925045939168191333027206696986468554861753728025041618750522549605469552666087593061016164473979918719940686415745028655845410891158391442902627502537702579216054174496734267072744303417823620331815859586484137873331820357972678088711758320052910951904526887498297771538696158950985622781354117647209870147521253932334416125171515347917137221303101641993108907641828403637851999479084345186481487693801685479717483898395710089175645188096143131015390085854037225319544892633994287499264210854962407239226814010702316760046808691131885114387896266224911000708998701841703690442330885909116670704763808788337273674370159240910412644663105050143668740486778817328251086209015881355237393726691324244707447345426986219946092199658359344169040556926323046522674796751558364799900442339319070365560409160062219794700520027306185662470705357811888895420246500181024611554050054879109676800123864402767340493178694953800836805222146616942045774374876593294090573427824109700294291198347835195561446354741083998924894430593659507903942374342087079452908310007480019706720971720951645523043424777755065746974746837993606295078888557834719952068117435110181514197000412712149832883054275479275558455159204330316862030279511946891426608675303921689767107875968548610199893175184418267795322206188112341063445991989691017294319494103170005901349456604148068870774524537650760490829967122456123171443213415656141435477302073760073031775868076224829526502625479146678218104417567002721849541195069172568926621448875324237619383753076414006084163039975024347695796340325151073622957164106500711592305006307835611387293233213786345431018282069849341100287909845831291927244169586616273611842905562483951627389175539324378015302086003963391104411362668712814523490155883580316781488605964526888410543115407258485963571160647716434842493778732668483277660675102180739837744167340699380138015404554229994531618130450177496456563204384867454792916571273388622318633448558887080293091043957705027759237835894539983411072530022618681437556910969565363732238155079407424561566347617595106044236093272651860817888370529749504133714856431539352583515437818541947647181532149503879918052976966411190909541526270890063652098174873206659821120863463180764506345625302173852516426289165520204116516053531324240916338108263976763933274977137941581003141752948858077358473646332270819770555433519594157626339098928572234337005332140869987610189989776598724460592718005005722013896527215587582271789611867679621687163998859940093870667103907134003791831463847311855757675428283662670262278660704754766931456344181578985778736850408244344757137641597701050952364518279300302059835032358781437562378070395871464818938056027939371757869018572112037629971106282168114722224680124533878875677697357038565290815366094183603232253350170975107619872474902367917468645293232581631745760792209949031027298680435609543581208255718750387966978113954940751712997723552068796678075089833559814751201473496076001336432722217570168702773808653932140143949741839024937984236292901111773626344749112349595643833340937694478046260452509586952839932935777567878581638960685253269639120698324569621365783170668408829086433335452942837650029604425282664906010504988011254908256068880594686070161557489096234142836128292250275097967209149316218274895887487506822893097719887415529421115046236663893099061762319094852000628131872990520545638276325847340717097483637614248902308880016953637073531309170610404975143309696469712564195173682224714327318661755649161224777104781164253527307120028687676797125491432880047102285148954870491179130741354891486279513580824542449696982406176104826229868903453720516481855933302951408492376680899029459094366604619621725576060196419868157568650548437904260737690165009726529106962287601772883265640007707251298421019515003078989218047935876440975676237871200144750737391149093117412450274467135877770375422982632988282181221429473895947206735141329094699179128804720210911093027256319625731145588300546937902803012494569889538840641054618423998626805421716064465417575940336781246793145264497119402190035159433225392859945576631395640190524148956510886072958282334688523625715687235287337555820944708667905845121913665014223501964385956025957141568951102342716991812415868263530832717409213239685676950011412408686683428450850760099688484329705623433682336271531919465384230739465500455158359801000734591905627571475279743702328413928848935239973730086141709646206188801388870158704977734560851060850086311468755922520719385332834288610614052234174216275329286737638667663087423152684920171098072260756881520698492597019870994242754789910643021527679261889862419038288121670372952116690776634233828158933373845147691605911680184272170286543403206268580792649848525383145566007981402961433107178203632970991394490191933373502326757192772907382488796686717435555250765811519388981416389980132349290566239976666212008321361280276308436217614504327675383162391352014241256508948979723418553179651000181361181164611048568775581360110835409431601835078305295265483503283474738003870689549626671534672143514111552399931894338677895627751241133895383621136845029044267407312657723680427223382737137184903103864814094848310869083012153804920498095541132988718924392167476473346576369660185637480103844235629018293426222222085929236574929412571570721733650432131336943735368790686762493902780746384530235491777749592656785248002435598220824538280099254181316928464734016558967908245803477265638636950467463618899814961937871249583164102648748668034183465831415558044791821637814659343794288083088795275295895052609621089911215439397455016739615236811760771762701121425030691111792608792040788215985034120586480411237938119144611162627510431491164524975091130027001074790299593157441021209214296045297256492015016942553924924756063901268679011101925998676120969376358699353942882858900474561006120233882235771651323668093216137469955639664605873924694624912649722618903700035238407358566554851019768575642961336949456667359509836238513206610794442464778612169622539456735085776590638492497448559789575723106037579966971736170723551455151943721173054923020639946289091778667412567710191540645053401182674722842635866634554251014794671667838774489664702303616600631195075153728465951836906635213860699520970662085461005370319066487436713600569532688490664805528856737631168445464517691909466505770680233589676042998487288505579469681270292156240226506641924354233223697903357077927502484200715295743719247833419822593332708625021740707600920797453009691557167966121426133102159118610646574774259134860139354824236755312018214516648829834590074903620213011393123341670392353494882246021195972892700425529656916269784748719185781474564307037423516132869402578061124716059976183793513155967020726001633754473954136397390877489741954141790562064269929426216981340545003966134162378706020097325743437463813783751249123278513289435658986147033620359358745029490936369952770531568664706095662757560547558480572844292459549976532696044915832793103571471105693072952275843479476821804593342932421205525392183539337277432033208773824405240925658018807522839666755884829278719071184932978187841637883652924224186189974253942259969890136943519466239850810285475985454797618803187144815343544667833201507128329292716981579663897210498347188351812700506893637677712198200645609564637878347457379274557746606746244610552840654586029737659124633470690471857281711753554684055448558927730364707813021419644672677339834590087333588336464519254349783386987443396168640193165123350704920738040791829326997019783041951051202861750600210861721372937577082625621254433561626336503230639081913644431247535346333952783841497596994138411515133432612824386775121308370346386628571365021142616450047262427771899108154578915036763210786524866604506742600072095922893837658346472991380161477071770187713159046295637008160242519215842837832465089400262048063215175046711410745276630262252105459397408859525660582598023332657003798300320488242429535284198870367397765092922486206383598100688121610285070688163624461056011282205010093186747354311503138584174045354091235016923948872438250775149041141110320358327603630138731382205912729989500300622759893843944838500035334417278592382475949018927859903552817405470501152329782948777440399696489130669893133257689681814472888095306372136518078354124516971706793695201066911743379873470139375637310643132411140920959095954980974388276015704368340588463836134923530335057852345389077734009483873499132296454171140079667766660687923459935230051395967671551563366046810742015688344113668168546404509199012097511454305829057480809663991055208400628951550225775975799205481952946784249869482516716885514454284414138948909105404236164542673462389936764520572270966056321377102885542654681160197786120985632177431036892366881140373656694019775916182987115795645972782540878675396091647447552220107166843339290861133764546808864898527723138412546562334957785620637802433365260334992479447253632890515814338217160953264022657513926260421176508568181121499196249078650296837921763289466959821487538668978204465382012679785510861801595449080157150581859008749382005961294042258533224121412575619041287842132770899560774585292523208009351664696305023611499946865501567946853469180483626562101043905104237700079803065878348643619972319141625422119934355326163956445979164538841070220540801581694733891748135567855551783214792459423393795285849641642719284971047519568844996173852507933935730269549730840305421800093605917221695201225039873458359187970665741692736073313926144021573876693489703275086632184696859142919461940508712184411843058617126367093181373437861545868090773204034648275438805091977455406767833280655927818329472873843914662682633667955539951795229623834044573071396233814085670553309055976977055064091252503807372768940189645475327381935502782827197756247082222812639289010735087273767781862642021393080152649518993237874112290944665191395468537881129050063402548633960967759271495815047498213795790080379541723188673081283676134929741218620845424017943575056106159476636738880163324962654567008003500742227964465578351169097979285954548892113587998320763952158444431274743048400637781127476327096671393801846107326009830012516773357463910266329782227285879682890434207168023576448001944496302366604410908473221764294130620913796706723961590025174863941071751739942766812094972486036048600540473284878757299402217873503832888809282529594975002453399334131472289041898691383309696467976835596758475728615203111666585333243461751619443337520135059446653785504942260214320525162979462954432392806463572943772345905729650947025904855172000902797912088191235634514897434263942184529750547987360955325079600548122005476350749265158038199109326984359269821594059079540075703546531341241840687193367153070537255243652748622822368070535268207384973927624341544518489681881298671901023170285430621785692407326989486519322896497184701192885797746436406862030872519758448100507090729932636644346396089338154416469133202958020403280131147550321762355678396599080773323463846380337007562755332449589435197984309172760999347054544744681556850115210434400748212459995497252689002220567879496718388222327405487321074755756350159136453863526083394806244494683310821767181591000882268790112236839863202321764455840346700762975612594407381974803203817212389583264939158398521261545039398259281923024114149619857331519465845388901232846163154327482039948904237681985169791489158076548079831669202796226128383624723231620197091640082195031722945194362304571893559976468419389443878999219574478825029662304265292403534095968487194727491511322849483766813226285233593091191329308303791265460044395579759327120818743351897798616682555898727755180954677187439669313994944599741794605195367885813155868348831799603154553068207967538029725420111152658011042253915563570957648742832086599039071955746864242623879716302754858124252573839616732538147658181451304537829808507550980004629889748866688717016403665592006282819644809940286454195738346165701720066013427855068675070118748834685241187685477385076985207466242246907193408778859963216180415501471529837825318667666744135871697667018381522779161923653077080667532899172762216560733019619228420888567754111369010160492397713742974975717928394124697510965273818761204495183313991051487417206838072508969348080632299652035654362340760304903366467450601133181243058254298333800325755861411381819148291920372872941437010975980214188949947783512531363997274136084847728069734747993933045993601684000993314055282956042696304466133362427091550883051266328799880257498869948352649400316119785486774807693511642939884532645834353709544806443809435822616907014503384224139191888736077629041726199728659266234091602085944040333236006855352106201255214383500877411619407962254652213208279457042956455764610678307520485210599984463698367777534340392196283990039375145316073459468784517687162590623525837818789939894192496703038399777329414437742376614230977757408927357186929018363773184863818655451095774851234541425675838649284942291074060202836633045454410319959916741960764326433730883192060567596149727286150633014972425579388111954373943285684683226518965766777528992162628579294551270685199551184469112585235206397575629195304693038642599800021292948536712569549258396431376815866898963857878675046789692660857064767192079333453065963507588702458873359944250946169734570769750758333696438845363160138788872333097299565581694178853089804335530733052894556515974427436388671650442962332095051966305256958624629062107760341975316269927494129174761804982871645989867656977051990957418148010748930983962156443691664111235395618021689728195854090934683330641549552783194836228342537761343088300116262021638257217645197870321342834929039489230919160562810612577283256811364624957055461303508183001750576448740983110106745823437639537565419923525614674997731747647742111253849139879170583501881322075864615590297064782796444094142292908232424767354103347321419236343634278898689470356931230469495835306278223074759106119619288992518367458310075112682147994702597405148895275510229471395064530091198529199242195370555823485459586968511016583588341426030955298543684426865535045656448993636700498367809101397060774745351139653730629682771463270853185719293730597008593952669952311870566569717803693995027875930575451758105539036400567707586489997380476768680552836387282343900106851470389217204679916968830834317309393239881974670673149844245261020209143256130231268795341526609001116111954237049969778872638921222606867461285993643425368925565154965249823041338342895942198199040934503920794350761684316215496654765873499906176040037488595590421021635726475263115392737719537029609654493045722487477885996800468220635372965797822224651564463320466224693097494137293120357793005332105726733738390100013640448217313625884490039007963000769333933571559933325702915509904064094451608254204743917689807821279891060497862085189754999589096840183736445061546910878669472250064258344499483583138100506726404411089777352289918442679655340883375352073076638931130327464617530557469330576330488479645155600520513491499353299342182640197295671380116612135876382510436416800346494610950632560008882573576480996729402504597571023386252410001740755696355575238781813226044441364628557489629028030351688843233032152180293204246511492504535239645662971672041797167665721682992946906844372607936588151074132367956251129315505186644888703180984736431918850931856207959996410475914603227733674995746045211106918508364501767191759141740798262629831629964520038757141088678039491351234134846556882796036755136369051777481852345115656847690862940442783223246231848122522906665993216627155677856346474787454049482193619260636606131644070211409673245058181263791523916116488053389015650419823784373822057079571278214112423429424495742834146007417008451106929176524283364921089708703751950496091779779065154320075245848596732638834997161646315058556867836985587326736146235721531286236155497358580569388065567509262325943677069389015647132884066651034506210647913920189077653702767188550804449119416820988087143452817162790420828639328729029641367006266670735019443492242303239707766227156889690415837720414102675372946516459798188378583129976085724357816295116912031838959206528950861537011866817629129581341910453735747916233600766666357324082121787951034320695081558543847397713295485245752446564807917458977896023721085706175090975516526015095616521519542654602949824905973163919235702829978490347525074396032159946370856028743455451056320848574948409392530583114892200159316480458342831456409385580819597652411410221135530135122067684599567055003606432905067662255593137300249097084965575983283040271929135229344438747673439654853540653155798092659335860040707632075324117172191595981329879107739263541449695181761817872881252255032148509327731190987229207323980916521378930106857445929266131277305667268172363472954487907797030857198152230284389300714570027182978330756558238855781413269591517763576433237939045003819810904340112406197040183327890468940009470359730512989450606170519876767994620669877064933816697453425034845666059155159000422424123569427005455904906831458933713240647349980147412470329305367449026550526007872806054211002313743693519260139494815621604484154811524097907725381817788480216595769031423489716388429320502222178441014444738120166272952278930559710715585596362892307118198152134618442012423170144572424809480553556166922210751976097157869423211858126416446708030264580007658812619043968177074662191102577164490877551903672427163385770544477581679631995481159164199795368857550141113574020140497739442249522796385910279824074009811562208641279349249240926685644936041979938122837803303388835860789116945874855766858508347714791165758139759958685688547285794569073406217458536323955096395769411325153739469903750318638295154627641798735522805470447533897250010967365503504998041519455830237833738431563069054316289107076012334734251566777295159059945201708897962096470751310682211690326133111201842719543955027753979921504145929074799934363272243546385035711100862545429555801768739346652276326203808312733437906763252129508834158477629629962573354086095201192235980167353512560271161798689754543316220344625545891129406805977787616044814920683574768193192049751498826467251670991229090263891648126850032535688613514494677712005370519167995828548373474631214734588946805618897727357529791889697718682454673451001705261204375598644609632773739419767627772469465894292854328014655326893539031967390026919998919914375560607954544230931509140275475235841086346367107643020397503914447834792723567147369176191144957380610684074251304441762712245896778655001014872509091699550880325158610975163895682124654242100299183163372517489886621480360494314511389639372252123554882278499266608710492609230040922104818434237485286856390966560876700464268894394148021531324612280400651990442281289718806803515626325365356439847901805793466644622084124969810725612151890352638610330344935858957812873422104404892372636974856477367242059958023977783432193768719295792396514414547392427396540288938594107733431531134212623354653596645892809576168738004350165192043151016187550334995925201188886568137150579755904608017087581419363425974478592888530752622121209208692342770250335339870261193638838520014090792089704024904486167294262507520105692445935389781614730433953089571111037798029377011780696107829713648192769947844899963121213673969121118737774125331620942552238480945250424741135487459530910974871639180453926254076991672729520273068433668586465708516234755835708372597045732418862346682827552009196164772353699891323149845797764548476432182360686105335955928888925852108035653842773313730651180829407096549332835140074666289498146546010698211712304695296754512215481871239405548668816524891236995061709159837096837253450833679661135914341970775967859057828728483199594509956656714174756997467974888030404264283519321056574721558875487680180381260560080215177983235830988458999555772170612871295056568307228323636058515841656463787397288852790738244257626817090305996139496751403545140887383209387681386438495210171148694139040820220940194661331264931615198754632658344370545354784265256261154895954714082756150961274097978091067094973672578009100394716935369712801838055927270994928631521494476264547376785880862029392029981161492078386587211497205467439590048739861448447824196937317688313043170094956615734757670083042544655569277290275086244464985619115382894938486190201320174232901918649956759644280969154821147550817307758364311621294444620378584923476185481438044724970796911818326978354547897219720405727257905769427784904726692158239862476327306791462546811258189888692147827692742413993393917968464790959770726300171338862719554802413392604664996406317935608526160962269972528140009584281353239014389515849861586590792487830746052947839012663813221120080076474422932229185821910843302427413981027826968028365209229028313776151943513299861416552367030295763796471292776239583800597538395161589371907741732666506853277748048059436751943488770042951739784611127282589009430626166588944207301905622022290507491255696964146801869005851442537456745465639199818687005509648587499043579465536816294156327992489082679919441813211312085164639668237467363798146312136318183568264773101491204063627142410818543097748750478228473007834202802625357528993247399317301773244248834892363529469825052422151255080678380537498003889287251049845925565333997154439530622581686538981389648704126005191060816483328280018894458033703135491153538120507432200231457320661213918661961509154472131541799026772512721299603065553264479324851869394179912546447933077870114133193161586759449859527183009430902502739810008448506400627297068078243914934767726000950067375462180329443132293928976142839407479672739757098014933677869027873216435947774242025652209097520264696786083799635784084881104171165572675717025495770009028374778875049808621076650708556132612646501163450111655933366961950576447514341269813905091696145833597632398611265311951613067318703622129906696016919862368862749684053720573675910457224072563804199074846966166147955004173469424640639577374746611848356861771246275690505894384004045364230508044575734933650998468875981356312853436578022214924300805771636533493660779289917711668808898290581045873552330126000098634683843726159928698618273786440711182576949150022699078864432802404067215334338276977402279232981380479030263626043355873208941249484797573815187614989006004499922855898344949638591075783817373138838858001138702223669860374393860738707635425019750267197056909541828073907133732901540500441681650782815785668294181382077800305675962401873086773403663088946065270058382675655685524603138643673948360325006763939536531028416713654164263931976790784687566635707315943633969576266497507334542361742974314349704972232068194629641372704837114186453171081523104710293068503493618120848770544148375244526342406986951087136507113098521421794276392495254172402920336226805158207718168424018671824547259187330258643587384532462862366277318020354757402659379268071848784218275501565591211150695145121656357149207368748508778669804915887548178136623961286629612799816814578472067246579734175719926360638622692276021893605567756957268681975505859995652933541255205137336243876903314798682151364844100814222859132235417203615648952357350182115044910107290645093445882857550511017035439479230477029325962721948032852511500000367765847862609800778255769866838440881851844219645467457169415809598841210347303644916376309590512234268432112105933759552802844398105334745976570432466315075897644534368412738679415539253876046471423784453131057590794659819032022393466436353244294659385459552706284615326327483098107536256085717679656477197452676223693282808543102667782655720614380779279340148711020574005423163462004831380792916394926594492301971101039763448630054992492697075772760145941499149116737790154962378274112070461595137945794270510009764679265861311269629810155234782188498647331725886576566908282708390665730588325843040511561367054639586569632804602284823958302297482984796842653642636178630978550920867056540633524614158343431753491650994647583426847593984902798049832952836585066507845332217187368773949932433685617931716203561467747167303335508710784369009368151133504474643734472536059800079612324750208283896782218495461115008439263390825806404675259396866634924567223662434564147743768192691113460585385336024514981418908376289922666896193339598628565392019022731208099109704506583187822000849660833457544035103786287309225756781991768123965561549017303838258367051544673945286823216765504184772837177800917993589579295517338930049542473815285158750800210624138088795891546045644933484167134205391483516228584651064537719857461652245336335021019060238432303688115831748267785292370839534269625019024482523589048401035921907769050217722019698071940649993780877657452553632940526080351782357282735761744717141645065661160667091400475975647048046662076347626978551853983854006153502419761262202094698748231034347004197702695669376380460524755879018715498231805285871434857718794316820257845268348080977589804254408797395647169197938482408483208983874824499054825604941143478943887028745287477750032795468838983327206883864658545862487985594565655711255333735273640384330841538266794788070682003886410638536648503330326174210752391310209733848498814488535682183240204386374427252437877151711678232445366195623385577888726525272443370833066132602003946808333891403520651438150273498515440302065795069491345471348777760042504763660986280971328785720584307064347403769073966753563764706409788338002198535992506466624849534363380435073231384433204247854005854003940576637028215025505994607072665338008839725196896754864411385819510360745608592388156176622394228797352858419880043705355541388117904371154215070045954098543912911224121826271104460048326411804472698059623790637720991277433491820017331417680582228441832595464541959527947682772118724661728864400606506802360330275880075458772524395109820477191956502743459503403758611661429130849901721479234296078032214273229161560623734947527805934761018624703203716202526743761590439542263470307218793429458846238523907023177602962124839906003887222683048938691390515774278447137648844374781678026680330929333129958446085702493840311237380106017127062836117721344875182743047062113321476769340712979828014147113405221371865499016309829587410731946219502416234480111325949470566034755492523703859744305724668249547672198017352289785010654005202877306542314713073726491724153565372588917734081124979332447477833752651643085175064222061397890506874120563607153487233304972021698315223943873340711111997485502328364661781708707577342414498224714236381237602789659959259588292059392585661083905874645027546659817956252655585270409231791482769150765573623541900245832275531091997889887756914111700730477038289453180494033335333224324715259359335724648055298023861921948201987445444363808991693079644538345437502833586786260744137241559705585709867900935185209443569134027615842934437441564035856726419291896505034444117294394533982965645625803304278229738707691480081194128672501668323550156518804956892355106350584052890968176083399059939108247969565817539652487288137917593669977532732471109847613319261683348969443357262223376938291843685441358169438947197931273145691908750744094237635946642729418781221513558794350166128735371862854772109093467903005528479482667921442043903046865748342748117735885738613941853189259245585623898188807916820352538226104309194735870264554984434210725887140771793239012484435557012793884468345267978642740015954854090281963702498418330394094851010722159641381957805967340818472122394197778640068890553661532145553298839850966873336309448862491356195394335518970728873915620199836339235686973341346401274845270396162753992379590157995046292956207968814950284574585327689083269271975599942725029116898762727182158947560898877485949332962579182756657880766980577959311322789406864487305307744986010830779923008540247673306347005749162044609238885294484710427762939709298817985043953138946885717789535603562160059480116345935602953582109695468722736284735122139280639956491080005564208962571094575144153050770200340773539460310437178119420236440648438303813353003536479695851158091249810687974490917569118096027650752738084975640470294765960053136241110858874142825983113859679081795065094444579781457682446798573011916724366526205997388097177179624883634565013388105521501580970330288733847112781083935991329336249099750495344272577863168578238077807406571840830040169067516550645568376707331480055838085944954347521558211778356831202445266358957232912893392244674278968422881094648983052836290403246065230841710848204259475892348204316395377196347836679723317398194009731220673167937652072478671348012201460560332202189564517478357781219579836781712847481427891018292700700358387144256906120968501758796925375321306773934459710319902786046304515077874230514819141669089437282947237394303618989815547880461887736974831153064930037297586781995237570024205429560636398252267715201933847368655859756663915953181137883252084940553725027378235605982611602117143415270903747306619063358228585197154334945536269636992589973723756846346315343850658229212954130754262519583802368482233621525201543002658627960552480048564445356534836301495875586741724672456459877299600380932794636911964564797216789996111290976907758203592224402831228639727443716586979677227297444628557139473295293654476980956980330199710422994443253996477975344589360806584888931742242329497798991751932767534809333943781691152668672067904598493242069787164619264698245617986927004865809015410242962240484157163702924250075159001047236568883475318648007064645330958791203798278461080383259573230959067365466281898296635888039715423858080174878619182295680059042740404119002335515976501780116775097610367080517477665587682656514227334448104104901672222801177885116965015681180226961834660426679043464318407066713888344323651769164935957233972610440333735254393798641829213249927978526391833672085377416141475020369110056518401118437154440949976597490454254056117646103251365821871290024973859695408925741633187017495457325481703669918137299316112556356751684030906122008754332367213999828233268292347848791524368857910965199107376770614922924821798222106995138733159288549649158512973328144517995680266680386705656429775302468227463122830656230955982904856855233616343414098230887044778485021479886026348432867154806688145317245168214633550900471963702983242695518750361613290478932408236024249279204999005606634741195280619771434446820404223607059206020478075563413537380018658366565213396303288740619269480792345077284625926581448700545811047976173061573857642566594086416715266898257021086673230523878313659642762946739075308269876328554320068365452976535111067462151748958931987393656459540666717028363924128230520601542193615664644579865863879177958844671763553061770349557859822388721673542507980314489213069081832353556265496603030208469718787240532117036509747952429717743054939229388472123223041612672566072397924639578941311614741031944327723101269798928320395806183805738037054372525667435540876312937126419165983597546983275372341348557616648366057950001264163712645496237588331174889555898711688366331140329572915223917885962135121369492944344651187501266417269413413400240023436909500366832562069769024400193192418315379160225589864567020295257171905301998310844404439121983228483824023053846254925752765050784228508766386383317790016379364320661122178976420480746682814966632891402237034675671821812173039066880632237219768750813052093441808794217215364451227666747477097497475463133468384861568126033418115860894784122039334224535070348513072843448321998335008735232880004222873318813834015992920988039233164335942009297502384409015471338931163947438481754098648149258773474498620838314270582441558817922653725415665818740686403271083845839516304860236668745500777535348717644241430726008856949918240215689710077271677838310109362307105856713908319634304639352810054786607093478061111050386540943632489188179306333997585952758572002025075277888271167441388609413270354320485051460940621015224743619903217231129076032465228238601412194446950071274538037881150902644768685215928760353075689728960190571907438028373875339189790864205445193080321209979908460977395040892022729862141003431438217559769148329984820639340948324937502146515419402549840224395955121035842810427148641645156784387005342649165738087633537280679884642083178728328866351829967820579419181987503507755238208744134896390750207490936921095388207540155325400144260810345967742149301862483930268347305944669750505612847626766868812523178014075961585951364670601558774917092717264884471660889832473415785239687313802429291304218402863620599177950539418066759547525123558513611072019480161321952416810144917812614784868083594097015444927260973808355683138555660687317198781465080468622628589813535926806135353078923744979701735320100246184526801543351408789382157440232165256162871094511839441547720820080294230703573126981054730820529627872526140538628725250930614838111685816814638160954791289337217410158002730611574679666049625464392094452869022362686060303144866880508989713923113915724664506702795131871661302332395584241672923772885529360840601873212045242570104151346078059236806137786155869381429868007491771276461753555891410314194254328417046511021279466485061128842656510202573164553742772852261164702666966934159105397517446684869556427881537470004228735814886191224193578304095625098807708373115138006713547761746549419473685401160232123146271736546116635300725352373391253793218002845495343813083091537328638570050046115032935990058372961171807645594591005475091580667678047409624294437326546016148446839273134992971848275256988684210552388247896389953885292668588379389594304189272117379367085654454086043810320440355849847500385129336264818183834494320571717723930454490404727034580388583123917558797836109699004725644896005457708299324708878632975618161271898304447599091036412082342362061199231979869236380999304773045561433813032651703641876558887418769997209144296411379280313038327611282617993458941517357491303807804986618025939637727645133682926548556033706531603389544125379306930069519170909936944600434027870525103401305722106125173908612418045952545564487821988900271561722851023761945152186027157277035172581662982681746336683774869887824035793172741175027267914397100747201622496630447051395727301058245516938623976571287924125494867947552696892889838888336563587836339841611851758690214980836026810974159590049978267352503125689324324029352313501344878364619936421558470868069593964358140923703403723972836209745453353152609537653355633957596415872538450579405064193846748679338223866054072311228410406410382241590493674318123456924411482523549630959430138371867118687076030092862586881910314198194050885830002133150025712116285424481826529511988755636303793827792871820959887088976597113172567104241228474110130267866206506141398847559054468228494781088773842952059541953160718651878043952864659490503467024357091769567505211248618026319533581148847341555255982035331313939758079012004460331738409516375700019917623539871470918593263536017922502283949482306783014229264862542824456161138265757475364480383708054832153421773067795445776153592860494005820988682319265054567259702273154683530415664327298037760677252642497225709027062572881986106819478545279378322642913469409643256978051964287306984399476618224431356295002184005688747730687820642264300183653571691461366859223572804021279382686976321126140315604062024978468091779491010236439711281695589301290704610059571012577399901132227589201941091603139839255423982172326008961577743549056585499406071527309509669911199224701751312491456576107556107437030709566879446196302184228358008434107407727665399761299278221887672078504610909471312474935217272231717805673282729168652100965478828593827786333633281045937146883483613372054993782008262668133929820546554258839318605239107937376366626286209325457944488753379905364803167000624740493632827103760427870163866479311858352093998627639134423886701738681587276134832998332241297689051823871884131200672586628244617821098007965516978146129743452150826280650647163416671018554079237893169127164137078500049186311103881031494709424692978373425737008566199475979965104190066213761576594669425227631113660505775312973522356027686905248708594474097059133774208568479972291291504774198706818897955191059681564460394226541461562758566286297891313180198766413513326110767448109845077284928826791008244686419910857948118498022321733642849033688294452665439594019522683010716953574804993537052692938820052077439563984611984283436775284930931019233692682004215712839485079132614335957880317228611448572811406465492157190654098565453751636459514764704655974330059927737006349292832367332888444315520642712575213311848232848797544122648443269176573883993153586478123976949241429533934509692176166060752412605964201129756958015073626158414501244404094836513291617783537848868762395286092112502773947554110464791268460005478634914075527825285202016377141985058094774221665634586965317816328386592821315509149910087772452918857853164012007822269039772365870548481732292970706551651544897511876101369322392753278322875804160037533794355398209767473127950157642793608686121717641503059882900259132878912416017318480287243057728449539398083895486917483578603506812712295995738057707176528166292114968275863848743671649364710517548030101293270852899044649196927179974230084711072197278615683356954361104627395209726529902841323217159568924005276036178022079841763160965647002462263051951489783888440123866097189866205093338521839397666732412673355758769803805953598539269788961199991333392784623257427298243686338019710228461862420457902728012316773080454048835448976919489633418651699514749443250638540760986904386714145144461355054433414276653612692256697621489402582203950955146678035021219920671372348381519789791817883729874970262197112971934236896521104491405598783685446594353861489341031465254407387328859541267384787783275584807333299898455275899526673889130888065243151903054603770595371180549340188302307478647557215180310346242570882776568565320209970531847826994116302481226465172900488081127688247788296546352710564706962747081779278744227889993772051816219166537551363561494807658149320307090452900978086808106198819974577783794063220163054732439962333072464515591220992369515072477032438622969847733680294749696720588676805810310539890717200900308000177095678283206568943727557940649353392106182540709322755790670984969855554654222660924842316909965096999525093505736755078986050062022949826063533243584322485549070111345895218426618451692947166241367080635865776295834946602680492094233295286909657702640812054649548718345350112085293181461175187070797586734919180333478130181305199592907181003553127710072589305115560900351751563178629395164276382359062424232246962642127116134106553547923005719620508973717425229081380736948074881493956400698575503637315931227514150630034616088938653425483327366525269732558621971914183971702251693659188961835576357503237478130404752369457743590395008056433726348269692155993793700605046571162989413655530239002923200437904211430233171963814900381585302647085856078673195929709802749048142667217360287753924263219908111605586309827245024444163422041713361768306647312613438823878479753573410615447337610641604509418708738529961453087620371911263578784699887474072951432892101540504178507565862301265662715478052447769594996673167113278213219536938543420744051673703149229785189799163102983073458938655142640339661477670428844898442667820851766274004644231077311124024663761763939065227713528797185890330631894075930441372067459826674457353930890168787580683016273717580987925340119573283906189079333301089967427096485026958678894163166210267804407947626301185565522969000400803488483564357194125748678916062801826654031596217093714352918974577466534435983760567962274686642156693801719345771649723160098066368771635524796091967470691335208128977259378348160684667198354343608193306535392922397970968201932967894362242306745685459439276374650735581929534320512883320003421162369560709854149731473533656646950404988886049483503693909431472199282207482663086552441797620822770866910480068520777276919450594027218005364790195986902931954118823467932354394865403318385797156340349173844745668864785500251227001147438268951117424388561967164626513533894153410334773537316712272368248058661421517431014533753372386567862461211961181880131625673730374850265896714539577621945446322541917805775761835410608839896390779818844087997746382485262800479799821335931686754597144289941078684327269345904777394142503720073703703906540920359971703788104355910464466556656165120357507832455286740928444658740421857308336158382857143575554048953629200878369562240945286569995972278937612190717382404185962637430709736594343410996965482388810646175566955709210817694160663163661984966008795927347592920996429872413674506258585926149031481770492369318146319593821183432984643863049994045383601856687282091912213869483831403070633027957281934619476184314773738778119258625061400623794760894303722072386613616158968461229217007581348639916206161190281750919765617257390741074316584536839441273071677872964036340023575344065636663983683623698365639984254103111328498264818098305519848687873857487124570169757230879348890359710549469892754734902550949441452191074840724628698091719783628637890229453076888654368983619336944163739042155561751599626789194139152372117106676130649969372890443046095947536521970809768223937299733542140751943144330282783282111388637114105899533848298612810589227474408385286555786092589338057083923083841272233606477330142337079566249461650969749785057463885894701448621842590884747944831790515852492304285898472644086591813345337747843972539777431383101043078015161106435505414211546609218944797303172678613528918607732411627487102840995101291537842197153581220415344956669330503453474180872703627597415132555929815968022218616409933015401060167028688609983197158116340970206407315178368235792232603659910195681320857554459241779393651656654462552061446662335966314031561062901912793097357045068597071407035737217415333316489118047807117168533660759099907569466343091023029953693308656145740154313126739698083112770361436926362943063277252555621836385919089604496332900208425126740569756538818907352655730511626989199011223159348581230578664672921190768287699211867225637978507759086991883326059358891954695232396478399184138263993244828553005767067306062039818372019800495222822685375997560942860859825919989209971501646958882775389373550133958910879679809255190330823728831132978678010169234670884851547579199068747444273863454847593015751166583377666279376583784271304406401905285836322685836682161420917079836791725582282265364110651870922019275427670318180575695466007234142029139276653775021604623759977674902331452913035138834175126614830990534410357755935455856438951440398091632471880430405435911904060117165781594513135654017462791474734919258180884010104486073417455875193342935636560530575590283022945504026018404641710365773680661228611965945534746834894070175639146589931799992285674697244436055395747056100632772785203787144051930745628968640307278021356386279659350079295800645460639128401953674799873922734142495348590606180935201815719314077057715053725092597920848527861885953116873994604072818031388571473721319553703111730158029414372439943312349006322295057886379980609107397673042586231399416638955683556310177846931491099244707951100888537127120260821429510805311462211348077676303017407682211658567040142156237124172896185066636798774945914453018676183459900337477056656353385742795993302898411021427332919191442137821075500802853274266209266744111800849903648559173465133604142889384975404179680204097737332169514519617447699808406760317181067067332405913701004092575686932380428420753413118589218047659760971377489719055859839699222178970975073430455192187544686875823208056663283743008899360822623280815607483883460507150046812337509017240735078212246547402726069573681431223494989682157477956521590332415846972750642184402994677763741621569373398443215513966635362900549548413679272110839972663443226642759757957940305152684712878387202127274769860658952945626980027514510082274345801413655318724440107561243414043001965960372754316893699514735134021755688133071158778027221325286280634925449848489587765722901004939452316455088847208689798391742637788556635398487770531930159948625757320008793724065426026269026669617043921306818699471804518600354351648743863908765417975211053930993491059541145689994177657944431324738456292208248829328722803942204698111311552144649437468680427861073590638751768280881087651851982848770311757598141688363938065655678932045971298630358998530461140214893152560725277062691304406842419085766491730320505812261002102619468946733886879219869128367929359650045095457405703066969710613587162391747127026590773148849813402090994918471390514235191295584327045190084080363729753094364085314517035139913534490025814407744384739158014801758646342041970266040542756796572989638913376372318971818675877035291200931829314459718253191457730231594340742042701650740664462983524220104311182128508720136396569268171681615269438963145426421181048711052619819388173059418756923663097690534656890965010579497514712691209919464698426153730214113172628091481193413838539310643620817329068800245903520007701393500391418805722405530684873903799903481119503415085313191661560274594948847426493433020604493075222834996021700954804652891313480102410942205433027337587788712994061146507716645948111807086277576226803914779876653413264021073800144785044554535854173967667294945962748692934731595820226201915964102037436032102808759279800262751118055735858228772553765492359810684307527049138351876719891446442837278704387345570819779354858114340023863080025409346508006074654148843502994161258181274733897370257461045956873537610933030613288191586052633873215255419552703007564781351623625868856281029325827348114531375056686211593698187173694210819337365300686406917186803722126260020679706861847889313187395058273254523914465722392865636175974131009854998790154670037115043458738629519157657093809251819449251457863353453855850969166291681501505024849962096850086547224000954933826124477456166655707104733496609944976331231327865243983351256944960530688834434787544649491284864403762196192733956090633958341307341917593158415813593099442785397221506968459409245004821600926243936927882123148738787512832394807334324990102892482861383995428874515806402955065805846535610001726455690528638914487551836940277642434799540385491111267776266965638540120318764380829571375009826406846672013706155101368236922206271711278757912156173648201658205658956841726162339049973739824053780268776378069486617188415565163862659414171095261548679505956298868498498816812338870524576102906621366891675062063462149706488342936278261903539667505819588480948376994320921462339155967212978423640050641352752259384480918681974331911407394512329326548335190017700873755420846218590374110201136769217435774529382537977295873338175702705628332442206566755953391757558085342491987968539103976752586273999691707296185154358288455456037108024482088292316505449433179277346214359384488054474021026174546037188542256940710100725349476914062793566269099633566136388024171529598973353253995935101111805311580119062023017312317389153766326051618274140670462033314771272675851138114721612066756833218482594084202749132267899688181926765207367841980717659493984569999496153430434276285334588740244170741562331060108258971001128228522199079607638044200430750926647874115656560838606913790586763681777079819053187304668539288561933123268740352446004133185448855309874766189479352153086998269739575798009676426941948538611093928322748207227529918432842293564928968885985902662648561479212608188238611928982721203592188667611315878716766456114102025603561505275566176703380779590081993062908749907251013317179315827614011780513796844970741448507653113281604112215951188804083327060424210327898421966922619871061051151061360855172287874298996294746219153222512757826980128245260633325389116991186915493859068901687438029022717743601694654904195052854876982347073288804999986396487295383244497109069383677906380819931268432856804357231453675027562208051215051838228285500184944788142348636345563458376520202020025026181837259851356135583748806384966038570676813110805431642238546110882280133796828306005097302600524892246240063280126474097569169035487150092159371354152622177660973779985257304646321525655079846242832324313130997131516707105412433480472128412610989531278024973133109044644040191242733320422488763775085243478757570951598129320287259785879234485545433061177463464417893834183607733159815065525497500826418628547279533371689919343233020968363904757691198562923275664556203109099987052977201768124479082625871265130932561570852002712113219115512191553882044485451083295928195487532527042521900389343559187921071870325382401661629041349320312638188226831267419513748438296877869297670148014285699478234230799369747521251389288632231738825981558976918200153618233824076934098379378342877731444996182102652222371601234822846428550225254215269376273966269399001762790419420713872776432493875342818123409278971877022479858920290584903400768050661745286569496413718129947810823941540065132913267239063981973393911136368818490920105854411889497438219272337007299033812579394787066113467888799799036220627580185168504749946544773481490724006298964236859879276346188535444546398761955709129256129724220801707626664886468222306034759443671084744169334743400366880957455797125616280201280799368829693259901369782167613847562856544738900892587067152194278175235435453087920018410521635668203418241725958854591481300584981074126121523296427897759438909235178243794878736145175291148545027554171475186051212358809368217341715955189937690797643878481089925787873856273027852063387249396887525521701622985795064551512635763466066433851764160260612253909029652311878809808798053665979541842987620723465617342463337693568239978225338363715840119393145742382200646132482609881030739176749827062810206194798193159853844890619316596251414197013372888242291489409381351373984011292571177281791521108667693347265145603406381000282894935838663029687741841151078248222123886679087864244394288209445748325636885162532238074337043856174551196271558565801285000868959514693479649593522520942236303303391725727072720730009543064262606517270881510968495255480719606486065911609178755988483437812499272113055178167091197320594771522159624606515901595135853542575927578345782138559232499125580690139588404369784400473476570472830568131475018303638841460602719458463920088386634627941732317836060066844333719249764153035745286439178940126764364814673078195181192579379535596706438355276215170193809225085209116262930949932170982540623018319563258027049883449358120157616051705022685739299465696901761399684769756952963498369972809018469732152459932457496803365158873700596189968955950645045295622347469108632667682513870095577644894794255629759244960922312892605012414927306936170929198666604777034808513146775079363570786589476791597463061838089695877939222497889370644552262673992612080184583388512921288267619513569907993812560547974786203790394426858197153034121185178762764054143569847266642548918241364328399534468607551891209667232681115328115515201745575131428806729288799570959650204609006668775974912486938750979965897439874242104534827975310611976651122421481978938492009394202960321454168243092661313397177386702656550161759967350306257891767330242583642881924343836453643581867896375561272584934226033243822467267061936803266001482808974990567240917128908366586416037936805744240552182921464819881556435471605530317464935136370437670552828217972400405985996659155061263245860525245059351350666667852532266855168616695622030885303985563010855592350910794897770379186182241614737117331904539416225143308446942220887206286196109464916975400648796039644518257359574850812228621985304017727338018886279473338777910199606835282524283326671977606018681866294803395023680966018469409803387342564627828125543523385319533552549615149106446528941963829167120346361712980260175189523859623080273749179183007437908208465940901327895112239236540776007626025465066517992289228772922563488297921545977023771735242095812359300962369169095335788019443586904111992569696640700383869492129037032942194831706853745680626389555212387601685179756988249264800678244323469520057788475901019009820592727448541181277451267111327904524764948036145941569765544381633779531233728079856650293734560663881516118120500442277273776398646683096533290506921436504744754899507524173053029726508796279477323347201950750720217020457537958548436416175305146830615980996207753865457647841016239952372562680198430317399387724091281620095336319105377061887042041413606518622258988679689886059308604949419440536174542345157617217129384634026308394726765308867056748721455124335662088979079156053691440096804945961462898990824935874461546357795818099999396519616885474360827690094908295163640077451187112525086751542065555417963422878901723561584989769129792488485364259179155450130720728456527398239154518029968639750470164879013914068914564688144293868518239318652302266101397542856637081717275824588719981187045727646302243861107463001765967089791996424706045094073486535754976661554069771222028451911707953096494341732096485713531544569905102958342083671451364415943012160135043788534518725300202462549636114584374890603183208039130964812255793393825186062165107002091133900843598943682016907879909184573252557634380361014806756514715923231525720987362310624403709144770581657794773094607072524315144285141716986947775643454915303934780842161647157589695492379085225077503736162824071609526246715396142526135035922275646641572715967288592056662927678254335126237520063003442921069393929078157130748976127674650208047767738242160555775763687987629976358487823795537482228127216687925719683098395616910170251447347584892108512937058784583215042290505515387798322720832249377561288455339563726055065503742307045038444454969039649141481922663079741975456236930471663520003400759808643597760140188166971550868718884002046677280025061522247014751232706457260562674609957854905436557682609274759841248190541488095876519144490916500093798532137402674933222891839146502981364704763016691944365908160662847319546385514430699499844176309030564237048590646461289999986838655111685704678324179463924002523507097831349947561149523620141035021577714399459094297610624146913986396024114920449463645653622703001089586950558876303872662140882856947627092857542779530364693106205394671917775249107195501584859985834844624814810548085471803872501570837061110575018456219343135531215284572019788664764537361873336478575483241944417889504077335033367659232225616113839366651847086990012430915262606618802375238408327601780945951265438187801482720725104705485458376445247030394567888217408861265784783132093318784479142696070949985645931470747119569916191981101341958065202575333785761228605103037549383512546158210325218241516968140918770161125225305188867653389891453908440184886812439196178686048619185037085124357331261674708687677035586201705104702810672885842806133832479579217013199556258803437525408668651890057355483423867481707131459914680871271473102412495581656785772632481150410844866534199922437903036118138412070726212324480798468072211817346200642833280815212680794723354838618612840619713717193040283922838322444521330556431850093441536300644705090168385829063929588623290950229119382620413849496564801679218845787949997637512711534163087170738046802560983256435444269266312341572285259602821392490257911077630675503388322732530930537377006474645769926786356208459304369395780057268626676802551297577976925114346649592538938452016925168363013856502570369142172482664148456726046477434815522073648231700016372887726829816459994037670115772828681984253320260997784702685512062904680066387494929400104375465465738346182468258297225283878232213296604112943268043235042167582275087796437659569852218437071238352175988556960574178905938213429777064630827946740768539729817725583296565452698540213948273584982413524940384869599471679001600063244287822676596662506546344738614849705222889712809995835545632746639585495552180249529980531347883160041055762471527597941908410082839528981141973573153719004255759309840863233720100718679785924337845168120995013101860587510362818079671182167779269161911519065610759740357606450019655739302879375498429389647479263502505328542289468713494098569593826805598878956033790740274597997731482788504407557439636808771816996183905507542119980365415022359288238892109895582158180727654354797763700874910562579597102219295265240196029109936660530852374849263835868997790969604567997506894154012474026492948932364351884297848873052771554835708167417205694521950534012960577317094386859498480622316388989972410647549432317363492735174277563286962045237899629053931330354946485969908137933742608265179920914929521436279977086149540405623601251319968952752854214069548074412669234553995621206902950022596900166878248354908948938278112750546094014344105570966049047451919527689708544506638015289400655095140719657339721835878893073864224168422157882013946510180174716680434099442633195922670722888954035401426940819433141658540552353967674510351679989481510331459726596858518782679706482540223544284710983744871645967947325209311360702239200324823802255283564193313236997901809257197595799298350276416089855222174036334948683730469575078381381618602826492555049579909078368971113918732765471315754809808481934688330114468848154133737000231412123743274592741484736067910934391089618414475230988410544870757550553815817541896901128633472023463398612275567408086788907209230927619937533533641236942526389666058831941749352483147954689786092780273765771890345356907679027340297567541124003826298589424807665605521376113013113194634970642197800639472086055921192302377242956949576018083060020136056918782991367348256887986197931495922480767371011783885972027300668935357036213616226558292921723090958783525655744516625613163992901507060295768010766916188987646713725924090347852520389055098416707474865155855018339900430196800564292569315697700813361904970156796097374226296128109978781148008818793818222014281547546581981555603108543520301339635690479254340465597417841794609658982757691555429713553779426829257787446627133272269082991087838977048965727172919495928931347018483672708103697752965437825118461295314814144116329079532559726862620501545139561091311216097106072943600073933096461071274214939446262688439802403349039704046228258167412152217407503085773431456361065511582393578749513806536082819945311924743106558747525957086857976174371100911282045943601783209183600457009343339022390427022769489575029006143261837921920753827142041516037334999165448167782426237836855875435670729904450135344580572183396219023931186782393988698117784028724567903726514383190700291571452242206031421814726167775837783468894183084949637844682380268106528403808925381673203685245578798471027506665474029157448154211875666008949401731030348734305602349140474590249758531231271645036668020897043947257938558350009375511727002832951447647764667363594053675114836648611451744786858714977977719879104809109891923021638196646888016824103522187830695517028789558332976177356374772223783357309191028178315337126403030735741012954289414052690942491371333841899055901662463704859046649588128027244768575445733575483512988106202898674849037281933379954799200538299512603652738697206489132443579382792048478563717791324027331329781597047806119881375748808838141131192587656859249571408024840068361636871710130859881015836288941670457640393200216571690713737982770519032747204088302640869914110818179283921480971493924628529989812362493221128164414664082980303597715193661465037724003606778759616477713603995375613443410093472796983961168652507469715329534563973396902128507167903215750883182968626697225043282233638577631098972242000806634314905417143051997684805804331379699699884673070758918458347669501564371938719129800940276178464274715324331866148003079323907424788466349861716601323329708869732683644079232920143973335245343383674807868629234621930919586773361635635129964724224487744289577738749531193849939279463514898326062091560457590332657411852577927187199804971359905815111389873700160026706239686922792586313135654478635500143606544268565495252922080490045301998563733978545613280987731038318024207211023458244513179203233113193528046451459467835778975588212714494330094029347109407368156783875372046163116186382096256465356454405182123704681954126434005986907421728226170091999287509738127475971033518887153109455680049629571914490242721196552945722266375634171031207028829606399846705841817719313403756538099974294317330392159302648600778555300375710853883766526844257539513060928730395975823714585880387011974567419074115004410788173780509564096093887361636039796244330129655466826906670502471979276232089286731754749963036270796809926853999491388099109225166970896887918331897343974640020083084267788975193112034334775402956945807210028659167497057432026632312020548791506101526925342947780968902326119846981593441507671693478496834473641890517283603515483832668770247599274737610465917366329168728573335467350263989190552915318515161552953073113122494297064696315242190316357474103152512864605826184345378495595973155874826661710728436021989422178573037981785938033331978663231322459719698034184890717078494582472866173168880400389018212624903220495272442241887370925630383669608830883483017196852716169953248551890896291349225829414901742863855315779216582283979147512724035731303445325512261804029936016077697766091629898583234220479649003531230585635365369948238031272249692791818559371087546171404171168754264224460274317525937778741789592255918404144759835224323111038650961483211086504678709343679295186395945421580657873057239104367700345814788579749558240717972198304048177378855036050661043049859356335349609656260845618255281508270652628938844018412653740033984364421225140275512382011823898086714404772534423407662445246983822873523026941245933863566676175006341886707152158940321413764018434984254360732914542304238073291056268151192958028335077878583667254553207820013639792310582999761342795261698696364539812063822920022971597623308254235021292805853390299156468709170666846450176152490889350552651419984943668614125637124346361771503595464877190017587646970276961895475309863020829165852130997904577556007327380635697903145538334716456879556997309247450192248025791163591973498311068566611529237353563521380897639363413931859402489677096422819455603038550570245568303249983936881162861423340709130977234913695420908236808167914346166308725352427414495553453316549189050432630099665685246682153005486314648703139962814876330113762120274382548604055475802163473720775363228174975517750240733591335724913755650724122709206198887460155705256382668745161239502800540940264477946837997414564500882770879161557348745687874135893261266695628005971926788208035712358195649251742885965348871454275716783353438763698578932667968069187711994165297379444851919889477457616737713543681188266824053588506247610049368303835978527917671418258697844878242264773491049513901642931486244884401533507624730194307930396576469399208993847307526387311164926481924415819089114147265499991445329642717981538594553013664847799488623275444087175020713592670069101445822513769740000186983765652875999049105508523554993780535144530096107755530917407309419608471086456683709151202468703389027810737191939841985663290101622302479391641383117292881240195153479387697724414566200193342059384705024849065674406906922881577777582698355291689973046020052717542931091384349331137569844974941394786719589729998591135819349006654412819771813550914832701262201155870570931115627825313023284985294626533511685290163576590232968458532885760196486488451779995264917520813649926848507262373091630274166813791319884051507427288116022233208239508089184462473453448311690344948560420745886671869219738986519309769493462691337258030239517799394123312811835080302701950367799868588712350110032344458708292895845687019632516872414445644277117477858369931144960989262143111733706472025361185665502374943578474523225284074413472762031161379437957056982757888637861945503179696150232921511459071905713387872029576702509476251050703936592789633707651892050942948385403139140841342074087686063670838266265296515455278743609902394010012205780526810121559469336385971296637393507263570750218733250782088503343239599618065112005866726064736292532374308818244897828211470785140183801247807998384375801021408857805472722197183906248049579237604395723059664047708133461510404992165866466636727325585780726250366576422241815382278623812977884445522319301706926583167538583863920062546852079534182112450150400732156969040886244591426573771843703388624462650015468875750852946235953698309671937096319550162945218328748685371032478203711520900901301219188953976414018546947563815728004651463239944870754433806176782733428490927637566311855559301265648281718322909857665058721560730229507881487585574613040162773722232289426118710022485835798917720543575246896830507180515261804120241035062784813240272889520463546706096301574456445211135161266231362346585284620295439465296068430440224805489305166222266221772554748955624269819967669196492392091741444626591855971535515347989873849402583350140984340370681418472784491464935621703703076559195113947304117540835177049234475344662541662334069832430888249428155203018216441059867772176269130331544863536131887904181319405833012137760677279814499914927060952800145259578630369202326519089621992685914596429983964005239432955151185189486128896796499628380516627883768611051191182059739742797150239402054133188046440284413213062439952911823026174123097341858487783906281654963260474377165255994298864399246815327103293128378308344624290505481590791525262273483943558248746792075456867572364437216032151309711553747305489855434262342361854073666425234688833852486082803902236528995963005726697999185580474345006166974239102554179290583083646402793009406280843013597627385855660903147317047990968462909896257423408205151514466652278226742573647641654069274608685408228812683223294163936815151976501880162324139619673214595207641291068484222603934663256427770632064446017707298934389462454950769180780285519737330306973584668398113513418433145096403377219832033508587823034429806418474570531772476887316803382891468945752046283163771943888844251607408802242318268496798430260270619647784327025538614867482796069588081989953857594361775067400269564514814612670996715809685577249086048995097828925746240865649110930001999139371416249581650152507810409076065671737968799757438832240941600060973351034701080499082943790211928544975141856217906439311230706482849622008635491069889327019869664211263240705158440805617848396477031037447916996771275429649997968738038972818077964378846174857989711678721096569353840682596095529841356004170278238552676757665907474682753389890324562244360494965518298163708780564239023756431687152256670235065579500955449346822645815077022703278371861301329273398215871165473474876097546789639838716015543135225957873269885171332154250602062983145835940131003684898738355782734593146040777063565159159066392008959352449355931973395794311205143070567981344370749862978612132622443325088929864598994888865115795548046439706831625165250606284283969801584893384518131670592933655982660184399896256530079357572012854365570278100358687335897652808304963042766192531321644504038214949965442585161383873894024222788938493119120245048511345094567319819595794748754670820330734741814679887103115478137576465243883163426771372432592841321956773233426306945675372108836265628069885929779940958421272690444852108406374371200964436103006790315320195133996057008131040314996703837712812919298040306295188867171728773466382539986489184960944826995450897381360388229249233639114782319776730340321536612891871280584512815980332081604871218420145655692017004653897029239655151647549603579935363865655498802849869162886007804683048186527251027208845153611403259605373211574369940450657094501335485968945925021132091187620806518839984526248399335552535116931586673361975843271024731598750898184378331584468761664412453925060132531222867275278708621435344979470502029902605515051350660236484366673414447662851454192769565599194622246559474586776805154979432490658583460711601508433158560289077013519163502896518680542280446781634097580692939169547679184979273747108171695541879073146632434913500379705457964248092946806705507644347982239548860932325646627272671937037598613253197776748397522260986203155492749461987482952091437169722295110680344652245931624467274152148661700396985780789069106458622710700014865802602359628990927984129900828817587004580630720236194931732865040569812058368593574718891465396952068344123829834380974084780263895993758418798184353742003490185002041450267098779686505366098058532361180477415643183935818100490101665127368433705181996039276950824427632111070337353967972992852749543839451524312200515448135851333697955717262541703433655440952548928290462138857976564508580971132459763559554412852237461230500657172676367808142569232222772175568393184330913166860980768229565522287654371985373091482895292930164554585135620596358449004575184626528923659468243993330795659611078964225262666126844746812970676758886348622331463824715399347886351612164494401451054003046166081529010147798082963972334559691515313363767566316842347807135663147120076714841096060081401056441095003239255918843062311848831388437610237876951288938370502182046464599662572269364832596761147608177293262687531823559391648220400647149301177957093047764082873543433295014077871617653560744750240330433874919553053510810891977281957041255487081739474179854705364212438851780360993498405322254318993722503962363669993987196910534700490085288038340256417919628134066691943466238259038195100430936888221736894918432972085493347574959243356322612066944463542649973226494464953818707526192443581727091796898841272744373174616406592092546614901731779464039195563260751373712484886616791129589923850054795994566709828056878117414191323090980706067170569722974263133665417347572837762783849210584564998816792398706008007238060192258299391258921683557507030216512392377285908451375122641576382789033500591023979796015101059028919172015900679743282139422443847403572047164218535813360284652216655010851978449237097417349462154327865369444604629550728335639476866630541246746089707112498709374579629481178020984218637053363064071683681776785268098417099123129100147488175944286520238271048932661681120070810091164936090719725790726629602691081750723196827413482065558535409592151888804189904656981211391475180642097913354349940322760247120876501366578488348689189002872733740245707471524456357506554901483157500533140967972888955914500438418887659774853665734293285157568661155154497419480747605700905618543235398210754093642524339458664961587435186236093450748968444050166953162056773670360785014376919532610727312972037380600824936185326821791032296004810054795375112696813054956059786367632960345180291962990876528529480950435008259595743406419307447083185700104038088969772677399769601949991088568309635360368822970049569333442639158093681003053805109020095262339566358546165132032852508625608647634204493091696894317759800123954121611940521508799625774194457317580563922258586789119619750990529273121267985124070436778180369475062900694285754721495795389832531716266137860837788390164664784254658385685065045257108903793135434105062322943088862481591906280276805652238056732699267241748759057929565068298108395880238244062179724046601354974056258988898998784265406292424996246716153084067123702699170245469450560554597864257799262547218666427040060254623461663097101965198823780572272358261539641534086761275543429850614755737976281661940008853023531530086667521717709722250170760891661941069281326296507225758402914654949601512570965489929240189243130593193631619645146409095143377676916070961567751445851045998858001008271810535987509369940354574484849952169299121126221589988012199586336324398439225908333161159118448897963523194841373084015565432570646708972102837666542051765827785355363214570012575327808238518893718468455200381949963144769178072245283893135238383636942511351081203893741607855005066089621400721083101605026858083043406026430016096218522614978115330685967837779841502846941853972782610806758945188802798189857971543619885632995305097079781263007885227200545897461168767490793876652339394927566759483411579290110128059693876005249543564679905476422939118036134361411604372701739921141467494371562240061104069248873213790087344258601743018800947855324326829742228466772010158979163372121074495392150209729323963869170196795743024133584896505849456802593451265878739967694301690932323637954910104524119430821249538145687773341994952490995512634479998181597906185074978667720752283978309121352300299539176799207079544869183796348106821041480393556315645633651387746453243882945947279953329094964940907747155074870906157135279949926233809236194144981866384658530797197894547260077599113459098065552249433581067825086051644951389882727001019498508416162780823451882427650284763930482940718774966154522698600173620507355114447598043528829854553300280646532360052542527819127490819945211309116590969946881512606463834745356568401904190150926252184645525634221435734058447741899493324221216731340207681879754417982335024739985869520867349317922377283507410989141978893686499091877515240397459477921760363341006763756316254978735864101658327089549291647032210131329852015220229706371237065988607457760394055184852048019168607523261495253679284207192828096869487576365182758033000680791142926249795202278363136047291799734616509799114678963600435833602480609109929020787349113094788029566184120475302633513253146221565700754705176847196541376904361257778277143783076786968080910627857050517929057588639872454588736629493405425669807914623013729069971804283315869725405902839144857924316120839116621915380525781573757731017653469342543374236470824061869547218869217428953018334698625859502517106033479144207537454427904960858766435462347347370100030788429596977302088251532677961093655536015599661197062936752286443542039204149201894904569705178691594511984519594859874661519190293105012241298001304870561951644940795707010924817043751311198155765270325817824011263612325850479214343776631921663010425614044294648422677265182119541436748195590667627617916539504673152721887331000827025159963423613532272691797240724044445054402875980600411201714091988898520978401044623288563459746225108824537702369999748748167803033485784629909817671573433987571552505270233427195789272648080599689397621284703275274521701257603612923912155905223186814015578422043386060088684093012200765873168615507676539192104200897389355496618595196008546662013366607739418387718878251053478057319691052900018668065877950523880502979678417216579172429473759498668113599660199983307744007036326380565178808755482460035460199525327887127374333523166248732112769663059457601435678473191753459841990246069895093399902191340612393604978811653445304388398648653461321632222012722140249699632463350746752170760607477221163186783127346447947019137814704725014369136644054697891758576354718611982627296319639932937271571674229677646446902747180181637196862067802296820341153994648569690296314543378961698513160793863526907841464759767593519230780797877303299066149089544525132421335876724316721766808225580484912545374614814958632667628686934286189447808815061484296846787468023479063883300559255528936649804835500003893569240380271953727192582316766761182384135018661779821590361140735656844228375232873871742788897197874583136226402851337053038033990887328254736329026861763059092597575419641949768878398478838048970499359150916932827608854977943517122878102744388399502758954278443886309695619295730730355774581967950657152208206422458039998452617335394881898637207613530629684648455170429377278874572272987987914589418270528263276096518764277233745867046894938193283043643798510975100743263515767420972088068586681885119093894256625337322415533731852121831224955063666327144134879751776080876856016061463070148110269813264740972545939379571391671528079639651713102191004125032409598034913009525525256707109813039296356254078725582965765896171573622060160932527787175583115823334508841242412930201666539624435604150824942535429119550460350526811028854468091565958459272190041106064770369104859297295076793041190179874821294071561820744486406785880691895846989514817192773271136424656459163092749029980196907817151115570247290635190816962551364949908147716600096265264381970539044835096954517138082053069262969012909368006368268131950494987820955246444339246392347103823829980948038487901679023114791873339234381283131982850406643919029524095139803327479609283945936266119706310145096387535392652174175935544814798715379690262616750604381124895000758435466977311914932024941129457617171844320539211821640142078854485299145556044662868306335159224064923993011832370984524632513541690457379234786324200928002628250727858242066015398034713413799578555471181377762645255264542014990223332806643785892944972797859855714849962195723216222455739045730459376600913994488833734607628225198616323581511828225454671145447266279804224170399125072594079640222477794914022437547031781489919473471291986678070406259492081955378946734448705406006013624936629687850628765575887075781297772101452433183008044203851647341152127936671568065082204897971342425831191380548147030614310265407682882476155586155643472156952446365010954771557493844425196139692324692129903278048425826839001696656424280303740155892337430542432654955110715263234355930529657824097199272107765765020679051110529003118974263107816771487473682778219995530397588598129144702548038791231684830158263611240009889826795532818261146505821009881313185400127375782068303046333433023732471228577105705170009214909810146640318524641875986681861066644922252438826688226996006352065007449078707931843897815107717797795873492443491631223634313188430628487476448889201666249434641344973322377287096865144431835244226892404565294070417221451940238381190258588727877561890045501165959172215032962644750050527102529178518915376206449782351185061068413675124425625591540640387433917339842325831793705292933737407207928472811277998221029434761181870310455753420892163276056669310542547538481940685453779358918062366907332158576436515880335580085303964557221674221156705481704987699851648004995649080373746280127761363911551144766030196829287422403584758775027349360914074324240469756184913193581428854317944767723985198564361719907850914371501033569521235648301509432410484356780542892982004129238445453035066933996372742064749736027366408539266249707820097225857814684169663279877794089915128019182129423390234747757031970241748882602631070791926545257966047652901155999365862013239856607701062754896449365792681021163832376377933523438119129935564196493171249962795124002681480727810897756018310545754063084177854623849484285990352078785042916951764397119168630119593724823230793647308651196674603659215876536961645678392904232599199439910921774247375569097433012577612701870284045673309615114964645883293469187263919777422896644675540725691474540676644564586955905005988942779801793960947640476091124043872093161691037874599518976357885504763392271752969457216975569685373782549681632072315805729376374146941621681281131754616361204699033032757438793127744283092648118694745125610279773114922021588351928789264113013232897894115222116693765330076555850536460001520380825500462204167923329639895811398640385224791149340050292432816563310570331307925387048638395391096249642966292369619617846259117460285906172709710249631844967381798373655810501124890207313557162397145367135238441062200728342889925104489800858948352042396314037652672808689233972388562604045077862417702724487545319348022436170496400800897930693579678478881331935621492561788336665671847409551393013632208525847163488716137374789638663778145700543958965976256916319149412339938560966319678652180143429497177822192814611937171730916391865388664624035988650475729554187824192599524141407988533785903857382882851279573693902652828208941102832334460000806700651125651901935390986240873388089830238411783354764042462908338226949907211998587237771371762514216494513473172678165582173801678893590210891187018488933685708190668302136262546632405301051234022270659412525826861319196279282574868939536068891605394270360880951040667652854426308200532939744248288337909457766562500506772485132372821468225765666828948377230613375885209068603538279434071955576120785724421622695246795737202336899485853584203336945149780807570563294858362517767781983829933835650753523767428200637293250551931606999336343891712029972789803185546882433298671161274051753746003824538008239985092968057006417698505779495080425697714839091922277551865601410546169052735873983343988203408784285771089153450679336591879317156694074574172060441373321415018571287284778813788157284221800435892063435810043042806763666154172723620917121852197072064114309155574163273166213714895437120526290518111475237843754017325340168617037145677946526533884956935688005723958345375957541611137255814808101604167416945767147646512667736651980993464295644576213163370805536081466052203752021347126736771971407835915051133254771462669491768967961343642251436423607662143043243179952728463711579713640572467973949502582672101123107069393535305729647221617088369642018066074122901482121305406798117442865631359891644716732643657931278294718738518676208210813769598329710241110219453013027328856050495951352365869615005760855329518058373741329056873122890170774316745982742811721036707396673337515725503977278370621127579180644828971470204012130538679156829335908258642252635215014152556004856335943005320694676221894558555438282210956140954063530429012464250491822437877948347078723261702423297632652457624768684755807983979850028203007216537039876137727810741981076572649050486972102220208108676245564454793846313559918073804552120361589862979026772880595233907818215122408601880625355557443550519656254962249913664471920632532000731156206229742339270037390255008133584290466241069913839336535935130992910143095218923896289825437177780208959816518744815251894630294106744608570274081998184456638695210438249843801107380726866791811339096701241312398492034179784543027879288926743711268809011838246324131837578009582086801267841850004511759031412654843858061392513107383414372619838057222172775752689813534709738783549873905751153486509159456779773847058067629239197923757938147251480786655444093690378249160864522229414511437441994274978226888552972780087169326360699338758433739045143110995941672613121653147426792534271983333086837753981769573321223318868111610925977667519974613207396346283041200396328366365093246837915598655170270904429493875452871521964091542587919482180676552377355945595625219158359483201108374759065774659865019177781868927983962233287786273659284901316949027927754404461622245699464650280497294988867096819083125618856010537513031509488888145516643935580196619402267403709888851943731106863907378688811155190001061066122149910335210020360509298394816481261937940325340510487578074828168874889725819409837466541325924361742563802539560482571222172968270150152727930058471632636859541803926965210521514872433022895621114450756100497819917543427097467137576450817956713785889587766731242412545719912090335184106110282596207794764902808455905204858414922933867735058951913171580559101927727478932581836817425011253172074451966400333441092541635161095638468624451201433452980610875206203728195213756472600767910484262009364980141041530614077903976888920746530436539077474049142710229723449050912809657256241447783335039123238618755105011953858960961706435717680929880533247994679862583185067906598566839320737003936182623176104134373150347983855881146329941322300479657791479283348515638225979997330867301360709255186455935523743539625159771429984567442052484971868188151587102631007435923829992303957991107317940033785214207587361100299857115676878144991638278534835283510019556343862915590946798638435188065913858375336880684422060369215870961063243011038893021323527231393445688081296148455011338047507340172093316193160903953616036287499622414974227426855237285915113947126745452906310320501997615315622840844729694328764930918884340835441388840246730105139227302586048474035466215437821079618536464623870394898509752538581357908311495040827567545437773058954971150674643232412316711731898226919288069300879843330692627308400657489182150436828875130868888028348992357937503178817875115540399629417870773099845364456950758696778590096128949352186177721569667842441353602787469923609253742933361873122151156616789432444934704125745065925391859277253323784423157732684143431561377808183603566767030757635791646438396600801283129567318046486507168153450781379260681513291210877867371448821667424160137621728858083426295032672743313355972499502203326082408050072649167912941988599240187113812625029143389895405927621160932767968680659504862336244024731262206507157651197993993524490347239305202380306404200515338062549868264362307688490151109880261783690859503815003786512108782081914992000481839337827673302265730781580025126315593929271620592199195694268715615215526628043640457189760420329383972010366079100741590908641330910407546243643311834835007040977399609607275235055837835476782001011915769564758905368719434533944348986590974948466541212055977990330904411817747881211279844662254615013448161785662741115681315704087776620211087346616448805252231117675432445266602928360673437929820081316927938998483068257383120877968966728853781834960711250188403851627259823490559570665735004879126028280371762471025296013417879845243573300826027870963988891502719608974100721698458155880277909371363878665225592348524916837154620785234277264004382931988282558201023359467603826464141949436950713227818178937059438680110710628102077420402180332717307838496081090689447807906975513551641091909401802902624062810676911951937267863413123642089574274469246769529926462875333753034999415305623951105995314516473232641977762756778636881163492486555777426602180115305631998130409990174550638094103021865313966230456068018068320764074096230714028253522514490289099894790095412620402630866442634500813120225995779498044543404429619086216960418081956712318736296013439866887489191187286381108502824133076143259056036447759083260857910855515904305260526621658007406595387760812644932007609972813860197764159334186953388786900987546352883969932867238169496963203479319277145487024900245126173795999555177454315937169847532926899392039262544109843560029267750035627419514081377896448976524751984324696069107866523765862756956362858282915643537608907575349789417026555012425812545466649627313951049343173058256816718101898669598278491576487215642885518843969153357890210526264371116309554421017146848320600790470825120743894961893149386484519833295576381500248656904549658814616681750362438205498085010525857628165149102021105969562708524202666723433099518602480136293411839765417628661123602796727119155814227395233692799939042283820393365528600231137992014091086729742384911117671495948317912332188002306034088029465350826613270063698909075798792778163364307241957531364030628695419490263620547347667363364197078859803615567829630009106909366469851566783527222274896488393792419333287506647613612413884957718685215791458524530020102379739852730207385390900441727992235881316427798351792486905765498029953009009979146052597507953138149099569605667170047924928194685671738495716071399363688030818965336568416567207147184082112255581334357657983651042261462714791836501845350025564318608845080260915446823933661397980262932516358881420954016657583364465919804630201848259895588986104095336257198260921410223127958476095573121213999675014260141135475339305359062162237637745613173245547288293790739787253897879128516091379765490763519072253816619577953532175411419721472871097752640647538069323524048317015103795392406729103850314990618849678899763132778004559295563383700832827095377778308348755109283745501944635304649631609189478887924723201590949978948415895891540738777292608049646246712803650714296289266991330698414634087521804979062252611523743482519958652477447638012118089460055200539021090004725635066030778678102331428393095580288780299994507861417265013477453084906623269277705902870512186150409337413120651581180155831655250853798062215675556172515251177660021290347116795117982538232334206228963859883578661949044013119225788960940815420595069048964328832814247342460989121631592226301970146128822484823950708330115451630027786646475810687290886498818173785808974638936664407934752227686374083679368401658467565063910642118399334008567188357271364979259796990366423422585269455390721151190563586100349604326874603572693551521499093017269652159550193499219027079493760770077608862791429307687882768894814324571111742383303502445280622699990730163219333824615707771708140706320303644122218208199072831015695103522183463602951112940988519499490312912973677632432109934634620708129807900031862163254529703575216860959609320227224542269862551305430282780040995879618428938698294780345619060556375075473288743131109296869999335922449443567074289210600733405553947166852375381404579959109475037764721375421017260075699873463070521886627069600383030855793316426801219522025402904686928732276964443223314858053204264340844939798144014017664301175862444672923030196634516103540310352605049794593178869985585212834554942771930471065410266752565562041307890637514449384575085953355795060745362091620394140006054640066207581616435459109112137002361431297923065190299829457664518155977304314003165392378879510631288798793575068586343627630223898384701756910932011514473520786204302732798788245325781297934305380667966513348319161561722767086280989052164264767403951307321756625060199939687400123203049010987376183311501538518601285508899638252855189203635212528483503065891289923944453692231630782819403907841340315055767295957227693431439824836888258680969361275879930751398424001686404423042150651911574305572745777479586775818536027145150127780369915484102500391279200633765255457901483743711272313713891330530764792076280947639733725855400202180800066803142163907010631486600561668113401555324469597292260551227599801929586298630810125673765413926633704475094765891255490904988672133377294061331848157278492048709467539972558803044216324446234726167998651514102309371933292112041322814673825751115245515888168005153262654023342476931578236328966184512567300655660216650451653088826302995040449457340100561666866969660683144516927297466683480148063744535995002957368669151830830869750070803486416336868635312057096607911926353434513163248609865770145487949024295886738274860404371160750372500861333526586828666573546875237213538673128762524928722159777539601948613518673582327307660039358560795526723484207465277316388523695826632193159176318389598969471242824871448045702880789838059017616301392159053709952967370370743368873027652289348195129266351942676363560552145541409821742677621357683444162936659149056609783670231224462982449397034456182543869615620166817076443010614542770365876172057005724966616494949430156474241004912817427613335677167499262433161216763348724508179220623671601627564054439886680854814928551130642666835614889489567057686934040298444980079747548158535518367406375344441208970933908199909892087439266082097854312152671373967345222934575626845345013025482589428435400992578044194261630799457547895778931867464307491661661600837015560757511834690641473933704682967976606542093248834623326778224461837929100383526889957686713012210555545713383456572210196806301974322418915634822878176796614555965229434041048944898497072571479322359712603178618105212626770806442641526900688959367363260337466445907299903355900763373142302816242519679413980162756880487276688543809592274090715304061833945336253826860001563863200630834436843864463087505702450808203326439221109428373077201860598497938009753210296635796996612459732603310041834637221840222822032755425482491183520675786806193732812954499333716298454630657289571484745337155903902920511327582966980276109597672198205632224266487565218813061827057563293569919035994072651918825629576807434032584165314696265478724975698091737988360482526433325415035382077070466920678908830898903698936948956602865423803799684051573401067915223186003545624525462849977039335738758491528197277297959301004897270116160927907930324802367981494765329801954402241761091397033601164220737317678324205049088731085658188940645189455793346075592090805395943783255466519736381095078583306246870928967039555929476234743366585403345018231047476246947496405330506248578036592174306541858884117667646758376074911748265176189765464166607817800741037255886802870213154135290325444937736532340447724316885466356150646282582031092663801166827991683118992273183172029437329065260913768379425352755116391018476010150827950417209576011482770836796914581564792767645195802453424551361492209943349822905081334490731977985177106166227155954646210195419546185594728440828167912428478160712965098510165038980764614457384468640327457213414621859825985207124008998869348135177047923616359733621789850420341108647939187647284285757726700148275903945822852997480359534710681917796075331459935386944216980343125355318203079365516533170028129702880949128520019263533157000033768765859116311738158976166608084800763994588554248496712448995084466395303544472248810915064459781020008089240917132668640740996054311017587310514218169813994836644726869910640532334224248335679355469297061778516562020624186791090858702786699173120446060401209665621537707329840112646472685163369974931200046041795693833359054390048468713105269266657146675801516442138599389277136131759940087601430318850894526560549777236820596325201135895098913234647941696563416997544038064817331051555864948415382056067247961327085569036585983843321420101934817113762822966241099954585066817670244451889792985201637952371295094917431382324615117383412915277536901087090662157764393637188181683104066136653065892956836619721337830904920602163717804604342702764419919512251737530338153411329509286082889906009709689288132054258455008335479958166916465527215572603503587638181792637776034925995673272626454869025372239391643251581973197256058534599181838645349433086452566073190799924149123281857851558052260815939087808741387133864277573224254406882302715580360528704106593946319685287837967321977331463631088668164497673572561661083790161632443103327440150713172161991886258498718770623582993747598516489479794761107583904716990605732435978108154322673265172893969518604650840225106110715401932743701697925687483290780344072885890515925968174803785771023460441369957150880536594581425817652917288189795032368340225405823760065950039653138533498508546930718988073874104255580162872597060456754179427031903598764545718028145096385171018943365741713094472774295108009377028007206396622202317401309629940271150135377587710623418306268311775613537386804738809329036987816421349470089912398068185969584643275606853735417721606885846151131942136635394188223863662960043199355644618443233125252953816409227334514465054363816897552519722258978194456385097404391509925748563368838597091158998190144104491838954182221234000166273268358584655668225796941289248731739758617813025809345120243914923686582055614041475461726098710401913955044958196573243515788750929622019474018043925574414144059342593098211434211477120718046925362705490772934844792187256770471950273402034180465406990253065691694553386976195105791806332457913085413652174523399998139442867738437977850077354681748347492482217338120246473134376133208374280571580919902841933871452856954799309787124019264020253529943561058878132023947675759812829343258609068003023241328824048633423625312842933699801428521324316442374856504284016705644969318948865336252647577882825489218958420110940797575935154211476623691080861830691554591954846988925606092582939901004860101343525148539218988792431274873284603556767163891490165233731490461430380552612717510537169801807937174646351798102516988101801351112715329559498997756934151327285582655835509627315944731779186001777931889935893561091449991348455456390427326273802614947816699140573536127858083490953087562721972370841656473217555892453938590021212492725766980940487361991790218839778032415292779060106516921215386744133646954043570768244556665221270714798728739822347083341057955222260461146212638538923110886615536677176260916422336719500843441924061696594343018558129987214277068165524927415803183329915281062946756238791301951529201639986844385488625588055620549533766296114188225651795612493881978853614474597660321986602639441110284676618856318694294368727300197165584011673639513794753240915255545298283927979416898527931133268284312579541563817430106331003291472792317847575645671031990850060283834152889570874578660160438541817906633598320480680168595931737679258732400601181840675121487585523739717898749084888839945551076257664505238371006966312843468204370535426400675593542354116254089905191386670842938315068411862611790217230589939584384108574964367124576449101775883340779839866211229624344267738985855886986747578557565818201268129436403545797022254035648747911260967937129852856479066842033528152696385944763845641258052234783148136960742161511140863119697819180644805139300326687252867977801804835382381676657645507887538500826161889659639060101198524570449045415071153959010627844542822834647554671296958010932758450227529679114474491069346871819443251589685691895906828013500368250479307272907916912258160190938995730661620533782586852227663313739844255294131495359879285262684866647160463502200811772813636240975742151317004101287273619953999289170892374602570581527073655829520952441573449243636002628942273119416569237460057933051661745140536464320312736009444847244217484165912276894110353037532247695917325595620201281187296929328062725598342190481358496468768948610950370617748446546260171160893757461134530726480263431349747679672836607555665525777160450763351362674657302369491463229190093393807233140151557786618721165861432993846151391529608661281746087294461398240139883383432385690963159593379760769157244187598819571319240978350248461285685970662912722112454289381271937836542601288656561000839623683542969433360645330912294539580452256276106344759247739606341987502758440704646382590433406094744851862538985077969197532373499878400610908207578689681957794610447590006680084655127647935839185370037375593861721376021911095649011620215601533667662403588845648897647482507139049905377861597117360887606295669408743217180595371651316561796716718117701718824271569818298093089678862240737949107018240652152169497078699498540885955417221230187786886318270971503240133572501562561755469175796875182491959986685019965222696129134767345608527821380366192962215727762476960966901347045564393137975734402651028126000366769755556371421680828228530632815302478404269392707660924533875437206449390410652974662387290960823614802435999366011411234847551907062377103785696101889152982707661048221685429088162243369504112628842676366581082892132824533195854911965203927513328076837080556301070690098870856890171010644372065041683901318525774698607937970574739682083446495855305759286237596333993582804540416948094879137768021020631751918881092628555281984571572860063530907786130821764101173674535752816557273083545195632853499333781567246496439816909814179552732392122102494402100563374160103897319778083678508591541512244993671664797796844674480776818868673194965490393695946073069522734400959438735490166852862367583066700123169015326123067434895896715794713591636091469180102950899206888367561801584294183243295987336427703303978218017256736279166648925830030888034395276033801633165669867518882257115576745733822470436501208171167578014577162929512078172401531839900004156404345155736306715962661716175775809056977140191192089702691824685033735634872602807368746281232960496824436524915710249668842274523288888034725499203051864201609841805087084764682913792071647638073382391019553582255971439920028281713600914696079365098666821091272206157254654855018664901337476863039177288052339760107911485780204518953674261321735666881925291055264492029967923589405049530327347096711934463326307358550727860141298095870779800899893180630170477359560658483888027090815456711499446134368598952737893152577951128285191714997884317878205783440241154101504943182945788559143507220562943738967193525918726613434044124859160632292762080247550036904606280213297600891017021707088859076491205008001791855796535766030091744403352620492936629710078183245780551016892630721824363845253928564459192310848543011970659046501412928254885558656897860735656074128368426217978451995178117962623729881618427838016085798706193961124106324816494867216338736212057617922632270716958843199945284163850356030203862689539793108197058344738676150575514337188707110120462394448655455976906864984701006069664787540572687789067235446594492359543481176804299712732401553727040733149533697748513340867615147719708538553485017089088067991859728085034370600126472891228991358060008244056028015209602812840531097395476349041850571201122826315075318623649041444243325748474541822712627945252419619363626252439941800176121075226711825957014838779818747180085589783272798082040880429721811510322382752761722367371658750680828207254578704044744406097192472784883098290222799964247314221944564943069470561517626562217273476091094171433951393637322257227447622165486107261372495863759689186909671852249701488665097915347337331554412984451335387335626145730923358306411699816128497960374359332060563658340344565482486063939217790142846621362007754548026874272803000765040914409260232918489423537378106172880594942312201181113455707579521590668723882754947081153253951325401415163993048491512741260980376095901782141901876376031692921074865697697658403983207273084811311851463251519026642139527329917543408310308331477667519263745651534401861514384645734095668403036519810586167309724399102531169668760853624536405863786851562031628323691630895623491098442226850132502879219161087210075782753989412644135035479896498356236450338865474696392775695203283998597607766416937658395325890291908456994529330379719557947875487257423152028468719558057388641368986640850384410001944342743591697203308644834893850611138726269393249718005482867994047181480165954338614849260487586560168963419254372905007641495538170616924419726664274169023375736890501656041367680324773619928290269219770570685618185651391723420141800039427076381049245601564671082593180881020540350385345379089880399516189757373937406057354097613210107180481349945415682028758279264211097860999735941891270562760666909968364045723790038500435217303736785192967071760960210751298058107094470672169058712040477515092816158515880472186365021771074238146660531963114342072849989326996499174042654982253683650914103559763068271872540308466814868994762597928081793757080407680160229835641265091045212314172530575888820827945728216829875351359413354088864940288644738581509095996112551807539630983447479902267358866002793800085562979717665774479657293403681466013334187086477034986562931654641909643698289825534182602050834056489943476287973099631657908039851590227366227568732436791800925813101664262842127060645809524296445225742600290197590664061117861313710712090727566038142626006932564943110755572709799288937192520021650710404824302285335032003712106183326993321476965479324172033793500794388087108547844378137818837488669618311227408698279885955351271265818977560419831311486968242986300173855368187686517387580496296443778974218782524488132902230023158787463552590020842333925693142038584664698498751541128448151484718176341229235799533155842415288816177500525745852003750186475702555543275710795763038409602394208931408916939523962536294704439793735291617135541568332963777443766815670815355398821137025396619717382511686934389002155669269035588704782708854462107564173758945965387487654141473281878229885034390388402862302358143393364297467932246245680891689169806405144328681033036688067956233934226252763084745381545332541019311239664830409731127538184894583107868543629017473333849767759277917548286842291050555887373851450167938682119105811780976620077900998768771525701440086487788276545967949539124543734964689908819132963195002276097283459280779355788820095083005815059459066004722494219260488790472617884114250839021971334331573199700510511103250529987543635901029044216167417247215122357195144798922278316477517536092277952903750750034975515129821563048004271739635448225575740533387416173677924000790464111780695904380398972297840867281695997654929272047632124827437200712264084671385447915697790459241517466252083001571880323431530648146314499190013061480555394662286611203241962793292267114170677539012296030666658883592522386077931981931002236399620781729864341785001157663139035716992421778945607905485606367068266959351159656973747620241155954478538675797391979996321051797944528939084487172808589975945975964147851679308980892043985211058892513276845532790147864817555907417926399581297485921411195019247987207423906070936307216834679758213743916175070354026041855396067810490231515529283802393288070451608326903147875058810885468490795742224758373579362462881781474169325911845861900773214829788975299027936240738055969866060086946401702082190783396409548302952259089190748882361435512878267925993126707123079054730408160160366102063973481925284949869431580417873814936040066416472235033144385239281700082658193682709658876596654260697195413034090798624626569134024986583274931032810543789140326162618192167894501598764993075385184976327023454891537134888178557885806464961182193538010769975159448652950896890552662455799626408177479816363067647949851684494778316041584454862937463500737176507571911875768047771208511170408027095588070785540360183455911264346784846923959254778626317265974037866000739981591093988410979418073979453843160391501909797122417591759556482526744598309278468246208983639389235181654959825479631207685776215589529646418094742688234400476336693541576833786776908340607204339212982349442439777052104892453432367888271703864798080220359770244084118107951670169895026021516902664838052183017039163536172811542198644507171233815059137288981463315628518631619174964744111323906249048565499229643665970182136158151706585665142024405498504505164404315892397209848571982948153090181084717827794416167811339849734284290348404138623126982628261426886154811291186423289464277873122210703606045111610699385829390510094962679333669432023729421007676628830294454668667980926904280459688157015772895044359990104226181083511324330162304760993939632627230205564108444886284581575330346045505211298717648666473623813933661857154476083120683092426668278732428593760988501023244900944550310105640611548701478625627050646387450619025489452086317902901401358172155269665322178030346766195582465399236715514611794987325841735520773042393731926005778597327106730809232000385021657253579726501423613522287274714019307269476446618104925812302244722245271272604792310821030871800659083160132290575600229045102886990995299742454639980256534240303284606828536868246953433165514370957833484435434028445890722107621113694278040209210313670022330785171219157978003226377567738592314665739505887509062640950120069278568135806443469145728148681821600960296866491502991030459711769811353552445592495532364313347727256425679966432105415278043182227008298136701936369574762561350053559991985889902804650243384077773145761635622535382174005507407684527046458183538357418202704273842551145927634523048459742682219722496658182973452871089728851993363068491641006507004180379356792777493046405502495728230602590852682787965513744685917376142734271815818046555215982645709176221867625502075727290265329430066127080222535721507622180674150758420869148805742503040119949248203314899589033286630209102299402706420973906474445752096648312316891940282726923201069554152800103954844278233303683910693367599925894112111379460801886112369163331304117612430347068795803089679755767110708004271746502936351038480035505904427732437824801346626753299627637912362701731274864333433266123656832301943787655773270065152859225228271641554304313149769710271691393290545874179230369821656702203813130399139752156549180966531720575096596693301512960546951203346895097167221803886635589665304217261696372019530567344136593943022211438841684604929000489688584341253189043988869745634136470829248201486282838505937709827703825944990274441559003489111358254389817142344208152323746570528673218233044456810836438878694834900715165693437299771745249298299090146029253797651129175458604044181361246680521625750880786611818506471162559819110932735858491415044762152027357530577050597011472441787384290922733876417048710592552955786916345354000868803595471177679955470065539778565094997717181325908322041657410830822031431861619479393598306350934045110186978971247063327757586936240303998237988846330478498891842135792997440764377556304428734215534112344530384743059215295748963546270754598850549680534720037866501548129173333385092675284219206820468561296107545288013949096789892276547558742006582135216107522205618413563172644837752899397317718441557444185389826073630743213088129829835696444985246236802249661811262217041770225118384740968339217777483231576750499670914963498292134074990509076576352331359427600802352276143591820513765198313060133449855442093883471655336157358640185816879101481649475178515506034168760928429221872267637755155638275863446819822468110905392351194525844241924686751754983190502330663634598193144932464154139404308239954512429462017980304510393913871165934171586490596268903790035137314717093638443478958504959605021952130364977750011756370940652489810264850310710869212489874907533311521135440728034064761319099627010355264517354011931440148085596792605582268023149675185797382344743756761523188286443241087521734197628343402358326135734648569074509078856147498892711074261398268471895885764287821451013125896318984213124136170374673365391127890130686643624109576178959180668667439942245705733064909193244954177239136781337036922037756822783032318497718855138133785312895010591169033847288440458958454852661173870941152701865370377936053632378710111866805739770603340479726413623133421152083988001224512100187866877050751360808800060645035765172550259422020007124357002252215290287967023418436621668409884154599475252162294062931701916224490104977971094992191881215965087267165628469836433708949999960118476711837601711640277756650300659414509540614104668209916077557987210185061479303693324934296690734677869047058435099026508883989225527126359636027128259042858430455387213963219779659397611956547161131399306290334144668856523867296728004215932234744428921355915718527210256137141160555480232710115956706154539290073450845583133528554127114906963670097718220596649426098680879810443978792908807757645510132672241590217741679768343795009520226313201433749063499091359865933487283356907822560273815438581014396931207145970140541542449759318927815597395344333852792710825583131996421183143640963271930996046949130453564599327152368844994281515635301237635692763253539757586329276959899188076182315840107755813824351690576791002496923588123387984614343465286072786392663963692213163228191465369202661335461187432472767665884561429184691817416035303673756945941264833673483680854527356450980881147862826341611319332801389914383445901206477716239961488683909910472791121683900720738270333863196242360870542684543038680881441658224768362669384894748323567394406994702594320580134423424520431396860490075662237452343215350534440478975970101229278664596456677267318564459059961702618136365513316462240374677794981411896910914981437820602134348874300341239713320095996925172860624942413924901125395276373970549415709147820616817623438038599337111103318527166745816106664734549473893599313141774250227601598265708180637599734308307572492984963550881402937377953986112674404705637404399906703646924992485784346034176717141960411362355108312100771217536352925083736538869517213181782483367715739278669445407911058643632017125059702330059847052825497155000250771666795784400924252485534346729932277183164302652297578100209395144935093671321150761845605916581682032477337103761982555913397508605875758802636706558277675698447130550019825297433185226392654246597214444000520915852667863538026228987256162301316541483232962707076683287747174034468955170014763002562815790113268080210293890773233263144958131774714610209692401967106209561493958713885238086102364077567666563171787908351828066479380310523076632375870554458719925542163782622088462762361375332249678522491608668261536872226997798980755667399506485688949037630226754818258120414983021166475771980187693382133102251038218365956029759205392625528447773609286146031898314708715128071435785478182520501591022480111685305872915692726322798711690598285184018484778132514149844808731160581766757207534923037836698888599337573279618901122015858128582966101838007486553687525272657754094560845092357856251501128492276514385441508354638558459894840490678441013555739744493483709604879885016919847086130586848051337233894757822261163634692149165336896576193811611324853783051233601612107982697706211693879382879572645093037664098551556264888042754434169468917346164370951779744060612409788782663148298929606419862648348495963841547344378628823292351381542050053503496701132998495945355518369095419151077774317292663803519839016155336085386783481230680433529114219021859538855892561268300356244861155632472676547797391979477464552872365866331576027867630044170984771726013227767006631626229645761611007298650014411269201463276272062224394831374940445770529097935287153687533520351884025545250814268310664034936562882346472168304813913332421795902244229556358428840567570341927721331665586443681131297691922614597701711228165779946609938062902033494672340678891773726762173478855112089693080529456785095035398639022708742954138648413345867917594392631587853513999946934427780848650551438599280789372990648282148266174963229742470535393234337889239744572399775992997024257033659123055261522043487547754025498814841489463202847365797954061736363423976377279780410872192103294807826884301129865312394969367779547564004235754168721589527974072659132549737949303462408301922457278470627144432282554728425620715589465373522607597996989089510347204345274234582932570782794998657854281232006925551065500655673931084934390040387397143634576189761760864632689880844278127443706858211352099120455875402092946931261652590468791352835214918687671320237676121726062546859297234715207185256227107362564114090211293482585704466151565816895530519350890343947822747619854459072631466327347183393825089105753693653377439014514235441955753894752658521858464398846213196546520065661849614438601342107943780364092237109476552302579289144747888707529598377779274655212776320758775587560519944805859257924232233181355283869506203473816420933405358882683388320076190630772824069718271231644912652489327127657422425338277131511131065737318762792427945676096889908780419035315805711006366781830934958894291853464434599216534614398214661569108459190903024861020809570022323869810666642984603842087288771399714974561164722935492593514217049419977429652066401883614118721367865594906660714362522532367330173265618249306939571412410999742689517478932634532089313628410458334966579523722302294876614763470267202906605919158129169169747849621074937746450417622485190164538511505819175293241224049302363706525257130858169154015514687959005475353074033164452726490693394504427982943401506421092763250963870168858657857952189132113751916877189511383608666083134947368999150928201942455944758123873077990917512935446517863476205408734023604231156247294451294558799390892241246793153686763158565616717296737565469936926974824066446985332959776158888623954070830943637119053914319864567145836845411004067503817191210690595751180654305169143677676683150740047195884125992144044273987108543475752922740716141664563464818648471361027515154716681518499753769910729539125106777354629665026680195161242512874769539773493705127485497396918281133816527965414646799017596979344912456302101527177723628924563858331233227452357344210140293901860051804634495426297382272021800000400655243728371267755577043335675091991404275793194325213786244751096093486351063031212270094782965721895116640699437330321752027762627769784984083931190492005374067685787050796606642207651092992223105411987675080978494291565932920435984892258593680916012071484341396344463086302653931746837838118744877210486664739958535577570909721408771614758353930055412212723693492067591887728878332661888122271962476442935203544272156325961119638664163945043688731764153200039202350130871990731712211897718311976561485779262493108619333941048540204997567426166643779086862365472922569005424864360885631209073148527752883851115497399045927267291275870758550354015274642359741690318997394932542177146060565269877924334536658552018690633564145460755305111961320604493805435213461902440559016210295124181927236526135391522862416741881491632880347772208134934311255324416057342526762696598600628306877038231815454711052923506737276753330011723390246303813064924638370201662670143231589077852643916001328923863747108384282216724399721828982072628896765050842835519491182571101991789860837771299251746243911452089808761690711572536818700530928534455026566909546882087865755299458895929664761626279157698646729318695232954490858895386667855297788571329639379065622949032095457545598009920953585864960727665865305481649300102939392670193302773366766253376832969998050258440729614419214391937366936744957210953489734085358252028308136582400463788398169764674434078512453628216990635554973696626873348762218601809759297030153684462045274365809417948982801382181940898359679833993502292473977237164195262307767939013740102453132904813138348621067828931333230285988773454279769588416893494814642590938932863528595419708937848511587037894512607269959909289546339627474216262509223198780429803483439910728516981809747300116222846239094990752506976612095559736066352525726593791366962896442486463812241344885024415672384926679380611649965303521843580468557359168353561962378850886236307685098317151068117676406151449098002950776159999515869250577105402647792971336534068177325789394685941982079372168063488736192787045978200306291051308599539066744313083211718834601441855739574220999894852334793045693415954219868161170986670452551959542033880220928375865656647386919500158124082479191461603557770871445289348385188795624232598571152134915146302904822976362742273633443998493229284457542826449372877056244770762543355854308471937300647358198340518159020286688390941411505007466574597960347922637018627177018886819606074399692838324044153965680070860485863223968297415455569436104246533130662411700139716413187524944317279192417890227603565052657403824337795549418570516558255736035749775611647232368737615755573997033678245605920914733074851853809866704465051355134263131098959518010319933284431126781616001373505740426672857977902640794308209693729452862769795518732588984615632954302654751158235337757603948445475392065258156041633828837422208667825420520043465051257769651467436060318736328831290681764501667216798347561487259150123001917750163878832442181065520322686888546981999603245869601862232902950942700058626711828157799732425580565342981320475411851836427932481879488568135624523357188293355172894026077101241550426112641207934760556951399299030105283860057312274481179439498495297718743043520943987100741593337501940866962769847930528664802682835886193846788970700925928977914273454139498403564256550071558896931731939029804273133389559919780828685929938435581219063613018614480853803242100711286630677266423499567286478377934544456809454306646308845619239725124218286136508842131007393399237384238619495620430065800883880657851472969127222923619266803779327400511193373081449719593886503036095003039023339780311819383411887028354111650287951298363410367823044637909075448525959740322276495910322923534634920818687286449128056882594162661442057034779416385087830108622570645204351244971455918696800678308979352345603220992958392067473175639747070893165685624827907389433408071828106978604074494425415055967802009404798333687391260553766220546116691441280245732937282139091408575441499111485687627814622977726516332968254931079152865591324038584551154090931753387811707273340888960043079702292224948980628905525762930239028278872981579895583970723012167839438372510480455044822731697088121830007334937040353806101764540197131385908670079071693115612127791256671183491741349771457953895551180171150858232314793394678461923278195641105723384826317742413705425863127123276949683456918394396007001975481091626753313744787608669195545261409798715110523970110372542225630425771219959288439806339969444852730441478186944041169631538293953183025540771783569468923252247137784031144460910289643888898079173461092509973783504236012045884854134398846850726440416867873836206408189086268128291341916416897481493405219490275678535585803467773632213718508946657185226114797261735880583801765187816641607527865433489106776653766962144924951607801319223271995667165046203143615779633021637820276978287192425119833553892764784683600653992489494564655565950137837740312723166409067203680292147512678005772270378611316155506389061621519199811895139048628393721561605930292813826716244197164594754655700413228379364582627016377857588892747563749120751482196634827759192406107342209169855212224459404376103408163196612457314059312542816964938453482681219509752705840290498972208776128459993727429131562093725268758663560018798154701163818893339620915896037128594962438574291173406376095478309408348325334452582105256424661033031136095398744961962668115284345515218157845792518106683219222533005860668252946229017996268330963996957454164030210697504464636411898605142115097275956927973701757832623475951557587031604767766145482656056758195111964483011229510300291761346457496356482370628577558238775833123713848228154015446632761867910488294837205674678577497115536224520418812250346504468755167740417298120976030038854056931178766160040761564768255086464382487169340783428844138760465112236012553729566825940583051687615968556649085503734362017489282493183262930885624411181135207315750631629001342425493609829733663799503589299098759015247807557576674896443523509157601404256598722904555044943681276084756454917883222358720193008852384421495307103419980331737538447733616530514078719586489421880550446356223164758109477371090219008328120832308890770013922913910266706872807257169124528153362447472190358598301818251242168904464673133265430220842670250746128949043351569550563478737087869506132527879590261364304152155464601673635448565883950393295635273045614319821759433814406946762255738512014815592558918346686492917817045843051414197701530275743115814736004912753682787751333494662216894164932199656940222073896762641767389182763445661589506414614478089621539543935255991391266790633987970564598323065147441829232395017123370444608748214564853601838833892321393286204688444579030080287262974809450884005741629483509759750070762270281010825946801995044066432947831097960852679238950386351450899249905199195211714842020289574891992285749187115825546603302271861462863157517182648075219156383245079490575033096161286445074233940496956405522108410294080219317660959270144271028307853917008727919945118525231163980697312036921476901447337466816313759534987551816015827191592733951781072837925035216521757040450523540365112788205906422739739779219478430573772872855500703853485576691587797397011640177861379616889210134772870119864146210406134020874894129928513643610556021891750076385651167097181208251092479695800951522322352853697796228790765290728509626281419001663928326910261274038868787578309003768432374280473380632367617170363332690780846257452915506515435571500801753774192848877933252178081961335061346024777325726651440266611296971493181516210886587931436231017986959854156431645226417586408203068847754865927731772598344706619982134322845677295200904147400514238328860409803399560762099755287395284149395693773885952996910921094098925855967811883243798511439433823561940028669482661406547900102477423801346841646090522089695716288770453746295730260956725771389522010042391132118452524695818646391526224212777591452838898217569927021615776982838221049742797107770096877128390900913124919425512402313891642220874291063098021072108254746560188167236470689662902389939811435491040712742549132488515152031025839246087355609930228719159789451115642562797085119812055329398198305947031641478942874624906204152108798898884171460374843701421621215779297547490726288600215172193107630353250327518535760345950206677637124689401776747872149802850417500762038396859096690523009381921649899914329539422546136734060933396234910692387194005494131725519991966981746861930744215358578099116100152172547963579263020638881285197419250241208224119201174559649316467058617221360842823276488997835793666546013229839044572191428389848584743644072968198500380643603956571749757622568922356182314898880343062034145767599779332378628645735322544208806304176559791840312430521039464190521297428548945765407987146668550421820061835948839966948334714802430072761042056438620015146548581082257411625240074221597803727352445688509822074571089028474764015682218473627594236866826993596255612499789557114426858754302598373396880562284806236707486777546594829165769568161282283757134668950158483925151906377860763464904697704938432984945742164302755780007919868452489343432808352909340513071634884234734731153273154578528485802436469763870439081474396877991419055263685554577540864009908972203708628455240465937933878329694201038581292943712895149519746076072601624682771665892769669744494263878126152102709592922703983007490097337916666831332393852139913053705709230811619829944845661572357776979119591337513941101211291070139791491796390068453912916756741018033095253722544054349532330513453328698029979008088439109398767769939139049978011821645229115890550366542715380704769552243871875528022751337435286378061264355858840880981327981496136978501101491745410559738594944162514452212565144157005325116959376115880472037597038521426104440240079704900460058986844384521373584397058824602490483490490455187106218897032326204250141664300815114965542614602690377283547098098773278764214859525487376700338579502951253123044906242714350280052667639436001846019489567698819880947935694716229482074639664407429146015308929337792999008792286409266118658841226635619120761471152036151421648114759963226821764455382020048543315202197487036401198985621896081397666599813508441614647309863853477108082336214740977194814118596025092798892010905298240885862875767397100476120057884637499522683736704326022748332112678077657841998988578991825579250849922743594291754397829928436391935728656733430253721459126231183052287222058414320471497581552182620470075618350705618238385301725491468161148473187537126704624575062545428027713196874582507660356272406118053242453810507373254008692719271187225363138154336332977005940291066151859083326142652222711874057864340821946218056208029019665745386778440891789072878852126430042728266653428438137122419021234353567350066020801153871365586465613816937385736647936187881710151748236996080291720382326605920701959379024674736762642327110872620729035715924288085503954517132027722938052657420674952791010639358350138376046428127387278943160689954971061741539418242559164123431052174475364492530379644324773045171896545671348319370419542650989874201942120579146063728092663249891024697681829493181446723213207892317302267685807683770368615339086918113126725385944775856474916586441743556992548957381651776037439688042591294091463005290781658400029003050403421755432507533565467176775318636961556250458937748639715483013369364697573112666093591038549629405463805380672832258588274721256315244687905257451899899249777668437343668901877575291205648143090078304632272025185860707170621231259148030730774588269555005950491777728627162584171708325432860241873735124069147797096820488875076798990146231760474574914778423116188378057895981466292744412255423198496648375205810627230193968466932796285267412573386769075634729648663713150000309263330228756163448824552739353100714092838154350626893361395698962341074586997440563637829620428634003716236371620015019193912481167007226129924008668984858591891242748550193935314755296391448641378828634909699223012649225246589444662570091424892865876910193643585146389173160798606711346231487847097470168646169059176607239761739377094450879655914170337313462402189063751953147478885864668450322738057075242243313719923705410614708066533511393454440397919428590316194472747529730171738772293765201604887945924481974955492143308176163839252640318408332336541354587761944117837401454772482059719220811596697154134742256244931017785773162922694940816022798718029833918048092265416100871431262988429299116942016160225506227564169186975277888029047836946221023355716001022154644616487884218246646516034287950818138931903008324575187525935553436472003246950634679840571933325384915628836809954649518061319848379225004394099357387696143738735097890315637985218192140677647581996743413279813260816654550656019514559174986061463267168383888907465049130656839256679349947999167403356737606230628521788629716456980645102888461794891780321508062921449225326229049808656005356771146870443604713345071556945673864683199538930247881708979723385962297627665652776218337561901909711728682265690535453184350006979805782445788237887689077378192050319341222766590057794285894801108159019048081410267419230894946397532831532052449411533593004262009183040874561923848624333310412922292201355183654688913573164437152530542783132008034617480900768236446530475361409585716184196633080005606455563570328833280479190723576761420869486671362104423181777016005341281642721047728066500228544882489199237660148617400128424021155122824198658713939299167747900261658909074258443619605537182008866418761300120692896676825236469241665874184345420905963468649975751821405743670721771670881453855461858775935294249166290935891470715440888123600182679662133875834562186430508095775126551018710142943690645032328234624108831947498874733985714296668962148140831139157398308024627869407221141612012482742632466956789853536383620294983957827338654540976269873432808419757463475515942665780831760625275465097101883781084784697038990081912330962100502422441842446904438194193561740465187385805437093912505021219804698403031629169703880957447159800543856020672491909084915659668530569490884389824870408939548923152319417298635513364459632841848993201576242259080923360053040204740142790879518437797886970259444178435351964667341676221691081926409019524618259477761767713665041452572554771419050085338903611389944932370021091737558526264522855128900113465313635213117923071628063205706363932193128509810015483409079008834655796779960744019022737911572516806868761996676425550070402085283532513921400625864955095560992738458194179240975252684165907711941919009455134308027298712584022683737558433912955347963177260520316427089683589329506107250672985761652250791268603439794949353146407136565313079321477761101639761075005834042404944846900910439067000567795519281712973980427033029175885442836436704340031244036266094475944662933513347418369236206978963035269621978072070293087160529074384786938013846157285670378747592828251670542660746941284447943979951420857503277404178668316346969546383546741939958457509459641089561399027620415336021785410625561880785747238449299185676225226941342006109189772064543971382124650050796606336669153665569136397977046073717794010048377389837387907441258747167395228192431699219062028599952013655371979630095926075728871515341445473590084632027432712013962071781729696673738638888157989640885551912024879406242490185994609388225990175282121138826235145113848896023510331220342129097158317324463459135820328580297281214044320676142021748859392202574584048970087641552934220131685781686269005693841794867566574194211318020521325964733748030988278581996800103108008075197472336540868451861706106705957301642274496641025520442572188673777422635579889471350388470968945665233474264106566749853819812990518497575819429561560421771531281854698200017303467314717292125911006749371864921887209477474230796994960429964920963147460846479022261981397264907442783183380540642131838352213558861230660847455930013991948911897225339305737226185504824819679174560376840325745635260981165828837765829098679893723086497168260938260909885845863950105561035502268075632505995775714081016129959668312870264439180504180788073956465710311298098104622754091200284762628055460613730955657278757540516030647734511075132324125675769517729927786551578438014735213911317884405903002578885392852184940014520313365621157117057918749917993359979672643209574154141367843499928772796374971836242674094855143596571377640885576876094644987633809843164287992372340121077159336482878307088735550005187733231893930130935934167366972233536322191008089297118445420155906635231356464850675441849656959664711301525111126604416712667181255740873350157845065957457228126796573997998706236533372666709687413118754237039908606211697314917724033063943438368041606089117176692349139253204854166129217636161900617652139093375459772096486749749801328564440698917864939873324043881992814330475835093325990040513833574601724301112214344748521746646301703885839149920128615590353127701808727070874537121726210604808279079780667670222003013231016546097629465860820092982378681855222658630502254117403090651653718687401809501372390457373371081953067871697093515001328712848687927445020169205239932908412160614926825552007560234103169671025839023677249144044769200901040000744584771336549403986148345625516563509181608614508134372730403345526767049663496131111361167754724228879373987228127154684569160699307862316478451287618953497695333738624652843261458118548412021505362332209559369664394892924737825099977882607167339864015407164090338446377446614068024836179722207746117902778516676102670518202641622063663125498898041545451793529255374975119402088492627020465854338747035052301769954975799320655135919695902924400141745343196040990091135910105457534490964349587076438257456421487299154850706011388515733511396990249389313850730462072784835760473951250606333675153211144435896757510441723945661066302750865616744877336251410691132240103781277797155739457312802179895712123196587027834148931095837052368983973320410499006104907095062422401193558432027082280262284717460269907111615941402143021381307027899007319667790010652013481606171131024975032425363159557208519048062920384391386494498421011136619763354277212995577190031729672626413960468634650242055706230046871921787807680532690911584104056672772342448700966081983115134393480511193708376937334150169164433346232784152859525587407914861238335306862705331691510627978837091272609581415590148175525227151055192566473383453293143839538145234951102420664709141021801887781659930781043476473312627592955907946916283684978304436047771999417018294292352301179725921661399478617799525910647133225035208554069672733624791976289578771307588484780304169183209843266277094928263581717237267001924747499622646894159757558844913524756662487694291627135590495048119644143891544546509682363362782860976701258446774194169843902123417178362137241163363403565513737784892127712868458488474598768127961275891619858469053139651136036370484058312640597524944998223534540711004785259000193001496845582936069919157930972190533270514522193369190214273779697990138525887945368896586602400603738618768387345817387322529145688125259501882931402951236037632559472820713798917582097590545299835559069222906329018552582053312625842890048483038756848314641158532140692095430008590055073225929335933161648762540372078327483604861746291745836177184817792858149477952297891490893708171969557360846752809795079939075380135682198265014087392752544204553935075771314727961729456309233940854765220532531958765412936338606822291542889895226240499495403925196974595012262686531419985854348029991212599517641192623086341783128043792796450961339908161482066319766187404284327639144476298496519634670024936833669433895231591807174804797854365191411438713886352097258221177094378136261575340647791840118050093150801124655703673820668764147483281275089491228733658658678973129233236779750221457736973262066783735222032307661818120564385609376455395768079814234206384145148742478741122438947182613359226831364617599006920530045091163082548145947589747790419270711562594197243554784821886147094399474691599525765058114507331828206289166027452277779143277579845924134716748147241590493360160946608578421540432736728383601135219152255032331672685165878918603882378135165710378178385753364402053765893315285229818415656825739849045926921031441849898307140931841746607971796248690520369242864346574658514394481883656706829584838934014938038241119956994738505657404698013620250732888474031530491656717583469120249420329382364977975515027466997650144312903539654717882979317434409680309390752278542729448754897556204016327879568263891637756669637081587161774836229817131644056607213448379920497423624140972596958663152395371304928933129809608515180597190920352716213766863922118363699892836524914317078407403327332371680219707254807111475457703755678775716407665164585370592619869414375501530441811147106909885928835043966699554533564236315845895560541491889775616301338664191676765977505942366970495242354801167981154455562956951817221509035769197173595690798833687930917034972660928359938316198389101363520728873079632486201453211517501798177064087776332062654388330681298591172206648685896479133641916259989331368718221276243327095693043316978228886640510008231540713136262254764129599564555496654207972284120927570955628138685834693540254342403455102382710500855135413994822186680162095883888089504829263501006661375139745008642598265274869042233922646812601853248976686964138699383209508983070849933026224671175185842973424046649810241408929479718733082333767807761965113038330372843062094177850496983726275496969136845557732251397601595039047863712383790419296014425874033306209303587679865573727083235787496549554892324741304902021370785665928165901812437584756551948543081144093565905764532039965810440960535400180207872310100325402519101291722176176918106175468082833980710007808847808599977752449543905680421363537145168964125682866004895202055283293455240062792791176670796039546826020372054295531163406860934480744041970195716097165269246692536582372338155835388460260597106335625980646882443941278334196255086927424723740532250488047144551271856882446614637720494356483365676874471816759172853455656129916244324090965258260030604845356229319213796516351904875455318973750071651869598735373076372130378806242052857024717134285331153036779053611237358563803779220654729279414958748583273621387038665315862325097519019757743883120582512095616009597586043003923226755776597277050785114991724511007969285787862185810287065098103231819969324726064373963982012011364476517862555229653365971311488803790807616708755088930424459576352056996170898039815423403671867332764345163719030270033253364306300125904876870844141026108840744206399115610981190412068350477210430102204006386969921518604916120091127359538452102408905151859164646051872408492845281652361359618255454525234647580516685514048798771317997546536382798569936585861273056969816547025698703877772550367975738450920091397263183503164739966033292893481371467573042624525856999504770870546759834243782896610310724647638936732093206252901336984836745899444688538924568752900874166219952072132045216537789806185522215434551606707908809415597334677964766675105799601842459751525370077658693375118594932459936684484486401235907378452246670210046748649770562135665441353793971342801685540971046496275936014271515048276575216238391143762801219798650864761351698266626117908431732564110073363067947347487967672119564152839357453638299982965735318400340051921745546683276951604151200223631437185826108431566225148411074753639874004285754846901555382649602926216290814654023970147041045814339289193881784226737227384209130353574948794404095786645307966247602540902037870029767057877668701676570263833128472422283745466454467086751910286987263427930261169326098275826114754237226611833372754264406314719407529551697231789399119437207456690390060689654042055383879413503491313394260646325952336903631026124826640443078066338943870604816988537384311795762162805177956828191381964000696828621833940813158198158740891567328177689437058099513063976675399300962973097500239732570231768201086439880958189045860645293383766376796991945953934802628290702619980928495059695458170768283428667165836917759392034429003891918386870768040775225329540074522600470127880763292694253857901651194539835110137176242076061239735068091917798314171222566043971295709022871168198796377811027837391021875290283537160157426418105743156508208789444770550262554226076387210227876629159743916841657658549958875344083240838772853134779217189565572901490037956413021929579432963461531270412184152158911082925220579480274169526715962871875321510204000249416648830470358368266689126714925326082731803343740623660861718018130962181647323002407159602577070563362767501890247231693074237047735191360563326380105921629921044339951532339614822908397823022583091709157442138753169522559563877100268709994150061581144653703199149589437925424581448533219303711296352821949315406618025394068627938067693448219859952233340280470437114490635957826283637664924549938648363170151147613592447047458805873204333656915815564847653032989640779599105128437169549439791478392465068564525158995716572026834712607454499827760456481797848660428444953661455817897949151840069352933091847047456918417795114874758845211045785531757007149406466120973522769863297115146729348385494455988699807995963232464898897631782002515763197831405841560738136378369316784336571562547251909040473446964461034600372689290890666896507783498217155593781515323457147047492865674440005632681384771314504349169695576043052310075972244647485929403947403753125812101871155191542529989890053502106886768007374727160921390716041742148644639839092076240305830964263467500877725502410728546941921218782104170626899451590636150991102906300231579751860961147014250457146820704335198143997155073276454216213306130652031379337869519561527184595474899772077957720315126003455785875380444447760202250672156285693727052977541453253319965726383658381823580564784429030449776549635090548885993111827060311655866971767560703650054633528227018172228918936943293054400104258346918664234157078836265003794140322921603268764942858959031752024961250109487589884722728669643365023428607853049091612322436445672015531023591604811329539835168012462303921543889443158617684259702403868018713470818573888939097286364399781925743086464844562580345716395398644949222527079788307013668880447775229646797375322182986366978957506319427826680764619495790324587962436302193687356250975256658885971856838923424603161170522504914993651044728743186826032427024409468021018555035613660543684536904115481403156412832422398116007507262500033691278798805737433538402254255770672935442142580147485418491617181047560944389653372503557658853732191079880549306136866255821767765055758047151915861268436407484919926441364536952104411590715867693735786455444812196894216991233422242874600964871237629249542719282474360120751645295619531136357358549860098315733466961582063600377634149262414443352744219504235485637362834234955020713631440833557834987929091777554886017968363175275251346875829758716131637391654293056243757837239960650470409218662500613212075226430586189414850668484540413176939747360546902422716721638440999015022667748582586305652852327588096736827417758304934834717828534095328648193831655825263296796909537290738970633402081506808880260534932657284065671257351867076886686763364754822725303002092462240009791365016672904459720693783582570959151993947196799230883488248920707694971971667331807071824114029390188123674921433505059385794379722943682457119135630620966844571243038293794200055780865371435626112251263375855065558804009219280624665888397215027688627966961471290162391835090099037950506390369913583029419477080694333723577221488187749276494111792335319031272765788672347497510939417123014660576155425895272280381634978477083314748202184021997450889444791131227112318642676140497637271510211460677778734986325832568901184481875797577893027391582984187659207249544567780207083504930234407239866389477464818997512395074497097097922148748833942803036308290855647356769682351443114392077979761434719851118885111667316563299991921791417639951379630957449050611818861251121917182709461332222546545692721090024814107031791748973329140543346150447630078906857332021336085578196568817981808255357071423423003480247116190121659126165333642141284914322552996638857322827633231313178566575202945855815729518612168148147129632264318838876718603923535257692631852223126992478488447358034880052750178973482092864559948326024547662011777411984239743754239681683487242162030669890989650395315768399897538850084208296764862655879570921041606864994495591935280130663677203497983465173845214634091929686704775067094213299236346812243697633707870417443802644905993164628660566304289693336595993962133766334565776398075692399264368362737472508515556705495978487591852761804735496314272748799102018099287082779409345976144972699097684840607422195741268216891772002284085060653656937987134626601731260257762204360360677370389157194556410496779178949176668295605731366588211347602250061431949277557179288393613997120269255862982823664135297826325495354165963794823950570592706475551655257186392029033000481946382402676855541932004742811382295788274721412082440860643740367683532511280056258110552896090773507701816785108317085210210791462422139219689869860330884320127865292096107222422017158053519908424946028050906616702175670949396917270402990453798770574981013731690890879904108160189269971495055833091796855230049868373565997104948161350811600610174283553588236948426046330606143460112198063331863562468718341111827238270356768778463332963460454497905856152236443714775741924140957831890444655401446946783166822473404767014377457670179505927696996139716261545677778316586585226520673491864944286993228556454559028141186166830957432234669511567417600053214481274078461071026477120705174412687741825310233397370224398483444343057915721097026605329375916374400324319457907504640252545882400246806910181914515286472133484087547037735926470000097367363691966779005422917245913335138092983393376722985988823949293790561257696611066259992119739721196903316601887609174484045394035053669539209809801467320835216801010418680900119206554748521242083942812008725018335992587129725457793480834734931893259136051176603830658837951527001598918608543345170341669467234024874895201667690839533269996270101726622883189011521167056420676878781611335454206004544441519962345931313053107643156476383336016787393064261158338036092956848037351671601521230981749328010311799872144488521960913707602134314720699043712428010614559934767334664464031032656395012333713603454453813203639879916779363656959585714545183014022308456009757744928082158150188505507280658343743268457086908222422627934277587923477008470477441469859314568780410105731435571743932520950676243903107580252789452794790129182139476951138537913583052274540014145395183257423368209918179832846490906453246682028822584919321027564960357116226674697607943890004081042544877978001121950194755858204400737631107250997977423771563932878298374376562500537862417026869725204184574802524369845692829728593926800979005411747761138520839528087360930672798067564373426069288981478369648836169458691117182090881336559644875118017361034408841222448823069486229986622430015836425258780441800363446474695502037840502885322821225486571693678215819034681341513886088257835359691549180242931006117211528883777327639096739424363584723658768488996773961532724034250832101358137689948628216631143201258265348915390165662367278674852032422137355524911211971404320124121549558375941924807988902891112534297866719896767184206079405482367387653404119624677771692468261973091614823834986978172579117038603015058731072262597067095719334576173459752458374454896319076346440956303188332678885997682892646368197110356312560903206612192573909802271381115915003699033778193721144329356440453405473124894865131362321789884918712279366638824357749221261968794722543560581893833121398018525590459579885297828408085154342945228568444070509771679776701558067136259001169170830986413619461691630980931692950580290803848081340316659223443292326698426776769094342137554354647747317507378220463594569152761425158865503669651998075369541824767074660759903307846377296090714885305543089147931073103443053194667798663288059227691654619036650094956140338474111174991733707962034092993592384230032916316951482992787070067543277710245032242638823579847569709585438477021716020270456463144557743168817686707251159741750806055490574458787472099516527046107988149046401715541534339878676654046609848221278415132373010678779265900195702856223525197187222669592541944956696913238990187980301549521301802024705429142227016815805483053452739854637745085434444835028785929935372865249486611440494200427299565200479533845380747806701532549831795533872561415871189627485929623113374845453683934984852069095880937414202742592335870819333841369202148496561712729599210444032637275739589010225462233433751922265775971531183375807796007632862978808990128205633466842290082646606719371174085793709410571302321536898094833102929272769044095005646865435734316310997837584912265999505065359214599621585169197391454093312425165407912926183253371098052932782644188551120854511288350160421693789241163603735629874937499829979984418961853333603813234958136002593788384601688062593470263717899450458657180010644871826687914251466001719824226968441560180002370582726388446365716409337250697305036622847740739393926250686778573854220947386677206431178763676779386263298362870210341989013756657336734445358914556694146873714371953280462607668694431224287257552389281137735165462626447105993013174758683793620052410791590718539594345641513381198981060578084978427782684320224585866923166083966776212306602559859258249090203154917488337578281791903805463140807916617738382999635082946393259905413677578658930364848297053290422733035967391932033231874025287221791297328881181423246668978414092744060506313780749570681901790464657997311691940026040009962995533998611019846676048359099360723226700404792200663267562731248736891109744423157115743402972959721777046586912323381985695153996142082392205533181448247464232342722077378355206909749578644832088195880186709381185509142113868718402472481049744784230678042636012692117492723447243917136598918841540776752610751804829174084052039689764811946591353564690439160974622362783559773209500976574414895999828492719980019855037116869146574383850140615949907146146946871341220737697070376405217198626552940350021665660626490633149405798329240463940189586484174955658025418037676652721603721995856335330696077991474034848579304921836495388867145953164091775809252931316129040196453921558864527675779131012540661877997325143489105231662573131698177796551073231322812617416575762220108992302585736184331803726932607886286337036784551712964651639683655663839213647853827547801629609864669222099522756444908225608524132164582365334154258308915000950035648121724311151331845792901246558667706620624656989606422253755703337705872061692805827903761559582513849739962529637515248578261105684800941033426258854117903042253128560393603468154173459064493884901826000468658722787566953817383629244466507871805166729194953780216043575191348921500585652109790369401397707784648639629696430206375401444873445830570813553379877225280196922671988223821183648042474234815750030863078095000391572445319564785421207836082312754479062095337778786320085017655599744220926797706350267524237451282031222424056622378863263244733561201667994155629248913217610297732096271016771546423826121718805469316520592929960881312026399125238991928162399785749259807292014573636460256874418972546920262271766482944053931990872796393546228531446535864757049612617205408951010705172956595550259897151763771794000736875656295231167697204003588161470647120330219301081781016843391225700767377000567450154582530706423624253497185357686414721180530132334009561793266922637657770602516196988555540673137712046600124780814393798759465430597719902171783191246555826094770924210941320252299548293992966093653606945463541269838558086677289921405832253765344051125814144739132440346803133035943780825097318756325807165227891099044287489789864661091049646721740270354224236465208198063087378148966863297732339150908699767995417842553576165443264916398772114323473879623945316594050483926884153428283726398546560058703145555728016420141510200596276967407546807763600871440340680783487230205539908107771155315368087104695163524448456701593334680081632538240549057399089635982178897573891759828724208010732093115258836576425754185302323340141337610537007884510920170666538732021649790492801755465711463542093760018427904782554889784427878573859926665603985648333088423711788365520882639038593040051536144660765447899772224015105074060288602104718461433575122988955302851858935189260463411153341318336739417190650445084807542775895079924854364707483306525921499343682838138521665917567684526508597028669283899121304155759625702580717728305195787044746857932038366650320278987722473586665198847489032456046922675372340427379378597532349506561739961468839312867237675109392415032799371645400059654606284222034077810295048981121751386764734165551667644093583700085542303018967690922358073558512367462644204568119998247541820410678921668990885990142671687024094373811703186054521676780604956460216619317209347228351839595498134015975181133264912799452177154307016085309766077607659563713346870583828331503349498816025495779938209263538379819805406634091582045094357236583487818215669972414271370185271932332437305597510388436351565407454856301913533237744196963539455773446128838073832777590361516087259070896926932822024318337115775280771914479509853035770260866317896497313403027201593582318018259618651029392017430109617371057302138709260678581677925093186047861027427600890512121212821981597431693184917782137620354290371521117325424926487222991848433031156050100123736771386875713421909465131328015366497919199209372378188617159951618997763300673362483528631720703868614041737879901976759647756766918946605177510980572266537043927698359486261315408711465277432951656977328908130757360071704801292779735379236330784971194665553562027696476609851944695760322320796900541367114117119334732953384939441411144326567170135390211737378755731273675760219316661153287678143509762154539126903618675694973806289012360598026231906999233486430138426828725191199497494524770177218373405516769168245277279901516440218173084660207543141675859792701645639655561005035654720512678156143447316395776989910820300869346586443579024920758018580580024781934016319755204182562601276043410347432989456849945296174168578704441459151485223603763798362562065666301335672843972905221049907119678718639967838122580952234301974529354658586847564116122866665538918399600473599619907704276978798506911426420654220688377043277191386729795297773434919014888819430564349791060713586940956865857223406331711041235270039130674929615891711585268942008119351460265546722715659260574927567427765069025471745523125078320996842365430006791805003123683779009021160839807933788366632459421204062785355065952460975518522543180198122678229537219823249396415888415423436113772643877157981483207159288288777027329262812879493912608181119415498432504761830390621331402186156317917402751167384862581899044600990002527115866419335563478760011747030541314056052807461055916970743903400712015144328527169659979997029200333698244678126959926346198056046162828593354420574423873453686260904322571854433431493918305403362524335562827520286369487457346289611996197665320365338487913100298592972889722297428448480669167409376280906101101310391782665389944944396585519842249134666960882835171196792410765597659151881202764406754236677584154732504598888921754233395942076298978833898743417856349234231157937674387462966138726173608528370158938287032148590651025664756097416505017006323819963049565949529383191456045015237873980160010038746049252689662352044013840326460036636514946819883809880299590093143371631723842280410037756381721033232714748075174191162967902471072398717479291794681004282332389747206174350107567768771707876421189452090077267665417408742283665081324124417466207822007646733641806282035634339920150141119215825542574705983399979809978614538708189715997415913141080440172203798189240665128647051325856672837311740225447139614457191832908279132880971938686155004911100508392993546325504062082362083577991591030287730670525549088692913587454584486630541841628188602195728839877622907371634559635940206950106034136934500782008123816112791619936102643407900114394680405230962669415888790893346208665363380832588228916233954076425082389761013709747184660142482986103499425118230388170949493758157995134634869956989157361700828221339832622026486622998236923302517102101212761957755697966642784819852352993236723638657115457800029147372240315106526954795861098113620945983451843099955555279812645132681496082811474157377529671883048632868368393339177977278320044283392751232646396672556973844703258348299371555967986321226622641089935702262010086537491376671478918913615142258852832657330980238756087932251833138058731885979205036472108753791433464157253814916490733120855214779579037425037319656153145379722308567549935741294132896855075988861578376547955564777380618665667610415158147240530591526453911159585316058386847322866389330926166934174040178021139862919435441329358284391545299955238987263933591110824216303961190918039715596256542183360457308903709266405945920254348792927904525342349640518032106416136131471624012543956288210193811855758860189967166865774219392081466267150649173813838234432413529924452922971628781903933623237989125369521756341450857512560411995948146732148507609125872502652579209754943111781250417089000510530372779980969650968449488720635453516733080472817949033988890944343776590691495374732886519137844225948271640542149759792302850161881430812615211827728024473334874612267249523998257099076457855818837634616398346696328698920932053846308478689228952795429092751383789021313592057869183504384674048059148679748468947240481818672319929296317603828256848403786335125969428319648707159003824330628646421756461028595705761941690544820175714208694483275665337228927771906064801041595629151075994933305947256635762442623166817115887080366303234150692476576271280200433669280954432553926611348497006762421802910070929365626489632587677270955561390543795986718871423432078387323187164641989767551373476000817299118539402711747993238003259140115908665814263117440467066158533521390728759537900534528961545260664234606921201796678033064099237845409393504577391225319288404179443323522074282573575381977383117351650083442876423437083379181176274934450267085743692747223442696770526483865848734350222591299944420358478634787366936733322240696609972330762293014044640848765054942972726146544275235917344747101026417521176743918124745820496021894520634329992370638028744452582469199635173942523297553298331780188438156995049976246090367826703125690529529336927196450623718709208731236048025334900167838974715497831017254315686024793770573388851391811507123527202942934005219831830367653017945679186572344210081869410470057280923133425560122151266926249177576952898997346922640798696006428192383176598611263390959174943878103764608893432453542280717514627183966642767975895586849724603332953094640149779532191806671519490107473636103238698013350803226765356388095838500515383581485326120272359879573041416271572249706448304561763777208199713008165691394976280174060671058520905514569814894739374724400083827384793387618274190338835324579041711911462317537115761829107048184441152902687245587864638169171289254814680843398627979010829009584205850889402377371855416341991887596811457897223805955021774964643089897354981638321873892665877788761714493902509721870042834096766907646738833801791940395783231037198163807563228086807757728773247476903044003480736790635563211465787023483022863211057318384426154892722194144469440944307038982460469008913837901428291675075448420717575964185359882683929870945813400180286613459094013051688125914111509047007962134807139709895291410142853616737275151998652487888079905511746604634895907779357255660189662191416805962589025378816567005012077828019454800087379761111195950876846863272691744656976757033172312944714821117211854537961190620376547205624388659037077234653646719146105969161713603974530478411063449188539661017940198638062415594821068593108063000526646031855844553331333199159269610254832004369298171516042071572975349796285963098085264519592070775176537787356706526245450360059795905355965954925441823360999131120347408644586097351854478498643280031161450711336652068019879848533174482738991136585972054464128063218715388442043177759901648810961525435548167787598048746213530288982944523178817603966504797181562515381460022032588357018568636069265842577961802534416326175053973474280727781294307285946347276036747961089213989530618321037215938018072725732747726258446509610399092099229468107783551956126030605461511476143312901169482714650343188719791843272445131178792938119458233569009305884848871461747884364069008431776013486708834271641144448072984489335377835017348560699067625350242817440315165899687807118863982815168052855866813116940490452320253496464410300714973928473571017911039808085094431917705608787193868211477644926461087555941841976349467102971179164769499313398199395603614940281265410489700211666993231806834794997517475033073193868853822108496744426041009819167908349077483310070108787451612177872287156622624673278194319446746176141251580895790557371649286414011205198514812279289851582616607242450233942899835634005426982658758864748632774242418503119990915553204615870968834733856995620747946716636079938127430852839705845566461813327856502297912776063702769308818246155066856087358724324588513496027336452210155567920021125680440362607246433249958088570102938128476382344735600958831368271246855664756756647827548278986953292765643934597700934052165789977648712775887026938414615276782642395994203774092772061401807903769163753832294070876280360224576547048726349037729028698546458621532869605656447627706948077038892641744208331541585732075736799150107908506606941152728861552101781120493397514065173547473901231314806311843148782853506278948070721538112040803917401794178834601814853652445954783942374126593614227117839423986317280689654116032384293305794069978554890120684581456985613018582760228805174293595170214205461881935709867606376014573155315548102298707199939712454092178917437856248747096507433538346679519771585369872130732230962991551016753552058189924266937292090290296359465040196887587835493856498481577923704060574121559290131976512242394924116545907866183372151807733475464882424222698794007862498201020309761945862470688392048081742232243312229761979501981728772752353198807748217491905952136948080793995704225145384719857435845379355539051063748582274394831241284763603754894315484214261060362284841961725003473999844554421030535370859401661883320504287745815622495861445518570299191544370108022376306710207940761719154192338040263577576613968881032376068158669154449843804432725127638882303702493344663865384195635523645374290988642238333481790580692522169822409835182794364374276908342265242006106003138203106921689069610925079602341394620002994775514563020350616894992124730572299895393628400273624825104351518807477754929458439654766347569372715600314789219326848709963583415744254225308346123334103583560092228445716309702210490003715671457083947323191857135558528310550701724630285576514820235033976558432621675774122847929768456910954984513201058110407898663888358264248728699435416578356856458310023926661006282028818555120969947813876396975633744470567132751627945387331219508619193828265739401505172734019687308017002004187092522971397365349302439799185800365345674775566813311736697778061979702974804373929095437979282788761177693596977539161950942890858042563906650990982953100477159738813975570208615100613773410365633801039672839273925717349560641518495956034221239381837918321885761781258538397778254982031750599292193033746019778904275078474915788485489924770666944441474069358695597565835919174448066094826920782534285206910661265674431533229402038636830835868372249022997438420793767670271478378329287732480143501016471952089913617471098775561476761847894444997538781702773007370812698448137437187779639206595177349297563748147395458411286494302071131405375649840223892668069360248850977553282016741320490945587427616068907123347997074089761120036546888693924051916523799971372452539645631783069809238397713178184602138291875521516275101012354884970855236583471497121353552667774369717195711188383273973335916001049719312690889424307203168667773104525971630767896981058999687045545489963866376701941869096015595348263582746821647941717848158722337915047602001284987164223189569150527807699519474733932090126205034522977071924624324017872499402397114405791308271697111050667481287027628119865230758871337531271135156848477029273989364204280500941613283995412508645010427372767942907972009722480494964634973648379110145680714678999233333049720597403284731232922540254615402584719313268447738020454548413394653526068255100880490866551264737406875848992080113648969292124753817066394841318676694505056091987503496589426141303698885897047055494431247382756393227353467032311071109952202347567204727392587406221309384711710580062507884924883171534107065454360899595454765795785203401469118662760824755763155235312138357165883916198723469628442873570666169160579067469936242094400037497905718935206803873765458777192736596438430115894246475517945221538502566132666029575063463514105602010162369511452365971054579342838101726903390674423364879042469756524784435152513427666826033734145000754262646670171535846128720354852346653620867000242137360280807483328403942027657474108342182179673619893705794929242111820314269678606397953864609804706077083166015112964618469544639847464220316215090553746871630203620761781392300767324641800648589342930802745649482250041299209589484623030370771532862874792341798725345848022587803930133916878920915926668776820459009582284660797219357758698056822131859340924839140808267863577603968560391402995239986968011955790626935215995839948440890964424455501045901516811005891651877182084432795522321035680373129484878044952445206956417438186836049371622204132384543036353168983689897498766458293782740426320280345786724429917692538148488550908167209566166714980691438617501187296463090835810212936393054112846483950640618729179053706926678753444029973101302905946356265015253656998550056365128798295185724922543609029569632582617881507343001511875175572008412597582200353921997041188399330119718376275672728765488470771725856501057438600287748590320205212558482288052120459799262512599732894951516590467740883781899975850479635346451993592186533172481300063758248673834290077714477184339221938874445134867512599076828587884869998664444904998143908042087942143610470874569042449602233168670895992047650272983026236852207966539923998866781108580391351716895473391902134858265900251486876358860475045157693663218472172881508928032236848752598275103042020618681213273357097799385127565930882430866481659360971896585690763498855023121394576571029949500797773131630305149279522784949670517678359904924477486939169011120199677602838860394461608549596120703133204136463020833419056544005419912689670491184285689956966479526991316987461692344563220804802127486851786972687672486839653820558322678680170255777871721747004507399717415744817132152186698489684969456850573852653834657230026123557396591301199319572362407864851061485543139117832270071134313080160703605868229017332673240620430200255183386461044526104570492717401844775761135821610289165601801975126305828321617057145222039347876182527807285118975948996702054830738925342593541290996321440840980917668495276435161125803689490203225997447227230275351522281579062312880312279551566401487936785312717360017382002666149751495283409363457279812206952965142136319119118336061146650039846727823421639949802790905335525632962903058998077011091842454442266644077267983227151329499919398986616488834250044467047663418254033713704006469049284308609954778375699052195022217464652027966607818730231525311896303408793641714158212960164064331602749197151426757091963597169465103437056338887296836654804989725905099272395071135157673838479078491201620014079908926952755261564815171617691706601987849261421781832086061089116286313224614183457290412249667158880383883894287492260649495942228920018547376016452328421057383571245817984910327163121742672656881643650183082338030468280151406854398312760313565609529564570397861993891639924623272874445041367190543642244228580193207637080267337529171184316088604815114501757819098703376622284628100804051040247387790925440809745161399355103050416291803514544756378691905772131338864313570804405490815214685350747620665520811780886208432437209827130356196359861342410429841500719333905979667265362399023586365674990835797190325273580010049221915584219654300414158925508093859772188601995762084368910682777903765048061742275315448534003048698942919030930596594854954386074795569719023772053363816099716179735667257311096999053338231875846980409484947419358867387728159791797245194878485693137054710546002716957665723352861117404506905530436750647879699848683287029483487432678428763182030448982498974554920134967898750192454816876550533754864396263870639694432026595289311606890775958394553237672693600525153135201521970821954719858050093781821628333788148129036713848494598947144765133143261742673919516125594323926152516438342740565470164118842603527238295011401252309051442108202882105398319042026273550564472874797232551623980548738303943532758846507288772081382787545315905277994678402112730782737211716866107218327356900007307093983053627437882146250990752732275728669165398689432159418177361938404636980994283720599721282333012381666699608272061927306259139732373730815793409778423706415436420610606966090504551822220200151902435247651852645938346109793525273605733498292491604618942487186641491789500085434725552787502516128851255236818782210239142410483648092840624363477328080223508293051384694721779003402824581903852779441557048501516372361019762090228998857834667808250371189211223443771407584711913470430269073683088134945879055255094861428531811161590151449713050376931745839304187559493424876082844700444967378454564425596534921516408357260773343323927479289604575421837324053440598020036160984970266330112936208845583443327349288037291836487643035749757860399679548367032086595309775272563918811952941481506489484666532618464182314970045269909030350903870061324702841089982987040536677782427568552508760550173805300403918635369245568316384039569619422032514785959376642928623469504569814462732478945235629835388912972198648837260546934496035103591179803649206261649627391717088940073668880569049792846550523655493933221508707150926562824083943412358133693396429800637846773909910384074440115117239931189118099700874033741393131928078859165206355437338126857088678591204798346488742479434798742672224926505772032012135973386310312411445710994478368468218371979348813829446296719960266425774412584587986470019463917635346083549877900111266715080106614502985435505726756947296336108007653350198052852400783570734303256156219750062086026775770486447432954062985074135487659634973371350913848917947601166246665808639576832233899108494889944530396175510353731723526777147924912440302296223510742472381269429633775526645096201141866923391334329500539657301100033596824672438937482252881237088416346834206035264987429426364489612969946106431465080927762000625499469177445520493056269094545454190322371976902992868813288373760699087659535276964041323255484724578976921730889724957002511923233580649731716992277257053530927605503335264017824632006050307271860278036701779163745245864921867535350986855675093944189150306403243557824881532372774726444342120957919877975456853787681855593561657222207079888463185332166042820178443657702952250035993204130777534085342347451062252044376577006816962376605397566957523617040241012124876702305885068151678926679746480357023736408696642158037758772778588686403580519920433052469818461196015052682053577484367837421284451975945621668098699093388963850471466618965481940869397629973441438760377086727554438862678285787927025854602092444879254626397838036050280084115871206593204517554535277789252552278068429957217609679690023298338573309057443208527560769777506870503724261100783637434959463912508864210094918886328449476774577132202774648628369993380112697947918878531686555939228982327086934294090186858021541355760574041432214619076899347622507292005623777730264741062095041789011089966443529774400795624039608654449318898943631875650254579294632644468855901818370647615365169989780468308030896673545609336658383264555014693380286980810938227661665955395071873255742751273307102409652976876289331340926868750507533667640573513095226197198443337642453383590564407778744941758983013524291665366542554017000218554591987740362947153212232750062401888058861008026873653952432189988647100177482790818191965394865246634607641843174549758513790227717597523546414593774166999590927319023555573830214838271071431650411147325458084565078867688476612761007795288125648067515017846283090066292580012309757123994508743811707410072750188553527228392290065997705327698375745848444360757758766852259961154203550650225028606877365267581111606278791464147407961717503721862746908774213671553129490802039713380766160779141618163733489152456090054077749640508046501700766311248627079983969494696230713434514758197465139890161370169065683252111344577343525376667977380403288526557212462623799090623147637398324227204041842491783640526762172482930428308583329979331115972664984590761515235808349557094913664028789886675999021473849399095634340305978061998689255599346606997828257421567443572641252747500243510724071241085452599437096854949561072670019373841378948136946759894013917265131664495002043306642911342312752962211708931461031043790729167264683692664642515226641544306733592443784696827340601353552631290209543756116660520905992045208461136459945807166343659571649869621495693589573799059577340407669852906416309517004692781673712790075201947147241118590169502374201578697675030167444959714731441338682288029912399019626171953952092279586956767341968988246209627937678054545479568399922508934297690005126773536221650414182615584509430639394146561968967929993803769044148726426308770662179951749739747181262993339113275722190001080425882650356839425783276712008466895411304170884739398780349019821243984557204387754711890164030429751519876392891379276303806515434920625598481383999674047965851060929662407218701138569927789021640885212640610488324844999036930736677459676119227361383745296772498712353040368553299420478329607587472691635228815696490915778868933977940308571020204442676667338025142869988423856419902131919166517262731479936208057077894191057851751768151787245496330788296430743771159243841311761591448027190259918643796416025756890022348368052493732258406056660037421224287526102122492595561903967337010533763339267990743670056753450530343640863112630232735785600315661265780406515834198761678995370871164255328489489714741166032518233446568192161984039732844889965971594838670856116104135268812242799924572500190331676463500907717082002427632705303120479855662977957246928941888707754863283887251779983099260529189438942289268227468655968776783305883826023090440112454458775728038643187694401195363854920503577317256376444614761221437515516141116135127476856614510863047565762573132297166331625560502081159624796853169445937362613877279967794959522082056197057906889264086148417764991024102994916753709863575951060767964642309198249727044065595020063639650787561936371567575471471604136445770381028914757376853641780735106474510311811767077263912763311579701250857829777425497982953460050349093993586867922800356872790285379559213887161370636124963634494134786731045402475748187744578594352557788698828199171930637836336752841886273762261008822557770277308076225888275496041727179523215181793231701457746948356218647804279869632737300317750363823354910141474380531208187004108912908509015119556103456047290166146968491007128414674445834892651621233323129592475852224337838990323298016782149383781345303178269080496339630505009456789176753818752237781887435320019749387350293402882292714566363337411084608270709189877630715117222177534831628735215574073043588110882971622432139518536850383525366902328251594021484641016172559113736089300504908073223105868718877886709384610424912108745400045244669914628158422943629995849774357701023624345603396511923131378156130984961566708683159623540971819915281521584352742399141409231164967498514438938377438603948711884707067582764569946223477269489163134129333774753203443297846919562497966320113417971021447421030545585061275543435646239428062256593862424885890489176878716735123735626920826875010616792363954471668419082997514835195254669576032291762526728013805023606125915140300244014295819632335452139263107926385024438269000307957700921887615906705563057328998082200016432590924733034006982828930464358899755807565646804784494319210490423435233392225718848704127654732660464788564852103405425510748515205060710448261673228433869350331474790266367039801964050977002362448278781713900364914707937374525112594590596820740478647719167185954596205154198337862196299774550551354705836819008933426815439598879574926778291216870956633752127710159150793367700385596387766244635737060226193774587249686298863604449652493344699962917795972381474337683283866344173992961896905404245777240161783702598475670815209494762926688118045136678115018275422062233602871493249074199261640966794633020570319530606437044479930581050031781393547221288209847169738822048847700712908697395414976833867413548149790407799900143797816006778888535595113792236755851631705334288858252590729049184382623999731806647021703648083321035602119601237499176104470696356316333408407974660978790277858533605361757128679922352217043151200949602230572216528286943649138398529024745833697229798959116984351349278826649299317432814499287369850266392869820736095312348946376212738955708411915030521232398659161862556601148602130640354962929307066749250930724822257095449879824793451573053970067924962699069338723875865678539691042639009944117804870930829553684272435826830939062269157624465026788043780705314509730880883579313552918719683235898750187878170396198162886264713800721095520034240991753179940873739679116251163162804059213493176751786862629619384428502958875625310624981069009608240392803397202471861180237579581098785934871274386657068388120395279402054028059959740999945709208336629590375521776425583474919869486756400782513285982003195961382741388653604755859970722465486493427412360823269421136029252557981945844817014406221807647052963432338238408958382478404164758785941564527133354831460283207794843182151086549279030572519039299814081158566926921866768701697084791022203491785141193481361266680119321595040126453238578613896471045625143851670573113569467857435222787848446660538196615840427821823233944158178218164649071979335897152259958819987354579312401782310591775782856401367898323052917449367508625512426795675990403086248155906153659627982389511902915726403627673555870084932852251538731183172183949795175417094545959320696351660303608471002830532310464891778744986349155201201187606514787523477683382064680531409752115442211263209811735756054084912015892455362849253953497059066130614563411612905803749066483824205542887089909654015712222579178293071734866257844163641656692202326317907742235920337467330545587516876292825205742924326003208447092486392623365348559222730764185065061469993372706782351317933529903592923274597090127529336348596193473048011375886153649254981540369161538846060413032162313418117116834757510155226169074384846725359710220408530115447547148926984600675998654330053279314341850525911836921406246082059894344848249616907485063938840911460485772500925953412471808248267881518508094258320511872343281554187572580819795449316063900649575239718267962918359748862583300363071435915193391083929806357947918725874233493179679964337987131141175224113697079258390148707315570719930977661498480809604690963104074640681513687148242128320440419780009992682274758157985312723808661562266719718722642055100363810957233507834390829775875543236974289348742929254437586613308730291831026496872146993407728450494255278022878223046571999595905426750838267478663736122837262309976716272356735928659665991901468929742697551246897829356384460610291207244594935521343684674431714612932857667370099342394384938841108023901806813527884853539223087138498287161392841461132235161304370616884925556778154356038053073778046297247140459718089689061623352863742239232201743062457956704040281658975330273837364835858291398748197370867440822784951866211643567476511557522281205508828612885677373270558356016139208458004482683674145211192166715936348950841439359613622321739023958046978016664494338072356162102545111722379313704636328316605733196101567708937425793315552462125988640319062014754830538644866126186729614377188344849831747435952721233249228468812385785975117940068360597977703381364083309074282139210002879743474102207840821783752519264503793019112815328004347074917871368035753427290274891235547423689718594051966880023489176865411065541842381601631354914573989836915641389019185146807042255690272467373360958850450702850345605836315384769178026409812548822881147055784324271872171724529170258694773030148030739996713781688554874923987180928632508003363186571325537449387984335175545226172731658139816359456352064492261074867340855800065845756306512495326688981064527902930633300945379915908266860407391725784464068486746342216549014182457325638398388195837365273584066715269251791988625840104223841382332462680397721848318188451391555700467387663703690975233598383211005148519628605845101652931087239408821254815548040690982217976115264892328815356023664992977431332770620713975132703288038081085076436809119889150368714606237723927243472196938573158488992043119996844971398119654963521721696390289041343454838982945526547635609426107857670082154414581396672822275959391424359930509833323020565644031978793972719281793435484584839747106592291461210944557612703058545589214703434307845528149532791693889660638441603173740348747013821767915892294647498786280487604589166733702813332113974996562230475925262614012503087214829846326706510194710557806550503906582550156004081763440447649400210290422967605560727287207063283704217862145147958421917186936655614076612664196490688607627130936260512744643709150403297862009767920390282621349651262293225536870161269901825474428659798352796047655353981186584504640211243748957266376880776002701559884947244188646580955004854231573222556272412884289058127647184858647706173888726992955027090552141133894160136376334760376834775849011055444100171163820793114769043978316247470787282163313846962462531625383489968064326910033807965063500973361435761910487625334517474228370934908563339487588138811930268067839182490619973465267459775783190880347444880477662125329882873291813875386811609536639549092262158997547818632357856962166389245393012183252291547418105837019862704704956499945921879957338774089280274608862651523806921866579992790548882252649031705168614306026964162752904030004773550275218588108429537292028372770245084566555186183166106137550028529905620583528437376891590569415605017739574434149031985064056589241540955133693710450596234248774625470261541797944388043254451711396475446991091700619003591132594787672974179932245357814877840020211518974063644197127362055372115974360487042621521381141742800075188199199500238620110925578423653182325220943859045339747820420290550568119852999755349085417656303637845564625863646644987718440959564253306533510293894195839049233037649189371488815149189986302063424629750209853560638396839155960707306405211674440341246973497648523613953193433716052977046506867806353846870656264279226742238848605458056401029351192034400984246938008180221673212666890289162974987144707318546975272368051521353245294718414141726059787355607611282758293460851005720091449145374614429778843889129770844277005394148167646584565141165396559948596971019349398305027324046408461730703478376818663161838101334870751549608188012951116957347693066000007920309977495900901343980293936329327762213425700279893921739845654395470008847682983514768506769291319607501834491446937778507789062550053908154482169289556373212429197625743015692342350067804053310310500179325704094063200142431323385769144679772324780123864015489336116926702590809488533938466693883578992080464077213718671185921992407811868100964101920475454748818018164251814904570681279069264552326627849160330724340123151770629194001639544946712383771462375345962559307393948648385676322662414068234901633833702985139185869655069053884994347981408722731018543574623955580315108471247248043299981778101301985817296026049291112270947083047140028262117375211679761262042250719434300398914490098743468969970758513556738475709075111170320095130491347114578361350405363252673236496795847585376253191740362834333904540543636336597707438093928007812387683086498498469054689988324630466350423429832039476281320384250771251111256237913783621462794164092816206831867587432839335911562752105513991983446353371126334147494596729908496955442902249845703549751718021872128052466032473609698506472244765621516428519007249613061032510240544780471428283720117081775279821045224678726113078670916984994362929251007877714516414178558660991070406194587447043499282258888920416328605882274140766508546517950994424136316485582016805709699403491348373047795347147694189996052876958153376660247741739651963124909178657679974262624834401853937403768500135945164642158287719460717929080227519813017978884188900202878750906614441939587606166306922687612510177450340296913185599556309858880333569166438653072060412839072203848913602015297782532974412571619084488489037133667103010399493080828573400940356611446963664918729084775000542945871784397339354693062555750498267201238019248923752765667815451404333485830912307580049061353626784496987587094227508133658840030740641556188643701732604221421298591732786346332191843489258303205558833422946286671149374777871264179968679633435116851629737855410871285107374892393889834372830792629590201964021856599558756921263890617126359933393104685006273167185280694044818487990444256145380883108424297781205374543400403062987817533011039423844694287005638257252846777352362282779146253799668825358494057453325234127092334985116790601347740656574220132581952369746229807676717760383490914206839964073899877372386967918900308935728314325904013465798578943834887161784719733634676123606155294494207828679832322644813217705622155896218744379672355907213467478575479111423544518206623612221948612594370102560292868253483527295753334782322745097157438987315111268129912716355022386943590642055967502857359640475234854805837537797571633158900752961854663667338213568072085985949953389227933709137622670698361825709103994820323522784958057098860389194867730575629761818119533755189313244172709980585655661029747284159377133472287684232028664343299555316260716886344401665476337492967546692401854166796046640908336879964972740893333893672604965755620240184996933267035533184512896128542230515650540170813627297886366388804960664594446753188595205814875185405973468070772635614069712357762791423947173596340701645512435442450042090559368263957848106721401458531706619431498365815783249906310175426057266259873174366180403921826204139323707049030660559388739177530407612822735195638060637003144336589583631830246936210696521416969324868856413451324777721299523240264073482287284645818872385083381804417936112333344971108301496573839485628551107340216214701782949153804334811176012957937550076837031663976472372898103237301766786828995259355491255751440529490096577971252925621660896316120819255791307210681281742764916993608728189855153355165024610164678500460399284406346723666908812714069349094399137544848424836613108464433862142544235348593007439150527375255731381379848367634063394369618570591957168433709152430337763120920464327338938163831148271382490188566281690180623865125035220715249287815969295702382149880753767206019293524551987443294742265156500912524192871429213879292308747480509245170661398825455201191279352472827048028070292613713873006805880090236359885383185315274867323172250367127157939843342966362505882450970722190708983450193908068291028632901791676148147653557751658134698802059408114997294942908950310642336452655827186411941378348850275752661333988669199433397712941330722703232154665427011304702518472580078178595288029779649418320386807306912215406815064985087575606387608481446188024651532940236393216883551737131595290277172538996760731712084194640600799173485317010677256626511068741983009252492195404447993549558274194492866403891565296536403242798503821245865196818744140232776861255330743858485451923277156128173782369309326215696869286009310086350123131364240203444489815761700373480351808364317094278126723471086768281037124354148706774986519891941214556546262939974617402775221980202817559704429702020746652237148729321123162176225889488226125195339578674566358548520579739737733961292167622128241524151884366145157976908834914523922826412822774390016575299321648041382729176871315932475943938899143386090742458821933648482200665622889962388886485239566712239719636085891830587979730609402734068552686574326554325061156182351964931376100494386167527889840405249862418560576659576983449654597708244402789732783684740816575632822489128368956902280097815825573424962708132114143512325938134491202234483088559129996594232185175647614951216211847819766831923642525877862829409629963323800358361165804378137443810674810734923402905961968499682283605981525731008695652931310986558543204019513193823330733967213365420941505428003931299427629456024399322110736719281843789552164428041907923417895856758908161924125537306985809004665652465875819715853393650622924156066901567732953317780025105351242447434074052413833707204416412725894899277386189150953712685992987584912828538348681840017037799806471050671273415433188051452726677424107513806650632564133491905964280839870319288354513155184961180663763659852919474814794397574821411471078781315819588395548625481852644195248286376083716554154838214762946145925224149432937812760332925719738635106514771432687063380479474713600496605894762860405082471161906524886727221744356455659234769981388186313401947716421802706375205902546282897319116085328482682900017869662850195159568778353754221554666688421198046378839457011309688589970981686330290987440409955979719594907479568931857518714270972066677062989091729797117855854217109146509519838657068230299521661454480130420715802147701027468170908397835992250644964272138301124322869269096290778479035730021279550100163617923313714202043297490483540481592531621782991912859499547978926225651693629471187353143361574909954384904850203208686956493235937867919728943598228503650151339107400017614257255447080770353148589380442929480457525781895863136181085406762922360506716551283654010123785887854049141991255570319677008412081178013822920020832809517797699804012661155040455222202186425356443226216200887761381732022881557692461941409189422307853980710821730274417627980395472220956104506957645267660532996034603085793885057669099144437324487534039200252151773059715317329115523016027841806861594017049633126662057884255554702175618265708333394062198022860093230676813897261652825332073740195559326624839026798014916741281544159537605342301071572679701309614583614795959303671431052131967759813943832060276398055442495354094664148032104629546617115703861823909504023523462831008849217272172523052682345573031692393622310625415825716801243809876365494925748898688794403168863952576950054362153188562513409766450376240076633854159145786572839841720187724082354289391216594074007759810155625502972474888832288460461414666995707065188546448709803505438869914034164053021808506600906807614259755990211999161448272292106562355450648817281764006568396702625105737469061076538383419722521184587166912977942446970227262137148792464819998685309488960192184893453741516213166855899510648490766668395215205168639246955552687266208652893146210095329790125622893403984745368885502259617994009820112688659143686579036702710959318780163527203421986195857900154506716826441969695788107637943023427454488185614384561491795218017304724599960333335021905625675513069910538318443016200493008474654098628831353572050180852064755081901891335968602006473157482261481080540288377781086007331747779750057671505394313924299202425362903503651804422285310203584857836328323961270346664233289251194662662603777971086825654017691558327079973969190890709032910899082227334123670263820963248529886139498985218278049675238159817352300291031006285297358997784732591741018262524845844607169884162897831615519029474692335591392817604055032145247803073103316613878931103858559871630989141815653430152891430995810408803478359014136743656772569802733136185737041007104915227241035553636135478347976511539920180215766536592875450357767083793052602401271524872079616759176566914902040604180147750406553701577156252887007761654584810924731021203721613048384043184142191080364796157781492622149044572239604457463103566887990675727710473334798945956521695584718168849787242957128111132725874422911363982785287509546052541760680186116551393985264444302622646982742388855370498647673015924626792398809669102215654124438691548941076526288814244736722644440628400070491371435238749520861374534063922545737110855682394722850692013149228055494021173118644560160443742372458976141289854274144881626888016392709950006056628146889943373495811516863645722843008405006383231233252345457392220379614934287288674213181946995905763203773993986128972723603451999034383278828855303908161048927845929845482151342317012742291157452131790312391871610549002535592447901595122458784829388198394701349318359792380553057012264012275932835533202735683577691854603300286678278135034755250813197975329774881824853847940299321367005482058579426575920591028670760551761965281053117851347714230037832194300401568883632803699355136153631568200200302181111086436721465733514333858149486568019010017330132526753597355867125030222166057684126433111232690933729917891789376272269716017533155546340529980176032215729102131961340186356068745808186416860498969460425663168810171192040550008851653991658377617025460344016656316460131506185427362892900726015003006549286588318548191281531408817356165169553978801087737265538321754710466278261870326442162452144427429661857250447345415741754074731155838293792766824993339052320237903868476044584162492305101808666087142738195004791568314923129021487942388275508057862682441547212695906968332669977874512423462915061078834673691822068028302219307741443262735838143904658144738897987083980528509266146815103783756257878888138912584466305071549892015041728343445249436864895496956129969380514364424526121879387159244363572473155512761209748020794046919622866475752833755680742554976219727132118947265534817447064052286859159247790892906643525789000787636742219842172125018517241616741333484974545609283464926417395228455213843959079864469914876703935064181077618969755455404472594256037428453893357584366296961414261503571734440088413657760509135782044292029725581747594348964350980137603346180492631859149629615356060544715301649198808562832184441139423869735408459691986305934968228342303000811658360247817174245021086440113142574143005492940328309390590869621088986119820583557848823903874541972988137066164106260294542625710235579717660772251358766295587493363194280278571403753705951456369011283455892710770913061477999135923006827369941616905963427333588206021092920823306597250734636891682072927268208222614402592996985194702991686435518202809568379379243796732405036773735664456348676835471530000614113907150836484085771267021137508936345543367116386386511724425929418537038371647332981777225556073225158741510016466485962548152556185545432744276026782646384413546175700970871648831363424709330072759090672353512588466550808707124918206080843459119713087323210253165641786775625102256978502770824153677514657207833170650353258040113010141301285421770093498162093742265427886274581068597701818241053361233537154288790757953833538261352929583639086487134002473116782425302669541779416634073285796200687634489603949272583421865811825512161591912565619895471065003872947181403029908624614016588219580839708769931758432574478348297401906168568037577420391446334708370796766504815623667111994542119655896279892194186580912295839496048555174808435891015065666105307499801601084698719357603746807113709987768768349869618195793278071331296512238584710552664657068679829501263795453860191391483673954979783101071389254169090947584987460065583716075179379192138544808169965242783062199128685899201775421229752869673776223962326930266021666414350146425592432571618607993664208199571973461577802177689259415415592966598806321116916989309409182084072550173628449221019262358130847208465019048435626900056184443055957043236369719086368678682543062569954496042233257670877269070177642597280464695482242900440838863065587950364748945362410721926635717663439394786990808356244534769868730742101548666058567620321986145083988158186272776619514044366263467743657342580430029474890589644600697702491125681861385230495722150088857699741032127879159197719918916593555243982354553558741718420163398458984269401956739883287541765140108433825100771474728081768105412884193818661467834805866494341749162645371775057992248738599997251659073707164485419603581330894845944882881193710931377166254055789824915703598142114501965094203474460477573186255275343225593321086758665082438462146248668380146571496066274822977455063243531400909864720689077098716929692541107917924469676966940752886120504330714393389529045935050456145427298015118140470195832092004023042900331497786021044768105909441035276149868520680089274885872924276167792030865522407057230772236450859625951672002474889159026657684923238796709248349814264620961337342240441737847033385303002361019180306666127997186845405152225934834235365066323090331682758015552173983280681606070919416284408870363272444136908330962786659216172973894328487218867008435121872003053976860141477545782684735780715497751166091059430168067927325885185210040271837026125606128782501425903412672209557152657341188009954360206617311737169443017057854898130255215152860816434506354113253467375902092217982303399648565011599495257579140598881602185125630394071725880256406370085555877372437630791840811603783009317887428269585411932074098405521608543024292341804206837361144765400893489537578674146977642046670354004756970406797904074525598678878149567593259904369881108198920336099430214072931411949752040823678131852013237760592577884114038529634700200707992313704858721304648046533063854056232569044927235055124935581633331707125766552256885499059519271290079195003159927302586293502872453495375914149443660297081605251551680878557976004472314290716935265672728343228976113798385511924183061905945752069128609270067560876788094847747885320159088475046826533163433456986603333098214828618607205859332714119780483530463761995798903750535787245229567119042407364088525035322664691928271919520571844057560409513860299630763083102280846485832441971304698448591134274932142775973525804325157079325936894768728442376321740585269724310464263122489980246296276409222857000590640351620420701400656969532181288778718752688068613339895764783468286556179620888205601660428573197406035837503232686128321996176038074877830139156466449301438975390128954752009368186239719467497413374339828682556898695561565416823821749530036761330126832946202236627515203198602117594653507859951999179417488612522529479652339926938096330474772986001408315257205478755176246905274745180566323044571820288595103417545211002219105987579993491481117847868699729757585545085976079252777821268483955812761394695831906381911765768182314706687875892477229302441780185357645022668630873106183906749810205310350037629896482078562625617753239661220253242141981880231549202931120230187165392472264763094622519521580346602462339033942527072158927869361970496591107708596773692591238139349274087442676440924483597666734075121540238955030693734130875646741773556769923707545512458370778262855730481178818881124711335806954292605293790196864899402305524099875041734032967578077072857828549880609465415290567179916878196014650243474146148079125798678170582239251155176203826972336542809509575198157605846088060472384511694556657743658875928051283515446410223661396261902583835193079167862099869595255775348342354883437218840341495030237443223564401009964758267063467719563444580364789058342645808765998157903797266263566046145999675076283329890552907671262619526618814397186361189125461564572334735373718949785641958948177528771739066370226707826286444501652072513108071383606663822425440231334996383669842841741955619413780745211257685247341185386533591998585496841386046183164268331655847074015162471713603197370863007483919895572187057662849799987578753800710404756127876717825680203065976314444298977967602672149080997693977536362160295904491932972810609141792737022630566385481236570822833107313408343403267909861747653111217611846882420619357154687325224214779885607699144844301517667408977444471659092871634716731125022649580842286339550782409959193348241757110023156618565958528904100929031199110880683072965827985001391641718027195430774687689654037739462369235387345904521535885596699640872326437840204977569502323149398914920903269630188444979674291470431198768792216163865737540556628262830648068808042341603759810190580269065310395253158672871256312480089038661905870055717482210237341403140812316337587437949605224189261823396034856760491814091954431438070820863591611964564876875858028023829346411242448102303591855296184984421528973320778149799064325726127559480646058484910486040985253277961341265116265543582969656063098344995963309609738051557061921846837166888986845160644881310877858582582552779988806530743227641344273289265575691555764129803908942518100006711542944339848776160287380996017257535973717242733346948054809465417469572336601181499654862423597858139751558089061087810317663327978135217776646759471443734493461995186129050957641590706720884713340077892587128047883262100833742591464375978899524452255595885725201059007403872064125915146584645366985993370600682174685774327699089986740878999232415845683641064914048746727485104903185065301023385384175228316412564491315356943238891848457066269794897154535006398030002828062384259323350210311464220963723130355077681954629111087662032562301267177553619391627792363500419414255774362665317156657289102600795477661250870976820396199095515802208031249864100181959723254191357877437102340264420812749764110382757404113703950956416949969391063513699331764023349357558450291490618592071022943998953680678499320901343869423716748706727573948670340909295796258579246907334782625008973578279472518693571114263131820181375522724119612240794265356514345937526272265128847282093176745460369883680587924789572336352041638931063973657342826790769531047995992357157674366987481405076476288899422309885206370756717834939973008090181683767687343107258914057829849336388563051809603580735132805854977067427175036569440784686190994747204876483173628555283255927884758186229911073094739725917587761519948777669938276838865113452950126099755320810586842622982425600334256689953623761932628660102367612899094506647092873836760021364237955363036815933684052848760380232867959063121587876448842707676775272481408224979407637576053372323817083064732445482335925071130873267070013194265869667611469393641541641305958108419241967236699663963147518112706596624765848959588441838289021616378773079716548890526372607755025969958093679908592364826805003832901463544453608227261589332233114318817745665577880634142507243342820783535394676207263858498072144600434449956081239119411584662163592571700700054484229454338251181590432178580574842115190091506839369438637377540289936928017222360860650317644577264115918195993359138456018261375619029373281284851712771613595047281245230349381798838366648647236917782418997443745767194488523980020026035181291199557253662791929849930796092304564145614641803725609823950678911999840093732043705891786832771927958345142452175456580741032947490885820728410393549599027745143526739314829050622674438462547404284596836378069140622339460653915307793356740434878030349051202264431058908755979727773478645893270405236524419598535731406276779271567379194225276314096310610095084440478855709700643884504293412425999959222046722625216055979527694844970718896887726919894434230338792460553404172289276963683991397478474984341572930767207496914291456523687058308862060870821422182108872185057882645193962934960291761007641503942154396753817469464963172012136370081032010896417095902165185424175580886271503189105024690314253773401702048637196996380779213938298970249670656787103105874885399895419916576323821495809405068689514926480911439245026544493965316034577972219025698387848929169422945334602449500755256291592077768866581324953962197459106229474199984021985565933676863044238754385209156248896319053091519038244712728153762333336824823749419144588318460890425430003977637493193271511192149746693715557046596325311768933807795898346789371101873357873468173438736673490064637327550530359455488874305357471942180087507892719095145784734484474841178617801750012062689061547051781865852208903613345330288649618381982032376859912782043028334730537100031234696302056888416969900512508311909336881146556576175185332745344807902190249377022675971555200307185017051759124630242118866422321217769373354424973344478035092992852116542394623926388073390978516526778022026609849585194695283266081357962956719801157296641079673608381050655191389965399605521632441426803084488338806873744408116210501711518294147717336853678571445807214492430267609209602987379832606340925804118211896680348676709669433469427570315225397776443643929833635767405570599307743042300906930624533498081351272692968624576889045297940738204685886499089841758209712744377433697373074951315448084279111404105229711487318799996936558825694485419291040691499825162614992971112115732951802210662193323846832295573432360588100198795719414698018184062738196717644461737336552654345098276834928678758098966502166007008581453857791475185177202773364324609886716077524139846943803883736064341049923190027446679535062603608220625743610766725614275153132485825873125900156699834986895107505197995986039243147609238169200087257742643733138691802920612917969005701530667380529092524218593886941509143126728264690684961691337264604848234142717055620740704332761058257668371146200207586346593051357461271091846842837668731579996346791008451258475217303471493390973581042264402595247897426134232229347264729240133143762176349813068509104253097757313243721661816222384876522953240232648021271258560430940242762264164991299044342256742118485769631235742896758078054837801666749384662249214962848308606699703963495686720600326336288223488590840913386836982242293785278371343159597802489575473507313227859620857122502734249036282436331064386751776514788775094543290673060783377011988463984105851853634112009649838744667159747785213991345275436917789723241835591598805304549851105086113136468223438297354924469673381900416260688847292223953454094023238244793073479933831310385332012258063424608046852695723569926578328836644775520066009087242966749023091856355685829120907004687772035944035473350170925694573958630662156412949788720716345518764647657752365494428887049393017791226219549925051495387543042878850569016985453079779279368828025170925701092214165743427599555863565079200485219449996705968644348673599229602686266380528422427517642369797913898404545005942738308993323784895870742616223694265460117203288314120623644417363525969315982366227481107478992795946354907339566478843658765383864151831622659563349122798020986687135114992431256536805052851502974112239122113690147502219700124507950086563657764431525453847637437719339639388318381222084706385712100689963526508497269866410390198068555464690735092411273288987391918584755008289204142601692728835074549070323615353146509463027277652543433472210960209899661615130522788682591667974639216457104182026518085578446373805180005871144730878935499673036242208057759230301527036249260963023173681509745076888957680062128183725831031270032563579861934704041095130749952826857550258786380760226130791523446507574827138881276925707679852351307618999910208596477832405563059652625764328026013171558363813725522114718448376142016099059209972232270984496498848872453542578035443198466898690327465946111694681437722738713210942537455318065157832579469276717532270136022101800831754240670027499795105716421948674012401276031053166130815945233454154283035587153408850579553888935300791451318251202441401305310179110286284714869249605687542556363588242816260190952837705947548892779335433996037005832604191389202811447682276807094700456316527872182261165209023152594478488303596480109893736377007456973819860721420419743292773708603162643539968703441381954723104325876548004135948148530092932826207635226937145184152122105488787639216580886249248906540276770658087637473794979099533390220066192801844306747077264966209218388071062875359966731351606436897659416759434701399930706178104905451583374510192091655147935985752450609763865171517283448598891517963661199322272853788700863074407916634019323238320555137093042556763075144792743854834538815382540034141559283341608227778564530495454833318671220012486409513574948937258874447635888486484010884546788327947874832543328264190685663390373441447506307133301029776851118968458886540706596959884625112645573864755351978434591100439416961784771164258704767631090653554624374883249974550095955301088009101844643536738672151987512584278026697221869911359967293589366353055259612611593962225449625972585010023943952354809227317576161032039300798598761045291244439349680895275475891664246607883163988983829234737203559531652267799535425371869639392241870480213224660300051345557637980823775751374217986809197093663563733606863926870332934599557085407092369315557980795507303403364530487400695096046893373910123469790586644371798164010219343839634057484668957526245415484621759675630571036807634300440967800314274882492213393867174312430588686804810749613481410167900280369958169330726633646924813218360674281803048501535575138214424665537909839073348777764485559930545829705332109232416673213258360106516806795293842958138458657339763277620876960717961465295205561134543736266251387549795434174652785287926337767057161854818156490723302027423306584702991919541787204603864526645142630776773953762133272922256322309315684003373806930643460284585331036670184680642868146425414841056633067362155120722961923258007731294069636046805748313962831551751269680495530574030658032943010713730794010397075586529758601351018884179645219180458421226145735893442830384226855919671171023450730867047023307316648370621565295324308573746508940951880782853680845390946542549858230769839107474919956567194499325787228565309788261020597187161765797346211691645065879240387142140937291058642519389801849737601281052703753036300817624872745328808859928424560706496705305373494315766986932979785974236451805842004338419313474374314832356083039640716933343539814999268864227368868154152677257667421244357807478552592752030805287261254726879226514409226164480658121618573646964052273037630192986188000650893123095777881455706181670310186310927686939749461257418562279706234564048853648375569836867712839662504155539719932122413695816497024868974041283293336603333736487829618329099075110629957460911037123603084473161014550249679441649601325963162369897765915629999252363127750403134051136526359241096452381430009095055171271745588498548577297739957473859599718963322567249521477394724966795484497234273067920353715459322092692535863323522818393441561194383583943779968098783688481065686291125880950155880208328874093479556963004952183719531074670298966287344682517076880832222253604850668562773660313633756818843769462638949614221387086234409763878092697861109830149452868373345266182641872045348539633056404298643303446674156857706033644753527695010383666946358182017364629129107161317715992240826234079638048824650031042361389130221957582405778802270963471681815913774269900455747566149597840664476771264791420565862112107559580937306914457908897266282203376891123907642248058297568758308621419722618155070901591761732108810561765328463011306541997357078727011009790818191496563495380641236798858165283224642097915480563461099478920389143836671227485511091331636709038023952939677856597144604110277847609922089828435368233426380711702966688682046696269998843478937961616631781003395940452558722662363749080959666283041222012947423865224323919303457775938411273148938567096292440404810970011023672045278838789503280456405091666038417983598551963997180221880380862759816340663556981413451966083995384784938431339946410120300069032516660835504399350355627765526258236804584352270915879504501333519634218758266995439614225562302062430133980682062699524538624018022102886640124781614350647127148270355526915275064149764647621339237665104595965008588075158930375747472516051999864853727672035862155322709250842479235743690494399504995146161442646751009597386144403664248588488876903376374831014897829084441123955879879051361209135060031278060729297110846164194813830996279150759896591815102260326220861990152274451124240112665689849695258213340340916109589583154091759156528307077132902832896116028897706428735898390952858689670656073623050308963798773995091504069454732762180497408855737300783659390070900523020484301472560841223044939471105827217946322753467607493686101394045878112743960122106478669753363542391561981719599753843771530405904284102902029474861936722885106198123913593145466268049863403008247457754981469722762044355064841607183338939630825701321130953035414016799682452422785344099847093604602070282210095727913410411559028169929983847085741950933787885726905683639814456948574930785331482233887947403389110934311267250326705557462707447821511029605009165172618752556800675234273747986051567626561191346801094263050279569423116656520783915277123974584970959657868519378037890142615145921568257983197532510667207967857087719749425978566040441205944288060498377039466867291692401711043384050869839512515958810262337448518017957885300320987914630255941564584541891706419947967133725369204072003692867207293362058648078894327770919977044721144483488356109322350523492091735886250378373859460070564975878047173363009529312979882367223545459220923704238841796529495278296253835996756146251506965165449548032587887924051710066533928143893768894625349252294415885083795177146293538593668393239772338389738410180662245079714887977667537052369150065050136323904780832509297189480776048743182278857851970605270938333713814840128065534737373481498114151599334651074607214271708778923689902474144533394864450256372694988761784322161577061345566462937297717696647069864522520353088489322610653428899957356990356485062951699773468904804142130402711792245405453020333293464303945318330060942781082302584940839975906158593122644309875299152592739370331915365873759615239954235924549299303270615622569801051705064971440198736058973079186172080884685047492755496059443193666743935550383882646052497117998365758412955857086012110394042488821347775558663225576255942449069446345303202392798601390071378463693559931643464176339215079604302795837958357932264827385105756678410327153331866621693593240396649323250013327751366780253065727584728649930959755510334215837762676077255142869210947545627224768865091529215267087938651454715162057499775368823525273914098118002491402953721897324881590776858356452111811838633669566257159728293313056559438632087161602364704307395251644949070073535167044569110765882619825862892007297585056131151876738433363240568036378441092820354354030711632912501477326753504489513063956739863798237110967394866119692688800747789827555581763051231715237102141095719008709961489904682210368499504648315254734814040416820511919742121594119885594357291730199528657539924954454264418546445379919421023664969312116725982908963387010553005428579293847553194953670030311259756319408956599803451091792836732392565418889881043644588733278229571811346633022346902705573921797007845021017491936883085768306012175029746761495122001646031724777566830316561643585329415889733711573797016924529269304503215154586137116720678512015392199142486136400174435973473206890580526194477394636254358741581328511875777103387528291024146584346370201735491074169112368810526458287580828069640351020924739332083219782144685693625259731733092544841876531498334610095519127550914189885134147412856090979656064715920768789576729246380767261366269802067039800563626911131366736119483151812255799979729743309201238370507121750617511056187274061139184380646862956967834771614034161063756488477034708593979541279638665481191470751163238933939820822640091089466568532823887616151660499680967139722999273348595021607491300460037028070650655747767684621252396612291763499138697888115392576353883955778100519482051099841669650734720319821847407181897200099110475324815505273119535226653816700255219355618493716371817451223793686668499515054973190496750749210750794714054191643235750009484354873474140131088956968694329565785210173127556654878154899304483292244905708205931134359686011229385482609916324114051246392834263805548274256440481141127165821694175403028421586733882831428410792736329793722998049703285223237344694139271296751867595385767550715092890810573907772464201286050683590349915789505018094511695622767218560949215640220816853824963351045654869193723106363229755589801579561862409664721455374914119166719595588031020214457720469576504460876300848835718593034178212346800515663657555609786963036534864302331803188850273265490529437441374129828595635501785459793583308998068508902014202295427473313164084330173747919386572772082361516837299225329662144231697395875547424126200286830304360676573541310078041102116710605109262850765107975646732518326680660932044570093942918112786466098964125524557493332360214029131452932792013840521309336021260526636477529830790360417093917745831196230342007279696025594785413095192285069150061393182534093097345425711959120553520601747326240760410089682515112504744539649737362721174533827631463536931137635171505090989953562960104229358182684915664817635729959964556633188616292012131138724548033822733961505745748613128076895150002845188522971688890090873071863560178095786252731897711042814145497862829183143630174197845862574907784568489386082446687903251894466690876754526820652785940484269028033914897063297141540505164674841046391524839125748703216071825944918803821387308303977099933241581457333510592605979405988958642998945496702708003825086776963681327472313349747088854072994359787933565043250631850794093197490403834956429272008470451379989417909584185648276045358250120926156236061637119724843819837701781930675490259074184531347096634235738340729599017072980146682249394608003481451230286163548707144271519206245399220267895804552275712465746606581412288861270831958510949929361098035090618681958737480749956068920486880653238728116306355315651297303269064500315885362290062798979323885312696476208051359574253159613659057793092116595356664404420636912542877315431745658572802969860070299712672291755503965209748502250214559296692583270356898400993890043385331523685100903526907099782628948209424547354878356752599321811146489781016988338495819966044437364943298041199095348168776559592421448862852119778834805006323022174408535126399604086660381645043545982076117881241638230928664637197863365817864503156315049465439401833256971194818751115404544012144572017023397916366692386983078369647504863839209058569135425373430994925079126117604145504127508909564396269930109725857181500583836783660527585257419998889123097118742538759927930557944004118326271490890038876827053356507130107216469259916880369891935228340450189138273578171626663586700480957611726692700918208835305934352914926366077820140713876032040292001441552949954705388283528460269882292155462514874850099510582010020375967347803316665271837995766113406719594284236602776954734422632988892386834545470703054914161612746330281851944647891915642378768298202778607703776590434026348782261229487183492613182350372871798951492527944170671324687815954905393846230210242790019765373364954410335531513872059414735863366694250477705140227248810530361170991171732291282118510440697971193131709415252286276059407629713455166866331427486535924252727748778338642545806805527919224356032523122258112441067451490399503279971865647166691083114688564746121750403209760103205929634315622416125641890632430265605631154143962744946966803098537495422345913360049217841558363225496536395306476457556074309524158069293296799543465716781985656300851603147244648685908467080701814755659345771890209259348712569541605712597184459475588880377298728051379301121679845404838000327639876255261713577374154003837994892458772294360710384406993816873856078330103085633235169265424229401756547491431561334815591915184652397374756236745243093361497023854227294955679639221010140174719154547921217312089237840107394411472479870369928833614545278338910158246103620817375365932296844196029277568234612388772663696218489994430145407899440628667934004078988133959544395414676141883510589541718975889815984533393205297483307206193728758742188194871767370516122441032795648668122712478239871295512747797417712547328144957303923048213549552812696662214886531523111153373586609501976824075646249268885662716993393808971285389145948239523959010970248745219108701567078087907066291799135340087350700601580279010325701056227067959469249482247679725131690672364041546489638168734443155860567385919224482631185270974902575505138025048734519566098990577332158156367577337506714841226130225977027458753835857825437134510752756606291436346909541676046148667995933406557379256412001154680584312760677218000346905382549477931615564973268320667647462783776102839757539873625122344568613775773253223424146238959575646651383003720421491595782915809874286716891495293314569931882093592351244288989041121908258767333113401432427429439195688913967431647509885388506555015759607708527244844138765391743588304985682781365706461744137420972669439440633673037448383678354774278300239378515373309425309552349757488693553568916867514838270879095416264559777327750125644008587479973379832692847727201977372736632169605892238445269397121158426798744174795327578244173757225012802676137097221825012248859649070043262203718706170544245447966831335374265718906069548337333117195800778391422937809560621770501594569044959991211958116440143304648580432888788185828566639523771472177246983883940911084809360831937978536772875303711927627269914451636197557740672542750361111718345849130452936199385705069834167067700780505169594964284269684973143556048288541352727577463302951470348712982023941315659773492393363507181241979224800032878585685297984362224035285057884354021503390141200074820030736210233477361274976804002290140727195600401954297783184094997513649416555299959000391449964038841117837397616751326399765220196941403222369755106085435750619503438657850172861172653968830585259508483565692423425471304995608933622987751421992343414207041724938588522130633806191474509116451203784565712632725937816220535176058100032461970059626533626506660557523460501487165570471380118763887149904247608294174730873744780325471226003857921261142203248809777131154209558484851003037042879563063163504623131219635496426451332729013464245745143942038721036258216519950534361173011701294035753043584074266581769584882934354044912414806550714087648034550182086358150064238232879685062934737803370826814220770775469028262627694324862450430145189383973340463565875012301588507394397852284313462399018383558310009493834506158156462769114669032049992024060082949500772746198440595143220372322065151731106302564294035665021761184823964774280040469964050237409694831092899600699890662846452469552522677905418334667330682884651382284085288196460077831789894570932946073867465888637993876582104606025629270038710789698023546518461330289022292325116399851470223197653578137081106755146523742751691054237044560722542692768761562539146088770583477309178765958903200423707637354365798399600679893105947847149707676608325903325647993214271446665770809279676878658268674695301856883222287697277568036921934058208541310094497539999253901771103393405042806409593018236078151656950878961308850515129510214483501802128128663119711862835497204321434354506697388273936306500607264333284251519264962733108752359617453555491359987316077544736851627717391628101825358549411708424649529416033916725351590338602382798280288980983175666841364737479600748817643452092122799381691154948131957462540624087131237700537505526952322893312766091216996496691080882115172650812547935983073820887348309315283026291596781110616137125303198259273520214974622738786807298624764755471315287073647583944320598275053368242438724687019303019244855759241211063771803756571311171035887126022120213505942994092443176741242227292732107063607751557387405327343800033018316231156698964141523707104355271287216933932091649733256224498111007684896678457546379546328851552441163477567462068835523664505972554210811041120488713478687132312483253360469154692225532002753821800945248297030074899395209635002092404445850255391597525943501634383554025172318749134048985681814586915388668879726018206555338325791040175764901589621370729167947489553615927293389990407770400124150621114369804131786920702132905867471959505502725660741617191508013079179752958124247513187524424459087054842906967216495575082633848930601939724950894105779271325594023465320779905053866263638425430076554996324703297429702090197137027768748371620975757803427979594867062382461748881836994938200693318154691520028129745061418123138224907532296235621943390777439894219695267147908599882370707359054309073677225761262255246357744837532341672180716058189390077161362429320236699294646031377124562813605083517110222350985405937166309273552590013160271562598164872746824946896396628327572564798040167092479811599035337205007526428807796628298861526590753828924368479241351185906014326131979403219754900072441926337972020116457027702383526151997545092546343622895457642276012647500463939090855533504456157229723414139807473719971626258372207475879082557500450744518594973453998575360801121105311843978475344672564353814360763161389608630437356377737222612535105713723278211595820145657982377282722168598236983033735222950055766888741135583284236781539859723629787585140875263021911715673696209102748576823543840301261377395683080363960129358598589064157231862542951386255348190302554743902040828602135972338897968856210249217465358332092069834095674713756313767906572846053999779946105350697324161587775917721736350708010187995840365134814157556027923857927409802443977083530442752371561792863712249018488982625506371493814666990078365409742737676018913363875307011789610589054690490123871972963604725171085652268331755112028372891038045950997918228635533944464632622447991333642724314452455181033663940782709489867265756357967371344194722640273522935552103472867263732353601980722246720597544222079741238834752773425305485862555420154971807862037461646070971689836631538944815882788415450986334846530104871752153622017874680013512492740875623366440585954681518819045540329537209291104851612274051354106769386834553639019137793350381410699707812317020582690057786239986243519103668934597666682679322732954924064683694336237451554001525820302041066174302896093950101329019909174792381294957793394215729921609488462354061325839973375456253504521350202400512311763171276693975183779211375336403628316544479106497557529358104549463891856488238906911794815636895979341506377062894413834355228149865509579773186789568590748296901309513928227235993540138882273406454829820080988638296499337036885836659732169784854852314884447488248948936894215318161821019912838790248485386996744905758985714576528896064385099318518438725951122763012383702772246616012382630444765321572016372678260687888924951035738452334555469280577090120191788394654469783098734698479232623939620657804196697290953548965651301425427537464156095756323737876041967916266431172984709549961013370535671068142986775266324152882698954128949547036889674913313684787324328036473958012443214491723039063296248434172379744903124112370324209074159500394372302119848890577407316601583253238848926607115134044892930673097333324103639236742532769241528306279986831804018505425333023955574720377991012943277302524958559169626669849512712461047253937422000218833126603832393163862127481339376784423474019889319192502963219045091294928457054622977894886067459383234979976303391504567683352063243863999224066882133380982209801380798188070857794729578189759719422558211311775273094640760163605294542491519395068589241284384226905237680862019823927672100345281299542242990391181159638077512869383580850256196345671010798720237982340477764825691479080603907344617164209096181914873446729895042086576493162010922003927335900581036275788863925804851096311187938992951151312848825496763012009449431727374685825097053895412959432427181671824877216171365006678506457462660945768628848050123302536206804914212876508970703189904838988581498594302609065455035352083280573019859360922971416986474662547777580376109289758937580324887852456731813334487441373100618549176139360705912548597696531154364723639560820466969492790225438126680010074489556330959070512122263182960975442602008979450295021315615863556626275666848677560592436325884805635838991281380723587089054900408975564744539840963921588060018212731356960973282947552292868772990659658570807491279680417034200309356653052184948394243186197298127449784357306174188114859731918619795046654619980267354999972377823155991961079635283418621395848205155228510917826847820526541824405604880399492640693078576456145435400338190343237299530744424543010886207099125533657366488655984735943651484688362132027993873552454526045331749478849861186352659153691464809957197066307976395184825543499550047028065037403111031112710309485712128864936406624683480815155346292230599843680909382111731636729124323782396654746447677201763968479755684161286562286858921151085064793974890134379764661675197561464891805242573594852706211205712077129001671175915780792205426169569671348969718786639005641503715828698597123106218644234759175071483285074507817262164783517327920816147664830638703702201797906921378114667080874138394143529935975819385048020750831044267895505583207944775866558918141926887131535724661656742895129439618274216046012159885125298940000935500178799170220468173526895242827159845204444430688990800167124909790215805383519432075424484630066608635576955504033547717875927842052567111961325124805130179656156674378230381357225491521749775542652046378361795401479629393881958180319588341233086732450770288757857054398439704491013667574836853841972251051842804264873412253350099095313827865507734362573282332775987121930176581425111574169893426371671595063155463543253055478528528937650941886156637663814707542771299952547871200614043702747919979180675246750507381936319264233839506366803080830009536203596943997603844706441134887783060012004063783202691744712892345719848300325314146561142970384126521134063392111177959168792713524067277805937627335707286494323901565256202232316910936362339237733365437494264047838843178871786199949818753538508675565517316570855524535836158752633453834023554101946932937042177623383442826911539848987290396238513370295328188764722702611673710659161670325610696483701855463646509451327222738713815568520977423577201452486386750680725614620462879766213325586843531507350978336140311402147644945075853418873036455043207773056003585820930907411423006212777863695061318450961283812114337201626929418733579867429845077091327620280621818659870877962321656902604876706832359802414547867658931103701862625012622839474610627830452949641883352030377201656063327515267069425283532649106285597495827148556873860128156806814788946893227937353318223626510662509578643525449596814510021887224832673105624501891295929672855716522624896151514523306905223729884688279973614264082724538226388885958264554088145249765158188380552674061497931742981123921854613676378798776449473194070517352382280622164393024071861724685334624856697650842392022585209954906903734299643769080584337477865746846034313539291709791989827840416572939963952376157062096330498963920669095059079928300887398446599631625562583002334807407930542687164493744353495635454483449939254893569968792457740592587769800864071045081432482721050999764211182687955846917688395531823792295182405005618390706020888752811612450133493725416982570162966227319958226518842702489820269430754876623212854973532843635864137737040886344560356107645178280819966351822387583490558331904303883569906789156893138787126274466039136810975217819382312733028027855417589402414983564484005832240575548503635972179332972144171346172689611900469679854923589249709954152289188046354895743318393998588934322083571074728102400082259749894403417227818570966001109454380364701369228075908232439158519535109678604020208847677279488931513648629061524173870531686336504286445682974664532814547533771080104583780919160883919596168854384723856234181802730059143155174847775676721976945434737045648450141286678588863967783925157960339809507430447409264348150315257293828457620486207763172962124192289238909496734157117464428575317545275331149632325309270671500170940503839479468038874051868252447465238516586639232809905129467331177813699918646517193020491370362546171113020866127878545042514436493876528735650933521646143396768170207404559434237437076747318044541855460327430794412417046594505021763591186953463594658341056513948197309142463184713501544633984006632003942975490772353114107263530394385994872111294923309800770449620441278834438865197936427300768302517528055740496857313567365595862463227789958875009817550689329180179792374512875683951049727269793750684471411538886937291888266272465519186719864291982023441465971182040271473323112442502732691536890612714009283493677641790982845354866888106147169881141946096423147615093371079366063987381593062014824614958290159767455461861089594156994007040280646121905930343823661573478185512071345660122782157644089531283392855752951937551878822393751246379450355724683089508098536877239582186516506407689534909154416151162735161863601625227835933877517613173568460245594481425158176293242716746526257411971735950032458996217147097679481611748996804103313707848166517898958931594276063569706125516094304468973934242124493516911416055359451576668710091043824992133605617397832888305029338345895154666851226316809139012203312074097899841779452488551169116416604825441206970921948140914177437108002924263138851406941985970284046340972827068544510646251668321594984435309120335609764437188347623096438332442060246310331843137384358422109636732158426949815074063519378295180935362516715486465516614083045544748241051944979446541725755908588299203140111659877593006729352338438418261865821672474822658085557896502207653964308754552735444912617060461771466874822865601791174245907625905066423527272675608902079722971240336388639356740696150417416408346944476119416875934709742727516703936447735394206510082653180740316400721153893413870722563665476980522175954723832854775921517268294599189878425609235333007160547032218804926926321221442456220635753834120584194734399232771336447333398980004940803432547275471909729314618917405878758903975650756399061935333667340479801506369543954990047198410956383990489405828931379852314332150625320463312402242441947011574979930345376373422115292796549448655990827912003715041590238297609603559112489147860928944422489699722689162820408281790010605550432491833054298480601942524735320587879306527077354926493790331825928100769299783556108764147295098896472257324684446188021191235056296473496928388234788197727235167962054019514261878902374768873997512827070330951147640402004418907135647170518627518477814760382124988318061546283990005869839701352663142184358182058189076184456014549471233301977296813005379916974676218338778173134836242499452007719731282176283393885793695503177979453386467026210016351883201679470198946300028463299927820027182916088663265891340349429023335652657967746649976152864077003045271706928248795035726759837263876572047970199269477706430383937174607690635834092141154431103483214499376764899219843090719493366231299648976347763528930588989436245746269536862057950065218430939125007778176846345082274667208702742129605221105590672258255579978128591829897250266298108365458929568032778808175879101314398690190401331154575670672930180746402058311543752066792585490773850247561740569008868826638205955979687506602842108300380909536409882829853172851395341344139474157085320354921976366288423348743888029199154378790759226788900724705317189234427519289170454666732829859686412949303017225424862193188369699836280938530803297033359494227579839303798831119816617065743278016842182700253790293030093357602740078937362645725442209998567560658885263326871288029124315420013714604499963114863605262539785895241881399957102900108787526216645806978487133866251643802363328737047346940408168676361812212179767182419844103477613621818080177639451798595645834374517270771290621019544165790145427854928295394457222753985330923716901743577351293485551505352064815205187093889019434897999520705817087434136947907049172918142590762699312455593256137540408351395874749101590802135808974634139154358327013976327968617359025635247590806155005589911190189889113692149416197342310273739076796879885095627415559402378579849888054718726354313455035157177910885582623247107347531420939405720300017959589484577472787250212507192235220245599276580679693753422825795388957702494361214043156959260194490511279880580922286960269943542954281699255979404416860584660034432117707449504670555723238629199209566219603474027267632027582588406533503836317875875191537245440656669550953634302093431481875389076558770391067209843691594166787337191068286501355689684748444456249724136569817779843414979936713112109938787540376586673642651555717429022245663674327679806784417419592803491213586477527334502306886780245955467050025901038386202129987036490892889696364889377107046556009993318381285683642988322925815209723559390017515987064289420080388669818145329341071346861403756214136473544326015392468753249748084368764706409692824703325673501609987274342175460923242146125942996133074593286862767071690965567251900938370952297671589610559552223151417482044120331594283969014310104133841843845300066332698888241832080028684355076745595799758998512363072611446715663163692187630267373344969365127920812775602442537542285156375428936827299499303379650960089754150139908440750259218970768678340874185336094416059554865861644860626150624973729713688547532920154269326672709883333286507293197978020845808136203783209960358411212231102443135193944804474739918295136581315079482511995694773522500620255488857852963351175732642038036870028409686662060487976539306666213191822099966262671546015747128014883214001107853621938223813615324679386437611551341154328683804454656857613194747308488902467030658778026364384493042459235218331186215967152483680704841003693652668708153584365929212186264104579734952656963949942344890513882826887790230260421400151187826905814168440018814938516079266900758163051834305456166629350554180888816551515426745251371004765066031405512683927522255640510103007106562894266703991436986180455466634373928058587786720941405914370701544683608840382823953751234328389424626184372979647651337972569857213112510120079814216593201919621499122984352638143871084567980409826429412641977541061490469435056306328536560958121414170637107412269656272189685167470310376075410802722826167439545107677689622639412303157575304920234223166070192315153999872524001097259740236862252668689780175656059874022117407897373726378098501161530063086551972905899124076449849345467515651377078006109119470944910546385941759320159073114295003289388871374285237832921133498386395295440437006123359377186755078047527659046631265569867304434555020433347799355983424748748756723858272621361562817449352722154112475190189045188847080718899952859484300759835655324810430911133625161542264575206371870227744400207585344691645959074959158471876069008954001899003099052638577090795805466764350066124051319957831378970975133947306942836222204581830882214537522776782603658712101144460416778138408150748259448723054023970726633048197994237715558194590278043960942721353257691517090546101902842152465994131629095446685811300473177055314989601823188580372558131981474107920758464312211894457792236732576787498201817287547095700953822365117891547624283631112875171786003881696808245581088398468432747190631865554921768265531920843466211697820267951053908340188780611760886774302150754195600628987759339259695338951996598469423342565054824559067760945532174837583616967772262995170495773879162892604068514566678002101489442142364315681844555511493695991513479677775248783921736440959435901308749165298701734037449324964516043429405634628818142155287332903548724018728685247779792056931293620210506583997681632576319517945905788865001100229630324856472886994467305476392983644133032472219322087718086832877870413187398803234495325786101365610688912067645995163712394862427046110162689977104161260784627232198555347654167016521496860171072352634035499697141181384065428283667912233467594850121974790471914129715912198584578476924718340294603088494926216061663059553165828363903970573472969668787318921475744931301953391036146580575248236390977452315190665353091886921302755507888914530548452302252614251578099201713988915171075730867648148901326017804195392446069014177549431047650543260990426940700698693397440938117845898255847572128395816808309215940918357957643648835826704806778301811095482426773559417724229234900290622530899279407464208831067129037337089432758742272470491653847570162238120273144193157099410589663805983222050501053992939515177699174163959004490827582912028019150413668941334337250799754191596173928979075903959719238558415891773628359129237394389929171283397840769552393488585798609391173278766199053251886189410019245271768838932191982334854314877733337395336379398555918011384685510969150633782713223112696274605373705626198793088217362873604576950788109005101566593859236227536557862397488541175923641064114952026121181800725392276437689085774676204804469061979274400154638323392509637331539668597237473148160792667131266923443297575510581881822130040821623543254437947015223789176986548644787624318982919853972923397853788982652539474820666549800911985175466443562396273379087870211663395431775173703227970672796864856508767645172968477506190815581732434060143865007300770944414852674081970427544531039254314134098298631147068950916616223986526851119582015943911273325001633172088159818866452941760451872056090134293197075087043557949379835776559106804538223670936029896173604508621146974780235954268599088071410110948319282252123928099423251446937854780371870706223292427482613872999280622541487711629025117546286881035056135455569968958447810909894767772510727280597276707240119312673156463373391031414588216674419710890646400197245857789115720677045256644089546451437525301026686821676051366939869175860383548676866179490468811591150858668853863174845751732842337478557698621672046741739143470168109382996065425402368635803862653583790874301687026522940650647303019448558927643261112907938564250741579894288579312734377849719637836720679071587874509808932736981013727635564622552136062236720809504991452370125131657823572547434534013024676079924706689195624940806389990457840855672004992960864553068332323142059680159841237948479097932834996142712967715198229125436383469955211885828702490531744881389325854840883622718932283545837826144230060899824810094780892261114646752181130631866370149364538662207538443810181883878177605708541261510506663353997823028010760098993636297376310241207848853044957933241780108392969303730405644880129217822663810852470539411451523000957036874746542706695056631240185417489762198643865211326796851938951925634133093394412165493797957118148437641760326724167043264493866790388140648773992658743296142793156754673351332371138360732466481811634622758003156612496065845060614081125999646562403088872665224793042215159594743854692724236351514898877287449105803356038118399645011079543982999907713474219148654188088369345813900068106006608182533398071899616767525990048800207863703170359068756564023849464475889181042406928965396675147564703080478069328604923417277272103733641642845274688782787468197759993038096180479303782667036201764410648096971604701128918643120004789235859511740630809581249133597280348554897566296215688202181762951605004111977206270822980389577170416164902990361831308884635123180222135278846368048200828768788044965546438614455257444305276235482359232977939156830189026129043123123558496167142992230229502378888045836530196124299305976185300836117432650822488963852861767231021187766917839879997056120265705932939989824113505583338945239123432606149614952402915578224839038362817572018251486680015322600611817021653055358675453497359672968792096032791609433851306343412825004953774785323963434480745649285678612622802595867476572275678174613867429897003399100849310656870669087936072411090810647801627262417078352120196331725141660973578390574815375038513320710455428760030413099857312006928752653568526045086203709436234773892123628168021272072470006854372928302059143861665877456106890481727189550455038108519227721668430648675905794208330615856748697959202467662543327173615596287318357563400246946364678183774382647124599661509063006057667283679712382466442343147955354426816136673046787315407236714593661554279582961451689248745879932039166741163576227267108537685901103503921198935531703355241113525632104177541537552130274774090761370906664193528746407795851252515601537999595899041243795666845679737628975235085953088826218499127395933183023848277739784663456461818021880638720149898953464972204425805775355733467656927400633368415617385834663690694164007905844251809248043159072072877103821892404613715080583009712999226155652098306506081308648619574402567898251548825742977380637388376286479166604032021371689572207967370879067275538255792704263598459604419069332842203525606408270064506834145969568812412992467957100101106878694768424523601529714814480452233817771641581082898804850702690218585052559264861678370995581367471371968325988844413163120035675029128309892635179443901656424371040383379699496733020146831106741515839220850559735131389166918683956455439646011157524693940801101251024582042130689366872311375018542558913530909412107491891945326911208576765122900179946329591381228087358687272301605754586903420157515786701333662471541197262603330714276938304900190314832663305504560093754972566755947556518972144800009907120845586917873408357479412277035274582850086931381194865048499618152231411258861376787226769392160338708141975111458750013461191945041037418562683384103012617976390889093284928167107814187347378194984642460180702080918663480892171843037201146951652248029131378570074914564833289841464054022847217513184379828943894154658599098317762729975890685090653193522635033257494141787183298311212791205442741818179276571995307762059345038126622746495933168115189334276147521075892851240005258181846057097167969092346762561181735894637873848337536598422208167032635871992448483228804123083840110472883680827172717505310858934411571008192621232167339665908899248737183559230989749948314755623994494786594895002010237224813503351424611350504459995740368163847734247315169401499140364862559052700160611745933445928582940205246771524361431511701243005170596720385509300812100814139142999594106848647878654429182345212397145882448219600653725769953587364006058311347071106942394604928711513409294166921792983348754208088523981494201073424043672756245841214859417411353489535896103407974315058964584432980837254307278147621273082482398001998164363894321658557357750055903072980681631033118460277391839995996274545197458371272949064157510026770211966446556588450054541615944159573799024438552719308785643124833086497757842913090528881212975336755900324760389268212950598939155268243179408019896229403143012993583098957549901871576160892823939017753487560395766919604214501208197733315782454209577080578202629416783661650981260408995222335721880777218056818484612418549497145005393884622665436742171481787790040421135404849403142258717811829374159448396440539998534885281559649771651156337140554239372946568919068380770289924956643341258945964649362543982465781158966287330050152673772815078931575336024418182306458662021129310898473173358243953919377673527806188480018529008061331552967285538719365438514878946632230489877356176964623739724170670596110835281839892839839649327002672578999386919634343345221883346897955794082195357059891600961075429094007467253418496361243992875284758964189298359350798644867379417990276677367571165312694084441747780362998006390080920563760712459190148754439700881935771011481080994393909273675536500146409995272894523904944849183758542919997915074257402638674897676021501355276339555017220389305076299233178979051178083640824820703815258489360894692552407814439528605465806106224417361490660784217646366816949047844582011132293434007023617108938906920998553734910257378663641990900631459840735682259709464743212434602628371459117488855298307587901539671698137846431375386286740324849373267420775122247557276454869998720217659481736996654465964614643622012403055183210972275540779355438336200643706469047513354133156930882504319648547914493698731911471109001529298731674410699644288713405301169419776003633650913382662145664750175993411095068994225584902772400397994038363675482014079645770171053812617147355520071104497900531486942537766198813597528515626249577717838635521995535464621471864880434451568030287290893835122117192276469120309782229739030029475961525918012294335432887105684408275823881190937697430377368775091960440589037662326380705843067100181881740197309229462047988749564858967979268056314344024403977208119922491623399610389724318427923000416603578103984190083336472805267777948952320807775430160127678834451907260898703607691930479666110735569478190519981042197207243649453503676707192242236878181361310847369666932234745368445918988470947590311235351302866374840678956795496065747779360837954834885847792177535595951290546476810023649175571829281397988894545694911129220197943835871223506564968500274960518579446557055407791997076181769997885081579339415363229322721675115989801374618894937114669278316874437962714033949266470214647982335652738886774831167395780989478157658905635237168398188071597675386278910932855712101872321150841285975880389669089319934397573680300154304583265356601337440350554964060674084060954267493182324679087216336977557240997473506418345401248553795797704934916679865862783537871236459713559501412979888463728780770083765034301102454806082193797082959020884898222938290597414050448959126550101391236190760131592291152280435169482797749221498184901642506225602954616130575132238243730341972110963883446002868680497253875879608179094475726367759649945222516131778004405970111805272307808688950603952713116807972548907061217023481662795265024194647462513682540257809303247968762878649365828654989467809115022376560916467613750751112732368053151717150465796323927667829155945313030877249990538265156484346132647447366246194235641836216278234724861765448920608084131920952137105147946411269064808189567371086058292576258250708688632258133591007168729686102201994600933160755838276966306113261829305499809788657562805839510250937300207558061028911054116233549536552067124755128959519981002080497850435312224708209727782783940392822767347165541791062039022436471440969493754397248637584304704512371216025084314592589259268665536919221749901543878152074324441853948754589472484984223724216828554205542650242584836454520282517416956086427371739189324902036903738805396315050458057723555534840803091692162117112013899489664355139238376695132630760528694461005553597907532415342248522467481103998208536356055776687740834507999005956115551066622182492103728344240294620393103253007439495336823094808128897817247305926316793215532199554202489247346266762332054828075419633814718416764031786003292409849829668520468794644118393297341207866657029880731832548174349084276830776149310916403812562872481621070296515480987352659520182824440801109242422711061774026798593568835294599950923123348848200662728947589756571608335580187589215287540187983795033422250955741299852950231164127985046893149938971753661229789517110310866363863669901055683917042992178256148053110448022477534696823390559392305140200287805728777651818352126600687882184048698247262440587684875681164963895388533123116694332545053536159858714547467484070496711353787676033193258097439145689085737315363582187093915981710963470588072696449414170055126536183821642144421020409394672017974415983075402954838957392502397219150591637361334898336333254210665252125481471149279109859261221105005338716014366685172716474311254284250605797624330837697694169797403297495591008017636894141647105070371607025606758683429947140186374067673620748894122701361880983988471709846445037919176076603123483501789922263720999152669781203608997888815540669087319429598530605444696402509016020636768084970263450542466296927072790689439984089944354242620527893217355594698614737856102294756561858629204208786141093633665370265646536414390102009568043069349767161311000854308166549564077860322650581725349067430674068702394109767883584519416794638334691215611204867387201309176761108711369808928832531483204720143634815434431030238998658587174605242918167840975570997169624015282095113578210546088937379688933940256270709741967463270132823608733387303729411767474168391677432662696618827108780362598295650930474456319649697707780545909728632904386715963607072389019063573380561764014770295157371381595770097833363396441008737537562720945379166326060044525007079430365136982284993662561302498001605907922226461750817472886232557584578142945350302084626648521936860529629069790876303344518232785695648714888502484025940083828943980497062819951526829078452531614018616351661021551736514373128833007172266920487922559848035532339446336987555832017609757488372993494918450565572514271672914897186391653934991244501294298414054628877619076189637835687589965967106098729610723122565203539137204805538323517361750369164984851709531782711105006784662726038481142222558596764151662709331999666752641102455037595499197431889149783995531588786736886656338531036095445508094745126031254062920909083305639872423348253148831910126935573266253134566403095875577656953193326008040308162196834313591514807958832491993818069424420971027908055313878695949717022128295365168909366144924131028638159338029246915664437166962145640290240238308615017943032724297150666473687954889535308576910000889740189520125523366580988377057285710975219974034291738109238182318016040769251293371228376751333310936385033755290209708337214068137510364584413140071833476073385474439485859333155263119104497458477912316504483356873784380072964194663514313000160357744031914864610302735303174441935892728955380961872368295974390178597139144756112358555782560661156057845215865511419769756845454446146169311679403382077764769146512914481222412374468192865614250417689394142299353175223720404792288027258360516790085257196802383249984447865947587301680930600821078393054028263264413633990997711106323577470147776421587233592862942753701122701557091472301898463781560181665382314856998052924238555827683849287169975338439974023147040154706835983490931079224584835260448610708856029563200143268005579352818621336639501829676362085496158401255815348879237175505051722939895572615410105009913800143764376824676820285701276370019888789427038866825665878582604698516934104140662692117905012216317845072639696515181424578563851955589933813967381787366792158900677799019415272059142300735095906364015809372382078272728036758260149267819019741617653030228543376843474919358358807993468017537055646502384743914471126441276727651491252610632611563670422707300463028704134712258417379414970852336564996517670873803641738519478895065497307836441965370079168141857525173964592655750086558441822394163329265795486180588933496699273202334892891977879712004511755704364670581368519925839016652420814082443024005038761522525124325596708047880601870959554271745284329077412589469937569356512365805692413700296479527387503958639814944689708801868267433196698308788972052449437635947586376414721186200626425048443503714814311891533027129945238762547156491781087793051529332337034597907050711510413023692896999036070146836154740947321434994318220910694634477380317581094131854678455546218752452018659474756571198105044718871083731915664412286931285124102450625137769228253943115626847881176215741891132578063622364558150454691672071272892943173609125427476676373439280928686848101200921289992463997680510027230984996369876547046387466114259749106479845757069147452432692952918482470271273020574558896592196308947683145631542376884569140429171817720778016419916394207001039007869398075768085332672671669091488990972821113339802894651365182721279165307510408215741361136305722058496579143990898665348718486718528524775767474690047776907763549624352332457610080236722438041443130530764306902116560676380635808404062959886876092270037613885021844712846978103017652892968508353272914088469775467128930729495291182643977418944382158170343480350084545767392961618013455206372774692801511807584101491822869976977934373361296671497035636847300208535286317517256789013903884792893165415599785046909978347861260492750437816396255280753365048050019137221909345288253450757521869511164816326189046561245733413084263463086916356081079833137571872593027201132185998394163201803125364143692804777850846119312745130562408430065029625341052374536954773250753357038872155649586489232599368377122942096473782015143178393999397642129503923938779793753600769688377720823355186436338628584958220321147270615231002290660242823042253385861331493727973792853572944373600183669736850235236858865048624181387567483187605569918545728443040088632483966300973097238507849007927783205344621403892809417848819028483669885077478088190648289197135253590295543272802380656501320319986958925680788557714419762348517886161078810656579100616197441533778217867604203811437390600457511525670712494308585486106034740292713492912214120162620078957701456213253574014626837176982832470398666146942070423649081827606582917424344462815541136326260938382160478473631987278954074312969505069602695929041217599636745982456335361282082212613457800823863956259760733079296643489144927882067918342565444051282425613750068087770882130508833632777601091691681980998042350533449367441943324864530930081136566410552728291244093654039134930507484945717857080167702474098212616962114032598718666223272549380542003714674197021033224328508286960664585344122523386059530339134384734118488441837020489763521669325856547220302627020896290014165176467279392955138530830515430813570691348462271115711341563966484139599389556887631874547224095437430670308493870985502434390534825569901872889003808680726786899897981529676191795151091630989801671054729899892617099502953885761850986596118193956474364975343894729061502393889629175460195878838241991334935422393944336575868422034355063734877856862941723646863227605723802736850508721856028284607295757664579750909969550681246063221880492992613169385931397616514877569826296546137862058204929529960387467465244578305634259601301805515268701088091647172903546258057463386705657699943654100112808816758674905508198142383782163433666256293683920491184127628757029976911815439969249257198188889393962996452450546817972798908404232919479180947325894222114528731918568990461381117086702368502430509163038415515029936769489482892255443167187863827713676313283246790486276880487689033331611424480573356517329873248575366305354139065664340030410576129019013530869516450742743638640253095489799799637608806747819161811588104090462993935857631984653642062008353068574605266523539946990200436067103877910856509313578298612330471292061682563675976183859637606170459242229111593975281032151823661751762060517380323799471798247278279185820915892084755525429024583040877990655349705348847187898346788062364621163052987673762568042346683136248122891915940729525719979851889212930881736733543181026970900782919134866861840591995002829371037162638900915669547147128973996403633593610561946625308611491330980981253515338223605579821710174881763344003539970155666751219064798048691154842288397762601851827797190924121025910059590551414294824550535917797453181527514947469341132980135186176831678121973876506947255000741812434143514973738783296476592079606514914781296945811839014625451555399177139891479478684457423614661732365202379499495422550163827496917275053901091340503854481922632906084592900933436847888738513123654419219383283177433304034357429761116745551688974014345393903355021432161993806636974467455507577160078465580783642854753261655550785149409910995656459330001865148256708327385730864142161579461919235063718188840111961652568341757958451074486963370431491188922006721584498935929254307470170274443546310709288847117355441667602196112232353363204985625896262583482069980808306925271440241096194593739327549451155335455499713454401858121567270692736571713099900320645701999074458912125903829203459133934029860398110927005473411731998355326813086986850044043707847496618884295964698344888556437881406861994224569235850528129524946527257516015483873662506779926642244930716712602625787387890114282469473959904272153891782531624714144256750190838501431131714626882085769318551648233573182579174771934922757436759311572852771543253124279000227420998441758893357216171098473069752663297192518938172462774320085427132700832121101065135739759057158009993340013155366508955324646829432071768214634172492874131488160828762908073651872273890260496266474628713055162803709589920214373743049686772776413087809317336572881387799931071229104458743795356317672676486169313001588823320688671505453094762368055810899414715505821005358354052544858897532057009289942583800388208926303781239404571739285623261107687295968796968310777422783006906107217545128700355903709139717211523239760114817568360600583632877219449297231362933262581604834414845329679683082298833124618298640832976439671028200307389627505768795918507404417894617454275271963407835089845606747144592056367537101502888272718992524917243060123632599880587136294813271582665353617052519425132412886754752199814714175463210515961970236618239053395245247021683578424552873517676424501777781582809880055828487393826035602010070319391864729304895760107242195655185818110595654373813145304191163388918185314676564552523398190477440087957872314258361109504857580460483175057922101808988663329459078018396614545224117138240836543364143260848309878405749140654241016726883262537739501467724736209394200104604360131335040003442980436855133916613648855376474011798167427975700935561158885384316490291379782049772181869458482773574265509252627986357686164267234855387705668120139420913590320726354399274753260102100712357304560423186483873192336490268665388407321760870161517916126887034994179524290947572748926917086371609242674212495423887852246677716393975649390890761098592371748280309561002654053436716980640854098274877869305565350727055832131125389483754661844331929047649988066915540479591565325183140085662642030256278040644284020745376130834338238195250367359302414519809628072302519524897880403698656566289210299242002796076719551274014926822697763494547205108121441496956603768527771580983653452082417223160458348703737455420338608059739214577702666752772722931912654143849025922023848911553943515123087548448282506915500727244547098823848530485625701425170246729969929519635524259078153995213757818079372703372272380165326929151351397901927997008169998249588619554856435802725654253930203073357202521799279703371787389989726900465746122495761353128508493130833764596236657266319227537110314812553620386110402789657976021848155211197522558315537374724641498528441734442760033117411730989771875981868627333038699131029576708209294930911753489749812240833119097412733397842745929985346825408420870826001597048553451672594531825687522674803484055798954911825041798748963843103375188442762701731952951998903779671200792848487654358989009703670886901218463961830429168990967108436200388910247478519357795078014489087526187151392530100505422365481209891240943712427403217116144863105014736802191198154116193429138638794268907355931406142357039141184821537371243789037885472879358720968145483117116830322588375411088276904931259231202511149640048748558131912898601327643100176424879242220584501057100342303696699732517976680933815992631117601646943269361366679626348831578581452007548376948831710752860511613126460057898578160838405985580017261868386538492176915564104808137064156300460497467461845403675464306263407495228534519316218820212828320805314072780495631734691998348308999720375814415435890724358055254320271168592166705610659467541571765715645151104941640509360903886536189275030519638864810182560819057222208780123979705872702489411188817814758799451556442480990050153314935832838957277143026083579800592910275994038568427519150344163759614764163604168003320661805581579093568277619508039400634135898952556448012645933589359284055523833302067984792740298483205665017719327885703244825070371652041230021772292300087040204177731453103632779941732867656686410310756882817636795618263369046206171471527753158294216555092159355297939424441430288403217947138129746041307846404230988569764685484020708151879624220225148218272764473872124265072823182369707244201319691623672869304831418501809602004927603399413289270709279336493367814215075616452185714236507851000622877935094919804559203259141236811266535702074835906859359712583868916511324596937854250685649469093275841714289711975940380357818571576903758302636084111380696504626428118303007225652850874888353412399422592638870542268156974814815360131728102642914832671454035319694187335786314493193998117297699535237059180144119696606116508293128805742469704638929264378227834022742297289105225127355230695670514972121622063935105203570087652755495827144043432974799110308558795577839035860163433209147076799634434518958013216310862352415705931359564892978428678864452094226172190528653156737081960257140403851589405068789522690178645911181991811982589415904605558416343973288314166183280729089307745046335129267202330307182280797389517661346430397482823223742180165514495365296812248446001859011471234888963506455710622916449867780924943348289414684910113600989063124654880777408502090606325520806208106312530512122402771732605309710875067102683729014092198332166148740894640637604236061503369334402768008593961367091399376221058484114415877018485667655608420375455240017657584413947698462591258673108796620453306496273774461452287209580435091846788852292422190422482730385294607924170899851264220388329582921097757138503211999681178220283782955510481781472008269971981139109268114868814997148881294833563771288203498638004409786316097310307531040629305862716847956541880383966463147097973924678940654314084839566058617352100202673194645252393218035761287470096062188695277565264157788281713992420522692458893893026804708368005888117520476857584431576791751732841192522116948101235601809428335319834918202485210643218763168307739416496400722832595238969602565213719183558389452600659382264944513650379390805544672696005633864219112211105419337981433090426089747398568461032327295346274834362576519889784115300883140675820727007258232982176023386347670829649704654854571640895403346349424289585947815756820662986533234850698061813970331641636747297388548840046607892970086883624450180291854438508279029572227808755202707105183451212560690439997768842758314477966465746290058224841807028142021157803277963437742762365488260215648161957136883410837131645934832502356091849939842312634396449396546385327487847486003173374253831453378979091368136121140647060270668351999949846563445977146664942185738672084727720252775439742472497664453655736616231567182870873591931187194784852281844366263871434597135128993688734331423101316909955026002398079889281802181970670857743961715370286383030354368795521280564278465113664279595040987612277133996568731397700821711313362592297214173462081230607762816300815278500219366335195349159416949584205626230000795037781882984398738186085372577419296769980140087274617156788742793589830007064875293724898090450457230092533552517447435505651614730489226361697399118585142181705132482669411846001890414632370404257934737649942059023315002152126110286646739562247224798959336025630569204519382492006274962029493391420350468356794487396368348779273248089197812209025132400296706514493770674124863001350191335017684557113815718940840975640338110516221236165967038548418454084662418153781826194582941863350583337022523019496191255577497761668272410332099464664639310411257210248707393907169375877886334390148339835129858303307736846622430311074834142835663076561055380326980136669288960731330451735176748872150693842296880733223365666304117072192736947593074579994621671573457480701288838815498333202884524720724022622715671935868359127417022120444898098324419375793623711802561175761849476317679874312711743370275619181391819747027496710432867486352128496834235473941399738845375657443694605540160252955282246970917008913797959377617073284475808658911415370559705996205637614554800570500726023052570549475876315801613982909609316769690685144524993020522273124645648288508789635367462703578044363893349315684148419626004573482741947100258974961232913878659713180411404303824313898924000088602999844438011468598947067119893933926050390442963127127447672652838844813503594079090583449938414368263057927881073662956686841234449027359930246625214107340204978246294617837663591878430498075002637087507748600350194289562223987635448832156925660383934274137462794383444054916334415893067865884006314200407566725775844441492236487144761930825019784921937146723286905204223323873732065182119455092077365238236444995055854133247256128427437520713580651301277399312668161436660392791645545537035624031471863095584512610617558924622123283645390257875789031341691503555110730278102153352704940797194952830047109925268016700122585412738698718472511256017433757094362232795236963254601834872328800072196488470591832950152233944278459924099050807852444170508370256711316347230651284611867514713799193679596944857139000297034650053820882935281054484117160721029154656198051162026333229012231120597278730769766058525393682090924364965130841630288701282021128655459352812066549432347886913585601132769741075174639752426124425396828284131497653459233506587266021456279217638235332155137140013605367170197195777271454952125694353264076245303416800780664917235223367011474651779573461669101580850719929961687975701681871798452793198003473025288777374141682345594176068915289219632117493765486291517715994275191113149916812168367709523507924463760454488296488870000561276913562133414575071837662352822531277309085593824104400444446375830928736838901614513060209151620838784270778653546292978129600056251064423746767291683730164095735153375844194742820281645267974539526114282917353894593612846383591325184168769004858138516200035912195604582759692442677853784384427619262316415361105987847828739248625353537059998934826152421370792242670146258950123401499042340784951314780046888267592990575390960616826213206192818556855491158420499854761488376644146957399646954993059662795402923394954130393930576719090538366689558421678828686714748132455992065933882995597096028762585863710318139164339770229943174630586407139682515680449532366274575973293281824998125731480555522503373127362895850792754671570621851831993316940388247919014777334739112260466256410411823394102945925606213169408037750537264318608733659408558457509497407174433600682198444813924856898593873379294513412136649203554866750836500417162846682732481700664873065945555296805987108353745940393135651462675951166577913032701078624573989051704584125872051678050630977315661126926407742420825699527112929960583926045278871721245728450164581100398228307190120803940536779962398980475936087548909871913956847770636959095335495575254912953259904668519749950985174888067109493552173209069005297122007019665762826592983851319740572799895576262743800144124641029098039587743339902082109448501853706130140752182915294622217447876917368328996959090157803606219434612186892675515477453460204001663354275684773705055804303023510285054110440768688618358007169627960616471958312550222492564670458855038816767210738113710294212216240180150678609631961863254344011942776562251823757486974229986270110092705644416958612485738272533987604646646255173896369862754399961989994669186360591494792426617988274912256557231971862631501277210875570069036412600311777893409508245835317139245251050399421705636890810196817527865450693828081580949382632312999829764628453603246921316253795851251418754220952831252779976400825787442127781955480924225078043588266427699448862959499922198385255273326329443301206618068851359422011510672181842364403904610800135323547189291376935896091551147228174334603322293423460014289171512542099385389906856844773274417699676205255828575421045755603167301962163664589925365565191326605566856888209008413324498438736444478316871105740935322232344832168033695721869120101952202088253383682175492857734882592602375777171489832493749994066597017991924614937369373155693182051666448060467952217673116889184868568643906773733151632435656855738391752126704979649324796715538648725073979244172412084458030519688945587486230564647080407828067918897618824993542034270996551810187809686767238036541414475650985725805552271932128442066376513505878156502515295705139515401022070067654588732998889959029427372523380686158247171514166460314608894521423296759926442207739375369178473906183332166455683385116407756989652960731228538530428470055704402371900225441196100926948014034118334192096787142917027982171029111194388148866289874336393585446259464056209379438381212077829193481145010174509168808445442810739446207090592920705957498539123026049248120974475391294605042955392512127578184161136887574137219632790620443221668988891365320638648836802944409973708958412718778712851634970516590063370642153923684670041428659934823486243467656952212470346278543021879027866613153657597117682361010184883902841717436053149805619326168488149553935186004726407333266614282368200125656622775807790279931258539874018891020194410179477817938002396094010342096218415165902003992646492858248180941444835695543580210682805168620969441675373594359890722054263187939110800646448545541132916191157903433067788419803186283981471528211500919656402614053869364282053017785137869816961223873981518196987557369970368842608873546619601517288887759368272566184314226393350030693849192481546854828787677666032470054675800499711863558344303803656849466345925465438240031933210773508561773281832066663786607502660384074629620614044282182342834698833662815619286812526100630794812080118824320108247071232568356528773936463039213892881058704958040234334494437400457487510472415236494152830986866026573568057527997960132532880071922595685987176658382142660637010513803776371517470186685538055024407811208294134693241777576218477427210319181330287696126584191721006255720905202504186312717023648397675007740674970902737241051178217653029525121972983732011592665388410554072554564695955715396988222448041674933319613754209318281326396011855707823217534890624759632782824778041161820213362444382771433019796417937749830427195265827284706607101113022763834704517900103479404450423256840780432026903224080109740213453031479357994368002619208658406505978131495857765440800980700135634601711152423482347611539701493502092846766668135303668487632341214289492339090685977490205226788921481727394092776197706220536865357417785868562374454457432331821834799595494074319390410246994931250730965226671063324658528879018643657229969101051706188373586495347166099207922097004330054533957113163801226534016707423674041685138934898285573063422434491752054517928065541470551977843801915154388388164679259945962196627621872875713757189865749475358033153647272642983743721197641685885994088701292432653086642137985082405526146481362688990996610708413936201007148972005062436286502633617295739267789071062183665960885048155633171817313750116331675781360692085242127643181758081775613356066539254545357359456275346804833686462516086724601509610585220970699000608211165608356379001113084659616761521391548518753656577267339288862125610187459198372108289388274055586484909752402887338990645572105392357225968132824465497647983800971458453123669384727592719511329101369470365026554361226490689952715611675594495324871084334093827052372514785963447293522538439926591719610647827059644415665726423724570667045913091337980378582869224131676889856871147935995249894975460563994445880399227875487540116241423509636876192158775774853100571757941424995456721761281824700241783006319621491037797689427489898750598140276208040407368771987475213784634906584346596328579689111366651591261398519689073534992775328750762785657120218930547452510279181735133194637836230936687133706031552787427171351470894572900264976782818171481482438301265382630037757717688757489512221562138975717564758084288891238267649371836301858283688531450223199678835924849295127830806498639072130606059826713893586080967522175456362957726224637312403859164097727997389047413283961693174129268073245739452920624157548668509665683551818541993532394787140886196221113886202471860497752869726786630424755284204933710339841637444040653982840367561140925861166568624440891621465099644308381144366914751921063504771995107181559880675450396316289998119435641044647897897900137799016524412041235340547072602150137844800287878998912507144909461006873828822729877456678582032114790628666495688126335787646649162150989846528613968654388768751419227159328741572944250948653363442125881472593701272050382546042524015834037333851693302042525073665725106547510069499943037395873495952106057451086970565161050967938595296249762557983197475834721781617017141684842065539266764080309031456097414905002159380788642668137351188174817604903985137232025915889885452621699299100914800279818337954185397271421695397336053934525699339083370718803124594553150616863220412247061997191785824899425216354195635008155826064163792568180057858620105858853865216137038090848201720269126504531611703263093651023054517067678009485653770547885368664080983850685721368343975546240420649144609395794568760484569573665158503806496865085694713736235624939419819447294790293880382075546593322411360496026059641779497138469678548725504008356907947292929608701388108270362492993882188868484341129012818882185898681671788084029562518445203407456189001388496120751671272070954604075624660499505030510763064375589105367874090616254258764461084858544007982068166489923478207815318636226502499029962944798683086381203357184632433825930487129769081983278172391388819645694666766696812531805739917470617478738961326890457489903646789239359282781329914728010594177064859494796973286290037821425119042597858698555781198364355887770750974611707978100958940292808264843904673170449683506647687092505303906489138139071925912575421767086169875599360987849457078328262426058925914806396078863013568845156292494369615521511284904332863719891386352405495746616047265689674480129715234581137285928597770913138435010041490218747600036040082645057568367493901741147828167106610228251488430535654911095503591293535266242262762482510579453040666153318741296229239593045214077590321029879289286250495746074164563245117507172905442502405210920804304238899170477044928437030648600891021628903627045312971175789213261449222378583587249639214936111722909516417683979469627854837326409918579911758217719576712745119113166726194897551588044318885617498538211382463666478164464979081990144083692804801619844380164662739479779914173507441713599115126728212612493728505836205461842681564318760736707569140769817063995696411606425324120940645785720287545626593811442169527520756395124308293447797591541762809474760309991013285567927429387801537052663520912976203340526421745237418429933858857153023032713441550127890783275217579838444436702867155370516048190171705106170306520627419884203826821195013802917893261685289820852170172333960415436933882576858023559590550604839009236927529350868424466346496453897988694326140141040004439908907555080431283764264388693527701255482539484048485575721966760953130370198786102856155990507501623997988738789299493945560482083222137253313849341413707719681152110673940888998420718362676148694699643422515432850415612727303743619829643043683905586531707803273002055826025691185163151939123738094237743840990575817860955216404880732223508153201840269460094880103504263801167621376431371543530258993545977202501713190332952977074895712217168681627239029415973214287817853536137944570151037488983810592061097614572728842910819004484236608416744774169800965872836221170196665652571494000908667288257176717500209094343309325716589810901141371962412600810931311328413190139662508238302273103178971527127067124050271211283876882266620460570866862182682552852563582341771737178590779625981962738228045001746742066282300885755356650373450226798915182961837552346937542841517460368169278311990418467012893854889462656348051250564378546078425665476394122205224157367931549003068368114995228908691835566077423522464274818674906364638685276810394582135308460072214702980964630570722896381328434795668745114805440033584486389788420467115979238752078415198788826813831109012028038408619800507043819332905834901702899209919394357464762439890564960981742790577432586799393393420236086021816819742936357226223686880166278561123894135540919408436148982635495773531053841079383291020185597441745512899112123066394270082715502576532614814165074131590756345248497944849863758791953036661569791541946251268285956468041223492537800535861117363289850997342747589374983427063831239057497242310626449126001993932814313640356483636565130381100249300193341045488292498011698482718358729368893815352250532656804036724154978069754022881108354750145906403676900282877478728444146700279185870608525170359599257474642903915433020448324460144820614783867979823553166366814970642688877283028736443902210155158357952570589097776269668063346088604627604737896209622368681911153094363512611902881955291516614730348955882880740635609824227634746498869590315603271867857793422572500073269332385814669591709605143241150452249818237549535130244337366090402316513145799004534721790239974009517601759626205095665393898524182186769709734332740834824946726497269283470379554900044916175345338543239584919559473345113676795178041863204506159345647170482484618853838015379693647098892369817129200431020040861525688748798320599779436424569734396437957634599572840671585480064315743361466177982404131357741413102807866647223200277331691848903946688701979965292877537745661409958774498433994419338815677080770500774089528683042936787544542646184115265338315959552117742696516045069568206147888273489203521200483176154949807372032273510521438485908799268655172275594028896352018530941695091556704619693991151136446081189241487791914390305542835596566216819888279368881880063294844790380711326229585741425054935871652298546138520274899382796919084701662370150379608782819710060402464234888499795420545290523313171495191434055926033523874408731467778513177249287109275798133209214815853212786477311353689562276771288653029154253853863183114429835322034547980709174812327478926786436571389431848895612996414163862750348949271541640923289720020608341635792169533700249723072052667995597856456015813699251590747458388472219437064133974663518780117860035707273945577079426175925059081020192974367920970555590895577982971150843357513081235853927996104619445086837276841434677626560876085770129077667159804142639428144458793106650697519485787152942636979522491767199429285157861026614538465717728228079559942567932953504196629378787370594043288996672909300405160379887243844337948115512462997150807892227279527824270135559742283803377047736335502653420190708598517309916603827934773686906275326653272193716437670768698947974718973526933772238097978454752647425822395844935892472039123476299756709763869539144273962201033294792191220888569937210421018235851662904353342504350589691658274188286493764956212625868078135328071392939359054127499848690783507208684653256213823671246621652756215932161620090134030468261357544701019251963212744023577199510630048883329596330753809709822329075511905740463089136365659722806442422091437681358291715558114405661056783350009721950970223593138157697763528692588098014373384225428482461474787110515541708485815182001929575501101645771497736640768966368949574615095757569386856402340273158457244043178415984422068916677809143642448902464126647121214627134281048013303842929301187890593530074686321679112996417918346930827642791099794018184664180571250118277248488468766555834907422880584974258408677406234042143244525797064557997358848813553947878406513257931117170383493889545335101480196552091938050754849524724639969155741950101343314975791381707576955132343844360353609041008582758922899392152809902424764392088632575416861970302437735788367825628080685857641404504124211303077501992867870649022165471647057888048524757011773326406449091559846680058998694287925354592662348242518080946160525185778861277154228719475641869791291309549624631154989774435642376791247507766665357874743940979143469217504622919267344205669930371029663366294435533618828857043086977761717326155029916494417947511462296472208956786638714592856488969809506084938129512549884075838720746772323987241469199714668078003307467138100044342389172423287450364895961421274005974102558273279770597850107227846408431147977413308179690047621625147737210970157784844550465838709717223155348880985199924138341542873230346565837459677292226426490589313383840410127795174680565238487520826709267482170064236420523222661952100649474983862460495635960299079142410393678864800570806074493026589489199974069580076613792489326682133894682464066894354651603796035624897001607291652639891633374781581735469645041138920858495056691961047405481931774379412682078836964504789200828042562058710419534765449827003515314560709414444056675411723580582769079769622035084955185610308899651224268340822960963471566444453539841590083058839136608950253039225169228860414096431244072970283171463854424173770788770508129612497845211473657150277243097804434436240227825391295751170384461371650909420841568578179818748573854491492473732331661103919299314652031332372174386622134517963777655572793241172069233490477345307772380583317414328710287700818332196559442618161197253067889481906081670422897072467175856826860478796525254732974847123473908009567007310805112541491394489805880383799647228422543772171858280220169156420581207088383791398199628277803775977788690045645034993834437635372409660870062494198764833684311438574989362094135213433050244076436197909057055854269946185242341507581336261276630273167282861102718341733607892514668840733688047893345924368140265650022886745275141453422790424807634826435010267602063816401518602684090165629492054090079230898747056932103563400841681927562481007819014961334778091141540093350882133891363154814620798408626314566499360991965831401877611937950568546577105900096132895445599203664667309226043709698742156882207501118357832219695964189118335139789797580376870156408198278452577147278358601472110829526017410790720875334300649311701770286377504539203871881430721533601924214913608480036725636249072329356246664908748895989526482933344620783149615197453686389665285192029092246557091874368487918700511180813417672376783523413666798414970916900614810930835721187294559369687927470526458908754177873347474811670901709238980173196000424680480812902039709384524217626570222933295665564241941629378509869349371355262366299450851433922263043963708324454524597956052899219624903061178636588888298503676023424026832120813813558105229228598122391257522500031905718823399944322980257935382949309524715663589806001256752623997521224945387294945986646870712631309635049669450375166419750898200934716963038275987327393020326675797498966159051932543263063760407304592383769186151656658997197697224940189044615500423164201365014193715773137898580538788593688738076281146409722281347231922043222057521052747724421250542533498999411981182305667754715471286624065489108761870008332740721344062429635070585593657741397183451433203776492339373541215668402325849921100818865005982590048027175582167532322705495171541060548216839298247941013718199358741130231479049274936430946718319137655022067556615498615321395583575619781384798746528578855693457816105292363607340081504887880154623558858054383844228139496036989307314268225133944754585851679130842646932186661864807271737808843543541802861911612940914274541610128405364062101707503427601351355918298532770129091133252975137861567729701446497990221987611655053562535100245985177169912898519735652088014838325729496803498013609455990220547647665211555666093597601185679579338524651215153805691805188821931857933046178207485241679885257238604955048185459225473329549500458240385686429611349827918220561097878776959286298728891787195987441274636937838571107149089113516158758237216091741664781506886175232334445658506880795468827712975807436711094915939867690399543504244407592960238733010513988631696693476433295997097065882703391758461469328087932086402576299890665452826622620262065930284618784643402849320327345261356009146252701150642636521241477077697327459772432312840391792872687843675493936534057227598407897527815858289020162863937983170866090394585703813698164451651217850537998543626321655549158274752261220736651544466623614670727685993018655049610111753741178634629202642081701739959412150128824953287702772644838486279492631519855279701539494296831894424431657579555186964454445058357672444386495717490782983498824394912637243396090928057510360370013396163366115740731058013006999047279743003518242514818196188720059263120157525707218002928900917173709595127237116783935106004994455753124694539212759394475609834242880535759813506356636366372168948299077242626231985421066581644666321022620202649845710357947050836740501223021691850955023196002869923917362834093484727591430705539834030597125661514010611460660532844087539278559610177454711145262827141000124514773462037757940530260812919289781342239920991116392881024892695235890961576163386539466525291125755283185434883238057513243075085555311678110750418367851914892485752900657576078957896847531905822370831455565736542836280455166881255811408315134984380898638052756096228794830778829363969098662616353011024311224248357676323555993888428980246434765268582151173607444080153440588312804473616122676680317775713163429303209836941409188523688924261224337433670334535130089385775379632186045312336276925963736446283008089892264514680325570774325344370387140063621692305569251527521670375333356474918130349798108717451934905006280464774594191889737634870478201533286088528992143439254888454169079693879216072020750661686020193242687210772705264467665221195330279376351951250244870639402860872296838775964490365968819346563194784467978786954984421745383432458269072146134016186418481353929889799801796932397305523607423880676550941485330157749797790740767109902102812306066081772926086974208413860142816242451172006109747105087972874083502494506799642394565556803995429330125939485862327900019883118079286197249974807911609882053244339120527920381289254461785143792573070563911742839197355955820586874519599409848840029593240981498545529140616179804675526754735062391342081376815260951686634394464890664905992674579934649859252562929445585457794976405862969199679122225628053834802378533698255231216204135889179188302989440566990860783830889593050153986188931899304162098011873610252366295166606856853234590248174620663984878204975495990205303404862919545904656873504670633073027086669479403176017634911474785334648526921757564023043166122281830609114935600843500378929108013504346674085425914074759211424437375261046872408038150081709737702971018647445630885805561941423099028747625303900266498872894473735815948582323212807250563809718218316554805659123628994053430696238012330037863636777810876516320349472892607500301726357320937798073065968974187579248198447062782222934159252585345073268751307817742227115854369746000298693388235700147961208068851666483934022494661019348372128372582773368954991567809884903656502904112671382668531741039524618261311966216059750616947380775772880007455979759798735389945448361687805842246805458380214821517156611042722083186323664884055805259168458722343214396581247690504699167952369712537236434572611585118163681008117469718662988432326005746936626901719470696403871905401986169662982106742194289389029666288095127106286560395954336762839429929726264045106938866161063237357701016388944546542581694119367629147116630483726268174706769102800129945141176622683633666325144959160377869671494103543299024670492385225320698017725849085942756896057745607082325667611837386228145469571334712989891956669033680450674633141485861468615805007477004060081322840401490106388406582311826590631205946610829690726344284300889695226449690693226890861042698026047624700253403937357337674560404221403770303138198528821617841078633581279455616889263175062989684488689514952183068592569730253904159455121352632656154419770780897547433285926941348282111024377291572032923738384955363151602263454599762464201205229510150861876409101138396274118049080439969645920332413367898916191484094631554251913911510518761563655456010906683536512029044097263854560370878897316957440190459946689311844007095943089725140531666103737787812065689473250450200625700853569519149933365476214379911187039089763048268527476248949878848966343989250781654550023996138368056597294342890204019899885482733612675982635854677174004991915652042728590383340665714186097734221900168698392409747540977408653158999243565215240626326709810599790238645153094456811804300796103068962110725330444593534633281046536605336458504922716611784891393439429128534636489261652031882942578370939650294593508655129490608561911097171367584842611481556585202379411901521246678583185050534000969886948137041708030334584605144424625490986508231893696642900288454236088348190839253895429936599666909119966835670673827147805608455160415724987940144852808358129878651538752944955369887769593753415748077998833494064882122950926485409994803681086824196571047505458651242126408936268265516384940217570967940714469238289200897954357696622586300655849902744276061249292868180254571491853814781761077285881174113948889646438470482350114029829232061581171806980071202603774063741555037380580966183985187025771080955301328437636984999161505104401733904579795590468849585980936679029007442881834742652818775191283375810626498718191729988942834761760757283874945265249402785343007715222884579743168944073578925349977547148380752992554078231339325096441707297440719295486279059707969245113121017734020161560054606473068821992231181431145288969509891679679041460094085820929991617519514559365792896410318825482466807691085267319158923488113314447217537170685180190816282747188139462571897754807566622107569377159390352906967191318595831453830569525196111155350863285789826905193075766587471031253031488574893112474687613182558054145655557432395772953046905895206078796550550719932396390531222153964180140260000411800603819813547424925222266921731218326474774797377796830407187766835684800874373596882177237008048061887348174208221380861915543112628480673750005471262071505574902618336064372481303389771178194764215323964102180358522329415923283586465463334981004727927694994752822003502441052820065652351829895319157420800193026120329773756798752124326716307148690629854862072581026149802932863175021903684868513604549597709571639403981034277599701507263585846031473067042648012331453645699380127886964277421521616689284096004296245541562319588324937340113455768141956989252946170962986382785203345813490127118276408179316185037069078666634935850282488417263718305995577794416036175997400377277567642800314599474311286249870683275679348403966617737587534010609593720934796065555949472470287713941592848723984896179779792476038907015442302243248245357920124257792294682195456157168418474098539124225023842097128956986453761145338888426531118045452726535038557412503472001419145954702483714565409084785327686899115066264726610119809866157745349922472937087667651966226289338170554117461832407805227783335706123905435253405342855355993231391181768672978696954379833569612965097173629635531031851511035467519297622210423242398831720927859998355551160667804875833960962675134397388685073524354357390501568071819568326874871471692077872545589849211993465937419887216534704048646284562916850285548378253502016416230406079755163686991194212624611511278847084759339549078227194040357660438578873301684615098781473367374642317313792695561516563365078201866520710641568570150065974920475802244808925506318438262797963971005054820399884301452607893186031171453777922865221121274907524103452748015075767322123767126228476198419429226463839608738731991539970465984166438011312829592039307208663786163932468425265576205662014066070734359959551017612751946208519109347545410823167477122703655909033918805526854114201492813367818633692209870083624436864187749770437801916339669261243569459181005184481318769450341575841976239561668566201780625154998927867634897277446893921700601685776455375670715086008364486899096105089948126866762422572020587310732957203403638452951980972556056064489509567761607495078630112358089776117896617917044489484151573189659542756962832710801377640348559499190179379783953467221087191994316687438680085657485343174267885011538595417207909185744634049259921868197146713812537841269426111422795591986939703082919505043579329280278694442409431462081818340771057644268827114047450774517184729842151360466810562475072846214812581388943342794940869618480376910708322675331703026852869852366360506914830549774735829842961094331339073949965005555137414104977089666428649247796995044744900946343482428920495832098588147411586402127993402252968379549852401835272891750700656569089655191040681639117337785938524939872933659727799249909634349902902998901869607177903411823176885194416019327238976001122725504495578078189178951466539433741975489535149334249625200778481527080742509944863673007031347570425144454232006539394565333854221096161743920353384029145068535876774223882080233175068841465212485375261729361618312853680525772451432258497758287850886788569515293606026217825640580905536009145049719948921922243553413674484236914518637270519428838529075879859128639504440855950828605394298486137354707064122579892750245306993990820777502417370364187027092037515477375299598893415939133236406934366826867358862863317409693526482010139894844766578109751072261399923709926318604651460831090088125654849066074290355374560877364140830847265023189289694381687043967543335414437133525402564526876954627186726841464479376264208324840407165317299401504993755463884716086682424787568708143214091865036476011403640856315279327334249964469890539705288832554383253120996188722704534922051200444763730230553768425325183361291971113486185623639217888607616152605840212404855513627965663042351331001556271290270526613633180408518347454306600026289886870956105509610792312799150454193387605312460502611392510267407213261063629001224901218983912370575172488761485355745640615300541735081025294602093841183647337738971830270201020568492650170852532884850448149945541519647964123610877202334033679114239749801790046058051035622570424368928178271727434725687605235060956755013277057592847879600172057559162474346332670769110801790624999232223844947487984502772572796601972385427822292646917010587153439513655417701933382631746849259615652677934246897968683385422040729534019838949120877076614405944228671152724792296495412588011391777783932168150330566707373255402180575203099673279411399708585054578878206093557155815988945671748858452505892061053313592507252666828139230951956275232985963263817978956982320410599560552112657897326454178040831208177532810837709769322286745824049899721375947717865161678983331486662134471943056566168657425249804471878971269395562232617963776952342703999467402803438866860427812125989831463373503068020821398755597572458686301055893060656087782609142549505060327235058670937339446004673363598451767187199015823211430402418605426221627601161676388933995237289896020019470742085615525160409033879234510609823820909313402171945347958563744408821948261376218689751219117516746445471633324978448484846781764307338701823908753352752616650801215526637684115705641320734686268351831660694194391488515550052604046274205222749735133287964629848608884611061578461402947549367790299758335569093228570140385548509579107329035854166207842685576927156286212723476125732381270519662065370428731895047979369100464183209954112034327353821939683569491250157853312468757352259600444317092185623734358630443726271920587650793710601213125782366262488949839459978779490785887222696308651562959133965487154593782336113348583275864874661041271070273055982735722580220830885407839568076954296455728587934095065596434837355424766756812812521827197744990926112910500910357765109062801078320116840839554209781373219890562801123796813670136274780194637733556284870095917825621144881658463829795972601615703743554241066266471390547149562030491010852469057494781337728367621663003660129681255206214316992614030738652022836506305362463495158340288800326749456872614883189436626414206137405203634372958283138382793890926944148716603346467385800113286069225684957263930348094620443142614674281716944924138267004320030507649592948999261736549378747695236349618551896624554844438032550929454721222731593330881452604997189777240699442922699016438321550505898307318414710867824971695251830243286666569786886966710987634082681622608114215669939321583089328751916178766738772144889640804291217365149296604378508571520920978883133239970852220981320733050972547234880575429740902112127316494812804362771612490423748206086709314808445440328572705447982626444617198631501457595778513886382277462587961486257254088470099729110595139744662447883571916053916327785856741781591517568498082772572194798062954766845174468105569813076460167810819044314186440163604221221469655755898368067912969866694027434208979099449477879992696549660889531174032207571093026591321710694308736391664604692532035794300257330877870572126369469940798152530143081688050136596024271824905232264360777378344681669529279941289925740033717599904189283608901628733253680973526932870463807521775678605231073992067404198528062176366510861283699344306383137063474366436682837744128362713266807664669493791889333735665515967311885550333628227193832173449205518333078636482776310157066690139490300700732218273950803007484584878030265866711806651703409548038318134749259080532537480368685947182940348462919389789475964013751063498171678883558626070417263160389960023005531426462848000376002394452545715215672994829447634930111163391919464320667825483438389556999036368381324829031434118757830167846624114923122221994130053975243905766883738335857760212352828642743649293815232206423447357661156533004429184263239665571082503446187842380575533807705749884958934784364593378916932232052922231357806173315246052133602942545239804968406627567037108453531644143761028984165649131734188682402700410249187655513341974059123384199585870581335771922303816548827215623828181337755029599334592449105351642491650974550566115317184550806685647731994226928595578303395667753511625905458722805508646737081522483789673309365287695850688315742762333104008509977486839712719101156100564364727542236286309556473575419403367602900701607340876304188283668974426411753334331664795001620929684187616594705646605956872269727198842661091670628230052590275795595573603840759836023408147510039240074895738468784097752808628589156810461818752066494824746391799272067028149487871186795955757704609789238218841192728527031177147013348378010836432265636590161510913359010624858659651549726803247341356148059397335545784246632023420347986766709317205700087273143171062093353576207109142198735325196128534754574636766523957352242060471643843255439299608276131394290087980207805597352541951259448345842185074968970649127253571231391518423270090763412011214788352518593054749538256129940044500602892736628544691730710430983348939893610994820324210157180393682996290459957839988252768735012825389893801716526864311948265355414056056463287523440356150729210234435742724220456438986815865802308974752776738292168789559110909434391743966713223900470757006337735944465686009758042809419147018236977442308321625075665388016793001729833161281671722010457505750320848577296685809060995544545288544397590391702348160429411560976916267286271646652868841413379667143308651667467643721283042841907698596796604932627621937539409565983618341608909661023670999473022065296214607570355410544475920652205001953456858133057446645136485527900193912083612376329253876638936488246281902267333566768781592591823142135065233144471875541022808467411840368987547538490387101867857021526547191976164078662287282873100317699318035676191678365899778795176688078730006486622346812511247108653168208472689601833743399925601429838902586100080895150732469258381434381502358595754862996258943689595672200427653627678372584755417757008282613559410195389545087434529786886155134926178068645153397455169922712239883079761515227331096128034947838615956201786037582582928908510580597257337315827218596960534588638301667330471933675890407231083333274906737990462349150125087822002309265742490151094190653729778683842743811711997258718648925752833872843244989134723850970216184152441037402861866225854284187326652489516983408204633155747629599808309216215516784349901650486014650686149287844712614398618762922792774075318316198055510422154746066499769437716257136422914926860789341776704430085224657075170502006277096940373339743401655555652416310318089839410393017367193107108832525296551690452050605038454787273068521858337903700105595778913313386810330969723145918618206512754698720053398048245186408413514508690360268301191842871111619304085017255492108486055039435410753960458317016510968309069643129891780333492513285199108149525075720549238940592043530207787108590355599009714682425246316727324676797564781206242989861503983819324314211361141115160157090746140001975081482955672900356153242913237638330347631334133294183790838302854361899327160577312667654947103020806615206378271693265655466978108113850279236051255863510559450242867288552727808049940570453720180784485004078374717610073588645767326030224236307284943170071813028800371516477332157608907287393764747261844075124830523874079026209362593206202904167808253436509809819105523990211069864793504066591107693360274780243144418366160614935237842545799831392079573766304401091748782512587910842571840451654265985852387515843667106921462867124572374572729614705834620869275111926696165832352409245080464570214048793157298604607168671694671499055096806386284319472250271349474764926573908618914533962952923475195430856211459467633892592862051564825700067094259733004846667196480591796261475192402908378524233860468849032014900642340988669408588986237571904466400513912540577768096450301816538252911717094922138572030289032916249792577470287963107226956079941570009544754473454747236989116001508886867696296420940264209276158418920679853475304505827052653054630550250628208249668229897409922568720158525756494927414749345743891264062952290678114083677179076056394023816699925376169152007309544811797760912511787584847705339085547444572801220786530280207396169771038917352960580672535003877921017607028946222190035757712922564127948428867189419376461467930300780117487376961733962390850349548596375228569132347034017637122110129346265796859970788955774846221744900528842479842530601167279171745238336843533031025868427699957075175579956487511256544361362482490154287702529184321395788744431943015893192247234597345540592830227774998035092393379489062464407186972579126449931496111226407205874286222749299351967141752137840084785119514534964692725821083952414979602011357142265501031301856761213434086974949883241664658345267778192568122606790202491760906900999309510239081450949770829471817252032922615142116576293169474102116285840482067570052457426884370805105891227668228708170178886806128176826320169448683260644052254085706577762388089901747850728446848441965372364292423455542275539749763750839540530212736143033910467742724390731925206472531562299242406778056255775662197926027012917872160859550014098830428117133412430884066055774958649614008503643244460067135552171106662644878959821599120231382756758931345872222354366502232252461924376687280270632138778839198266900831863603172753895790844427466711032486494683414418538208028829948043777061243383233126720281529484741723731441168407010689991750492316171344102117519235962584549311016341763096921551223120662078302761137550728585226730508087373556018202662669457385505892848404342179347196736992188952241657569852452114446812163406314033855899763435904514449195089733169629292980131771103182994983658688200863926559598705952106731051041816700521944566578654929379820270990798530171910432419093978815446999234246624007329864451548558923771965885652671151816323129638871921099294231159028018369010776215408821933542119484888446384554446742844067415497528278715162855378346768280986108720141564036332789055183954131904546877914435230597749607918664440976127480158917653382599799792881358641130206756577007023549111519199021743628603349203683392517509416194908201135683001371136433131070462530028050757600653022994964418952151083599794703654034138345144002193160178591163999696507124084320284460787932883450458508008524731162414842446852437974148870915104023769610519980404599420063300857970721072343889895349493869195027412371161703941661619499657354064546922693117411847505473198434487693246767286089075184247125592994761355645973551736893870244897609137905958906670558162021402808438837268502870541386829684848071354174201765863215796200127210635821565679735317933396904321610471904800171058897120304602930508919369831793838768092113793684316974095355211865866561253879822731275968020039838527422729956873068299284330854978369282536111444519504256328907965921069386901988579076762963838315670591786702719641969457238720752136009470936627737626803674918394610822273858312780702589112949722697862567371998643442573424738201165937942847950987755241325698053382193048980593651548066237671417932247743583265790633598304959610519444657348891297221712618547084605787712871129212937944753772896887789614191890972649688551538138748324515086730108311230644328799164185198515737052064436352008821681439678334137119169384204991671200158003079543412648595167580104523036112969579493228236493281836738247960501382683857021708968889375468698096411055576425899375987828655027008627605721998668893035814578337238557398403344814615984860784724692913062647176461892416967762590199822903618012522451276533296796446401292439280540886409616785898812460763159857771852292993544432807840601252716261493734503327535626861606824577966200342645527633486026148188524627209516979882632756756545013256447026081756149057960916171249098808969398938331055104262876998773469037084603201719530979211067285387612280950367719631422765949930300482378330382792606113350766111425885851395023600449570227234797144078063204698714740682304030764148614177556913240277617027841386305994805418450590086519742726462411266538619905848772009888225732068428184372123664303229844911660882164884159642248898344318524755994699653129321328803470500827596456436823346991950561219727779021638763238754110022804268041204097521776110466345179887690979164078346380239050158902845948911257968470575695972718404124225384587563855202653418836706268917305500022432998245208145982351122692361013066376491475747735286259066108803284176053164809788002675195859215774523853864325859219640599783312754477208388487203561880341519214494744253058544923093900589962802020695859535269366857774846268940548414812010542986364550845671026117206591045064331617330684890956416179511333489414732190893774943087886075480192688417795940924586262367523605986208489424407369522819144677671900201630938542353501747940934692175222103322411457764691614887849909681541915580101609711430349395245894565081372127281193902938312479735970979623027175813931750173634187786559955310371015156572204035394803174659264970182850911246247267910492706292280208220977837001006663999650973241794684735269447243273890157328360804706602430902868194704421256002139265731571395779880634842924131050955175480173171881939297950780934653525308113778536499858017750558040050491164531989810661681535828885713344368622102533915961424917541710507988986325089034108245774649644986170121890870245890867186905230142864214768584698927014868661181239430119664106286435203430005132093996944168951389838853923311405030232836285405736348579563708896681624814358975953249958098408212415475344195870382115965134987430504779740243299436313070253318593586515767328712854883728454439876584105564874601020260269953779470148463371112421694368555860740772175633215170127899735424911545158150820806629942436500640332056414207712576355768654897269475766633287594258216840079952431929726401440069411573269091067267219158839980348886628709132767767537564480977004252834971945673678797433133022842695110853711340422611011857785677103456933735402478842880054204895767706553788768042189905611917442762646812304507707422391506412230174912802283943161196572136295679001237332545446667425629740141779025137492966226248610120400876878677321868164409693920901333764327440247538408005212448719081103259557212237184431565468114625379467436127580134670369520628554231368268341556832644758831536241676797836267367692830848523756063418771987137348663152187738459862548428594380464721115421430965753764488349430465328508949357173813962373236956551107838844924865491763729126120062814000162950599098755030551762936759257999736619134006907712407020027127364896534407022757867448210352973034780065067603705449148160177806156913711174976083380533248083260064744600501858363362761148588899595720038343028512709996000574112323604499891229129268667733526609821678696820206136274474727079396940884975961164902744658862167883465395160831515639212399867909412827239191467226947247210176777844536003299349348537447145269215417016924647847753810087479999997416686456705391165116241183260776409358126285343514102233838655675452185586867468683588653325039193858467361350551729563899453421058977276817071731858790009136713249406918278742009765397960952394023992455304616624848456616272587424782793606405984106052023084661996803267778572655214267591783584041895011821335553785129123968886842839483936132943953249333292980769122855920708981257485759291727997440129382185699740547385662170448404314475457715610852920708072060455932538181854599516746685697760821125318125983857053179657391672949905477185557566416980496303788112908763514937923797549454382141402421922921416097724601673719189574616466411326440993767851456711794849829205040315146439385574217060168581139860344453491324764415452050491112398871242921877326288692551223075589690618956048727063436055215192436683383407828568015049279755253179193443671684454286903344682370947845021615718783947759437744770544450652995555573877500493792775528413668513265934285037396958976329920982875359539361174725505549858618752210397039140497010324834627053188683126080054973620528844288243181776002359333900352097012437031234582522687093891668837722723139991595198604161189137054848764167058778617399374406072009603233314358379268905470062478504999996203570292839626326630189119552148225361025331956145109348167395479238688947728569119783039587006901003965646313809734965931015073826997772202181824004852934819630911066188207917070432754539979218084487137681502131950841426237710137163855956451508720315929634244186509644191551885211608402917980496830317846755079057276723548893505745869950761670067635515239474801948981054859909871462630901020839200044470435003493505748173635565890872805089530808392988232055665769838250020125521876810516553074574280397323840609935132994251048700893127694872498452990661227270151040191384169140653024058571415932523554769336267128533958862937011100788941997732590190138300928252052943354644298155754164487840577921818406311708999254735645785750342533405071055456861267063662465194205398703661563300459066139877064185476949254085622034892337546850716072538218669234950272978832811842021943999328432004232997207272174434586078269603271761016345829185963921397242913365916965888947559252793218933914737782273466758887990431549046749893132358028322975563023201794601955680007688924514716394898146454875380575564278652711978111842893342518768678335801185078469792416504082673599681272965718021584232404175249827511136348561043519429800096726042475344144059707542335186512033957658532008449541326059698727605306113824991617744589867220077236736348970870642741447995107360102786744346274564647448040973959867752409636914693992884827658478526534128230356210318387035211381490202336821005547005608499866992653392280228520569869159671337976276380918987911411258582285636386730665315290535709620128699831217520287855792739199543724019795262881273709078208995693260726477689120056818262136885220164340144053209402202641426092241603942004544797768610340468767881230221569296224916720811118317175393403963104588338339745860825741790746239295803688874999562443448398826728625479013142064321116382173122138982832470967069223553357800784994408657637396084017427385454672994637940306300867483459806684748138996471827198227972062038442551206216250360470720725092092144865674159219752354584733386253286341754293596863981603752501237124343352708947480679885565769230569433689357614035895574563981275202964199713164243355263118092413990195692065178080077974410994361231090370668969266141937407495037107531345347423668462497638025371908061599443568901001236458636771103801980914906550994570389903161061236115282577009938900468368715804662031813427289620594948081215774662198991817036910707915545646158175921554071124014201926629140401992016098013660133863067969305311631456793929782596753404569798807777934081570021076476902036709254234508467866217767542920995271856327297394947414761590559126430396228500625992647821838192970198036461600358516412840187206094902919428535050109652096744183003253840640240481729123270285507661709794924951851336124969641697700983672916752264478665894181834223618877316552322050931149946931090145099165074523627468926369013429014103878887500367237709206446415049232196489807329901629447767022268303285407636946476602877226882202995818790157673300560106899783284995996750669896484337702330091927390626893529402101579047633940605511852893238903160220761291858885204580550647315780168340186170511531930542356724133835243770179972957386815062259155425091628249704400044436158512627191932168608814047820680614207799173414196469594100015965128855472001480655080702238341857524672308980691379208154669523715159661268746536471005316651650810003291972207613128975568853843827709592423070890730946395754232330480724159973154526019046885784145886023598533385728162885885742544621242739276299565239080855354988312470614247232891039469604645595296589310091678274926123815056997621711853079519153622212893288435201545286719640394881481528863297731141223863603078127887712360752015392945983344489121049507415344797733596636282816444352437173818113637581668656365038981214022171822368989882647534620571943224651767424811103180630281677061170399650892855429424066814163203048405002733275444769975134177338431588723679862934150131802964265183876712759564143253935008333186848088944444155942553785110092845498138766759069581893168403244236324896212825009366284828438922834118946415238152613540086273344581459124191261621740046046964412881407327850340875324539824908460321750269062533658835036024830542104839514769942879193674862886192782439840319017699699638687455984413248018919922056677463320710423873177409554650824328372274949462370123191841167344198299254695526346417936164710006874819306044701569233684305634411402630915088766351822089434919365531675417567345252547694799750256941475849881822336133630076687185571627902271415879009448250673187397819094642584296563708389603926363888755520448198713774169706131651010285541764400306545748635732455053375920898240169208037017378035598566924419335639842239996915191933410227621641867208402462447828353119129893450349078699089509837234555408797781267534113945079162774448367699932318086338217060761295439249165981751473159139580053271414726747226193091333119711563544046074571503096565827975769751522503546549228684434583584484954621646417760314064614568200167503402416063480790638721192065304702814013634125537237990605156940253815378801520933944932484514925729561226801437817940451976355344655914695435616149096531861393880201333972373128914205436019016670389479077102193885882517927072677111488962625317867625627412867526853600429275369498374986478628667267953620201256466090140077578213052793695294467495946831810304261711382621919957375289621049437537292886537213982968671899430145054885714403279093575041886436252783692669703528100568308456693576541380882611645423860527251701452901224704950321459067993375365170365213729150290209288556349912052666225876506406884190808110962033517091424963924264953945847629933184782616171489659041196850622668529675603875929743764023126640816641231948929764299997382283932802902080409807274860055569690645756872685475384139295477327834233362911293887269464963185088010791520662097118922687209313831079891786882527303294690051282769192439822881398456443056408381157917317257964027648244835353127224226951966518786688488586412362771085091510513371650107559319401948228598730998757165398175327896328097363947413620211507078878820028307529669785637321873296622510449850519103897199668518953241631189308281939600163052544941791226384903709920187865024317447900605866278667615719694999618474413857645705194335682263824852461581293073749203340496142557642975670550084429756623850450564345567654499986252950594177493151888912410675946129905255809658209053217543313026053273855766639942403279838230819373232001323179040089015275288205990494663463475122977634880852207361383035478409074221265612845052795021797269167241418594565722985858341710304778360244524392176167225988134971175936011225539813434434048064662830971288895924744480316625039153151537988791479760772580724893094281829700050484406896063088891670337126725263605646385116708227232371707777153844443471879139127335281249742850288134075553048452185093102441874574312382828298575622910789679700624627729692697142681383831654923848903789531958860035520153643383861989276092354183837124560845602484972562040963670442459411265091298178436449358912864432971986669754568883587730922863002189430514127561055031164992899812789577944050756604573682002170554738016547497006866370071368718973160533340173029773050793832367907517022449168210435848548750925416191710736178365590915545149055160343807340681091271924117694141092257397907151263841905056964237872298228785500273097174112955533943134884419379948205157433765054434344169792099219739598546845848641801834304603354575678026814586622245682815433713259602335780410277905244191034472979462100342822772549342462542548863059482329204037326865328235507844939049863309825735324745522722115971801583047272610353514434923057906450011372271016867930132803704633567282253028220588636202180195027292870557861386573037385223411646273965927643060067352699264780486505384092423334702146276671586416284257752553349990510717556510189699065093340627278709071806120882442960944440005121863106424685649577660838602493474209942923786444448091868665290001825025478216043932891598511480554841752665211638907119337668442849723823429287895612341173021250855838576212464416584939846806038338650701849482584752443670636717194069306761781046407671340280524139896909120531820728403546458105695857645698139650488282206990761692253093765845009213136341287475075436762438252515120519628869129435322514838051782402224300697323067366171364262494634284423664528409401386558457124802447172474149984620074791222125195359041143587528308450781047947970041163090052405818236593699996504882510315989893796139678726020537537715937465096806324610543417931283481817046663462213027884429814855389312343826574679547288840805001437482731828899081450072683393459586288186109830894497509618538709528402946576403618348734731289989974703264186955426326441917191512349157474332989923364404783839980808581285866547597863037735193947341620993136193812522952709655313308670954167839392208675647189202698034945768963943524589499598680933058136686567646450621285764142468216311138704634433104150298169148411338389149178576144884643486913147482211058020236321013732357182680591981004656524902217761726860819996797607370424628290499558396152496520957018723242518133791340896818769602511261737931026538695645208940232380530630011045168232460715244393647988481382806109714040452896206984033229263866796787337011296964311953657661593557425296714145261228027912784705071179390822042304399857615642516506557260175424262375293756487562091356137507516388662464596196693467812900939905269783906744150563859470994845753173918555470998866926687403877879706506610512145001968890493387200919603541430365223146314361371253784166765470791329962457410530866164143751847782363981756926133854305545307769935018643849701312195698240465431227723387707915690030712753195265116839646142349545187854007771813722682786824812849691090911634694545768684620605357190259067388753155571824392642606116406593677504023931356734358579548399685907048453310159019044625510065299235423550257321237863561256171119557168814837635063556537751279414976891805456997488235602230140599207821087769909854234674094338465730724440669857102020544280000616462943428877804342767550043689391792876010229925500632015213863945444189055307616776451027293923668758827399437445930388934948726300742232804411771357489136496955610211119372008713225448104464164011101469457913651348990253597482708028480554786195100278737705327108154075253376391547084732812729593392234741412701472236623936372506277514056963792482860938498190370827476395171715336356799231951830341201501494369904589070623381393296901379816916302887547928096787184027807371732950784284503237341677652014763495451449845244393220791986839866070974945449419646816207783591183598113574776064443527936014352317994976652702996330386624380109122043585187478253518245948524648032994925264392159990542182060488784449426018094088002049745986632344931243660366466223851283845922075609117507279794164119674567876939955528067959159192200104844795162128370352184987440789868447373395579363102857976197934831939925947839578672821819323822543947716943092814710478547450924753546424171348117875509116610303238504083254977402255635816789785977148956760384501157592547471728744461560607248643606830539557224793811804085471049662427736763060357401459942118233669176531537180844379439657399727348334791389755890198080137276558181933711075862915247322841586642510382285960997203647799336320191162100234685701811999558905779234624610427896068190782759509719089011357204484095303299123845762238768434323121087187745901563369783457371290295338173506114196500671463698432424882696785721006713085255397146957817199605678574103454305749344815846498068783992320014429515510008814664693516160419742242968388631061313321851214703013517351466244904574067085643825333360241534935678166479302710143785006211403880841607081667213768695408392548261481648911427308780875201098355017733155348867141817179228280424622073354356550309369671163819807714956164809940683996342576588949502034234929871592196661958907137281411900168354477986589897215124443056247202812893511019635948684325625239566480102012301475487908252909825682895337035755336190668268511614217710060314986824816601602567142176125410563298422120907789561518656275922135948517374433509185245772285162278203143758954470452094014907512726640124068454876959957706711633313359569805835256802289268576511054640582299117132476315962362252143465700409571449428728188815863446670075792184102136117213070974458199769530262060810337306686769318574522816716263554886675423206871953599139064284774058809078927639401799737086694247364749118884157529475765571107677064947926157573509722294639716719106496234953579220895957603259483251380268879296316840693955309931423936242040972715323826410180190536861060824278323796878841158917586119197446532251512318042319099413925694848915546503861435043129475049419044232426117521253597460481244718300624211770467096582020100333928197306612006367343682144380968570708197406368602653014028861364742563608420919035437589183260522256187062328190540102351600055398700839054401751489603970794311073881145517713196015454771959803752976971271308068156136901573851651382388784781910822284434252240750022146528125936565797402287664451339472028602083278185430212156157509016450872469535431085696773283482868047679922184029303493153840303310309951912472591056132239523621190405021559356511359234845304836215951742361355098117328469898093612399426386696246992243083430337795438173944315105115488655992869438473599592823635044515992497942011119537725110266711454639426382536638049195672652715005706831924114146274549865712500768827597180838646815130667194444178063127421254771215400906561413361136767822803215894755463317597734584420467337836191744373138935090103548849947987240801660948791811623975379980824920693693475227468020903256872802976493079284596910516852633864411008489538794856707063144615841509370229383006293775520565673980489668579009961165293759869686990169800872774516505036649483447848725285821407739123458220291846215481386232207540457838679812153301496978655281147038231018164028220782468314832940179936739364367370508963825260760592609440627732506116308559221475028049830026771880518467401643350945873829673098055374518278920962599652521319329048749400254804368035791516922144441808466669151744558534986943721709051599711845807989078776332440006150642856285452343180767755894460882521516400748427667544871461020312595025872775866479713685494412331933662259462086942273017193024595757264968780515171247938964315066991323961956635832011919891792537855471553422698829622013708129350106948415492532919828093326406407072190258265475617743161796420662599055962235555911546440721782484718718018273172592512943642555727126475511864157417694717102812548551852655508211156487284358786339451802687788248194663327473242593931977490234779659977176839346893026301238576922995532415853030849722305086374403908616986187003663848927399914875566167539318264589106203898678235604474147826045006217686920557228529927733633711757281084456964136109667401852235927160208576831090248772062240956495698021355340286995940755002995413616707729916349619865565440730647777277616749798367143479052092752328169096953970011000126763225203284247712704347143792804898113565653965868822911689404961419212919956162987960730381966636643961494233819760002669074981632988445799636966401633669211606506648526943696834772062023031975287837116808897159301022109237288757746257905273575986324002196954608361177452243910981425617470413861783828882614092616434401204607189396508002641627584043020896142597812763341903869035119704788152750851987534986374409579251522504800825233205870798607346789343586424751588507106184715301882036728497082594961198160751513361498658655935013740212656291231879959032421335066814518827680139127861589197337804370577363165634972807264060956571777224957867495566405891392417419051015958520444019084489319624151991002733169196317482327119947735988120741028856363148676470351517251550867826971432973567713211891939504638372642664314136714875401091961343168438241027687471453404324868436717369297135103624343639722697531688650068975868991068776601567569191554687179689474067760450218939400571612845303966278492391908601764502456057845993786337125739070740827768903264150204299627507623636572103820574134642073104072392190319041897806308194980969109670130299389905685488234983429955090122901423244539406971503985725050644243988886072890343459928632183118018305983428836261073461769469229486509881526312221801828486285925894731211458989971769797520824866055180991306331880009696971902676266454692000393419757083888513099642054676280270755549639536981246388286507562974778056392219087351750710638285696960681934101287383160147424634929875299265979454619143449180022813922522374018737959658483787965839086474298262787849299795044271837740055642120463854444301288115097911230734629309305772415254047838746819520172431823169535286191047071393358798703185623132240357203134711983987691415890704151569322932993371961131820918437734360243857260956317449464243282317639901817171385905488476672303752834971048868243848541795172087990757354048699539761686486731624851178116862857908554520307964696005415724152229267597023794592768786539080413376718680286665099257855071909260060293937171466152707054765940665296456901125960430365938604204685281156805069954460109955497638971604786285184091414206064057715452191436559565422191392239540813124077810788195730161424770367978742780121783408637009078526754601749668661484701452390271083341350848115871504051910879062769502471756463638234101669903234151762242731724732538371372585029356581157948558937460258849181511866498520832834331897084716709776455925057242786108874088500104300951483324454916750970508946823718008324265646647142673849834788580912570934200903145537504609721091229171375332303478843780429481499629633299130777261554194177916259361772160292780947786903586104150985814992506502064974648648085732514016748139949787958226921526454491097340069513135622955916635095831903791054690092535111967020139977946234590772314662832969121829380398867015386841376808119349213513460827989548010976623147427450453582313055609333635508243490211887878337115586409663154897795108935456755373909290717929827144031827885097855980423892144291636467485398384239148054623596272869439198433451397381472145354022242534411136713465124541750009496111007393497524506448775251395030287890071265912903330695263077510202356394424761135775480785517500316760216725096085700477258305017414718578562679139551325198619256583062136669925663900121913061172185645938379933860224493475656336476374250824534502682510653287245949799367833773293983211915509132957854198384094437975508527956947029558167104064021903334005348793861640444860433375498076350113471582365185632667379520751194082396307725567704995778971239850139603183729988670238017623625199255623628438367956214452062058409007791048865527600451046091280414577082379748998679567822176208623077937878858569757861645501253425413000372185514283336423377425996440501618774039269509689817570889221750536646066633440631614348122613444173265722806141700170139681511401323478454512089943350330309711400119289479845252708107479595046738396042249643012881206437858559137845993280080996899301066685889441617040646122734342633832667992462240586120692248249935879369998993572209986032666822955544790205980600402715656221942165609683631757286033885603349640424834473583599319070525380581870510387291467841300640223976704950323578861714955498119418624085836002261020148608718429186944195765767906451038974619873300336843988403651641711898066965735989134319391394076061934091103108657328240080258724557359683525163337350444914126155977216617818881292751332030782761041203615886003723212326341834989847120529743953023803563295960847943056868328846929065625594553857410946702571132065689754902491185679290493751357435103513430983488117820098779844437960610775005797723247500890503763941046448816489885978834366949137543836430118131002224870405139384997825361060294371489395813502228956527267268480273587602755687298902311607650107074651226894041289967239506393257392820540094822094525729376136452478592434814499702459172290037712884495698729271623806147756869241100896581099861048732996653538856315039035426468779874699737628189222625165233625391799166565660321115796338844991364091654983170310787466338830743757610368915696444855594917613274888811589086984341598568766010322445367082459273442916459505874911451122308295662129927050579054812284209377973982947672359190845687946940964869241180449913999713311382450978312946226432713818668583312493239290284474994961161866432036925488073182672577057921961977332537059573630038099185556499942531113184337984580689770172606545322915677805205243997746415193235488850859974042829192441278711936750753879996393687316669503048076658364738584704432374065577202164101453657074404174509077831324399341665321234176576474304736952483364749863259065503566688023760381557897071930445814337594232378429487207645410307547479690114345145788381771347968427953329040431418608878692612034227757013995427699049371876710354173134581523365849557948695518746632716448088338192382750566926591916190032023910062966825335607569436583198139872570979330393369529359269102200918109692370020976071459103031525224695486421067033074196277376502486048071448879246283727094419139130920515328331513539707877680390271353610770118360586047477631692189715527286542810962732704143159635608589896275793084084036393182453638428139754130255092784467664039209715345959970481400975550354697601657673325355597394196285145794592671608285099283949027417198297139923796248674693818647390394554279916105451683499804782229879496954074281208605811571215883632118622472005461021840242616550653955014093163834008353230502604679484337025792417564276692887162786045401522175808474567702625326657043828670708548407133052380610610827469854150799828508737846523372472577588882347259190138709607768308497807824653573477554224192942435703989979082825338740421769921850801308594588079619307384251522748050760658360469063251690826350882834029938369979543408548043984707698129404893136855349246840893455893841172907597245844786364429739521466768159968372550500931637473497414092765099627969861983898500923684003387936136909014297130467188543374594255354715640641488172978752555445154886828000204347758027691730199654271755577006210899985748837983439984930574466523497134679545901593052149037618381859129648579629579742949527568856608612714272384090373621299864985421775295942869121089214885983040305028721767981920636980857070292971618584730518352613478789357825357467189499534550014218880964762926214390346769573203398530419887466684329139559998753493422493238530591268867937869912637077610971120482488008367067697972190826286385973675034022485745206307137362533740875225179777038097258840208687847865999406107404018454707197372211846601759611785829227200203393038184333616515018563983547474214503510853774660935296148977904444273319189486680823158056747617259354560581389711553806178696747744263472847710824853335916859883960299848133779331891899428388456241555985294604989362623356315361600906310310262275096509639481989377565785024023718946539778320999362102271752926492388603593740889340618249213047891814698185850021767943300822660093319820566433495545672812383894394371947199848027440896999795589696099276589948750852711569383153946871812648248605821500470414475278585837734606069931694917377264163535857357261968742742091656249098291764186204485816918636696287275420612191090170378367604940551455684411841751275214410203068835254618088235469525742298468960046558161922154427035766804893799843849875411801325011116149525359999852731233117924107834866591352886078509508387597932394117860799017486144391353844864225362492752145648194199078756769481659239510156007596131267627338878782728427926745925824051480680384928624355641873038222555348950327024137485113908554363442051856166274879135663332492385237782118107736413098072383361353866426697729628326020894955300093783120569442886247421419469131573918609403987344542983579525340477545416322269364591727710986357150233059567188089044362486147460954730467473816974646863385182715221330146075946312225315426643325067804989378588165752848365643034177559576306740196490909403178871701004209488730901328566680897084313392166796222642983360737917329322981993143150924927414585667882083904867210781525708271590660973450934100401614038632865259706608714741157776229898643602441910862349336088406096210911482238138935583512073949826171706856212575947214648098663668520533189587223415321468481602941885068843189062364217786475781728017992227676260664052089701270354750252195026615123456856518865311820768317730359076080841244635187567746141941405516466423596921072194703327172123112178339396714511513282153862939157141969558640465924786704821337590854258850086448506604416519618376738044342962403878277378911576272073652588301325853354340385283365950579192420622613026091448529375778703349774068705648920064987429084853790430733952719843754557014344488884158544131673510561392137742126813424105943050371754770198472414923068253130402397827462156337233003774636038704244646815792861986786117178100174958350021706312855374890697279704125737584220563999135017522125108064381029399796069831507840804026882645721244433425227446777246018692050091639184137605673354501494464536691294373769755786887422380451655873016145980795690196945987946711702346839742586237415261722857348957803845545462808180967043486852846201309744731338079501605792344289582939878283463499679319894507419045690507587637093771075383085928352545688741548889519689869299747312754268725908312410468934413499912225566112651529299180083321963468104653659365625790275205279768835831269927911950516650695767908894645969353457879278259182205481760834095706905266150277865221878107439333809156074513559223090847541644808883673793570878404643336754939551197484924308049346322166966187174999204246812653802168894378947046022715523327582158032402695960931174940026673354513581247273317310273080112669246389832914843655847774612646290711907278374670680992006380428368664639839871829790735400071755237483250295920682287459739485284627831921359878185016307481401241589112400586382402030116050983316499368735681963440435281300807613394524958117000997188762250114606710471505722155181545229582070050996865136456754779353131989070050094145587603991934584827350599446996110510284092801173254345811003199184571389290553538005368965296306055014232892264113225808303065614005057703759801792196448334159136924266126453889100713323470120421923066576791271132444481009086772966889124007734488222286134377093947528820258649210559065848319979279769513096382681225909904656655271238915381776719667693763217539914153310932562349545176581498689292490342901712182386722380907170816324859007629275713997977045029472476678877464374931099515659907594237577901370747032946897793058083028345749085228865758547731855738387306772488349953532370426609870094590603976255930049418583087803051950185590599229820737549621978699623023472759662867036117616514153673878140270092457555919125737985563303771691509977864537098490902427216526589951041824927450672515899093472302395028278397442360859088390851444367206528551811803441546118819528623456605091358381283729005920445181824266476095695537615965564271941092750163066747623485749621292475973749950542361845632241891218285152021402649547125664562905593110503344714525588873644081332831260448171419134555202395393320741395829180775843186293489607072124814630674190097078264807054209551904659465492991024229388312911806915242279958746460731723656760647445084256435697305751303032738620932878655679030491648473647334987234720778704416881971974407289092145684856872638870685174990958999923334024442033262883706866183358958086515143897863545994886653778707148578820724017163227334732349293476480658401305803075882250336816790485887850723492918492994363169425345697765672915280193710580597659193632010685894732795801175270680151954173533833720410837139707705169239700229180740450968735727621973274885238260831312662877176847963201152859201673324387470254430495439137182922680438177508840367784331794478676577450099726823085058052665179286798238201593363022495207421542737137069997459675247628625422665310006222074921257278346844038122078684032132849683400790363820509105637560148794499474407427203588971842366288443869874169231195506182089058816690798999374852174356559203604140880131333343336647733091090072920284966802895490742533970802058101123665512163190400611087992075169752412012158072010233179083591951429768178339812384109791440183136372178799460037005091339640738798043266759815787508228945977367551190452910748857407988908010583217474212619345599135235407666756416357508375810588133684565178445973272606251377558152573859534955508471819786458439450453290844512596108780895672986983669660195424117250036005081732397946147560209827557535929762941601969567778269596766593583775536918110689448909887605354951222500507774854587185024338952704753178264507949856775644055990622980862730006410025548569093541729377084401255605182002433388555704944740273606382320915966947759149465485114294208465726109358023023404019661573527248735535899129813473771126596881503434096320181975479044464367800834627475147085774187457657483259254242990201900165960976699512885603272210871474841043757922855334210780074931792948776367569979256674088525715474820607290130111875319262648298506065835732953667686134362015022545366660946741634474252039913239184782924236549279725798024011571899215366362675918414769715286778782152023137918475933959197432195755342010207302806244061332639408844881206675287544822145688331905796944214720181616158807616219243174131981494748402067979766817557464586179484033026664735936239006635838226142500425037250511051363247938909761341048964508482230482082248376095754754207089467137216593571580321059235109731964270239136151019693106352423035407185808197361308404941418522980579317882277610046538312912056400672924391923214241123777817626012251318185046870501694006933033281494033254182701438202671141554461098898309685762109895822526304252353074852712083774633806110745889996948073098531708318166030438258991443875208666417226169767834586859024736846953088717681267284474732869645684874323382235682814193608358414889651835965455611988679452548239730510864841410740878591705695539428915544572278329002584382597154163600967837510868732438069341838308450396034828666936848685756456458511583963263882004181301605624012452468007649740125137628346577256052545096539969601691040515736180049455938402598604932654602325379620348747341755069503425445607066817458613247392464528246612277961544717962386969055653720216786803884366625778093629418774191517232945823819094625833702692243036927270328432730649289796492001851662955700089812630767105059149026947540599838749789799798945930324549835919405371404289392460157175106843129681439211465988226790657058993422442700444457626304893294088863254829238535105987339900699887128106097612987785856380076135084331927969918041042287635445509433266525231263564049603255049926876666160409908581306038456839781805582017313883828161049017200073459459927268601948091359618900721140732701243095582978110781622478781130803959864340172468287111824308533142838718961458237400590863109892384639560356395003824579050879310757248549681076134961277356330903383878238580511376548818049216366278034231357811656860669451484174176391792289632667461053546594409962045385176827195106195726649229600004918517825980565080072074143919836292728159745158196315834538404106591951489362027643396997468302462449706642777200940415011305767177942146619401867453055510548747263103475571834195428589540981389076455578368244717875850578717475697162819499476241175350777623941325992654535018567657232216734867699991984526921728007450412845149453900600163862171812089388676500624412621947425256439429891632522533028931457272146387434745818439967560284083949300997269395481156488014870301439875519388860822971687439873554739688212286830751606392802791749170587027893282287922752527326414038547224252874458457825850237524862050736833867948455094548441259214894088584366974109450262403831222643668318003073873466552695178447644547933094299422242644079070286952313672612388849233251699445592483312855692773059598240166737495245357377723091043642287533835009699648874027383758705125512287140268719708488665614056858143746917224903092019147893635470973822838035257813270971581178028945688099214073099517700186944484140183702976712252757494194579910629837761309465521855476682377132964801351534162760802444176300356281761221411616682771105626291065732401189729500886754918327108531470749795092210761642495033581074335344136192612631557380966311646306595449400216772020043835389117525519431718651604286785072044829731697454210822414920691538615516250957880626641522078744763769531099735293083787595553245216853280239221674781418823387061763695286014816232055760150478717742274094310775565011341790755133551249385149372395467267384793916714073037938046616432682329528732410516936974782051721408665338538379265288576737224279215878317712809352467329909590426670636205202294036586316207786517858524007600164796023950388803612274779276455052174749365339451636300649013237072346868222170073604369835452382961756493738842216011980077930438621131348606343218310852495051437853770127383841984407314433968024124575074796824575397758306557443974158203855771621873834940980295293061126932829586584554034384849666647549722935186958132231852386602945504783478315003997841846343924724065416626346725902701542026923423580236613821726512989452860726563484214954723602039074233997856919026600643324455955587967639685458133656267267628788948571518639840153808627312382238813650308228208864555290680918730488524799526528431798287205720269594552006323597302947137028106253248020489691514540489987104627256136775402620192323269909142447891104563345417681649343669620588176126495456772523641157571599534618296626647696261029574618980749051355116294369713281231166895711399124058514253859414571065780400212681722456978940709049510716728818370970118532196515733096312628703524242785144397438828365586574545877960750315474434604338408181925557016848590640481671002658629982403304212085319391200643143503729268993955237634948329824677007094822510100445856111910674853311461252759903738904927181903513918360388806413956644989381836882958340989248322609153368680869114123494027020574803369240500454297434831026290460510699243203547089038461031218015492829605822369346795006767016760137938876147196510402502255693094132137660009081585206805468533051801212011344926363767446650094126908189846428296909057164489688067320984664321377517596382381916558362203398408772997284260099211634951659075924809201334279358632135074650487250855203212938254908134458098202001868300361300333783209842876068181697100501594808961650833865595393242944625909189249029118404764183633593790761474707847276076402216443354822080656329793830843441431450891412303631305811604583643130596325112824386494986185434268765328898645861011338034494418260584938688978879409661311235073534486899782519806575168119483764194441633018959984736878445829724238844193060312271826098247862399777495345488542891625007404175720283704174022328623150566742439139285414319020564168413422115197719450107471288578370190036044835678848913182497543157433470481062917267565523744500380741721375017503303473109621124279244660105514023113134215049232539357303337586565715107762513800600661468808651053243926439829136519335132041402094630194297982218319361070772547249566638673055513583459683226228076758496461029934258426573757208628173823653622306164780850534971501889584728911949215268140982715131270688399133862820410040337094625912706212948680687676803865178531110236102269186800760823826148931109733518870744074952679148388851476566524509162963280932621024053018522321874545735782351728158032938832841209615315972977116781461149358273929280408979829002630157808977491443222241034193670750257129266095707903548955178217854380899730721427885638327587522851151356747104872044338238692857672142125843802547389411242919910357527233035048815286590689817985777414990659064774728803355379442448983432934130500992509105820859488263422428103256055799958450472982363882095525955622795862137717628887194361452854338745243447161656218034202843806520348059016905805665878811254156865559556601127715543341346955697630628819554340540067855823058798642893014091661162100522014728187619632726955331800940254855700242981154401652580933820454346590997492548796521701873629164395542068302719729857310232348100842509812436813765751291897547269720945937714461487004491769895658343350043788229147087887916386173412253793257471422011279784635502877563630682816676454613183476395332567486694165427293303350657689495371187487830220766026683969422020287438114887524628879739946897352740576960722847393943838308357396676877273647324005494231729381006460780823125532035468730188311186874917909198687567562977157486557424098214692907488819180372461204846205510663309967456519794257156877805673884648808911361738983846414484532735198010934991371467808479228457431688534167479244622108020947389968467470142415067346786573635910865219617702528886329237653671624427311659920485493619014427206646349426201854215435566888876809305581276588063566836236596811644407093896000644438383839083094844273888555913767431126307105867620027689583014173964406999093689584784054607255930907537183072116325810634910691720947275497995627075104693041895604633681298644246042403226894514054437179705899849625743603281414438138127001832470842243523404318046284613827252743507787684655480210072702089488282806091269306051896539155861829351813882585946422572379892542727073428683357485293668924331458788365540682016361721922745900135691130805475478148085211084834549161784166507074370448682413582106904822069127092916481528647126513585773536973208810778244805434680570131596382339232084081217232760698014023331950751397719740803790294315551278559464531859664121326270774383073740505829939864914177771621814007233075463034231745081372178775571625046941149460495319451989940172875586760437109236008336963971840227509331019953429051747307625396525424531293600329135884383128292246959771998660485390938147193781703926487579338226563704865869735382011835188172007534617665293996282068019506611827582040148209300673346632757946643099801482969759885907659063128019619421793465911213884087123896943227974618842276443133138010521850065018176369084383118018416146321699240281743873332252415931465256737914992371389705768932438132376183503824271111113151726319944657042903332757815489228977989560996726917823047128101905255650233339983453576121761928631617283205437906617430927638691794914954428417493907600944447783894385150419361263246073624329793104785100016885312118152520202881938883234554509668666273125122103113904377149041122937006409938697798643657458201596190249622250044487052515418345126125634355979883333828386442878283166101017031903908578563386466442305222152411574308670928343556303187007816824509215818187994837281409548508770002325049697989567286446884638827893041131663908712321713892992409747384252647388066032241416219538583172771719272927502057013585997182350041662856130739879788705700248411372310642955063748887350425707643143733407819176396859967522297377250513363168441966424169918395722081437031367581395347045047192791881731617918938077731437014206050152465837602966478484116222668635160065575301239965711558444113042851169076283477506678315128192115748288032121583448137476656663602294167663049469551873848414073553668064173166574596942053262637575808528223005141865652130064273542582305647549923268703194671553845624157420847366047554912418346644670103070862889390224916094217735623706087801147765192065579533902857962963579346332987948275753829257746503972777460768467292357733233632812333741911832640498861413053580016674323692595945361252550488235036201391138582995180335765160385262499401198706833363435685159557434895393652748946478947534061631954162919770183187544224088414139187581352763277327841683293779048620011780510270672676400016002126773070645139437768568570414398710431873487377273317044068035988782170643557607981582657585459356918323665411579533112973474423353942619715898778615602570092397008296563240680791880880603953910857333234592636636231557368667714101348175151241460104928340506538475010757585057065873203904580984711043389252796366935385550281079213088872428895572001305654475990776423761350967393545438718197205354635168127595594915882071097336572138986145298597354001447797294384206304974332425647045056001618588804487193729706700674956037259420161765833890757957195366050458615045055085292017775048828182011080861664487890398739240949495351598376367355760336796369615956173402906345811314010029164166615610503260459304045406934040204720463995406329680115775554924421425328991130567636873849750968026359377924528177557888124183050443387381258008178228855091818940284132570129020690573655484651144149508399905146469872130454317651863736529146130999446830121959668131897731045363549535931574378918610340301416936379981696531293979591805749719487701461588282734594385610493136543766423964296852040033259237057252953686410397776527517248931945162183691291280504815821735760688422218864555277592235215888819836553830857078742360036342082436489710784138500288682255341847336775474407032289000585080654484972522425086534708763988179490948881033223369804182749543030152680991478535779306491495512562285526959071336141149889802184524494990717899363191682882074056157111100222058799641275016859733478152248637859981763819546674976784470798342118937192392162987190770119207374753705488333358601319222511520228807495709045096145743119440942562184581655740938793194711699359915615950349714081993535822095085216318768980576036767917600385896464560974926119627812796139888084666350877372289718820144878898156999784033335260264622088083987468100903408364308987440533717516307437673129716406706120564924956203971282968432982232183031297741865948931103327033585972255909893826518382522616866595483770995739169552086185655321266111771440834273701406591959209499264837044653977693771159565398257373326547050709560476505142666373344636489390954451071831864713980397523672342105145796410906687113219808437461963868223412397568876921003033892350545895339471468054329791754139469920994109792776966789073931116594317105042816384317817412228142117691885759995972875297890104655689205345697147244963702591113904193557720154874497787087195262909442630062911822972012417449660610999606508644271678347660776605174454815676340837283810858890977889483309839679500927711522946272290583392040157672753057769122214046229231148084653584778276024725484991564870931596621784544223143233128796382658390046653819109155670588429702922243504289558470710474489195124435844971722139464555236800384301321765226010522286355388173195878308189386803153159401877729187952142854503533468435576253703948463336933604905769537746118183914277974041111811066174909049052717278996968286985865541491936232738985993382885503431261632206325294906375948920049275067156737863757766668380172730348392720798401583175941887153356149276039515962301644621420110489707960346523219609831583506302800538555681779905498953614345351529744248589627412089509015387129543543660214371898896428287029300504615776882336251154753039793130989598440227876597231612854404653139050571934313028984301420416436748080108583224728902115453937269324291794872931921542774081920769083621978842882464208258040234325224416227690364553514246101745364469398655207155866220064479992399495759975289456415536730334959118117755892229711746932241527064394151262377946280604926305944744227346021962949664519629405778193517259415857416896097009564323596637305920402967503055307640189012894213510149546233277059275616980018531288023534525359111307914593841606403013682755691419906270238098954510548542963467323022689136660001383900044074934966175070331705330280318863660415671548744239822514929446353062632910344120119356826339702275360860173352460252699162909769488222671782572768625941835645108589449617515495430407271657022055228809019683361796740857585347672726698726763214647955789385054750701350694943398549096895102176232051667863946186767934732366577035349593036703841204224686784869433906052302633890525825452292318366296903649734953001336344428029551956575426869492394223484206939355081957893477118222512732132090165461953033650990792780346881193995321648977107410993361403120164119341765651146154741908944286898464858001380498340204915816218666203450947972137964450975517579971812159549489287732889650772080420905154494093448650846763857194364116795446334043565467296607418695360072348386397105878629962530261345584508602840266814848839437044750783224325188641359787990163836422388112269488799313936243134095756748247590436521666860002179704799105033995783475166435386191348973793211413995221905614502721768075956763517267874562372718575714036760710936083705146223165795869466691905051102585401421139064434139838163020427730318920928684070970700936453824660761597576513273795245936534704592702573824200283326822272820212313065370787189099814093318086929983783428348324555602204618978585758137867852459227455098707385203159217365762048587044565059153846628996633917889162382542497232402381912809763910086853393252651856619602441581098892915121217398332314449358493065632818449721026730860949124287829490098493873028090606250860575824767393263899733954048620793078413998010285086287216787413086998729187174946911296152639240403214539314723553262447327929528959507484565180475364603704495944499536423392025301278459218969061754138690011127895836444516983757543834517641902381648135081223562119536619049454207840509177493317669351749503940725655124311475830726022567326554453853228127780371490638631245205652092173272202312129240233111231825650136624837829566384543039740587458133656867052554004008552168546631455531731582315911881480080627843803461010989371380632763033695894871093871682103370703385492368781210535318401605777485098184499183898531278594333767270730487381587428911763790584922038247235695711809576038227213292409035274384564385084571790939658617330150939628438864839096724330821444306761119715109724677482666672239633584116924326816149012772699535878578395618692072758945380128258897206655151442740928986368026720385360338434834763450861290944114570338982162617284477674618174326832172234204187386753321457466782131797288704672152997820952179703255103819732608753811780041880781650982596414369562186685681309471361929039464008672282644627551573491161204445680736069845561644737076295618424061025768728445063240011550583360455726455606430287411509904791149512766943212449532496364944304678125184658741765153758504994330349156202531890706017265441241801901196992237359331168243802965980793928866533775231407655284881210826101856470427400476292537556630895597790846300644727026425775366366598902906804345584287441451463694390934436175565751910891426040832135535646799975524794664165733317225062443361350464587145581328341426669264159040623573456151164715595761702038863035523811956857473570219809464941135616143617897970686021843733449941156190639765883282977445969599998086431717014916066548074398656426473533303249720802105774910469745571251154444784319228059950135614668832046625254741357672712068880193557206962043420201357906319280277993149652702465542542593941132361000321448210014827648080985507704051699766271233302704328841236031067602123796970647843207389334651043831409113969335464873909000359630699144025197475243325300927828021705429859505508068818542679147325538389048113127909401840713733352819630841211427610064420737010778614227539339029451291491125206128268591802603653793994996121566317701109467386079656841241728353874620833623668963067152168354033935274474975898754166264161709254616178843389372007792590395901520623292002149260108004957782743858246170794148223320644979929533883150134555832837526449684562864142679975915927168195042694144405214768454478638533974353287382595089952471152186087193396466262401215930329300015910919145576360128038465992542607805073742017603634999842351684160988682942917777503222724874329191489773682603112714903264146243247188122340793678046184208325146200863367203642356644352099591115057024720742336918266006101526383757763984722109482709613421799195609111397324581836621736515026330903619515826309264030897241116303484590569609631623148414486869800994689937820503760812425692424487619276226628072694053568351100345455538170359491836768178347528966538392463541001667945405657231225783277386749347229144372636460480490242182676245819228671881130558948084227118204503682325568453816714845199664110968699082190404459815081621765664551049838775058495348018792527764374160567989303020572185241024861110607064007318108676474854284963539860504737442784083518250484286045635161390597770034238469176198972757571614458829252602626507985974910483706582252049278522500022502902211380685234788230447121608545985624553369787405017715833709015227328907657023822041766058915256357479841788686763329444762761156669693762189500501289647592528067190003054701267840468971121593083359965635863414800473940863552275441402875177662888357376753604216684905830863336813876798942695469958048138752745345426615901513152838251748035098675426705540641943665051155919436712880392705419341061419647157182928136853398477347120708446021613326141363231345476729952116105186972783460628153044785876485940180349945731520889174198489555900964263913501497731947522182721645707378090130342573010784893674258865831971920422335441240314979012377968924587054211574112495293848986365338686994078406382913036588235139092757674666712356782793290990108838165475480301243533810028748864914943244282015534836313080383740381003046123025792014748454286072651342445639358183194003086078230488103316323330144263765895609545487784230640040020174923039929773556994931216422215972136855435937211424874532985221666539734374797103884703862074171538944198114891233370806648393698474671499045957404636187365159755294044630858298641114556804634432913560916964061126443062620818553291440661489854196653331459322282403640009620911940127691454396436958648452314275792813750988346716437264951666749505152346419071935920716945231188751767758612964345161481179810082295231478263122220565791419332502106019145156592603690399931490486949901959332069192619283025652027550643116326035547712371627927277041196342415292909433859022707733381435486399084799674084209851354358262387310004707228490814038699991464697573813891661783608115465650917539178846384618730325844815760443005304538287227275617778094722196580104953932802179737532410802218757283403428462270678171995259389538001118794829198872731309701015742641801255805721655937943518538886045233247032203696123220046182867515308627033555070764411911611770952062581077926038380143252309643143305261043569681384073368955468104798781742652675884959954643618385203197972421075407834016623507421540885933112256959263619846940504934505614307791640684100232306511129026779534439752858074892604140291139439198737336525043397658307158134019438681896811232580779364900856954011283618239688294499458861982736763511516961060893669924394967591316321774572546886068613495092777044137225513891078424990463765205852334795266269654671697718738340783805146448621979042268668413755819848332151994351204307263428141212865940235826849690589578401960986743880012418310521354500575724831155672149984133160944498096025673277435178950987595967749891444109429233098287247654877986401385399612378219844758328419138009890714932281852945505674275355799898089430123786929274602630556915182308221179267995212093104657625805071498716165080394785969585857118059348392654389109647646456362968490174400674757888688737116921307429602938845323193715335784449964442776268512044940939626064247781299981320031693823326510644746263929504438891861050285187165647147354611763722045885030147539004340674343180739976548231791734434323420903236000454851360323814822983449826740629401669289855049153720493383982273944434169244931974490975686918366137048321681601340610825469698599911226844894354915257567707595628258393984752905900675435666558932170258470894507932115693554623258172984258270466232701636024320159870827342181924459604747934143010277261909925873157587687025798203245315580851769179648094874750356808516259301365997287482584793649156844259905748979514547379923674837415583898929651195890101736140638715360442210933703398695077792623674039090556657193094064208677763741073339662024955381169866044193549950727178652772350013821872601050243648527664329410911070823124635339105119546855253146029162563110414813705132744104748181391101781518188170721629594319658936491728260440813824225751588102257072607722757048661265544785026709566290630841746560078312856632956906788522797912754862117830024812070630452359791955130918586193859863434744415893614346688511129225590131740212460387795936015067760965002246636181939521741828840330266345192005481543339671169134300198047439434850538582681646640682849874505668189424504772000196124491336858761019097918829254679403384994557608662093015772960196764363966663193901436118125877083224510965755008565899239897166446425296937626848040191364081471387322543527006474059387604848373202269270295935845069181446150314529618080040897483139784604447806622812428347211616858015986519211861596852433211249729645418833293891698669189505855541044122727533337220464975591190828426284922127614533963623570080776673250805260651233916429460348334782026230793848804738435363781283663955951197911709876376393281543497960078040196396057372544244656368123049045567092982482115739054320270281627324148007647700363616004320356069642586910112358029431430079234705204408873634352913919721867631993515878187715815570218926348257190463903001205722735485228406686938925867337919403735692739775251753782046395905151393687264786548681303071444597445819425856236570159449516655719103807176415269530786747927121513776500129693535254586704937966284976226469267121321500194242062048701439404212548134942203394859055109456556842445480797044003871036954076541447187396861107672075984271136337847544788123845160960729572826967126107454427481359505881782632603807592113183910168967639101507487499611824653085544830951380219913982319532291508672082097156244118342136683674451560005590150549695118667680215828268108724317778443018927128607693237994957847128328481969191812570463603179133615965447151636711083342454279909411331474334608264194801113141438832563546854414718913753413876109447566499390827193990726278775172923162380753736895581719542352612953160715222135756539461005246557122920225365481292036390756123526849751609161594781517090576030623796283535309782471293874010184686836606584463091126306724611202157521224605217379449270803576502333797631635375371054899985317262134709649879406590040153143259482163844821805181210857873859773562613123994878953254394302962109995423054755122293985972176979036438088718516339206193959602820158944247674608176208422973136820783663504673946447837948320592089887161813236233297998363432876799958724998227763065113884731796444128488137494299220599357282586489648045046078583278485293032321637386940816141055388899824581211386804657243495765355804506380373260504094232958426008240453714051482891983719986156996688425647565599629007619969225941021189531664493458251815652200262408826249563709654548200820559463247325642222355678561691214969217418319064399424136358464725804025176553581647956793386359493469779232452765279352396480834118840006972181439684646318736465223365717692626724986721584530931238244855789546379597515641135359325460202572322620742411911111554182288760454371423280718857987024881418222109859902079369395675243724746147782055276622929777420356559909572420002269975539063230560156055360527847800092617398891962239983773165916233075817530686240619396894726541040258745339380662037039708405380233928767682287316607002726544644457242130354488011238677942701630777227668727953899772342259865235258205805811847348496370486201272497349277610901548074662403589995416745010727693781742604937653110383789026232498246938645964156041079735086825729142966127482618782587111401694388535520156367352610689249605292417904663254254502178993387968018473773114782410904950730735517198911729263473398458547048358880676386445856363575158914813070130951129819492961698379409696522892643874979956448456359651667267892718396130702361590643415253219935369240974884665772334399245233987354433855545656246446384857994395470341452421615039114825503325589887308832312713478239592764771445672739131271869768182216283241785666484815347389256676564045282770527775100775983311568495607308934953659266074027034952449770953873346031075146064619575805372698183880898300632377636395278459025567015192392340452475263661026681913790769391665554984858600076414705146736511842953265520573972551061839119121717702723998964829421544149826526908976267366487825273779525404958568609267108079933447841437265761123408840180144108119951194581372519338682891877663612876967019596838856228167139691347843116605977628620672184367937406121876217934807412179830023860504212176581967080625652806238763393726026306242711776543508141933257216168725826403047137101970965488937439307447297478468608641835718768449681818435121424324782140950769501798398434251326317455995630909773458495342201059539085555790213333010835488190190067808700045229231359011791244647441263601732671247771646423138752979063819480033758477715626700529408062086821738879750793773313103028380365269421125632128061498836413689273895009581750660791640942031081272390757274080930288458013655637869434019732843371040873424866981633871112701803577749001745281996644273703997807046665696813559796869000865107232957407981277157427440544146158805355383709620423462166025286942369662727310515391498589416954511996939618078579308434567408370955099434690921154171507937705560161250521993301604175863294303931683077382010402177154265281708315897807022798091908718831894046174609509568214476644674438243384944144434693869897847050040890442572239099879418653808834478634357259276841384309942082654707738743784527877347359429583693343392842431649699376592907643837505167895419468010730717658456000468671938397728167576461187052134928745599853464194844668665326495582156865535356669554025654911630315894035952990442984673299870031531442481333079055256608433483075695025516757885210170968873503879808081076305831886804340690695907388021201714691343642200564272161820399548873742766445771575535974691506129194901990365322057964861285293533902644544826580734849871275733288908555609029787968537746829101787173325033219581759229049046794499961687876327041383893791303597529491175438089177356895630067650287701262229354548288560294184915580725996476851804496626411248456326240672235197492184079666130080861402420207655139970349234551303382168703120311931343872346027174547618952989692072118489055707404753898975328845205998885048311284276513823898082651787003794775858428457379252333871660298178938712100659724905612751347595632868199478878107945130795505470194142074421169148465328487402206434615020175657139351417293129479286753714979438681515443109539038922196021197892801597758771782680097423373970683451527491245336955554762585641626378912305797002380218038126808689977445862640845575882620217477768211166052260831678982842696080315545700850773975622776874720277797417345327536307305921194929708445175512678316367784662706500139732280310134143289995322405950810581225688791518533751470307894357542505352597416434824648039449788179779667676598139327304504232431703098465785942895365359216253872347093603150384081607551583049390279737916995373095824515842314201693047358833418846284414746040744026353166652611648597617586181994653038082922823660850682559266267382714820550804370389257803620070950310063320503007581018317323187486614983110907001045971744825186861882743431889805605889673376200953990746636685266087849477637941019543543042740399871919237435087933548841142552968589379670104735277965348684003368967211920011177815354310535964220664635854927300466264417300577999392848622009589283392472912417827557420667172367127049652567858398488946575021985593035806468861387341106662080373940052460639418340407898492798552199209383355152191304255740373688195340832537498631230072875791902214732986839348410908489099860916482502137200176747167946350818586889616017397109625822757706275263331353650702318742399950430262867254805103891017738874985552251375974336680205570514079699908661310635970838756214558816905442423703517464816517210845051129598216629714927113590253344944995214476128289984218584259651326257343338167318792740824170248361197327565188860797434424520920181315937710232936700637787164805457803237319498647371123867644779110726762262890793840679870674305774394672510030449215388515777980188913552738266433174573633423808034490789527263625011086544850679114070351944814171202557152264333636824313427290090259550800225332691647674005549314200352634144649481012595151349082751082663306736967212562616497445413374360998685234458783866351221220670350764669887435485077416198809118192479929780571616666890202956544519417615100383853302213085492555841900867977954053767463183580614440769776850875975766280432675433591767524136585899156489198801948983367693046995959919591215975884026286246521789422316558245833637848518579824661341093986113786490647724158403280782298552096677760139750165072926194179877232081205554599499191148165177301396206775055382544532251371745525254431076712887240849496957839856479677153739874202417038154984769700174779703910447136903403348685532215323110381420996785649653510417133808821432561485616243232507998968015421022099527663147111449120042405350132151879438093385332986978242912616843743018407978404299580263719599080004415455745302859124408570830078449038354853744477575196013298294234523745229119653210124537217560216693713619082336522653771484512641268486172443015752142125503693176127906503699810582283205767296859980001272209876057675769757218795751830103097459026623726169879179796535508221838670028743124536027336914930004143136239712764099794426169312758774729843681269954076202040306085957530618063824818534524338869194706420966425156510822547118376201131637133338264313659689152962226041467846247681461331681436753501417726012435047613098408343239056695871786335033467397605451786881547861167962294133943471132281356251929557765910465321259231728513182022600004578148895666599550107629578331335646272149592704687840466027237748649613961770556782517735767485595922005583119439061598239428201791657355800667494183370943109787108980686731974455763807780584480335266065635471889231101724487512480914612047676920929240632249398108763876602668303200735050027050689936315695614597006580276821716954575611319389147795943888740857126977682480275981805479406315603003070319448529461524776637282763963119353627347103231065232329483152346363458175433669067494912148450670432163889220264169540021272165837520668716760719462635870032753628797218154961049379925958519639688407284735662122667652595333530289571019081891894092339349810308131288198739334174181838796067094976847022624127903009466798942052923233830926904056187259759717566653626634881164004271233892970488436456163992430206479473051402202929005830475010164082059090323213991075689232613814723738204197031198639234098428863976579860049598682196513247632246000409542719707815550487930342397600300339906120301783025208902171032913344345804036736349079260527262305640557351410216353374352248986207384032150548027038292194087960998092771458959696303800459673461923925459684190968394698700177862928380618111107451630995261949310611361749204952149411807287772550274209445122564783210568717298621696924492298938753135791207161065494127809609654532417559679396505619281580422159269330834820315759764259652488427349189021819724151107315241727551748595674692032155943472675952260747034249093873315328639161251361018146397262589364275427517660462865578571214343180899528584734673575546969828805750566067550077665690032323292499417203388740012079241395965595186753329605157643553745795405147849579460181286373114245748146287608517985889564469456623242495354205545426682111328461152009422973784685794744677861274965657723852403047678156810531401366654760566818066641114459042065839302018829728648200609211737807861479263335828340686755433805244232433910558610342675297892231557494047162243303338377638803636963029947477700617587225733876436418915827194529727524920304955813902030660380545714822226140545712018632604762955164125957349191817156660432641858160686768933931860209392433631199627178250185983400114053656481217862505085275737124661366759128608398527570621865562590645822604788923733228386516682427147557937160655098158061202608420598315346601849309345902107864493844951773567434569085229253468256841070007505276826083654256449618734847347020903056268295913326338718654138417088034240901370284285014157005718902039955499900213255671048597817937537326270652827859510172374774233841085814464277777109426996956545154304006212803679178115140431305158511956321477209398556796990048290125377725641965339016087757156613725058282796735195627558109049334577520744758495802859081882280517217529972637862063669283644602010728439129611244387021410993828562200583417301180868884890860533483024117743444058351938194925909580901026000888773785893642847296465899401883284765017442878014742344899211955286436784903707218036496164645106732761416897626920115288675346040075609826640320048716960574028328790325984217775796139921555770276935851716741547301120552668355107891357626743189616825993762400425819679643589687203336955659854529145983435680294674081919895487291857959666077210529315625064887478653651941961749711563811084934537911304325151501667438240827866232566699024528921349716678223258516509721910116929015705077781597178592196607960806693114226663869937202805249836598267770037509669807516208354293901685872088653862932076455380928795990284933060156208388167202119462257874358877017538897274998919951687589192914357818278778714262117767837313759295438680606677205458215940835986750957810892974618804316588896948080310147937365575669237252671122495250566775187679664409036099714193831985565179834495167514428546823015683664022741074622265651958072130926115025071124614033479738714710635616201162743718558436919398029260164922845652401222400158932127225549766550515883769737509968074934557698775790867393852810377647270437113910056529701947534020497684868300889807393512359621885623843068263954379660837297889787529779089048383794172600730948083605162748644684890496755099131711089233662484679328047046905163948274774276981941026853959526924845750148659937022599046918052890015354040014028128435819580762281368185335571151102596177030971802385863342222013063942137815208017492641008106035630994255908065867369539651799174177825023662793570696521699000734836556736851388520204207686986590283887456556104914954573261014580502775410853961261079605127211377951797597748970095053483618465571553379004695731744671810192212879752127068844243592164929757526936571393521285036377876001599257646282840348118400628301344033146598508922131271716422220711942312049766104712282326451634460587275959359104442347558466931490359226871424522475095285813453493200036354370613706094041615959894726682538537499834102340492367198550612240102743341635682254290122342601037651771403565391559981694143057891592086286582612381789972832790727085427587839980465251005219232786547460226740205839954544030250511984814569287875166691273602409051963078365431308832643848506974682648269941906081615337695764858665830014382882292512790631217765539586959476547772447024545736920665895456955171041722962074552889636073596729957814216500871651002974353389152863593446402654669267947679288800548969074447984397347680031359884302640604939554927041766619390816576317601733393452125964572046414342640702033675460487561193556866767097033872453823703882291898944569647261104682248906643327203909582085677269970128568305655936056441247103723954410941130314383107149394821434199534990310912842017936773268381514117486899404906924282492895598548126960314432103546054253626211354770606883773153005418805981259124215459530809153399905071028099505351549701916993550910045064073032850057963182553270821737724246614485341629875195045702934393557001639797752809216369779004039937289941706607464819747899015205690758705351554928979743134340090330723635157137204234102652468076891771417514672966766983647277466580786312239009613824907994761179298910710762958932952807201206454957258416500439884040532422119981533788080160515743684612493029068495810039707763494375658256263715254169226690581637106430663524745609346881409237043126189026356245141365295243317604803998873223302022533657418113280666802856075159117867250652472410018261877058872338674447783522864686605471096181423569790755016407049751090273289089083314560134964390468104079965217629502896808352081967660877567801504534566899110757640260481908145589568201287332759392283528152731169383092101023732107126767044278299105337609021922623422378772378430379935156790355038436924701560962505091961748636178496459761279501314325655504661283777069484612234323514917054752947619069944562226310870886049383454266748633031861898121032998077514229634088832201028676336126174309165242215755081098473474192702879158510907317298264985667337067205427715080563152879606124835566832863291096934844508200174899764431906568164619892292928790174890272590465243496399375938981407162786442469928172237076152708371815431119711588614020373913578100627302621589049648150926874121329295625798800042280202889450814921895350822970074225483422914121866133891214557068548014953070415124371938509714651895969274892027819221821535023365645425643527658835363956585627485713714979665558216563362518821643164009672562691682155370427293122284904333676253574970033256034956819014594019434279265022304339201510186366440532094976296205130582325076769142441096605151629372827890626777629566122668503712060303009175714282754910600665791948164123410061773097759987739680095250922212523782413996257734516661718755702180413375424645061979242392788955870863796004244648248849910054391696565585317154067309869234619048854845393513014164719856918744290710997871248582248232043692490794411948675533018409302357048152632253039072201657500699167032792303371611782045638648973110084580426841091378898124402532988186492388249499576379521399552463334057991843654740707417973278431365762939097012641728217346559585387814906310260212749690828514798019062234443809682203059553403881309470554825560592246001909803738291586568628498316001245124353514873572950215326845868130440654818525235736061311932336480008684946056303671691350917433834612000102335942576126056812358550614732360555134183543077859197013251722117003333849136470096750919372537719036193158360928831435818393364419945328376927223517542222658741678438915240470097780420737624207582900126571182907064154232876738309061656431156132442843828867039613295637751707044054313308458397692735395148568315058958727549242568161884649651007609002918042751804140032087746195209987119226155346647436198447745381533178714368895277193340895175696468164930009894335192858815204769561281741135658738187586026317786876280903937160738997648381940552504140226368765005088295438994049356467805220477870988103285176235107425681829824683179185548882844939083647953941188670518832880642842589715190133848490616225733019319089159156847671532386156997270949862834851867666396203960076449353476522319593506129353579976548875369412751149047580438905257772409708496138540402030894261659212472225268286720614883105975902930113353782721852872539840979777891707909686700063017974846687534644542473926236189625968180293040263089876646804404985582070979624560702092485962608706743461076389816860546745159811184450029494766673670959025105539126608206270068685888553704095452346995837360221414760757565972569895052234270828530575837130849648412010787728024417988376292463285098715051131653758307260457366640472423756995633821640305824260571683432927891613869004568902428108917907525313264580991196509195827247620989069834010983409609419635183929843848351338667223946366787607351497797717079548614924842672579345992106551156885370517029902638088903414521124400701273033584051891699088011603247926400087244842315204213823840071464150150768917215818956768392420308455161704986229447572701265986657906483664180647015235631102032979656852055333595933658758429159450818126383253167980852912241799054541517688299053249716017852437044791000907291613236027996134694814647466446061198742632528976755481141353266440306247779331890038054515184697327262837833760498270301979461426125460794834217221537923494889438271915727007075928764898400695017727302759196374971526026704831493546007133263981447603195468129572493056579559479369402461211111764504543398638515931236683973040001731355160858792166289124021268358168717453492737464998799541830911638668986333089293611436669329128077336343572056554296773114838215801903202876745177602411618090679620977039665150333694707115247882285437015769223484002508740081434961769997658013821875048729957759023332628753307123796621059400371487653812270290317074473603815501744722555908554743403620197974508310808067023570177690382593197012578078195600183015192361039936190599688740322745289272522282079730131185427300997406902543130058110473322513663726845613796098243815160704893982040005316202810841847114219782094638176091594471476096171654047743180853789979502961566407351196571749257103448037511934416561354456480133856511975553248401804457972136345622622490095285119098768485642367276355144480511167400283213607420135538972568277831702759023691106082760966764717319338383832447900004369311714725637586048251191583144297343630821878091183716039555672906592986147171435537232754616114513434402038201195789232388460035686176425558978733762986375204780346423769491065477935123823890775102678938404640560896994925957175823535550889578502739039019758039384933853360984506862006572422429906060207040631412867466738983338493723677711148169323686073419741586947862882070338647140014516095230480534573396937477172230396589852051668751354164472810910452163669897234896163761175939091009901137240330808007666309891812322013208615616441776479132638611151090854095375325492972489883238473182529169612095879210132146348345860028312169366911668841083773297083408151091940676976134549748489436136031454320520407784375466925102759208554082931874519812646908195592771750352977742822077584835623919981955988915324089556554840062564835748223711834459063521366845662189392349585517248878140614165345256028297748114937586089922333843935930842988954085964108648533561535125454615504004807600590250855831060686899697709733376165530886618102062514876200654527834701771302331189942746221155156083901037797176545228142747102720225687646346355157827370366445222916756646731455698104617271092701977742701108808249461366624482924740727367893447550258060702079857605363360259406864884524824437869645310577598961998702063076995816751023359601988825477392256345298266391002796797257766859238704717967760288819274171010277638400772592557774642405967499873995510396468850787894305121383091205478148435398145775264062697156547963129268527270800186259940421422875200881892434919988615473042455974681934150599569460257720921920431960330989196285141290849262967598793857498304438679561932768443389520087252957195001291336334612868244759667742322384040662436745873950293269259022230911919528521307284474807571703782789349316821262227829316437638634933365906774075609201805768474547883435728471367890108273839222416351126813400633144264769704563272315277346305726438188086970856789561168371885502759721827391752355956295857831206808526111147455123736485332169032499723710918936934614736923635592495365015201486192318861933434209392156547462420223715529099397860415300275815964825088062800463740245799745455050099592837613602635765886349363526026284132411861508625875751092372868351887965573782228191410957909969947252128463540467657819843974536033939510363197091851411460820851580000127118259045108576039476642124571711706036887988116712686459229569777392681864497459354550419131668798090667007370767539671997545084063259943909975392848923399816092652015626784348507905237740609040886317212263301481296416261789222176486124282625001884146809115760140341327567607442692679279218291450344223847202639527633321124104015995692877870695473469838389259781862625140924224504062440092347948863772614481115081817151286465360166834874769481492094390507152680923471300073204262126589862526477879079452790571148959830145596237504580054236286296330375989372045869837983293474131392885835094892642609209425902893350159079293448947215290928876498641196465073499358941632316591998476812535018948789828256866024972287857558284912836612875890230441711171337454389537725939250665838417940950248286179880992799114000420602380045087454695903276176470176972744251046533761931431753771509937271077620714833787387918447304949602859885982906642318410420688071804022857996127502391775142004573939300102109422095677679152860001943535853614770505339717686125946530348657793136054820626137042498926589513566981368366295757800621577967865108306378563929196398569397163147902109789200304354937169034637141335168864539490248174491298482361993812144986873067755261190476816224334060169687504893197291953700392896755079432843775455423760790864510881211693042336579923932402438164776627786574233710411182938587155048425290400590990309244698416961316055635730735815914507379247453879047414077950747842246762934209546664682259207492552953394747599291991476446853556058609244948045145708854391062713505303849509465633174990381474688159305126201087696848290364738145971995556586624320507577790186815915408856709640849416620286768912178615439737178041267878139967860913182826914389688010376802341476619856567689019177807600663340762758911817506226281607343106269639521476835766927382810688794608106985000282119071973860852529580907680921491733968291453478677639334989677909733417763489190697727397034065723632985453545750972797101502726570594588707074867360450466448049604648921595089602908513564738017633011188997991625696646439977922269702070897085378277528926826246756492674564889512858200292694534245725251220586502293471745458703377285988249098495232839914786279632315630923851032937752058360264431078585351303811887905636540969052194294264827990797839413811168813372486850459379049446931490666084204545124198056594983712317688485103935970230292845678928080207333324123424069480739238564093288051607999319164246150505976467384031380485639890858471522780713003297796942728645114016346378661456666581664959427239489165722818961316574564266392350584194623316832010173467609956694513081777294121619030703287323882577949670452472583984106085811002492429441173445072981883228771004802006175117838884693603772661448593535561148693830785124355505167032015101643908984427991003296447689749067855773496231934570860134038336613336723301350305743384807498436111480556793031570650628358840302023262982582853849403178236764223900584894851260334695332737039438920164790751030366672368959751865796051805421878623590572435495505855562607049397315800385001895233894516868664524360677502123984532294926969484580278133073943474382565311185814080141349050601835920183274071400907260602139820178882088753879487599204230687769359032873609039629126182385151362134904318706807911618999564898996614973750882407305695508842600093884351946120259986635748419779293071869262656115231364070087709600371687937864387294912960010096083898676648847052766366885751282337015534466961413246008634213983598262417401586098277556080432810334963300963729629320968410087617669651109695715247814816650038328516900527722949417965125920193634410408983654513415971131433023547928108813531185679998366661660198715226549471792245205023471960160520373414927125677361347229255209647073219638268858467062821532643820074233867342441122636532138528682391420656495850239424705134562981848275725156848209351253894421804106435140617134502728422001415008031738284891451115006128368615867254762788605412451310370274277336625265758751237886636729988722303353322130950936927471184328153752387403987079742606611874090015425855555452524181468415493432062218064181123451615999482201033656176233944509153070284262954611649424390158803214671951419827140584754090173959631707971820284171285519144276795731542428030382989218634619166060095731809599881721837702840508497154825943984240510576785559601056961628946252393768306795505364239942070111717431857977838114146700342380783472574770511632045572618129113939476047776999102978112067545294019929682727815114462449189066281363119862722099710536900592690144276767509901777423796772510195586033923886077369883019342365622919490078824364497346212686653490403332543640029112752281118624374172671633248899547235541547855952452044924313314912635311471911493943842973086344957476264209999564117440013169175703412664220242413951330203250898709230988538560669850994868179399046718205902833591785064716709333656125598621362133428855625553634913297358080689568481890637002050274214933878288526143274162969789361083226640554568115198960573763809325611395639203401109142310669603101600257286560850702843247049288002590097272566129084022088889338421294613257126607796368035284710141462069202342885588930470155858279736876446129119697291531929471826329840042191992763825422972929486266338715412347118824277212979194671621067602571692463746559811239876569298228523869726211018441667375143467885302360268055966338054130930717497922922765687030566956828015505355681585309315382383163455514335167750978051898033710544582358094898539102095227317399635585668833266450826295666266743869302494524529213624496952764887806164013286920407715623114267523128767827433445868206716362258425252133691144567112003955097233178309844679473210937585246873607806257136767485660035113897799126127143267582536777212818329889096885354008003990617772160277246327476066677656943446109092372832432716225478694104025118762306401957268591027974250312483529766601116755036021689142977696000618683994228186148896179016286158292051885476020078320174527705312676442564188646818413537001665728248691794765064570852160603272053418015318256336156928928413029417545316934173366526853736312559035878552039686482688010670920733954177514839317608558312251161183704850655276408169694828372358351809333460524509479792339821297874251534331755628602824129929937460950146354578231326133179111288979106973154553821157159655457887395304127931207693137087456776502728742649880803203372643393707685459576543163222215922754565584327987077351314512584775336836755982168156547811210168859173544863638213649428528697012573032772699915612708495233916372594961322315293294315297543753392360763660592209983318699806803676922621925695176060193722454562786315903834506121187367854036312728273844665314297629874348333496740657778248226078106198916288729125462779997683712483617917486686615910294165477146329401123130997399055107603700145852399727676752153153503709034935103459398994842509366027159831294012106546273647071077622955644917112849212649293649017000648114650779961783845124411882039080727320684994582412773284246098398037548673239072614200160296507147220728886826971867985839719453639270411634005917777113635136867415760485941642355712269390622590852238361647226004678510199196739705222332781252824622461269998696021597649443890612978198752977966457705518610300854086365187805132933805495688705400915330071494281124520000676213363583081751564503155060687138646017963360965477224824383128153393633536638697075416795114170788719754297571321862165686350042781029620740060098579643016778781937475563026218585114893412896635352365259437707585865659816996072264912980206176043956772224168938795689593855285535888813325617804404299523051300248635743495874318294661188136029352058852116307081124973818337955601745594041267446269902599422696520918774302757672551176060898689334366793044929804885602222506119948431484539258354289943230656860590406709869967852715051444563599079259128822584465126056647861466436978517407531745130380775842893794058899478132806612753206409587685907928553428674407246083282095816879234600315967007743941765566386950679244369618583748976731192484570894797285590941460395092378381237387683160872825982639923235932150700342906113255270183965088521766993056546963314778522689723931075881067370026292151548201290444383812057955271297428036941460745720247584087794832394493970833263358260517529950042088636997016082200581441013807396607540398195346187512047110964138622996880829420145599244503403639832954183176246283284459601010806958849899396289736428272030626164131299200089291549092204905334444344333336184313823005756246190993115866108812810638679190333340928009413627397621862021735526222230707313876293571830666253344593749082408911601422523288301050442730097525485171454048280754909684731076074488781695546372867181659980235636886878314505668146232507811981321268830721657461303317144351013944998250275145334339257415093033496522699280710890251923855131824857911658513916093510650278074509391332351880353600750510705246601281526617216605203156809078699921165047401862238222325846695472975824021346165917792782173476031250617617246150756300752372267491117225388961600072142994249243231156429174760349899448667947967892548730714828329354713777333868617674899608858565463320219394522459227485770694586594974512416219131653488129508356903312997822708518987132717799364219750228368806925317930605792151061277247561611477887026017636714573915452739680548355100409074443068555862243507311436493384923095846543197440566309400828654312976196781714171770856167103960374210652215371452415038913332206777801852103266029368697480468186979654292440974942386761396185970785702800524369159509661246016355251667650267656752642418546788280384456083987665931854517933532877088132578787707196993017164840039233105974033226333719789252382870729384546191522155691248358605773742251838576607052502586924768058090991424071148107813251978016565102454643057308935229802516228282400105524080316752662860125770687010176798706349382628096365783960353593306240558641444929029322082710201560085644465111514066634079543809269920113689754621508539187568920502390452137255414717499332135206642368973524807671770452321702867047268815251134397127681356043465205267354363465455685162268900602510413801041011448251401386697940455248057938739720677367491711364279034574952715960796100170432197799778486039828041747761721565225825936716381719010139776841170062294391895993313119522707050590245664789667427606409825367254757430947014246910344249454762165715335424863673549679004655467534875223578433356553560348935014064440195964812316951700046244271026800133239399257865218866630181673488836692152600728448537903757592972436018623871784314786076908774170829380667359416548709710582709779907437386618638518443866724845499882020506340246046381025784020636710332946766647041498391721907516286414265506761686918818592059966350680091438494071961492387775879539600193373478118090355444306034131324600888818347545339155578265529168468215174759934665869345676538635754470173139230311396780244800790575372592001050776363375136329742992535154450869254093501650813779037196963495061009135678365641861172946488377145056863309570484649095759364709775537698208054619041943647854404732508900576474763970846954307744931746679214218664248546166316588131351454004519076799735554450240684527051812254958204770949500756361765877058240576107308241448062166316550785293640574731334297162573690920695136496339622574369517679058105990411556063804573906882629069677873359757286142841226403296812987573209105428838025663536898056480274207724829477354745818733376772486563943807305392330671176912220245254434556618915271360398158440565183542736149805958576452459768783320809654088372036772066645929966373842286120483357557154157313161084147779554342848337430135987649414595357775767460748782811799142721386134499377568184654169828532073529493493567947024965910395945582051292763984465051641403394433716547782076260229908586518274459392750932856486818792021896005828965675737217808677604210476868073835752767175096994541324664108142668321715291248366536078199752259287560484647722863054514691763453246446148396218439670180209463736343455258379883892070633253731160483271417817951897468233314331711826521067138388251823336162573992020775253157360200652417812328477656597420244330346858800739348321198764686930131985616940978481347955716679822191485188440911484545257128040016095332917367627315836563991331293218389783442719077650437644210342192465565692912945433784733362066297895835916043415048531204830029531624439543787090350138878786589270010951497100891429707795329750375664472652909463804734523062377668468278679913002401207905938849789971656273199614911063906361542982383728278959723813382493292431116563204253956967919475493798018844591344206373034758656465759014974302403581276225339283242820461112508389648053804038790779474104629866994584138704606226713388196484641936553767894352849787906307069977879668842661474326699869696498740577591126550192337287559393815580191483519420394189897142210049081119210928346443276780675421479243015097315951439051597872934988925608764999799376617003845759023103554528515410575072736718244289512830788317024509000741416138729251833257436978527638736890509502631909706054353889051184896707880197445872206311945758691909258166651603721983049402112501691847213278234084764073745554665205686221548850108152160757095024649577375523279837374172566250216839148694580308844276575461325785573288858571230865334290639720795672493240299211838364459633821826333115295138014077438314060141335054189433612901614100396589705138426908728498844950775777885893807773646479785532250981313962781515369268002295358366148008221588231108643621770293466062504252223852760346431308860995709602156830701813504745187306331212089893609576538655547180543375749442775020185802965207418878138227524181039017065122983951121754825973941988293490833663532536577717459511156745292710595857478674748882650076424933988884968589383582817632378608304035417818502490816533312752332595764816216215910763479473935036680257913908151076155724409405620573051036263962201920732469863815093122208925115894525212745290777849351869787021755261849603505915273300227683064236894346775750865942531356868548737292677649860574364134741314804981664341683538543984120200254146626277384682503968703457400493696498316269668525230461174354640322201046463649300480763683744307717454842316921891691823049672186471279622012419574132753501914347633573345436453403693567810773763790279606195909277103497034330084067761824261287741239755931472050866183094514182647488707976996044023145269458880418607696210836064298362637128173590020044810346039226066627336263430012619259295018204672733034785740684429533648514375780116385781230247948061755272795067521208933059072959017546095777277617140434451626398142886930466941873668580012143653183758029968452986518657504522730807126344114246210819108335506255974964135964994767759401678400938231908413434736334817856611698158318491897916223567529514730237448541279107985473966372188231524479502241771485512233890423504279641506974810705418272734218002454711422772626747725072885861337167793065002022721716055136941709496159899152922905948583241794364317067086220845402013337551435536457380880057584015412853118348198099400962988293171666499028517667558567883406387661407546903652744593400940464734089106061540236276519885756741120348441336174588724354613643033608840566117457243153201136640467778748510172638844682994429993960303711698849575092721897683522311616891233605716151740000109475864466955916512111880983893769082307972932579834946615866312687833404469965590740108045048845857565662340258793901833048509994230693385939456404973166478461970968833900397746143570876856393565955521387929863708461519802524081663321520078884231454926944049357886224746122825073364832236178575812382764565487015718861572584422686262037268177809406040800899134396361208719884567821742741801552038879230693670341802935438730919255784081456257033379421863286496090376857567645650766942630272168592441019031271765703738217591879803081222309875294632983803043626918727309328267282432166485792450885096740103690827400038650344238595441606069272248726860656622935534297479408026320040781814125428668683402288482235634213496042400413802021943564998752256730670247352842862929479574995796002263517117149959348762926115136354407514412486737916572684127127027231195995515113219191572875480883422018050454857400839448275507793758949837007616270758642093500884426931822869293090843894892030401103766455830248527125484796912044551506811825836435645684439776268095784773690579513507350132320953099848115939660090174216238880769898065266481503016279866319864716285646665384791319451600375017743520523561899398815797770686983483817648613973055530113179206292799080116750100399261915515052275479696192489201183526966499167881966907475937489981113814085290871881965070248761059667970315926032126171952435319433830657521557435908103511911914543458129640794313634914524134301523245040451194394118543439423967932351885166859976076128287634028015837297765603004859063354647108817474328897685944826306240811871711454510762899664079299772116145429385099117023057125199436846860012230407978277640479379316078608810846081518571488946497286446641163119470450002743602515484769752852992897926333478433688287809830574661461235291917755507286822779949833947977320421055770071698737115788091606880219470175217474988451465928556103413254681326311456837831408591996085162212818476130153406951230808078295415327403134626101610079800998973304988661764735456825854234639331872882538411024177866369966839736079885666174214391339824168911466978604802747685456317483515411622822741991596463816950652071412563029938108837167798173168373875728587740331454773138086410041874175722810087179224996076002789070153583265977946068402941111966825855454388164256067221517279859086079326400567036406304011442189286548990182083513454727192093425362171066511519951430320396521620748029141661969164884934096222982718513380979016566082334049164564323427918741592947100652528204891969891006949685179739212181039349643177584759010535518362704181679672600224292830157374853496635256962934063962470160221348200294813218077839778123795430408709296493482987251542054706482427459245891431278350071972854920964144968483657508309921152612204806979989175918710310494333638240488093731017848509240883301599453494651636378155615297573334915833688440098111905231317361428023768221710139695442909027021841574043425492912162448049359414016592312625303469703376798478464848372591227565529786444016532766624272866634941037909630424173474142711808841599208434262988323324469048778251902658598492798087377546800155314310474891023313584184014473132868677342762664284358977765108082596115766472448635676699959812181893872855724358757143475163154318588296690282984894802738707286732308464419440085533637281649682797864656474356063004471878686599795433775854169552213466006253790669977159180475221956294947514588923309168063854903608955967280480714633209057396721559668435467132543149093091256310999775222265822858789245757533124025121974925484756741424479356327993375123443687093949882196209624551125337502034290096547771128422881033775291010762888886034488360063626342325877905078369673728825855558009180045698714482925068511127610719888369272171060841730504381688373360190799507206301698243705663031993678540948211474248515117085973783966560234332806564798878567667932193686384377580553007434833653067355248057543566211088629090489431093643909550100274776147934269834422855327031216048962197464957431704955706843233736799830036804307930930446214990322928354607544896906144551920337061090423856381694146262210042296474109548154284362555650204967601227766476333912345906330072919644713476224621288357527754661938252443340548811316703471587246538571804903611152690799701349643487675934749625820224327246405477514703819193993036979968222145361944108153390802794303163431606420965544115238422603788616873379643898918075479350244057186831871172419551028503365350002274423190234343481193554690665558286649452590032815733005944247171169953813074880435152358050980381033889232440964958273728916405262601149378359863455374014841146094499375441224892908556646432957033491670553786265483952275941271819726199704172544276835109136091765960594152440322677589793417095539579252504128421748429744630015079554210097923258116897482841517877370458691193102294768928707019591220548450233839085716958850524102785187966372898595931793520173422775435210385361914624087201556367721902404844960069076064631280463676789306823277871075354828851390085605288295402697249528632560638232019342766621280575378898950478255878818634190854438654307445542283439927114851802059514882841425473146291564793393260342275370354670585547335088163689510613691882948803411909187167958224039541490728296476073717814289961667974132752939126493649268128560640720261049665442955944267133952995416121748248395082594387512633977498850778997805301152455186020431487905244622192124859528188076951267179304712896951691760869036505605794532815127703778030214455126965437491829032232914232773553416182030071402167358272759295246337508542820180553646959639558934551312687581731989699416173943910235979347800336269871667395990701307629078857125316177438110417683235321139701756313807660049600053914704229589867743829561738833424858272213077376752143945512581187561836270186640500211763680192417510327035879523406172037702049921295854227943681061547119895854071843829294400191460662675805329505787715193694389693785418019064210940538321308570427034054327262375909916416932309108034473957077784495778244269675498787920661007609031886226047307677846480579735127893497141893628605835195677558360326274841681722751305744559431537028654810283227934587424378623174554061003966119782173126518241740304057866639872329260829507426840723657993479949877238053594061745210480513613971403641430505670870867895451918769293078319052199228879735206768710490256532904576273261094364818468362991943145546635593098663599962901787819667472082800676711732170827033742614973919327892540268384283491586384564787004413689821173801095210312280502064744952391524243480844376019791151897073765087762359018205604698623276218327727414893807071376493140064388961630847700106718773653335189012029839586480879049127507763046145897849787948629455428979687921435221808337718445188435110110518031536288974082392440914632551191641406773822951003219020564714288739709453182853545800389135335926761526187312660293647581249032306341241543739009304135954641992597417777250770298046363086523959874809646994148347987729301151798132012875904439509792418887170922065145720192982444149113106990139698098157998841206437862214841214940602980886573132546167771932336255605307907572468918604194403108432466517391020877904967463776302154023625109539315458948975757783576732795817980217246038285727987168575115309656454946876150316910106917654176961874355400834701964741306963323117469024719991692263739595905429065212745085258961965565161837064430771042933280304049927817260492919664597754931894869015272835899542531791554408551673176588613918888589230369103029494577696141713275486929402415128669175517503479936569809249112790534883060707811039619683045924230098949230185981077337163799128263629890907623895058505162040862752722779271027897111997357655477648334356358711778366684331801456584226749954895613113385022214430451825449453179580089847060448172798726883924962930979256301029901214826001794391640047297082520210924832524542414756338263740360849988752462887177643546747790607614202765820204788031160104301199639543274984703362259801298325178788242013166713330877465291320752512613263275784047919135080325023759119820486263394651389906716571820675284414857033853722659666565069645061033518246954211917113043825769525760294896336627968855350493959143276581063430674064101822952618669203041909528694320809905348064357182082553587793114542872345128100311262027700077643380075900701156347570011156035222576956506450837080709923397060767545249895735843243329848915272177461528444675365340313198542196082194547087870543758739697038748715261586402630361515661174358412665905298981138689627102303589416298507679502455633944408436186170483280881008546376242063982783058599105499995985940992707719224617410563325684557407700038772482152070025093345871585708819010368263841460365211876754621039908988447273069577858710961644327466711744075891812926176766035729441807567827975847088546592227476960858127599304662912331870237940670029417010844144952208866645912000306463223274343957243924801357905593394040068651807114205663170296632691130014322903574324942224112409654464582927509337894726912780618029612573825152227103731523074299661212774592006267159124273479111678658293074394469646133033911134555211916153985569100348629499585760288286361388144405280917270604138844049056134372750970997726719037646585023499886059394851129107593539846453690773598808611430897920501208842723499998762592272842846223623698568911548246536517515005394119509469303683167981414672521207455052347795261888176913654961908619567338062723355412460191624144044564658440598184143344043069016337264545421665801085333991028345925261146529762048878239591435356557751283751018262094534050527987445435192568661605651835127176385015058757893945916253209858536621834564981361972759227977311293446550451888757538402085540283409307455728655825812988388650795082442867347085293892787309205623219192105038026417628289973907724899432485252976598676386769499329912782781471458342822590969807384116088012604239670741306436106717855119576939296396427991302217544615725248813956295580996756358255114407004110716126219455861940438344188654943159574755726444120163926572631144475616552740130043033779254090403659966358423973858962099791235867670796404731225492551760510543616918219958426188293114503751778265339006044968641958505697505852756994675530844307052607739637552457686786176703837854367165330850733434865536352668650504198061024692711670102633725797051070239882251051932344050654342239136925711154880975086000341504573239247702270023663044889593262091087538666535941724612881055745102417784984278691985776490702050566251928248498121330009360450396117232234199466749553598908706749359851247277330199012044573808578362577701593759449950396821682120059213019049935832909126491410610755557814805460370974417064512058148616776187860330052884504332913853412903732237059104009441343486213804324510937171689605801019625375432001459568506250249601961103625694770189409422121963719747598638890707740507930604986980473400764983516584958865381648625570815854360687500521695431613776855071781289134467123327361215527580504033279734860866114513925815323639364287553636736942096591542450975835106079925920560366462338876625043734946875551956005229676783932588521454046300206317448348596534974654403166015148473083978444657479789806933099501302773514593613904749914565510666288016966753825824345761297307841427261110633802264630830112620928570939334491389923363090743705417561214794143828030112630338705638753939117771014449361950526348944795603694330278182388712381210089190584391433102051110249753553426979133562246787062451417983898237399284503693237886481058681050889465264449596290619965207947185542000467550436980315682277359775534978069792032563795163065437480306452422699354249005437408151005143792702560218303609755827734759000708271072257467780576760412453079502566165908141347236479965488174678041681015741661814898312792549370456742860457774251287658988156666233293692989674998316700194180406236523480535755276857203372047690090964428805554118326774703283948400534058952798322374686600466571446010832183479938267947239822552722364970666709003198120532310905639383424086136720535423246734178748858686063246617706540357338316307259139339031313079944292995970549387455074379155556132611983753365265113215996547030796079255621949535042039446905262795733708372416189166843297530425421927527600811840198504325651782883641868619210023057989549331463336129248649802778787326123628674508355695656400722059173429079328650757517571821216018133562678587615629527751011030307405521539550863328048337776733055316667348379164634897018241104348869252106039240570189945977036888147015463997352764734314213301316177292066678254437660223094976908642248301316209448265432403891840561275300145272484725286380582590434226378063757153901654769371346155414357406878912702350796009027568484315747837385632800555443627495557643558578962840252617376753017824729191568837061686373644624919098484498174906328667688846983491438595233833123953469006788010994821380879344637391603782838777406527988189257267843927068018565689397272589481083740367877016874931940311646585772210893879666493948441203183106452677663287278655114556881817671378571081561400790851831982274301583507161700192770313429881300601997364359865514034688022627343748137683263746427401569643869777115406746528406084267099854139456550979292098311954183992021823190424858098593611409768651655618452077959629762260037540685887890550989358807684876247172334560158608089301753400878820958692923820370976528983572765030266616913270252091657179027398922623794907151932326523134283095695004942221152099381424516335227387097290971912902884526041653072253038851425491787074087352280916181746526031175335730025448899931166189715206964775456677192846341962725052408466148242905327413642709647095731871134616520618330875883606479313352687232353981529720053700694961973295922507250219629353988830246847034229483115052197786284224858857941571723411139749248190354531544593813609289208434185168588207653615215994678511758027066238960444596733415324735070974700882454004281835617638224961100592771851136814058191674433671621288673369409411842797387500386789366736120210919300348238361547565039429765900634313485181869701472723245959089427994920610339175965146844957369022833955498365112213577435303160431402293123715079744536356950178932313634321287413164095201917663070518251656706303729989648989137269858330259763603047625761328984970646976769889111982772968105254360037393207349198686242484756521358513022831087623043525989934356060622952913149777710488653993596080608861496836916503969448474676748766529192843728309183475832108497401064161491656546829011622348406743465317330197327311321969177420039848398681609163051122863487816955417951008445150937201580164830231288195231123568462114846927024830709276202223098771097774202832841055386040877985968895919504575287082541391362234348357919817436659608517236737937237613362310682539745419244076218876961751636223465454311530748093625302236387765365387172620442530700531492630454306636324868243449252682499419888406016572103551030627308813125826343002288205413494014105157315644489902050753543377839289430889574123300043796298086947951312449213187407180517008030642327297594278060157153862349916882368063811853648130007371690112131595145326535735451951060062141493188142847721358730722540865701938070604597127859137502863475646620108111885759450260495066664728106650341424006286116133185871877300455012314228148706089597087565791995162016597957043991004098605865778717797142640469809971571585981441994065097118688739871688817528781933867895786091427443017126516604577205445623047622533465068842613862799750578775167332589134675022303945916918255096776354980501512029138537908532424867192603206321389668684138087783429687255007290237525682815568299285978182263598676184258912974840014310444219476418175070857254232161746841496785185944850676504535650494676804605182628906492313177018484196269093221729612187730663599284655449563556307568314903247311956871581406215558768471615811695453199293914790836860192395671916453252743721568165909186448100326587138054846370286662968873112633054641311389994815097781630280755852170827245357064287594379882323727687362811520864799539905241249482672994498411709382124796396166613215447434150166200802971008955397687932833574241721480876419943794896597918358804325691509047144163000595107062015627739904879717031098859725475424668026559073571661673124863778707894818138975182557962740096126053687046102948428084195259280800970157750318796615206173170850389642159776350460622923896398220233564553482525986462733521346508148635147678316316282769692259886127987141621459852372639144126677425284077895895256594463248106276860510133630766213635680948846287383177079179694774608564879576309337632893954959886797045721491485835280617529264349764591263332890234770535860434056018994605889124345793087430353060239486372373446760786956207143101596282432906250438561195493701989835138359721277062516738671132494137170296149718966626945872440189471678072300334322288505807367096862259007305007004289712601831061371873637173122764339420310817031246237893105978644283674520849987626868016947696754555412740282758284691574496416780677927648658914406388770004344222409086417815165931590730966086109990370311837008322674925227907061889321342073449741292184534071188861707391363433291377999791561673541452552929588789688381927481248796704365783741025499921646948501364725001958662368992670016556859134184201531800709766881682854306783793681370871349343006298471612938405927809395928118159600836762840400311390398522167966828034672953667260736271243497598095736046303454671621613424946331731598542200119790130916749387916863953569091774555129732512786819922546418828627075646921682166680309882826483907989443666660444557911144261698872706032516231369485195577724665110949938513265357989260870623516065230782675380960066474735360417003569974776243039074809028782108103893429049712091518272469594385061849021314065669514589489371628464621324880453556725078996859874474851260448659919103146102845276464597301369095955797842198303693812331841913832815167502707311865353578401150762981732810744532363895348865494186418428989828651046889229368175564654189559108269474679281397014001766291804249394680093451147177276498918163732927392038513122098620238545361740884006859288011728039891712636706019854658962321593907609753270633117455708577290886907653525435225108381627288580773109912643282903637976883265755671156455920944680593762711174559289157886746078066081756177863621566088277183596237001894883261277892252885040932133548645560992918371823318534539550349048803075404258712236815771208924752941699875352169810870965347130322377340555455030735202805844373522185421032288495700767424656266205770009216542058249836270044137656528924020512217055581055613432091635834430849577762202069893126029555971130894377145704233114218498503637250909329798972047628642728016906266820992163862617405173064081639811503011340881181201628297065282082919561364090242318142945062991920454815474382418532578549405550456101993999882262257802562754680889678914796981554210714951773774510249536984119680018425297186973978813250504530211663308798049867420308008637327004349362203172392972247701805272464146727400355834222991605319761821792492416082204241615135980411076683870644279927634230629368583611151110946251471452310582199617642782823993938641073214951463278000698570265907553481178995640493207956064367228770609434013890612725140799869703213468250035737613318426069915724901455167127708812430998004163501014543050554542337016460793647421084948566405133040771426533168144680352386011655850808267377037102962551340523280895155442902229115949016375267044598858997078986777826411828689325317907741911450249615426364106343079547996417182035554401356403441251878146032895873039060720761160166208302429113483464311786313077123755094688425751241690545893502343897987665718146674342337849347555987631906707022110682692091276066645926360946212873930886097529709359604474050132199079918217238064830281589720767644251769309941884616400202245351855029835304056772882266908794415292661801143339091407546767435902723636202894778445454627674858514524437082192479202238185821455772499534385097135857606439918673591407629961029248890801028628898116382481237192067185372687081418702214841015597370560567895504979156175757220882369572134447748371546696636721669490592711265136079001983871790765348271460561324081129972238639283223427175735635458678078038324634546084460304340130461805802745708409484815903949535595717274638635393870335024354205835336627770190161447633252529294951531274467363943668862523245796946001118560496729444194727005092591549746136224892901003266088666891444898359638344346274318153557573683901074922858345147590053142006273758739604489256350621412813302590010240300305541219407567135824060139859607911020490867330963344572675680063943030334363856829908491316796797729818349063681437781254793880722744851504520489481442606600111541302899555063701097616051959503802715815450211225452780718217314569251656199304494813068005887216360282412894140169575832821493117085470419382875307909868893286016252321571956199138135562682937487491838381443562827291612196549710558974237823691085148800386030847125509816966567623370745305857305310717989781091360332145908774761207963498319789004283397484642136941131420328841004800674350119957930595555598902578916243320623140587234314335514713633944870870688511792112831035354141350593737257663689377508798570017782476681649194976005737861299739648133989110260637618452899547548631202142296769209171321239545915702264683292937934424737895638983581325649300931930737153598697067445189341520300311403534030127065244069027814839387176305651168556663204867514300574420106658093771370981705035443412736634664230044758233249291589083507036000839503235569394484518580377725253062342592475313038409179559441005389908731206613092173469128561539959290842833045176511125561646227400762598812825007947434578270088749554457060324915535176026099952753698106461197065890069194463352513840465703813654779686322422611348710718589879988005726341526685993363679401618132334836730586410119854082615426991944705506009351083666746419251845671910033404768609588795239836871623451651096811829248363056954100465656128337928907085737581442640834257322453977004091209864020506501216912874112909106881282013055763939271117135386422434191894641401770666648734413707726810201914649550701219240283975514069784130484144305329803491022001691520776526561190647694808664041998019434343014765014198695710579132905386496102233162968994524425266088651695387055870771481009095982624759944335595104654099979077890778265414363408191788755738207402104286350205238573051970812223765911673200134094645980262713443361547230989295166077728275172422273941045099955230415981314674813933871685224629287925090671706613476192140097508007644546259287016991043105455065990998769549770186439664698801600658629056126231972780425016463552263554992921447032609215404257660939888422280440779102571148209109375265979651384812207699183667756676078692867126572851253643932434306215844174453146145905782783258384352160205931903135579053457104844437015661141196574276111953147414893875967187571366070595460474516373876330099780277854096650907786344879276742333539097077148554005215892496664775336290163589946798767688658660070227175193062798274527699195002036862610863831701446460801156290513691234326646116510763523982190405559956653932181645933385898550653492274276420796399057169647093564369557096290391930808874444289488471742695420295207495972469612927171687278648214607580719378512134550166889942406725600589868264741256950983222672297754109068251335564275178075221147059132922305676571913147043906400294945489172980838428498266466793680093675318125722511997124976196962847800315350264584179827604731522185474546782563336178639997040830183387230727812578346910842973421289334643960094764913223818776412548455396394368063809331276651778152895468579429979376625771654125770538049901266659305654054145142464006320502142958700399108907506944505125615700397809442727096721416100506892826057091652732888458305173127434305597973990667689669733900008984668608480500614326756953106283421905846061103976570958843791972598517816609883785458659143709950777794775396571257201948205299522207404628100313397682171915954362139666056972553292822100982434392573602061058005883588169153737871769352386114988458199736853847843634548325676973600798291461912182244375869243076383263798434979098811992467845103247520431613275152111805023876268913875275718135864810223018871928017637417844329222038576665467974340536679342369413189416787711615057328375443271822697080337109126375957143445762647317758311736438746194621072852237515523426794994343990912686246022536806848922182568906292110047616261512372587017865925278402733590720994515009838213485871915472710487310920671128666829314176289300580152212098200504011159695254472459690469867852322128344202085792382695424863444867160425651688875712368268638155188870644429410679407200414417832223439184066855148120189136345004543781363413179731575665544053329332013079603046952294808594574301692254366176647783971598514601698514938670157146420569555665217127852009076487158034281032664401320101064677352796251674976608388823981644287135566471019106021905990814156473335493909366433017093185032521446149422072102877980552320473018104346682244979284506372222382151174607700626774669070400623394070443589859640018001975447284565826053026032215624293779185165863399342923170591206618629759507215417088629841721053549840528124436415964253244166450981976201551542754392792866547961055173817745076430271983443042948213617983682595968336948817068144484504255403745393082979661310624314633770447372584027207324764118232356728261632158024895027010363184443019437784884522504751302535703586705555495444616484951776832845461467214850704311335657497616969458607272182917020342147237409805217927894522569640246456256715841097439444093282099223988463600229272865769602975776125176722600516293260756842007920221239818126256458550196508292276101385629599560126005324683250686428507811684427406015933465680141642351167655463077816905115480224785482308480954924398594137358708184368569138775615541204952844610692532378652056508845648707765389597468997400005705183094820427690802871798996966626524795219355278925424221029448677804411175654761979978234502973765106378317138413592614028261840723973465087674066908267711517946550440882503635567420645303526445029700806441734185266106034755884418379498901308079632266404754386574334758368795066893555244165712202261220861179172945457489497113636258610387571192000118447136385907222128322893310441734241909185221442683850600055138024192569572255791671143674536336898925178314154558539608782127811652790764750713335516087421838051137534211976025963944907627670745881648612230494125692940012451581834818608674478456912355795478837365564196576683291134095792011780464528266603305423474113853531253507725692412651797027750009033241588551565087659010333962730660115345001461062142116972729917710135286203769693673857667654086504715374148810598742141513599505303145612119782500322640333504764379918697679402122251559360014580812541284272459206090559218162486835409910492665900601772060247926525873760177556485376566426959184512802014910302015388079763610272151833334115433053414105152401478858428773235412939756873698681097968568653574367012827959945678942376413500372662297187622490304404038481924731583917446534696975580112849191075894089609275181101510240837078218848973583992102721268438994443619955129674610078446288682320145631544475123978142348871361904722620618236714775055682927090380924716573578640123533889601658656145509431343044704956681689142006900603466004408136031340883897348959016435469302148696877096903158729269167252894112880491192178603465913217519746013741977200679547793734068309889828649248411038098049402670894470584200097592019598643044326924365591759890717880609708309150492501339909514230260368231384165102719271640505729910793008333804513474446403964023713743387878557916469478891734249985673090609815429816633242471740882274345507899778318471752292054913478565412735325977379157628631676247390759983337609279558955542879583286210568188212101036926838162057855978477949085540348884862695832053347510187544399594439426496806322218397637798792401571428676303756056434802774981124257091396865388010632596079592876391702282091341937851555756385079779127745487410022901201604573872283321889507281350781552222654230146223291075087173294488968069126013280137779357763235948789437712044801062198028166678231866252841520004404333517409201707817636965803813689622078588602352245552677047458732018804030616120958438069588668830604978910710477319284757889514071307077864341845647254357977504468469840243423372893270010755405341599756207094403085861058986127924965534237375103685308784758163631740534837407576379668831147921009261042479119625789650285847347640954371858702983697053632103593210037291328425301942403498785855791795638590863272920289147043003531463623739668909177219906713576684329596365231296635923716932899185519415712446729876320793286415010067013014536378966646424542116488218176526963902535737638572737897678077447966994778195185976606368070690337125963688714604173280828982990109189693683864603392920549216004730938407101696054868667357419653555310611126387376316092419623544039975088248469305259879367464317404926420654412417570914634626933301589719321433784526204041180280511544275555316587081844960610692127199520321839378340629941984268201533635514476972424767447886019599553201157665673661622044121560595142373568147183163893055866372438753484345845149743963453288102854085026017997486263062677926800332675827287804575802808916441296225055372418795747477704943907446369882691982739493407598258233863897807235348604823736140952599013432895870732176856407148947487612328988117377937103249911419946206726235899112649071677310994768505082367069361179342958298615631017836783391972801309562101369639817476717508621453239071911058804818584368603238829105310179549637828469668383825021065033863985744557363787146012074519540100514624853351652049189298687526640176185196748218722172028565253469272415926751893523934001874119092694732563033630929541549053083918732506875878109912800028696121954855572080340979194728118164229241295292662545421237703456332523656264070577461223772030725685882893009010061119380256542794518723288118342975280818084221303210772670160631085250038813255810904802790984483066184240639539712789058602051524912274471326962347405264681308075473008309191561198938344376845510055599546418943332013181618781982133683306696987532555975463363418807449966139902503368949472876187927453925959231605303335377059037794339659164146856260796747826546782272282434484109142796412896449708591124463582726004690147419147115402221027677441041691254830301469396929558569510180289913350628362998767621150925362328733292201100874997480688058173885798675795580337268636196424175523465064171314038524786514489569730282515363730870141657485887082178062409124320874205722074794379725350512690489488289974184279732706381856828111710918228877792263731331588600129171329846559778666782449429013279893494583093736446187923445641236097889104213839881120756932721445220109929464854319481857356486354822880493931565023014077582128081428853283748693797683148084351184465535210525309198515616626977350202327061924033422006453621900827127411942552342276016888620259906199304465048421019515908822974600291230986226610515302840614025737671281923176089957202944221514743376141911028117855283124662430738474281677027117536368997255571423058437410450592308626383768758915997049047413004388578274937218063179469786776157029899553776039621930970580241183419261346134134719175810353288293434604532798336355566522722250531724810659697194504777500466145854877675270219569193659961703898090190455651382095855902550760445668558043246310888455229030225411860887216663946627936698776668033708642283047129022807477734112999353897339866356852545118136917917952508877849165566381883815633647689002862900521486918993805181938916520850601203367519481169976568294945831482882300770543795459966863475422652320669843132676079799674155982347421638414502159979241209448193869814703579745123245697948341286709265284929714383824138940878422219430454454649144625705325264805271761811281402920366986798590050688677094810236301904183152698362352170638942623298962461880346425130905133354074753538485146724931345002889028753612360143260446833789844815314826748094107347779006169149819166881420145338910404754864996510293680905463361879676014827046718648575936414686276043550508794097756940608671439986905092942486472010164022604009497864191252859954680339877856961634585267364531539697698807339292834621889515603153099425254279005047905058834832025885688114465287371561867684845054141851472827270201247325218066912483221393471698090336551073083373151412881658845247537714988719449127219908649711478356888395855221113524865681347743651100138325089894456679754680064414994361384014370315549881850118135166879195982113285131654598413310455764587425709587968278678408496725327093177387551815083676079727707324556723581199683965311961930974960358481883279928888615739802798938658578788683569973589130782394651280770119769808110643706016364653583846003345824952786070806709344032683624864568479285077112975155114710186016822963290784784992245567089953192198897061379822223677406998306711952179332124037572569080886313037946029392083317724266068199963846576891924409794169725805930294788039880580877947914086096484105348864635023596977835396028426487444812547169727583295405731567562273113142505536246673952441403719203925211146467807417231697193469037561069555444299404424445145212032628674168078305597529614991220711778882483948534107644634149662931166205042942821768733302071762229320664325054019432893649066034579524691471730704513581952742196908285611847444191723012794242571027354041645631234434438724542993983023246928657272782160696676812811164997119777828475662368181013188734313450496420930627499035942312373219400056487700535440599483014732944350177806791957487627481244346445808387442669833183159279108000110744265960269383697121433365316617613266563975559195836604506613554207742581467331123230733245838855785560993353540898424298859520348162718524830352830672779249914077762625201740311011383613895627427040456891907409748766021179362920000876753447235969542599017040417958673648246505192056416883422626554124717852964224737156975221895120988464633311939118236807966102733987453328705125885933384968764176709195148838289801132348608831566727014692708739513463714442270294477482714512169724334440702469079836272235338811138113477045491934901650009707368360558231606705171676040479023990316085664507835173418562078329018495633454950261229080983931948592238721960416186550998251108860654414822042085373545966473201575244023479682508734035920697393035071382441690481102872995708867432790690651980265617436068284685452845561318881064035561530616047476975599833091599070645486850259537345700996746770311181073862929484015527740484828613772259374687441361506899030775165984802444637176269985851597712440475476898519445257082542789165359480907771674438035913773410038782522887471814393573138588625351182436165570623349466775178239174389755633115170820582165041005562000423962550289757887980863704255103596728020920116302972322277986313766401405956789532581411389301069009377132402867059821886442698596158614767236184912829171121648766944929533045096582739682473534897287921646822653214026316036037074583812643634087219142517481876340147004801556549558380699787464679942930177992356063615497459330413959571416521728622458502710807113268513012526506093468741421985443022178715873991686333876029113822821363894475866787827148317411911073426407177579767733768009165482303959039997034609634980071931138744336845577238577772511548939169080440532746293225234988406356563486579910185778225438030470745304611197753752263116060991371938006588925526804816117167660131390836476368703395177799839027033653026973877917475038136048311502345101893849246343694437807517582474973239160173361479040067084398627786837307387859145598839559626669270557519740143695824810491409518698146594457268393822800232923476258147141641652614870777847047127805638179476415052418903893538133159016111758192961261546311860068875408247313525626640814921998511647827334488960457770258502449546447333825482133272840301318663987512180975854859013750275313356714833955664392020328261508492143572679389133724065417754343849852609840554843915245707035077027194543761388977663488979621100294169355181022296154649987589801041256698305875291230055383901843291477697442468480892846853335264316092953674270036651806730484936693455593469340963380213692001657019171385328819114153024164055505937388029909259317068280485155467113476683699083473223113829289292807890424314489082369105736900172088759026461014682923325019654613710008527193995880670403338770963867834689393773488543410888140221387787753020121858205982330619165573200973152394419464008471492527189418201626090829215667956933681269290044895149101337946787222784581114446623523215644129672954765962643264015452567075558932764831783608195398500978740470488116041515153688008828632844171564772057342209939231543804302278024374974029126741540787616002231784386997366680186752599822913195495807529241319872086250653226799773633911517893981816525319709582833269871521249646830276235071078701537695968482084649015665878561305928894139847111216719815682177235987360866146116097317519380923343732618278741544924057823572181528930405528408297985578841468152571192261960009095434953700279579930569511385928240842129335292088601254744251434628588082011239292529309396835074747527571379680098475270031440940046166845236759749053916221519272555563517584575520667252825921225875950479154213865137287185889897992511166832150768688740068986193362902005769274592436984775408655476078474115231854670545793960990068325399311495955676877544923274953194739769750175254841344880678743200535363448416434649623877828824062983061000437846750356681943225871033169413468549931924385203996838772324978653472781707920035587147674265856577723292730530378253266110089063028499438336175447590143292366931806994446787967233177152371201946393480206400338742179108015112221502550267469176313861151194588025961598033788015351213164048699502377082142637480576943725571038332103257394582247043558062928011706640393837778209048409238067714434098353665062131239800029055278228580167164173120981259838005597103003314585940789799132244695666676245226168939311426298497449539005089582339495085649160785937612342723184044148604465078387633103575610419602481202211364650018482840831799333524795646417177750930822702690181842890639051701526433670064498610979672587436807569300513120123767432001958071520652597225151781588862211998982583402909899033082814640797534277541805865876066729327557376982467110619843215332341307393322973116889875792681924822326658068477623697303968919299625853504825709734318875106137172356136407971239674956666457972236387524629289329622541306038898657335437163262731024979650100746288151831625910308560318924787166594757543593655194147460706650580685497498736399254431135633233617231596675574790854849249425598599551077539814200323858353398005252157150087280238208177281179612662323255011334714145265309175265711937559483253870171092176247238482246563261213155091127672691962780905348039308648365877999561883974807107801045524006955055830242313991337799147970887325194735947672827364535864732123712922657088581313680815840748471823002313387067650207120827941755865713721121672411139606406165321134857962325507788847432884896350037511900620856186073461473528845572697809562061364094325990577831569260949967630126965231857093043874016972608100694185497518059542410400251853474497071755869441173264376681822839327043645465418787503134130320323138190922229945905196744960335567467166165990593538728323819783564054630703548936876517624958738635819224486076025683098601954833048032394149008949110541518981632606376075051217026966055778149570619574038727925269346885919768636885915173607615195581817827656802492500217914313277075521328248751088301559285740200791723165565746341972671077365210586323035561596840767523454763570696626024770032311574254758931646642820229320916907370831903571406923858683157480670679246381424289992897684444478317714766641158065523525761678210631810915206064530115692652986363023723474039607141219027898621312386302345691970990588079919335304529874049749800325599267748680057193464531453597963725827747719500997650561462429327218602964866032064843493316100787419491750897146534216020262196306928079902425176966569426010259796173492058559148328664657075997091408358743099692170858074838267017028159680457827727439543185213829361649979928897293030694131370980203357067117213487943292766952534961210183288339432917989215176087472040170960286520336540023703623006336630678133855658230656863015033932645811337039867674226161944299386981564228264206995235944127760362873292542389837298903514108617771675141317677404411972426859196883543885723052027219248489996027867156542677555704686495987325790473394722609307171016457705483825543472564458672489068536965955911750973165059410251817522586644408581569360084162501816563161756890624152346314108934619595078733547477368636301306135024920037032216510316657088678679787706441325503621972778298908535766355355387158821253451766920550520124452219581008424743160160179920892099883359637228865802934409265108090698441924757287147315411437214141260595073318442026850216733335340474177939646362833807362713382430151624680997640624197602653924352057469160528681040276862230784299632954672772552340781564728851217453371541587809712029883744483239955743912263815149122591062834503163917474704685377908633721835640026963173483622739357072264534030815651227670700028032445867341525881368173783159607810391621481230358645499025074570150066485775730898973636559181020819200936532339363891559803908980516394128814846666071620409241379450520317061593231012805613063371154653127718180184858975890654203718190606689512715227751643505880888292955203975503369973282742639472950320585274083699768851493743386701195523776843320530427453156098753179555057638388150405909612629219703415233655675397552498597295829901368066359235939142285223228018335027841529476293259766645510493938875603177070778514710568878255050499070410774843156375178826458219816918373630660155415628681271563785094913937094930766437796587162228727477095286899203903201586446970416797516502090987998461624848463476650073500105612082910458842813448291369602290689844724992307095139439597938987014777579870172466699357495625655649383073311834664379051828047720347424700656344674377652191938091904615147285798595349143169726144608841591249260192864132380668933273739779734336753468216355456012321342466318706373797551919211668887001776570967313808950614211288372162774370515045872725427404766860422829123363102411698998726675000689787696321719588964776362003475448872959770999783406440534228363328246710652312891046247450112909548020903006324309619528580230034024892933371807221109500339644569866074779823135372076069110031813667793884965745006884193970131547874302025427079687016740601257537537384095198715247464573563087643955740659496441937298836459633561310033661451431015733457603682304966831322039792702545307007012017943367753725334587822287675413039745792440673582702942940685521093477526306856508167461852238177216820049565276613847611908414076886409075550162573618291325301912316945385062012246520462298785937077667832906035674073447715335626214923295770505858882241520882807227611005974945562799464850744807831198090596997657002428435792367451471278000199303423766783557883694980904134422332619204140658201974396700909443565535904176399883498841334856906473649135457541292800897197226515627477065872383582077838323458270849541553042719734268774335083724306016270785706887898059786699876506958704173495076277318769393886686614292094084020172896367456556351329940132744772806863995422791944485900170864532229483333647523294188460762378131533631420919023232737455937930311517434373907576799814943486822072497604928239978134319965608222714920030415459939184871876028832121726901350450801157751543464979115219530311435579151026793830405932817196827647704817972421332079674335967117635808186464412167953178419339887776893065553625183132045203647616895918885003744426987921941218477692395477924338380284218634039929263796507531736649575613565943556011722600038817290933206178576245089431455640574423624443413496910667351168975721861070861942069937347030365076818352920097499124096573217211067292445964550986550023704657268815793374850094576256852563545665655283589270387176368259251469185964182822078001779517424343162457434828852993794780702348046380857314221168412863066707808599064352450116540024855195819515208789056040826834937756863692865574087835185963522771620541866173549794662829644167756163508077918304950737845240247339475709299552875262563398892306095970441170716313493883500370210626797896158460862262038231274594200418695758125166933695897882267334912278314866563176482762474194699495585508897193938379018415408959535623274399950728472218324029914114043056467884241162977568297777783829051309310626124704205916829402423043219138627026594717040558421909177896291432091383418085940338038447194819450266630351311191721853000669244937031859961051767587818816815291203459253829678141946978391921748421465040897856894636481276959917273293272713406651098367199973524148564923027186428720913058132489468387616360910854889999599793764720899834074834880236160522921186918094684583894266034022352274232140833508413055933215841940328630893392600431161740186989488118286750107979000380513594479852938616014360007650681401239374791425054765906929312658359279767537891393430324907747621139989677585022082699413961612197565757618136581587136982257607331101587786392544705389261915312620971642400378079984828488990471924042765637641351877071181944082300971305314045695063374892927426890260115297846167506437772784264842866549543633297219527207859964874612566423631391636460654165422797463017889558221627240011416523631483785722374055494254970558989317140823897146502827364617535458592468126541703228581575371485742977841364820893436132719455807730123730450491325223738086163271738205253385433083099480016636461969288811788652858543591292056638336447483402059006417338502337049094399144713405951764237492223045790010765278943509260653505165535433442578862543759277673010066926818116634671625861632498745947356385214980534752338645101700727337961290584196729241489904212891635939067791060141092075778265324561911613220356761785334039638145541478029009373322104915549340251384359508146429782776355683906266558807894811108570265662014407786495402542082460472546501755401465355119421262770890778756259347926082994653029648471145701839917877026492577552840573935480214944341742162643562053817350515451267813025665595963816796064695671805063600400114500165414688205024847591730863617697264117952149322842464969498605270602200756875171159015844586428667842893284141519984970909639385938869727959554524857374448914735586922190534089460081082285857812747355954705123778204959093228798476025660172992744057155779500462215226787958738070585254062274092012893193332528797660478858307822738590342444614700484475606596143980661351678607512493280336632748918605011625917937177053131973800817208194073056776095730112684494809802540094410550419686514364125335130915580924335841176190913800190246664007286208577813877475710250221148406352107635540854243406814097693634401796948090572844312058290797822253813245689705874883181094666629739516068808810808758803338492832479927566244855401967649977560033243501219803086117809791358165523916830365506005412686711057577156510254852995553972510278687446266117693647152040950904747953855961515767212035636050478926666214850809777166773732691585243927248149972395058967299029283637110432542324653714071763842948111140555172284121082321569712204199081944598529543132864662626148142705846898228815859309597772660532637503974977484447266397110255150027359476829776451279604727517802614294483220113805776735608786114309223114651048660000371582500739032677872040944330143068799463407078586584492948235313248908041185239876776775467920341588257023025496590288643527112827498264226896263292783685506540170111795669840241393026752205677917040104006497697889289236320981506229090565382240284217013674653543621218881474328748199360272215904935561754655281351828359897715649628226578208163324280855009360486333132031868122080756949065300179525603499294842869221584509042223914541510327224771045881138449151532716977971406497332538346961517509309621172539716509773521434519553338782166050752509843516596387812528067114458653166900644769022265735749766041861561833461219936598704344431917606631483768391901993991456908451163699945020120229633456567184216156663886610723838539500724496475901466740879401210896024725405758971036925250302514188159248765273720716755651996841132204980387907810069623653427770779444698178594072375172175076407248071596016421010804941324615529361946754054677784336296570999935254063338466363793606996640442062399924223564387133605314481731754422525301401300795204213845201792315614707986344274008221181297461361548688699004501663419686661603081945103845313280380893028233544081366870730210833980408647013405805770420100604017187675757716835752463156352934444433888151224671819069351457432165509319789930051330475568162639704091484428736043221396752458026993529916387503169705186027188385275043368902440627710228764937451962276955470849444733636162277178172098398103484113057052302134604961146423667203839754550806931689019761205518825106647187662818230348070032000760668067987810036429167713669744059187241802446847078841463453244881375738266970401576800803220973507131894438530650528139929010288345179203223848771944086477302038855006201226140294295804951095819333143865692125621007202645827177031738523041821005609346319896000153376919693517891685216028825631830743109597624877946528906359886324515325673803489921624432161848675810967536659897931727140870453769748440745460092168587574406718874263316153499502669865959433336340747463499637368969214999589394166276741323622885525853054414261856773604732947196039288053864234866421540360694184043557782095687682932637807800475766306133378708933366068970035042324318560530499944190051044952661873579011409332170697194293551414149158020446502577572850294893325281064081084872538128139195793616961715705969372672382464774732642916048614353981875218656146012964678813000693215768878333098514047932893017958934879218870469487059042655729028234943913464763063123325010512059886960207734011604395756992227275897393851237576604509533712976232707028561389529609516037030885690766837200651369105031347473195705190197699221355875486136071745502259386694870925063582251496572738657135097592804426076101176097844916793440956645752946673378329699609159056682396773774826424232767391488845330020617028681598464590517321000294251873856807111305127340854182181923441283058712669044873663245890267751627000271523116122604833292882766387087464583075051657698668335059812210639867127505873105227734598544699368858096453129794416353086697029892194468783403805424507112588393503141084440778333331258890815774674184046434091603080382120743735825801062743264831698345244123891635662985821376449727169084383451222850634087045564224009313924580792405659990164739781759096169564609621532337676258548025237220830319333887968268251267032540896913201535545724276023453731569936181337461227973338151810546550209557220704747093025557876355670589785356675318928728035062381268643717044139248758802557044979699133649361422422235490257308401425822080821229076361065951061054861136882353664645707253243574639467162390613697439103474849109559834212898000284644002329705677808244998000350690253863187508170267430077308782828333999632618540065737878553842758864372471954092379825824302048269184117564914211463881823811251876117306125700458332611195302798844219077098595973818535854922687670398952953571476671849922530931012387085559484413272211608824716285850912310255600241678309401846884154019092697127765960913351153408083123224931849498263297563396808116728093675438392585693663794517424801945144996974379216194753990477663406385446022949776634033844264595532577329788535791708691088317560705091701624577290164207731534621383598319830463516470038690849688337088524095261260687054843017580780468061982222453916638858786080983491072662188213589788411014616214512826160572532115654828461758388546137514968790756608778910239927964578379182507511392909265625968965435001294339272710487226439204040245744833864511403456407680445090653581621722135957995215436214409676871852389373666297905708129164373194517103126975200468864784593309602581198575462781248802192901703457801817664984429176963214588601027436913623497902433186367754415346281817135276329964498881962716383897286295003574180864317265779540608482698466279531564471908180060587400615688233136291638507283485094037993349859362017015244944639360971586317042164258040302140775348956803793146315618893335201442810237989425069039357952536846331214469981072023896674558878522961367617572443812722319098954717297441561039735715844006693192586223412433431497241546204835584992575558555272892305044830684953375548828620101367315917927449134054125369376898629626117870318660113730547410391530343264985296386793917820160624354375942605669493628318680413998466025253232044113821278476315613352114439646123340477780663396168624221669641389784460286851835507786736277868054384976245489426743615921088612095626031173235703417305409025025346317902807397275514723475497914963822141990603841404539122646187160561687241494660858218332210223743993478407963757261753234445164390436302284781747516921608187356256775363442310687186497298074686100574706214375717940810214316270890677269323482881299638094228255601828301211790087490399214500096311053472913118887335220997705652628247293834760423125096353173911722761355306949064295815098217913539878344455288950612717324387527945632932817935712975444203987053941459977222856858823331553180259865617201565942186391904331759908247966245017985797807948496726611783444460728524767603385463854620547563449624122350830421824516362196753136196468865981251801243185905525420650277174599954373626538568350135808637464911170322926844623011830907968057466169610109213916860987565687689395335971212478773004222949870064642951491177059308272734973784030334394680872307822816123600388006188409612281621357096869476733884598472263022095259404227341510700974379763897290677093580362407342124630584796406802033146102534376259144017621217749161394749465780129553014827877901895120430870085903585860258286362650503490888719141239345035814737560540640560194653309006664129308648245067163672470811581291418566941059374948237183112037240671073248353435314509381188445389051769283611207870382001243590453103270880219018850872427546772559002761492015729873447097352694476741876489747584396996015424101305336150064835591194314956059148883758848078659973847056079649574822762745804341180492865929910550351236061271332188684433844809527293238064496436239308475551222313282749673978953141470067000445342378796247840997159590556556570085286083123357527230293389273967221193618535186550789980127681939337278642210579494473959147428161618905382903511805818497084164953465689221817891722844722178740708925463477069329298104431452394848031866779943347150591844030276789952503207612975703072297966189269140967718312025777236004735021045306961778413147461536476999163829783710570076992614753603594006363332170552795456282776448884921192467307791438002795558388321672116277105980134549172491780084595902190540546624424705016781323436116873089752197461936944679398563349570228246723467323664656186810130674364448456376380605482003778382817513987315483560361528590157387755827995080718006250185088866130288548851837146074888616963565015235227000449008256335498695099108946048777355240379423753025372694625824153270456387246888099763121519541594707122211542834591827436656474640679980949043772688009159210483374236834018287256964807340110511465355629057317380119101337398064690012159017812742270523503840332007423686377552838316811008026145177845254830121503381720211838480327143982442647945047984624989452590664049704153946154049798211811979570904470049731835111403086676488438675631434058247045528907873454498752045999011319693506434765866521860525233051326173042392620117656258185811962911491599983358340796997450469454602371202777687067808713531673005217781152279271510789985853878849944476938993846479492670260488388519054848047700126034056724465275291696425480836633490135958521698866297746986979146437557543582353152451137201114676991920208983758314169358917606174471918223492143868570986099745748123238142176024268785050606631630933226176235895687528817281445538519646198954205430711569103031570381191737783313861952650058562154166721961482643619865514836353534551312027449954813759025746671092477822255434413111576524974462074972612869670647494153031293931726687795242918248263120230673077489472405835761932373631341837602066750601694818303747456840508900605242722332291088817221835214082661960643951252466058401808306332851239633140455457495169381023004340163468343198102801376447269773645265772182144795670618724984009296412241284909555532613457145432166952960515333024413697443929798920856258709660161065528798875583354665616663078656709493441475583822592984156673563828172857375919754896622434524339972850759165475659927502532812804765706105731478946887995782351923796631023062061529640145065772943024292574782619942611291263314422998227648112896640287839088638236136086207399471862284951858971352216765831592973686526160043217189026209723262072278470599266124648829705809314206303481109661902604989469250098875865454963866930250001661599730567308375790719527167476258793402936829093834564828651110807748624658363387068922688706272508810221677585690051587450058149039959690601580254914277107909932545617559120414439450599220812979218687384585071588957710343736069884138249550205433634666394184025142189627083614812548596120366389024646897090912073995869956539031645638210286904849287721149614628474118363318741111454920311121471527272952453506364925887212820631803357746642378101627968353979878428756960008946475414985598713535971041769539960871372445566450072155871844749177419308966187037935938065453805256446778362125002732416365758958688973281261885390212557344062534952540208220865454000196149702197959958833366082975519054487716686285401291337964069428051711350036156684229480824207312026207217312732293755680408433110974436566494600197961311096286832958687649042426026959626597235313983312441101685035884887486610965017042088175986062548981984315028831092106204201571792743023570614542137073310241851592786986973044643034181959371235514358028670223081375014587521824402857383874884993654472290119484620111851653115683307672419318456224934961710310995016447826542439918908290277646495254200551502480653616353482901931413654878848824925302725273341660279638534056199129452525091462666585188356391822552910455238927394437673122026467511591615349460498736858903926163387132221071305645236947207264112925408882272873201322099621773849327584217094471263432432130855215569246059777758532924172427448365994822188372114114578216259340226288696517856501162471551758289759033388115298814728766890097391037081061066151516549598533697639528910734713670605742450267342009934209868541660167594115889896957399025837860327158757008933618068070623649203755671173126521351772777350271232901919761904095179173119748394617684262590171776266618228834459977604274422654590045526019093467942327542714696779744936988752598017049551267754010328622997464531094541181338759476354674398045893993459994459938798394048062033148457988702940891727209186570333195328049186508082341653402607908956865653834646431899071106969072247450840849563046505700545451686435474331273009975645004132179281323537914345610344642776874330190515990493929274975462152632077861876443267151122195402491443902647609065864938552845062766705574106899726464289056892081397059174809303732938878781304924588540325741374610587988233295448008970115608175717361198035774210268068128927162159462622032201392062380339875584710638923680083741584232445636345565213525415382675342852279630106860217349571286028026827426876899653969578429953271861725623865536505957180286674532707929753863558690059595325698622353728686629194355842447421208140921588822783292999795639035838068555917254688101911823764390378976149923456495367414528599352077186301143128352493141882782292320745383549172579242997261662505795607662855032226794464489800618170054877300485563092142417028118888674796097273423091942835159217493891151745791496075522303516151500761229041840929115399289168886725385473623001177812956165656163175625289002958982033871386231153788655539767450210379550530352239281567747663905695516241403508003034990276066831003679073464424655458745316004046498286698528446319149062827937521734809618593846095737269523293766875374091999652617210781591864094667352009538398051677299630129730428042440225616100581801721032363467936686215377108679515976831538231192685574234175904767946000453076735938033161546764004511752425661439042558609510370961103751097430460795590552788776349323978048255185605494180989041133655911227573968629456429117439956322564166325946551980589124764898905177973333970345234376682851372240299575831618147948459085308749280529598360939097868926644964360318871562805451277599985224570245338678521063905220345713796123024072271268694150763521989234177473667166014406004658994736453667765460960923827761964833205688877998344169933445700454250421396241715415158028403452747717133494039122655382586762938692335637389013113764053106735756876885247354121445811555681708325034835050428478807226814219335880184431210443436675192752619583477819122232674478956578873527816763238917433620253801390941318201507842719959419993511858905562264216618132198237629624904476145863834780309764572015795490406372463747007521211947700068391452447511650620363673149059237307169632171584171068085585098727683013858723329614491521234942755169645875336555253267600457281972837743356817044332351325981398077226145639223345251055833259433327934971961879275296133584362865989759765923193670719195702009767486069438354625062299030319625436691959673062583516730110102005316241966796194610884084150988469573590383015259040771230819225671564516278708420346010664933532026142863865823422508897078745238093661426705388721260543022111881787577697883990006299460578262931271360157023412994302423668700750276556584680479937621501092398872262421876699729150673653399286990230526718808589824016671448897798073233128978899588444125123116849980767025621632414729307794287989224505109319275808865665102116339269771231952800643134703329186679986569671486667065730944115125890284715689816414867886013004595096543043553001975039955114372572453781461802364153411417892126893884006605431642105100776279302754482835455340918472739693710204008977720902537896994590616722944192478363064068825252892817167534600048721590228952750275899098362542271898856223912231147469091949283250995130267890230140902982909724570300677801935034618056674655809976854539118963466726384205558146057895336812669207619181467244489664082554535015691109935852817984082260532728258526654983580473636778761479306360807484901663825976688290169420071731246980525963924980135256042406304887706159578203622761645839886620284077644021257057292105610876404905980012864337524216976128646152294676999111021184923395425674451538896284841370016078435446918736666627429650386999942170964363155966527257097348864246287449381174246957627286939138252845486870373979643762475900907168283512444943671142238082175944055399567242479942043854640211609042340260085235725705315646289605986851452991945109136461535822424131315470614780114433956225226252468449835155182454449029231697515359982783265721930726875504373203897675364560947764793539741595921602834024912248771748985694256400892310257537053427994533461597273906985139709402415043331636752370563539527594270045373117571917408931850537529086014429681868690055346766411183246342132071130606144572369309566508090505754469850399670917149064168194751198405670259138148619078255772273591593780136638742589490500016814048513404989788351388323597584387373081746139256624659482227002384984221561838040745701403344328405767744432188286381786179324355151541934980031238824179755688007354309802519933696270773564759344158448594863019512445120789910212494638403330335287869324552775025692752245326145456779537421202064195108347089292425833407993753635835188196482435524194055950502904201004581716577507094550892161084290937937357602379852646368507455247889272681799636377901352784047259098682154047750176244140107120732204430266411879320301757389367902630534985557686852716731417797440179275428192555222887979139471858194800568843983315643944655859060860092756726776934788126032793797511125130210676900653659161481639291277085572202076571348965529951145355670087427806272069743658993740306317260711198213851352279655023348517372796754320995220500942869903001113579761758940780654479510468230290019821501465468582809547699685594849558089421765891691519755236300629042958610428002363968114038483772370246524007910726925759266602766381056067738896628707864651816375229080407615432967299943156825826113913328503961423846152133605571710918164583445713409612734372283169288189558574874990303509643143057145412478837557511198206578221987947108204337044663670304853341571800976888064783856866523572162031236558504399457355330097579012501506648792182086129190731372614578997150834162210451792734252555780990649785051511740246613634151253519148788036112662682427889917781465292654423709276380133904383756157659330630982977097274688983627832801062965850664839749340506858477326868800264324861658514257052693985164750242996631701213767903740021629193778212240211370108418672924140794169355637712869469382914509236805489107113603578309790248271068501188349445729542587502589887772381320327301256342342498227238748811823822148653560264441967666030605591462057712090818632301428238520346960836457338863203041061219035022746493409430377690363924429958628389632974106659959280278877014859421924166871059463428212383246084119047808574217696514271014683678285695996761014829149912144862306991798620280319302173443736728224993415920486459203021829516779051264258120839677084180252669715544020626397835487916071764107145375501143752141568538620670446115834395100907734843916997519671050267295710503615364805641058316896704821896200700277099315138136780605905281322195463765557323760900529400713561714339508034553461753838807008339974587481066775930435653123305667708716795410126235300314590350219885158848715088263645554855909887018419695452560369589290425760262123287225230903357551860817750804843610264734553610753288110134215229255014303649382546670866780893466641636667210947328222137524035913432449979426946086919415689695234314675883018221472655604149003850956060496851682192232544820905239198933014499772046437636045395158518983529538281157016137673242674234585765858769039321046980459273509822571848362595028991101450431218454064720310571349183990356355440786887337528854073543675448073097902967280115984228304558943680241310805228926658188325026880633398393724888757317225689494851860134907213170036977366744228162505484890790621601346974015228450804987521530507928625286377802524569708216689044699858353817175916038139053504093864263966175184381456495334691695689679401761367452502285759681866572500363668990048427565353480451044378065277405790901423654862961378294647145765366161109737407582300467276562095631364272120743883044193961193145185047368126901255209852614764012371127510984887397417233858451332211426456396234520630207204092325105189956407113913374397130785115729710728288571206122621567963149360054350337051600616720490617695662143556879468870267188145676980816119877043153239601649918222715205191345558231275952725368951970358374831204516339601227340661453389694030983109548431870320989563700659922484846482617492003204586201733943094164263387179834086502712687960822870102160910525493413465550674053931319036714441260694465085270334553058243484810647785167982233044376580772445747901926339847332656400327287698175756917871453033852771859392831493781118786759439890433798631974152635903353694271518825078829678641318460593254886174158323298315188998041193175229895189962805915068750211926078860539823914803242057679650657347924840203649760502864837053903542363577290132984234258487491103649807045380366462437425618832776271661038820822393202524691306389273023271514130042144917841851973130309558716420734297064283208700167148710214791329613138650748389534875611921229209370349377897301090367044554698151158432508686885128172276974441960089124993552479380965921355498833192622485599555052991794960245884406542439486149220994151388952354500589184044355317686032540766135459995538406071486880124047639935970180047611978289989344549942694169714321237607599165935979189002739487745623262479529282657635655187316811282208104809891913541150725695522431166864912915634996321795002403066755933161778366927579666276986556578862298608337624999914818069346919598860493342714537383644136976220274203640238039782155483407485394510570236843708204599026792551352939154085446085635307186714294886535115450970817146490227095975175514089456629138946272608415497995463016140740070843880480056568355196271718435101885659517022110268604459597649198450035102984626634142771339899186117706783058590858499045033143779576272080143927634704473399017249862453716572016976936349022176569669354575289891089253174771091467908993826137845277178316458400748905998558474656404698707371957293760369188548702358316507281216432246376732192866420806363786117192204670566610843735353901167988164256181006993007809386057937160513418329199642294784111809793905136923957920991876094536882483214156355652902809789094429651851034566766319255583850976123555226634577342877563216014655658400728747489773623858339610038703613278384679858690517697892901575873431118490646296376761572987985995899879999639071254849626376629283075120371501232840245945568092850022035791149308629733136641571653506466099533314951597542287601829213769119601979456003424582953389353052306185267805424190923765350111472438930743558247259240152857105838095220867173309170466583459665954452382476951899003004493417504572564714404766644123208307530701040411831852800177792083781140483658162719830449878951995677622710447880923727478768520850675941911476212338118397807540156017812618055575657175357791109911736811632393931548458269896933194644588316019789552149849755554301003392122915910195942921490302166484024718435828698284968044451483853298760981642735825679917514282255309709019809419068378026136467850028495731541468556952434853613851626267813791457443536752045117546848245545664754851423244434099089224796056784474438275971245050493211425420101618117422013458700381531305668194157574715432176744411622523611390125395786804675960431954826167850205375609325196896514946899047364955135837216675169453536399158673210210859876245505922639798707198675540054883047727358420232016406713389720241885017419367359778649480227326054837607675112288600492088873574340132760315263145080152295108197215661322315350134847738713341073195736683070172411793761187844266201547558481163129182689483390914934679882916644605214600180274696028210714774563578543448693638095345360355150219569893019944273117079281399330148238227212020872133531668484071248142327642644151791617972401256027377867722480650569460642403888782395790263596830033500784405445612083154472486841793655846153265388173812948453680839620198895983461478456393089378554132587172542547738651242346949553769423031419183717320653279606196609646898598903438395316711121611932710294426703567905380345925499426172166004916161851736146184123213421252122148677884039578359376279850621156800871395297321009495284511888048200950202717852217880079747170342669562416733735590267043116674797047373047122354961455458862212311902405001077524695512006303875637797515196486503519398021683469289758868342354720073657235275126072583393344462785592275769853084586865508034180094106857356206644652714086158611663495931702972776450236349606589488563865957347890368465495105571042424946905102286422616470563953898101865791861304092585701278715586233270457715845940669009602687873630075169366841766331616541271230538756280476736398348135661937061190197162870769290808474969992737431707184811440280276083243085535024776881585129391918050072086848855709995609285740120347938805548079113470077005518273023852507597437502487357889699250627261687021008919814433737167554603471393205260024371742112716337533271571842271516106543298049590606967559135426505790983550896699074199515989166398247111343153515732955696044936380446113344861892533708026305650617053328991716447096737977471082543666939152601922015577306409829448586558764166130684834625921359097023444576540247572972213821734518374161597536864388318876418490389472956517417953355358867163877208010068893488156594367770905324346123824818615914540715120835783032454582330613704656803121450665990506281456575659356629855175669886687362064681796964819907030906688014971084118578379542650231884071864440219830311226572873768668953211349301842464302255827821825446754375295015752746956618789191044881538617734060395644208965243176207513108579620794565642927922585206230441235908092956801548323436114781617842516224050992634016902760715025148604842189371874523421227412833443045084628786222536911722509152306995069627496790832832835832698333191654037465851253607959307279953433649350624998717926546981057463497790961204920664838661591323115821668049285401186346426132821311324078709296833617915507651168478907570432358774236744330410933161812143237958766977106345015409938022965278519319605529833142342447905536894837830546598952720317884763050067954283618551958385412854307001342052800604566182588322602097656355509516138411854027244296067376597194636534097673896537337734736527938440800827368868170884590312639694701519829049285509147715504265993450490206974515602617193749441914345313520562178414587143884992251847454699088173089614091556767001641456670480525179221911466130853757151465835244285432049231482889430682410997612180192360518384961001039478637943565016660678916238628665674706865963859629525326300986121532624365416250195594264608328636156377081724466945177163820380300671147537743889489526018593097534162366231388177270596460033554464614028372272283162448763105130259793979122448445897354778233118432960435766838210999063694185459509649419147501475939398025932569472118937871128378124332990854992339862149393585082170667538278540930122424756034549448825033605729380318507183602040701865873094186661621321709810581276648405921112735001329081778640267651638065023842739699987536931337757052823473458331324335872606986090488401210060279730018053614429712745565359323216406963222709031251132881399463171178493510185135161030020168685618696253444830480146846037581823430217256347418650732634150925839259235370907275069453758300725318684500406294029546568608998785846596894289075573313748753678523634731509274397812445938010154067688479665636133230318281109020437378984555987855809616463830631336166125812055895450180599638639994165104875420635786518939220599015262969442968110518365225760625985407997948279728892010389050880548251858145155952067588894644085519090204633521034975608910116912843233094881396785410539510336604238333722960339651833422973963797111106205717860838968990401042559773949168909992729447222415783256249460630220511819337630016376227931108127220213627523146774414685562000509863005592813420584484367284170538199101416006571173809173759811935759127669595959983260132383268753178459330489201095470361866395221471414266599719603930391402732004034860509844781227482959241864869682698560453783220074554447859904242833901395557078739388866898618442580120058032877962584864555485368464242173524487754733530974251615840612329117106186002937868170527613703098215297533469634706793854957208890963308299441879828653842551780499849724468864645906779093959298031208293070944467795323589428656052630788635049188673075387222617942296757193880373301722241225553311404499197236708246346838310317373332473019894432864297225304585257322008570128075364738667444429814625852835028787805889295472732398257936010984430272285308177179354640798937405369860781385858017049929839210189582797568166702947691716815780933431788971140490577385854933524133590022865817652625125809341249401975721257841190780713273546076175765048389861015173681384191629396601083228224034706975018122525541073819453539789299863116917005558885451423765348928621026898375930234511904158416610578151861938773777075003592114482787766995710233156288882841810683641342829832344165943456099353211579198808648745959227141389364645317909034634905284511962085953714551958484448831338315868481718332604042267821562582902801520497432167251006411001341928106825996467167475403720801876298985829256338504686530366023152034719903310928994981390876845201962257698721053410353321642164860226301543552602898823486752886200566120497554189532012124437427956586480431530796929397816204801408302160368749410043958093675454708815563538149523943273288560382587015669444231867894474465587772936770398489232298380300457398808205931086594914130591265196591447987880879186984975811640071640267434162103352415700129827383840784712699831121779767267927731795451773690557124767656488006808527069382127489609504279748093730738366516624826130551794935262695880475862039523836852082349748055976585543888407993221401503483688452575967316977352851088720242765798500216303068283346769930858511595339266234787756219687623223788054506808550496604475219100860966676671113905096562065867228269103004494963312612569636432722498099589920204436585008332917088134546688730908319341770020053592026871849312052752892970766110628629161357404095762741785817100248623752194388854040332453469193399948714307831380847508492768777488336952414224313674822240369584076983846573151618231858936761813451883590149487531971801904474841976139958354589204019828755399244180616811093336341345427812351700315851296556584400913508250099378207435744421311267476839202301447174256606883961103774445338572170130523745237287612095580527764778073846586232893295243311161033658989794452520934622761811288728684967971995473043069057944724478968302742112493288698085594972149000341107177143618980152330911057284728971728501308895583654994454987584562515555705637650178997277357419681462798375748765229445272553993316931448023303433309101225763047211082542496408509916015775899851736563736868212692776565591205134885695760721292548671793906030709524521955533355971720786568449962710879137768219946348164914281625804322169622580132399687813532265516813463499823179225542857567866033029180473644240773260705158486953951186077583797078874582763328328683413778224085893383841337621953553378304366002097335971083483192677161155005918197594850474929811825008667456884955245522653529926454154552547425544234129496807587167482459450501554499529955713712487726331030222308188406248968473798573257311953493763102466192359161799573576572316884638503922092701055149705030940955223653605148327004997227469553270560952537598133763773370007310628650571831271818302799746091351352414242663677961884621577798268307585736044415748375688588911006944569328710615671423444730628884047935310459703258391131816755010199483456132420943352530955325457954410029097478017392031786276873765111971843206745077729197111324140428944874013015128913240511672792613451433214846545093761897546268214134518408791545679961565305187750751314747012329888554598617021788454085256413385676794983192583933887920527900192671907669886837225095682257997409314443125701092714872243298106674221403358546740483246745897375292698132534537549083875332333718999006926955115989495024366868772040698033371297804462598626922790336025542490326769037058679925971054142795398052385810397522621201587970809508626222430327344680471538882203534465009687449707280306747116410283303890951552725606576800303626408775885443088526766459081302505077406934287307882159614904954977061520048950520025568094106679244576138322929415748098555311708828351442923286714490206639028269149857201860074653132212651662624370678446906072126048478500723351699384017135253126284708573378212212344330541721439440906899649948106366051395607556393087548065064291362394246161014202188336650655137943025648853445166615159056921302608557842524170498432913510875059581353962665936619581457351804208991175117680585573969606766241469809937206310334691061385041970635219524768854563775244067713213351545404670965279108465234873791957802684437565371148327266590689765409256127946040627250670449092997493672144290551707908191720156525676634492536094708582221377352853186230915639767599075590283499013110440959023824171550023356678506991628328619446705462726349249891215767265323540047861085474634516690092962251861053162043067885170804477752869319428740104028407541990642423595999363804702210473553103295511713498391119017708427894023033006783893775805319747684034270559023597657307597242614732995884112450917959700831544887229503063614104858682134959771860559715081003083212224077205841676555597218266619969675401565190043229016866222400762439111198543479279101918010794858769172723915652989017935245271691924782320057597548635120259101063372456616163732484566013321473137314710879575970311100069952835711852275140909314692959083332327711850118533750331017418597912473103501811382429648782746738874747704144667017123445401152811111396515757115127044100731604897989786727868355833433608558332458185131550436659812241033666653254572612122384376042703160580979205091974354883736823180008547691720412899377739625418693983489018154901616366066249054759828340338790453304992619213527968592587174687455388562827275900968271398031661244538310764305327581381928611015281683280416785162301958738948133924569163442103227273690359077767614556764093639552674147201317529304509638708738214521719300913448220607433026705999213424180245325362097050288401387537104813848649672607076167262393569764391631338525298976794681414069377040006264847540492230351489396627396026600573237132744940572099291743172552530332533273164997308359682051913848162707041182584892645660447917818613717739532695214460867836387466091421059739683710420900147783154283535372533876896989937810204633221546849131157116115821599309931882134949635311913549013433226195236059252043973186322656286354781227883672006728598607878390502973145155681800520330709425338306308533191619981774631283679313549211572519167855108035170079083325560707546311191690858085093413043470515079074588988978472205944087683638733650638736416848331495547116194148901116304550007301153230933001463485993469758438445219627345704364317328397805350709850104686015490028054151937045685423809341349363271475186438876001590255722758718835258173153223641324554804136302140877172075392283113920708915901954077492288688740126133122421209299272557730922017918970605034399918351223251103258152188511708474061640686011576593058111465401199111681351222542910960824971786368591897721401037598679256049309415737352568552287917968036116196144741118007685790196783294186034654000991217928839487225420404147163007077438378307694670446395086359519215544869564594660053298762781243159648114539476763095391244008142763708920786437143503950709876790046995709203513444200181159792821401036942944576903842951047417640514778555678923197943711679352395394223402278580079994335152393673037238738012583404327378487223708868205333861887332903975592349152746150266656957077857985724791664191209874738058641752968742667379135741070659123606570417146280613445112545951244704712258603432560458984008329290834204379692603100841962874203826048655680461252355603374703957030330019983259841957818721566985967587355168560769273163567935421190075400540646030124929987195943647999434816331770625499945280020657325806935258122087502597966275948023714548331024386126883434464279922346844572630596872534597291886751641546705677085289229263432208054775090662254114858810625401805530256778489035926561509141209377951583561032552663010346320626854620477036731734203304424673296548907688075591081806232811944343812323949306931467403365739841167230551341347077791937065641744404431334942869123750901761248138163681313894918406953310273605348726772829451215936658557570207834681926912369856507916243099985569935904847136721257168515689114787414322000567886776941116108116884824997455352474335717482713384641869491421864271372086688596616775737726270974346551154241196046932376211669647977875019731918244169062790735435800536682894688559019062610841374099536269761837094835454300997414283612750959416193900790968412696404841455188481258816856638186301146779107524867080595323656644213236739733922726120850825507831534160321379849768079185393406083265185807460877501469080546669993853688982657595052676219054273127361012421511869812437255655980171499095370008372796993685799393456252387331173064298756083388438625804573857976591991749391327380686486677437857100198212326189645633329690744084570111604092084554748463116469077832002734187812909972575526217074723979699946248860003383317548458778676120730299307982154554315028637155251712525359389085407193156555822915828220362322239242033394882553047551332814429802381312097952144155089886087837097876895262527710547816834791979999181978699433292699505712862514884900312294114598401851501923085691343914894851426833826903812010409188224141434229313869666214186404086751122891320317119830880865228838699857297495110186365972376245593108042108662937441060323179223425053032672281720405529584252722138759710579036250038150566903801749252401929588889576043527337066322026544434571974796411405604329395333456521329069217788167257715802990256554718018854586341699057689795422688219977224376013742267201610057900149622275434491668136868848787888324201852794281250883204113097514222270358238199613783556901219052061313263131344473523857953210131882694478924088366494569436951751867206057332559763775788627228389573939569608742267947739949850818747893601139719426226026819193258228886118895559999375846983825945194683960599917118314103123136316465450540543334193654178297713001984947838426045756983931683498963591492649682277936869586438247191712246181202615802317779500750139508804614060767482127883314107798395712036800902087614907185232248702226753730907895302544202742737879502831328247355817705831701569027571382479974100394004126490584054503762108296508463256065505911258137597057876215375027362308316574078884891737889540979529043676072722948887969043392296223703257147226773723472104294056515134704973265701173084121212787223722712706099762208886546586256708215466281792270308964314210005243435509799758625328676540380548478987624846516037592179070209468285687511827152544401129621381400926560379350751511711678211129016763732990314634055243901404031043758149685224199689196573944548962631658602903455335549453489238036949649915690579372447215316398539322479797059335490178109323037366499933858443998372940494294058239325720569140644541576175949108244193139314283089387724660072545340566986143570970021661566130709316901399374346230902306927949708434195813691612357502759333345098886885322623433835017202591506291706035294114774294756243668930654743591903926958777743001622305637269582665612874656364276388490145679272295695915229045992869961636617362313491984012150648206428324171126981541546490307090375745412225609061575788219032629629281776964175865776631428600463608708937082277701751950481837976698565592669902701497924789364251453002626378131019655907321851146609239033382441267491905796204117298129623851577471777565604029441312207193670761756930148189836755026729514763795883927467337207679939514893929918456418950251191857066863699672682905444889105909501226581560021850089947531672055064665600675708605108700239727313874873553341288980221716149332998394138745574545453533700416392393173113846145068960730618187965756456787002687261617614279462203841361391013264490987797711531230588802376228411544164259608293869915308593520127251652959027069930927378763058987455441305035090110694125559959692584273874722120435578458469369893087151479099456265659297166334867044268318543869466468259313329659105455420864468173993091151855327525063787432450336004685865383768869203685633907254690213214759824759545281119712240570527612387593290900201096838008903375629755299992227674769385514213671238544882689757419479337272761590043475999123973056364679053663295612956596828473919826590589776104603138988598488105322644464075193444956500001678425513720931625502936555111732474470524599031147182811611098318238039460677353175520929799773315149644883402369120195456226547954100638696073077835715831068479636562798572883468400541809372086523181827165331591062655928163165752302905119393733088265437881390059194243299661959713263221674307081763369199404595900994012638595461290935977118826934987173274193290054676676224105224541618000429303006138936715978665030776234798909282683779738742330160437036068585060585184689987434978069471468221270481329798330232388978196009485895350010576425280091686432666208417110184275209445559033498582011579066975713180751783452496637850071940884583453038357950518428134678472374813346067279524536860642710002212204101204680114123587322263926059111733999051959290118236650648177553630247339029502631152336402924985232576535728575761640041419699373454461616992103253851603422159003587293764915666546020472819357450839535260415867505809720782361945141484487521517363840392761954823848703754119525620516829147139087430566309385224459398929718387814287553079469398127580381568563779896915774690649173386435973755212674680096172268301606467993247886461129386387293177104223090357110866912972993986450788770972588366864073552678783009490048130805285954836599344492794205219019900133224274228718927578261874454061709734971756647623051513792228339179196270421719711652494284653838590609209808743689765169502201537366964670079942771638968998459551587264991797990279379416158700127126910574366392033283575909804981520293181938896994011352446753639920636474905330233355455154447732064588191676401250387498694053199075925703209073192877108862016018625148801348988254193975275441833800308700291130310140491584502407351099064723249659134033591875088384425636265965281532874049301120221375816812157756541213602079959680117520603302553172925050683417084515595500862518695929640286174590623715688786729210988519984900986484517921520968837309493879632742970328139681132580697850908471013193921008956865629955459843855975288832707885487293369208431285146032315793754795800737395284528184858539729953760462516162593577752126038970410378310509966247608809636126197679064754510664992376234065116745984381157506515554213531426022092681134415020081532294631729176890079465337856467159106570598690048297212204852286877441410180533553188734337073736514330876122515860095118096554047319883435804058809461866536754372279205554902268140281073312031348142684536589256727415844450885996535074542690980446335742470444333625137191951817081107942367578244717754946367243940070200689658223639254077740190303553390306690509950110471156264511237934832539416284860582654361948277949675354574266360961595219806330186599363366302994580647184915221525461269808519048369118158832368240917476715895250755320817124993121394558565081914210260027998306026769180901791879309549351560693217288271686358519142971899167018905456787976338209973136804556348196242718686563498482711685052089745848648337005410802952211403098537259301611794830077549348419840903918179536768284993365233536801697214814260726343763285048775821244488964124338584644951664569387974027856122025866531384696298372784061635348477462037674118545523592975985239190685646549672915280591563721823191081196547460796404614299567377937337287664686451587821888905349073301158706914306182668180187072166468028738524770903922989442962537259631536436815859268374446388557773698595560215854087954360841765573645948782285007861767079066912444072982426719529852022429867654130801430630554237171686245225435754449517993955051758197855635499093523715141609418597482850470947665739158294551834872965406672601335986079139186674938032901466802934152159544627703775536313302991976255854032046618334756231337095419308760587959431442824104414984804376453142801761019362460627467387167215032676261501865193222751037798021486794280821864605653444227516356318306575269787374514441177816000374394737350402063506785536123674177521474016243114708531397038997815047126657432821120947097062732203166049337602851199446995815073754783959052076417176805176792760737179562431152157102511061838342635977271213228086604806379111418125616325763493444242677917385921532921431063157074071132363590146129031334251808904051945403741862596664282944310496071439518954605569154966141847073008886362218762629443008377726671080139245525519233225417553471732104478112168374032085535472151539501433611398197431390255830451494660727343093032373223795515432815614582573796305680670120142309194632605468597571584873271009270865072706225344399148190773943152834362480772506169212105851591777446051646390604217810493822957507953842717717643019438195361644665579844524538412128104584469414269035768073657168009460276124506332105133581090947954005004325943503389842581644920847422269672919178055174300612233117785178954307050503943748472037760250444318726736964690314064032004579677429938529301523090828307743700487747913783594730452073220688276639128211612139853389458696302277883517095462922321311988098794317424897218937746865740002477352651510937661112372654819042522063112336259405656605809733512624155550535268040899417827167981597007546652732528274465312488620136877786634975063676568375221332658249252172182149617338564783179263674937107937068583397594284492575164487348615897358518678283044817782738693166622998925131762881568785162303063541892424531223717797218820096551021711883028319247367002293201777707979921289124633965920234403586337473964328813457251512693881040634905492927647281200002020200594912677410063263668884057343870772154431469322214004484215955882995120657222688829382209585496227650060680442657190658518782186107360983865440873546402313819659587987433265328226021224174027191285445638084960163088208648188228298648033218560229184809151821593626405352404535234835239985042138256671456629492366806609521464335126955652780292133646712044551402320895174238656048703202399675913451877277558909615828026198277131935071339663173355967454615782214714485958415633330171463717707869440081894712844287881568547579262154072306236753428370464666973169852483490853931619593449489280117483528315607785250640256345825967731536202258946891990159081168256178524631379333339112763834794583124121599743126732122214124046813756228945657291686180107547573902764633396044825841214611216144516077351299305838256782525507529262819187357972757987999393677981478832014490265158437339459766671225375453681563044503386316691494758437135406384591229386796319177578969415493500103258469132909898406907859871640955503044655362286004706716385765792393131501613310465063255739792812294463750903595345779551242149737365341903043553777306472406530722300345361433899545082078001115248122468355676861931515442928543627164454945830542121806934637935865071920886301593955452958806705272416146812274477761775145279552378574787381261386196136793543032447716010943430097154947286384685482474952390871095554147763009285865163590459635239727328110139052663581312122498541146614333239139383429251324482187962889386787265286209934324180147872667616531193876293943083136136772967137882934460988575543645292682866580877814780092015833869338196259915045252234794873424608881540523668000178938440277056032606539115259879940127625670827460751772067287898237433335047166366512010736681983515227742150683647778704493372948862828256065320953259119710286212399969566590137774286381301026148444991462360971870387603559896018166731109227030805724566259114365225772273273568076379568297896000566129020239119450136771507731789253694026228984789485233991946230531723409513367446223444185013820244253238270069658955130160332717466335359571936725335569324510743912418362950981022491152318775519579569539412015403750455330656787366103694994777124642471976696530385076719967644500065052047500364067851887778851014994550353414994970709631530264419526610263228477107725029107875744147449096892002653671392412277307353405910392950716809427425662684122608955640612920145328556083505349914334321426231016154231088457478461010079134827014596367587318410984429522581352957061254335073198189045271787825245202219937964123180275856217452171213279169361900390343503403715945270397390490477546542683968619710915734674488270215196047454020755863056830573283240043002573170983414465150135879473376480691834668977064779366784789975525487568796126684564580294588439925275019654618630132419470781222001427368903762893332749032208670399361143871946859651906564368488051406173266564767745318544066204530579738864439233617005900534260898096965420488444254359344858192162473305768666210704842214173612938565328574113096180752303713187720398832226264193098657978401028025341787941124843653001017312400263815592360499154753585492717995465905305243606018465326789656987950787250064531950602192220144713908884245773435719254356385532664176287579683853603610165198933253061903231346106535245321676304410576072149208816692951299896817406043080751105625315629046887345576075813460348887096986877266684682673050952563475007700796513289024626984350983625404018043968688614544756992192043880843339059525187255862818950413862912444952537664563836052110231575567273114323565122670483611772872187003754901880805799754928775607439036689346348023940357058558142643265871527063055733131578839784988978652019358612044505111053936334286947052917104922174928945458363852800898396385084086249448739560094016793046724244065883986760030326191946484977161204257929025183427587111653515390023814818285944897707513403332880163507175313262566052095535693998262327075005009688205783404902942133565356244996793461283620080529079107269439152256188176893556535440738981785951907025319364599434521064410441897051585201203934415693149599648784924603509688476018860877634324653651372966560941187140289673354594303347063642390885800710639113518280455621214439871318660914054765024595856511382415685803339210977210142551284775367038937375195675972405857349603391769217784887647304731225227588258026492257716903983950663685364855584166304544900273649838087376735587251178620627391607812301093072915232536812390077648737429670144375735040205989062550002051129731883807476648942068856097339249804074421581428284988501835195488151259559542259242271407820678967433139456288090845161719719677320540868588274403076092849450269000079862431235425067632742273806190740716993576225651604114206435935033013056102216847915263186347662598792085085029247524549043775190307088179600817250670363677578395792988000325966715887544703388975585443520244827952559563149077615844356550457664139639571607871741410155718106223447912795114418208455815286529720168933206978854550124849946203709610115273765088649044722226845422823555021931103053765033900938410784311918927351371863281156339527976388238039237997257512296842867883317857355425358370093640893030999390857633930543558489439048002079282068137900729990422165246790295124001937243109288412225860114628629216920299388663639755703468712069194478921669507187887793879150143564901188971920081667951128544712609515869001422382980758577110530533207913253960724135493327832734721278083757535086821497547053548265819187447104600275145538202217781152689088372708223143028504471948749025768966956103318122765469431672636888026755586536443226264851103621045962309795122802888975516081959560821316218404002689631307753740861607568931851504221773126937496476204727067216458909186666415615349608845467855268233601247879546703890665572258673038693911877136232044859044428404264701400648664701215582557089737385484190637088327910947811583371361353254470189210559080422821088335270477993401039984678179123313398363198218188179641129634543678095419441853265856610018751926321753602465867263066201660287768542738320254344069309056940856776250211530582913450633915273264418885370243439177277582675767388756279585826361361978371903299528752556227108166400078768893323110506205175612438407042259982307245051386562624976739990259170984414439656362304411457281591353992036520575410602344004136936231028393600090873466073462704130313171337846386408303505215190245981157900459510122638944024513291771025324256622344228018384569764717970208411469158711058596637634502546282206612430309130656916726199938252936665460870088365912767200867728254956338524317205608714167108411292208725583706159790581713251652844274701816078212802639792801778743799584888549076457874054366945434104804367942002702726800346759157651384076918098523599364414064612152772061014158195226011084131294980738348663162670115704658784551512499828357154603712110717436506841824739556956145641112711822259923346713364577950055369859560461823532159099712962831330358640088558418587732469429382556563489137266706469241454626740530228643822697737476517442228231252726600188976794233284797381162477682843583235681784393146369681414053124586359795596671598946428683577851187328663169111310405108560065811904056192579168873742194855430220643741088180850387103631009986965297493087417591018650586192737604171163218732066384486605362233140389312745054838678425207262217154250391481841707322109900521076029839567132218557886612118156767021627533959030707540425675213823622938738104322189353240977133774820419438170874566185767987970336668574471660352608509889214792496989310383147452708764462781478034755197193998114846901025770182446537828331874239974371201045093198154545382871078085083490014611810557718827003236455732434619638909346239929057320657387818380492783582584509900788055293619620049431460957499361205297258382227676509101025480845354580367785226927969983859542374901646345169535673922190383648292290965138947916190634753755549784875618236563936368439601913060265800596847061620640605512398604470332875267344859858889294090114059487795273821989633573352005705866472271459731760792368203130483550335942367734771586961061030843166953611139662884736855413206698804302021549676814224677884690483699448595198379773217564404536291780616664165308548643767143817870903724453252534889792544416000308844719196456729103170068458035598380281404086475818005006414423547869953718273405038300996801123397587611878577405001927683065736015697583328224403850188162082361829331422187764807470455672499795825571153171171050343500313073338404073545689818817833433958285994359641727204645413961200535318777928142466966231767416489402941610807218209023686090081825583248885258020634740020769789908216271980929781539950950287680966196694030922158980093905825048373330795196515313050083901261001243433030755832319562630936961956724792944423601949540403343064067807708111837089544780284782250042809406256859956367963719310167620022542067680537841399113968085537753908653435068145711504128314467699016485083891913039503868127644859615621655985884645988479637901274347800623300329780463220983681479777255004040604394639768207899420378576525740885246207417528659257563781534626742338684461289150592824488964077066113235960163168801581382904391380645576618661704720257917325645797781074232220669255396983281159424850197212113611569937954967709092622474951332674138185326607108681073681400276008153045843128194914764009955814962926371017147752593365527441560208413645492112703697696098795211578442723721092519241676907992413695140979759191733886412175751507624452910074382562201146893174139205158790175840463062494842708209719093968166720652956203241912344445632132024744654683588069894897676165680745140103424858411257228406141936446434839348005614143808326669849896984801886985659020641687412984928172504255297111909695517440238953630731571215093140286092693018879580214152031053543564392890976317032668030326641577234598972095486857473408723285554699605023594910326033155829665761888229232694078324205848382650240163880337308013404613212565097379528090155822751703517610409293112934867843616865039519494686964391217973117537062313004633030062849170646267995874985768031310584508276823219125888638765467775752643963870776251799007956801592808587809414445405540386476829713304638038300877180599716622712888665776025247877051263755087492884339879810238197840526675013690582465400575927115083747031105420432745287733633253041493960634929732389826754475306117020275878826117536992113992020052674073107689663852131079651875939070543715555254637858342671878496987154228962315736278910787557942073381140529328456298926118097090878260260151558990288708362256418286305026873239553363103184346069416722734738556527088861845626528961133866775492494696941867009735034298298165686563708350384566033892354502331237746647329499913337399012500673152235960363244932955959934309900530873263566374386535528745584996824418512693881866676568055604621100629862980318018829804474405264985956419160315150212548092756507901739296430546673012691670737902431120373133323122964063477943285981000723691443222756260397011986481462062432988057787058818727335645334742685499961498501176863757513467673924292018193045873901132760312626427231661116626460169445002569680468834263254799352726850534075848521955679663262005647421152121546206494268016969074833672093343483251355249582800959231445054804523573452683588804033982464902751566546733698899585535678119537360679697272053374021705176475798061202648021211290137119553036304278779814609467321167706732912626674435212875263920712500258573470673944102546885082418059833105487850678786133348954916371182566236096563387028831498787062107385724158197019509331783413760969515512079937918123095995940298852266734146126441539937330818266795849447952965818777457794098136032864381960173864009537401755420474023475343572988224448742957846782482252880405339427766045392727708998667334579795203384855187761971579447875142705020889634383200647981560763235953769686187522530883456216272210558543796267602281373440542694974815741883471260666934758374433412395569009782807367491046719985430520541873575245436586402534443401844469061053180050229700364793087468800751955347866352238575227118310749706738979122918526711016351236872253008450622181325241602149756978014696957054472196076478240161197314362061261118770482413094731825527135716269851869372080635186668983898571423996096284899162660110220684748464970190576069913457174248137115748410268915911418195782479568916049911753955823956881012508094422575954422937094050875264330137487974773122499417402830204782606018231873694456250967784642357995810572126316249434094466003637819464002577848299091234350365359301166495874690287649580164206597671256605582483903454101994979843202472680160645664043691358027211170483692359640455671554519414308367891965042968756660215817904603013359498084641963823805455364850438019379830238950618594319584103196632336969100245867452118284566226256225548367196950758618156367186932821774312318825190416079458755150259103678419203007565533541380398253394862096596068789148471516668151987679456198078510131480100497896237028975420868641263010936681388668251279025714080338226176488444022355102177870743121766875887328199173114779202739022400383658809037470845890785601513749756043113082834830227418032728401184790371704972835979395767620673696506802370509435556363123132548454821419172042051999627434781825191675934311599174323512738983869912343517429014157277948135388026927225536995709362807344810481524612017931865897472792489482524538765493413245024431852391333428661990966064034967029740450260555981670338031317510530127734269164397117233792529140759115574577489420652525106864779165778154009284095435127183138858402052136611475621384445344833576713065808514269114603768695231788365787785033856154245591742760919831957807257270252649910165537998443624289321138576904130706804635559583815632186712586403859446750294157594546771817227382464254175542956357714920583753610296044053606389091778333538011574108970995783989006482940136306468756598679764657691699851877657460875911280815730316918418606878031616297316229755398811442215179245578871163957617937231761250153341780782146383830719173349580613075902243412018576124804087070214180019846539659345868627059407147675927249244392316998124271983965071563654131803043963766382759402013777503513208366890891610298604141356001626903062969197857499322384816242212694865794379110767450514375238637960419654274187538793470718678125897507428918760700154309376193497236806159922371080567356101211833778324121704163993283668718687493293189851972169772854705073930944887382792666631712043187499740795736863175836594240119968159246552366525042676412047958229023197918485147180955421241577927756303007676085450054025998226672358677803614332485029950362514516788291649506760249235085687853175358341331037201405635681306485648299856939232266866475009945060255707570560193034354623614735646860065823672492958896019839713338989251285910618462745425631540206530965145364930188144495657809967481781933859478855548181414551681448563703896739591865101325145658996995064674444845438470079024402188464751300861556919726599800883264892124296490362012473127462645579272899311639868338394576522027693193243765140676987092683710168711102980469587350287842754258186096027290445190144263497022944290207770672882698548746364409852205258095095141593507488066034521387427434680710331213715351868210034759743686035568455815875073625527747260686551730468043293486767843826375029585332570844502077239596989072406329503090502257323187623882698785748126265451083862831902254820046262267747587376039354674756753257633228220347741652954564675192100232907427391100924693795789788053550124089938098669229282733106847793474659269151691527223207491110126402469335453222091975329514400818278871686860611826082751794464338594160769228768985157799483797530220972604001538242259631858040473563650938553046632528734684361215074792216609810221726210524756153933475564925107650527852960408916523037493792972793625255525629474047917112355389730682430107819352574968627118843577245849514682539678297729060865529928073708722647894865064478737540765558772282888053340215826179454356095394380696555458553995081934250383230517705233617770852217432225135258955690845080473999302364271802217762129153266480943019362761372760874322563226601106942664615185878375336103789683487165765104073406564945749023846910037770978919198050136152110366017129320557340271139221858620702723191178538079145065408548157474507966031393945344441410173598057995575589604355026575907570205539838051858851457849738089890998226998262065694054504123930721375148527359679908341451314375178641064226280479534623296665817600509369043694526945935196918169708841862448023456323849481131955952387626974247608671628873103226448635752937828894472989122405001142728271947866428003953716898165566958014098970727574904616579805537301333426604215881365025687984748971034132632160268391408246059220441577195661564863933877328913684149545076452095227454306757205101219415796297785526266546966264293133964006182256194290750949906836171641708510502287804240165385846538429032489252268152570311108210890900869491589582897258226519851179446015148054441305051102090280065260550998550123550002821947185109130074718050652665115900777537418266649618712975753389108957699143803055575316754373703124715743689214578327853631147701160538534083245760241566741846668511904928097616405837730684577386861912852242859792201943079779906115106137544374219132964379714440919319580183407288183976492930084183771092458376847387834710323025557166334015516091687766269465268526491837345695142223509371410353666298280562828800305513691743491953299096122939967710587172441522162495377761585346463353761596514545557071236136954706689791850642901704877397083232377381949901887059244951955851278038229917389206068791525627834518690977601009425461367472532750740048811396739906693759224625246724439777893914474414682162542404599259576612630803613174238683003511690801372768126380975795696852640085622575784053372799757196082257781250354167265772497994307988696981835634714474562541824238042427211559074911721616361805763069073118936200482214116031204275807683383892363953067373453293043935910724017751830146635523774196810986365528067163574830095182867123688781494466462922720578783726121717251411006098981935437553275653166155073350349306912332294309467895667938363143798285867811127712724157207798356279880222835899382321265120918197740479138625243319300514098517084629762058630460254771803997383847174659752698042533380589617493487900384059119953374334507796301574903437931605405702842093504518896738941924716831948135509967458362530729472649863348293988207767336668009412220640951985427895055177404436134626061461813098589643438619170535064602625912568539782850085620083506030821140371726260480412999511856254734408054733631855863703982764418074083077447977131796899799313158389185171626697431125253540372389775026225013453281584560457688773848190238243263556086378715134620196308265025718333954032951198821390869573334116261247134477908500515743477295977288949641584469448113255810259882072586040183022837844895530255715259550060038725816042548538062055886118400712183149213973300516114519698866123724203583284287587007217953777873080910199368368645767789751209993130049523487820957159205519299734417241541210770827316770211979797627388261068141816756065929301460310892330276358348488482025096621413583781518392836336259888766052418669305671045888716400760466821043098926120816128340693170287331796190477816854248144491334144011342775636784878917493361068473908712830329363425176545182325703209860689726886797786586056510958078999262919994760978789904885537256468941022012441067481051577342799409467990428878899354271279105109615417976338087777707931476862850986434859918586239363470464466307235565119251788166605987698982945653115945607971439867755686399488762951833502406612632119861423310054050831996704808963188927753175267740009751060248422867329845513727298698328995270925024693241957808521263117734310233902472936370423981948268735720738433055794916715264076034401750962364300848243156670623773915028258467428224656641749166864343750041713045851107532095051092839525208579145357295244830768883740163589232190459504486369113630922321952203909018495089198351830225255043153008832062815657895391752974645736937753701545377800877289550541612286728373060542141616248890450020117940490389329469917091653820283077858739577564642833727971770654516074524643819824790315953148563617757564034084344284728476526317633347904063923634127906077493400868901272156178460795335166637396994501235391789374595583669436673491905151938981441982845185100915426947137301456661941375197488854425411413508812035850997626018302888595474367748997623643589701960564554552723518786851589196228435521394131817170057415083675721638692006440635342704108264107791840438639385167318327730008006156613444243218312549947344819898921572250122947499221639550390036388197796526882917613939618774570506884209962586180066390141868292337323617976028947622498272841208356496299985227405395034216033032406481820435679138749041449445179907284471136545310581373952124118570367847666518281349479261960467118353850822391005155842943301970131653578006361416461026231638880003151823683128490401227272061417577185308627122309650653619462971541295588773577697293479899628099390584902412979356904448290235042907225872229238640698244010586182317600139443288649492631781897943123581876643243639170787484835420674355106120656458227613619261820901475781110711569482550257009404386623693401027444480546875514239092813066530423169206373910352561560361493756437477312167112059355703134011384287640081071224320529191479361781789473278111345693462683572721801125234826504227782176975707858018233397769595131014461565968688211379422961975653576137246151552260369624440779506273942534862238468031873505479179968048640363347382938736206633764812450227020926525815448604589904956947430977593944319664252291961041333476577427562919648683972231220406714797953907174061171204483689924922616441354094759939990370967054544536277428341488905804571342673769934905268144177908898839428365259529118063186561320938077233649436172166566786915178603083903868097049986495258070005651162953076642285146681094554717518973272261796939676297087665796665173866502664962583723254379701095416604897859150585315711681129346527315127442198376663242725035557784471875434093772409116462289678951324547702454145032745739285972146861604220102104475083489471312957622260596983326319260743584168066067863969058837003602509618979499505469582917975860048999156269593146302234430566682813462987541501445128646755772876593172658081138410120432711684177896715554462175574431854113400454446834943478257735977527422287519645982278920533221199589981369922484411705661339625524442126264931595833157535788883802973358633800636486911745999831520510962638316715678292923987806992196774772328057760631573408390542396638035074003878251277740129432980992228950232088458210748568592468244764963712610413771713797233246233069348122077933441016376973497706420197837393672615087994080330354162485288659187984891912091825856130451500121584194064069052662633253410045184213392068115071010086388431055486063619988417165150752745907907733476897613247813589742082742972326642014022477910031776685504060743846149314090793727470382337433208590006831807900646944049757608444816535801446321741161656804984916888339896422740782119970955793846289744639966179220324138646973481723569672891360308077556460109876940188574051670602146988700146516663303661103228377889934422027078526037082279367505975857286007742701023256054806628525563596349431093042803787301299865120186750291753596957235656032132437454682404953076570018977344591119648925916241353560389242308287531681882037654219724049959575953548974509803007173890613440259856349681353830207491713403490496232507514278760397785389649962498641116764956314818544361584027362346275527639798113630271568727397694742027534356388144832265801252035012645978363783560370105129311826096961548905231690262241223826944124393564968955011806919859432642252264741486638436778043554035867584967362576981024647776245708334047488016725246103782329590063595952037748039153326646678547491434941395496089830112127019983008904466673767988640079217311557110127145836337134080276267142065709578018432974724598931439783859508128571137410053218658462660630805820456326921732061548052378705218371972235294676458965535252089820360952610364931512849083848023253780675009825019812482846484151962527632973219746983459670438501328347212958618296437240269928412614955989666414803627950713787725277143972323304058991073946699285219476839740589241782087385441438445739145863543050385857634500405245481345499262228849230439431791550459144627286410245395658590983105004551026349871534008228418382052603258124783585187004399528206531132047986346349520833266553668802276330825715224880813297826880905629419037892001236658140296451920806473068512610465338140064128530986497640315006476834233961452300356099909244149818792739155260067333882295966933215041899572113015550512415424763524687752571849840113419250762001304674555079137444739934909836857839117802016193936373454066055910023084535648513999510726528173322092087228665585256947658455744477958910067628766386801632968244648159025270310432416775626168029242290320273105517456648539402184088191154075849198452954263167161517980084105363550633979193869293523379722097594114226778100801191144887032831831122536362576658762560823785825369983538972958994022281732635712849637175921823052924459216041557462274659849697474644645765003273980648631928672218463941600199732063464365261714837687864724074889713961635192766657705898240812169722488441631756719726542198696112431594041453468036935207351972275052359908050485060437810713108804158433048795585164916509663584710525035348989998807330918957421225914995292888969185228250370463438245966346146364214133897908418657636678781950740845401327937941894590033480076769109359067627977323023060393008825598506225864579732439762431433874647788190254007280076456880873418538208013668853619405895812263632751110213488500153536877717027172682821191209556067906369626932315859267828176790003687888013065349930487173546631194976681678266185153490998347896079235210683663033875089128393506731417207111761878438216200623771902298195594781577430222471622097052259201940075339737722626526211889069308425675278938985132732042082372008114424683080397487110797016745507014820913611565403150503414265577068233274296262379739779209267165982751200537832195581176549629913425967645041342572737546578524792287366134444595319469656574084910026870985408415667213676842736856927724980733386666997458244515939582325492851315055472109277789074152897713003659948122976512178503530124232542555528283260507256038723979628014313799607749570116773326058670184998513842604530477768370020816531316289231984128900417041491889791583437607958247270514007868677620695122620104743642655753367938402278007205287513937285848784621117114342897515655757703119316992990575790553849536986536351581010460997400200640293975701502406162659692633226527114102077722652780930195496834764574358617864239143304774348517584846889579182997099405235952316089379203881567768122347642823395752722062500449941710856722203158840473457039049528343840361371818608097471529015420913302760537263632405270772217648901221846863687938379247466441548140102033805851000035024959059573727859410279818568925551387835920416078909887596661006609750404775684289998029546363409890555155848707207105461825409943430911967822301420317383175910936589024009482212784247878320082501891631034036553186915060555702096314564900647276647984405907560963199611081553199039940312623893555357022857859134916718537890086354876079459108244216388580961700448231816106461800173386957614799939508184892176773573758850488744904842324241390105806873594085805155471419098666024704186911113647844871681260594720819746577930059614002530722150259721330886411045199662501714877904894328641697145126485356754479557805867671174686912673018764792886698842992311826441084277728741791125586920148221274395744526320534698947027835257057050797687915312131882557740386028762168015757007574090681276190040423681235800660491945357721171742391832253173151392471962588974330463754878397311005655081454229675674166900804795938387955832360491606016990746721535698495062830226542697965073939962459724786071567916689689840456399434871540549345319332889444557505113202002579505978628520181822967758537058302228658203905266022460562527917644839599619381128569245695828856459075939317352009014369557049367053591073941511662764132099904308422089371122323444644166268594482236658313381479303827435400238254976463920476050545740405488475230230248017103663280049208866547714080791114494481855243807511060872040457806122853077297419731709964281238261127970455350198951653647293983923471448066176336485494143599220130085644240995302298028407368410756122478131906536425989109710322577169655679346587363851300585218608080676930190846941455934261561945602424794101423159733131599851257791017631545373850918561979756771471930340685315882061551818967768924735814253040996820005258670766321833272442143695254683669799761672208669463243867592776890905599855123557376267645614761256184531210739172089364182870471809177824535240000704931734655874397861230834599796247807583304713223243541882203806261177355631376868303201455375511813170252454021296571210447269673064647071461259872777620119364824679607211846672391291116651557219796003340454027412716134100230952672811550177637521558819526672896756293308952351259794024667867849056485933919220644724326323533414534738903056160620699975012793543039372283320111433639511963450572505731929067445196742553395188750241006619343874324737563567217812932982994003196574528336478308980267107232905934530111862346551637742140831938272451681552281934223822611868274599989567150971430534291178335731386900204699084564039636260745397496227663906272079468422389190606448150192956610947241884149653587470971344159311541163383155859741859255787955814427746661108198682971357093260432654940922200401111115349645517961061671154198047709782006334081068568926521122730790967034789266140211997993436117112913304211841704611889287518085782876100434495067045465129798853590760923756829658090664937604216893692613643449233886041096498733995996188198583241951878357312465556479554020763602950992328630833148018158731284279820471220275762906742234182637764339765331777527898563357567941819899394039765725722296138450669885902116479397650884510708621753895410086781861221935212323605225046345223642402913462422270202838078655149255169650236551306332898789585537098827087125048819420254964800151633333957239996117480056353671407110682057794683568242130232952490801504898203234471938995554681207515570824279151361693046824831406759885405546479024766102025439567708367073660226230292527643757365592810138267635823512441971114278531461046259159834718717845210443120424353622040912406471901693873901201101895643870086188343095527709330397760329133400724322298194481290692850628515411997896043596991431575354276005307333771749051158733801526112504266671645191961536758640369607689016703105030730462622753968103877908841279737458183000306318607294516856676846229037081739167874264149909730976624130035147288746907833063421801810911588737681682766517647993166754083222771772867696954815328353776768973008532131384919230949606524477029750529959674651143140008861067956062240804528223647478803190414062002626629550475640137162941707627093560019893486494427368060906996405492378943322926258571685511736407163820443916276549068410230257246548199504008016884545072501562065686623660343613006800775049608516219703071082485352216698557343226651759933607337815171560918087786408098294634890595687708404915509699215914899993372717937261481834110460774079305344569825289729461027316740838868905070407367121776990616463022895344449631583977024600009571896175244121389665450098371195856264863954184808189505562524070766256360986692499202462499474632468224782220381087764688045292269548930066030035452821881544219443875364592416813689593391341513866518698857053904442153356495494933629795028152012982009072683918161985937122832022007173020427441159665121362890790933037579122686883057516228182687444728990415736130631012849603574721516506931545674883020767043043782553549615574704038097695312078806271847572949047796539561926644865369649828332265530394822154965678225692592585305904943097058000137500373143527453971093666810206219022943683282193088131401787295691803233508246342858665131566629196047707489324311618898596817834900383356710026081093628125313990536627987331315571560793447877796101431787531832877763271865825007702777422112632871615701162822766820867980765570352026184001817981209504715915551428109216345109002831396949487852784244504358988818864882018063203909192524684202650053244236279159668585341728488197703200957525290800722849623825274309965591952476838196009169361191734978422453064087070065894907058383276769613554725388573478567957530692630570781916196946918865807334315496047332605921292742029051227975825676096424105468621794894100024532840970037663552359273059067093086389172421866168817712696487008075946822009265002519970408139095219532050213211060104600002517057059338440401208597777836192709121931664620522480890386303529348891292169084801447509774905552300124598499374758028896382790488576912051975626188346686393034691195741259190845836783191334170291153287756555456341697625576060080557510973167952816106636517301602287667764046261465653731211485788789345004626065375788919561091727486457999269941467772464514741976353532496944187742557576963620737246744667219631615922032383416398481151321140761539184888338949777705225901711037298966323944688521975341900843707869196019543678349759742040838189908734154050760575516508294186940031193569890089443944575814938451164506732361735983088063248150675482513415291345082816114084418794029994899910364563402062459283421309185502286887009397738751950793278019995165703645952134577167761011467888997348088900103080237276949525011280994218773867443438532825968663178256276862714102493924548968207867399332062646715944236175219153824654754601975954777372233216065088419928820743666768697443397831428704215464060307751942189140813456666695438807050791949463282872459422193221273319691903088649722463681842868410137251430120140266750752646416214405889705144728455250054215485665548539953835605927303375101667899017708015978241612958002216564745880320782040670229630477749529369801147257596973486704859159260260089330656400825709118497408748743330261226044630923622811039108102577750720092493116966034674548319072896219541969727297263882919154064064704879662445821084529297551940287654747182012700154139716758152929920399508695058441078286770787063765679881498163306820196264811520328209624681982149592945068808905423177751078369089265158069882800821847412827682261692426608096184721315599847267349725469971189948073137601301716110425596399065353315927266073728753877359037046972684165314030757753180983946261560784910441464288546747258045273119566605192830753273565701026042781069741410232867886630907764505493600604620473265057719922474919641164963258819932649953376990966054797421948963946531964144944343111452294507194245207491090145680525840767487094935605734710258853379623882698869577660964174939184534067266946007820165772207736102778052199186192191500963418353798667317917402188925353297226748483017822823551783703041624641184276069739477601405989558972405285868173607601800944076373716047803738955773048479563645942533973900635773183290566375129777054552624030399372970093068156025923335861274380574301378260708561997273521837998432741336145668989445857406849968303445290287033522835002816826236397459122359825353742885676963090180521264176161079415663167994854227606268628880578544803293807462530889681098203820076272557389587910467790514450962931187189554514455781950340872271943856513937607285553124019372006850533977068431135412568060479406678055544128334603600726147046580444077297132110627183656132356231988620886283182773673964418670732288748763743716321638967585151235863004365697322175105547975452982003718746207602060027377417985784131453636485542639857636084504988974875676987330100893349451305020894279793308654169611296352762605713472252209114538944864077376651430576166217317536958227122204940584786422366383697171972649841810598492325297485700585372993891415488121244803851377383389400425927840129346191114194012834655537177283711454227614400676180618584446643123702054795248497893119873574157747273692475660779809397875220541127866509062033573785096429727498934878488029436615670873223534850699638052279775626018444772008756467915467048441670817385676405722451888153139612760558640394473132758407124104306159258703862916473557336946103609897763734444654366554807082702142230292590368480071738485805728142251210556197948623246828141605296819486856852241680394311267743825727310939081826372021401080137843045252566706279035778060307679003865767771712470916073286647808459638124352188480797938931979355457585349728824047886311425083009378993519152748415049851311546725084272896320871584416938251583994683634920417219111628731140609100184736035951181499722371395147357544019656709926833535352670234246448227330773181590327024858324298662724631558607106301863533058975389653951760388819248041611599585757054492446492101055909044349461696384052769073528977598309786133313878426390895181264397483091710305573221897326319987398876298985265693462817043808607046469460174584594766057237708014412053210191178242058190508402310123345545994995121797766067303177423259981164250955833960922205974906692394654399954685580743119291641010018565475534985038513803266868071827549481934218611902022606642742778359706634876959725884422946132185967420539519286260092570597954127719343342239338450823045278003893300657889688010276572438272085392710577802258825986589900970928965387840687969610612781674886002006312275635609674115231552038880358038634558968692616373326178650397189786881424224165644275391992220095070912406530553719100950812862111327774936125968793890862136397603163516889533646904935614683278652635908586855617179312977558862789761826458503790420563678147296282983214778541378911219901072920960604262644005377905413236713154407372865130619159744882142093454927193703123589276990906516109895193255696099471650689754157870133131522384752395360153150457381515070226957147279531196144029256943936333376286259252730069056908037940818071506339751316277038159251139540757923592483084589001874718322131088543930474543087575785114531312157637620951672969718746632995457117661425081545974483562816617950000793038032204751772413660885307503528820699952523407908062228517714717087883526193411527225867850027351471878216062354514813949572440425163446073730772157801369594151122808019798826401807262845979296616982771537379945720768812978906588107382451388894971836950761399146712564165044384506292165333672057720158975271467582562777184398241341504212226459824988358385774342919109452702258146524087698630156170209736695965102426488047141074199784806285324107634825525952899607976264767028568338180357447454403599843798409081615297614714146688562741480756207134627472954191152892851100029603296997734932791021883723023266281976557162897388964759186482259292540005852621775121706646169297490164831164862051458328829773578259032730434488772953879258500637149713902244616497632711113907384614853790626013961951712565390521661455452885746064143633114528282600214651346762929476294673078967823102366300596163348209751011896372834204509405953908606113709705666348499891047618643448878742715756868532295127834987779175554909758402114613030135977194302635880077516106651275927708065423008566167206861890106453558497820194861447966118521598354036348240382951876609737407684481765942402959265661191777720173784787888471785984900406729961087042539306897936413208994334509659656981020959046960401151127149963148362117984905508351723404405366660042804122263126171353373703145929996028867665683801471157343627674086402559101170087879475098046802032608482035910539493506258710332884875184506514411099713956945122758799701222580838631762672469327842623158057436420361887817683052238155525921015572398560723105984400054885118805313702862947046099234284099432144118665165593241639081396435038601678514047435890847135792895459570026763057957808662750435164966314140781298047790870828154630842216460612324147786339707576896085816427058810022951187089202902091905490978171771429284365106629185008061741876817035025513550118631509869484979615845103595004588431379224794274849894650699476589388862704749235926107003367841026901887482972777811331480302593161418184991830512177196004223148958125707885615074008661417169738706097555745323984452554718406057534761364633164174128926110516603195148848929619276179603449267226786567047049587020378758439300364245639870338723632763612506931621881410923631031528665870335577659396963972994259105286507671794794114672294665861526601005513168962035094583576847514972956533703870528415741814753810919937789330767338517949529166350773407519108596616530551463857097771815201369474902860464759580117078618552057302919427018173482352478512270299484859553323079593488485255513396936285294869542832014277540037116480935233347956000688835378675918184239743155932454216971344205090808566444818473760427917154506253002147558080440986590730392827660021901194594820478339717419164081643263767753052291520737921765521289170826049622138848387098084011274926975712602734854395481499132864415510864833189862973922670511435490777100792527035550670085404309246204131037494110796736865989174422624998797908136689898065367451858090358385778901636083390446409623125472004626963508370202764871139367275997497416093380416402711201880239330898369396235591391442275638460848960022756760473196528560289329578553194397764746738878650050814255778107516221371363130991861396957717307641782051122483036757592786521738518588792459288908883285346451783235775050754358767560718749287033501235669034285112881105025350562866251684870255187455068666571590706960232934826617500682834390638813188347226848924610138604589236009485530591654264280261902815357234587673560469818405216120268113532367846940284342976513339809844754942062362505413383135715137716911822263037904756284844002839784491281784423855842368280765774937604155705373834079341092066165384605958036077739584598945198106654185439430038193488338589014445843836303082698384364215462996049008281553688137565516814499160735581933055329391782936975680615542268969941622018473193233664232443099386449850129963421034471239517722605342186662737672587388170575196024894537095822379463450874058867407004266354913669780419932548323821935808895217690131263690320942644919842396010192526034746379035540522702568021869368348604274341086784188810090836497608746952301852917652787806055381071115756329292697530798210911342359722513915688530430386579107166982394648950307824515783973068839353670083140133560373049094797764658598734612699494316054908574982390789912914956919995403970616996983527616974628335545868246936628177441035370844879676416081841001661330828158840073119321547103345411979189248147258985110687387988826355070531575110883015426064225615421009197721856135451217066744851561024951155797188422948401735241933445972723724850822019450409617021685226978467857716554688533395613973864793234170618545521414401038581287669136948239075565504157694515335547162297128261366403716686548336419217688210003370422618049976004465532311357608528252599803892783047159195414087325826194761596393097431782921468232964625799073365274337807020591262927150616507550168917068532275806515489808614018761889715877712619004271752465380080327183901666495508639133262933301144040238713301217575670070751368792849596107517283746420133338024194672789649880519273965109261789553355741517912919422986958666255751678532832415519125457783744895566051387026542984161496080338492647872873866854151000492345823819750899604360194060756040800296212353427316918270255269866271636760222988764321963186475093401037289944182375509354649623208252775353033642352853538171115587025260312110962083441190503880897624014465075907824096052876318759161729902433251329265663192355581784165712858326809947767819553073095319685220359544321270627590855508539459021708707835776875686562332831823763316661163903117795090474465330800499429400219716185407902261660820528919115408021038972620440952829873304224500198146664722596143122224508844758025014018354540124717898486114548106601985968279119631379191273549206758427385904755888741790553832905197030844332057195708265662253295111571553215209826428165203122448691863839839666259335028858732283159011238189592821732346054806105887721645323621806584801268896605279422977438382615369291515183032173855282255727089641539119601908633162557962644877519799172745312425610406637172813896552155632490851367230452720229064909561752593486752982395171826153146409610792682894875202617158293193895255285945240518036560273923923626820610900131221993734167575231087004536321581240920376390478584169050712303110967156352712214856410189087715122096538837108972558355220150691566611679336261950517627891932940761698589074763333653507128329378270494149627979807624644064859664377281368459187491251705261560037017770470687501949497869932004421154855068614638428072417285614870093117536388705867284936861768600553042138451975856422812900825005157638375090058282541734632395338555778445252618491719885563685636858679782775732927819315822147289109694358584498192739043178311464231051060164796297553058328497253856562234044137187410022087181517736161441681183629505001100393487233663558787319180364489560631387088301093616533300500365717266492713272733587985811539462344333993193447553259054841968224738332971417562459994792764895422465768295309550592056746380894978212066123069522422357526192321999199701508860862385881099554775171624018212827686695769073677159396231782286956942193378765633630840241238589753079510189959464066308628348666952151192189888985498934483602762812164978550684958619703779524835835088587141990853357626557574681600735371542658581769169939350280922585555329229987250723976972229239869839961238063389743019637653195590825749732501448421374816152483841583167532790814909148108542734501834885247110934518644572328233889117985275466756783093402628929900060268869269797182061990926722395464352578563367371756411112556908626169610231717326947843938387772259523477271560146062305867209249928468485605124033969624703167123613106878811783434086269131270069683538230019962314598209877275999317560517339677011394360831471596319213283643569662564664226939221555049976855374793906820400896226019872028983565707583187070391695083468009373239887983884722314671844177427982058712458947141109166695485151764054380481244801295952027956189403034061372166385721709181601849175567996601177216369400318981996450187653053813760478474719853586548168001457781247620512328547420617508676278513684719018419449982786654114440321146911857697035399320013719352298173014993474457235974674253887809213181660454864930353492942309378025280494928474011394313677822470703244606204734328361795643144395038397679580209424320048841957094701223502483608921198864879014481513358733810491341255668611933824606107083654113172093766066509116121934561679172631702341110975775370585842378293657418960064409253461957842686095297481795753224453291823159403567839796221095704936137587734599582481384466320284729833556069050549813773801009450346562926722603737409735689905077454071769734845003007962750342822087421198312919105596179676529326776054947254126812769637733051440363210614414181120437606503715322768397203022100543267591994505380751851465877467487364437658716415426723116968176829171212673724194251543520069720014545752262848663764840891525443892917032819077950860345107713266193663737631122957407415062357237860281654895047125598394908641107490672162066871336715700379225506844245720591319819439941344342460827603305224390064639915482484284767507241212107796125116727224270432950136925564801170324167643065459758950222606950169440757195021932871335886131436309129502940485555271980975277136236952298852907935022952273547290907764599666349791387511966642249573584689400627828226113083429534535246692671033365266107377875593544925258739794366419629313724476806078815239365773923360944048605533939399755614998068195061483947741482738699461771977279848541410109684563159026736790666427729863287239910544009393113495389896426580450203860518491561708552445696684492356977065499426276704891163265323571293312193156497117028085404119130412860916009776629754958318316538671136666611091334057472235420101942720352929340199432618369096019650132213090042025253895780889867346475106925792485712641058720359282462981223665188226183941552868861439956011169225250472796803820639515983175249224925546402788229072897789108236653824832451421140533283111878727007277241928683318430464541382399624422153723210368201357046172615164684549233446093826509936393022390868955082842757277870321163879860480474026198122316475135303332885636888308280224446598864955272672268102660324199158249871874092771575251893892125085941665976634704204952615451315011063439949297335076920198503050926826675456451040343582591430346757283081252699923779598646077089577346676577661651965127966401581200315311411327176550161901243963794606934140134557867491484349875266367876963426624083756740607603407544529308673306958992548998407626906564179130242641515114290408121512123122946576138685149042968748658166820286384588117230160121759356053333482736904456619928561252086111641836298536739316594331741411455120856057974867003076575818194237493757990483298550924621146767495960965353311874512294043009663897572811718228858987220341317444720491393924367831606979819719818014176239972888615649063662016385314166147624867208904197887879005846374586949221630703831942046610017795554137018154810114456296455308299524202810036366490037160189025721913846032825798627983218823770103571091360780000107644443575116056643240974179363966424553856125102352792863570927470700266046433993165493657157261587344645434731831461388077850076412914993585152826184768777186829170238539496785560347698037583405329594115865497882046489737858835537650555827432403022029438070219257047329773758652748942947430380187938212112996638946424495198200472074310056153070092191004629980047949497715589075281742525782613574630634884626521418184041327871213337257914201547720298755005943006377057097481991937999881146850616759507938487030473917691824488688569391375870720180364806586198912257870519006771568780879128561343381630149386116047790544931932313573814243269409802741393214210224322966729031668715851964987988325916353150158051933779119353732202865693638439283480213573636919763114521162263395247347074641302021352544738898347849424530541352837101019961429773321986310506003817156191345746333157059781776805222164880385105803040104753442074229119370543857544721244027399726464239664780547567121329944055447483142785481787188239964053569568776306160746510652643619692929401234543078876377661672661684391875719230808007195236465322414356602697530814037340122262870703566659577819992500831904191585337781610767050717705179355846937424384147950006902906589557200349071794575256630277828048743415604858351744025478020827983640797913348854723248913400696895307770967218006837255781811430275979353993671400903441228630010024573676915344986990800937657424549325164780185351280828374928279702694265832282618445031699671943836823737540461028945920369265268051243844742491233860980333122468552621339197744739535767967486689139717650324850687246310731449748716962425438280228733787759431078827333201042132357191476210763734814192719273530542098942952247292958781485796886888132995572424387827737122393458329169031678117532922556167885022325747918713409287044650284088885644986765071347662415935135696918085263508321283010063518299285332260996618341759079914839604710243411226660472472207381618767397788325064901558149839495681609610368993363499744276778729092726634891289979218818983693416445732700092857391607361575019835602293074975990503420786798209443412817476367245043934523614855366350362219865884500126148631232505184038741785433948793855032026069326098433126024142460126610089689447497963796567655278763061196834022297383455011499435040824981171054252635519271552042629466411098146169452390812664433503825101321631541878225178305779226883779757733837974267983199239281322557232432004020720908916748837232837539935921483090130267477092079265093630035199346952545629060895868252171949214905315765718779784301898989434831172876422181138685407376955326524489852646488896862606777070391849014388902164303431130353263246586064432730904730058794962108700492885157466056483296700959883441009151037282316718290979438473811262072197623065652164598822689552646736275742233052081785562481843245107104518302028260102858713237882124941318121899143355009257678109455174594049089559727228382500985900514384140407210037158525225919983296062867917460756549330915739782761025644287237898634293394191712753486668483839021922944058794624656785057298033311213319708699025964986191445112252490918782112487638040224040894082264833091677682688522639861031162371857524064843559423388297233594691237268199065510005850041222783138822147238366439501763948316035300120387961655344093422419591266618502214079050301001281123756097866419491351334006140101414497810380623345940135035627889349845164148923144134273391409989798627721181416625056180498783143240949147676275628306393392853918240048042644414595634762471156042751468513547033844588848240621031036855771521915484525710328079447886986968673929958354382370840112342789585784892670684208223392198612978703317024967563212962071431198019889917930177175552689336746079437958759623970865183164289076673930459218795265638478232773027033587675527487952723814518057927571048269655254410485055925133581440876842540228718269358981051659681775237653061359959480834570454841318814151375946061374504585223017062996770923325236434737351103003456632315734632622840236020610058320817364135681295516027945012325344775762820043072872834970592590021634311799080288253117148700997578105601628643428551008876223167064028755069662743442697462913920301423696099011852115398529371940981394575062628766418310362287726541982242929695059430029367687779351029437564551595243972505579724338426752314476150744690232714158323838665647408298915857422013003867212518228273885778453622684692486307532904356452118937415087718147715123991505601988479026869463495634863032260604514671331454229177367294903364831324472445835468197619507049575341716578319904600303025370968130601707635430236268558580106935526909748941016226996990863540975771078967419748838490972921997624970879832659561670559407634364852491726047381336310643768709983875109734208144478662979142477246328688086494901413365339293608823446451354084225060472918363203022294652633528502855458583004610653713185793403691293244024637102984496943897525493476047950040082718118676581813682710697911451565636893315085838960046439319841769459943561059504188561988409539332611273354061441856808178861504775807376547461547739229678552010179268289623285050165264620060977358600741937936798364385609881422281621540471365946581249050199719502784656949171654835630382891519475770473276755410368687672707269689815954560327035393992730512880668755850948285972943590814794231326518968692947927269485072629198837850146608526800271174907865561781378022744986970851091584109984053733122242722942361773331611386982396335625718729486644245669670595408459803979253704671315003945761411910176486885788041919387492609203121165215658268840511040150458049754645328902412481429024235607396582035018188058144935410090266449357222314426344873838771608100528251402543487163023432664263263101364833313197280525792871535774366801097411035593886903748681217628047629869825284232154341413083858088440552708791725844628292545066394295117938693313661490013326741278271447298214651152743682427372523895669413365803497110391346052152726500418399863433654849307641860329392295703075734645730628040408909846891365218897337349815643417037668872158464724165290455878232514050850641275782071975697210374978804574731551314513154678379194480357046369772487455743323258603938539947700345001757798284880314051869136995489759923364604581389665604260483208747937120171523831501341602111971726145647110614864883087495672415245144915825816444383494504105710023928944994448096889225031192966292759467584602774620309362828478001347209796520102442779376645124875323436231720435944676808404772884365348252500990613006001660419352809581797948559639620592075921390592650472317444151908937399490017088030331420969013377176720342548588312527728287909889100053264282174089202039910586505520768967783780198806538629605154960111300141508851583509531885307886791318374160769795704225553183165812235168778074267966038104613783244897600485962998137334671395943058363479922094101890206137426103739519113434773924946033121749498346552835257192144544133739223356824697958687195251758715388065266810509258516749898689622061409421863900182797244966392602906844476712819065817416697871836873183008290187961209039741833258252577590071438996613626189017777912286684564888245257042492132627930314847302472846108392120291121827144675291924783428152917547747748815037909856629695357219513343225419077618402492842324447453081453663809089504656977277253942147924305141730414343125388623510201344815414812920863940255566964526244518530870543848091344627269995614536798639077523019696984244212390673665177587701937988035922730272809648859245275742870721328420268688736563805460562168524851800202361292204213564410060092314135327066421564131890760390929059343956827815213769364407242485352220254645354652386479318331272813426986053538866421810651580508621572076744693039960414920917656859919799389389594271768812387104979993874175900305124381720704637058872756653561470097003116324544249838453424561813580283498131448199091092905375181780415406914801176183133181019839155170662113655298101059867151931400821277491710012755277416560336680503718252972084342763928254642797460111622162759688068752757598331518791225006291247060296438292489148783757066711351593159241097461764998951542901877990762087579522519258486597438680960869672675984865845937552003677588583365961375059922029232443056394305245960141004564543307084524001983066142863867675611720912135242030634716709665689656649330439676345554902765688959439623629638010666599130536333611083052664614462113705007496869860299501066115752512489437995987749004486377715830668073674977959842024439507095031352602120766065766536861881513102606708272464976220661424400903324244053691357005593470888485476673119486112604831054354738308175879060284196895988597501983284298942720481038941980928767881074094006276776886646823564647877773570646103957641462169006488230935206159458019698925501583203759112303426924617227498869715743326721326946577957970709935807635800905003078719150215792846189293081488807895913647670164140398999459718735131283237139826556618381891192944591777345126405266454966625046634682082343040875090701242160875016908678454238142515415957287539123273297675111585006211957436015981237222551016379866280948410430816813353001080109843409634865385262401786182923364428480851910981656681297204505160848801845650800377907950040112564850046490258097349268646024739173662657456445046284916268831934880811389648268264459862399610879502997202149382427256625214805601048705984753965301403877983190986282759073873063091923197350701125405589699428596178432942469760733962181296727926221402831297073247182589789307369785054231361397794423524783414305397325456739060321493894815049006073650144015936133589688187238983985865343586259367425510481685106949886644856422370537529705358935649472961826758085691643820671646156474301228856570383132430212819824749437397108632485671337875712657260435604300673897024616504377748443007189108671736353192385486612578004164935687292102925027080208768340241850029667060148307762117785372892480865428829336528274092829094233639969697410055045853154833615197283103837383332611518223018226442926077790416782645531575777368754219501832631338584898414562227205277665179225285975924361312552423047644768983568173941062961791709388593074894557598286200100140955518248030841292360860472254370012821580740258926424868776693507969543124806502333203439412677157710704567031164286979667707791077606976848125532929336938457034168386435646134165140074166814224416975114689943592025007136208021168702929698087278897802523464673850455720828062539912038677788803431700634220802920638851868186958929772609139925235356325051163424326709201460599036823576534486669945869182504129465526382802752346654027984407462398919379162670762578643751934288078291894717743864858251375547237038743504715408311352623842718308602019466465573524207210163459096536087006381189764077543745192402102234679914953097772990224879409210674207590002524332828676367542509593036109850343374395359227765341393319850980530889893128024474075790663438351290605624666778806633766548349888897739452432471056575446921175645027066578757010867320588215684295867464250173394221141336425763838338236314916422326405852910699717643621516166923718850058736233131522048524172145145051286190874424800118603947155106959917618253049645473165284856432566719798270727336700180077852681317180652410365716070413697083784185759812613827037328294654802032054550119124424321890383025828416086597435357578783589109525780421390901984917820483080454216445781847172753176006218524819551696412345891192745982091455930237488820041728558997112598850639204780087633002099602460201063177891162743309432651486470170665210253219908327890745339036433068181550476203367232592029636601211642452845781010183275877700378603090111058964743463042729968767491851302729700229277449084115260056482211923583425844167794743204357786895875635875491528978362478142317885593810115700550059219020083198460958518534379029012470222518017022378997012630838071755095324237133305966802783749023660079804914101667829605446136897488400215682933366114645655968892524335218996346369967975279411668829521663146037062697992075786391821482436999105211184150629508026686239648730040255990076485761027609888830537082780613831098330689227937461906494074889232903184092136784059186624861806053187720601211782794054276210941427448290466409991501540009917717910492577514744438919086103466187661279322943515081130990384003318742079382288448774647791551056645963260078313420558435393522307024671448731873306815154158135818271315533002300394975861186182278387303538632845024847901782722951905599241440343435732841161950336707293997039612046735725012117859975007699931193927207458715107617863096716007479999969242162814393882242908090893842235693834110949734419962571964094201271773154705749830714569295934691095554233468329116626118842775558743482312672603446453899116659599609699358970893040683450256669351455405656913255385687438569243431021325555469123748737062447707776131617883242804421240509368586130726122135994810522861316072091445621893807505163306107162055671083607219972559254921720467313710944880788905065271926145879345206786189011356702042769762026699973219786790600971969166669106564890841905750083403108804117088118944673723183844895809816747500170148548432855714098582164255081240546989718023869804075454122967353624130142183296114172012189656156224325244349394227112576895730819618784163740592344231553639311938471397200768073212883173193507471215903226470410346072533574082286735619711834378195319077455318427758693633411484206176682787002489062757699588085290567004914254298342827075668288055976827027701116962131214815778163913449327529387971575847440135232468553510988668954246220637767204384704929823422802566463468449725368386490288202489922870606113112941844131096521823958066758216703509088214969448227751808386979149126699232408875709857336533315406128115242156177252864299870864519923355147272443218643803115518645320000533805767931438357151711633502558582393795142083301718891821768610748924902509956652226018181980509774325716010837086464377758790069980442140149442797543010503644228723009834644863476203502730424385825195491393647296955777704314976307175531807104732756325664506050395137154242349303634179972002897254810406113550232332600249647751969334561838161353075396348448543297393110865626317637230277143437312045455088860479590985774865063094017273650577648392078293848965268092804473054400528137372648352344229325704321217800602177979806987819042969229805514552223173018619722288341274553893160799753499953344765422536099561056706390725392026908065310367880788941674142140854797020480295643361360034155330224317897479270692766290904385941541860314843223328764875608962812935749103860170568622569244723517527979007966213066793812868725330518439207543041716321670332685600463265362411226872673165905718207892257288700455726148149398581096183112807275758503057307349010795166748302238261329679225771925961654748508132419696521192332277338343760252807509694398544163395512182189207131336656046348374147603908126727134551802731283737349162274875709935789833312841303774933705033429199474221050811413941077567211252931019081834357435565384794777122319981031661452087592896804138087988547211937688949281087290016117738924378328029308322900442382701831362244788032957275932816984655162669600605416965648424930285096091659700695224002283416956347553740371197976369595134516662865222226879124172584427406419675247229279953261146150291374392943720486787355326385219505215619413778321161890695908866532590105436923448721283010829065200249807735392031185433194833577522798738746262409868842770204673351764528945674992600416092831127430812544703605425109399989459862524328676074057008836022056184575861441745586823698102959943033052405235301989916090978419433238038087858229664989812865799862036470140650006060031611148649840405239649369417904158741451905755779408524083286104765067984113374442706193866796863209903190879541004997905925192458574725566255434299201026108326336133475841601855273645513553592522608315226101073219318863889046362967922212035664690332593179615805607158388133418590577081123198684168038304927314946041831152364492209058300496329208943199992364635795638621717776214054793804420864745238471391212157653630241011265596540801409396671542004994325290804536705365064919451969377595425467152808141630796791647249956478781572416826184035757678412973161943922100138519421539074002713813527643120426202295487625026142658114008859394234210196550665435470939576194951176765671533330332986209232683344407646081268576343298173234658887607643351700078555796025774624189746866905235100145662353975476331178779040113946951458868417581290907775948447071551085518596776524022271000076173508793622646475928320987538510229437499149306449025676250816563974948130728357275892029039034177789298167086184164119843976642242016411295546196541030051333211233652112369759786651690651042825675694085752989806039177655854227322366156804857018108861085979742879814136215324251645853015896373449800495280287294785003206865685016535765067760514553830084736871565828453442468935352946278742824914606974650099493597034329631288799460964856305372184956644342015817682160123190443831730307737895237322280949416161751668169385227631999362489291297975888357823302004245584084301455372735961933358311139902266945010926889981144991252901553144880152670728534363693216642809674516002602070854230004915785642806803459519520701771048581461089915529328390548587459216857982668376167542240529249066801956098592212177155187088349601600860916595339871442493962931288143312337864344411522532964129679490657109209648487979403586033311579460213417117707762914876271978032784933544542282142879879333357346721857392759933807869927475112457695706173366681342882346467609297165738469985953863892697747178523658569530889638483451778625431042030734452387682059408685516449731462638699080266822762701900377116671845028269610810611028302528170818832259657960592598281666486707229230397456326562594012005960116898941799090474833324503074682294143200016229367478278979056375496794828086792251594146189012384511754117128930255625089304971467640159330800486052191791561306014614903818195706729131527964745146067054031405199312544710632559613239818774721187628939368152042140552125523403178134298209912967940475014706088855448735077149879737620352538890647923584896176240559149966666317515846468481911095340734823135515874847911924872052328559989749496997496822258254955405589288526271013689048088527366815617899487036694748955328137455854916757265862935774822009338778996772964051264113125624534636407976238524555513563787958931398657198469678909062072668423560935756169877424476394573539818130340261445531294617869862998409506502351652965634565743801896032955322395970743796601142130981188234307228795715447865376923953571406472177851251426207095314393910103809462711272903636419046608778676098705137687123464875705262971025414578416894216822253715523964261589891806355439371578778264783516636797974150107565199597087040836024296553427210663000701759080979324299953546146867065215982294651918080916017545690550390941477485154121441623113990458090098392457698758040186556406563077388943500524926494079676869303928158811889983280883791037865426098967091664262478473570404251524514074819709941842316559348025341524467338499266430208956622001464577106321394935933294432804911315101898083783099689322927737926905307149968584025537393069726025445828848056524563123537934476643701250105836070770689881498556350197116755473828994543579371025183584659647944702935351063529268300450416494024538351262107834175038251819029862521297136206743919597859315969924926060272745763921544685575222980754483682475760720506652728231665841028521254422373510739452627440450237987952223825401538623647471172771439561075739968393322129319876129237167162193064517168799869533191056307729339868924992736961152579679967680052171269851829073529451267940402085739162938622133660141496305340274852578411667226036988240354122957404804153501517329477482137409648667567616050034526534002625298943609413215144749178562890446673298581799605732594314351793609955459936143064814883346563680273792893766174724006695918075233464506773378903689214917254030178842469061394913007369734311336704948202223347724527537967522571470693142961853658402237233641030387072400259863389097549221846339739411481106768686524874945796147172533238429959567831433784575789638048501590305815030272683970645973981355372502098484994890412080359349234163072078106981193086874693078319489813862706534364733786336894599358491687294865832855811565379740085429257823269084348516725395613139325585869846370272244987134495557735414046526670641395120574330700419277222394996683974977983209833756277764185892037917244704560405039665077538490172573002483711110227757812355096741470845926357179223184607758120585174670954592423434351614321413103936429479613426636694261458483524944921425581382597105435036890178100200858943072596289380414982309988269339492678301585768635894518401982289396067837431340100514501256520431561191686283712357276101314637718332842818672893723052518454697109250193940602340639231712632961604578179400210496905025125681811372806102391780848986389411072364217960682233285274367654513453543923378688916400345949468796411964588501769282119998284730940350547914639692460884727692550232816482630650961247137035665670630898060301310682053042655399445425145533081794790133438655488459394932403216650160470231695076256826446079700928869438873462215764062161802662556121995236160398353083849176280513329438652024754143712943478408316114044034615692345909759966983009570658918205399479652976486685515277513767289533606015817211244939177071968165265415007056662961085965167773759455006995769029884528500566888582581836263233802237625119849443715685012136667519023801173146072403506037144011491148061515282594924033426717247474692608728016878909101785821087674310587311131440909924473723434820228157493890705006424990829803843051512446046851398140508926439070232043285683034024929543667993601021229684330089755567011235182153902385126424327108670028975593633489789215006424095058805030919149439413011404918220456045254380490961218132604219661675949370150852434054962368915110956534397962811553116558377506028902103861575991469689196276746795869365643477345650378050425831025905578360378100867400342576068383561556777164359735891454792537615777206281169630442628572341842235142295307932838554691778388710249330837344045599339501714174085457930253700766132450198653745144385541583289209412592914350483495748657743376364630244040885098698239109700014237064715666844470880530807991044061896536438065280661154690978009256382072700341496092188700829550119967241669177684514903378910961207029977962728726963698188916707757324229766545629483294273688754241835261756832957391194661935405866690077661544211596660797869976005770903617829266555306542484276344264677080491796412701118298843786823206383571213045315613459975280193516058582261863540692929132139759501832791639428968555961675716710745498745734196672749213514589535096116168454859619723704581091121574839725787293387453484305996259803259976428304854239128129393921399074308813718086714834270001218475627690505773146917739232591917587757782980778148376495095548540972974559972873802831721142816036166375435998565940246966486297765717094588638343820685963039037115561674567964029834261784779099623483483243276368208917365470240813390446937682691663798068230339554088126733146237856356720509252598318700121330211785599610817698148342228467544113136867987673430771029695006877138965015472999088153124239176251106376861104391975067760406128046829852784638241633858299717275562873820364727808966789644186088760301284955894830459378311342820651842366769952276372141247605131159076394105171201963883404282157782987852715636739911817803347267450947577877062349679133237061975518313914367020637669128039216967378778079201839417935092550553598535446332206169508495975504276783871683182461007894105868299572120966342363309673150322383140433723990541693157932012397230241483387596445866680045210359669324171657431117319671363540441601202931961201380015623005470289296762077700465996770361725846798116398418590552549688048004694049191729579579154405229868137749990684332534208233176838886964893075622338560670547802620566156891874017155364513360403828871208247323058418581732655409943995658080559544366686329748456298723229922446821916686945154804046288257459849556719809316457385273050567120311232759052245809769026932746336153928689624033325041508346686030212126451083336451680253713376129091238710105212167882821885265723468203550138208122640435242464278396694529307984756297576583772700627072566230460364194800627074058544937258114252253108286868617955433293786759844863914315575389172140203221354288850425759734243453095983828609224188447126911888038310987910105844435287994985238347038485965759744352862688031178904231979706350850250953126606013546573581744243122594412647596809635536818769487998994817598322976999099044304362778443603838334230415946704954961870337679552168963834264249932550387330892326482654558598723003589635359855384606957888543898767160929645543676776403254526747424858258613735509152804835264510832590132764333712162162419106057814475462790619588364041589734305343737372030548456796992828763189196593003477075431145425506470954747697983220092990279254372611776022064070142936925420457008294202972126861326920711444066371477122687892863192983622055335235607996534408054221857157385162074209355910824177408267566756118817309072632209333898024359202867747280524775005856544871959871263634923321100735012769946556298816886328914156203684718467131843481200954789564197848580203185019758903487991958132686855683491382945171188919682290911601335253735403370602915718921110897544809090460917445207924110667451932376259329341678341569134757999006692762470845452906526043199284168051215247258234149013639386928201716641322716858057072823767598525447679229917034300746563273348073986985327720626945395668327877060646941237364747308566571256558962584756631614957857395330776260430540340183138762512799633236596890430236048237347499686105340151369419880337442783178474833751521809122501938867494965387394927361006405484503958683387983508026155898736775117442515713953783564127978246536082732042200201659777847737929775552420301928033634275069766927988793233073795420523174351677477960921539608459709724271872390065269844687577905881115898411645314305561258761611603375057783134591437983560892218920996617310418942184730899355006516016728580072363969545698823205711947337537655583074239436821075517652664769273630425082856803051666169704246639004526957498126310663673184545104161364389561239501981459729057737118916171442848862007037399927086883537961325959456674673638764648890692582090099758310557084305367838710012086296698386218321170255852527323270423800425581232052165297996107334925120391455654447515188679037827617625544107144475830822955697567954779515326346520291414040092938289017222568499814117504972654475581246227753745811797186912342785850033706275468217919179561005171023656624033689965591095550608551493806607583435940671149577360806790557677996136620122462239962201021640220471437151995453855240010147656537682929350204355335163717421239926612819305056628756067328564296370682311695590845556860555143731683322963643739025575202118125516856757827855656268888577786079797935214455124758545595187375275691792739207709654921984580088342143847046985675958607546586440750157098576398021818643771966076717982812388332863360152500548908316871793623932616790580797343370645710083790843012008422887182153818487732801512378255292751265132907363603023667425920672053731165897163163090438114522232797679185036141710299592244522500131757409898199984355154094112917424514142698027469836735454896885329831944764964863896911514470632437730475051159663134303825696643638155630636128520636953268484486836545271719111695726898087210499907746607616126977840269403505891445882698619633943004218994993141263436168040290445388480921271606168034492285128178390604191962869045159974080706114774681370684831781140057830734510447601608404783003439004832310954365501273746341853942144421813972287730727900394378595800763041242773759821087022963131444072247306516626330243572990605940028167709609770379938986977337323054844337650408525619630966500851181397346889489694625331378913671653871435411217491562715411195640751272410806496365061476593164124375252409835336224506597441198970343852494445039795431121765457345344106615742642529930395952234623123400181218184157774867882775348855592557061657870222644880170804543699688994089335193913337699379768963867502350958777183670530161469028938269690385512368893798198067243226775170276324424109796530571961914938613972303548973132970473700310188400487822183714796192994314473596815705800976645632911721062190486592068270407502178024604534520051833828953001506632815952592064675252411748200886570804481235427468561519845544456195233271485943980324867897139121631200034092306193228184295255321428436018519415843477155273332082304550579439585191401909438906299481690100461259140956712650464782273204436547238434942986448807206865230116996111366306422117264034302521882304024711988873935766701352379021861058780269287212344319102306032759214846235556002608199946174043959197921973012954226468004342368315244962934692885159117889616563693398920323123846602396854520461448920841184844651416891468768528003754793351421629344593202338664271126428369651852209473638845549663909509162414396625710154033199056995403583796215946924845920598360722813404697038777844475816689600566429859886101665818864313258478702781286405425500568945708943379351161939531896482072088647452815534859327458389947361010733044043416428865360272194199080237943396360992944408674629636987133498797222943054039976930512027159125800734740465043984140026371120639268120313449970085736356466547596878493366941778756112524503259325850043362424282685418198376271144856762105993178839971030121358276023850904794175091921467617298485146948112620067243189001302270875722855513367158283727255250344390106313357958184075953971275957119089843448749290340039804424296506922807183075410320601742250734261789270183668285208159367559167961205163373547156570145517546690484153380700148493134567713612302696502170370113718454064290669609159519380269460888876594953921426902391263791607110375750293887707422144460269828915320342798830402539726331663473637145298431782247510948130466615908454787740439543772493837603873077704612173106116601337489504352172191418003876869528898856027655961773778331504837203742604771175465890513472974159577021949795342511784744322395992635382668927931092896821574567557254808959576219536264611280359490688295349575412382859073049367728021659619185736039408512592432575989693991714691674103683636422112334107460605710723577333001443586610122160443631319168839380848917702758771173070935978857383968821446150817449330198313961424329553312936223382742261707370681420921021880684968979314284249812700542334058670708231527829564299854120689341670294880310122177760013235476615738609354369385853293766610221182526723560688953606450862000618559437111499266176773270431123794377406689502433370794472257901453828237103818476726601464239625326175310923148645246216679225814589071251348102108915334645665277826002563324447321120138719782615702313482086600538718786423523602644006110716747156702263061493486315753261852931624731753286107322142634901392717244749970030785474188469901317298085615960085551889097463668307517844080639046095848056181143096694024528411550565512303544018170119246494641455054422732006445254151122395728288207988451740641719819387145866465467288147954837761141258563853832534819028954085236126481166326832699058431342897288162321601267764877638168510599145383513360934857033905576977568930292430865793157155544816657102326511410939622329193567938942018423560427391410244145130083176042078332935899607285502867596887216089686649205494390306788298837259803673498668342199363661089950465921641704370245963971643334991510905569710605993009094828129409456866197691654224641183660832978795368934338728080710138342439912851779203379033961444507099676227695191880768571815748075756298032052668729564631616374886159750907622141035255472033792728576358021523474274385710678303691036296683050545668994246575220024167500181631943671305058510749401141962379983954515002877423373525361513579753361344592066080111523311712815359781189428806522510387299536876862408933365376132760713992989214764853336424056017849982649585828169752304033017722367870659952224843609208142790951844746376586141577488886264994982978994276858175763739497760750692689025276351868070801942219652365552787695377812465077779274086259971496136377414189375627856616827029392245880038917601712686764605471387076780299483265055592434275306401078501005891897995246579234605797799580937510839492137925467262952665167185357004247924510877891480396915861309407409419605367098550533618712089822788772174828779376821528958941340110573250365609575881172206910734404304258846075071822126418645481906749172247025703809929684455904214712541741166888670842346972005497970546144539667806570136703297079856685075329702150970406229274010680187787041872889031883378731866095603348277386196482714595302539782896570347822725558777132737157851771084082119679331380428659420793738928539887997693878661375043980105454418908600842701170647416962952026019596394246345845051433916435704686371456371261057987586549382892687687541445968101319556607700438772797487493660472065492838653614692309556641414221762588185591478223868295706566933753636048540478428847193266112467023194529429996579391377097348099177659293536906487285442624941161046471833332559002661225127044425261010515618681807289320300158131876870238817837092650042990040625474581671363536918039929821833750239926147430092113840463478896712539057178523798834908134307731827180385260347294002182156817290277609896692250915296868452798383530160632281088248791192009916462588159046567626941147937469518238491292811395242614532274836413489312808115520968798913162238674003689645689558431854077857576032688591853697214736393259464409731217812891153808904299443287366036643179120404429973633682881375456021188372708486482985465952779896703780505956723948280036052278629326441458998504379188933764462981949303190535694416359569972777821221519770090692511458579973363320309205796189457317178332780620135302710402113640632906467630131242957408660084863569810619019690137138764057532733940251293637256078760574204838042832711896624102369394713137431687132505123127570310621181167147208301834752094590011611482652131929685759116790854269711444627023650002080322118725530081726442353230171871089417915498110109169213427019950734825939464324855093133403117607370905508505587645936115202189749520448843772780827529191621009860555790162474409330248513313824210996998461813660263451531578810983835962816361377631086772074321664005797605481385660644984126686019932285142464919105568611895791548146832745942001515435781803954462420525449779388760639336057651719544942789253419098343025227120075866807954612043879752042053832891491060917993359476837419590734757835765114175793902993926112366329077286807301960294371114306723870168819469442502019238114477335426908258255284712830940163160743885223876417640240208301673905481909385593116604279993497893442543488088832445080981778230809950043122865450637802872481863887956181100980200589052166538002562101829365445800310484881300868812456950916325888777876751274623715796658546002498699803369749488364891311643388012624994163394981789617498851626640706399683856022882196229683519373520263479169604404376733583015302601581746733106651561333586585821059188760686180876392709069250075345398528984801334713118339082912190203613376410961846342183602210284535257579655622223053974681819086424028197026776572074442911389224390340608000526260922377788042883877481981378022502739148883016096156046593216690051901895896291266093864859171481033195030516042746380629113613109557786787502677372100798854983408103520840258984150168604694878163708927999171188137467611655866684243629482716623955258706003332491008286146764744739445802047855584073768218669339220469781360469270712896465669403288614363065573678893236653614804330602242245573543520995042930315431361847910948285140720782150366043405874834755148648385875610164921585777452407899314949995266148010282717055689403069968590124152993629248358650509763255416489055022780570615618479034374591667459616533906728753699758702098535826732843959903588396245269608859825779630979533360305352239324914631533828504349520537547473188106214540581044232744903193514495898983003489329840791287473092797948660336320155318586181808759648143322909953363734910331177743768127708833967271863844726870250495812544613474182962293383420766173026038481529355739187162495855558099737351817459710671326657121434556226045665844877007403278326761520304044662430747860630915207394270061359154664620462118089536738112973194432292827465338707933767242439313284514851179555469379145025619672810232343309860251613735835677601659346608785247478925659525346552307195536023406122470181986392405659963440487915984436397176931164554048180965262553995264577223736419734868994589932367487849403336222583412777458890658859242308738007552520016594622249626259015084999611353494520763216093275974973102098146648019769818718547380924489167068893597571350927228671921254212843775699233104591885775746847102180187898334986970267891557294478291543298881459631981984610731685122617746756719454506386635781680795235202505443307547666239955884312318271805196531343509668664672978509491853634146972966549186704249839090228893778192657834147376578360289752464383636717291339238725257222507914979388480538181147635366123370349882569605405423409989697455366527740453224434386078718284250895507640112337498957905062958132421995481941043283531509784669004732687691000863567614713796519257799386799562993803174322883660782253434852622985900840506562629007119919096530107288106718653318876943459520617328867692097272149439942592331479048360972826767305946723649545074995457943802525061249378209541837268332246711017969694947947472616119764838263653087762561338542052950356652834566193183830599648998023107957883029334312910455004823554235805122975115104451022910831262398465054544942021271395319021025319662224392276234863336474017879989506600597869856055347186641474155785632152347793219809155132969774982434345113574741574850082937840924451437387745319732214119296519834716078171461137047548722008462153788301479276622249578739190023560823440677853247716693702668227914354235957103811357167265674780917241606854755605289576637454659959386321718740543527665671331176825039179620271634242310067024125738414247881528556651271575343480029518281048028679333949030045281619756116830662090231284950713962289972172091293934309629755464029427002919168780162205021050869085871617450155774576234034279935810179462018660828226497139977469663450002367858210730915903815693669496418538701669647609763355893497835534614390851598115667320263397587063649911842375488144328905186790597367447855649067231518306996362973424825460354117348101832653099249243398179334189313537115286035028206737447012122460622513646932708147411108915605351281455915853804909261323003636081826053147245704515601693961519855043726864470813872341112288657777107532049900772906185975260772275813205772572614604251043403686797347420675558008703422989948208390175994681266807691077184889417018737989497629114370855875723282704343643570288751768312339624223807381369134450825318172869248701629835571781509422054510785761981845142815865275711495965054929815011331559610386854948976727814174313248168176180474996078671902300606423885002876325690497483672907190281525643922666101736095355765172006486445733769442334074710214535950718729636984456238418896399509305152998124575077933146287359952166252347477087299103326701741024276434219796102554602456274755896853139383781267379284439070995760572419202522952647117741689872090525271719427369514661686654022977857670987632963187006264493050229456945207119281768734156620554514264276842496024679004643534885984037623489958081516840683344646093684239336747237837203293101252264168564406206039345915015393251787604045482795823332783928438383127785673111522484011746854906511406344626944447088752356423495679107094729238028673939134285654613359623583329719441204205804182592080044141193862126519514638521519477851545237344257762202381891883115362217480754753540710393915222700394355835682430519412281156815283955223277383623780410559151659494945515007867270571169540824429818788695640537355295274575739676363560989950839863975333055966191495252745124606819451954469452074575544140710548794710408571402586110760638478264648771422436145791698796391931137394691190437500415463765148229755440207788001630368873393569490129445358245387560318417525059049939894880388526213143744460505550355577145086048116443247096412443579967953616689233845861343014925817709714671239062215659513132850146322587470351665747681152658901751929016175181191990999497756329932521551381759827995914885742968718867068430102367931450925319669613702573829994063975507665910824782531305941640723694003564578302817827989829844842537081938936586138350522642945392901376360918839271614881122671778885010027556667974784572020866017802343109736599698575585145689883984098115001970577068066855391120908108073154780212762650090843239317091761769845211982763720037374515329183543411582973088573085989248197395353879659072331158798920627517398938972483058947991573300279265867009951910084181867920125388915744354304786403326059789054564233859517419406121649531699282442601753176508849057273123388622291548632788829274652990035728092140832752633489472743763057435469310726237491132388781384079510349094135375410560417542404738467123704354110690310871966216308670459592114079169276843933090006960464089502820497962785296568545986000005661543029182361976363415305627572989479176418164930020043562619086825194383122592275629054868890498107056166139372367228039433020216240757115062713449565678629004162829673718706608586965968170242893871398820396755001625501416900662778210110457218763595519244627538965456594284776687607874227939933319130863004116878685323856720284102407096808781675994884594742968280421661858316763363562663720190814969791553437129838731391456268810967703393883252970952419556877270279779476068360769305161019356195117800281084709871917537015435416766216627542799495839879642968839559984243009114109294399997233730113144246579852064719537723010505824791087598465799892604070822194135734484164334554302951347181230382699818595879234319670567519057255041145048398011660985359970196616898578260985218241904792852652256552314681304306149290404365891752502978769740240729350422401090661227334696964057202936206865799705218521283534275688219861367417215094894510653036618069175668538043134523127859428727311218774306885731632604043579907823377916956519550991022129738332882220276005974634088790148842926446983992113500630799213269746259492209758451274678226250018243424136104922436816085404322704431032600033285567020521199804247449056213189050077571454897895650366707308878396127511752128452082672438453858765824707567550973379779064737216437946703936702467843912881912016171029107785393540230897263594748752883895963873422399674162891790152276590855051596968592240665915349813029450166967534245581052125605174078699592458209856019450945676691685180528163727560012690691950038872423397829372744136471078811346365766475926935581572466987787707533419053269379947799563749328653416006025454546279014951484306711954160285757439543804307696536236633206052851717326472049489396386907250377420057977216884289608399008070361643605555923983540943352765647144447269706540244163552145776877658124589268741694861315163826655287728211706029347330566033314042064308289623885559764992656192377703178053121974174253268700404277248942380173378627544548489698873760553805092876023304553447520708293895376911163812982789105974017510163182021854602227741545507191393488259073166557136799643517439795110435066045044213967704369494520415877340584250263029788593947505608048856614321399421294864885769361066365155678286589188645422644442486784453520347271900982256847462461103066712796933416460303375730427635922703555852438269147312677764151530109884213229203092135972582766880835029427631512465245065293538548192206262466176739715958191674548572262618397660951820685907467373517791106292367760956140125535144690496422682759370407439214035293727969251419928156234158547878187715722054962094375456099459136028031698843985865120253527727460309956555434338604526295246749114019321564396276334172746686225876022761708740224327783248078551309044299705514732804890900877179132973673046635911995588979456991937435322684304244009974429083324731114977031378686134951106120124679788307990296550657358996384786288387904023275921518126379084352348972284935713731456699216675718453907730424777402819344748666883893627145582849545199406874075228898544332945698580244207781319346958278561481204022967496251959149374226091208718080188315309087675131080695697673558197794957341547658385154960577911014948176237263004101098954202882803584244826711779787470132335618800349109807073847428437740931856941909040222122083137601040781080240144407178527257192393319057531845665387455525187095644805419170829966389243918793598586326784030383048629889811667973548282880027041074681514265644501730699662851077775620832497482135915059907139116504982624837164310722703403342791998778703519231820952919119452152962002453426357297945443125439282023063280786482735961752481568848189144232525472826103982041421060091039426455278126609872847245227680975997854162441871398929752438399539265588904327324451995988187137590436489057648993646565904882428497068527581348006915876647109050265731688109875619938395798761400228539374784952789466447066653284797456842691863172553803248734297605059996626930145311604165234671900982892396672108551906915785222031483232700813121074477721807737082145429182784488837217385081821523336119721478295164891491760646512166631756337725392790438532918978754038374785809196553384926230509043900736396755641131291919340050928999352205050631922356559811299878199076339385139968273201235696260692725629665897197929105100484722571860834046439000335886241240913364296309488184232242607915083825553818498867285314466223475286975079497103571334138103950649074788968939742157454480073091441759275014202695387210848562810935738168357081190062069633123801283395331585549796959984533974970567509979075672336127788786910215981194348903927862587845628506812929866886062944809220971053978308387350765219453037332752447452173224152829037405029534949907807972657105713052636422344955399761557935033300463335314245740818719376800029346323238402840843390561053626865007404167882082811983181949717106634475802840018298804945708359101172808010923576458416599171962941839469843130339412853474056118276531961972054445062935113779662923149697459477093383665394057953296991924658689048745835801720566367092670262360380022818334843070610271761513157421716270128225443877880325879282278348202358146692736044881937446052787416960479250428720561397436111326006304005418235754105378796774539783385607222824113688599868031863251549732395610542894070293253059943275141589636275150947478509096256228193554568182210030604340214451005584181398342051583729267935953423579900431139463462766876721618153862647195852192159367313986847775799232918072420950375518346948127100656318675006131337567436076338389519768733972829782833620461423757663557567906429757880302867087814593747491975319595092561687961409199905464898077590292483415458426637304846788268610369068953169629522105118159419413381057464999393528728857924140414133172460357596537928141422989056173913378136776009379638431268664621199576912781572643534443320601540807694275588792932859153924729483810293206997449138276414344182443273701206846850259181549143499895345230259896854486786737699265368123478374550129654716408961313521770543491646170832605963258593551808468588912934635139512959350798825255646688198936415470441890186935834480178227184891221605017940996768907135786090416275282576847437343228894580694052423879052647376960045648616624911602336014923010924179565897953562398012838094323142516749927226711197901939417579230237091290179539425002281202611360825907201938161501984015629621619397162614692675138343566348700101715065607105507891570023671228437212379956955828767607094989355190260122560472971816466297559935042357455190918943240230374156883980953448604261957270309614816382481917320361942625459652769265877083184382720557082801369746963916249843843895238153975272008971281576924829409175459338693767994758247750433373942657823480014805357533960760243890151200425956713263718180712528729078261768414245067595998085023182473047796779607966879788535621905279610142756986441509381778687898155653444843195900872153257329557308103732186779940500177547337315416718841164597132566234806492078256244236897534515784450274431510855337566842052305463696079406428237058957057647987797865954574150085398390259089444358382749601870879402782788672234235206066151186981593398185170984548048183664044392484623015612715121929195507716123227692382166129125992913807770582864149055322862300689298501186573697936863098833112418861160027471343141842101802465069184786186246743658434861760634020289490658889673492032161506693700670829994488191418988450605017219462507812496532455245231315424595867465883141364903709900147967435448767351421902558100411009123042174856834279810842827894529426589882044048840660417003604542514007443552835671695958816414527902657797472187272247710168548646739660804672563971215731030549893458567499688028499728357765366241651771250097326253344437882949914622917387537829955944677890699720252620037371512453420189066869785583843805268566455782515235154607881136538892062624221514616594392772612155626388521001973206349527645859012378047495600060513409846053275698785348563117961645393578260567546953371664001877629882715024030947854135391156089554955473673643516121042154222289438213606185608139071582599922750703545688099735257375610751238572590681423880702627251799824391799745751773850743217095233743387148466765700671151650426004562588876554202806455875599431721886976131285225110103660051529353497224010946753365376477912789459149656275069531630720747721905820060549438317943992651751173555511716735929633856993516644589221755819077612513671442205084875340229663609832590221347078682102248975568557825165093635831200875609853538977441583915621862391811739135765117585726206772113108615179119703959087185324856685406881437537743475243043242028754244371560249225269493295604003052854230057056124807735179432459575683295049832071823808445383208663923477262846986428502992629494298766467961039537646798865688161941480972550810350651807266430812962104507656823707596238365196345167524397004248199144534232641233849734025316446294838130408109125632483361779419177438431890772940119821406035110153118598880080272423332951116199139952362941692724778406961363341209228270646682676058511640750331292280956654439524971696436685250252992322339451130043336310268570984565630263470528822670096349243274407247744058772287258613324618306261019669738083532845280103837012960788328037352402175550345326036790597395754505901135835216452303267874111076280527116249000525338375819338897499425895879419353034194798030995325168889574607724164903892884729474398865349468914705855372691121209145975167901193984566209849726217710300471421586281637943496433742292625122922536406526998671914589250723030961400460944019484393656843720751050181622474819159683737991934872200620509939625147377369409358811383678622264228187137644751910141718361938406385402535062993951298739021072699345902748351888371154447397897354682253647921901540096909377213966783955369991715112632203964632358699294439989493414334728798195097134429174605717066227294031599422505549084044550689077691293663758072053877459778815768287638131213178840474816538897980093307065282451720846702483564538341192030566272524028906448320967868335627006707504577202005779100272209840040781311178768277036862334600911626286756916232641391618706652432293078030999163595623769025822723528123321271691363937275119333674314511831222863658504920176960708551639158974796737680297446017504994615514650766455439381000217377415407428604517297786265575570670627704532969359591491157771383588267701578557137836508994986147573295049597937642895525019816964901909387943428785211781299841349495812253802101561767231522809441791005883375037817670734721289647330325305028487514574842383446846709673620682494159397707658950227060855705395570851149232208561421825051530340425372320774943541783018867479023210204959397462243891529630966317696163615470753104596718485694702813449101766858171797581416566483743585091566406215707453131794359222165970776170915794288882641679946607972278410542305777313353715198650522120670629142379929080627303268346694320660653612374116074386532821871165361837839864108026710154577108967319120266065043631153640707870967321334424352006962379828758126732132429902343773961913199825611554419186075262475767792821748294391086743612599801453720061380601619019678975638338912256217017347006703169288820602662324089602067074079228636490134837078946494426265178143141002370673682579221453221436005902996776609946933435316572631377258639427415224088169479009472513399606324833473629947097668080535142855702491069543549279519585240872652470606175344145037352734252341535413867265969362038832408567962638059880823804056923263599640145223481194685183606416282225864543310661774028292094125667604704937112121988139101629059802257359922424260232768770032713293219997489846579478702554677616886699615937236200374983125417263831862699839971605452493877778500144058991620404627151240182064314995677295121736823570076088888166173979032438893882522323138606733519648583599383544004925538524782034725047692421479147804711348229753352235141076879061134797149508650346926420387974348500798444851291505943016367491511801565969575195680956186767772981015564286099779419061366561058569618774509172380047570178641187620795632733087128420173814999912481993577450182601305221640298763692809966361315907264062038389526899875044627598620351636625146313049813252809508372595946322724006031836285053884231854402310035489839825999286358003239409861001680437849998119459753968316526898001667210342719563868191033602941645145559124611141559602250083420274861116184663859427387561005373528583986935734740563023365571830824334384811612950094870096591697920558183307509930531412927281088118511844309530228355179634894847188687815925472891846580452294999797734829034035047019873946713797920358215756581496644335952411119590324513511412298118655320814164599663283825566532015130781338873525478301899374858821915450256549043306458740719488585526689142551370737191498646871577013233086549556524916322388123308086643405136181254262432644893439776907889035551102445900418776928473229754129378741231038644237224649888100658773773884299578767876487411952506024981153752807093975121572452062785225728360943007879067118110786106326771422564859490692307536865358103282178605909802703054017356001787030093058594358810067145338046914370091844231838174048226447699243341121902967051944549587605058704518449821484975209189855822267946828598833097550505272891348673042706891324027786321303748947935559818154658764197914806861650883880974927918515043729995234619152995696871077677864974234631883081980663729023591553166474193023188405437819264565559125162174406574412171544773805065921467392166490799713932306908243343268295319016701761933902823170132725943808804918007769777809411941439206705036136000946688302740362166826924511543718737678312726882935193665181881384859005802589550795036984892789946315109088831316258451174960277465814854410971349099014380092981421315379044108289367073441998476672357651018108725553460985337526511907341553187129648515106959574994505267351205472774377269109436598725401479096169531667274308894623289778513187491922744764604091270145968200265452439209656799549745390709141145913201486583371245729932296230192172167755011957825126894839491407994977121883703602825254897175414792417865957468434809328049090314914416707096295339503971142981925475431726618415882450360096927974094768734165428520237135372321980857022851780137950364071152262853160522227177511454598355410478150498254839976939723537078105520519703514449170173491150925388823647888945515102685362948825746529418385458378608462220679251733066948244803634178349001462212001725239504128517811482496472550201356305745447277253908759516767235486690802410543992363121735270664278193354983521971314802214521936161570619195504062286042476844888944067318109738691307917661208040811094030401274848890169963925079540606094990711615824502185349951209133527076104804405628393770592169225591312162868713901090757503834259566833932546000355569672835599466862317989954624829789396249020644931437318279185292261991394895410885242866855093559309647993602465404127448437076782823491114684974470666488402498455761056140038658147459923007257736877155326368596743885322412355313495360481053624215862588319265807278444720082392469372169429029062037985144766648073450737867887755737494175263622651722281341269598793072810870591510564213567528502897933117299172219645407861484294597185691956700730639763627290162977436589158787463096903012519055632984288339639759521069768570516215994090335171210727264667945108160086609219005809839955789078617208199704538781094657327829975213551780450705711623944993903383182468856504275346482472655829342488661262136045540547782845739832138140973866147410592687077600349968875510039177440937898305304023609489892302662134798278526139948692290123845153868920015911145460919592715674944843803243767446141404943635014089064458651504507847973021384433454347395361820847817897242514668019401680714002678387950395193465458731284479798965362149915912595716363301830297880862762968082996909512805865700439129136541431375788301102829908599162848771264192703653226340479104083459828420200184787852723238118657844045509335292081157088394518118436421591224470087461427169297980751472480676739670271237282671147202502150266403547282652349625469404289261510156466757913313489494083187026639111798645482374916133499016327001873041756548924820136228135388185638109588503952434213676242460255239414173668701575207012544422855813381985899221713609554379072891101262502935663781091096155431770693468206204224501633144280509746333426322164415188096823687765481166256076603792394498593028574520927395288743987848237615558454804014130060730277448508385891118243924798155008036610931449499008259554344245967376732320943848066462153964261648218190910429783251102299054461572011884262996120057811266575450534625506939457691113888790158573723500613028928907403660079201922604082173085655107536783097490119834443090082271313146980491657361179402626166791054629650215852592379337126757076754427102488343778988537622427866150023648352469113214516393634772097832210101654599984460801958521887406677173757140540566027761406298157571096552215407778751301516938273523090608277496663473251144838878224024121997357132400101704833188383400156552264005836821640205243439569688743933508875275249786758254264463886940961520227460426670586644470672257209422829456411402461773699893214970746333900571282468294822006888405874792932968089652763236391837740303881329154347443564661385706868727036342123423862803777230777611025964668686794581884474188871027579784436303531079299381982172061187495548261334053232646911989406921575865592278410851214963592008515395269380724721431385098622411134263198040084122903011640522781708674253688747555978578298466012144861796890362334846447914038300381828175146999188774645216805506382469680211019007401795411538265755159960136347820163010820767168607759160200574761412203144747051996577076206818121295438455773589046602698834207748200376537967277050778296432973976007429253621329154243160628992079312324597936450934802321896751149716050871674306086998137464342569338454592169542503549438794332427212616700778233354893013375132577629163734705464543098193125220197163582281491823965194699783459063542900125160289975345494500272055022333170310592819593471889275174307499777467672617583014452879596541530801687456332523361618778695891613190399097090550530464113741844099591682415441035147442577637757966681472592852101873693670355990656750546044506900133870167419071903038027174734341735063512407812986076040003128436381834742945433068324535503677782874231538719140671807338999196216459919106785368217293011460362633163307667447286545965855222352540763581851493386457625736979197268794528579923768802904944771043586592920701807826015141936750614186118877450651257540950125224163704151518836011365650362752212274323812562738599535432489533910478730203601617330949913280502760794987684438329451715420371083981534605944254347713710959021303904285029157797741028914261312762031089056314075335978370308350369493067305358355941163221994522531140666678013782737771965449880130809858083935351191478452308624651586053674068994430193360440038743664487816950942218651222670715423880957703339264686005902917433608903471302906272887745178161293584333358429857119263149038630146383930805446032728989194958293186003979323194728558000667908733233446611942652620076319821254467236663546726802902049419799002598422219575465928910555791127023514495599545182697865201633509570185301390119418253088770575157502837762325347932755647481341008007561427275598390136371934978877377198126090441595278591822176274881318272208582134752674591197845235128050702658911569157043976215698995296748193392696821921142525339038032697520163159259694541874690716901333118217366875858446633400818191675813506841771487771705244654557801323050744460974293912481401587819860726141317028463716750404975857716132872773909141020124950773369313622576631496984216994587237615233095797965662428935617855847655576412265692085373574540419342428731982930305791531083325899147192094429929005140006107149048928450451989478743232278432771642860475687819136776832081809897740397321371039654653179878142986834062655904912540900570824935015637477466172408512014062552747427809825545845038181210992974602636816758565808194530926623688815119050152904811360373180257267201691863577453079103933570116032329911263637884312853628905063090279377045838217965089750031410538353216453284011416133016091726436207281152161359335556474495438704172955738007745535184192465414927180232104943599630182683098713446962839353806387928424613387455666959001649597935990388756694696261747303477393119369851453589959514368684987745038732988578969589132419680703655067822619467415261748547900025220133623766574133719883585567735500349285129140833691127723840795274797993324392721217718056514512385457585895064815631394308061363307807551566770613964441635328958103903799596834850901755389392305769929902971688651233637914826137168802425734252002301922494127593723832356765100702702297642181054714400053237112616360727378514395106996710063060297119624359604947160897527865332499348486024239803279771587237524305179788724496164804677272264481925314342490400841988807536245000547385937709871135498958841540604670802555049265154727181862234649330956916531562525932524956784232053735547789909618763400652010710998970248332735649520264089738803624208435118754171895351029866610505387785303247345307764715169257037800207191477029245981836666805062874678641420869110056050486463342735807768274659040891171676098541145496208586727877126105649373082868806784345337542517004508071179887848110900148333743400607436744118021008317786983694043103126530261312445135488567123251454792235091897402412987901926973877616991083435897196451659366626289312796393474023368981233717257677699801030789677368603600714788940083605732222865397698118181227026367961957953529165509365981500058171983538334916751378846323916422092533391489187107586347961829693561831335252712811857796365372431358149846450457565695669204404836529245184566673383279975095794508884996464456175298471583083799312612849997982521050060939945816147137191222917477147152280949425218486654273196871231815434606331341555856072133511413349154861849638194273771004356553532914472015342147003011423005508080790341556278775847941504299643393409378376751895933991562280965030327456027044075173820714498578849720054981067580263016766788249517884526446257757044994868882137040454564466901886334204168877050798900235057322044490482376902340274285670928632190811728232617191771868760886226403175991732229778317469579054107163783541622668146083927478370572735853968235023281365709635167288540449634494769565846445976820063598369682103231639189160914975322645239875059103962514089143383168067849710717974467846593570328481705769289624578722391459123706359609187744560653122513377339993785790750358882387135726573851086588535035666134623287602186213541524087345675548311458382598113649635221874222022850736885148796781475239218672439071580511836397207066486976886777981764049363379382646194240236442980273306200573958412282221840875281384507542457194877101287479331673612656613994961599818824227698375731691781546008536167627045047322124920669152706763193922585002163820099633319901954101132711478416543936069051876355294209485867610030486411344143786191093937367708183236443538176250642429968353697538538994381672252610224255447357727503828651172335319109963621634388016537130967111861025159320730365077726213578236160323023450541150392928568436780283668254578704853311899015575965020576479145416935392360674547223730422736163332815448445229692236493131933270014490091413762925997348496886155002123033353513285394937178585015970986596094859588848181245944812043078917615853358501960039442402702840177329790624734251448548902074913792506132939033024930503868878139213326801986340636930986816545190004830392623239362141291644906585303288332533577011517889292913500996629348550669422631211498535481204091108467482032769086938463258667457867018146454768450168357013272590742768539889068923178200668666342507376489404843542821807129949480307003229935998995157568197437731951068066665017134016634505771001029486301160973914347971692364183432408237394937749552584109966367867309419895403310473093477214247245412521999953899929567681747451992710633031087542351796534971427219719041113755016319322495079037332642699723361007944443386458593345383533948203376645014070556481573032601120371460704372840446332485144665900593941835028924608605768015127052682039500174050152278080382240043022734665190348767542455952041983157159637717412405342018163833385729177312703989510496604759281985807236907762088436186161343585691579870531703847020626913917560437321531263295646719730618563392485705231606547179922987572196191751391480807937128981567997618131815904933871885333716121669358661193222280499873435785256081655254605511901744245177141610777562931762744893449961401872000915998779626644884441752989358152857071955638931135743025550617472653704364702264163631074562164809873408557974383519262709519236988969103077884391271570124751862141509537738138849904856212552006167658991085818211226650504371759056711481378417143378495733842987183370771818395746910878781094719096963314703589257598679308506615761483534456330436915108837741394522182393072124090506473850870967374783050751190406577904526479110263452784937627530693682039899371134397351958240595317439459513033406588423103047858765276336715209283980051556464112999780647116049988275700051130412747101618646612386788586892061252731836055788159786736865034397874057197430597123939569760689309162002907845632913985658538522707369114292945537875828954674693294406581811630133331769464221493424327688941595068450280770860435941918756624643546431903018688848012529837208812820723097184104313423383280482844257345882260531400576369650354599443268330618132872008729854143499389334081452403767718273920769707078668449993694882891385372040759772736919138005752784492595803821839580026318562237546453613913995603519941857881161307391105629014958724140867197239688789813919853647842843077817004195393458311915923234033214503524450200934683061582033078455941945817846919195159356379617722760407011912284759286749051926791393318097949813435972273797294769561971295053347992390950494152115599404424708273957972207585370940960464856994131958646094195981312210855365913227878857688136688892219896654522086644804053423828061649303562776958241601664621660252434103857050118792115907985470688872876548424922631104217727916723458035637348908732629463104011407903981530043075658934567452640594432314686719693532999462141816188500778176898084280835980120642504247979336833361377820464964626920885445346666237550173355249976483790072449513150638932976213017079598721621519703116002450523193000479732054197785698060411756965473231046185336063552113509613475559964411587552700851461752189879531877249051013258203929795759999738840568496935492979766165383759951152083048718759436219786945531778603944433223533629567166665334993847836242839251978211112207536131641712838385386472865838173596677747460968290230447662423605258966535182388854545019431912150250720838440291234362588867195260373805037161281970393521355723359944367089497181022213007886925572252408143108447538574120161246007501823174388387853963721292275124191857227009657894062998093499137403514413754644403151344749412508777567219119115310308709590175038380616977975205832674589651450177096788661147528601458054143140785190030940333971582134709225534183556469238815359996919168358368634192777375531653991384174880128860670327882162549303420567502557990407103935390345121068869742465299600536353084081377058535564099079882325432942808576432263330069833841251944611588207281737644370760911028318024685241253615688544746703600436221822617008655348014619339056109156489796025342230257897884592046074936910267487327264191855547842443036260181984014330699522832844233100790377117267110597599980239155888228158397726760734799296398251914598811271952131614208183394127494012189769067181108007318968186212312540893872019666660520715571048984089600871295891663088823808791492986053647378853816409576904986559409170025472424245651679017577622552707601183553937360246834235795304726325530215350966548947788392498567037128153594430063274988199012953338502495719387392261808871233368050981470654390212810800342735107548606334579647457699228364003130625367661263431152661087203081250545868537086998342337528897001157222130338426851679371127346808439809340948976189215170740471621631278467828098880528429018538579257856192943393323993008415560613107149679562831583353788507099306546701025765935741955871899163850954733183214315044405549402876694727451122454045614648237896915751014260477767528907204315919602819948549433348159091055230688914371323279434727636636833179412958969748696364461813631108332968143509464565518828925263034316216536347227361037958136659800908074178112502268418492852831534871798738626848462494615110951507040019979412216553508903332160022781817685926050488599224699161096438242437973192395841713630850135014790465648776895021866922419712138592505163911984740983896032781352143115415973866424066131864812567369144543880707956556376913056942481180146633029815374899532034053924211848664108764598779634654342663960944588891309590223637240246856446406228146329877514992675262485599707244664464176446123532611013415205847246905585561865400734998185443907342465206868698088621280131741277527383641943621547052114652300205902731566410963573677012268475528436587116589922222636921181857086619425759347582243952667210178603253463610228093633614192993924269537152422991145709902874201959195454758912826147580927100235459299206981002487691550186908385444197656586739115124869610399338211458823653869368196543599357521606159447531661636933485872080806114925433310391602722643755743887806958584805539834849698738397463683876648024138096637563169573797122952146294767161624840812056125060754533693953556315790672705503552510335261225983148777337684803166055317472229009690231287633057572836697656207808355987645307572106010597179141343580591558929956740754170268572187291447692824755030234487769857338200487702489007242337542217819319693944144205051443143192933439975209543538329555606159030937893987765051842744365864634253378037852200691478775606062761919981361024759747339713112169678223892270187123574909850764875680478124966856072886370289428142681969634277580992856957174086921874259126751437630884270910806941046583706238812339046299668969395026569198283016565631802401469632989672037955522387641131873291450510307911571664643287726226135344467859075137203041286415274088253675720812322630651300759932207357917261518559307478628458031106221171774938528762001980364849432625348642975917624427391745538678425510720501807205711841630724840786713759703293581599716836493372690779886432118594261355253746037084897996351022820738464386469378995795147005755632804449214595581949688828961261797459026231350799256259183467201627910083530409747381025893620842192643573381042104834412490515045296305004116819226288308194951481280457386715891548078124930151467377425899019134578827699607020382798216909141431540624702795828322168094031784035355423143885897726567877071589609644516167602860338079100336608629848480286760664371680144644311785200779335769351276668390364690571178605491046792447002817342229422678004652121868643082972708028361719319421181171983485881975334402716100332218355980042108444796780880941712748007408338131691355913027455535296821349199264649610194412028923653816285695167193041777680700128163260929647625386784036730399930158997117130350686258280616622805616818753662165751948809312720640346606094926678793245218050364371274970074577660619144148734926266459673847319055898945602351681106106972192351782368231815387805149422382399733991056360536976749926700789094146884574023104708151170509433792336565749273490181889033159943433062770435345842751567959431577134894526759811023956852029337514947586502523892288360890147306743770593354528717645285081414464909204782683165154170130204581307669048537018283527572670670731478121888916623650427360299483486738211258160757264061963124889506495281069860672437015258914883912118224702207962153713538874244725156752611663340609278186299585798779768814035438093760293856307680934264875571877918658500970994748526527754137112203622792959599113067299976882899543373357702134112540167084214080983034559835348078417559111458999357172805762280804428807161874039759780209092042911936510313984543133468786874892876639590125982437732734543928035821722776300032959811066360084829192735760296036936668382264487134108208508168544515996239288858070745456879074949309969250659924656882770178244827078167980427913517097061273858010921295264997222708751263719778670438856112496539703203070012156066758231723166325042959492647970470611313402229915814898828359873589654922096546542396298849437053153584016861309354173327629750798799466363951526649240810879778246686575636184447396161668728827762512893455890994594431846710134244607453688109830158666656003949701285933122178003201615920818687221128563635323323293422416946201535331675118404033892259935226330950306571420597900191639946452074566755825998915984290382804755883662286933420780711597897871592050088662340269410773051187932209025494115989613257512424199215287335320009779710071948248045129983867716170185439421448553290314671616195757946329809329220719272517997009442721178967350151848109605350232409794849766393985202743268432080869107840771497445013782264910665170884544633782619955472169161571250559587827520846733907928290943303043309095853130520136787716372176746119373226922105128314282660783843874637876988453842990453137954724763095671280566202468012059279412541380725386305938757564293906554980222815361750918400124039355020178155159293032206143144350112017117733634419089504651417731525549889309178693864491658279314108557910728778529924152872727440133607964714802072008252363418529462680013032598861368652710413242001357439690129072672153840036867131598255954593223526436931430592990722008424419598829371270415426725213981438419896401138148473945185915356633202554833669118019172066393940294776860990959234319260416230821739990128600620151947100902695783270505267046415095466029502266553747842195154253950075122097047501375790854641322290234624169663945420159028481769901830079906584343431721989489528257055982414481477876957824941916214934876748526822854654569411104617335091769827947782148918678941429173453892252991938762472081548399176342532713314700228024009552699899004431019308938839292948646498177175416088913234367385217921107683641074597862786562954792625882348944714991970301263099313636609237488150338562393867468333669066757813858360168548388764998407191802645618972119817825428953593292366716404395315694979712928501668974431319753077928036767689580923480200397736103370339227956595930665771704404580720437345227757213204363586897939757544312523368329302324276551819087775894702660028971341546349134467187786174582477305849655252024399121411874703982738700767934080184768279565064364828659578876400879795565695163261793237991411896535023900319687332421952513429962427775642970141312574567155789477220745042564134874795752576642101471035206241498947723308030232866182461250513920684943640052746476525704728366639472196768008789590940367648502149748789004970918318765034898135180472005104141094718798319681740070680449193820655336573630373493575469577515744649119240836388679695972011326570458475984492068046832065086391881200098402976317503591549306983019771011521500755207399769737646390728797358227874264996775834684993990088118628629921502754158151568767189757017478020799962781876633739496784788143953676777852261638259761734428011675714807211541089330230231908585270115130679141847122725338724761246483383908244963986848575341137737349966980324502987719238067812977823432249128700664342818734379298055022787498692349517692035788906400388869319737402061194019706552978592182780769932404785390563786139916455256420133981589352019835993707569204625709454206345991765726726372950836772536926376557530161255239077558089826932139183066203100502177867341399176997538608070160179340836049365793203370733455857279466669480240628625699722440576805620263882832845039422347440681685364708651413427874840979166911823302470216175519269701295054435633294900447099428403273158138217926207987942078874554271664854559150766604652855989675396586258478366226532976857219422669130641722699219662632721594192345173317420142909044836413610345714254640415096903887329251010824782802358069415013818439324662509987360617003201464506188547825405839456436463026201628492864499704157684495364714165879362174180207045238928566026449167625343257768447593887452006718520145224074161639401816337832551104500989934657656543577251453381324428634063423380773602378299306296312386173104300769450605130487544292160464549932494607942431679242480165702317251187123601813018685661270156886466310162880919832461829684795935524572574268462318861614212541234393001450544564861961045344730608902389098284263018304909595962984807726018194032597334395669910765786703344064935269005309256553176843449510963916837717595417840116705893190440008566991121708957371009659576057080501252246973473818461248658739197811018015741765487581618808368485964201698836839084125041714458055553635097858220405895601876880541478756426936602055292190998175994919990436279764777431780727634565373098754064606568606716663466630170883675466546171878349817283557833377061212073645418992974992933023745005873471382602307655587081794866212510876208870807964458563381968948716839140394715811585934094937280040660845458405196432977890050415266758345188134374342926273439509407726272958800659100515608650484502610502614050721593651124824667597811235268775265099182667543316076881292952253787752936045352616825039403104934796188286641518760125954488050186963582158848748936334056884346505062328218900006886709197179500339228837213446931868065245484826899609924468666455966498126513608102223224067977885911299536664760726978521258540172731746424004351182457890135497210286818634436135313160963664204147716230593219004133431315600896731390637183198294991197821625268916663367554145969760611658682179046395075314366754883475163748766898639575468359561848435208397078934372144219927943575560106345472437736575660968200270428413983152853751607881936690352594547224084029497082782820472015413875181520747780092059975330948839123300421551854195152289951823443443586807783245962200290740104619225304259906029304428614463978206002014758305246889048512206298144091180948070144403949836143157354787171285169851126606654644728481453873725720504680926641421466857236604506822778057687876191625973339328923878294562406687306436267763445300936824668685299553576179688558789426189758676643987529283041176830797881093837804578553309771703284320407617805686783699343302091808285263333029794938687925938153710206226238192947133994588327508800301805473583802260636835026257951655646658754274264193493152798407392785927049375796951783276625881426547490488619779562304724999508265716529380407918442111386352650005667121066573061543058115610799356810661630231837448222970933760298511829657136751452466127120167635444945210413422266413947310143915201978246428927848602220315918956747202232784072370957696319645491356130663600680216429925362940084784231203840806290598265463076592604982332397661901539287621525461710360265340136980970228914229578710817277457560291663612229868898048755633490253895546021452841931771042214974663220950591146752779628421974964372926810038006571845880947631122158989945906056686151697063018990401707847512369419291445496095606213315096721990522145909915703843974977602095329019981312093264968719500437838817121221569817803969180704448755253840580450630914368820928584348063099186167651856407002847749587420723948914896907104116313608287718332416577479389211547291725361212468180386174776988305257389088241549631856594479635952030894952785138273577824553165249673749965136156737839966611022008394508958995192583946960638083405851148341094420520459931250781519214263805790354824428727075101726734423597792662017871943635568241471771441547144722065720922700832756678022653498568842898286007109912633164823682237780559512374690478020572332665817700736234822831429123970205409886641432087233928301868967993429487171646571708022270485426620724754075091524178017617055683479903722176052357881471063459317472296408058997589172078408486123978352741059045695716117812475582324657645346125313325012160464571244390276625523615080044315632403611622622296336632279719363892250566472458279317570944045538797159383610981193763467597659982221908463637730995733498248228209066493089699483617625109927141165987000491989462801213127859027138180202996888601239988193048637911426897153360204585688351407117080294721800818301911226777018435042085456250805926963945874402219064609232166319400982142078805601674866760808738868270415560389092767623536251606644770401324426716826956877642986146918096355545884662435741908124523949123590570266171254312824431066070823730588621151904113547189991102450517473069266480883562185828759524279387723042185145841955670456835735366663484651537896255332966278922743066294137918217368014561312234998341057932646703829158610285706530672383291261457073449024506453439285970537359203275640961678361758963135470029453567147641685225320320171421687455695923180395949511158035127653540085733981347570716929877666056125230744069029795343129806444525285543190037965062674411434591608990210287410643629672177038983072847718649198786445607577240272349568860664792758567299259384223523932168086586915994929099392831008294140735458966127762589956465889541432312020042912735104523717497735031565243281009997733692805904424249955786607425172792927893612255951457274090908838377516924407049248137601730105965250617349495855968377429545525244569313768966940861875331461252740337891187171460667335633256673434784071743423473291239773543187128445725125949561695108779695711000480286007883131660532391212966043859935627217055188319602717567126910325540135490764951124491369736164109034889587444770920430741640825949465468354359761950969247860980849211791703388371784245396955271735559047233898051500771442098844038993051044865017402394628970814730083744058982919765123518760825827283175448552217942714141717543486006900844982975378528546937577600939154274830087065384881741839984462398071629936622326305317544335495314835122899258481229853680881055038197939099156347619255712658642715025894454432582776712860184749935280774823102066170016148009335391675694166362470029356892699480774076059684322404528869790160156900054396919791720826963975475755565258460471607427161569577381204814454460345276504514375325912305591962726273418746199298337805373305837092516634235186843822577160894985806877645474948297364282447704156541652616984044098024482154538775014493218349493853239276756204607488860634912113598978653319001019717838697945186089231720796136624739150475617837203339116287694349850630159668874109322944911037921027407838326655761176357314499736356149755120113921958036398932275035507165017031809008898857265260500567144227589611375069142457114115017485364947007067344990765217064683492141479984842713820783686499556292342443401253857007420274806364455735219584178969359007660944208681409939747644195023241166335864837538342270902034063255302635933585432543423962235056859847035166626037613130565955907211819403995342821208399693477557434021556993084913282718779217516322000352248608160125389995856438805849404673619910464428777043432360554849947212215785645123384065336588959942168327973937062261402903387330486956038457889538811453742532404418679655293940382577765573999437260329452185876055275056543403532349588186251442151784024384156039637076603179079969550736577189479727027532726009808854725480002119792315387821577857175968116591591086870749691485762308008407155098608550430134827383039669362342050138102938037563853487474421379803465204520859522954450294401245994198166658193519446807900509175432406233215053568338053608710566278465214022240848372403617352836491130614437802083961315661570572930329673306186080367520630842343677092717241338179152693454426719141202850789327542273572873908786493154792505692491679120944243084621616388714131587885094582750377979903314727291407145719368804097820632012129449684635763629766400252370524105112736416804351464142415577529149698548574506867569818990692604477097761371960014660288962941214965852004733496094487463412013124520111337324809172046809311933802833382204962351905971896185165751303735941307824018885133522650100208308923558613959736271525676098242815973228648682099874976503236209311900435929325655303257952116596956846661872061181559796493460639939068568997748506128911986348451877330645334122678721707839378141687320954212829773016809608350284301582653352174106195211525752694534728668442711658197701020193240181184374065845244140053212090208779410230566974849220271767182343339830496889220974740781759223864299196595194815722600173600798761299265537526347067859404175394824866249583337363111389108336738826694257031285213426032806860102019044838524039110787950197382059118716306563814213388244677134499051269643213081397574466654631392113838822900194849363728859975248153183681336176468537713429794890799067851567177607735853737190257270847633138128234015273351378299784864698760687922715378230279254377098350543246799761550712587891720503202913723123330973115291963162814066894541202561377360905020557523658623798109848172682207815892947421965317339506937069794568992524698822162545665363288580860999439853118183469431787910781556888010968957254240409778527904682059111400356670359647890467596872381985065043186940251135563609905085186809815288619852058450788227469995096821903303774558383575640065760343390572607313550190255313113807635134439095464225141823033495450508978095484966379955396890610230443463503495699451361934223743261539151355897208254629736005793474805532713993399046894098922310116375027321450045132623267088238696135530685853157734013643675772038790734877743859058950045604526327581349542542874377163507434667730693617420220261931568513186476991870727586508726190310698822458908387560020786307044169713496001330736743554312721796872655427194949476943653610361319519108684885339391829346962549200600801556644718033400592926951374690013676610824401342164451664503346680724532739977557764539616111236132357033716039024940283491909263166314531489895067755094901737371657385334868524589391584154558245441834388288984282531960280179978818974348504672733067531554685359735228848369248841169248444409050687279404488663736777905844075750278292001480524513514759928118060920309554765122397089620826225645722061754746545009152241352835555242836709789897686701922863464604728155267268007211197863076372247112328780590037446147943987730784589899832201085564118826555965393959563501619750741481125233467944160295723744133972709219587536311674677208108911917460207983280639729755328728212931907461795822644039679566448331942057285581317664995488939152879421142076397677184481879921565457625642594451563946053686730231576136539365847135606464137204057515523231764161771682056900905845372869607284494093718677509036333639628949563550321181505983499849407132321421069879983716596490502613637485151235523069987448641900771387659137487591664114673345464270376837681054435888972312638029441037119222204969263840575656853554558831208919720877931408534871973413995933593842191270656514957907182124412194324756601662492101010165841049055614934691171946939380335293486988756406830529728541341511836479250241764667329378145380340592645989712126622329207587088266697709200571719255727184267234984192433341724472803082371010076685978845182074494654922424715228134318012025054445731364096862805535475957304088788871841076937238242907247729905345731091370033202151912099860232764651852305049581826607136760702917949943756595686473530100190896517657930347100121641545029896139576708387061568205311830987263386940266212795909881540590470111877814488344008049188069341013367254331820262874603705643625587861984705390884316950542207146440020469546385696430974211343762432626484518332892968960636198673958312313859367420594530832992516767268782799736134262139130155553702108578671762076645753153128564202745671183087079931299178497711523302266059233865641094180388326958188187671943578890284974595738831800991546629263142705278121101077019134128629022652723781545417790997679330278352564128101014942113325710879370524587005698953437373229472399413421913101889590051461332649669499669637836271361244791794791999752800878649983546350188173963229425923833708547497324423877055768423235376229214343860100254414742735480224202405244148601045529817959338021051879224109036902374345572786010665367620619642432424385641490515123670231401383260138031864499175358899061832208409303805534954690356812534710266293124343283058610302346026292940339456270255410292685858186033825420667238696331004778550172730931394763910959673395742749208826772347615600472298117526046112199017108605550516524657959401642264390126611105537397543572987210528934188313184460099175663460408336504600903506155042451090904018012340382747108521982677907252709914382031700824103925010469932002012652610248731982003002799008143360290598269343268025878046796725668308540775092849238461769607853742261925834215421417874707557270380428725256863945707365196442628879584940507455763324346133653598381291809370325117142784203140181652728259947748121164891765137911437752407533509147864197518622613615862875854648136430330320762632451123431958169112168936638331611664587096794882135910821532927312812901282360000811788042231070876476159728869449924886517057295356400241408233408842857245658788012387388403296596436421461219703240844713259731949379537306390871223584223569116944621538292780772525169637220720117714405345049700084185763542016003347841872574100036008549740681251156613068787205689095826509541845673953270981664100563996359474152313441703946322230943611214450461035623683122105639417532907983699733912799838158480993513823934018183844403547144970299330257022777034594409686340472496992715987347249846631014740168369425684962309751562957781520330174391448698930063194521605772103075862966912634210498449409647481930619522567014681721545827366547895924485379873901376376574157052583430089604583914153524292264418938216462959076135484463761473793730165979863444446814191634317584606568449156228487034510423603133872299684035575156128491072737838357741719895834023742775309120486404348563919090144588333401231717794074847370299422134762885154925536880334705952754565654896857321744167593753733983035015896540881894323425146305203050593841785023331266051921446542467532951526195174403965520856997383499053823957731048731152811152722413235612028728873802240116312124802331971501189603046101934620597243941270339671645084148595893103114354554425995559394523288606185903988233099625708532545540950329052505482569904284713456197011268994203784540779916575206487190626200658856234720507198734873678311129369135512746665340857107282457497325679002064665420419456001110274078347178249653347312162591556423956143397217921336260169735820807301448531333083611806812283064975798825009758256671968611624072662281243493611129908473887551000895686687562850737483242436962384117135119292544002134101758857463650134627409330014082938538195253707259468974612441198903301979397467677069064277859114552260827587586612197884281716123396100713280581793821369494354088509160540988966859391279375453873346790131715109406341512216731839090172370000468470479118727305542093605204117771539286694539453300931406074505561054825537785762680321565644653684324388397558187660655607544284944643101641760795399453588021039675127654179711402501612745293358351262763226346512359059710865685428595280499468138927692826789261501843583034750254717953170879244278201887593233508888308630337988326686872339232212085003454173395745516900556657453393015617207452083996373635584789582037083371701994913159421974821592912583717556400037894484528032688377633832560354030789125900965855406584532114218312689747520778490486197625641931816234434155371361224422876271807909618877452842619371640666344812503358439007016011428734544343224997265296624813784901213354439159918264272350994434628567439036299843121051955794101688108815578163404919320468609256679063441080330406925825380969800430077894962967910312391086699983497750140416270336626486483306349960258727385423348041423043979625746755101068922494896487292495673312945525829674445525761412789092037854491729153695373627521159060939000533567892927625147652389185136377827623518534822356357604298692454153698171993091702652336420557659082171530544777539496156737947585907504564060612342352407813112797968402571138650329390717499310359074910973956864990656764942948570972081554068565656475951549545251983127013357763513950853254280654277359742660795722917629637009337529932616796232798487471626137797502847331467355962336683032655755311353998232359198073284473868582966217603307240463669376512731216492294373476416314986900145322614058007144265486107562795880374394054879053931167174781636469664989223309390679238522309269341127511429000379047326122115783521801392580185304674477170071842230206798002511762707494925315007992143855169521361015977304283091065079753783523874713345210751515366400027752712456369080680614088085949013117630260041554694977049065599777312198493088100098461979230354110472168363784495663291049697121618662292352309175084702872868277561054435019915040357474583921117160148647607824257156086933381751260480623750546361852749006558191097434034637599425362954700440917398107640642898835698213767948341822598220471881516408212740758845300395964943881751741731014747757138272422442685673375486766271302650062491019662056347127165718055951675701399129018983364140531999253190067770731748422211331784498621347799121507217022849873808877086518628384238029369427581082112017621730158905322543285777829696496862436813020970782757864447013601268361545149586686582989984056104162683314577553241481204357654402916085951002860196797711352316889239883423279514790624126438812261517701316400885611936509050029517129814058415900375990449759578186755597969686935534171475599205901493175657787625381619999466978945474504048807950150544274302717529748795236939922389983994486145701208868406721824714502962501393347298483066991768720791636464136191696719782426476736522196506099680560847394303069596332986273360987872770522385557681673579313276083477531735758658048839217347643560365916738956882628644621625241797086918768551409624774914603565882980498490116204133188078790711804876835844395782965403187630938007093246512300596619766415243245799457552990380595610006963850762315243255542661114488596607154145287799426058556115232185431538353841960088558382069975483202107368140237467907044726705010905527150929031728721352779184374225749166288505512947810992323351536865112927306338203847124564226308057874981769412837772221343687572935746381854865472919817948065939656502214893354858206294153902684153361586532828704290793512199178658708744249032205906010734551617883256351795836830881593149443467414607079576045769967027106208623245462198215260075683752949257516551852422037593958093836842321866982073292261979238421823969856581470358846273589019620469448866990981147259173195859415530635675596124465288615549220703014949039649457351276982308816164163474704991687543832991763934830096117950605943563813205666542318801446549787644867796795762231914066008989222251362941142453030647738311236508682607017908309985483295224559515775936715516623112121708529928250759493610207804410155966737556548082931267487770317967631020135572436358369875017510018949370483209527991321875902228519311019646260036760883800189290552868745490010732268721227084565868815672843510555878584636739075474250172394672617216854542992641891326568576735141140779798196769031587067746482039506948447244463288826981438969437406591155886792669558832029607751084904959180215065205713143328595673308048259752107821586296888391607162973011438635444464731215438913060413359147171754390020720452716519981982037293158580346727910266469153257217149115509913310186933659479354532312795470045988688962999516169055663616097154645079971771851273149094974260474183665836790909017750648299446051323515787414555199379826731718379863608274311417239063848856628128655020416893052701077747909470743423906914354819478568051571185074011578592529211991866738546288828289663735290849749650133118162167699367376222375057197225884689653848756510750147626854163210497257916980121675401278041514703008981173279263686976384365991895248729521948794075171303588573097564547925370793098119003634030331143622701027778891362403583410109519745200358480547699802720128108919393985891181492196981294142743197207911119618303158486694459014326763738146209125789212884583232430727861311003144188516436427280399184991016879581497830498591220363795097834573849005318727017637565984960065487486228406947247002896461828164239954861755757876288461334111171929570451348986491146503448569312112771341437131721030179344589348408475056018183059704583266549563545201992138143359935487531577482781038223890408518584048471598337756721797485462474566420504833380415653634593775467650526852929122919214268515881313675366735923294353437064516040218733450203213943483364320500019439292643395610519635757750557342572739115162619630480564150868278854796311543652568158977559249070484813558892043259503573242286047684586407799113695776981455735943284161752871940712780741016497039101655717345480864926884648425620536154119614624474400754963870005994073560474555572163850705117406144138072289706530755635830968952357084398457390103604800290627638322169788276719713254697921684624178423757032031747290327252227435721897381903489429869958699091804563949158169481965294776369508708103788843581490467069029325745795099494373214023734182366061338475259201219367377720627341811627573119181457014267067177413000980109458451138366505695368217959334637183736010140615834468054583697083493446782132858947915111607644642505907916631799955100998303446681136733804748045678714349909169152836115632519407584746005396138046767766773730617724634610321106032353918266747709324045517410779988314330205220479575983488918720269993212680956209126308346407328517771428271895345471124825327559349786909305580023614722451056656557678938313609356466578132896152406276234813441711755592971536627060167234045793974940998264029273372431539062648294902154715112773939336792037155267941259690319921029310068873372770122792798413492728571794905780758954794388085488085734890555159129338894557883038231140448812864267374423393460468098842863559163967289283870334213320537323521840376619774924054950854886162479928840564196304782352888703047001118668791354783505920320429204024898419093514396539121596689165582448899736590009843847751934317729188185398928302998588956186309264069422053510504577049096866390654560873217716623837495268326828486300000597186635785213203436588841091878679958435268787169879050807669290850107553289480910353378437382052018009764419073686698645437052777530726730023027867342467734965300634719541423680765787341566334122722280381617717964252622402770172633222178409016015105948187980785583871350446261946499401660003334742334768405796627508296420556054453836321203639163550129526681323548339140386427021169089114615013934548959685919857796125212230671924749888814955717464837403157065370959939260734348055538870008432077885242326213100827832140257656002844558426098011385979312534005441552188574203700915508999386639792558055433520588278094360804780596879931789254049412589706649982396132187980339621499226379984308451478158883071715481134941054636833168793114166145341112376585391540391634160586012112031039921285599285104310803967548163060096948489040340872481919851687382684020642410559792266517020800700780952053134103976024583415954652436063922559787354248467009158580808690468482382719154099378176588987655453453400055810776224370053156525537633914052692545794530396320775029213027144981358185732923582000626197597905594090780503758973655305354534546301429429780045873480786358687442527100281123992243800496078781174474048066746689654293154213349987910418657251189688873225852879537659375434015382164004025801078119259008655978001672915961952530746748714462468587778777623645248222367261068977486866327832409024259805716603275709814224847937098561232913889369453930071400743550918709094780348302634195700498354533813777179620559801989664574818276305197007839981015061446302046148725074335917203813849135482424335149084027187044031588262214477769954184174909602750563959432753454917950253092098015655380823005100584631924846272187859186683492425314327395060569004694312654668813808697294292795661471256985686656907547950382281798159799972711873121588926909835022513977180171849581427125482752776654886798968071846118808653186581450412963103573026079321122175577643667620020126914570230215798551200145448623457030023607056212043238966522941438915317101763133319447884808683674528690657684767937728003225079604088029138226660511873738196444052590956159282587401421171014225308424221438247422666360874926515990427379770565107275724796284224732424231421199282141761209983351816069958168205501843852267312024550161929009682989922312143427873294057973201218351344627891241724468353913196137670691480336385950104027976701567834009394240908560643603919375852517458822724457038779631118076037951785864790484330572013568035317316466444892325066746187902270176695350772100537079705274276684838146402567953355726105052063173869238260877165441795789862751207864753669105229219555862321357852444643381974383511565904331054226919559848078298629775022020351158325783613865037929956937011962094009349389395718040089868478876675268546699463316154495116698655258583669836696233652911856312986596595698431925724663568052841476311323105601962543969180036599659088502738338426165222543326666166070074909167581859335962470826752979001261107548781155201255144968712728736901327131326399399049045835664476438249862213737602063709955573318450678836541340088214142160395566853459448205418324602314035746245082049242095135549894417029837994356684992956191084122604643570841815791717092289346550511522777455452927180459323765470529870098832976813815101625518371501999916293474823271502848795447214750737647651550519582221145713430665963473667367936023018867915478547690193752565844162963227388842042187890425644185688045367972971066674064719420939212037128151345724581787803967977432710525392534390379853423242835065638369758936318629977669518527982328565457980444984026599760687390585172308840406853448332424124424513610944930316804813513613808642436088285110733972072086867374249268137399985302331906329937174865955870340991724912151747274655540883964606906521329519018094820666573913199214828281455797452606490895413592229401152382371303136778232387190024693801559215780155864587579193446779973503796928702452061849135472450060767763849654160345832642557195516371255040274060390066306443481020257302559942105818043428076852656393870281812197752732604191525538916975901139219665044968871304094200177650191278804188858902632777890192523908467549804284286083708721655271393874275376765356061480100646896348124854929399037323837021275222120758593726315189327286891351595581453413733810820273126549071068511342692601332875172675796617291449731705878508242597385913865155977175944249988057056992136366206710649750747998202603105992163266280030784583843469609819483327584417992213445982148077979339570168758737113032503957473489668909475360516751967304946736436338563484899644884468458306493550556754492547617680177034819578012587595043612302093095064262908145850323257928035080295905658419863310834715777183340746738540739253590679242348088294790171809110875727325115297451860686843871943587687494515078740243607779282993889876691139969076667058121012582317686534121353670049271780871303501240979748300509397231435969431189906284469333341923353282515213226064910074705533123012894765405625091060273742813545610619240432363290716805969554224528788170217752469926120767604609925576344721734596531318997259362740454428881124255596065262427472987332767648055820165969449037177691416771676311589609028879881956868819740652806114927952446165267489260829484895596766594173016782185880691850612291868881075689809196628472331447337008677880556995338158977904421879678490828840831498304934785551268495888797391450594026841255222747512247288253240419886415742269732035142904876898026454460207689860507703742937179394591443148414807035182717849044376091776462438157564085745619973710671474492722288780116562572589293323327030056332197004123800915415815713628093912903718408998280677132829515531841345182279909918440337336884437653172476278473152815083025230187141850705325298486377450251609037536467776981876409490147689943967097086600617692684283438556639637082502072624660100618590425540513076076087272726572659670413359548462812640711710910132772589303998098146286504600827071888755338824846093069587536877994090659597361004242894772407980743738441155246398811988050217351187962898804110953675706724604366151323789321075459189670163972724389538068118955750993759211021090882293950672901670368985285379139113356498930226582873832082599517422442902086850064982637114842225872318557998604148458466285020170216925711262320452410563915583015097313799243967507604277785792191304438836258766561775632800834879652553288161412400499538402170660031600221732518341857819481240370873820859315958498355758099186562772176301881289798174590932117559735398543566538463046809160745676325020215593293562083334546368452928466744941634480361285239593641184844698922843581900309744480551331522184189447524358958442649678593476368008487232220879431111395146025657172218859283236505476097623697256494122908309227117405190875219375445814873297001280725919297019679538916513359080548591857397121622909713696466454126849320020543369259621292751078249741387302249758104533722325662108795610988686024944329681738563042013860780086050937554424830561400659234806505044294598064955161679671904455688934817487930487813569314155593073353439215006933885795669150472268853235328753080713166381204083532518378967307161479934745136847783131797420388964123931454128669453016465407277311342087027088257843764382531191603057507620419775828947482101373278832543680808001333090042550246197500357135151765069884170792557609319324787872763192239326288006298366977770377553603787573197679895091779055073840754026551136705426013012065937588891822236050428161035936420896950072849333032402960272529355422966252257229113330218190075437296910098590027526900106482026413545082609207137699098611661132856329151252275019607037466274381950415507074465548410149851358498495752441865606226946849085580746191010475915069147579434148463607029598227529331183511579284389671351906926646171920527011807269533022880405374327249527723744296354404289933742546213352052914222469627017733642332611967623446561120885559830163488142319240634282231765198429639155830084788070813432985676655194366594384124002581136379225506071365644427870722779235602719427703483441493769142236848441336546688956936995824440269435219224055062453551079116155612763672349009630114712159761850857558705073469526283834635075646668140507029705886609695216362435239144582472143943827976343878074623771427619469002502615703487386300807304648357028429892250762278954349568251275352164331856056934015064809106611181523199633814524959002161725666500862746912774088041329005011327072420473486597048947480313956216476891068390261625059123799183148670876213775944032243699644489232395030840885704076558390499666143098827563477757227130236586690811155841647548533829331515375215522427851493047798155699782660699017462774757561869330946244174922254197315541516371770847952802174240804447832083649874556919742163204519066193228551273131909746877298922066341770092580511659494529488075967090697833531800987775966909841168095827041311923065955165822158645200774875317501840568633814621799546995073996457678897966687693558737468885134017312690535956745888533700229781008630112654525645064688183459772315197220291920369333993362206889162488111109926115545334532292772982628218933286470193120033076229972525489680278279701195098158110859711703901876613018307729287045297226973611162308985013793211150284731797136859831506116388447521134612324756496405008510780049080158787000890114049720097969469454798018278900814029073707990224117988965844515322738332418682654750933509033035698355714058492462563499679357385023509746396854619608821285864498831763673863238075170147781569726640643180710831917910203262877973476056857536416514639398321474654058455105411879539538992257249258239585542102774796220547083254918925003156703322313881621580146280460441225286980058529473986948067045657703538150793456270523825529832910671171688113163331668787999244993635967705903386677607147116906025476388587495914502720176652240897161662093572137241566974897220417309119184409346736555363476739906380886108593603174445054219885305605497540686504013878552104153114730801669440884268563562263634245380744017627620771244438069057394585015237780583710499505412749097591635468953108059146843055391374118850823669426541858807697369732731502092781744074100883267167100112797477586412942715486560871526157157021551886224834416571418621832820644043877914684383522557457324233150241321418493266769199944863943461446867176916103021676517153939104782006460538908600558690693657230022209562377255849876111244490980524150456788063799848903592745518908852930408689599195144449187909782487756715300805753195229714968393803554063271028518312485061551288434450990097759548598851708056169369781100908874961124055517431126180654659598596180717744533691096883228382225593121833286524629362214840919681876480762592554901659981470043912592279200241445867245341451347547425186965129583115649839616320866609565857225507226901254449211772983863801274741337851152002750537265367155387196285202887058439260919915080661956709862116483830950077066308089432249447207297095976391330704188532077046455544143072080883946740208881078960648326745621529560769631039180573997919256265121730515692160975603540414047580165516939770925110509998624726449452707976483293396531522608387615706373268263333701438183509755087451756322964464389981939288022339266774857602772714718611121765855124900337183434310985230040676713921949736891493540285385048178421691179470244087136057703056985888677581718409285678100693051730333343570048443415851054475865352265382430344021872776844808025161588817033621012968039860674529320601076111243425282974897153157691643420407131243913292665659212659503441228142426194025453740566280381843329856917271477198286209869402891630327964300828026369902291789839344217153804395881119680551135969629927330000522405112819622803179231201891957305218054414920894500683496804645519766780882531694164065007873727818530439543814197158522229093199310484887388012298575852993415622816652873881448738441717402142030052443963469961487707699194352388668299629196396881606804839223079354999038888950953875544938086294819766780386903724144118604613817406329946582962038047541966442102096928119832351010826633915211680188699345913927538166489551186896290814911733751562364601129088609221867034917853222964480508407151981937138599114023539368272159888803377667324506371984721854058881969340707712162945157306963496912346628800570046780600302721433416756218498983717444088214576112254980309612899378199120308986332679355086419648435335280821814767292633162921046771635494685395978474090202982849844163587028036459628597030032082504694548153354670023354537004307395447081776696476730289863669242156013263690810487187718400398910513672633677620833853649955799518057908972597978097336370043766059004692080257392370177787720309136994078889027209276887822131030886191006220775736087322464566396864583528247689998946479366908180461614345428363160862020386522622956974760144538477800127562604664486077936629203071561658685983459079534810965874262214564558367181894943807634109397008440129922517543590800404873784154671253820477500312820513269725244903186620922758391383729559216831503126443444304264759224814761857710043849579023729372929265815960646584646726957962564223451737869421229512271769564522022333028422374307758564982839580492591257801671136041192269403394741282794951089257337140556118879434806658459267257283922960771916542155606416571180867351064891172703439291394794031595431188277840318360034957752615862050439418135486684489285049407607216202737698771597659305356599807975985725177010717009996936523642101823759360700512150374114338996189677225864485031195199808508008073764249430177919813177197940007524233571599630161216835555252725878907197060743665243581734823451724671555847298120849020463741990581408249573732261237439349110517966341443019428957768283079734640309387404923520646182144081394806046462695870069970612359506169831264713173134030207386194465585973350746240104886132692357876855672398715806463626442892135042250799842500404425402748833769555208214264985237673408389855019040298515013834709149498755873861344875393986692924577727073615372968884291849149573816532381788827934551141937931215630671532522174033422383326133045575104218376010678014250263955054193233126440317127443985132509090940433315687924799392922890404728394974085834776769688776291352924111882205857047293720470836736345991095879446449450313669550416768187710116156187791510891484522150352705355123398893592842935454717095851794317027129774759679292150748399045924839152262616090483262308195491941091809554928334882641021149470708126984254546862530403342133490588427228786807430104938894208381702709343975244314157927867672066873275710898647490949805956582226678837002259324691398885286021312804554187838744498117659854049047895061978937952921456488711177523844738767909515487263049855730232127528317520798245824817961474186358764180991772087437779333874531184269208694830442677046808613756997999596565597108814240669227936297096475935488909070492946128129171966284868150974973899837966178447541847140012593681725021613729483026895384590028898810407002534326153757869057647597080996221463115911534571544394653358548318145318603738811410859850085400385846961967991739315931776219758152807017194166069079454768724200753653105938324483308177017377720422232362894459612533018705727912765115385715065778252387822955407952691199758073045533176493936022667320526896003006788076079410245761862402238301390791028842764150552532940407606266065563954891171904848498071611055279717915208615241384945875569880528126988406560801713719410891987447696315119736307473992263384042478010815551128898151770531253767088150578700992624029781338043105196076345090977073375107359791419295501356272468590181380395596609975031734095561490893425504273884804781832622651790433975561309206203715006236271962462891410564503524141777746281326934087285520361013230629969852266464509573426236178084777982252144430240598164738699515567512868657640286777065241617992807648537216065778890816403782433533722339996120097261589070974839154902310989249100363509956837292422064613767521200944397895545317996602707263594063093529418104514261466908769989015577185014498427747191862234138638373168851350186486005928671119590767098365134911997015253070331534628078185929473044935412443921447931468160610191366287180122663761637633368209951484481963676488075663572408897621009611937708570064174049114781667447087344214355554083548114954204020119948317215656213938797930424218435908522380019639739599277704278239584973891965463366844738641209145273194308902460918672789457221922505967873959167366364617949443395876178657897729867276345210831347361782090846335731464945235041686588156501116809027094483915976331348186942625371143331346344949018188504106209635272176552044754810191270738172884051390785052975440388111314209203623007018516530065574662984950233420758005964677329526819237316743153418262074992529259507593044902404164787347367148783693407362952568664099652287281223595062636146340353390971168035634397213733810037890642344245144236133607894929073754776812658752945141612488673424269580748413000779764470021219863408009637296910653578738801266682851763206388672794948265776066453958706294021279060771900158178112198023665725670299220358144032102163194060625804190293400963850903866994478840758177803464881288882681080311532768431105597652083277690806266584862013241067164671406734144712564571741639372204451814756574401956953969662950398849696218718144983177456884514489320366037370505494332958045674893412914780368877701413336176410677992616828391071511454846584863593570508145155343110455723978781929051720751524139229020990401465716705070708903714145754309148242467007042103906903553871567463171481947590059365106095254092131984123401410137514290960257689896190071364918353613521690587272896653577632681052190585918008970254628827053966843910603214356005556725026640073395847154244697109129223178314586193407773780958055999202915393740409753632409054360228717195967926742661711778740500538336500497337610299961769155166664002581579329556404482963280303647767801444387189731840969568612262569094208699184231824382740589721029458830756314852432948552393764435493925833094684099217629452772358402318591282883020564557661588125603544247026084133433261764138478703606337043730091476447808042837730242325907623269415871972920277757739944558026300406147435350069631322398691914182607305401874677917527524731288465249539894658573637590597807725098499404845699464898188914983331373184759155977819738639452810373812516217170156962286666126595061527524163419615171952308576089398036922291906769462679136644716521328521679227583703616392689620597480223081233107778109657043876512013369221174582162856861611282084884071808347002179829306368977174534996040844302714258784928643396664420904633648779512838196278299890140659062001934173275126236334025517143328967232419324008517066100195922821507061080920162622502917383954257244242135050623385576893778703193761685939952268141991849508397894487812728003755959505273764177611829573874089773391207122282427873946456531662685271719116285581273247362467863487152476004059474011369436129032225324170002461336031036174822078483311482927112933909964890158881729437430956296707804904253166624327577774548616237263141768966649022848670058094690870352415524523183476015630564768434207583963758074337013464661924200101786000001131436677600177543720664374174057070597641002281822989051309885581722329324361045107969374271136739314026245045636495830253132734396610691656723215650995100432112580539598992929287468105645934742867267296303096534902511423060961046913909872133481333879253970679336108009337079671232108868679438727618412820386231540352310378315695519205386179124624933163167990086957603614172403674435342523413290452505468793451731927793494196375525024187008211239371932089785568097554880234793584310444897855133255552527558672410193101422908127984570665801764756843673134594269782891499402413199944346401681488327066578465028384127336612000441734239339516822400418380661764472941002978732872441759256022934002978503789428607103029768769796769175637199945223095796675847663418577589952596998657569472638620586676315569848930133889093482275478133737823268843567798524242887412083371080566736929950629840087853011819394560909969230994911074364830885906398369579453802117078749192354047366621507625463032273700625392892311715402000195939304050444916012786531460809857099314851035290587636191586602653848760044484194824235013189595704083991447146963339981911640319904830873290552837673628887705668808930300403282900645825052190564473431016485355289994560045980995158596413783077392571871115884912422228515903139030289796062368778414132152258571879686919917310890396170728188438901720512451761828851335553561273322964416339563832656537825135637159468208411208273139934985800727442359720420936001256748060556361622733588268841757628765240373038590278664442586076553169160975344127942757853740753280285280841863669832288384745487086901648748227980532507107201296670311508798533300655628882747791894292435826816369911300566748903311497944084643876251052163011096010129192192167783489330147973120733981359289782055554702442143096908032001319340477806203344974992878590827905637172051209680525808702344689183368043532750179867228529184924367015630181944329927156197205145302085284224749749683459467003545443534538980983743600047303392393384804127403354989716136969170841385450438437038354922588559477959417287759608553056005890294115486807569476777145273069235209121119155595571588306523915727463129359486031309453373602694084733084086243421050962559018129160107191848106994029207295393874055837267311239418551295639872389468123297167545431499004964381439260970418808104728528682981008767748412212501030284313900402065119866555583468924610537384854092080243000418421727999818983948118156922779790318229732042675343108121045775569930087728819039932339027422872686911385669724197353337443251511006348220686990124905396614043548202077540839716791441982334733576830853804910137690803827482421748239287297330175425142795646541824489117473733288793091453536779927183889008494734028461412092769182998172957337930964126425072028131088970595223479988338065099856017945612424874793961483206496570215482009918321659370525193992377899398658207670016751294364160739287651201548591817078504874053599602855329650048825152737257190332382791346556359397827246721465831946768284460491048969614689691202497801914334217357644246169980637433308704186844843923311822967321125612526543632868719930198303082085283629011900409334123246943206727409617597307286695491622269385341585352251046169590492245910595269730522129665965461305197407568146988952014335649261627825907896078948071903634629558996932023717055327434690325896559385447894480465572162322127205185932045184017727950146343049992195083994070304187609566237690808840728840737992960788998245167453747431334386563438581503605965892169374628074280519879367244018266278578986222814313225326998302438825128814355828438893639605236449435026040059054404976109082411930614299277998568386664146716697790150433986450033248319104877388013060813204003461980319996126130123919356183746636458191866502719742999472811806886538512673661197653161602102866942360494473540519455610733135402149571169165641771922774085916267508744009998322398040706507331123878586403231102525984939631929615223578034138233974968727373538630461775717348747142555227827409944440307152369119891218296596111742296043802548903117442841083424489434009385275848695057678043026102008156862814969101007193615406148919981155630881688334288713077295818663811165980496370289640956015484646377617050996678523747662152972284050869893632167843092179839774371795532232113764651586372796558263343994111429336898064516390437675063098780804937681989296733551469529166169178190986180571856872293674951192276877168219862978406542416333861091798378303091676163355171246089464382981357416026253347056314007032787335840242287923685931194721768524949249190230909902608007764094004871331027237547194869628555542388792861415308660498476554610404553868484665997656875621709623836629591755625420780570314928635384951649854904050309193663720651185978357467043227420859542215841459272825765735256903682786981848139556362020898351663803598799885428359331712321926678548996992665196979713559984981790108934026811228820581167232585845025285873721557341235689509494338505118758692336869482956284739852994856608149237980636642203584430457060648954011594219465408661200300574155664779566023381798628449493926692660451985501109741572078441063449254056152338258550070850744141856997862785435462896689508085217359021485020607885945088150875959739045480080469561938424422635457567279357173216373359645495399620767957064338244065613224718089811117538881892895110209458045444100198310924564727766811351997771776088346687175057177407293581506072144864053546158639875477981491046524905490413540325892212295260600924508802584438445933524648278066643953245981411835692306621720912940513581221901287157641642201140666505718773853551664304131506379817473769171054507679455580782671189574061908718758803813232313925677254438406827191706904772807591133904991074988820484536844595667288160232399870015886541598827432823474974352364731121715672587120496502944496099975556550035580279241610630418907991841880489084465378501853712464037428605162177462771977813228604848610340618866524941168312529763447651109829600634865014417075789991062533936348332779517685501679513888423026451971371806705301917451335117668201721205212978246969053626089331633675233812242842600419245279113417311339016032714473018067017536933378824675217369322632806741438813637144562935901993977531500227989253362448962059283973127004668810109101211118949108435021321145950572262687174119290520458150326411621972091946273616051858680108466286958331710839368625801446464410293537823222542404511569074670197456298147975572001800278768376374758385051036877613920087335652191203752892714863810010552190156683215587881986770407163627471740132850029049428709473472543141276497410476109322897402148785625063975000171144927307717671932165902599851485453239859947560538791222889295661149112988246713588961201159861550863268521512617459800775151784492131391949801251504083923002452793159850869001839763547795982142637605638082323297313385249060116218004748041839055892152023613687325586155804701475442120236544300434062519278564083829838410911312111182776307683945078647520939698469111787128217848899440729392784312038171460512196370514434362190130895945141738138592537275975670778141870089307179187388222674246627984834694692062787804296867324049159958428399852855373921378614308443255378435331567254563419829186824634947687523006939244780939531648188340775972454331998292209074316375128498689881163109918994478685791831845441757166510462590458733018381292812022431753241523905632862129605577530120080792560870887781315240473993712583048652830283355311220898202712413425414347669521294815894710347207764295999189486150981274570768871485967967888621745618201081797153347716340317093897109654214143891964184487251601905670056914377378730626176980086154455338462010170658556600297435591314036235450634748902167571746742509580443208892444622925481540347983951634125885708202676609948434818320877249040656492179993022421816727475049831014281419037913482883328467909245118045690870761929206823688085016063924682153483402431065194647064456734247384207645413549588785304450288558245175718144602344766834926981547441994958813744750971736926863029186034395318420106811195259030663190196664459670294954463279599351036334672295629005045116361877796844196095591380327596222074454603538378369364179595739783405071561539158112189287541235661783848914465532097371241424416321065463948578915795896810624871769541438712113128335592040713899834629739953657813692105656370712648637162087575200202575838076233894974110170132400428988154142563918147005792704845908387813305413021659642790639628394269656404312834004426731211177079929288384874671143676198192709220869992324236950395024158258145007403752441518286176332966322135019613013963928151920533406031104267326067554869148029468989640372855397747587002306147348353492167284116181911306278403164711439428666760050565452728127162615927816804417371622388313572674717155124965955344098975838203934375408063868180701079542432004514897781080800714836087645742548302440429955412177960757444842159861306473882775666591604295026978958756178663685291825807428019196007690423914986215626161267997072576678171601891925300606445528092558037740515783642903712102368521634877379834911354562721327229385689029200394584188695348808682657041850458335162061120228976157404202462851008848230324710693442556833554674736697570317558729140750627998994998304247404570547991318440543316894088605274977838560315718093756943051170134306051047776855701774112948227397296037205239513173283002975361527597089950180328575799362613227021225290067645961785702265043840867001860012280863446433580146099879315549776563428947994993546307274391289871618685523430681118740346893886185178438445380513422022255619785081287005073678925948834645371864765565919406773493922378576237910401522835928079293071089798634417766422569207899177818714972854626882403733668918477512039961085311315128051347728163388290633033120566452438694882131896663576417364140094559201280329953345569499660361911767595939935365868567326974834036757439696490601115016485483571827258661536603125662776994466356220728819769818247331273489679488014979666512053197642003705483175588571083996263606090053211704369914668884309920999073724025034905112327443094259302100837587524486125886581043548881435761116877102811643114176473755327363556848010944698767069751681979463690487359604970759352712769981199979196540252268306255060064920639472400059456809675528045308208554793631387199430471219812325177771348922972844211478690546650534909858171046489506151480653041965024421374837554826221778484123382587293624454645447877998652779907209070071763454250951441439028160337910162786799250192026177381022269606401023280205173142243040766473381930570964587540008366779036898200484284485404395824524864222487727839181966166419059032741848568816535074488446689188950476681581526125735886619004711505131993086653038554483653906386070798954957204629717626619362134410709828956047283116354664290678992882026748415154205699067039593500857589137879861184378515617819811834368438018799807396505352591547631662805068879510716970535727521865013675343496487332806251417416451879602022032639683033440083226854582089560447681852624536718237994816378892941460538026022793050605610280298840039796204265717073223799404460438533040941074866234681338519534148370190576612809051432016192721555804230191927846027043460773855349378788318275501870287218412160492794189760953430232173105698282121602838345144747890638724735493767201863085341654671092834872869532740701448383815795513098683046421363495825087440423943843039996597932298551626949219059679327828056456630035050397854023131473504032178509209640784943929604821179019833519106324010560752844386954045811748167050670751852682804686228745093890733231371740366450752803288131696482523160798572071312306377977767039725877658652607967952093574971573802759784236325551182336920463886939992935316717521278296285805832522168324919250801800271404503001035696896633029236431915223118087829144443035403665597167153508759926182450374415381737062629815018838292970472664729868646951274670593963425370455205035446841388008817790736298547469526065683313497146640215489446243715601452742061035439259963273078444443652665272626055145438085334179858781824592601882794269626253236511374518674273291625507548917174271829604547708790901745273022907626750097299270928905123440336725714499163452410187002045488607216037121719356271110960133934079000955467447732014397764801076831224686538908385003299682841660461249707545910497763175492090767175536503448035244440726764478098816858535653816946449431809936109753073522636844257619286793260733898988329209582688845942346803953405353628277581461839137701355742380999578395563933284127426573289716404438681375900358437303646578463544324606245356663886856381024406532686928907147520837317035506408105118091744031669906977074449118746602934589915575218192754867418472060936775506858508415633689039168415663429899891818538921862592364287174340057172903303942728764193236860785997521148479353742745380977994348363287907041678976963214940715709251482496999649266817372025346024923580300118310617272969410722116860658112478023521456447507200303675629978873207185400259931115367543421901971842575854364592523466251513232051258639766941868410676723598177373804471174126018878531307631419634444202302635541606130012475744061734482109721677855963926238942957967317095751602498710496357433118917933359066982807319356470392135624204108892794774701413055530853832117386353943030867671527793423395751139798161913113362613817660138859818622783909744354359910069448672542247373574035235983246394231309473642158438018624587248059443475722505357395019149099748656152398029120770592188080741026513177318905857264696995990263331772159385262706403458047065505197930636072386968361642927792379108689184422111956806232760716897823408307078998694088241702114273323106997634230493977298466588450099500190466457124172650130298579563387360810815414783014654613947561990028006421502360592357531763879408483795761047831393484945770840693757852377167275186047328134892014800500411301857411106523890109501700417348384238000420332829745570767220138901863596824216083453276711250209743915591457290054913749708214380440125373284529237942916802873750409240939898277723379996687997946803546743910380980946332554783773293904803570346514427509501508275158349274145777531373747054561878821042204743153824796798740706259248391531508448200557560481203277153427739431133412029833950080871314483994879134588558203094071001833616562356573318788217264119136731192097349164064457872546257231717845287562811690431169393804477596957917801622139654888882277857067007879855719618335525515626274925129048544951009653056175160326679227384861972870771542025597091193287053037503037539681388935961179399052752048190194264259446318424481489680401142406496947590571271680902571256291975025119379709912750184587117597165260295125617326014914314709283687066660029723586596321549531817225640107768664322224315652852936746213108060310530562781458622934773738686813871097822756234176709274573729704610645888974999412046810031128149134628693239743303062870152120696990776981615782982518024210381226228690017269483089270336581032106973407456659668592007070330018463115937612518136471484917515532661374441024002167409088562951168625055984513874614964135107055139871993741191263399364830682200080430200981272276283138912509885476344281799158360777614047501827916060431756290603340774292022896824008907965064378620342961149012548989373514879450563213178423429633129002826514008328613634198967156561703358067215846135052574900554854987314565000807045592542741181481773661788078666845701296874793213362140607556161878375042688460608757047803241537441127717587596622676078854853860082364384923389758886827636822060117193026152854507900841614699375144272217299555731529799396072587242710603630798215197674054483586246594941391047311906934955224020684340299596480992902621770896673396041703368396335057232766031619794659390136870069137676827297428583929187598295896231829950247883625092199773533265977389564538496002240690819222610368365697412931757442655066989624841707848279732294768673618745563031853592561857235929031766229119175406419449290745744364724601962861143086705210902968797534868500657878077841300316182819820768020706910419912669369282934743785904868416409074567170564759757403735202511180192901126481842142525310820404347926434195970925667840887923897052230700658101710671480475834734138492315668684765638477293579724043442830746407190784078111177898589970586146347637623545842075696276796202977443786236065561912057324845278180935073597878149241562945155466102298184658965390691622986718873882578341968019591574591567057967818830709329408299331613759658466805991824683135144677852177296815527589870897047392990931360474477163029786938559120123885019820809812356108805615725342910945196935566879039184366963488263255484305930790791760698422723030532534424442758439126227216613172853932762304605109786480546871284539200518677853929533538255862881184471540313563571341384982005804395723023326772179281657185660022242769285844743879300040202674622681250664238524626057111908721270339268662627251395458091170189688255630152547151250272811447302063119644302695972770070716545347759837637801942445984581734109665823638188057369132944476332708325658994096576276295961846930044661646681685793026051729160581577728726051734155185269625521220022709013377689357381505893518149308888370440503418987741316359574250085917875141400425781751105257021704765264132248261224155179466082465646648688103786601531196704485642007821242618481016128669244257144006751813505302226379321000500392280227579672024296721592654556504922069864081812570430203090694173342402504206768680556884697350448219597963093761130901104848112476316072166808475020748447766665243385046012495204808927545128727829519067340835078913344807571327827549112916634339959180332876566845238855860256211675347181116141260780600979039789920366331203763829223079324466775377439459403113536575471539101606369547226696203345857780400151467184580915195649868726806047433531916465484257796477762023490765694291105185377478958017523801557842524411619922018222330535268745514621619435913752555076045182323224105367569442581846648635938293187014636818569795792536744175598696988506480431846409462267023984969410673466990485876169146259542102419047426967318588777114222176175273603202126038089641361411240736625321034599177075176948415935357226536224608075022275900583991850900959138070480169639100405431099827778714478875343372086878783007537868093460531588484573526491217896003052324561053794861163099118096545598243301309307320114132965284145244843824381920404180875685288012288263909303156806399440391809176378583570618981242598105956403289865951319574551283744329213433009263098649677193996674992637463375035905919927311358480749623752618457971812549643315205875997958232577261096191913609325047759305253490473209863906574991543313626362691552777756332700053207225536915244111439544215395395207706230770648356382113798818348532835401602464066189021970960243986531944153358354151702322006851317617133526573760226747179697602623108372295044779829444424862436597533209723999919151815674830072995099281813554279284559231250374724216232297317383274773095974553486526467485252971901058410642511820743722049040976042813318078378090252838241265818055139795580012844063578165644260099646645215524367767638057754547507559505446950806676363238314100291008018900560385803268318269681198822381994106483362476465535850586691047876448360009898299404656145107591633907382834380840512182429753270718349025039070045836082857503268568849916789403720176158261254743108219075911732081171203703696536826087725077882455918895971081409733733496608575525169335042590941607150581646324326782659221061110886065824800553059390088698499884521372757037240611071407044243650604487448167030864332837073497468314492616946575783098525944427702573837895835584020361826158468849879121460753337305961963843677359554466806813550032044440552168216231743594491241177164987906433931984499419156769842737125412610733142712799125317679427562469478580037026363088679655075077902722128440526020923164378421158728666696878868826090037921420928761987538728959858958517005095643794936000541583596494162680314419404076509006927205464131357770972113980135045623971372266010211571348427611766796970062311329948840169762228780644916399233516008131759041485834104836238620234542963691300804859208915998469859183193174995960992775534896227110860044541280926303509463315827318063077442618888122970527286751364844739389894818386857386187732875671830884849261131960992303686899447673324688997287094677094925543155421627768550548387656208312976770261288720106306997536759862779050332632394593986218014084183679214788972639325347613652189795871521735252917397150773678864498185504011752930051426792844750717180557483000008525151416588010481723002896008891266664302092261223327318040094348835769836542453669249147775265789933505293479336395081314434381995569890350248780140507391121900338199269157922895090986718129422196711227834916648002534752868618415465460767509680486407964117401965088735138827210686991487430854571181052695669084709092588786943205995681465577821576835069362553161957538209226602258944232229619868186264370145853166833470434696996140553221266664453520137039028146400031161001672899161510033734661549769115484732412309566034654809478067079899393088129907361438083614420690549830568150180349045205862155611089269872152960739535437330377292888867961662092308947062595534932176408780073438529818923744918579234056213556486424285889077949495018672649698187733379369290244999758470771176156142431221893411434899006548145141916406760120744703318202145564439972227980004955624580594203015813758437810976696657090987085969774060761128148635598354216396336231064781689405917465084619554922650009166052639575737410334058642472487695078717011466445783731221205805890935829962574122627281050946214646738941338633678503976414036966006536129541355872402488476528109533948234584720629955620368159871929166766728125009989862338527631924752956404175067804002083755031385525856470686651727642795876165154477147230676378835538631202465012023174492334750753635540256205043343850984627489731185387173401602671291936823872694874271027971583568788289624268110960986759432526743312895657604621361968017383891096823273466038895215300815517925960921025185187363963720956254352215309772345040672707037559967038893484727013608534645585685556508456087442530479887228778692150037073768801906792407270661704194317452233915997723101412252267644832132541231564108386239703070637542969985866147287740927767337234799886163250495212621088357962929169318567006636487719874407549079814197668451760109911476425243674957803860184804484337190682706913632515362544581699259328915040924758336679828815350975037345621864793996820351219725103546982179775000034312173807735901977893742443991348260735907630349447557690975088773332125621424144341878315773988469407642502668284254400568501285181119521866133738279406401035739905465018883828017737477575340973614884440428618972005790343299570813393087125983922297238458015813527464171859693170818820441503317544141975428099441870365524471842204212000115691897824444166913222503224411712007347409853784985629964786943043823480949609847603837919900050681852516857566210481521058864147780419421326168200670069636691669208518270437659023078790518350961527269938673313124037304322820276845734294575770110013053987158365934598756923541172256840821362494055155843719699705399132107430654725824178261261366392728962471999562153762519279105006325757638825149376783552929286350085490461333371518098981112905016225155459563847287437713392965067679414705635225388868580376790691666432270666534072245822409009233293856636443131781148154554005118582245337383272337563279978447857128845401339684007724073149793309981591488054573879794476614560160830887064621959122941854339678772082181834839290418770739298313118809008217174828796238056786133235677723797230250632595400439761952960240657425354650919594089131980155112427512650525099788150831049260965147179877102966605655613984331115225986980458130478544575203824263055270912933906184862221801410013226988613121283469928746406118201077380318382550704030214300750161157298795325020890048532593953921021537467265954812314787880337761657196184704210031410258337758634537317883469663174459500749453552638798490226071451314953278449063059500023699932713785608493561971950909994190025401899661016884226415756636702098728712654637716694920839467300989132386394174056020362180896126213793849765554498523723521457652494919197743447616816237125561905107061914007594642522110247497204094894731530529690064812551855736384527551921938058748402577678953600172357482292616363270007953914757276613241946077511955199469908764233029592513092670715829821206667997162887798882926854755608708385673681866343941652366530301883853656771983190083308361999167569626867071863591817984821900123088292687838178010406286958760156078292349871191066546060527341500058202480582360111357713981569109844077026389617198945507446272364468939068146177073278891762853765603584310714739536993263340927638475831358369147649158505904930253843306879995691538627190062328762067061651293272728698565228811479850887445351845352096162736149733764727096639796618897582806219489957976769453268583256204211428306264060214304097978634292921415049879665420324307548593768119392410934205254072389744140926943840147460322460611982194650959647602450973661850475207863030120853732138666352537913884016968540834783946445281834699983133441889762796786086104177846615846987934915587964897961039978048723619405586569442570924048725389050126367478472708127620947107228924208638871728909204999390427652937765394328580138588652734214410946571238770668556149042619907540126936538377463297292356628809916606675484681351867921086143444775096258130212405161534400173009877878237825526584013578104294536440070808453754969580174991537402159836058809080247663761719459514873233059896668033642732998837967940622851648373732003145422022118037179754455597084306654817709681113820185848103097330987534030780877216933904027195660744067792864306136879101031984099155263596754755834337637394927401001437395920493086073884323523530717524097097745187865793410193938802770752493395494492294626663917154345732555473586722258225893517293716383776051221741525818524214931678530740311307420883536999480283257219362287204987747842047844865768474639312796430119622979225694429078053271650246865233643968753105649514182806317291741538341193277782940472493651031451329846462288607140235525328329605149116164147553732640550018542862543258747621881516717211699461143991410486697447346569141725424693309339624607686513172388645954737911059534806034706396542539048110905799682882863993761448722312112839144766645761097048510128407219608565373265909419336057578817519707144792240406132725823835755227425304472110705636049494353630311959783706221405673191309777231628642003242845633385141172270812073508999995335037909859034444681577135770702830216393599155877122054048646284448645839077300024768795945660970050723728858288141971276538645069293220389358712198631175885161173491356504733902096193766212079481465582326483333620267725548300011845518372276120266170612624778695552064698176902948345053587929638230363540839991851615373561002864238506033166890588016356727832643681873636225223326772775828170288087336958869872962177948487777415108343521436372586543013611032240942838437149747662287784600685010124620234479059700770590037033994557776161506019175202528186590999629738910095201943795532157491491511895792240002752839703321618555345098816198459124038137571896226858423190240043652272967563347251588519605640343490495155305129063680836767151209158674189907873306544870772732164814593950298766034933838203395786281888639777584501292152651497348267249732994794572422573175690814203569634936598075552596908408278019814735469319423844693293263434110108944911598194790608200763285218184670265858161750265789212142893740886931993145309851411031335744979878693599696280073452025870257122143974035286260804231990601462223274672037246168981922879669323039927049018307351065042487497415527634577401065938380439191718338744983034809555320409088786626910882873070033425478552974064030533088257507862359435257930743395543412150686124587180982238524018973920503070733542939952779891375113295173840120061748616635779647802378969368711524231622116935852122931494172727673349301127784749037540127653661788362370046203076102955550908241866622969174325763599494623285358411641332523367499657452924389166840919630386563463499879212251937045977299575427084445526768480774151347397273382228958052158211636374672449376054051461699146800042178382638219350294820429213077987961317322640786269857692145023271257505051541378023377847132495777445500058358568710126640578728541209336004915189954518884973988187425147680274221107618399026636655870230885003877692545140088180211911256101827458764724220895777780063737971581738157764378082132967466081333458170267141009359723356068449584660645271350835113060402631077726234197292062294652492765993582698194909939634978068765564962345356445465611710762482006103377116004514548696100683410644462783785258974773620965493036772334166558528097560727757748824675110622332926990202275219345795101352605431878404432184677165667395503346607628225550901756773549417455826535481434606790922390650670376230562465133074078333996204221601374813275390319548608656404009783419841804852575551088877567251554373404928758940121006668393876999296121915592332736589030214106664940102799645988318383656619150054109610593981397845186051381513538284351757105588504683207876479204185126934035126433187192943637863048934035524524294688042959622283759884787119924351464338365006042999701695474907311757836549513126816993895206211901317737639916308314362394733375338537384344340641795157828399945799607870975873935243789168346185061704147801107525653306847598459994014594332157365229567485233343562771949478862208650953426341274614440011261965775043317831809065908740868419826168508092704937828583470007440265040364006405359268522397379947632130083403028021986581272705497956424347541122695158428180655178622163756059803112537395244057658303109791578731381304255529837859933699835059507493160629099315005770386292076283855696718595242443364078807980235120462263967713967609845998278519735733944425767419452376375244643980433648136296668135602268474217540411119570263951999595085759949588224534126823166880071073031568485170033371419216352424848016692323958067812051334101185913205282320827135433377576300663813652391999951746121594342451321699806665899615508971050536784684956487754614288083538546081960761188539048427878043139091016287858023919008967437995120237082372558889078643577810842980950755757069721431553855942525647774378583062663694492413553835453918361857888746607240095606190848876051923435894870117719886109569728323889708290444540553782406886629414068624502176288826493108571951422652805105662903926393084767555561978163048972218340688078964412862573602237374328491358226300088003420331405404398191911188786275592011309345844163226984115892281111869696613633755085595665647737401884421025046336136256640034295485431923957708480421695377447981974620265040306694065393357372349423439839985421749740130437399455252953451524438490770534292958069493958338428892130212273659403553353233818480503193727665023627647901389574755795372156016249471709890495796443631795466149593708750429421508275130313351982928465348189879257147208206275398173565238611328508435662961072841025661229433386448231349628154978611779617138685901866663903360694846521775876326002715587538989487721987309809148345840305775900736861321382907193914785340433532085403585662267961441133114663534544767023116674545945322413224711027678035171628295456338182453746758827972598713545142077324807826274293460811302015824101153262536959822816880321238755793170784557873189741203055978380801753853699120430905863526859677835228814892136587875426560780434378130267304055349216400277677717773278352929417449944695497608843861374112036647391327636974102401614646940623460598361018410090902133176399787025010816209327648410499951347512810925493567168908113817458888300474155888306225858664508362838815350421301757216952994559409455936094403359334820676180474195596623330864891195741730148828208633654606330371464005992113420348342986470437227967147572271612234243810814083237787150453924566519500681010130768745757820964482295501689391337339277735348875662127215586437077998525013106172453805278076505871046626693446835545659011437157757229808522605500396941007609913939831053250622289053631128837956129948733079377454957003216901658558251680271026347332378666438523657398532186986210401808612455312965661146816370789465617133843624559863443034851513330638946126764401421750880522483334223046814797910020834746058638176855103247150425521933586301778676734171089315845932250003365135943009235266777068672714245319309833149889275533065355592975333689910115003673156935723212559621903250834219658719971193910317732445300470185468703873148554357389453286800609381729119883193597436925568837028743666373417009635108051532440420931943374285073498857855594078247377485003479732638396087891960536750339120305445318951499557128804724397790842530585992238050406949308674512747011879485059001383373445410199304291264606688543210213391618699771493210895756010881332037097907404254793212655889172106225383478388659762934486233781830128473014745285597038379001086416859767818879589883889780245260681718263586993441408428931315211737006431491624456291591849602445694371297891123591409622652699880250524920769406566269400650511057833590688184535005191507121474806200688107090946392572549638368748323032766138131581523226115122657051658973672241153504884515444011804759776580872425198870051903447266771728239942886811721099884504323254518166376416075769469948570919972743844012496914155649773924752572678650529955302890151619619176432404521464133490861065813763857541667338282976446163701974233154579658504738141424918073833143453993011119687396768735931061438888555732244031193816805983607492886218557345005430139665229759083613059244469119904340814507755639037910134883092591446364107983893651830332363945265965478234160451125325488537376230002723733428194906275863235240654890519504616435027713683998525321267112952902449491144221214416293362369542393028137359353097314078869036555787796565097995308853797633718039475341778164188725533941284096005539441712923388996913362886435467654318651407138562793145404434418661604468298825984836984922058526188325350762944209580101494935247070945675189339145120450044394581235719955563000262236193938260488765125042101454006768406117026836899747698585239103916764524907567848877268730454500256475465670962189701750019979480935912549322667406039792374364843305825448056674297288888563863701418189976345647448896428094228143795409828575343876897879142969250762585387323613674582492077570968678738264147933397541151035744712918561996807905585783359998600326651614612083563499744971335399460810600253888026079281555188938113804268209335223934206653725448596726108273933209358594797843552634661716853867191021812212335266423139264526303778757327525462865209061613316208664426361435640030052419667428397022844853433147624231463962161270917318574996097876720586834255654837496986759565233388482233625006412608274885095099261100484728302640435693614185201502659856177843103272311142688628413332382487825250395106416045506313100344693763584291896859582241324857664055571243539733847240235266923107472438852230962076686106948951102149796048324792731497906578866212856213705961548443797677535481546388198108859654420564252169325990611845383171670391743276115108392592891613566164626603877994806672938419639921511316160187432144519768235035543409137597679351105856866963493779405636210540967707732440263464157180002482661684454427591908079234942690161039604358790580224093653933255426209367420440196960849379372362980654739598070200213871448657159098861852194646332500381170907963513659420182634444782534167572290750591758492585824118246021874308625735385542837269159666009259545067149793788515818643760137499103969159202829787558942549395395259613078412659659229537033378629596107426382888197722102916256350169538157662101406829209077233182089248881221476417665082601695737920769521626697702491586957638141944335750606628775790701155625597439368860820227602323061867449325126314828932228246207534868272628854509306319010579138253044116027341771511039542174747221606020121253083339219481867949192198580600962651635153522425321068792822758085716935451628100993604045488470549448160449936414580634280495025979331189630853598487511383222088865677470129434220262410237209164657201655614690774236485422853473457388013124695383766697249207049037891310487743383780981226530304704819891447948128358110646601629013005680372366984544477944541338845384161964224589742301556101318963361603587819493791652810321117540860694457815138674256227305689224388575965379116623890143265771724001433238169434663601724250870173580535060349746226260844954681405049047265592969734364801318919785917750563560161366783559400499884651926780167656420123950812847229375969815179893790178600683186003025773179731341677310253321349197863873943242808879643191463549267774249817724139076867359849117868066575902691052273552219662335400438530100858100184438079587225119682701531411333815742958437609245517508191329622375105859345455520247717324906129168762750967419283148810025948014470644178573300803960354442718503779438158605810745273912482201497438242955957999602736116390639025324027777285586290765040958068810163079935990366180990939834956419195139400157138523487568649127506011590056902731189471157195793096347939024003183322588087880567229998951050952102137212767336375729314874073001154308697356239554228986153994386182008194711308984342119066914948909833124324710024666061990228333000728885015799521574376693379540598999168836138391342126081137117281654008363065086456770194277147972476562917185860072357718463668597493809630604085012596119833204548854230364300168748467228002334835323379308179147699159169862842849478952340684029511294872296252589094586412786214047976906793395306261997419475856723990139610911048746450250456640309282654279002972325292865215395994423388006882966675024478850767414691831725094830627341337701220891920783104039296566193049538220376906215066682051648255806712529312136844810695167283958790175545957778705104230343657039594063312768022440146680085225962925873302763284507893845515809104795300997829897664826274771407972218497072657569443099393708817853984837333877577394886499382992679973944626840087231052482773199482205453714356938941034468043968832335173142691538664826114738374848927450146765155642959644130580274069940419340952834568362217801486293034449177061757304449105050305837556305538365794747936767342612364797206905543556774002896650607067783474669622227481050561015358285076930640787430105838677489549011582527872730006182011528441418961885253420719002175777517257210488354903969476577098931074424257861911493781754708068847380943569237137088173482061593634551301204623341699149009893970458192233017912745932000288750914330413760833116846834481980019099156549236360320597396071428598825890496872501136499342731427712065426156403505412806083330624137016453179944820479520072861202037822115147989492206921902835529818241328177964507537635985552311557316294314321360444984671315004471294251038678302333508335660200134556993636939837525477787210271674418409478462079183564294528281287393528610426090181562487996962608108345969152660734710814637333476566018955190868990835786155443803709777362083045889017089028875330296417571396505777972520922571420344686921981267748147019532740540755846158978229321394711025514708618951404636690832585302743192313849102542162214995456866176522091158202607334900162967065331877770285036753638341922056105802031311023548830974169341301797559955448876425983609218719602011452264496372992673426055875805456777492976339113216271437143802773089562606458248025666057960389316640008213807380491561970632926378394502623794245162924365446576416273229185045146565738571584831457564708054051044948619371567408315292576405474281042279112993907248966401758026138495317730729305257009618512346716536512399693325896296956003121481599987459069289949198887029055257558569372649618626225894526591027789389241493943271109716832347847994232321332489048940593336281358308641185352062287917179487065764014973617220173006440444138788852557529411274194231134215778051990516499527937041807796116862194065982245769110810117997520409307479571782206114106290233604210614970803458061094348813719181063953280284945307478124125390229173413125062793413408540740774200518143928248199180324951598935695712218401520521905715961828572795139351129834496875799700717481233111526002964717079572172871843118236558514159793307335061999897176794093947079810185468310619468828150177690114749288773663670198594270131775202542062861839522785242661564960794491140165685334905793414877170794163169924361236836665430301192084634350471406347276212277253270865938693980483240924015713828870386471232713694763502038789855693713364728049173710623301355971364213025247356059780940433475930420876028589104045931488801153748269225628012792527228104494843268902893043411171187972584258103482525741722841401123075544732532041332108302008600538933652331255598837299836283359941890851760869762519357664174885521645399037744124012579709157263169134548745323911090808038744582695293619386346568216816425485642084675047801109005918214439318654859766942270728093244438691476734598633339881175620937179733024831260316589764739164797154912568091116198568560866942196019333201735133405578894926505303681819738786625990237593172488538410636212849653900735783812190728399688503623792999357804997740730149012707801101972331315398044627112124937797177745648382660983471989208224447272358008947092852478801585800327600815113983023298733855215584664111713035144122932906712134791977564738812597573000007743783264648914351050160884591791186098752223029086173504557299208145604827924543750632330806398887655080384034203113839791234035204213022419537520069976124703517551945122234314377811014446003933989522978210528309586456755366714440507136024958833568923015734887731409152113424839448997510649011359268634429647190801549395175190487015357477691142127440475219717081541437121914099973847561477315252382251385406322795726835090392841387483627201933497131015172089235923460993332155067405935009068765321993740961334249735532817260321937546698853124533401148710446468181644859396809715750353974259192645237959670924333700229698215488292984750345591276831732146421184237115912743374993384163887171842892662942709085180745065519110099106517951339143060249155792113666526653203566342294551791673852443614780563560095570688257542881189500891300829337222873684302086418339692064767655687900152435562580993824716758961035380923307393919150766832483331886174695881233140865281127317278351716050324364091111388768034579106013756696485429434515156560227180967744580541036154741439712795209553231249869853326682274813045906192069814154002429933035338736389895162556978687169717532159335863909261861386650697485065706666260257892517295300465261285072338668633802625619045177330557296956742394025196176852300896446244701292376024081198267661405515418689015993758923166698167060636990465923323968308144108845514026736862084688310670717353090588063488862526471298040088064137349174964381556167410027018111192577528266229743164930806368039130534004870054935213901763088592236021169568142137319285205278996837814336685627387698730453853371843309798218621597195924208351834786355499917897766732180457778325523848403606164135246989659353210877286754387080702140587567471472439319136539388560406246385520076949952314123874347996435195837043147468691547290438118820635761405103594064191907521579621252333106967128033430307815628587036706863998743963499745782676393916499627210874387324648442546194863463048394953077312986415722869494419183031321606732543074126694778628476362914673965179107507433487330244198369571407394325908975299445893748396085907491875976647300977371369838580213099702050484009732698697709199575494118352274373258081850503086464612461511100903495288780261388043093622808251597327874227354702657730907629723057935845044976557184106492721507783960709946292511979344275292555664057725589141513067445702652381355851188388990736493944349719293943967665250152376139925096411448195735564419282657312993703778621340952790612943482562620818210613414862368564138183296101131634328937944689346271053797910367883285852085700237305116009667157096519627498468200167266463948470420305458498700415092683466199300295029430728143988473258611748463497364637325550606592339469718024050489063484166614292777201323162737889041896022308937506629694604309650650839101415422252973170971437797428504652389688495475338670844604611743790153544093237147029052273784049071826009118342830452804740546211865441586357636025224672544227646911842439503788873542290590361186094244756217575520090582316743776594829586594623172218389231234389480494802512563414893033472622991154884206204465549485365345487315832572341240706548450769471670733632734653254678695344036829002908990803373512458446831547807788589723017177535521898989049248973231858359250822405841921433450926166792510502465748318296038397829181850496325892559618375831067972467943288493355462998360030211656765462852389793710914772398240671572383384869830176765051891542864081456559337266474836172742136685690454087987281208084868304555484652755516307802198571115788356280628620791416736681804502807307979243443701423757937579011086337134654599021427070950895812384317623122629347756194434861262701948984027346952525462045500885889292711976151277381034992741053562427031338610235951603752507718299734344870985703656703737743359486515891255864138971954473304531375084866865137947502834189943300159678694198434503230942446771737430472580136581980995123887777763712509605673086782128918087497300451141309947198154251812990604576477562485219387792842208560814147398131637758815300648537462604322777135113780506297640312412504971485278859892366521555849210211901740913469572845836090881257537622310515462380385666109223866728399087344796532920015412715630296567701782170791265657657914167727691501889814865295304396938445959417076848492832480261962047127433493497364219839875813654601376616376213217907722141816442905492570543802089473200436274818429056508518524851734464741196616261290282393059065615629296716456619232793406168979141612560000721938700326943181186055608353111029198888508843410070499669922798713508980274606866028099377489732239347759255611694875991750915496188702055068746614254815363040650620642004685873883666152634971628851310235000052724654686458625008456503160764971433271495981432014009833036674192544686521501854014709838633231324893429374424256634838439753312625755990807679148144750033188526422820198021793446950979231208528721360449075237116084150611539851461649938955878778568755240748442845525631315802374905844352615922766479453023687033234747676600671333834605362549386349819438757042294512581764629128569685100993231815095368026174968750063873310189732129320556200328185165307018563746384894521170711260236794268753765104121332005908438812072284033400097482383043294002861701833191143229831105040058624768419089819049180285165510528455587444093462824491323634384865905646672592520832383983227246851719244580643493860982868370556963630480578769774179966183552795501011164262996540953897576569503001687293420999489550232265107287682542924967740747337798454111822297848580322710414882165630149357266025867788469275288862889592805225233315812764903584028123606722121969544554890820024341316438589907968057883502681015428159758143984781697793085106598367518111740529080358527569897104744366751612436488176118102771907993625709320257916420629625604615343272405452159853913963669087186442897880674290324012594334525713695983644348982600829542694052414791100311740118825583569053994126396844412576543312211868820905308264226542915443131303661714866500786424456150839477230945229527410130370556360041201844601206236835609731682419192887120570329114600424853253257025938839533637086839229772802402463911567021874282162958732658083609831788924488950405293658889407307689030246293841175914231840809839380086980291353977596530563766663331420440499401336347095949606596143419703559917255608891076714446462681515086583476774254801162618138904637135184060208046500769507306032616552066441774897100595228620913967544830876151372979448998742809455171059201306813955752459027268989162445836775939136921698681448684481517032562776892932116442462475031168142994756774811434952267925168935904542324963910509806238921504016587236677007007796655096185615733338418176090291598920626591037272320855718071501188755165202637263566389121366534012644457813754718776605159204206058145427787894850284469833615008193623258493327227672684103067467442655413451019541830336230364515992380512175157732680738885086476450314458609019259465721531521167123968032340325110050339188237164883453494624593922170717984183620446270538383045873721640526814454354887280722732840161248271549433295092129843773051793454501643962579959215101282454049767025489262541259155872577990154854351217587389423594163049400648174510128271664448414319875686226969403901712870671645437315349510749850046479745517755392140027521078305301886268353538694261521378020794792597073162286957191674677975399216902220616147313768135507772585520960720590419184165749752572015686020883855730900515318952663773224447052122708396683986441911973080294723385841128322664117031465777665088303361468326673627224475384359223717662159543621290659264739826338117396192115337630455499133597490837208831695860948789652915802621246794808974701339880681802783792212531383742697396356954758817942703170947573007082247296090306843824102510782210711350007759782911436352147473655301894447091770290106083447813368711806418874469249395808282729590699728433503854082999437633826374230031745367716313013393829730548732429540388622575831564313884237660835990819450092603541479216097182588554669253567711971394245068514402170506142362537541266143312557098773943050734573908995713209169546469872390479611775616515013230900209764207378970380947494612294953051257940941995708756689155247211056498850422235714908540383902254590039562419795878807956372208648948061171274969183114365736179675222769507297981390091925929979347638515395950793967801896468822427657813707060482592904444800060663316795202774522106953623692029416694362444146735498961782522522352215338709018014100092414882727361590632476330799139839197221812648424903964285834545187359150515039373246008219862632125575531094193160055453483259391703238263291749672044478348648861215810769597737258388234854567482653044704265002508867412727836996449046707726088218649817606765293897226381733962044129522366559379757428908846685818002736853583780589811801632696171309687751048539038213900328480279977576925972610153136691112651266714525844806942361744721953760201163848131388185308215926798709763130364044208691600390001436569357191941909051002076863228377615013584126089684764618245315998671145453406386970192272624634442387585459381368258845340788353836161014696983323789645996931927979763073188491731782684403307017421628400837487945211728213578784678891040033778437334346139676686432295625958411196788629614220986485188799382395607571849477149712733931242057342681961439414969805816223036318155180793626195010170044326661350995243779453574734472195210396923979829560637085534970852661524736380362109511773586944296972917537870091539171080711361757130797829711283649005027619240964480940503428696861950863015014924463294397406527797062698006467648991205197017820009485876246408172193113594984994727870826004081851358462039880108172583869316092497906954990708425308514483724267602455658250055676786996851712864832359998478257250398842779087811681856455390768101777155644033669722677915447249390545081848449128399495857420346750263089630755034408173949666668235429274503289918904635334446839129299549629437193723031781932692130411298402913257962509401114364649193959839637766262939858659026157076265239190680108896532382823231168876934283652936121050047702180369171847613717768643135432408145568972127184394957885381301583057103199729470308347334999265240412049971535247547511997215526124674059012710635670424265248752964451350038145812434767062703408928630944107569017981866067571122794147148035665983330116395481582812640444584235466259405739683233867150265260596379715994660084704041099786648076164351282220007415172908578471354145172418934939855132589875219441047759868465464510290802228167379469253209876912708122078484106659339103571883769546012722411215131970942069755047089558904490825023453085098381935126119425807093507584489722828759417161586541263802262545485009705219805338978365341417852048765865947215380284319980878833147796706217979736606657342911449872746798776201885067956013198675131428229174685180764303914313560258554360337410710273619586635186488406799461821858630358019893230889258726425080801759605809388974696360954018050720025676766743465936964342590376503790644339669879719477127236494346879260837077191509023776463007273191786563117630439079125651101541775030919985186858046761492227987771736654100856064638493696539917786171243090697952717530132578817879538711615959140305764213288497181908783542911107530401895330493654622438483766906511839903637282635394448140048028427723501484831979048028314781962126281757284075958078470946488190641392205088572402973571986541446319077405393802240674991026764266934833229564752794472930596835456813164855915583417693705003258656768599572457750866871737744238829520955684484361460992666624319730924844292456560649215695990257867483697709889239615864514439796739508929562341263883577925133083678807617797483308919664698168743673936633527433848359584064914407587734258316929123451860003363726155033807018019080356021771114142021599522858421315841759798859434909099147334834650469511816209057611773122454315822913791931529439078746553702150229402074533196815012394531619195572265447579661287168045106973197288723485509043929195663031280826596073627139694448638810823525988577846055840879649928937746495273833234391338020464310052201965485913014242770988287612840899507678136690848006397249280765401781243382717406332766715702982674294738004222948350495633871125869507051852921374228111991468672242069532365647934897272051454848788172825000998333115461643784879783888347700572401366387295704454011024508366070091641664807450237671546147935701147724107954329814670087341074037018228955567281609424449328481799818124203757753830322980625877482041312887442881110139569835689073716795258321795757313929600308718116933803613241944430025379293886227510153306456791314312482311885158826080577650826160043909770834319286895339569194773436368996762107710587664773201979990327701619851730597580869469960877938200512739075384421917982575513941163494003865125675835380997196258673553279934718622329443758877835581593334858630258916916355463911019540085805383203451159089799814871736194976754194794374242843047500612449286912464680848759856673283715613047256480704356159327312856880080253913180584400927903361349508079182953655610983404176874414519958353501523684406810003548481824081574040427622044804463380050148448508804183264339511845382051643056688310460245833835178416129305562669978170478400393482425353914732616298572035269844746927523843587960169704100983853973665352965415313666426179111072984625626439230833167618718840112896174954089207870707941948023492620619718137465093765438236836469133769411368054215036036174730376885034392698227604202708575357206251206782464133596481401658336512890199043380573311121277383320649849873682228491160495697745080686691379421843081546600990389279013672113955870459549331445787401070894653528809273286791758210658202393181689280742189574193165607586598956970923586872786850694151048491364668484701865388123897740602160888451314316925771056983365873421962712372105298887346175415373441968790621729540186793570041267824419287079413721101393788740489013738350933200639561779074678311852300775050058790858926740858742340649565993198171894972619533535800323325064881757735826693652414761665242692605490903881445336789690722728837867566221537707601043418668804890774081382173822946334594504939251432277325145053056506064370550581777603216190373142027221990979159455579316316267030942666995317612339378429911490924735395155661165205415647485767914872562292801971281424835397209714768047310243804906329604711644494649292777400472764350738012255927110251227069261545990490311744908136867736593151103907084961101330682844773584490223027573481931905515767065528273769616587637137399297416541382683270526876988980503782734587833575544613009689279021083510171205292769258061103870102990699076173181296549715338788909190400572741865373839884227738147341726583771648661213531946849323433462664713733967648261336483232036653306949117259448283029287073326837845042210193379320701497406948134102072980977470942215007055842825861141830772625442986170405294224927981041374287464464153811518966994844953904253439526341935575693839465641575865267595143947852003109884323431652354007492421386563383083360838016747482359714733630596629611791975978671238598758642227223594005719719251818394286653789355600881905292064579438467894596721324672708114331355785573354150871042200049790056081785381459746387838218796558456256002161073926488877193722424625049665190495158074548100315535688136668839320831973969249375861471959235957553175234477793464033849911054545982356439321942257040687438669764132497426436565758265252856378585397441668847832150664158497562993342064368510706383098396920851294233023157427080133828096131948109214375302110990407233842702076281151479941122118224030662467006600770260252638761778250015092491163249395528289315497735291899859446286253740743111145379963078938322644918717298900479807215557539316894586549816980410532852560407216185836343504114136535226249755068371997811264007768494874982338784223550854365029484025107856429191523425985636995628335193624025123842860057627292811818884366123192952616897741843711995649093745585617788997197478261444906743526561950703731485559691276642729011217573428317136316556841433961594338166964754642465277796404300953151210640490491290991063201534058194117839973862490675403319476747584915487784833057639837628546976153369323290865628330829141499074572253980614161349834666409504551234556841644649982732214090522945000735377125601448582805307109544774087735967645244466371992065437423196320910991879048800999112202535562628924008429427957947055158871219072767812113170369381927627243830088906173959267705523049143630212586736975606854365290076881088332460421943578979157325330963624435901984084361547949444614990703275512141059740843766921350776459790784687391336977552106503257513936275595002909511837674061041229547537589882872361683681879038219927239191115456821501194758983292295034375604066981086101595530555126452083769860185417937855209820796977068748731753130189619742992640886279091457399929482506828363370006457350935873120125597875175417128231958315710144763652302998700998923112635637378137480782312245317086714222784822777914173362359913362678492459068658051796399903093651896921570194044578704205521254893495900361292293978741670429183979624307466618016175445683754265176462063186929430302468539829688447986018011575577593171224658703814633716659077701369923667520160908707800881239430978393512864392667051533989669472665212543219118995763721893634877364910963183151512424288783541129003123647081838806906662637424672967610292974083031103469421533388242645898020535683282815064195859453603698019826506276498404307701357975128657951431230747046982027997678471539562522077883775984648746208298953565704015895044386268808073995660437079933695279041535187721903096356706731718448697444077510639336582807021781628673945823642326794712473422524648773754515057436767478726304258964723186702693613377688763711805436159195059436248637970140341968461606410750346735473895981577847576106376803528348030096848781124013643497232326094744478599064121892581647794089478528981190083877984915085521837521523046125366645431389323988186970858629671189404539052214228192750815175753971653329172075002563224745891547499157339572436777000815393469357279354214175653165789075926549753511024640200485441040280982215671497317167123264584471220078987449972281256510483016381407952806214218568070644553834091699108678791086775485749549376745386894320465035866107984371029787751626373304322622499045317126104843904582534862997709237959226429224499723134810878649416013540151661666923811982610209473532267094393464932325275579358661396798693941827706589862236907278631612645184258244462979780418053323805678379210870526352556243471976570296431065939158708375418783400989643809952378776741010147725824118737218356631685439723233082278715228081520441014220458001998440738068699348928636112545639754201339877322551716408601302264250467298719245267607797490939477288265623673294916170308213034412028527729716841022032025222402924569217817394229743245027757865264393789993887930440298120280806550316625417149377681643835082007819860727969980419921066115502283172145264252266407713403194710285562657738309267684770727185873558402065762015521870983409923650116316602913978399441340381350912419955650833982957779629042159602016282579134812494398232917632919205024767799946913862418028219626904568274735632341336600784581031294239515213821670878385501330537376482101231035338761154889032178948370170043934919908508923794887276472311058682072539835959988887895513089861736009640999713521375887581767873752268567781086096506596930566004302964538744105927988116236163906549368769220493563838468096796901995494691601691965240688745413285048917383955666975719804694375977191316195690582854338673246567002964520674297796617749650411809763934656758527310074674045978363079774787129928794156128425840992250475304487087271474828204904752171605176692774683940892063257698588984620533362149177207657489180446164372605509481594772957064725473693058082499978907590544146066067246609621503636741914481404954801847242206230359960358913438516603831831826883998373512933505612728474310401981372995149963808605849867847381426711714006155562496356136650165564995469852505682929653032950201419919618700042816878833343612535347601794776138504020781318153127998410959092024681042171249549281029638857208652919250553129843266164605287005335712037959865867108112683853252455927839387854163680149087695311949024226466539572665054440234670085020609628484952395229186950232592068995968940547398402510282099052128164806131299133833007110108851081361570068038652184935099271951258373682203518077697690813747945513669732631566535393148094449122918731105476481121980614406234666435074743264720588352741959780872885671096683395159579399088696132126513230013209740383584475345764526419549818259324225038036605153741616377751756329319994384796625858394875481958885027423755343800494001030654766664286678430746666027835648795746461060872859407584783554150031214506732133414154281989899690377829558688640636740522477107279301534121610361598390627025343227281576190600389352037747365259710412705737744892345551216431334831333914293420171781028532100782222956640158012700409524527842643240147716347196838988354421458054514816138011230323407426840969444414005583589788314338944977758531644347404482895026489881550747946047434011230043931195296158995497624133359755253630070842068146001034341587734302852187452517177344249912765989074480897628136834773928424872733421079594645183208978769689179068950520530498969268697818348622369991335689112835346514240894101103929687480587092866213601675283601944680671955594580239284452180660278665015011583947523561121329309124188303916483341367196871242598335524166031106610736388338317352296043397961628414645488884507183432529579251808222582600710654587872463587678085396974920187825034815763971025764736770064274216927478651635479780610205608351986495533570130450794096873489128516627486595156143983875462554063123930633547761853942484469372746855873671282481159276211232575279821800502178028639044561266517900965997724128362852794744368240774603153061841185438238541003048477070449369580371792149466886554383712975046743294210591097381205226763507408523204500030651840417545609089601107033043148132134708789230215727021854230590272636877800045484728604064950443214398698664317074015360765733168205470999147942932762947338460789631123992215828460708266203160841812922262193297712859554907515452749292860387828980119324426484167224474434672055398840887128284894640103027060941621656086621927135867338074905497259459563873992732633920176515864176742856400848957952269791071376321198718910290844625493155245495502029971291182907432617887897659153921093770031481033152223615810877959805491764726926875687675663352855911565666232365004113030513430640242599570552162062531449817567840403715430275357911458067874704554818866219494620603734523123660011986779612650726536025728450262900218019869249705072902141048202772944488347303016866706613171687730574303705235887804636564232822998352484156827691865377359135486744599270350811386439908911196506402535469822992994057301527981186195762537605426813029193590320415701886711561472017469864623693601345278454458743130347594197687991120481457416190121190166262952216086286158336471288879133876337634809890669755637876028699553817848221341818895410643475909960131253906571004121888843043346158739948147179753621627384899903913577441334929292388394756978128354224458430984014670899964071354164500808746118585438841785935657904664292371718477498666062883094824705383842724378827464581949205842707209143877472287898780545471887357942563898756001072437626015898273117412434900748083230053398900935528272624770743156744583294435912060719600482870432298255854247871693811903020403554941519592931919189460200386747882927116162552648441823780413684854087981314941134989433457777151327200774144591361449923718171416293439361203448151877071295828624170681654224661827701204311891343818840627308581074578337912304832860388728873920221971670945823345428403168030171130166099107402208224572000555849895540776184519067996896448139323669302233094175222426547297840540770596555219064567345696701528576301021964683378880642646876179718896590036654577466980440505898611032744941824140122397804510798149960270576374831193056463934832133038543252350280293279228703355149267010536243474896930070083742061272505525639072781382416640501954922024781043640922843667270596072237426392304822834516411586944651514878691472317908816197236887308461833500852888122522972504554746592495890849780897528382178164910106170457995219090333251345678896423518290538800684832210614055115714073037265256876257323209712584911091787089775793737293602702180041095531320877490797469297384451430837867088810886288215361090532971149156027048916123268708711812546687065771725321470956972810233972837930780775923576065538943725757389392283950235465161970898991389296930358314084938875071934586009198488480017197664199801362749330016242973564226515060246631908864278958561049343702536494809045229951080712101815556342004612734377643103090517025700316191660694254488465645428912452635649717965032115550257339184377783833326839538149229683289609860361612106470952196411671856164415908952641514869154987818403778753157991424916832950391752798546897564836144748286457518635345877649849787275448865970939073002170952315117732008750696277849783296997736690940085237656152099240523518564971436050258663014297370005566934124555377318005918633876986104873147259619567138035454664188925328122891918192984230698160074782937133491903049746696670348509660407941611677019427269720215188855115424282830860608571453671667076499636901613235602471100506061817647811376738150456699648682492933820039815521032365340836155001332581340140993006879162288627764153133139883804503517434944603536879573530610026510401613230575554513485375540831188171850296409419757498629744572379874873641127525961324384248205648430225690851883275839545148907058378213044819121804502726682513800458184580552215273401973815309281697436497878613083893710961616533917198982040209514589604483563439968297384072453412206640260215824788427144513648731681602788937804472724649947801870751494830784607154269135809379295992301023509456645876741128789313633746484912981817293486061242160015936648162440252580703868928779026973478012194672925625984433835680480511227140164205005924603891896616775959169978157017795236468236439329648679757976085493558882028840013983858330319804992896947874782811810961177730226414928847610255801536417050139542532549871362801392388781277556951820293676200689380871097583024006624128405255192921149242160458126650540141322767894673312120507977111092006258149834094036738857126567857441722631144517005648898304260209667290197397569414909796674376177614222515894652940791805621981372754216874930889535119711268159990081366970246707044171400309907340117900542213908444738906915891166272519859967922849975030603493835425990913120979095304169289008799325997001970481109060707124924320531972924990489128992742530371282647957504552148885981595548048778195330610171997952547615771235878545542653094305427714974088433985245212573776111962795666757633636624704570134631776725096161045466613712017519434739632850654278487801972564671442053936338067190762597369857567388984590663503701118850179655795787784087211375596506067971855789340272623680405853033855185097941307409028161133023288651837675120870140782765998964180951660620701335222638545681258551443479152145652851037903865966923909783747383192182518711665514131145724804493676010444330214729567610746656534894175454588779877423072336635756367716254797266619349060810945590241389809513538211938862094110923688742014142563466723476361769724242118687487239720394595235706571695686639239034691937255603435770900845223862954166168521067283877179577618059347312517713125483412178344423764678629810586881018745366985753777324769336309354240572644334005843040988672675777119485243084825150561924945550859904417962020854503661699767208939152985697336488695642018440444110441435983007565356626696789261494706176824142361805853094773226453800345848595568169042878850414994998186271142299732258183699834891465572449061227321271046644543768949784871491813583172189371811213921242578456649485865091636944588246639358567828867739210108960327188783038554332584219387927205279309754828678375471177189210065419223600618629513536873237168005573431838380718251797909888365884563800327482532200934347601849143885342610125570775087262540756480494288452530071332550217636056805816860184828801641770822663870533951778637905672091790410056006153467392768243993317617016243980156095684564584869201187687488862446046473015070488669957491849703697196917692246400045629683522048234635778959357510205941904488970197822180629425936794630571892628457415105458630640874729765990845301755554317609636750071049940706336697912786303607704739010607661501612105138409444915517407619402087588528744893036339372803911823201475241753702766425160517983153554885733844901759566671526595795193410016266971620314313897534581890398166273205531088303814139342740232733902677052741229280032478920915289103482846264179955901998767680655337372769343149643235730437188467385373065242325859059469304247564059530056950896668762135898903479395410373450247641336943420288515189265268489969366239515061538216669781116073059584501486694196813788985882177887871816230268030376412683682852621179222086862869702294486974299574512970417489288008117368289406905688007801756569199114569404411534542975069067461322323162714514548597277731044788263804241505937872680078443872277753641572081617726158266731876926256444825165720179442478803356773224780137749002211577836813444969900417870013478953595563117003868068655256858947032519736643860533276679934431900648930442362886369156565629602627208337613836749334671458974220008974311685673020591527154544778055895399679714620170436873178367163396336200840687967320049346888263707904352329795542226019728497203824967300012661736692019766053666532995464990400890983586002089284122541343639512425097314082221511185166214079573379338499635857801464027876864693969941037057880291453243398744617419037939191558257826870168866839574409674836949344255879230896866253328732410514021221123119951276425264070258595821321112756920861817190025183548721566195197012257858761967625343805771032610461168735800469633244601269193909543438764866329329980027195227304783943409895594037310123461782287330944842229534154917473328819779959450405848415127365623964598931555667272582325960787079281055417719601383434227399898520120332401383961568229237824008807249489411733520290468753286930498750543441965305699083415380423754909539155219196580173335348071311795680362304594979400934614216359906475411872309791154282278565437603807634981463314969852991042055047736890289960041636594271336174854209608277492615890322438023527826776550213077244584694034942570683511450560512592474206384984867240543457570933731979890977731527037377264773716624546443343894615821883823813143903509790675933286395833437202000687272206775900814404842535319586149270075788282804196476670671485747741253869200433018733667988444848074756817016080375527136223988225660747752752885759364152652322359441597304612447042455937735891125261397584179346376021401343029540094845520924301860274696811291949658690423596577852280849590627207592697432163609350544748197627707058161959963942992257453607038754042083259193895548056886784161515503545694312137247188301632837646221092377149465439754267824120745340122066559015111209441058344022681834363120212791239787013447049201856896915691989588626993704947751097586187432652608953029328889888333433422788237195748268334181932906375137276180632379261678121353905945744474547415210137743117260840880760097624775860345567200373738189805967189661643570028496977220413587238995891603250043643504458589247452312423469882497468109348419661839470735374153689671486816113546132917999529563977474634642104050562363483376968516472373550940552104965481265167571286663774125003140456478244425546519127159828675035613107415854267150636882551010984905350790106761134585959042026031128978217402737939597665783412726332978583325083393532047125579958035007838062873210056349508325246698406140890860318448823833086067193482637336444043578904984485107421144252319035237559131965788874655136112051727079539434138126162964520106652952311706899576681588135935198243406300331064114840121412806443778241991855734752311116467234156631587936048630293710531456442833344922276450956275826557602101955099173552408002295004375074412895310006645078244219843088966575489327890234793166621074627406336989557541948983710223922145779214325313730435363567799847162857477941751390304663201649159804993728715305098264599329767785568816680385882214414847744530942618194394312379874913160031111190289893785730932504364398416775744847665046164046076597355736641947619751704756164164296536039336058049972797040334257683344549864032580249929071653554760351375891728026980135924071865406241389142579925874448623206523413863390768879152222034014140427261873047578259410427359657039244753293193905561112741937199616420885174018595739669554639251613098814743083182612572227636888654791811345850532441541488362456296812764964508914780057958903610872082008820219472153233164961337275493997452666828412276248810459993194335983920379911007102474652262572900659862800453421430278744229524650943578852301220653297425576239649069846667632405181452665481956718871666686483223901087571524066514499050790991545821780666268922763953316896143506450484227218389080738510524338148725176588630773313200243417015075124900062401321358554402655292772303749860704956301687065879503896899064618362601500953647846159274742126733988207446656790123999989939176167194121968350586582552458891463332877986015198317093919378054571583884614221889418368758203565106321130115348931810375688790572587227824854126698074422936758959995572339722084942925030389941260172157888114386399165838357062301300387452393063895747228276541632986784651758981558727157100129689042200218010469825143453268720597900771423965720705867069327814984177686019014201019639798027257836627713431281041871111583416235940096996305685822028962178781518479043491863935385727523657088975046114899243019901689062988250867526213787374531286587669062662922536519522395112494402215365241806694023547522238277162491143316932424531747144569129997073673439457115162841244815354169017445066952072749901454686614086918307330653444301348607032988029048581669883172566131602626573988816784639438828643066271851714894100169880080265830871706996505102899054495811196456361291377743699733178845890428805475433877940423073822609363409233192751423249904570174063958144244612075926259188167212393453221473182842065886805869279963207844044904037990605423857542057748659270737166408589924844052963363468401777999147862804450492562726600968122332783820812947184547191060376329779295241040664164252810756451959888930284302315609647064190143580144146579003326989459021876272817856863527648099872650424132113552649021062134636316411656621371198566432658792977559467892941467146154145129509933718285047027029915184602306258546252026290933543572907521369680197962363295213652158618251373620928030617444145867320575019682794753023349620913736339732488392914273229696343501706496998355855221260750714433956882773805520290404269794188432340465257087251212834800374154127378559875098208109794156846728936309078986322219479849398061791624263242945309971415595819856904874593502794261210743685760483368714049378409895462382108768396032597473584041022351165198470645406208280680696817702264454880952743905882779633007595586784924140313732103768021833494683655696080116220343213249330324653150430275796166192148887343153094370521271084823329856536273143200820116996112847904262297527378011539571397301557674222753007035569208395549219380309129809781204513726445502936798709267286710055253856355815517348166300983371351305393330893456142633971369885958374899194001002378056792237035515273465782658648932235414899817903214398309974170999497775657179433334121208119012653801970539624999178929145314165537414057700425715637803256696454007710359722618104179472237014531945640146200209453104934737770307985150355538773921559878761604941038316825856922631138210785817894156826768475910651686422123324534733465565379946922347108228362919605752089510538493162449646766644020544406476557835940437236296925963566779652814507909358830402129043478285181829722115802096327211594633108149012188129686799490837951970340549330387427304927931634082626955129736572323749362487195799269668392113341731214757621725292509345576276911164650207893783193096434219975313662289011441430774270452685754259632849182337617248045509007976976936532246533417105078266276911727052642904229086271955580689002152502644733375318066174158833601142304267696000583484546405600578621272326272093631926942287103882187986492075901530590226846738005985770721637125669036387892678058300249490633268621287598361270643698993898947172671045584065194895022349357149772009464145609715256973130407988408328531112728661643442084981612270167972171583803342194327307499606327706647595455432368331696514414049227579063150538937767932522711117919739167208213961554810937487238493969648272961612908535767052697991051366939034898903892849631813622407981463720519533253370286944390011296588872852429037220423733035189927266937652744799396499590921592334558595741936757713833122005874053208445693107803886367640726978780091889740334593134675796163827878037843242307405401632698783978687439850539278514615885669044539257252965930419113616315732145788334260053641790348027344906390709041234791235592580557985871520931405451084679468278729317180309871358793841954817044220569291991592714543634129251417666442934775143496138756107735608826360873204189065972348003102101634862508447697105632453416005961142660185490932511950992537886036279344058959520309080037293144417600347623710064741687709208326960682084756370072652589582454231789483313215974801535901845308587871650306646127477189611775705363023636498207872863701161675339575844034906513177689487855203886171462997825277424488368119839741275486424396689935467350409043372588448205976419972055549334586632322363681257851800519034741676616712299103215270254004184975542515030864248827115454733928871985404161229174195108160252397455944279622361101431876109807150351186364459262296907487893756450378477484869781316484910413635211053857950788713968288882576602690683006223324876222793975094130651293607956858028110434683020717360715500805769099151062700527111246263333912470947973631681080230162711142008771509406435278411979779990038298049779747729983095336505112540113187510972186751172217183742296361385047011030494881771740582394455576714891653515471962593873473201056828697058300198009133226072403094373637040350554991511212432210446424176068421451757470286193780612549557966855691418145632381641484113786034540963070975521956814022437475765999504487175293951949987398384831504147472683015951259803489555979196465635024344693257693528932763590668142686820849977561756522933166006656041663679556531296800979396678028213869502701137809635820440763494338544300431493653843269546092610437275280091994469013818902338687086820212812429495742913779508682269070878542894948225181796525117846695749741640439464089970917066598325322005079135984398793338803421520116705801707165539391273454439298550261790639401475727631010405084951624040286914813194081831828382080363664953927515661172429100212318088573355474446612285956485665748377446576287217556440261044193771316648569440013740405564196080072017945897235249156881028348325383826987015537161882664108658619207650030696583661231591910690535014185182505877278356248532687873471854542544262477221326012981213309068942006422285338118153111584959514495642844736908551744797065800682463351625919959908345856114823352477962706054258166468011829485055208526125082977702928687736402257930922052132417134785675034412471751148346528069895281877989914567348286712378329650639327875429853261899053576656002239426253038174926793954482629717462109589435185143413709955703033129786038959538271461341228387784576228020187688344603316539757839558035478458035106428750637711614854694613775307628915588860634538987846043046351646475042218870411826141551697118077974339919736443551900112559851926904441630833178755129398823636610597725795758815758026008804568711807210163637179427486526871340929706500925340968169129456264126231931704281715796103660913300415109320987548872316942767776885794552637594102584353188044840514675737605499234893214218118230535138360511220714829020031954923750162275118466666804011260738457304159375920556659648758521075704005767532249215648113461341171388125704570833413995986271916625092462063251386365033061646026635756048078483921996405193517881703847669427357597425395930994350188248105329243043484678470317702891481982691892949155118443696298719596302986386432368729602399437890885451575445195384269864609878284626203632587096198152377145868023979900509176012523432155670372874917847742885321033726445512225635154498844465090909429108528377650418017311597625773292956110513119567519288629771200309340957698287923607937566310097937952454920137739483184161574579295268895374228713732042168874844262239953861705634763008643494228582247191599358547503151694879290578948901061353998640776082587167485796348494817211993806299625870483104609510952761525337979753928650967317434408277832240314200420437085824548058161833052163047030462812387806225514365733127896671971803105078276956424435852892122243715084976127761756727984725262283663019161688684905355634603041690627170512051698645324417163070595302613557869910119104816695967718510223099651126294934593214292273686170695048466059392971774735516453949817789027155781954458969402945694536288631035220211976906401870614736027478551444025738736530585239949087626357351663961138093511827046324435445340532758297965152584693981930072589329929231515905847402644979469740817297401811426858895514255434650780354093287855787115343127887486575236578647972215921486644901753821345683106581572632113498407768579315457916002401242168304022621319052398154091783507449491319485924420605197717873281735841098047897242421459742780075610967515562244529517682080629874345209561908660872624266023999050800546487518722510931733865190297790064573769800716748256356832762813177420864292241562974159750443782321913234386735692755337976929856712704570346557475502742867621903043585442343001444148268538164907478240853000646999616575805160002592159920278936393864774336468044353273677425348251571658306584766232102468836984806983057767523912974497301326234810437708799640557364996964965853810960764067498693771969136092270094467622908099156482729605663624179507540971018846183194809467785319282164634831257900629487917082701471440718341548090196402095460616229688094370147740848142456930934270715749205438119590540052843726823784979947160589865936374693500410751637148945033166182324501637787968235313402298662925392265890069298635379227815339658507742852218820391958310332629646841268612595748979603609062435603940472394394411132594449752590508243577008276683093651154607067142126229124753730093988814042911463629395443547795143249830707429470870044572864664651318090477009661352618271873452689327791892524460633183724604938231278565431752074934541495506434912070635189220616273351519168848291317420451240715392186621669784175872700772976181894672168531791476629884642127987537139962584711474926148209955974209058019069697291221801668783022939612498592877148844762217992952999216463544521850883283918969394337392057902999451249013104301377798238983519826141244528143610003943576488587084933903273468492835588514719759424531739333667044869233259814339464298378244323445318687965681772372594974742740011391199768892767628681407585179077233933720195930514086754624162193711043768683049897105335884546944971318333433715894815715409454719591285855118687704536173378523272881202567157721942451288713730649604120891718760107825650858180168026637340767831220605257675443100898496275174476924210376234290879683420903102000090148760901177682061642160187718055955933808612748755557637377663449154419715484273274629795238196203653141827117007911401850463208820063955937269376664779123825398640042756704372859352813992981216221332240167520643246171441972697822885769618872767252348753202608388434160585972787473034210944532956676086363201098749654048222539207327446381493334899833569644997972066541978483755277692995648318739181668066053972379994026489572468212410844318604023161161156250031057316957790866105878259129045552697385904921056109345013122737217598311552807241954597978902861124947675397329199131324923051222604429134099307487303144610408436394349221801655314385236211929189838636024103696647470844362436654897717409066938020325194934074797147711373043203889271300448876301048318161858298400475743998012386471450895415709973638063838108202679995411392995140972295630414837783206744701165667039379011612493385779856413921541702674300000907181918493643208478267528865987428198510277952279877533452128892940639580468155076951939779444045854397342739806372085178833065774665901353243219846685493887932548180255381748723433546018899530701785057159899817914145315693272850961600357303370203496525608928626199147458304789404006810168127068460311771751381692116486863578785517727292892012327151009975682019515705817007479398516344796385606753813383377900983114694934662403719568992650370883363690862826898369033880748194859660204795913737455491499186306703203871497975791722532392742464666191716536098365332712733133851706745509706334958445090818467464914439324388962749847834340913157816505318138554180369626716698405274699386655158493212959058149564338386142385399740897311143883278611661791349268763877442025601242856061858422975486608117893054069771490407744775709416440917381711734614355928336825897266423217531504837492784787862292795596569146810263761553701248433897002532139008459929208374336652264756352710192468512201095915662004730530018835607378138429949731470436745754013976836342824413136109239328964277315412621426996619408329757788897599327506583760672003831672352395328063574738654860860247957431917135027586886224689823726606681842113289939500731804557875324310915696464286292074941640815842938544180402018350742052243244746742158219524474578955266283651487564745606651521871326757256653830484114249228075183335845901819776505783003585051070809879267559761222548098731211835430381933301399827987495406466075864249059351614872626776360618405464772754629597365813902867231802638331619240959916297616699742368030814060802349172333771297984347495966244360821425668715864980773853402275626842675970400178599975289365589385964380795995826598011682351119924050495122212528586145832431771247379160438638110466542434378143049816981282287891362525961283968952900721074029532178036482266098179854170344447646619806592186118639626656231722537595261884461870271417987493089802841550230129325005352207434519876857339536616115571400896198774761308976733023739871588725775226345279668704765158729389518466737187674450133933078000535587416689925463758265442984648139609828218185673641834900129722776493602566963987053410900469532959160878855446298965893936748805640120333206457631700742402593544488224008591374936876153345025434334225823748706152112295455332529481551449569902655095868748937530018611783698812614260883130747481232073767514638631387034834739705275019612234361515756620204963033930133010378059045253852418611074721888323887007134321496671835959348440925140499969314585575946712239920634775776936801941738020168574630375531928874353152634456803322106955181595336267627294892091594290271078078363288408487831297648905728020115724646749560766931619126915851759033600064386583499155216438070466434288749221308815151979620906150818817300483698605688479713265273663163353554161059627111011435867913078432492281667176165779947723216011097754973434758777899339264724806024776930106906032465325064830036300179607996231801476847724458677919784456688881234485394360246181484761691664635460346872458128872031525021724404189301950114843028773616776929492853396648502819262474380856322254620949189876571936386781433905639849081739164489813513047309506418505388255673847766969917872874161664264682963304897166080588090671287792762774276825107646550756195081570915661244547510069850563269552083883529120082585103590753924095827655032570524141557385912610794306906936329969196650745308254915517460757610385335820125053103730374908874011724004337017909924554284644435129917173798725984867340318578525401441296612828863873526639495830577449643250451123260580380306006290331589395107586131103656700375527502670273707580376004338617899016705700096241573754638079509906482923808931724184978469735102682795293684749878544324909354384742246402036060355248978066526307264955657132936396720294636133009081374071110625419976062993651481751873664330166217437276986040648086778982489491357817805645295743483624098681368359248978778037796605017139088030758282117202930103036673468769116406686320887833109155081150102672989633595560998841164381726283143009261767413608961520840183969849673956162336137440395707739638642692937670280232090262672557641011993563592103000996542801894059477790049195264692093970293362189194585130536974804800184236872139105765798744329156163406828498118664648852904283717286434671563507284048151131827110651898486761942488828046072158687136335674395293863632225198917234097041864857765617382262413631147953342883901913625225954237627999131422654647587087046792264491856934252196764009863943688181345988271667190517283199887097151748797698341901471511860673083612140156085100307058595340127129964053966178985137814434809241502494887431727122364119893344744282166600815514519603108711467796154501891790986910124911936491545521748596795216167168776598075567373230006220005579506858596542816976045730835450179213560464213148416087668210346336981974182058592987769498828500813335127265042525411353053989860908463444189854382762983843728552210276978572875794879441057026926300308794936694208985407731257737569798396979750485495500118775888908112991281730391295061043639845689195540053569840226520550547160075294318343100425466050052770279193828126011176366919388756449192691453165412127576188200166503674695836598174707269688435970226540239048355833211753041815014880383535384066028244148475325548132715089161124057479318784507467387352067851238624758141303517507184424448655714870854848731244588865704641877686539072954605637463698840710621691230159350815286466874053831789335128300590910135377888254066132766823304391452579533500581838633168630943520320094527828065867740401637294213209890872341399011203880457269193716478537067416893220507245820752657941100410612820421485941032884902828493744364611170177828697315970041315417648085255627031218188759538943991141965735878132342575203583897280013070117849204512026590775586570345376922702256310391446327043805714757580958415748123930119590013605179775159186011792552602258290157232024691874046121356425520216860997491836492845490812224506538512526472752048294803940597049975475000845776092169195954585250283186672454382772097497668915560787593449680643221807541163724073637330546352492953871017221452377389460863115142413191158883547087665476688100366334674477153098073850183692432383858538282415838492949472065972506707260038618314021234679674115456527199319586023702230376672515595702858685199800292556628551988515660339787825201366641289296805134436688430655850005585703012712623404916561310741572243727314240595892840584319641538222553966736715168063227739332403109232414456384436681042983528251932145421787372520459062527723789274107198660680703646632744399796884725473667010128306848357053767336008421900098117514604074017627965561293734520218295477538635354653651979784520168053776225442013543626819840749181778170132102713761587898373512265766641310320752196793170434661135393361464768292704403077497722312369044732944213099194939590881132672972922378562210010880292746837696331550172518961514825211305319583298494524909264316802331195039510724779550103186857635599352055142189204112861726636710141908929903254861186346921794685542338729573088445513024767261199441492658099103666148520750993230483949205209446039354811232476526724323107822644244652348553029415477394612215130102887408162898539738477669882507004879267416882367646695659252799426442381073375791769885235291479617465953525822259934901183035394283496628671261085271696480560232260281937757262344407312526159782304089997676658339546599029361918956464412190026138687029225337897817079860991016458365888591369773925652504416689029541530052025577096948420571302248135450337905282036803666413203692970367551700750322649630514329430635439952268931274082012268433860560873153439170251162715269404093945421545453919832404529448236384777388661459549346146206475993522292683989957325496964558029347018226552916998002056531685656201539650099415920896763247494094492287761466117277687631621910674547879020554691809861197831008337246700185608358743282321979878974662542600990165542703908367458412176801460534482567348151650056594579889325846766000162705443718072951909354426116636636078069745967497226614875914854762874475933333485458371494014728646750369815157025038055894046935586746590715181885581486653087076792599988062806967224351352559232783943952030788954971214485111298827321142116830377455384608133552624184059580733188102612575666859982199261618180139232109089286347316810005612284685419384961285380949595126013682123422034269777295913241852475068604199825073399958709770403255792286088397526982498950261861488360242062716763766795832304402654684642725128832759569430742874758304045553598413760841454441211995808677813969523915793152767752088309046904537972469772530508992210807245616750099338186366702138999261956357068951165855742098813672048517725476776843608377009439575579842717729381699085741190736582548697996031329978843396011054730474952628294598653358741975629896732741323891012460045104195203775900123073879846708222598312925374033335279562451893271224298658633345857537219212446582917306747758196236701691304087789474259404650926638464167992911138806177904820401345957910823435921372614674162724085550276637283845893619598144789709813210095884498364369281017896169637988262679118994963739140720150307697351769027182849100636109611296446860515258885373456518355695985446368770255039874219491174118565611699448151853766931123865179158826541340681777868787607759729803042153506270124727303164283541732457996611717361840050493123925624515864395558267303509126155764674238988920198333417965670837826444933861841290775142342746053796032185157385305282074577373946056440483881575334918210805207212442010106626977725058174486778558919154841274180716107024137541694198566602040505745999544843456387645495564701844962909502361812459250006567432620161770067769245739239170958877501497408804802901343121546119874532249119023783236844167576033118549522573816308392362536491488605106643513061982437794698030106451462244715326931503271097347442331021559008339546396137967774106019434087782041656662086506745449853969750642826957366516038981310878195833342555703132954391070618972250982288800129647120485568856588096189675224667468159065574517315616816358972911184181535096398613952237638171000981072532811467465502654439224179809937719093121017152337168277086699826847536262244360021326972603575675026015676083273492098691726983322717461568967675952142515392822754609171807271572929064981292359003833854526851335291988385259067408052056000823484769391275798948975203027476875222401693389562472217787410482076089322112320790841967327192275404694549020379768841818192756448133323885639309068760263710669214603456475782500985688425536320933839368937007276947964486074621996673646199351116022387418479768609934516426151566352329999881793061040400967595899590412303337172376179763708936974490023513992786849777466681512287215906216160451951824992855366083022926483879185909312271307846916187784974204363848459466311006597172017360180716371358420205845219657313942641224746984913548574458191389424833003370815679487477283125858376719001088833629884386901328937642073574816640355299785146154788753385742846508969088957877168873435350833217544063033273212369598506468317193458330380600842122402809649162228211054490560720035389220856709021174632010429350395863855465405544997806692147876187112202151664856748891797750526651022309549694296459549089486743222423064284744805554615350764461856869485057878276385675596187407443642380350636906000531394411412531521445457846116242293278365965436483882072702321868916808083197168902911841403579614757216030896662618156478278375018391115718255170710704994302064395244330241122622657573086397234050587408838513790277481678947144851198934904533006760965088690255933892032824783696139814224007831415910153106901656776581537886923341875517533607602661819726531243670331616456358554107812928775447458094135807580235867385062836382724754197440881062915163024016460233239345915550188512822034937194303549870125789189057344549672876354574766771917640748533137502270989408547338152649310872942488512569069205370362205296097334187626500637269677509419709061589234822494512191250833932354342698251283307871676863137619620817107368842204387221171067327036150983086025317834316189048984853889438210230843355120656984244449341409324394628227432637968246039687944528423794894468223378874518245046379109755122660335916004144228166085170649723261673670313479787304527059514239173182527641807616263515803905289616198123582312551491269585287924309282822133926300618608910520563551094648498406396913229961310824349557488303025815387560142443350834717709145584719625573022231354027941992786143873312926451440685539211476032458154291574008863611898110942342519410201021314231092345223158496764253328164008120083901233736472099569626211849725862878608340755563612244411008462689037035162051223221099366078679270799022185851031534008673076010288596188300644887583691550946980582056218263837197319439845645980436078843897911316167695886604278032756149863884617256437306520690970859737955144627342690148769349479663196350678466963653698490936762956951367846599776110637177980663214317129034381841171938800444398592271583524092975125206202244826903935304577197365854824752363204021320881782740668190576141125937319945191952907601995078422831393261080205528960737177800621295419619420446867420389671819716440346682534768127913497669425676767882934293789796996353007081564158454577961262273742085468726610124934237557371103379579206050618067682801848386522945251312789428886942562218830225520916075649862584570795935751023263503562614204378432989331982792855938666648981942241371025632176614334827712862288150563081491140245358057972873630176095743051541967435628453615072828542837167693608607337679292034703541640312445939485371596121364322433632159544428995572426987059605231072591771190576510807401844459881004512385835024817281162774438484705163852672228486678634879827564981311915852290268140429451582505487024346260693161878559045733350190560490940029641158579397281485574893880472687407544942324670761475395776053614013558294714907752111912664940453229208005497102493381473166288226864622976846901469713930587562500935613066301134790707863932806562841186267317697409942378294984083341495616178699192572252924285833110354098515096118481834139898280925492444313914657968367174898685928772998678530783714738699475857465841022800042226954063964213512076008248553944810042893559635868440161817674692438302949596889568130901284948732887957034255842039897086540476990899922720587301515399653872578679128411727149253810800109296722302700241680770932436879403854587430314262630678207803306853827125971313195716526754715943013900613148683299663924000168344297856394703580488646541439600630511474679476139232919490135702973790284059009893521404045035781824184927673455699793559692483183536064477877235476358213824865106826957735076019848160351038162466613468853458335262106497680991250325019211185125460626046121353353172530727115831072029636442408851501775750937443697668115066090080401737634508957882178437783861427077788273837677892602461799573759613526177503166949009375272434111044512727042973738070886053560078752901559647017758461770616028702225908181669080384503915062613818081827928391368811892363056093926275919816064392293507737788808432754067756215366127905966387889560764766542568135463441499577262383209050708009812255316407667621526356187820014205271977168952802202310823134525266449952642483079921386252839071878202197693584481163143353389549432491881353583904490719169280010546540597997476374331466761753084456269467221053761154047275472689342584535143420340088906688466184516409726782403549806437610684732028898337235969903398799119606543987406317339331578754122291674007585357230891629167678914827096316484958307485257172257935019475291685555635035028754596258725066392767739350553000164694921536759398019701084235406514424103216780815320821578294908994525931733528685104707450037936162842539010799754062590646328573558964408914564076305195049807760611941027000991956902745499187343258547816369068485971103822667560980159185307299376826904648777513933171081226781212320457849572251025979864146793924548006962087626816766639335204607989487481193629509926907944719175853467276380719277294141968672049183671388426298752581689717226836927107757093947119799374596208408835043031067180544590309594480521114254812165878440043458186756691054116067049481407505599789918404932036803552009320225630167743787673642138885055948721433081721395997886622700991137768545949068675500007365431789169093915274595454238686826155101488017021740069487800496026883235760705100845562220490031296576239050680040938995938453346260896087792075837261036173738137094620720110625497882382135881745573325268401919159678723619928765283776912710260862230721035238664429960610488144406617005122793956634021716626890263434352674116282794211747070614224874054895559531473372009527464456369341736644501141735463130531063392484254615279603635664354726380924927361384210367492389513061217935265550576010320983577875130935930771289027067517115700359946118533300538844330901880185046920675598956898406715683842790350207367030879172217687764702556720272736501529444155105747106344695773252933312926118052553380154011947692144793417789578054501467383424934469722789232277269177252905180633411638968792831558504924499174830688714047979015063946325621774604707052267782232701932217511357828126712183011406692384449447810737269412139671824907684662510694563295672542042026946136519820729882888258851233047460569232266091042613723609602074032853386960982222113114277943719767283146091182701380583103766632646107407510427275735547893592319147724032492818266343756805178669154312492767415656582937498596507450825528309634059825787864983668911842651939999875050625459979317410119640299842475736681137354649416308100445599690189555622193159469365869337455628592578727934391651675304246575479219490060805492354831250704795558145552051058724346878715833919620372058325012495044442105557841547757361062005978032355636579362701295929573977415875048528789825144297710781260918857125490672949939056686622241453768375404222473040086409377655296046981605405764562077167939038438160464768854606376825497442217874368893836502301380271702784039685213749197038470913267606865936597763517466869881547228507038900553708445153209608555560602389033141074441506373639007066938825367501527187675327032500352257690910439464726249390688207910699952947873872717841873713717091263481279352859194483399365605493799035267113327155231400124483606185175241131381122523209962035819539695734085179433773576244156838017554807656007187375265360256674380779125014736263935933842194267260447273101446424272784636273478329075327846531447114517447590612619972704055968234854683892992502096328118230930785906455452684043539825952811886684707067437307101342770400798122355597659572188185985592943468704870871797331936075539251307907162802849170264367451788248928739714679094587696593361818632874449399984349192844429817246403370502554876199690642581770619374460590956023252778496178565180632034563392187350235820408177628291412342974721384879865857628448393199819169939910174403363589932161590822173098710781349074130901491774369736613044650613321776227317708667907421878242591928024625826894791137510723315491570537770937361228384399005091773988479878721494462249736267844548301440340017554890687623488803800203855575461800784945658314496982595186817331384692412922041123348657225006721042848497293420210130061819214466650536016289247576923930664389496962098318435661622047526709175198249205220687015413180377649463942003634351379726607805975728844510900714310292241476145728705085785617579595499005658178357926025952424197221141689607824138112680957916687806753291431355044462455045814492882156739354456759741490759301664516915868333844319063455213516494122489874695688599143495544059786663846722457787592179729613596287832095531197544193795421408295317474197193910825937132619859510833526433943416432945452936164036355279092971085319264394359983998731049210971304202788283954171733067045458669270509441824142895461047302956155124468004524037417704256850234141330932886643495805859310337553506164327031455541489682774566040174627804849991156966991268217732813446396650925092586677297819927759473949582987442624445593984158366281855271674341569278821863515991825028212818666384605319661798050047896582365083914669856203276076859053688480182323580145020004056587712678523701804595136566270743324540123371551668074407694722909784489653239237217565358694704431948070133464690650943657526883146069553164459775999495182910725376727271728282567109561274258258185226573473165942539445952839620585123017992086718850332606389232380973411472406094631205327093009746730131734853883177369907259157268568175858096382728609847815627989012388948660564408594183841799768367964706466060847474469357743062297538692838948849554538935491228687877635593127173066766894258006278882028329296727452475826661576052985716488665522545310550099537093987063685334969905231446434025634335736681523248349720093561692223208651812458319088402848913919859009674561971986525929393261960197019769041624877352476174027983205769933503597982781583537063234104517123870101778775461062119195639287215059527837572627201472486467955148179888596955942415383087119619824055068336788522484443647917293349045729073483887715320589129741826353136872133259965166921426964070418811025142034845375639598369256959768467011307241304041119686085680086246903097232564951695283377002487848465633035506423850912225653442446317787732160795050475147419225364161858366803865343694503840211700062649975469711657379906961010967813888555703562772712670054992292473331248901402389674895243252541863754592243084460421466999803171566368411545222376904719366641469303229851353871905504546076179424617063313803973374635930859824736933657887856873847585884978562756412342523663358240678455028440599040496218397312764544017401300225275988609022486258433643167875135023349956551076536263379207305270090966271509767995068581860450190469813565302015224958227511836103818902292494123530784363002729476247945623334428637588578498140906848895725064247425180858334603154087610461830555807253157003679146633454052179564996963563366434219044172106719672893974586444904210330002120252077252342666152289660279298861342023833778676873505244980240552889111631648202677958798005220635512085494531493234625176937197515692030882169052022653883342915894380183925777787910389831887821873386552278750632385141126894513922952637030779379182750287453190067787733987367131245009111722772393757217472688198282995323058450658169372482403478550996121725843756365413970403951355883492686158634046359135613802190286936579973774216821558700739172865146531668749089658004487443637089863688253306302650191112320952023743829710770426750236039681479140012120513462165205745507875861933342274002086210341023112585828480335724198151611101129239682535694702454804837118378040424690174758922601744648898978125298295865211004704669224156547425491579851086958789212099724184952844058990452185507597359393004282079723757004955619482985291559784223855962630407788593760775450479401082463603718191131650178584991487129741897308016383053911140111170157222832097770684339408759816576506886958303886245112598443539679652512984474781669769270203666147323713946538443941583471042499345699487555974732718490577909516657373152964411087108520902199648564279853496354374912527553371768601458827030168587856092521119525705018083645732170617546101905010984343712975132763054987342850892033776197178678986309911049775963650682814858972007314807520891472488859132222203139585137543478574181136120435646925839088887899130704534246282156833545643962094291573769199337198595230545683357453867298836033233055881938282678995830609099411435294131517627546501954916012297306984544174941362232987439812656214714769719181490027558827038877126050293254479208158555729305507839599951459213474377941900158873838366297114363881897984749497494956771523663263863140599599974073123385887527923846394970545564296653918337599021262613837699174806244204182043662019639242487401496456925663503737395552951251172346349435284244219705224604133790689265300579645210905841770800671434235616599831346873572157258783140817921577461579345552709173163446595850935383169007919129875458432310134927228489341922476757992631698918623141968035102143066335870364586031570315320870168545966430723200342833371998796142215907802678629731687744770732354785307883460288151792839678298607329339930060716187868197725623861695984057489725505179638118993950347134943323245699107210309852341253418799948750085641824543710357659269318213256992176138930179531006818422785663809072089588366617669327549909929151997949423602859136261587450572296854906854505841335433675755378747313530321706847727831762820076307145922076234411722544951458013145355786494151110112990360452657173335207093130754613249837929212356097663152247142411059670805190673887054048886376054382432746810648463294810348146600719234780572090481196832634936415576308063171582225711109825855882121007871844662426738482074547450280183559113286022349503115344929106040569279746289922828696077021541571730013640643008162443727575287833264864010787652038040048677789973418486750719817795154561970944616465172696493078671299439681307584487465377694477142357878354692081550839097483885512965246610114273232958944433628725159724408977823094790004292183092753565462689884067521265452898072849105779804280047956497992894670904994934887332875884644469930689296414558735824701653061564007060342444414385117343676673189242106053278155323976203619170227825968877029041040580948684428450050928354042145584769640268765013274163357720467078416858824389147614892026822296477356054981222607022636521167987633201635358151679228237337987787203869418523773788688687785331151203652225710099755710273282024805089235496140054037970790668394153785136508105467789849105808429486075731054776396496208358888786426320569792996002067255434826849004637915391004050318798806965214200314734902382975165136607924894684157170669220768191374281269344832637990993914054430198190849346685577095035510136382221704930809666769233178028232983941189337740536323898578523776349841762228349077467287144637754499215908172260439523809690752726379787131278026818879416333688168321804533017935641243733626299637693238149116299181390915111280749131212507510718295082303525368045872264739450751917678567435816017493867362543566059490194822819048130903373382387546027226451214541365166639730233066989038387968095469835839472371505531795905167987083473085754692753439260998235678219753698856476535361592253573483684555700665448391497313449803948257697816629706750567227504353021223879744337061246440711475551461271086543495179406786017687273214243215861385192171135755736779368561008574770504439016525168445407855772529648257110112129601519018172083801639648901679419515385210881384485630103560203956898262947154377523529881840833121947388588133546890701849177994410093418771770630503239224268780182495226998572976354087406998826501821126911359540361502197860873005124437541287421246851019862177297163999694879457582068716238200232988662324203902127915169001084555616868375731373048316651117733055773073389466153344252100301773786132805631878525979743806955094414632517772616560267804338711496156954735533102033955314743999815292758436016763285027229590487425307480045595008572042362229447747144304193754021623032063521287376323186620084498179887078077244808723028752082545083587780882261656078243578019919593021673054075304873049507307188529938695476477032299756014538217711509547595650619038954728394307033773547445369958451288846068356278305115925652259364682352534392954761424655626566495706891553541997912744943721305004553851688605000091420097744444862172453272065433851648329069269666532371736309900388751553283492728933379083976516620512269901521901420552390638843245031296244850779278272513963925522116304862580395740824460174291090833123408844563059334114369188593977329491503930115016632793914083935851196877995082783903739627784338132975513611259425029894598441871667169584578984174676335994660681047711120157187703330411179405629983536208410481111159427287140826500293096361613320267911376299939301731403655193511575313043833102296399047780259557759265270963485994602850924480438880992612574586817395970141742524265955455709069155046958149745752125375958199961387099622039033760794102566618137608226703342510366543097778780874197479650132698903090695801535505742567802194101285191379527041202958227164778534002552134618063927214734231136984294883338560646140385057545363280987536423513312269286080177749535581231097517949328939509383424895124301909527496515521361030974284558474206668418057706255252090119977286466296364731869139422798679332934198009670324856010961770539093878842301446293557757209036414578201914731212252003821425846796821420102768427882864107461927826291022339161444675172237382268496908978957358165754714387618846500346239366682533489940099938308434588915593958217939669174907376625887213255103986114817759326533603209763458837442964907685404702571932921989136432814629511872854644984917287693155454508917874333511646136975363554775508944290804504275558587485468491823457785121442948349365366336107293346244609714293178733274449138969021019731424623683525859498642295843429860977436540965108276398760622974749868434836628227185606600596821532212176587851625852901870653715104801333756278019496370462439693255927175707779498748244815366173788777995339398220460078645746136596143533378938149368378453991156252188424325189859387529389382046362670073183221391710583705371480869529312541976637072538534428967126034351349221295878014994501741838452426604255334211095492350982624865819808288668767599803581763279684743883715003954809385681406242546793895148242493130856264431894737140454983836469053506551346911998797326265202439546227574196900735750295352899106284077910495466350187825878597984710246817268393040776060951022722151028098773680678509778642893011501973850750682835553458606958133675188700512516909152870929347503567556898216313203990407265272591977540126846010327047281816864738779565837001817754177068905474821999251528284643706934154162167861301202348394663982152747456441792825278288548280721609397722489751061879865302093334051923130348744521902469294598667708193610735063913823075042469475910291923476393467295156150864042224746322740571846394280015526524446356135330027202467844540784182611828303738258276405426616521803470012675804641845826238329335699115417346470046519094290433285408934207729140930231874980685963497889778992931049420202233793306607728459941267472741134003660426665964275442949237790572221638796646134347833252520377442822197681024232834874613787895821854668947927363880370584525431606889655224505904668731264954545454442587074376668947499089663391035322962344724928008927159312726546135734371514970111265783665683923355915832141828925020692112275882590832417206033951232379507562577843969637132737356449670369675162397518562600749461997607287536194384855988023416296300179184324065023401187233602998106215635993189548865133333322012255189153202685056739337130256319765543429560216284343264966694270050824635759583910015945895821894889111656945206876704488334202982006633473454747591619177857584411832435319261847554719734157757534425018358515071403367033724987339174412126166451764794562786099233488173578064478655926751455566471074448414740658220332900704333667268999357208720435224959873998881516170406625447289799402076896248548739163884974596084636050782898061457976288530568709475360851361315162112933965272370462455895933688439745261281327990667747181264768014798489060342554878594193378837080269559567986988928175330874524309251621071605974830810740375599936272474541040972870165081102994023823537121474323140724763537265787095372548216313784781487134648816781211189133524623939517589148654475750207369376599868258157531554778214536750178345206153948098137211244213749771308938012150913404441392344293764677993135507250681750501782148757754794394464983623284595534338212949491815731863473014528167969839039924996250026160103799303336089470899620517466231802893381368371095169224418218956363641017415948882595390110232924960076697666923640565816432923814907212537150346080662395165076686046608092368883568707887893349493365259782010499816134156310274901299634169708949902593319792261595899645741576281410047099296540977338773883210657772710402001797352354735525920947170065059056318549910007010355567433274199702519961290831535841763561968751128860536600437897482755540843936142615347326022900917736726900470907560276432604262314591462668156025738679884559041939494553524196077902832440170277034499529635037411148814286351468764814998070595251492670139010749077466570914562120580644826660030952660910349534957140642057678706536769132180703195479378800624395473853269236650251145952952405545158423974919760564156123850666981824830235791131728378964715341810024023970443357741852151866268124666226251892164821031762840224052650029274909445327726274516498749397483607165523885558851625102759957144083796076406813450373102633672098033315745516859531487622605698279625996774364351111545127046010792908974940701819698783115122862582584924008978275578003900024395592832715010504250690023905658845719844761361419466831199579301357258638875745170939488595637942864092147622389372642885762373442976321726611506255907541607316334528791658786384849396960412756536578147143716729823926547009111980650642923220920619300535156788490240576164352742889593872221058937656407925243086845415504235137959785589218036319249947047234491519200442651460202353837562759026967701955606169172814915992270728784476251082320747600480146785639008899806955728534669094307087233302147518147341660309341640067705893438154950337857727123271238796563862048008711660959179526918210176200660582534663014353467607663222777390854005682092110777029959770371408499744237651217566292341298754127522987721480714266661892595145367003356871453117860518971962891308653126258329738079963886230009273865807761055040307720023889528844584123137602318887928709730286506028577313795154555594738194693894335541386688821808708080757821224962403218051853857702440569995172512197279657869841486826504458515046804470290017750159778129602062477771150395408702094055747911592162588779943215646523071158516224160266936908917455339151193654816276225276134655675072070735011875467237918166390965890676143895360773558933965610087297673890836900221925163609284746094730501028937283840525372443565849030100374698491572724052510307127747531484418274158632583979264219399415129224959743254016761783642238548726151975736433336517365709978533071795154389846539270135957901605933106427462947055992897068457839713412878215550447218671045557815119997110542250071781195643361103362647349354804043590140034358672824562981930758595621422741043408057082640975451090794238829840832647740741452669780992028672214181974691254550533823809617052878406481232576099911824065304233506058865023823076410326859673963267160832155286486782939344617059151151515249902674288630993349580242273821833769094333907763907754471760380310035361773501808025141128462521136479172835513364532339297987159918209629199702330865490947180859425119570966292056720678727890591293812520680525726156134608648099825966442071575155236779443356372533940546256191263996419724699838297486645783287438522253140689942446160637453932743663907927587216961710037749182060939186547968597214096177494952418498461269410557728370476851419990870888120976705013256230020649727116888798419024606290405472260958032824707842245661958879683801238867699403343311676571066948722139666004439307376745934440361043558268975388722320394725330867354082371016329421168973341690320772863570303825845262795041819334289193406082746235981489073358186000508325632563296430022344838624455718573684207631142907776115099201261760837358776972805608913472065589799353751262768399600980814054819943491988024133933991871044431398053682405282055502932943478552656557893186955338773074842597337628150788926481489521864605554369375496881311979458657665121565992751312223947986869030402521422328590631553098111476865921679385562434859360328178166656922761928169036368124204533999452496587602670122899318617296541572917837010735644656461345763399092286900289828255438970825268986617310626814317741566862954771207656733377558038324813156174790375110975576542309255685228414940902748505740540446748219987176926608704687223173103220349321766338012052526665680444388009916436559600907214355920563592129563088398621453951772307306122898905728125200038866653321111707925280483285846852637098320116385170453426259928084023914564802798460186556297015479149384675306239963248036105444785137064463952931864748312432440897217641381137646589013058776385961886176366036184921561404427939034689484788437327197272153282089331694447806165603918148108150650400403581645963442785881817218765998591860157139767750515886768386098725699419990473966712909100516182567970746450172605389812869933768487768505567352897140452573011008135916042378382025732847583358749120462055160530115100733874324426276869015591338880805679851380542632132432325938124451027649656327680324926871629302038806345352255622118997967397976123551167222263142831198251077879349911322400780833792943481760379500040578447105149976873284636868206451443861665225116736347373761976202771926202591025207601405385668360032443967964847531431001536611782843539544105985313286512796201049162805677458930601507808818534056655603389596676306376717678073167716034411996979621896160309679725036264015540951569287853777886725165361550946414685883433152958619940251989433130992338879677442973872805515064071936344956846055631288214776292174099272343584607305719228179460657602444583890751242173949639541050637946994860943838479099319671979963634233684598680527773183283560560044484295309796520223316923398522003504962243114134412624922744193016492150031770354042227371377861164570643284601130522666364098527970110519362749173962173368357876542433588295905348413148366538083639570497883705121876536414266814688042850990189848322183401270501440566634321028582440373253414693277088197079406102698072700886788712227242969511000915721949101892440122372767077286203197374634662149784792834749245224159221119854333711086159013840047794969068926224553347660830379113172059990654796436195455402147889765495073634229181718786703547485064798103902855064643814368723652508041890589672581457090084761794137222412127491685287444031170647992812419529728670585355933098721680591265750285623412950819981079529919289155359473246946116047260600835852784121094899493599290968182031028073507450799900975133290085799894356019302612220075774369874766162953997856371568620556399946614728865973798192763213661315804363371265018966615735642569208662768351390042870480399324984376141655848610272440948228249935418640714619077116790715720264742763769384259812859102955989829139066147234523507697683839583571220270004153830314092786506201784519623504846278156346629036630060615182266822856070027532534868776562119676805865385237181078170567423263098514158922971945024955702922587479336781699751236992988076817991681824247060799750978968012068873826023326757572735324984258453510283517701389949465608368614486319489484138958504875694929679618670326687919790659455947153212463746737555636814333983629331596931008016636080638050297829768372024946996828176317853400343711759800532960923909414187539073502835101520808440734254036582103563711695512289397435406147478932896798060622931387176532908006588551156228294343103295150844154468096370640144687503799742287225619870807041942396246376845859627320586379404134589906608251855448922944112415067418553188932534254762544140271183044560035894974918467213943546657833024628133719443368720926567244288559947932438108249669625128294298569654411072702052553162483565315595815554700668551655266612587113344000721234109850707725243119162687218643187195761848552430535234480786859641958836621327924646323164514275175880742397710756025387320730041281452426926041643048054767220832635793992069958198217945956379134154751192865916070098225669197817665878880634601507691786132849150643487991550105003502979764750913128829784411036686116905791186072034781783120381798033127645708077501440099632026491086433777476901869473991056659363919709646191163362396057112668280386310793812896704987969158647263349932574224273794906997979257287836208534208256505945715903180892848748939122949540472796214730255414577558920764940121451934553287839316609657202273760423323122464984851651943472722076787086044289608135066629206536618300048287641878648933357562042465178231223697825455046560292769039208494216322670949365793416702155415495225303039421443474529624857746673571213785470436290159179036931072412853103015956563217846521505808706594291728777928286906929414602075682674827369068942630868972137870412399933621495798272032284215148737712685537532262693576158797548895005310447805851824234033918223892522232720454909426624842977547757293882066650662865209441604210422383616290565641142964838149697973351846412293758932075318267001432586821104035575061967668426586737586320495450255928816710778860233355743652853370124733261577967260584642945970618099651380854717871867761889376547443396494474329447876281069162623513326166404122468347119669201466535120494596084283721676853465906989584091276899520910907877304826493771339860634586166662822771012707190065019237732512720724216199064101201933620091973405124333899030065273123397874244099865836170411222933140438018782498335257994308466794415432987384976817114739740399110553032906735326314692237878303268053213753497738757233949338786463984937413335489197285330199722988249060331102925954593197774072611943198045113224041171531257533890186358816270738360239424716826446731143430910899833629083495859058084533816615943689946327772848935121752157630415337183341181654549478583053831428208392360920379030607143556058299964990130266049304808815027988528908665847496355819927768202894652872995427348998353638544260662790600877931965248506402613954661695408935974151865845676287737542837927155650296153878147771454042058772237043629360945833097618784617568191997532010472354208339530367429943777875031784274208781371328013270833493467296096063299159870621942872155906202087054944325020194263332309256061622632116636495568550948049423798803491250618260124104470309776311707185916408010839176673582059254196853418626135434212404152332814306564208698060509187774109287375761457635640663438509073750880488551231018578943044483332783910468838529175129749867734990932498603510771514444329344346190637431503330686995442209036712607949892957263642301789645874050949959261005569446711830026207940044984468245915162526539860106562497494046124181641739850162724814175925791004105951966096391746108393371949834540010045696974948885704427983003708489161413922963686224738411208903719995867866618055352604500039865665612520581490857690962924136597443951588398813918570513069797466896712622949837211903875770154617665764955251621257850789125599945997981474585715238146447228086073855533350045435227855465239285364175987771510289331840633760627567145610291103161794911643533895742941288752128451500793428120686497783039373967947197266732494402383420671071798205854313905962347042563539231234607984769368740801816460170828052806467964950592807862497854249815435671767951609919427328719263102081684114991740445587261197195015761495446898532449296007759398440157298418188605379169128082136647124046141284145626569690615554529190891248603972648835867005888403398157419633339485422088449028069362742693576221253939763131989789286650904274740404923168323235657063617652851558273654059718892341369185382999481304619292797277114471068581557124815279822407648057768990519494174431671741887952266155100823773304500693597053176683224901042230330085069863216425118229011705965729335255296204859208355387821466246369873810401344988379793198215295285174362287812722773731992471220011176401803724912872747144314831604498788200689132543392026358901929249823071716838721690308745917974879762932834541528081122411243057403203290151405289701977396016872830660087101656490179617218430315228738109733016122488994364378250035668210332389554013487675696890766548559787465453376115509072558380955961215716219274822286262614570878101223233064521056094646010536266044804184559613169018674163166255559524578988226402273869353494259232248251497725958285770038259773855954327855237098983223352239715632313134670408336630939029603139195926779643872497217059990513907328621445043760493218365740778511389959643186567123876995894623776399282273604806751121535372137622683259820450983558053809695904026464806030360689047766426136978308567542608634486760591797567234903802013506917620453515816911116030571462160586305121620418081751010884646185410668087369165261001918260127909705372381839022224254900622189760954940870696478671887697207374263250892968624349491730710019238703724145741911295806878141401125432627986278841305232002596050297179019856808232359832884986783761520334311264234308726950020545526955197938538904973742420705907126561951804421771723734800598199095862716589008023116110926030987446500538250747056674123662497538508222610965224183742319546034427210305442397962738685672731770834861172125201618059044294598990228323104389916422202825209156852298300600933029688461324621993471805209981366970839297827197283891678271685102600536609088555678223674332792207056251352628096651145527322863021510624702187160587537689295668555466819788071816388577505066810471487445909183027022072058933863656769386491311444428607775080434491880240989976631104664020155615217957320718947252719456797007666084804583726019715137450396634247113103865584961573024597542149473925465901348099001101566601325402728274527191348710384471153427102412929953115065251489995960348514791231032322384617711822447246033893455103650009311178936498704515255261090909275085688692653253100965177205237190924609175253975674309680416415587652568606359217314225565149040947392612557703872527362353324650715854026708682963249754263830126070997338233346085937211278134577661527681806252479685956034531442712644198075991828249858074198346136390059050388105011405595365830254116626579488536523247579202263225855479738586349215961509235632782821712167243190917455728714436912699200071051342349798100306414705734394954308331036539259559092254274416161000367190819065196025067042087165540541496278060019814287014957020232803073963447351817666537708466470402232810605702409374411962432504675724487130383102477116818224948365900884269776644880423479700818381141484627848298515930809264867128762409388810950490409429508681365651591801552498190148717447677090576884629042873841824554589287085041589191336635964944218362552675438262029332419560037381308239554204143589722011521712629412520653593245553676396084421368620067404859111335772513782468414197244284611804102426049835032834689402620151177185766786557203064216411848981178267484493454970647382159252655119645021494886254384149789139907202351598775365122333921767318687659841509434203027638193181940391240568332017464642613277021740350732922930233961987516453716201213914684236252632896536198692150747381033303549182736330869340696575618996543811860289576008404443643137943094962563294048304939946766956282602855175542798012935904451398337967080992878522906427845862001881628062223244518124661192509626072114232985474425522271669239756176400693568245416455081570580409887739452413744336891585062127591508304638536601303552899798767905590442361102325332089823604529762072814476078789957702214517441316899557194363583028383141510920283360777358022380758187403650749334159582197732318339134728400745796707922134747321670118503231419181540541803072570276310989677423630132380421767878765624027223281130777816203676249579041167698713899646654488068858001485343252590423481247640682094400737872751458481508006067644475795059705104139810835494203930191774388605632596684126642588019709838088955503428714523760263205637954432402628583799766612960349515704947069398204433448658432440043874972164883965647625953662748255444548447108300414430041597836537846280361319925139607545243617068649757657577958049364198729866321222384308590300164363521712335715617567199943426292205490506255136085397528949357054955864426543601433767322834778383675089497859815147515302545569989231494277793633440205272930103084250595686793187427262191181978916694565637205577713558723884474491783494982441599359981761823972119836255237310512746703016156537985097937138033813789973544392095040356601359291619270724753662499480522115407390751714772812706876370528364557231950710454584769957368374045969542382812861467284944014328726078790730022342822166778711104490225727248505889562068782728188456695434417498481810545843795128737793373696282775662495427095787409116773971494819632574712913478376322893807558668652271270590343039146381547872919510409840019182832261419564673966638781776592138220745856837002569825527708057815654995091926954296343417036124349129760497882105343718209158208637050861224854169824218879995253721992419577478477379224016293714250357324546341851945463198875859513097996627435811901435994946202551076715282190585927738009928933784836765356147877727700234390702697613649065706541561435637806324641124637530512449140764407836565415133123605038712578363148700955919814452648661246662734446958288526570308880167159449835630093393354669209403247663026773674537705208191781497366293403439611852381518106006581955537197755854627050974110792759648704473116615137884781758415365238887371576985246599602036767264097955897424531695875187573996615846166128733543761132922007753777966665452686894842478468684416424943090457845480398689288380269382209364124125390559448972311058995316641696652469836293494798953472050264626328814066530336461231286541229277745885423030842500747639297775844037647338173025306647423011087299680378690164233281048119154992303820966080360957189618805460106956176397979563863080527722512371703921771151949263563536397823998322245060780486571533969828456395431653331754559815559654527419613623694137552107945014440567246046157877478734444379677351096212015828907905561749144375803874601349059463908267964618059367015329507291444939526957607165219943593601154228676870200088094292520318112287637147378814755985520776808338020848981340821517319423125450732766231329697815953023470784340285463665561125446826618744809651765079000849392718841483357925038028906879966780026606740163625255545752671653797885494457490498172756405604623975418446991359787667860135194447465123182887787155864865126816970982058455546866003403934762103361402334171291078959543413925665774200927845955139619323944784884614200208136684565867258420876492735287603683669021267429039153723196660936707601401723410493633417918227017707265524367195838175525583391675640504941145966977103508329680261931481965882105164021395052715463496503987394329191173673803963024989812479251994819479772881557906092269147698096059952968630196612766162837962781531998832065540947584302339178291320938381249482168235931784905648333573411380152864922099612598529433238345484073076492807556648302070853371711499591886760883873193104008601470909651020686597169190327590797016101114859541974586008797927913389754803541520030630048884382122239316095460031492330030823153327072447773994724296830202203636869766645330961860438488402588517948296013981253125155178739054014785583178016579460423365150584060917005585540673315969668924288305628995244083887602326546256299737707856443672801039971957404253029313842209076579770965320538881793943700821915521747013270226604708796536884950075484060029620893894851853349002616444870233161819142064092272724816280130188325762874214023231011291063650535798071925644806273371111394323020176246298847872694003070728427900516151408775942426465128993472887029560470810191191528716403577229019118613796768628134455432220856537488637685816522513940495307356379797456077304152635686404907945606772770299783630739930708063861936683490031766791000739889124122600865793231063063366947585248865181031738638456598162416194455368845970655816117841720845278375635065980161236467346827159598501451608733853889987698761050452867988762648150274680356145563439405231545102864674498007289476646255843207786578487827353576336634896776486555313641280068532588406693517967218467367673795616303498940250180838669913122773406853807220382411519995395946387674944692316008622060206802643979372618209801458575206077624977487234284769789007014932697661556562674719758724332412628272618287300498748561968627009438390445256981813573679239751377024029017505407495825389410647349805130261089994283062956445293836847091823742999257184434704042487183853245572424788850854795272268140484048242875516544091135322655119752521519307380803460718748216656888749870819449533669875648635917683287395499646289550431591492902261703187978039702645694680557151855038774950297794869500154974726914781739506659257560646682078341620358888392789434451554903669763191217527052838651127653090821862456163383580641374146300722496497869910229621988984602366598445076344990610867765519822961945059981046765085670971952465903586385274844255236305590016186851621921179999565522252204664176793467258306550238443530866108599132561621611221748424107736510423099398298159095102763343142687625935658831415692766920978759942841110932757057163838307690392433535330476805934737829627293712437071641606826241074317910906998939784962126332685376428190688550120925802591644758763589791383137345085319069546251986457759496253631692169969633869545387493675893849893335081954959375203952720310454719129469097040877206256861665241867285918347229410795950812016476868292880276111883382001850120075534090561374205652262050613320619557792733316562171014079448675996945270163693244243206882272252523441789557517091312750172123109057931754050075073797705346961919694754262896007858957644611425839857204918794899546820423306550384537047621058267160904317563886202523050183877904388192448579814184109651376953455093173931891373358753847146540656219006550366604805294263665296523831238223183379823489482326900453063355795121038772043826918564980919129488204216239224509804275779350181353848427643421610990894701095402875284013372926524301866253238978350331285416636312791252646842352096077281907224655216292503372321140918315834862986589822464200753865449308116798296766421036595370501491048606420832121325329423864631041307836071822237899386777605988733923365967066127663527239922081818611835759373935355512969576415270838497529340150801154317145665555696517570436170302937532043002414404900373180712609155363067423614686810489440770296100878842691264175112572564167648837208446591471174884693027857560119621621463343877061504415834759264681459681174646544053712022950832176640684794740613846808024667650598682450620878350129453600057611728735774890969070221571706036014003436142579007404304430386964907826310762712309142204330775846247484143797790447881603961323435522335540792702518513369091415736600655355961399141102931716210332451165685374480094395148254699599301920195684120343715782347288505720647862683890321367333931543814587225574486863532573872501625618470137581669150461910985087115609591127650458332188796417269455558532336133129518138277660728360640753661106834605815109540041549173980392827120476256974028571931556726498923398616580613726931051459973647637500571144536633636546518278650002885187089977711835703518667406646557416936315880781771760612009020890936934611481758201869617741393663133853385321711689229675965548620425591456792104046258346758740462512048560217172422997139348558032844388264983322363630182402099301503131184119295676296524056218632291694097462463553979910133759830870422264781651243357354836044381957017255361639928062683307778768548804207391212544644801616816511198944488200744520836983327962723898958237248965716530342029224641734073969617476440665972687574164128906431837890201423560029127101521363902717255471760560755188106490282720158650789865855244560643849383593753894504791901505655093611146833988364231948072354862276980767264142660295933792276206607380230727425677911032202707948871232884121508773290430294852757109907763742746396144637613643777160262173047832984937675707680910269979265729614934623329350986047085183130056253124725191194521454989301414219009844453038329290463848708001586228635192278536191231705734063379297218557619220318037875593920078651750489357825078035846975004869196401221714213774547332951535814050592663444237502327027695479381447984943005890683145510630253219196291959275703874097694981898143520605734465777275665164659819210528472729075232755880209084682551487313934377348683247025801789703851699453539340322678125111041993637821519138599633589889782758777224279871885195414039905003459760411004723055976966887549926577954585094682563980070490113371551705676501791743296245324852687758401015195900241293740446015487558195099951707680245491930196591431176747251066828720755512911149902117165628905146829366695433324660978314647490482829732320634450912284893866364580101785564849081714226859107768753664819000794172601960468128438008774113157093416480925259635914742887552573264315370187033156834352846088323633038869549608616733851865397567761009470794659854615069930990892860116288322845963724523940340077203289671765151946071137104021937839993908375431693789338043793675917044015044205703986470109813820999422737657806341410548474631378505306423707419702612199768431178479807042295798259952517698787565149483615310837594356707352764002255011504845803230359052112196322387343466974910648685220073169745068707327104000834040664039504212728475971141005469974141651364013291964303888363815208270496090971473085526375354220924778943224441981585488040295944143839700909372078917806617328641914775279772624512242669359660510853228585643420907571292651321167779068647604931981310552524760321796433498044569555795076278777620835129908074885954882028423477486280753378476290542303194046128569855591402154635316930884706678894050075154309063852249310440671301095204206596963829941785206461642582963001327200037665884725889568506212364323059204233499891985062966557721875889661622728680024496004079708545077900883741230428219967979213291112721173811852469428173388999861162547904515580797806655720352668985721505444880229746366352195688791628967912483191879967247670218751475503746605854563086320918069534804565151026740120441511448282402429296441733915784207400402341027510879127546000984172598470685787308080533741573271561279759043377245905791856561337895640207237350514695321120852303064421615587429037645050451427764737650075650704633749228528946501504187637015686013523064971016085082379506674591126710780106393684974960488850645405981313230311813040682248909921940764722953550688805809749879151120229988349873398057206874874093204323165507378736818205332383993856521221555504494079863986594425680146340557434571237443753773700898028749555536049288571309412080499569095615766168991227924474133626076491622348833934558523178412195297366044280791183030975267807678767612245582789878799630474479543601250468407162190353406788646622799217438509319674789156160109125621517341514648977216336351456332944319283255025675096178274509599303120358462131529425759639100195166925672877070023766788560748416458479999824141289996803861977103396217645953174673983517894505488288751667749986784499286064587173863927642193924194038202087450162719697430600840795063671521886765582670801295710659187148208550242088061061235957780981511775180198252008917258800960118952001289807851663200796781622292642851406648344930282102460602433255265614980274039840523586404673240827484467059749845443582241370063830401136117370849744072197511626145086532527127818714137227170063519089056235181821065203481761398885480630276932091733123831618535355071246491918666722693580788476607105100732732097196180043394927549897592644647993211304036478578772300370590215741424816751448057941607070981529922409009405859574866524170884384913512457613113469556827890689413567716001962948977097990665119723254580422454617319664150199791652805288293744711536466827244169051181401329012332683460614307669535114988785426736834632427747686926830692648342183288941926585020159824696537256225389309128100644337904889914861457636380700119558827832156555416869961072003344208592805521698858356615042205280255389042346361724887174563257440174661694201999942725103343706239852677244886586353777628589765650582135319801863835067004734406076088437381697344936105243947508207610901130426295029712313553646117277353714800826556693127917121797232769131154420486452112910736377672301445586787476060616768026613038395903141562580718596329783769263012947249781256694673907104311362140508343194654038005630880493704660901789390716984755580588396932938177383171182699266830456700333166658866938684501458517097825122289254488115381736690025220340734374372544597647317764028245412327667431994684574029829639387634756412079244752073078722585208840323766143789329818588193193590103419748157771901989648462539577934650206867849223881615272377671161719606380115009233061979940849753864442311681010952760048438184466616517846004923051240935325042193266725477756241498198229509361827979339966795737874203863167471400403353457181340304698840890947722960552883141616821514886688627397821351373985084731799514538492061734341794506157247525266187342245268142014193853857505668981581218698455538837447846957483599033076241977971100246141281827533287708007842191251204432431154265964066230153576495195774411224175760999510390431416166543692055914884044967449893455784407895701341906946558423510568180301810977156078083450917833663034461616239028757014844195468725935142557605768894228419121287590557154581688919088037346150063239497681226892021042686527025247299263389567434274753141434700938620629138443679460223230585936040542364711880906129720647743637285611078494243030322373008624360998617649266728922693705864854908012126763491640248244110373912265039127121861562985774107423183079032776330960814684770735130123381728546572645576503177929676241285213910312604867106363345604526980768070201219073557320184714543453459064789740264630531059972236500934062944190049985310761273144413337704923510192885530752998175479484206475416304344922182877660021790435424169369650210275472349063169068261001477362103860398848511994373920774498627949667067638488247976853492073547289647872647522210715144336942772192685084990606660994396027427522190805638334965566951175091199856666238865035739310320649456632866933005715059179555576456980278803155448392717068467858232010417283586946769322897716478910337248911493761258624100085076054678338621434782172914440110524244317547147156647162416842805826483014463190444675721795039936985074540222417856417193876261433901193490454300942248866117529036776654831449563174389237437541855089950208839945230242956650557750545556725833084675522485717535115563537388019975964254245812001965002056186163399765552152392373160515853835687796650816316992259761168977764947454045416100082802830527766145878949616475409240192221862410626317663730940239992992080419507710900454852913301603970932462368689584055169525920712995252356333399011236857412140872920393534751793020321332000931547172166488480475583367427932524512628360188149002687976203629237503258287981339762686337537584059823094663524963408819551940101353246253428137381325783151979810308769198444847483111114769389889829066369868177853480053606740873064129551339481345771266924784164365087433709281256030953162591089234866200158839250076990160646410070715510633640624661093751683537919426576373553498116636791937804359585387155915837723510431265789401143491698898151379753331223166828472572816239376352535618669671654322730663709891491618138143640607725352723837312513685810422739074688215991758162143588049646049110866574763054578033497797716995044470183344883189446180831456357109327709149578410458243550933177411480024416476047745110754510989059537712131291039834177675644471007172148112500018464080998917503271474434657020657369541514785302966664132992832177765335703033321529933388397142298032915523907187809072330482730533641731291592123120597715303651282905667026875830262451513380002125796237131419807505772406350298113228242625853830165536421022221470975770399504523011373475848244753473653854622181062065245563531201667712594209972458265765476375673722770361976866641991941326248905477106000049627008793302328680305001059557741097306833566262594653504110238869448387292076594467190558740149268314657902245748973687401074698765696645147304489086755071122740707854584143398753089573731147484389760275645913199159311306074377113259199482269500351399222380305707475784444200070771786300116173647575660078658183472011144657162430078763159258224047004830988755464360900977664984767639426851614050309222357783655265170641590850936431082064373858788598056074080172664030980885816637989367994061229366022498561927363856880892646190040771349167637240119195209113996613990015127316394256086687480504639983549115281845555437518539653746651450739554149879912090529908880023626319932360384177562301252848547773578139721661616455241209712937883365938701797363036983630309590137780817433895604860733703869295596790135233570837993376838850612631405493552583477143298271976267087249417194781571378422157841473442126701206272503181588710110679146429110048747812223838056955440816593383195528551571015450455178117538816140554553129565858817387498782587164200721268842935567332828791874188159333037310634483949595284915902568371958896539495810328763378804899409405119156687263836152243866468938967983381255547531095638928940261634290490122740535610540726650982554456321957412529301658521566176947949859280960844273138748913088845115918324905142323497013954824444243915621839479774618763309843124116072260863751133052623719253269251094889983570742407370385079297500637494781739767525813005201497494521905388427811262160508228135555541425599405593800645331673304263029415093394860041835958845802108576771342457660968217466557738797699806719621528331291198053140051452262184512155617824123201875324293519004516661446817588481854600005149847119494450484306515006306456313890180539121227040544322880586339464484298322124925248338205375181140005394256986415790181217818306142748758686942426686356018022022276956885563270237269307459072146724685368714210982696211385501651032508899250141848743211228392714839235822548818121605272256237791661638345825425993328087810869159738735531120859966801610296079752167885122860044507723408431843197518683692035129088676675013428394719060309168774471330833810346073988129846950696662406258751330288786239324458958274349283614183321122883055587307850259685432536682153449955844667260336157301275073913547889554637469293674357634103878038657606005140961685255624995759627117153475845433896658596734785281434702726674987549146856134601471262763871274557266103649797364697652958186551000307329803410871566191630297241935488901892242524246760171889327691017337792373920003691379255830001168106999356008617168769671936511711617414074937032824669804970870972995518095391137138207749302031114645009760083854313113389310477664703643837684736447906984663565691397148509668260100000674145491765569946982397092172024766006234451527632641649591118792832729749831200890402654407279309083108285135223278179510962664698223511950920033294302380197535996459095584854357673170291742295372062055467571034743579867119076457083520446985059466607736423121424486833889876473075633143246798942775160122836109953186704584978336987034714391722334865349011960203308382831140381084224199731834097043031912707989908162082604427103456954330550139584092374164209343315108490433504341577449823265601729086047519829233354629677232896124199316222915904801116106886277151773879594237823654087487077628753529105869230018894619387259762931598317642694683095749323343302421961034479633290951889286609250991910642304536172367449011727203659226595923154920578293776537344744803369076295641770741927839077122440475740084154591819419629060911974969020531188607319107983077265099102364595532191055636418101002600118402412848632599407958155670533175087064463700958870869027370808131663719406664811520145182674090934047624987115961133636418816670835334383043846190054187003481288364968768296436507498688499278894607978308724080073666857034168342519198439891148866723069262473524172799734004308527094585014380719103361723784873893019600915232894290077961458184226427267875187354844538204376882432633822998588819393017533390691756570463629626591966780651717047905740691675483857126599099682590230360384115087519349608623342299787733913310206866650657997677056173771170475575558334676051026487786225958750123693826352602896457817659668060065432000762186150836573584645135046387711840074028691069339964892482614464777563635938114075646537631125480980470634581947507804724778438058119935733669981238868666839145410839253290328659613643049016654832087228861126609298952028777786828291095763859037875404469506331506401712816737522892032266047473907382015487159723332877334889350509880013824086363360475914202096903640150556855298999500837041202573166728608929390375683411132992649240622309783532331934983440584430552851812265801709467432378801484538267538973002900992577538586785031102793817588344634494509267987241634795667733526917792407156369091407868909435442741485699511809651975570063931181436629160250311070911331509885462216170493845858551518176341605835362125114088296046544076812095752235656712145477948597136642332921329452566216827559904373095424101050206586658338292148194655964799848814595345098317362823477320469674817425407356556428054526696587781506877783994929654950726499662058383777630214700765817862943551137025051825351047886548765339228227496391125111109259986160222501199327508446629222949580022637050969577918951183044739377354857344138439664750744400077526871844604202983986918430742288429652749374053283795920984241414970383888435837004542687998782841035074392302443442036501644481686756807985507704772366804821563145312491321195435262731282422784928715785769879614542473537711196069380581197051399063993390380143890174293813730569712245224591898083203534979788501088052962525381027077107181532811773022271024105136915800599037815428822965673759621152717841118609513274671840412704907701797607770735338714991379727925111018337346540511871910142447250778427387249294227797561573942421631787307139956296817335241399674677140450783084817569822443140144935796248639277290519567703232574506682843702595917215090098180144927443862660880280445477705869035322556308623114461432944117467656230057183303969527280574833516795361771197146178711666827569280320518579141851492984172765876917902170592157171746966923303760314006446949474966373573934117866474038830220007462003915682559265248645030027016562232565946352144956632817892738082655461972835778445640818136650468383735471820465487685143948429833758724666758577879156498063817723220341870751426249816566443535143041546980910733953525793355280586028229305374136772886161866807835863007255001020462534062165950702837670593348157131940916440623913752148325765201539134672004918715628321825569963762719641016675028694024154621459124811842799571390514464967147934587532111457225147163992102817314731935393517204689674925410419739935225877644715142072487700895892649119618208700425201951076554604218964555307223255765895682764259610962561621709215097360515225682622772668304371198011797589933661183368533033768702353608020634297866877991955859105381284409376630621502721056046241854695610300983003154485068583496596823583941515368958602053915477726378268259349360031001445275312865599741505209200061781400915848369889618745102584425579846678287808649345130066886800261000664791188186879663818653554426925349494743284013746649124373586504712107814378114373429074328787866933350703416222657636147313853845771252976507269089631824260611666972962104092727747950143338645931436019580559823806926135321738801616150325378006659776503564623298236834962235503783700315420339741258440051687333530706864234886159165462586033376075806218185588378634542341973272268104729133534843315323774052126639411042011770058340249297390455010664454832773630309882742046814532646565771606349699255531722810851004693082139481379276679798693787740437631793420774986957434229806624570450799018553745068379686124439006395189648051519429767263896615189639230789639493787540585147546847085531826655688274147969086200314294233890918838100666596598289156966635130376205172682736329147441388988855760699700641775210257164392217003636559947089996263297362517096043311389256456353393330524156391310414102829059083949358392714975504209643634468309256360575093882890684805895269190424942493667614522793905684596945880201750433233291657481093003009342237997473036449448496035471895884534165327865976350461773804763768979946763412086756203851260534244366488261811171464074707265603784563350127932876352076387251681132110446365513112726383531731315257516475140572595981746328455523352750805110978306291356403621169244558127350233037307353541716743103376604321038658948732261971958066417768600513093560887321876372744997449486770783021167175583467901011225882257610688095971312031701715402993405535652796627190221339203249173323140149496259163824813084457463957335849075677296305712279546772731653335086302270468922057778105251711323386686638378545879094109141396459312390649852550777858031657345287646975139371345044818053431216880404587254545728819941108495102435377338027170879722798325293982407617112118398831071723439964466170330713392273300133973994687227422747864752008707073714446709362993607928827034051187957114978358200286250159543534302342689482518077012974013071254522260410793536795316989154120804798978463249931931213373555845615928791481639316502708812042090641676807531515172161540116112119084847593465890277855678387877243212863039221293126837838045687907155528784933957345455656414114966658666672654361284080047008825667304618363357994536782122605583886386855186184055574486621657269556958081763057547497242088608260570767976394557579060513399310903031728426769036414122560479485755890698635203226412649626797769291589977566070893884773122850593721946441320730919405568171333859872947678027890453807939820383261609745110077484430984260440334862456464031977282755706014902083385265541901908441369727100317148414755603814769060836966854718522506294794076617028598281851013407494537797356842947333170511685900774803440372489244563650212948290261739518263743105219586917122248531245202388367041586236151056455614277081142531458544531534569930788550475102231515809036758330232736178948500303610241581395479392234208092318100782818828630561285051645629192228709369336840445845532093200256491647249600425128491767893862678212771534992232918429353639575654919400781013178175569090673285931492469362843411169255068989521078360928485526660919470182873368459323307108625710670293247506623969814602336461945408387562608816839048262500556099895993252039046639436592995992428532705888551660767400728950371328278243916683172053255372229015314397851534624456951318034726709798402118114879843957958787340998542505272342437258983057117642947694797813841121326892112856303803883548637834435927379952783232323812858213171822269817952338615245776130069227529112455639697272664001258373321033062488976533421324264009399285228707291321613492116578232137071784340517695835170938413229211639412152464773363842314661499724707803611572976686663712834491651249917209917774570111779291097359327621526784045924460234613452059514230600806474935189591477079021843359170920903819138141630196293423852337986754445629808581551499133677533422480088349851875125155818760791201849313968950044195306999771169203606805433385749258271874668705952257343753751762775065249768216011005771552095989966841425570983579520838143383015563049086764643639048102849090077821697944814317231198017966024668772180434234586287614609521507930611885585216042205950052332983714938829481668331920962242315600516078875176695925914074422984615186456532624807939627460521071349244309957224881661557672321049923918424564869207700373763569168116498351568987132452634241405241599692477644031131002315166271253757556038321968730491890151318892515158627903896422973508017043531115569206452648714457492980645599201805453008679489255603025920997049108855161140319937428122635971264443933402695104095560850690958630030145365386095904564924272907029074058649073688755336753722005669218506511495835436959564637476364965407336280005291691847004537407334733415327010555400374099812198707226911069932656876273786661841424322172900955706699796612106927300555023746206157844673786582720254047210880629229001066995465267806568160453026548945127206449861541192675804302189079656638629724432584678832201243449522064524155229897670876322585398959904769845152778250093568837181323245017792384309655576299790711497321168891068091969879967764700308535673482699931625409143532657975933972613188952593286869740145898388356077217832042354175182850358113444995311984142693062173447537576958092114442629841165861578176863144157422077897038716816925311784315034792708822432126008000353055053409373329908342334165372511056945657537585589538107896688063685017645786035824483645111356849967657060320958715727418878839455059952670053954209863787616578065005094179097456257591654773375753004076778899159198625546181976959954312417019376167301792847543857093778970446397295333126930805798290091221495509146150316068208100759618800751202027965833219570502385722685547919522888246049882889622641909825105013990877750129126778463708915341750797828529065003951572388562303586346243693507060857232728022416986116001413199068628644700039048826688061613794963475983717223274751410889843901500116009241953772161027018749483430285391902702009798210864944817506748434614688706064938214901716530791617635086702009783414982808013640047293143370567675852673479281052576039007301244120520245815600916434417032703842885200494224272768833736268020425985092014981904683053972307639447661023159197240811731988351663479180782612913324018013199323774954031850216122407551140528866061016211316678101933290312514848327875370957894838378370193896884918995878915413394412994592745421786642319280538608126456351307334581822869025194312433723887323095092937555121239413201813215215922524850873385806841657297104968721717569957191685578245435156476656520717188828192518030714485061769470844114816757642526523885574928354396858857958874954287941724530030259102159638613708932610810874480945576070973030930160413264263250793634572661625908819134901376126596712301296948726039265950852646035150714377657188787261318149534474983016713002357668154633216156522542064509843342672220766380404614960145710724393648363985444737249547924200899699794909213679072489713746857026181521230262258930267152059399353400669971649015196726261517355501016694042252567098244909584391230370057611398925256259444589275545431641308129041517592785823460876519390738927952156933183174503002796373644558920193170439243029755510636690700067338368064961313011797583271171244485512134518852059174905151555543557676560861000216401771974098106961087118781027069066818262215105847689445891127013782664164682109252385074108957958961610796528847472202073240855517572451540699758768452271616732056028881713862879167428056345272655270099192295164115798498455216146560835363524517530108314624526618364129217511752060453001329969072615212106387187279479806783627693683309449358431042539872062318466899658671384319509858753081062518870207654814735687187525712258223641673747262935446495598701491107610396000319593522610501929590577207097907963099723013317299792364792272762729598050724944397181301216274564276014553717675520187277550051650685925506696375779506480996766076255263097713821090454153517645217455871239268992861654246583218065000499027281803493647042816414545174665457530883539046147253425499930785293067827631168994564079538160747630622236212674541356328935908392749152205731196076997003363983137832450488846774818374839127610638914971578915789198867716658176126886339848597557825043269304753648769555809385264768672052967925878381904625359326665646200671034039746745492241164545069571377913184605167921577042687935376562682540175460494285433399899419309084252856409057275864676148783345248504705556488564730707310988299968965756418006278236531360260270912401833286647885304361855971133050144547554829196876117513703016196514370796205877943070664068748377431034689749731343488769974509967304493836399670608365955691821742219379157494932842607597604020750956627438609886342248001728017949412379779810687144352077497184096071880945665281934596931233045691559915126433860884139858236328213941163589570340940584937821070389009480794123360586847854027241750667131986225226303528074211745296071348114392948031068542139427005751044636856456300943140083865005192583029372722916568822914492341794297645995140463661863238265356593552685172869439118498956692835832142590127073586022544067857722325352060353475772566671665089311590250589387130295529461574621847617127267726290751249085142812396228715179398953896960804721851351130712429934727094114484189075263066759727592723687190429047214766848841197301553162434267293817980268605322835865840773406129372861207876936694620624489352695441730965480967646396354570326704825330322171608265686361438879381965678763732860082579107612460169010331417928638522891580720153843428412692062103849338055039024689411090454183850070344184994094308902933793113764537281329398455990254545856272034834372758143784021326388534107239544965732382259447464314204310000059688523382827475874227848314041441855309501305224957297280943665467453026559631173686638387426817329500862977420231277429096178017086858734367407452926275353815196769121517914479412053630119953824134276974142907272740518113287235054957609872904837038094265776667374925916418598313589659827130897735991917938964072424890573667770458629577946839759557015357309265461183244752911734834084620430222921914313285950261073275421513576324582755717178830182545471402226779733105013715888561320432621349919746809385888604937008915144418651208612717840249970367226663990584634936901022969266520186383321697956185347209804702349853120757003681362126289238759463708948592618567279362346138480574470311409995101526563334696222843421879450915976424288221174918546793613653463208990498070518291822811973504290949368330934608374422796069815289095179806806152236903343350278083852930704890763589747894580179604712706290606296022371001035033648126386050103843375180026549349775273766235231511773261536484669373456431627414353604729672406388316747565711592341641915520989810295610887450025018718428711420893450371474502377533983199617516675242553200459320232445774461129853295156730232105416481173754538304240955427656536142938118063388356724691724513354883719423164045846491358229121674511108648833239439338040104623191220917119838141537225014225528145901848281269269964477786246613392608778177765907254218195000236803444454270218275306414859087493729773641753494674352594838981730431115888462447679129243333982260780956014582616203432465999795927111886495696053549289878611250253815998322902138591259698274222320603502825909111423613114393987803712787758961961773385693986511212262519706448510444431371053057179515962255968019313308814587739874527861942936879793778107666389290846578058863235894546917557846018585600860291023447229620603629960510153052615431520091961193475216460829929936661811702711478738495272851706613821980024678133169395943804349325928209702717378773484142582978583028495426694208259929547779578253485846240050786674761131087007055508290166486617837634692171104524282026826624818263232017733160298246554600180657491584728322956673146275949253357714407193411712139651732298934960737229478654049442573148202213091458500914370034740302553222104644224684223194154363116740339431199498280751032612126167515673655492519276671475341330942906813588726035939753804606195546129822667997754179172889435834499365910088677665646237339001415670186720984458737764945621015114793141364934425303205303200315289797173288886052936858299329123772804886632359050826511838646579723162419974111745949796656282565929631320911556589857557348990717396254848149423777833477430401857071056683546333118400332640612798683384542683036958047743113810600170981336975571098732585596306038595326088914218870515033221113217056149936813488346971914890043245686711689879114728106871795372226147862063705951554299971837795757186829332590332451587710778751269560210400638633558276539871913119344218155165197159820521438062514373694277748272164455022184447236488599070714875737976276623348596351818307203947566861385528160433480317643806822705973121681488108712805817065165835753956644161302778745694104097234803147835205384604213706705419534740161959792005639051169419262570794590465940344462554055626359697568555301686262498240910273818727158371978365002158684875204350012153267223555495675871699517055214912602366833573522259896541835505722714898580727532269469057698058919850472082410292609643172674918999551856384982342641774311219111332680832988725083619067044397706624700060659327139647050032637511509972176736959407374298240190622739375029995842873217939756938607750984906223438804098229252355129314300756010323213789279114175411069211239224380718337542474025764857430858282638228251702434272487688800162365377990396794125502431409509508304196863756766689724304112247626863943089558568408846347857932169125258414172042376032448418485886023808590915436517061384977322551367271769256554961257057943440319241440526012212641360492410148499238928434344641357438369626342010683907219881105736079755172308873481263676526694529076038329277711822664887569239920427963667102342335722931105750756910876099798869852095269595731255971656940967940545783858945118132501682383741208466089517954975738468028346289613423228139386606771040151544958236912753299254000346041412096591761826191353773526573002885536227412039971488537386863164033839286109822333018004937309575618178201379169413008592801214550762220499434828703197854555140999275420608854111932696261088228970351819991125130267868330949107981573578710233615917168927089103351397941163509647157628930882626655944840631120392209620837164078336011916943152050037697764317413413958918121236955049451401567037620500087391046146254177835333542283712999271637442301889414470199503909738235183165233638585718054108362212239793362351698975021642995404553367860864079019471471388421245769459258980859380971744065374639421002856676567931190367737068030042788338969476914998085174459731532869360903752736527966989133118769784349554660453066702388267613714320765516916060798098273973629828346299993432167283525122206014774016492932992371650548963680101084947832237709727119156215309559931267660137413126216500626332833498311407864165209231326739433722742566000206289453004855834287506609986675066801547469419954510207723025878163813695552379342041006375522776165571137353125310039352989113925381190400077637891708162077065034010211220097869064303316632427835381882705924166409044447857899163703879253241871094722771942093054597113125590555519818262211391445887494485119539795354115766287458226136449573771638916425522451093389592461153976961611411689050537354857135917093493435505941115659073295156274088994615511104439870711722295271909954070013536302398953623171934165948934816168323113400790854127927073675197663624709662280273016004762863586425846454910667652283046455924935464567930719031697644402485317677083134345822764998697652228399419308672942913880412798283457326368556578890367742899191518977269272360772933251763565980125713410822755812476106694967957155883577563746580619859585042729215521684727944667383187141893230586027661995190417083605621306476222345367371996835844594706381846162880552034844900275165752544269536669157750116245623878755280438964997933830798270344013907395825642112791155681419790874866431845436567209569747660468303578346998375744839627390662352449395316251543872030075630222209234594131932702227789121962179994452117618252120593482669096838947754583142125159768200069833111526827646745226853918207084993608146870291061759426502650388602383950058876322432287824113901020152213049814722966310770984879234644687502495278153519593455326114249911091791404065966267578517765985640034707036803973597844992189517735635674784771138922294572726728775558624959738040405472979559832433234348459785070533925331383362817771902145764218526713543098887267589544567700654110638278078456375822910303705010733877197706693157849440123043723420241756578012553322069326602036559770986324987482436687101696982869974592130165015356975406272376218388936300389627939624822750508153948303597271698721531918534425919465078476087342929218282843272236707363871338240205724852359576042219663847801193055183834507990604106262681204926372872439264960611739053286016349141939657632898190807236943447938528401029268889269538102765669195062111387037993482901797801205495478364460192290935375365402582816495743266574860797011509547497293202700531710957204202441003182248498494194381977005630285815984723180782428669300494551875964317201835562671168167102136529029487635587095552279536578496923175096907999123703444566712136617853897148819761491434239235586431885595529800937726520550984109388731344114112972921264333518869033729519042103694559881887616462588275399657323772553377229928645570605799457437196822468528404980904940010984082636911848377727992597268979818055388701674187426126993186202611829082677016684221778357978997155872348540533255596947731872141477698678720505398794691844023726598121875168283283870599682029472807938278145888138965862789838689264597648375048439167810300798107360598008964844745491842825764773819312718106567932844362294136879276588189511668500893682290224061489608705531114113090162568203982995126113958175948310255411676208496533042780929708182773450438289837711503008438703044965693922169319881541041812195067910481790935323355917487283730577054972723019193142377546567941654688483097006340112843545482045815830759409616169060449863632355746353067450542619794187833453525361248577875476985507846897992669266124562308248377785042133067545303177092485331462990799911728940960870171725906438771369059925996893724539265831934669796030193476327971643069996224755095502662330900981933481631832563212737560378290727286967476168125423797075962537477503283586268093595764240812450826941813232492284027222556471410693057096665148951974464554292088216318893842855883477812351341920619946626989954742759897980062890685097807877729694358239248375012045193321741965659401593645870787757179661777088788803408693127670538876351205464571064181710753495224052893812316738737172238535928476346039131761583222119391406969116628370494517454875400162528084233445376791735170004182843727078847793594415594059151263071202458729339260270343584788282549455026824397978809611566890092657485751784911449207634774127482066737355675630480808512482901490733364077989903851999414849748386023554361247707070601772901604550378813204976858152410395608737802886234822405124410417444724954421414953699668438897486465418485961857280262255384578031382074096166697986047837268515882229336111101020541346717828593275285595878405061778953544616822714009394260373667241621075976223281198978625365523260691734255001029435235837737017404009258294428593991835227917478963640103196306582907057207619475549366649384708524017088288502352837321440770306542474177477355649326428416410714538386134171218256756351069201048518975803508972107320918093825189845368674528570617056598633550769176950770397880830604781017694019105235156078949602166056070081465407438539542881646024141238040885408163067820253859092522510592574861601634861162958154265073220709953527634577695388272750658197222539442775635633051374702700368332749808446612113453931987477133325849215916502034801739887757974760887870142751510756525488992666056064558889986737171168368982815331992600121795608232657247797292799167513977849964490956788597012822330588876292131443521672897540371388781795002322681281862743351877303759920894303030946224679602363701532215556843675108236679522506760443604229711794383037939660120376320319535202883532292816806642149905463583826605282796783706148238933709527862941377823896343781737111547835251420657830944232563312709364844796405077218555173634999878673778599178190830011830224829162447000869347065603727323780001435474257765844318877400513631953401660641243472172770896152842639219528833602848396073429683379852914800611172743574562468913907151593290446602194328496908740940693754706190597412008715550506993721712290024531117652931226851718589883599779971844005627394604989240213996311655098534824311615676489083476662321643524823723876876020961009938222574935840591889736154542276736479397507649044236369414225038078722208341551675859362888233749810601473384198144516284884535720371688896445278662625434108501289900882287840701744468313626505760988757243299594903726094808605479607670775093849336862929157904258053666198870426089074203564490758521664139383386875405137543037291880802510276805035596769640432955135373699694554552619494730892998458163479225346145673475699258664190815274112830672623947429134997556723399252488536685268943632878434905500827064459404415500880247241721913598487230557667569018751061208350640975240447235447097798102781510151464059971341247205018387079013287141295499545172749108440574399451473291821640422993325825228649918325801957972114159580045672595787927839185282535133630581594278390714208666195885090175846715805482597437619305023728125547234350300920918564693284604295283289221992721962098258332313167395131908932539993461272388244122254036774902960825467090083502446030834393088899417109430684102106204459556044640872249545637834350991492409901667613194164999965744096201452244147416684696848385355577769277251229053147154297319210584975705885208821175097092547551432472277673411674469137901469562942877574647824804304995141266601601835198619883230476263913950389511999219103566203539643569184663146606616884804618098204683199013175197173364199456491464227137620888531786446070074776040217274512000813772391203959574859761644558160536763483318050610060055014482902004922160606744634444954020765820379717906321131030202959802072620806726998774386660221153892086595562914980824309583533335849827514589528374556727836357693641152211260963426520908401629993909480222779164500791107243889643005758590513984839785679154284494662461039164966440203914010081093918717380489374754651470449037146486252388622921944038796841548345620914874092766637365718888522044466414085281669247294580839769783865146666420997369560841035814947955708331512103137347143642542840649389329244378423660065370154725637607030953401267924865563043371349928376182813240295091070046189393944836301287043055313622677161611831285745065671395398670530766171533882963213912415512819982976982205087925527494577387665034528046586147048721709295592657619136016142173318004060149004336862137570238644447854385224856985910218796052219689700458021223804272024892494715391708941220029708847436508991126309762671140445121022104293154334103504659245384292289344062875380714384071350379114184228515758656961183631210167679652618784310341902755786382326606644066284796748065214442965561427281930749055565034801637520554158786812790076214965876996063783960029910975318732993367813511101983478959862896783025027616856846164812429637025305843291656541656842361708670033105439639599060971648082085541812756946344465884515823725811191050724914261067825770147348964052700253651352041004251052957410258307413924297195884330158544360266593801099986612414127600570142567664416006573251836690226915634929692288373647542703143892601232043340725322014949211438911449901554647230583845908396961807678332693009493589641200630971798130526285605960203930216722177761368103160435408575908589949187107074220409798220969108060580744966191277421672128363976654254767731673015012754507935750364325075275560714889742516579522859918131959732657627162114566997495816314853638436382730518888912697833095125440977412222138756720047348260098901086686801811418735764765364013674627020572702802534386472652635080510354722596661915674736693344981423317990456310134188066486492449086092713813972161538104111728737305086742485598473203701297690510989164072486035984760894666386058097103548810124579316723582673273592551893316043748319246909056794446166651686060060923335348450950844326898676809868820175059513839094964340561368659007177717640357429964349516391795127860559343601941755588103272154073000493188724240218279625823461081385651586619905217365966330404918095539648518234348674035921890336423115956954169454440558119464843640363282521165036109775254358211101198848797638492727564457292673074394689940424243811428291638027782991021381422352832465859463482644317461504748489378941519285219746388448345698953269632390238787493318109886762971809126303030974076010061380171098002599047059304409260251678810306934588189256612562016104182431711279575385929964911442638191289035725532322020016274838608003088392302119474206286960723421377823015645515492214674725749769165292071773561300962321632541781485194902048874698389493230372325970888771177082169209498772276123289107768094342212993701601643974909496826338051779027328195505003402454065051919002327080995304242581110390244671633382992344020482336310251071135110120776185400396237576885237415329612995292248965222944146437623795583020292222689666163272869519742807640805051736264414037645855163245134273799464067384005958451637843853809486517096641254150467425251723637855530927352662276728582501776358713403047135581943534447419018676766780756215297207570196658129254962771071050649429921075455590370374206113410693866213079183655758492791956009964825055561747173643866330206069472109182662367038180582938122941339507552801620475200243561632034245937741596655183388779888829413303672246356030913956463514096425328764057803646938673300212863525876299732820326878358032653860436081552041740685562194649430995168568799705896810497483701289012641964640469239085736809069794959329510350200501331226797438404594997968934457889796308035367494723887793920945486035489006691883447769144354482788737657568479908461026758522293710274174685858675116210012191742699110718738250420777353977715995577985277720020547114741147020053290449742467335973058169180492135988526178994833531851510799784899361700338930996079653683516143796803721461022340978045419858247311368742151868966996923065274141485775834067996117895003718785262154906528616639909338224185779169789302646617697404191109421340633026163912741390776784095924910384893309760169845807564280258100861599695683548876732714512570758260007660922706800376269446819114370500273718584534685730882306196307041577418270392465574660384440765009607309812570125369899434545820008758150834325247618043933054849060057230318742969932393925690307896832184678463384744017883886936774105812335949864158571141120425081300949246270705751337226159536348191935051170568373729273294870315403736537616413795135850633409739430301692406723286638669471013423600324831741880752249280836617788284571947155283239761025758415504777564070796950410922502138062404644141155302586812891279265489299014440287799379329431077459589579902215951374540392916296829727038650680103488611047374843328558167978280927472770957840884435533768570382810979834404341103608013345816850778800945602514087649244709528372951919287962188493335941339365448334286713882725722167594345649888597146714825084249238407811625968932266785363717234361541605198446733526111678507192237397867767003276739640404847838616805367042682399830132383205272992986136669512083003674679882225314720145491686237487194457085686729859867416298316290037803672489008822154928629724326978747715654895095211108535135923232752848958209432760798764541629540863368151805701228402638836461755017861991277712972303932663373591242508580584212429073050794147084369185941265404774829672116853221421035738262567930316743184393249083641599939948307855325756125442539491683183560441598185725552539218466042340131458630930599748193439154666898038503618449157627543774568320468933095877295116525718511515997844778791974413992736532480061453302494829894461071256464448736588911644278439142289294694199375239368764358142231811361682580908741062419510425002313587915629250798719015777358576018869886728969551427166754749179045575445287387833842661928834334300159022972929894434740573694963935064642886274314200988670688616434593760500707512066902599540593595084240376535630228841154346623081073514815533482634936648306173857547339696712301758260998428746145099238310872888347945740567328543352938501542578427355818591881882783905461097320106529856608547051017657128556802192703204877544711881274597063208274710348694086513373067560901657402027470961330780902994498023586423515256396130621044530605256984690889608424473981400085375715463826317596326402553584592076040653118858379810208466195346078151384158925778963221677679583121208482543382416660528809916622150155396953531079881380621448302800357441889807215623397905586851932518055206144131615003944023885791585848556576292108648775928982339259302367014023968963538083798576014144642482429866475443850584415979001107692886681706020813189094987829142381647457852054903692387831173021497356712873920606252011033641955751210639677480071671738755979997674231256018164190485022958531484758546800618030205288084558395077527868908116750807216120307128698236958825451977094181663395092708949327675606838849064887174890987216417866744090363268873671194053043158754012459994752835907466463609120622436352222064888721982064815778768400482665996355056600800170236941127226873449385685553701289935766173788961838192687068869894560259229578279925179081892364500834963889025789359136284834415676539014742928977856659410610198574918779334041278588432879318418142307213980585365076059859794106818352608855397457077955819581320558966237893740539254018076370913774942152616200602590246166048836461844220919558022939834996387273988591666262848851218016040795091423050879327687915181487225845879231038884176066940967763831852068422998135439015039448755740530962261522032405105985702944760574874888085017649845541190238457821831614203919914821458594053968204082545153983895081225808248983002150140739672794921795076799585354359621541002269615702758561724007106121972003201116708799160149561734099783251255920107277965852843382543098432673273836351191895493313625502599741791427508365636520836983690239151476095919784788571894811330818574741441214346677077429680850261329577287929084785988642519220999330054706367890888050647660852294829271950921627759041274470961099806484834518454658095427517384611521032659840460649622597938338864960133514716931154722071477850108933108107443452265616607908361416084353664173278358861887109500692699915151458338618936115807647820667681267090048845797272726135797984030248715732456303569042767540990637141941116068505345424973519368968660638177469817456866703493975826283255228212154329415548647856392575326608816891558909798478090642988293631283652658075281634517347555802700315789682325450201421783450421062545838420223727233836426084815278134247299525515848013835738175112326718894238508178779940951286769269260407399833774152088419030099788459257658292479807820418504086823435407946848178478917791964350392710436653025997929709789718058834991420925312142381298779866653009227174495589721016324608513150278511450126847305790097516559293984905163174597718742363543038683075770024771817961196430042802634737361678367913687817591378125538558994882979449255261258760187306421339132995440479446245470674225853357181894911766842250001402256114909172324053109735075792571178008617641410735100043457025103435689609972963777121688026301553144807771048495755261639786805909451201367454907432696027123984467300015337560417085979294986591982252428666747662767784205191287436279592171038786581229576389650389796967898349656502686371919738122647404614743166721812809349972247073088538067765655130892873431936033806148068803339216714873546897869988979815833851431001338660922558980192707865328484098124956468742590958023875085035432533173526886349498786962310304269549473049877189671243030223068039438207672261694869519765075872028264883490160802858929738753895065637966330030224741823738782412836460640672322358876706772482708611467390381589370473806167294409956048894653493225867206793588444512337334377071761065793493336319734900172084833522500409948008310935940189222685866925149805648451400438074073959144762462763227838241754333572355609899680759954299142130854539104878456442390245395464057449504994588396967562961737472785117011692862396506772854559456935355050262824543508470336208691053634318798748281116921913762318542511500149370525671157126363769073697455037800168436160476300096865090082722621068384312799755211138625889459209996705662915744164084746168304487847479136415792501138982337046973401894575825379017660990061262468190048067042735295041062807460620626298867716884545555307248343043739870187855541388652427067927638827543118626795091176331827545360915198010342138748480271133786477385705959949957187500786582262601737740827445851639606389094782423652333959202334540424810001213589733861299689845036667151308511846731771432970130786531424512797444274657806822522595016905856466537446088149112590618521610593755818259748693641498075181985341968408845354325484103385460916346879534424272016163851979318192783938960029168276251845537803228672480063996312448055588469897881249269604417884520638434882020087733514906907581178627712757211835258029514439329780438812618611354817822357215899720712890923067633195936669595033152764410327367387552518630658698060867916752517003503782375925463644674839729605667546181169540037256898145959953682405723507107799093069301920552928291327404142190006476993626375859151456754216600131197148571302117289213353559341855087681442392994570331647473750177061042205971641863862906349847189012418001948931314420748295197499976734735805691645281082390901016392513415444862888574122658409895275722290493439716959004538329833786450261581639035566831165615992873110078780215334378486015159750428231405797551676243999801148786664387185566194475351620505748472565820643516239880157582813570995940796310141824531858963382466573842082112675830151615754983629725400884183011509410818464872208965767627754289006277335620695093281499731882280814468743702072027407624132719938337616094424558164219062460459466507945139479406269053140100116770586970206079867078328043209054492922528136769834749169081105432959047349503432167256427044569259170254630156320405043749830461843582360804529260139363611015083596974598817707250462361490164602616745317160286085410961074368967347668980712782942184285304303706931573667436970476992088646591767624162127215727463089755826307627442192426709673147777759374712695789038343941034061325359791905175621008013014497955332314757449471127093152002416998294866025703193311879758290122220985535812364627011518801093132443887038287439431581577099001684012670632087319611219731504398539327084627782214468972001825979083525896198175766637698918258184833600317305790598172831490358717001382663307539969920784578429297765941654760867562984028367762770083892420290399369977983392722528777182469303886857123063227728843727201308486445465192106410802502997116230669912140907299780790956945938385078164240629249672606104120613851607933960242889243456403296582615528154727112601518166277973159120928125386913260402174945543634600255768854717742770612234372452168457290328132946067606752685524363261944226318060372126040825224695511559221645280949326805425868698964017008940686479241709036207775849999937016462597961612308110961503456474520108183571124633530268279669769346202056218585273868155734744678351232143848479994383890489977260675354684719181659102979007370106573388682366352458009833846742635577536575651291084230490931679159625474698596506091359832340430753162839147344522683789521197997110925742971683183981899847616778107456583099052080076250184630277655242612261991373905418349731213949597522703493492382127133339107983693541600681534116794556011639809674605994484888080923183383912993567488763765989465340797275512098164076877124440050514977001666177053273123847237706959806019220857678903995276096728292568428817446975216707840624485646361341984099556678845109357317830856120093890156079250786352023080117120540541706688769219670951418344983474834075842926282879143344346348122461178073784777139421570268063277762982395754498083885954717180692665435645461335711992707279143479023403909792013815440095440918091281843365062800161852751858204513729837166357090099910121169970384400166749407382785646189971160137703063553559800610140873883081330561100494307109999448800516061236813391865379842567524391327760057128816894910994674743020134422268612772784390045897206316449710282390363540556321468580370353503209338772968561299561159550466108557964718483449978950303134491399108234044636106405843033193902839033904494378787166878032801696380933887700706078527208433069837630685693848143284303921108619505008410770268386348470641807456043885778228608280774094255198334331021628386358327976495355048722029472771265736394995878289127873876589990565290691641944467460687811528536456818010863530987096174494259407921941898915243958311977791633099997718411199785813255255955844140807819897564784874510225227133357490341662458881490083948805536731847383665543539117752310589473167184827558036589921154415423617046611957986671714324678792407598747072478493726046222372882343204411100051518630399746281096208677506617978397899537777622391440961383247453999743425393861104962099401002055686039066277520626460822239602684286872580627534376463523751313016311854175460909227612418818899107271033006535990165565341747578089038687644060051779880726914144708233957985312551045295880986956251630497265367299505965534124431430039663266164668703157495922812770224364520144222649472653885547460453648754035505313921250741878344467552521263997981309836784234682595581640775407057694786227037937417774950117158635200021371001671769559759281649223042528912397892664736511129484713046768940878067204628332678601064519663414668987620476343547692665070561770540739861877570440064948758523318753437678603177107636131948482544725275686062729043190858111332629899228595036820062092116707542004465859936365686773605548717550802566534270233052548002939556988944841232253912126338492543659017032717066815060845671243215818702252535886037853484788019346208055767173836402206956278874402832750318866051526627325073821830401439781477732323069342336442061710257209304572376303755224373845165452613764635950517048998073926789985600219175644869633191729076082436974164064002094952527149425080070641095804637490690762947920850876840895762799697905353256143581350905224061289677229408005446203794132446027385615478523657657588505979707455347173148374194300229280109498922591109031945345835784262444976099602110517779755886142524848463670216953133373535752686442478635480760301760812250082376122491878103937365448507322978186277527860457292023845993034947905799815803983300245679010725793092655576212381504836545410707708941639740768882957419936748019393664759947074615535303968028365045164306339956290042557830739226507061513097532757508647542988451281440020319520206598943805325081886379445134613295348329120993808132085247455823693914463776730893573126069422357052193584571330833893554850951831492166457041029267475243048555440933236771786932735025402357340450298589360339094402504073653985060577769650729673539365299209972324951385319063605997894593186616435278462452036336762384485354842875055803065783557703802729317776104071536495393929112586808675902606012312515659504423086395677622607436281235693775350738258723655052242939426750806367786603591127506704933125825222696624354189507476936531874260003068374028226867001951131857902707590323090263825996883842119892231877798733775439953064297148853339458372801521811527230452748329016814965726487843731261995789313396358080971503857453175661628121940751317420283311778977986780993740397715752515777218903982788815992249244775036923926496855562507698079090844141672722440231368141119988471108989635180985083519869530194558151491968277352133719426768793616560736555654746334039025912347290959371018852686296432170499347675217410969141065445374288324373277173370658215777581781450209908882555467664816449612588663102230521627157201551036077324500060768919678187621265028968546048568303516416416978514205940490737037168927399553617773275823887126590427505875352663593381614225128124428428907419901634391410034780482300946938490950286402729500399271421202872979305098826253669346391202614036262136140720615433856371705674138800931360566693032604440267454041944325878460426363275937181492969801032070440924556953450133508019687628884800749417895482948698440530346055124219061584945400373351661276191232016483341302830934453911977956437875610948819123381291880244278242739911903558218543916805199332589665131380934757017468159985594130143055584635197764887594014272137952282974293979744159389638376313762724705697797379090176317737680834507785922415389141171550170816086642507066613061721348452282366273099163567753833322334659711073506403536140096877175210874248418451510232109703610057829470215071950532052942039336237825407945427703697004727134077304720852115877739982509018790413630514610078510451171592557287373226347867077416793375621334754611940716134644276424095112652068225284079246086829011448257656323218224131978996838122082156185496952073330476020945320636634488442258920339139610732049472867797824438065365214081798424453033391512916302306080793013785681123755586509850623345996950010708535005201584696339173798471069059582425266257488642923823101103472404536111655684290344617871885164684966210115705909437001991861448766889963438610287912310265177010766910397577144941816979972350572189949278813749445182579356431863646937752405660102939434836894254296012689342393035156224549527781486327298374475996599724445956785793142631238233922382720413373904730326771302133349398507870789703158929263335786425588463624003049175164813485932890902487451189198280388026645199977672953572160206441770928312244086085490726095046044163821391975700295741955887529218851525382123669208401384805400941664089602229739528711180503670154191545204448640869700328566159308884192846374670446718879959766012099477605389342253374155966692484348502846293650868822669754251751884985966049420867125327697678244005460592502599036501613475598203956152840062232811710949799282851116673628814566802103772844805375929925902203014643199140694815035081943908536852767158510173744139770488593105830611223603074621589378378677816718429957918935916394014451060608670503415443018334844515202374858528258959670451676071936682884271190962570925345465687240994420310536286595982881083323004143804828353191815304725389886581227797540541237210562608039888000240928246317740477654419534933106831173093849815882055195080344774922554329222724008563239249891858455051060212057630591586992607107651949884468481770148813198498899612786050561479611052026366558612289801121327230016140097244112200262738987824375060343588394856037391368553291464790043880036628483471402626637625438504637344693323167664559218976060214985032946614227572971053698028647177825901732667302603679709983542609921510049551664631059704629216082896044127163422459103132632818498569206575827905936185406095844913104252090846449658165481164096456860608670261990373399780537098327616329392818255831105188587589308476231576676443698277730624659689266771578925143325035597239209842287389136556794966604420224292799202676130886820803991629786908416044588302987468899698778970805229476999845339591950972218301803622088925567276949812717659320363009895686351342737019416400395935989219853749858355726586984339195455445572766512442315499057402600474898927909581624468963469004906113698097043002318600525113435814384670609604404626433704944620775711979902527392508971527448359995067355956300354038820050762363419332110865928019533035990210964043622823587044830358060404366176872008920991711988034663865912823710181625688121646984779011469284428165142478911794269618140043923721111028342419458119839593134250873299168804184489179876262712757707326196948025244338091436274535855029798708554216455169062780107858212180194483971624684481270181346841203315590828870554034490330985397265229510513085509147879313554439654215099172855531363169548957532411733030941904981751380305443393408231849413257186400500702110509465196454913298799546518550507112206837641223106982238767136336540773610543018768389716413680454295032789938848295594342763585274338986188168820303995664294985887461462378637148816399417652449262227430741405559481372682449663334320721460397006362989269879688911100312399803113749104483050098985375745267910340466693335741609013551530034431317970307796538832434317637555256623382525548820866861618938248154947832909203182731519417075766820823619063462099954939080426096097106361215280917736395792011628817180163218337634564398585418991923074520433055709792737020732719893826790475903373409387870169165953898407276104544349010662352906469341132230882234253798458215251214137326409992095966741569573352812423197018838101747850980379563337253748773754464075219249454241784515665589611120788301734742420878097913476044234041015745745970306012140726855407953056550194356252262864629890209259503659690496478866519659770485568772112840702328238763624176588469740304564808218665815361862484465604583145840546183464746251326647066480247318635376444959460792243525400327685448081418634246768418726509911444749891946673720952966162109213594341762116140829318169437151062538856292107107283673843651871067944222319308195304201648021501821483005635854422588928390435698987016317469435357620231014658026335421927621941243513235073016347269605548369793539106396800014152795986417865617690488607465242459712155121830911492760274442183281018841542617617453334651858573776546417084016555770586553785630997265278632632322087317346810059874262968712110501181618737920576759382422826033684300498082423001206431826617421978094362730785012209395918413272245920737419448700674516430876809474435256078779296073931826566452248717134745000666011218411654634824776476241519815178475347699352263250909188844008740621850568757579200492284781415951873680573700886485982874463112603010110800246768415983790289738200768611619070309758787952640769061061122344342945862939895518321321915034783407222472253607375662442627769807073709279426246978885282006658663548450799075423016985447060684996184914385874254258136327305641884055870674142931507421595275644904423952585660993253363989076714349748539888157188396784236830764735549628733050306242935731197985432136612859009314225266903454516397067317610016049396032367836221132961554754578940124333381978449825468554669334983057891451892497775893323321699787597013851507484930122645632679259129899699012091498164046091554176211897133319454716403940364439280762152817459579830210497925680665151336575954529605588387065263665686589881906074284943769090744705362774178590116492732728715386242555888357286860983852931551906443836388856183177904446552386222522095481416942150916508418810062748126914574734032640745314208036090616283892892011176691414465893137841743744107797786854149261698212089746018416851016916310443193994307399686741345913076163021761132163779439687844733522579012990260493160653873763693392840923707220994918216897017714559197526636877264251254510890815862291885451458199178046776211748613084908260166522802355031343843517959212211192251857930290679649541243697431368134907911224840464444330682474448676918162495134713004691651359974496387656420462990484627495668898519429109466403287411054326429636431611448497641739713551313011075079842416635891736231593428298805206399956518476470961537220841392858654123189397874236173370889366864897475046062444291455805796461231662068190028086767488677175205497702201366546000463066289367908679559627948224047097612236976890634280800091160113422546551657738815783835662424133096770791445094075343180140651281695159387502221321363446296345609684247342771745981771327699468454121122011819040356067184581836182319535581825155506248256290223966639932226898230434508927817357952918409464123780409264269340279958616030858011978389634998597717155866450420548514467097172946253693793609873541613989843186148576659957542165255905612981828444717612051261929573343025267419649966114644017397198262016744099003072707512044312283909477412660075950982593566287777788125873762709245490136858462513802691657888665320743173278044633678936375832447412875809068628285341766636543090697623301300848126335174302673947386288233115935863488946959270987285841071149550919057680771710141800013487437223723988136635637425131115037314691272308019570622010321340316971432352226565469006584294245721079952219913742693851128779558376831114620166849241633467183288939790360037737097380718127464987299513778993835676063169034009325632773503985245551062877530388349807799157494261615982168623438393962521545607431523380877521123351525395437220850859508262367479003204585288020520873632727376726867369639844026139330264491251615044421065124279967656592999994165777512495848914104941510789989549273427878654614296930855364622673321102956653193898062379507354159784779249446959763533138878324377445027240257645011031468690521793508160405103573980079627725097421677776418393246755801085151418053061388523217682381554755537867092917211612072445126737089801108139636352338759368370528386190292560538218567936136766842367524337821729570570099253850141109440193329212658419978358479091131425066989554807494343330132988164530623123343863753273133018160827762722326211678419559863146326805490752565870008288528202097399830079794100425519895809011254045414253741489322962658720786357052483467113304592628113531742813393084454070245491399128164916977080607387386480168290587403273918148690300759116178163300754319954951909833965331319620264821480228250570917604969207909365217126879149290756490961537366831190240909862810021057082824882139023213510936749684808696502654373894041061030901796677713835053740295972575060602231370650211120418044484618811772387553616405350997702372672199843493795642806531540470588117083187152414754260174050582980600429050361112570644360061281120538291634341940492606060015655708462639340620007604650149012044696745730597489987546748489517151097404692589443723612680183877464051803116372355372539053516583064792639867980094231458564645967269315046587690217795637643645288492829399660142495664333318980971495198096425437638123035586940470513443709286646020193805008803482182168123719739999417199490753745707019418451025393143761568867972826585858286021754700269431912154866439589511844173742417965752307357567870498229017882885005459275859936005050595673866883425192643415428091966347108435625929842680014751508094129760286854621473520413956010137599872295892780519854925197290213663711604707840699473578696630699004277948279871606719466996308929994878346298037180572708930924130734377641825476964792965064470029503631237160585339863347294287862390031105803480443491663772449580445108276623535390415423905720660591253423618526602998408375197435669162056045276642692744718472510835452502511597082546676747669978083351975158407780304177969324066531199555507238246258893205683160373562667536318072775039607669510998347458026972800959481386775838646099861973975145611202139744333068529642709770754037965483420903850152822783993123244081150597033385318035259486241809678862302532170876993844996398549271758821918216028236601444243199804287862057139425233173115735387861581010246051882321193934213886037056564198507527153721120304913726417495720237328507681610933606925498952009031962127810072040101352748851572214812843358961370614836397753733980139782597531355933354874007588261670933663214072366178181530875275550587259545611018064885818867935057202847165249075900931513674996486246060584045977200558953267912919816892872603278456608194256740557387860498781818339182281065993505530220581911497318751202155474641511477149433291432963135932741628974140786720497284056629168748280936303746700045506665595205853532251507652084039587941865787119285088303566474614617703529808586176166406839919519968219852848139929811586464873026203157243366031041535980153754376956187259837025944817142955770404539979191482157769293208924740534964995194674568093270098378583661181091684498094726599414520011735572811028391343846368752610201462868942622471575809458277102969895508896461274772858280758146346703215674958782304163737260828013677139596909829024400534801586869735762850130338460842162083201306557623479058476994691699174736402189877425952216757821938489935608643812450315986118786828299394282852992453343172416640438744510838176202791873610548288107969178721203925380618533350043180934889906365520808581907824744652122634204512202297695668170539088804234265582295761967964847558397637536555039053112325636115857364492581336928953192095684967664435280646645919160344188763223694593677770581672352157972827350515337318301168019786821899251876844169903932472984639971655593451883355916556494458801000363347892816509206024055499587949367604995457629542903593244093795357382058037591127157638775439534126334127432305615026087246659396850037139469037382100188771193822028954090793512817939319980345551061334285801165511849355678162294494643539105047826185088269227248762363832326527860875899759107337221641255170736777712864321487811875019722359912917209070411830656236190508114826422893910230130897745813079481924525852977061833333170780352465010521608879820282425705453291016737995758200918563338568041798249912560671881800574433603941148551703115523951785223958685278313592096742590873621296199036363795908939054165166470560591727844110275435967228663739817152185338986611266709884469482036383103430282372375596336313670752765067915773127077820686356574430655719189583223311240202033129026939315527136771343129994251071175847875059153638250665099016537379448992667134160313832451382870065500717155072925947077140303260006486962863689319593983265470937511254086402192602157174193605536650862478423970807267553680452267388232201743698854258367356508358970200522788933598062520126130237397342336110713930112681576090423293978190220957065929596768168912587241052533666705999441728134346738677875703733518233015426042238138279069832681986614245382641878072888360961810014035308653763702939620427136191465879328058632661931751706333047303909677744251919193609122112148546069762901332493654910628840566647318255047850905537071641230270552323811040537676337020247592035768834434071240345463241823150819023017097477711603931411821407909254583913671353124810666331572735851894043671848983261397720004800615013139830741655501298349270221721531637762107145681670746524590738686631418718609325860721878204024858693575911936543667956907230282549036064104442468773035168567226170753666875442013413677938490169100860604313089931904321747920952517187849096805795722953886237372883071656065497265770853621434499857628059873128688843109057972050603142522886117439469197195045377188543021719370277840507194613411136494149733698765877813937279193817051678260829653576129225921234187299384154875784883220188219427919087739252027079983456979240534272765938452539917110994579814899638233688127870442061932803294104567458744326188298015744290917943646280542997544577229222183962561760078064259822566577698046552623506839825335011791368990254071596571059609588345305839751468527476297928275617026457248244110638715517090677220481566062880877180932965261382011009438095658663888122301393349941450007757718818071740137367783019184643959727780015999130544781804171640798502875188329647764728344449099892553505168831389769119882943362200175546510698850489489892784907526822227774286702053872721266195554578929362488593447157841708751754063630665974310857363305831982286603218254888568418963156927926815402302561114370464254916421033814454386099918089404775744193667109840772967137346700047012338233061606994692546934953731927202435246899315262662530319999417567781358390006537245257888111851021131648843836713779112842497142484508648319996516035611321495669835728005673323302686623418909367030407040360202239253199933028053330756016769313120693448767655790794456229736810066695284060816069824849808211223411531250920853134862994113078396323455881390212587519185194219932196757670488551262810512392955328613026302149601525017330198331732427672443805147668420067036306752025968312101721914842623109300712705228799214319897937464223942538261108458196666798863008192295539441759388295611325868204319580017963074493309075522516909433365394043449865758698954891203187444861604397048379191707335050111070957805996734531592172650239870234133512475632597972731775829981592237328455185315573915165700694935234189562159369784633370464856741622868195600277506085555235869831250771723511195388810564889743650867301808917476296771553848525796207259875707041515682478265231281528476760647577764942641197199900162794900709790366433175539834724689708043710706575933279288168127123533309203874730125282707369392171016902217027184251145350073655425324341349276352511072704266877916300766008394932964357927963154204757080882395568874421927280462057006221952859757174468126807850076507329036438190945560093061110153834334235668099510224209186967865334338725885540787072127209503811442791251261412370867524072604351767661148679795777258070211993299617466495930311891095318434351283697835680470496470196933285019796224714584699911349316106162474043117797525743213524392030531034553220037407081781665787118883197627496448249241454934558347603805949599038477063800366984013181524991750688386620422245252107403202879094008522218428421189975982159184515934201434416902858353456748178365693687329079823500218297075653233462557591243043236799260536647913024723300168324301947120732543132657441264810096201709278186968972042467430586380772253538242525066809078084591585575277568947301987198410835057251621141116996935635536236403041531202509989439068324538187498074787748314454214783195460225383841252258247726726971960951077271599856027799925605772275216780997328922264264538147436775469783656478616851154149536697865632789217424975447536112262595629371797067565539225407840956497666711236221870471062858500571403980574320575400068490057523699264900382857932965439728182405765574306784726261000547697176634631952640790235596402618428463735864229375381279832254768127193660949003326599838083342124190336009833673544234185711209298469874538574648210568570360159127337652720576783623232657400100481804913567749063660276661763327701679131162922944133239906400502012223365432157964441927133793937014444606382819823015945089731996874350913645775900192903313995125661404010336800159008733860822919460833184726044920448566917821484059637282024051753791729103411939606842770401741763958819836505905565409519669633627943043647948529023226632255901234545622752883475655748684875971190025990343159838608082589140531696337787837106741166442673129101956374154282116910592889740813928305840465489902492914190505940636707046910623951351191244475990009279695418189689168566503145575528399799703676531505852692659445305104907878157282157248851844399145060529473264836542103172029727960493030552165460630344069675188108030786295260740756044453923435349238442567718407274528783673395749950597624255115567007587223297251328268795036818546506405065291055845221539861581926368721300478971790576535132137291320591225383408601448883691728768017779837214617050131541267460207876398045677615929570872916097390458550552051113659481611683545939849223978879313506890650011401900689210523745422267283375796316345103298040825194628782341650377116155820360030928896495974400132053767996055736079220925034784720656231497301265927012160549303923994423294870837652646075296983945612991355358714902364253205894324744249232568553998976233166360536286266211889772658136240122410475048757635427848824932492898859012133530706006540963791178386491904470378105104833798601612181040092689066455869177636128327245801207783804915326435472155070758856351672840876569610055571627449048665473531916973384981720378877341996361300917007987029988343957103026419900776185344914320514791273128619097026987051409080389837578571533072416284836883263932042003203530998217967636306488139774514341791149460754851377505032955516891905331116737804743843556960023208732679539219264703045751106354807471300196975350953928132896298502113755944851365558997641270683486442713255974422597128220484647537207139974589718225421209372869794026034123839695890560514445074453013431980748234498832910322274001797046927347841025323358264755243887931786378261718701055895215204194015763246490871269360851156695719347639915094458686878098488923618296266236785750860077991777662584816382655144745424202961521269875221817063881093899489624329296757377242677671785822989498734381476475375388594256288513462003847064024551901457881748007634393549779594795188251974383553657040441946425704876589400494060365551320087664328502959581372079582628773482212334896881716016736025867511308637625390636550426670676099811425937395825415206279125617096837640590431797864417166440878869805858473212436770654686372312852617513300535595495848316891978248726485124527130176448290851452374527758185386905607685655278423828973265208465728019363529287592678209007188502690484977954306620649637051314429863505042953943019641962049239842203436097447669702502300589824251243950194366029818286582749952229986855582026124929427272604599018747999427305024091461623348428449426221077672276645098850351011439127004607915863960343534028126230018597569280332796900649700364212939751483182476718300900375429323606963096573437416642597946426096959371019541276194705493004591131010212221071109405649723295223849436220796415998489207150521286639248910945329109674206524852705153034557289243152109549476299623990996918982003166867734052308222627594016535366475574883020075223759250579543596310255929324311746111605530839581211483639000744235209126964506487430263744255228818766423842165001409584062453125843098627692717734789713061345723511486788263903865040888732053047168038323530373975265291453248557570671361188354191876041638393365014050348132579932772529018221968784317110923214945896351021654465242484576394624640072274881535397276934967198493824334236029160389225887951241009322019454394464093250271974172629955285173494845363840038824963054644238279944113790712485015692753681685431457709695835757819123090581224205131248972622954383634539104821763558030263400498626298027730298869216777011760261395969743559718139842149607098329592631565738265972668126631913026652499465539764540946867276500382120612728171154712503954325531488179313026372591920933806492688446175938000743112911853875751416156430655741350262916018269800409191873281710330205204747462199782046005219238219671449373512357388053095368172245947804178697496155728795144277336796874509023360063458129059564530484061337991191937174040990441659693268514484242098667528088019013241070023641411723662055878015715058677029826669972668469219370881916527526825414020995186989666774595979058282778924989741337960928912244824789476045821099247032085570783861995029986267537927841773465991203760245234931936460654139283013981666797933528666385305040159917722661779143748435386626433356528587558058431543963950463965136424905355257635946894713493174057785406501875017435523004485981950014362408723514474551797537472326077946649934204105176349649807301418935156023489786963563540395706377085034628597451895815134870032784259490445790915006244875723158215317584889333251312413511096574639929944687190677649885080451054127441554683643682563440017332523565034450204338702317147561434096412375137225337665234509533210185928457714899865953258282936799416979299937729446282266817716989477565022416911989065037709899750653480469929067995815169237144978395314100867935327494130603732361912107729989263657975820064319622022853714530343735001128600125290526705181446325806638485997335264692842361903867877237854695457496888442012965752430647656423343006505172860231024185584033809789267898703497301768277963635874202575743204237000796773013802142400717479750023194021071753602674305508474688603177507398606490198222943782150820715795479654696706305885873132023938812004404448875881831973248256500336958475153919637000095112373983346709802150816734377222590057971724395645308784022355119353828529653359773274475861525240159924693971713400938042995379463886733675270234060946804084013330488303509581879260468775299217840569205625748229263867100911786362226142143630820710910338762695330736891722222822144233336413287459858860422307576359120622395629220447426619411975006467124882324154239039252788317676439451798249294079874292603963392601974116732713733562825700322086862587540583033175832727782688614244003813328687213133011346962158086370952328041183486511374215825774870566670763202154890819899903423181605021455303246891006659283032816122073805147195453578579647397117840535161065223775996474419441139735348751643218360424018650925649022747817026018636748616689775913440043523094511404791518239243476586476717551879071427971581712026948097831625277521653463205600851163469779697565877768283587038577512559745501382565537312297780994209125220861486185137599355385429072298656190267097696974872022680711104104135444907473766191092237112390426389686781536383201347728814681576731052454650892310189265363864825723321547594075648600763345065369992364960086620744331663390516504826761453219908233148410893245795945378345698393200862749485440935621303694165740714623638657750487704033761272644471607728439710107699422979168618622192976526831177068452341698862164742886939688840144675758542692424650159579960167919933772134743446103218013096746950609266560583388594606526839445724258138307428081314293195972594256963128715713723252528226542469662265380276905468339054255233727420761519404224139061548208242430825293798083336581089574763703818017328913771337954017753923452989251646692933142978665405354972365519980468714257236436404650605979246275152039391253426238572657807875798879098177169639358883386158319795841325693190767809744781107596112039114317487938566312902942478378647842170276930011145988981153409015827956692605308373080237620713249518064627686260196106454756169341935594936164497760506573541164453051626545829427184938742149140005008666286816337246072834010661696932615855656182085584924810797556559296290188380533578174789113748442667023847525372260333921676506716076362545392353900554136659399336481851472705137253142474012301285311770814787006122993094689302187838562854279769369075773521161932943688275075120845676033343151960024498062562450955769963670299294347973601687519006857064028206414547154057232712872080825836685343593056926688251744742423045720762626808896401306570450131894452331388193471319278397479128414858178474041472006025271501652202870358399053444023510796404838269014787803016805464026173103801135657637600512022957073468324190499597447716603070490889810506708863125083413467906341928828440927495429706322547089257158325299369211021061322383450185139509772216096491111989272098398343184427481377441736445524085379452211413082215146623086804569573397293673350817708166402099750241986748080646770314049020631203302068277655080202003733236451467184328161549897175006722940099572524748732436004795090519202631133782117272967464124800376923794843619890739183247663269916335697158758062258885081998283533541244517273370059233441725023801020881925849041381345424015798649967277671961219061961867737956766284576432688210800661771455770279837613145992948773380344199260110465451719816884264664644325095180183001475086028396088319473710735814995808865517556922749069048144288407056147788994498492896050648467023330965504445201355115302085601238880905874105632610744507449966493031128394925368490562004599169830685495653937726551595455309947979927207647348844232416064195480366972606177946915843524604660152607046664832293082744719923992886506619066092464804326089505612231346820097097776984116540102715200375712510683448551822283989208668017654247606490371434993924712262520665356240362623680919859029144828430765294993154480998683608635719137455817606942266499312552987787213762804469567260048683307700877656610167954898908127265184404870189444143963422857613123719597940640103941181354644443597142383135144383557938634765962918858484809585595946056924047422409736879293692652497848918872478632415055045648666988921941957241226072597877925922096732919170923040607427478905181917419695434065771574932688146256961999969253084591546445934167134445621861989591340341390740850263356993828624265891415210455508710094152516286577444513237502292169830732860248788969316847644030234727870829464099801189244460683642320822800284122304621828235074098488997502724264603481113370223986862350255017582643257932336615721392698837438277336760976840939248562845127991850539420727300791115127020524917736911927103129284887160835532121262135093853168468670476376547879720107099658867239770145804083878463238577071420334441014750318133988584321274461824126319261023100242949172381573967690389452922156145100671492267283074453594468582361861225610983037000390741738840361432968278535962184357417176425482081376464764368524509854778372799454762863901046237167375798983819144854178312991129793644424453887639609931733113621045506010675855958723991615726730362638638058384313333382610780485057292443606202790844797078500861844505671871288770110691036927407805423265105433771539404091742093215987940071208973595830544308736939718862939222453113231509980847956394304904562333374201903664548897671440728272873766254163536593863933214531842880613006962649446979005811122025750645509109043036575946905179998034216168359822233871530176256508718353736451365104187630639654538582353970595192603726729914995231993245233014635352470977957725715324853402022513323840251108981029097156864490053904070130200917155722524517883448108527172265454617039125348446212662603273763986158954634517298354983325966738404629388931204829064332519593679651307059010839265620663624822345989572920322635477364748239190290313030859944191562911783913860800178993631279437472055135031368611103265719423392915298798333423713643602376488271489400912937202478762126389002911055437382128981930374100916097858100415892413311113830293078798786029341367863830776357323819748047784054254251239807748641524207572669043922918139539747995360112696761669719350815716419902840552648267695809816832182210344131182682964281338795474625855020878907329089530172570788046106086257304806834928946342315329531475376936192970105736882064938992427857743756299900356001503826967122724906932206128703740277402092459557096443933593803321279780742912705409425936559065060344850001014739016564314997626750182602290044635745589614382177755124142353021101141225472488749308248058088957860999700299861048482171846779169391498204165205088053811499398246510908908192141530983322181861605813583377486877373529609706595110239313094353530973862357956692929268461014623937667872407037806382083344289724361750744109965998952128646088366390143655400764452119018019597402485025497424037513674797596913172579216968144950098554540230064514861978334148393484669506184915519941554767548180626686383708999594635739600144942038683920790402661130049253150659515477856270890015420990073437230021475179528197809631951464234828754796227088719257953542357827233008020763818171929867861004767489650534288152094737324551939892779654893629975580106738416791787151032880709628073026874645578963583853237770968422744625225348930335755552450162512961310244094295974250471440981798547751030789426124811916435003973582523892098619299198359547673260386885587481236549859758798633602742704649653202184321008299006073541988412612838050510207508895975447118890946122611552600403436689801677815709816745390080884994879752661826396263660092671139454443729919941084422733189638993772864688938707241724809999176294261414344876455482013469762424358413089942594525277178975508932878187890101015234271413938917408740499733928273824666362050317866903048599053715852213080458564677564515466126338156691148642202262860686393086689598332563517124058209419864803272085954709649411540334268965284570939134764223450197453635440391020189598162591087508010813512411917362890060213024084839477317346439439678775281821427642691672758750954310894346317433805399392419622609209424039534929153555297452409833462839635424594252879714342993982162981429822523965292964171733789467012832982160510758230661071564982144334084554797163951963793314073712872108466903589589500387596588494673714448075313832388531183559554993822587878517822162593162870641119565419111228814032591418743220425178768952574794646952718669110535987923110703375667541464777015796497388983915413912491329394687384762101176051675092910141529414552855487546017029905148595208176969058832712682944971096105060545827033476336650860629056847888811946100115090084718719980876951361454160881595913157644857162959089199945593292272837468337471104836828667781076467492548531215394850186348061776937173658561178987595864337364941060215015432879436916697734079318427359263589186630764024765887956113189962345088214466840311016977720584980337154709303767053206821778310035032971948405599246342913003806296254090419132241879288134956681716354779520857401479535340254792516841018876748777952715838484014918024361621897311484655574876583613100466486658041048744646758735326620738710038584752526153446366881371206536302935261437555382804438535428848409970602038132897657037324617452186332883266926251688978143906520498379635589786461422101866598505359943387594707020898413031855060724731489027704612243910686445219545098546102006988888526335532245136640424239234402093560888551141362747507720242292818954738186468282066297526993368555713129708564198201462014079106586104642067453809734529637120075153004667570405641465282681128745079520389715298364176999540703196853374431779162655947168141993700993324805833429373839816548506925676950692018208266938190201569329681468835800576908400263349212900369663883710736901048125134135831250248221341791284860557586027150495351556646415685473862816070485115869048421950439995569365013877885796782327750021549572507658199922445057115766479788570095768700504179541737995404801159432896218515442236025597537940798346330328392564172650963095000879301129594308066458228010496328054423260505007151304874257676657505871098616644491350554599836387926974184044803125236695765877079892191533168336643727484968576778817849008647763445839804392585868973060466480662354880443209430829617190617072673336634100046656274956077855638716769440936996822944503299440079715050737827140624406930913775041529619528240850057576841262918697106092023539130286978659815327162869514873132960838523262510111945900239378547418783214767779922951876249319040630049352154964879219696716527859637677457876310917624471537790556177155067345167133445662292276989041874403783479497713223525791494478654754164004573402850790180767203808720245681305443429346137743005933224965977398520248729792797044401931744624972474952024168648471236322307220418627200362611739803568992110246268313926196327624439362468896775466209085528305939896275284554294773603463040221974902136351610013549390758485017055594737876634238642056754804860012004010704431077970436450082732733354597243110130181399173635697137490961301857780713293231441170921398060294897977609104846953274738571015379571394707244036272066683395839403797589484753373741061263434793434064668237905846651427251100576829419913899001663092562048156510798240999501491189625508480228139652927355096349168506847705414698064328160437861556460170846884635416206913029365911581373010278182258349352260190514105608424687776576204823082374890330925569695969445588605076271282939982034593305247366368089326281072278753426832482546844217476928031634221449872162375067690266670245805484323223294559411781935953182306884850977654556970483414774815336333881939421665174568806759503378993501066179287891121378872021572607477899560927251036573726159864843917522374443417194782651766734970545749465771547935698135543844206954541327063862325770062204456548211972112887167952634261564336317491331634830289774585809442707548821901685146990798716981165700928183074540618827852218276548375462082192614120470221244373526165921107080536959699205419382876123537609618807608991404854468639442963021972510979889537664295019888854540512284435402546616815835785674601623386763831201927063955513734058172943904528713569185018023859960449559809856176157397554265884784322225173973433911482438963118385636497307297603332944173293663769523987250395165113675784064207969467794237284971848826638450492311967874944558863854118456288956493123877330648446946680829234293952510907293073403849282629177751463632668317505542198438886595337422734189841758274516561325605348237619802492390503886923427296847551699240372179470976177589214759621328953643509387827107430048536688220997696887090430490528616803450683469004714028413116969900167288010622400742722427890300589105038423512331542082753626010847293768092304135995147924822105586572441682282547091812433103319327371789094758703554766228235386652622590949720081542810161370817358002188398459880087586865022562565427453471987159653837897448863605918399636118599438702316089755527952505684850433249901902732694143389410559660825563181982474446062969681639363675444508124501959376032885173582794980705330930765072202270521384152721310307857333111382252006050148940724117354567995804424311098588530099776478903708934246866673222927206540337605983850366462811110525706491854889577370744317375493123467142408856098606189465466241236360951969726954208638864127968734449495209735918334457659722175961040006655123328540133547504225132303620105764628090004171609562949106525124547359028571947921617252759219015393526672461472896598539840596866970418003544291216489915261893238473545627340016267654667278771584851622797340318906026274745618525099908449442262335184831867717537211711457546883927255191582756213723175553371764519251248602819325864842108957898933684292209192946757124944744233441200898141899779055582421256374236573229965838703893337124660405177790403596158792173688265199067759377234062333769692074882685934954770887899712472990215302244098513730715821428887735932895142694159403171713277290332139883225479652628737076134412981891426173604556241341347843257748915788905566091053470207173640715777234918958389432012067370960572126755519146085039405365214523055027636439835293667478297698649499386101062622624108635223653771416326289000153677780461752650102084535005496661136678765880543385889458024136369710944658967356789849976563611990248416712652555143501674830368109778760714212527101679208569643490352351136729434346953898936242054894851661253811601952111811365985301782397323520871550276917317119588104948804727123190067154489392074009155537381363967726371257342966879929601590497299335715026525259455782503620005428242267915080854044057331533740626424760644652019701568201094561571778279203406702183161250909085129663398545998085489655321152090887411058200548258525930577544920186557658291454411677208950800667237602035161544778126064792151295791916665285779472867093601327678118028701436577263058753291858090011923530912878557712012681109054119491996838599278149206282035616809588880254841630686213137450292568220121519765517456627589648857322280087484579896644833835121055802528803726965908292435995179860809197510943318597026947766259035630637512774772555649229001525245010766622430402869161008459126493455661200270433700550020694101334800283426425815468213490018555854109995284389445160023976271730752956491427112191054706864552175650745045579149608342003994657817902502020277860950473889337200810302469557532944233125489047910343930289252311761056046913685798507095024228603347428184649491981550564617790992681747329603746339850742240481014153622929489419017676406701937564454112976427244283510407088273553673220198997505054388866270755839296448913735898745200104162138706787124755102845108673411810337985666419530201839944956815342552788042523292804491605466551107132016939977190394059991943406961977692430752371813391555009603515707097401205211822353243356827173988977656302871905043660882652307350672587317458042208595289154247947162406292949546124867238752196711306846048463003110292292296512515478927222983086171869088482319946792939824175925344803313032861313673727408567110314474959422998313945232781000482428532894510918932724642921870248797562950679698164063258113960027957255341008889843964970645275785051921991573181060032338260011373522489005979113958889211238883035457254261393224693577813663704903603526945257035833220925279462372532085446541086245184528166159057420009459920111260541439147595416392338291346962760714298585358919854929191876905750642852002891018723102842978457772673573328241101426737939800137726662828738819573681109507178120076595433885594019512987020140606670711630517833543223764142392565524023483634700021170493107708924629159183140379860346908107780688141662325169940445465516900408481073150987027412995344198809690955278782098990951373492516652455049603422482791755851754844777663034009672510229114084361436771277900539804677527120951702673044372438493018160553193035679319459297920506179956084869818010460301304189914790495549182143904740819501363872575163827199410951102054102082981870060465222441333665397779941158086928053926409141114165804321494168434990772066087247035160958094410945641527805558266393948600309997199375532585431804590890097936775861411958138888153204673468952725253570888003709784278864070909357231269871321756958596509574780265183757729995151728396975897792923864096000404736766577612150489893467109735316062702628995713232733634575940936034262774932442447690728410153866223794548525222889712975050909092915147626480060455801876616708155552555714468509714979651505603319966627357614502628800773846336794542545442484839651018423748861604537705640298341971076225845287775730388401336577051638061819154964753885565149529686894708141769792481082616273152345902200431536259854272211571209478656109044328133056819139299958614794249777922832897452466870702688208039634797563908971998007037683770337384687546252760338418941564744473699548913683364718108258605198945519330421799481879117212638818790443240302166040517986800903262314874418697189016233794800573211199697534238240288238319019745745343451348068938479820694567228372669512662031972185098342731626857833110977165659512232944297303986610648246127784861535946418726053570911031285757102413777768831578241985772087976225419240555114196048791564050691822036039402663764383382113740138518568718161283334570699405829810801239577207353785380476305937923725844641985406766902700301523410375600225703272503840178332887449104037057090449797730865470887406533514616704368636359168429781848566317903399920980572590350169791850011466003048093364280366388634881776739067686887397444895101585164929644364971996947579883936184642890724576509160703150855037693567579168590673612925314046412553247019641439419019679399622966022052102523804690918385573850486132248217460033256998174456775577838836737966894095526181713283296348949138332570721969631176840033640522636488295963353588648538244642261445085214130094077346111457368500361837313888194011460978826156982327799792714339048966076068220520482324316177805561018326638673380847727771625723404232312719760610784802476604757432755218088441001701478588783097347142891628435620291188352387749587645706568101401516347274844886951781392316985429166728580619011690307396308535765945316150046435356416321498001618752809173598048865981850148626045300862088326389551292232644934724764337773044141123970524783368084498930326372021179176407130165318611378637686380646371027876803313225213538839694075536497686459452965956339611467167809334367213086824242580921906121324450648976719371806381921814418734503291429306271681358927115937126347414706584124917621006130170850105591342863462693258095386470184620558232848853387432862812179724434559010194022878095910769994148607163338872072731759084753305456808326383338005936656524893775793210656585729412051946727461828587233282740534226862691386880818060624674260883101277791292457412024093871072695927433240447129560611717938853081316158409280275233914385838740774148189412471868281916629191014886244302500566377114732468645419022640915195295888494339217244234341219089824508994420656739449755510435962567313734105917256140918269293373167940390479663181156560387299713675110177304962424687572233374520509124783783262343794452165936772090653893458171541420315968699542899351756139789177218849013985138993123841822013568091124311082697835062913699096626314234979102564890675753458043650145561718800637659422118797966110386766111185001765872543748086069622735444632679079927942593966822594194265977924985778004680950805544958999006797282586022377760504623886787978778767955640202410034624461916612346171861836966359935985417717284979978960833287799008808993295807128513590176518050189519092716248414115630147428112956308669278205076511148410325428312165765017408510912832593643222339517262550555658326957686601023589180016958621615040323256734738001493061089955734573842769823655051538410738955349361505478100250832542160275441397045751882180358431218252875344062268346986740604920922672644904325814961519757718288235091270126393099817838746223986333109275725554522725682597293346757118699068197843334616135115578327614248929229494639313837474525138999836661661996311096981746039610690120041819270390777382590465884187699422287793012892507503138193959376205032136475159255556810509758967706811460515598424622929039223303711298102035408688981212374536209648535964737474883711996968189529907586019574133611622904974509038523888360323313525363358709619709156409882274888275392284364265858117448461622920998955995871779188052436651342010519044423626740999902381218479541875751294068586393020942456070893741762747187544503202388517132807451483794762349767764148734427474357048856494893926190705451587699125702023791571865848055158463736149951885957770787937051458667811724951470015900528277567569905451784546194988467020556718476192056139367096300876943898294746238731693512159964231267965675760588677915006184850467984784482929638245249783188946092988376462995069515302722980605337873460379572498580775813507307375799989782629005136835790226817729787235555800441635322017302316056244388240872809788623644115638033173476570380113135582005851734463411596868883702591646794793860727770678815297803192592006284775905579608792618782205192456413409599876465394331254756948946694483909733360813601208772637716315035143959504212734955703649868185796513883890437391545241942684399726284797842629130620471299924980001625341006871450378900168183564466643448167356368169404348860712720783449990900156184811924018753335945396735470310240698742257527478417340441021618113032103965414336801431668112691248398468536774595583600319322340294182206339702599098294640202129324088157997606615135333901380139841522058079823542825164493961558525781947619680727588478381052203792551046392997928149284637266334200005945126354708325044244913238177428630524441286805174111578504121420998750109211562051913992319613302594143510826032869684339295121860126516536676983565705059909033684065241194830085439610815609954053089633711824323439079631308843462947532054274120646678672191621710770061892704133664543005490935811754929445525588101306563369793310894802367823640768277623506144183386802429590544180450412433039019282503316358809484427904001757901671772234702864389389220994485499698093106969785108516503063023648360314738928402067275490932200201135974738173924081343959086574496312992343264980592039069308523018372425125837090160701034121100288684946665474474794849331314018632381556622663879816623648966617353904015751614018188499422967469612082029513807197588184750980452757717418634496478864409752604056479014462083802628541049980167215894476295838059001605544904483197739238855956678825649807895799629554449140968526569192234639418216062047981890015168354197117030577630147424076536896877595472623457791400339651426477331913492044319148535882560939261696457938493309368419911585118844017337793895238726827384767672959047639529202238217468100080681177455493285650425798813520453457193552868194756743687893837733574135300497957374130344928449403017117462282047437765730908093626742974816641724711901874583005318989437632068682790847927422452894715490180933389072411476237915922616828889826253435515835501390047895820043624667150462284942850447498556780715144879559412749692631852343956870065455441859033028615273144652761804566660810584351446694043702754746685969968821293886136904785201381674855342632855536598724270499397803354263534051935813800085331184088332857147262616216158141753259530010636853600256353011888013128664423032924297913379031178868942328000328546071681608566717003972111758039322497780904693502002924357305389700592356519505092579974045487272755470540390608326253613721696461706921375122398152307866181705838721184648288751323942380228404919154439213656324053471234667375130587762688993902451114147264408366089591892030959082739780998511053462637002132928265722914360881865558030105763258916097248405966298186470202030840706453218858697219095076289399489859780192237908979443715579875001362762174660388345300383655251333582020188622532573589226419385961547463992643051660389645996882716614877648761037715847741160818042802907943772706558015308602183153436689525928364503080289423917570077248776320560645169348417521359787594287855719607183788050745917731379808708769458946188663685335293630118072982197416554852526068944163278824036797010232233266288506191579184640474713913669674745462525125786865099922668178778434265089801630454905283032097002335119842328097870831048658130859878636224438374951986867143418100607196412729035110262627561148280868274506780054278718160347849941351006441444700044233717558516364579768123961542146169653799001860112446027049171036743590521368916263956221086596812680124481723528706591715989200914318376451277392829510281471461862010098645229216937509515914200077842726866316450579888731883053562675134376717922089890688841300028470933085055712868238584219166500166014556316697094049123386486436596910036235550361213014972033255199429451759106340242849528757785788530330612355379423963203254188183043076497892401992992003700808979081917573689513675807174995283407430582281003065072568606484452460203563024762782992759942891353202634140277812478346462132040332329913597020036081254873845803003349425935277538537777296394180327279396622504501571981859879048483595970322146886441999775305355315053461334095859355412158772335775919922659782015480926571596486631570012963603175305468103906503456826256750390895965200643087523982320747858033009670539868236302925541685904845953476669909886334258629812874664847478613608546795870277488865582305240959536352772121796666540560657301991924699051108173941314577529596354862272122160448158834624170512525024279666862509378242511973101333399590949449539788405095483650542639540769507429367287171331759756434100476950435530117994710643537982976938998260871065825480732163954698691881975288119482369940177806682325813753882975402425593574360490171277745416253965932301948753429025498605743479812339569226192300876112152882899584761869377396147441688740157132817978409049130267471593460046771733239009434445504093665924533341125998347918413461122346776609122922565063830343464220057592465628563122768776144176733681637886030961632654853671288213048739726911754728812124229731940334765273828961438457780027984737653174960998695345494789878636536287337211386436359434414787973020269532096460019146978624292204241674380729239282749053305918395776728539217723657679754641318280135492326855576503506743341192289080328956273691704025038077590987676274162176098900709882425867892428398667940381577795729727413316848837661791486601387360045549604244229797259274278762911047478479296198687439499829092735697194272203026348969231358599574146766089389808671111077307432802893625416480206137258845445009549747108532384682014286938420174461728678281855409782101229173892038050413594580969503264434585648415232704748784843006277623748618062651062805950615359835768395079182570828247136812610376762270016075540640098612062855985050150675896777632337356369478873481967982365139487454196138639134405897963939455986942128711018573757305232572696163049727557026934377726772935366815360755791250477586579519378120431649798670560294284272161189362272784105310062560701020735558986283615596678948356114319509683504909545087185000717251681022833966364413851192952844089950254167373953758287948026523371147047927292538756312419378674341917477539879481521553716031235933899034254571584379419804953146281043740470908993583032923437702425106776513433416621697781054642633876542518918466496896628658770555306801001515628827894207511733306281339064238700601908401637743049694332653585810967900259258765229828763988051751677035885776249172745013979282936124640350734713373579261467658672734942983726491105935384569051436816429892481374742051446634152808345783575748248584432750713978768676738220127761411944877443861455427580640014169974618587762006475498118642258689307665735958535192348454596974602527850329013517270939151309465723863196451308247943638986280875630019822815477510417661392915618310507549568889481476594062683791366647204625803706120207981961006488237623712270647618575089480519719729560277090662749458547384455028447442933689122597486096439268260446428460237382051623873263944212740015756479208937316948400102408530213810727734158528678325281902841646655226037640193618336088603048532625614786749942898767599867561698818845261058775274350381908668658130876591462048575647334575551804381321597533393355054962288848847606997196247270530601763222460876808837743397897869326461856498296683013599468360593845181446500910157397521786958294366503769665934675860567777780378320203861150674117733935813531158979842419252683557276279033010446104124206330767318634724879076984259181434182363169681469719339299042637764263736344173240377919302511022314546489308875792064712043374010654140617751323889827002260766490102030474253654309122947820546686979886192303136071713982741748037689438174044739232663686890749192995221805816978545762131618833950002095426088255054191573793574392261718249809594884038112112023731629040694572877606621925411492273042984825898148091632164108709424156406434934580210455047600641244605895122300121964525307597595988217324746196110279517606442105513470741110498552745806470691913476485801178748299345934397861018926808367519117896682694084912726597565837352908314424462249449893997441015167747563628562934427237195375233062442856952837518499775934830841994324953810163257645287284875212690090676816100931871691664288381809885731167919275737182001699458407178452150297040675200810429847074463340173509363954880638980360528733548478550783876727692962987574157821605557366405290814682210596666798809284235728873928743769066554875456670575654830960558203306382100437392869116419178123139943210825000286367291312314470415605177089590313166876671770733968691657810322097268098928329992975803769554963694621403909344838310888579736197570670007973033794480136957570519821465673439588098500421070827080340840986427457734087777341889246927677246863809146093858119240069125787623245709683968182850520133416197082122959897593919594198116886413992514071956719712425733908229231571424984571679553290121329587627691142169794820609030489932735162639418157876493232849047677705181745821368660531768793033508497244146606768621820327194215770151412654988693624449775277665359625298363162430915521844451512849907818051908378420865080024300363135929807009377782863628832872184634224665852112504818773085770719134173942568016471871626010627786276375156821800098040008503053387546246181434804761371530846463643230041115545626844097062131070826786743738258775959481986011997248038899959881653978650472523448420221582977477111661529086452816091535990901029280349323195234340876584713690074709013992927188507832394489925681219582910164054248360860398523643827107890332332375142687449737538779734712459286522018094972836350770041587742687878898780847177291577401477653716726276360715083467593954496072746889214511371081080879795255220706909950687283311264308351614937140749497665079754783355862666759765744679577660181645311645938882468290450575325889431848595668771753920219865733875611645768733557424325596537303245563170160000604754318843517735352697705788988998879453114879304925066476495747951156974948609285472788031040021670872183835238714372076711779196546592928643861164724371053855762494219609507048918001498512123788102485254206633735412121022361216565798495823101624962337061690769860082772805143164136855383436926965063712429430821636796639190539486899768332200226818638102525156615127722165046324347833327814200548532458658910255889502519978659429651340064105750549553444083672379377127912647455112468522002536879958984434921303152077201008290531564871122942651279458642976821681925746338052274126449034547405782418728071499783317489595136970854738403663578032975441043142239439109047547263501682943781679588222986764017099042028419661276027615863390040058382643953013271613424991802840788881403535241792082827193277041057935141585739776716050184556532510336083345562071662716033827306472624662169872149765305027097758887297740598287578553102215032507835358479975390690113094081701454857026592225346521655779539385080609355061491236089940069192034062939417239410872630457274352183905600764979607210359181273735734210840328684279309062060029858924714104306470219027450619416647185661698332262327248347895458232910803036751321293873492920471035027263317410107860042946807907130660315318159856849673260956730515489560695490833843263026708243715917817523540601508501573355586571269495358628129218189037999625875503013525148546063972057334015224026210194528689283248369045970824973573688138058611539417468213499227307548394897772336645657579766075386155731394344735537934406418171367674770973417033069879091513501098190311116642493503809772289950418065422095727927959707229788526116266684696603865872646704441667451282315033897916589782505833798104053965049615920993928732065491095338807820795965275468046399791281772489420426197502167337138089622577797443229940434750495470309671075783733575790560696396018139962966248530129183517771043539560107910984485524905465747073864385827332791994602174347477574058706801954494128912227916681801830748016794609848937496269387569773017035150916108833033572891265191683513130176656812075598575327442480232578140116563904523169270519877505450182651626508731830619293010224554063383355556382003311057177998605117034541761910516633284600633523409321914095808476122564894984977589906364830754066699579887291772638188081731917901214374001696899960540941216489614746864126284747315005732836299194216446630209964764793241873720746056000265884281447653530437935442744428360096901654273465886515715945785496413595435039475234575417282152883761143252085923120358975582341639175567922298573945881465459806471359941056999973046807902317501314257186810542958898321457040714295169377890516991254791317744335158376691655071872986339112347069618694508956746481827911196333238347767477013877636029956002486069957115111622101531031572308058217267276961852504602581368603310868236881627123537154372718004681713456743087354929162579836367510772164996825997721279558973391545407126885307254373896994381612257105374606387211410984452304190153407926584804975251492428236893386694689411474511734336430661540495708737008269692977204409126554916464830802466724249041495145962987433354532222198340719703122616952770317844764300208559908406554743180644360198535947056181233007853830888344978769383755594533515644734469685966894347663639035479406512958187124340846616172343794889560603719481543674110119666674415515544425310743599183630559496905459571449450968155819806819632421880187650975357791459060314320403152503138269481448704523178337789052515985640301842850600496688092846379396101502422047222426955883114232264648118054436979772657469866380756771686779966804935007323368602108293261890012749861703808812780297608703926650663863128788378565222713392629072956893728897034880493727076638427469714547200974916158659654467824614849380259148536483704927602757357834328402954962434812047871080572114097832837088114760226571228514268701681797469177715978894242180665617766033310878267533409125100404207662669272550831594902365135887334063896330740747912317170868719960733699705914481116712376540808411367234883909460927247538773674785972029986054558612333984426444027166539140273353703466029062188875480139188031595172019560272903944344347559159218136692732370829116519471079204220423174989954851140572653477410620739128229734080926715452119354265307689182654027168958825977667895809499158913041365559590350232825513269730627819827732521706423176587678160746481497624393417175927272310057898723615539271632242340654754784657731408669799813462803703599258586875843317107794327797542815223193092071757906172566887698055908066453700343878458340501271692686389656216201472380707450997091762070937719541096706389978834627785985924779120969121029667332678344761059879966141278042012567994186330512444677344585186725130672885002713753845832754171585938784283560482592722562689191613579725964192091912815475025956642154577506869721759340605042100271549990659323561189749410404983473359018383576532217778856224039684249997435268062341541457496843911506713501001174233250588843774344391790669898347242618831598434010416848143859681888396976421502174849114600249159783639275624930536942988539319619715038869709071760996251675777414751285783196270045179456548712348646659988684563130575640064428835485145872790096188030870565458702499879190889599976129017582818906243382766320604153513918636901222033155032520995113084134030889067475418531199970867028211873171361206025062839317559050418135905953972707899628888671938968736254487952581835247167886960745663750363901958740466964058075606798962093569202167032126983886826458009727439357610638108472843277392926452197609925703510645053240981526375568285613202142863388007444209184372961550440020439746152597372925088572857051520603839645472963621999005324716044433442282530508140988420167032857554486824723704161276494570873788898249173241891092105465489572786399548885561652370529913069032255268734441020086725438309672541087128860982375266874663724038750577587165669152313277981622075123629484434961569772771691295074584362416539140274833577631566255303525714599514952780825927947366200493650882311328782427504280752381544271025512675029456813190212284747990935712307134333308806882932152346725649836854939744893987017046865672441476937410563134794650165268564983951967702987661929775935389102794270068966434986710856633296441135492649795022030113473856334910191784141605395242519647505893755922263253875814594172619312761057474485802481493694321329141277545208615610563156351203748928905422392765263708621137239434784122210278382125006673845961190969965229898333827641024128648448895032449106178175609092903436126999669932359348663676539480984937125946912015399670613728508129240959282785264100842883124481609096032207688218577109615632348373446561923478976410739302356824713174239519254024841709766490490592951648597817334601083181847439292232054122853890784063176821472934719799837188980595236584086144000639829562810976344105871960940428181771597206492947207569184320433130952404948252290149945189159616044480325173092457375486750235442907147062171117502655752074111275818309063013205828035559807510923508885978959438244855030005145199685238502344174669930817319030270232206430465258193331316239850559544256549098000676640756056544234335987752919807580056456640200467539662043891855595018776869878803476891487259319687056038744918977494177995946631567848180698765409383849628127661907130509650292490836278644572099467939478176204286630921087875432392776972314700317234839856070596931348061454245526437781125944215181978806954409772315228099003483310302067879769445292292079449716121981866424916860003751139552847995311801015217933702158029911020772742569931191846634920750355683441941036129416981493071232506391408044677731093908943276427463230624053691472934086714749020373955490735584246851573523477723944024844728374969129421424677982019635354374461780201236469077912604294961758677330718600533100736821372591239459807048975416877852171473614222190088280585941313150907933540498610697819535172607631580374820052693250077960527483415806055061855043699008532279755062927814130354508025624975997354279263254539696272776869175644159790413416727279685721905790989558581692638059615755566144171714286344436852549932037800321936129664708345433763273930887796998596250795506679597004292175011834125913786334604466290369119032418841257714236391919969610218186749542565383665767716559590018138747843025568666162602209567678950602077659812354096886550364882203767757797465205691325669798666590004231940273478712099993916529128662925132339811080795677369076258639809125259381279960952932671298701013177517539736919858756406962051766132255237949972902468695543413576791700808433258297809879835909141826544718108150094765055509651385591032701609490866310912450664049728540143710596624872170845147922863869127736929918349452473140095061235880788129009839846296262940441385756590265586412569976909377799090692382761041887047950223708721116315957539533523929995766716069360604072409994776899371492053778540363618901718693100068932546314341909259268141779451879601440017642006412832055071114003712162004479030700340121944662470135581122993043341459199619872316057503659152424266029145677589965342185035441863708585433786470324495565211671749315707273507028865194538292350616426742123841570990349118497529710380242916325049718023685147401797234918932281677395030745470295823692955327445491054973183738341911386547361179690052814213234858373125362595979074248007540948704844963708421131336703163101368893410288332436046599134306806651571622364869721859722603922279454950180892606624276965187830338576458936133363080821424155745985026136157008258755796510108224898564176521883605471047743996595621923572318227970059798642976233382580214806337457414028190459111584214880306983125609335533975732752539979186936389345215322034861894055103431506931871587701725675665362748710034907216414519258797357635355745242746650057298321458640647114048588028076206577411391336251172053490254329292805388762870747774591068804516002942937301111290326480524549202087442008940975936091711211376986470704040748030033267199428136153040671211092658626683166856430922533683029336746779447964481984475841172587272934433800850962864140918243644146180622629900206092536389919217303245678812112972601118887700262412041222722683705666721841243999879979463066208080177505042329113923714655396505566473342032742705385765706162835595268306844546455403371805550725938983496343664171591610813708571462648300517038486025683584977163746183874880065733932598681323340315921558766011145447838440494661123787815134905596303179531435075509563163948218211766478446232518686229422299604540056785181447551311315947306614775862676391857104547948549174905966402614238324085789424061992902891056674203067671555538633537857243858614411243852314796963664022808836973278364444480164264454093311869057846252448754254228788322493395274370233294365472837507455012624221512993369130690766550928914774976800179834712167330341070482718177501285075059578927323290788536854136262800005756138005452277346164953219341145525238540177173604542978944247627823471257108648273347556154066414935181998709543630700878676531334705240582570640530092607805005188614651728467294961011659169909964798663066912731615307241751796072615366616358431024370000567902397735530298734615574168780681289886134204275749528818282985474705872589154302741188977645809040655960842690077581022301176185655419035815857647114778846658718305511167508282271572696504028914188818953741385144027659202489524124606868565258002279454221865249326702302263200789217302520616227882207604803036432944261039886099795060845787638064211785596557659361920314251510815166620320515103718477775459391487876472933583539394748525765876659584162804226327962421373381367154925109008803305736170951911191505864874818319649118979154079914783793754518475138039911088890689782354716919582944669525759080028127888854908363090877579952718752885495915781585262129424495235288755536972876045865084117301296465382471996879784992803859487877294360224745852595529765504330417587475040842551582996294561462755546489004360944096388218406583464760997616848393389674315942748531869218298181995850122517345087425877163569715649130009884086020106252537425749530191975056383350178668326325040755589629725264483785988295558720010419309185220091637729779830019136841908444575652041020519608973394130745387549162853117944190483481268003217955023078396035072521300112342722605882931137135969188618649646658641549213246512196893818113473029384629013317315928053020483112110112350412655008319712050065914426043011225459372617354416732713904961337541634483929014117686488075930655362624581932455262953205532743044624973354854218444385179355983808275435278312618711595928497872903370804228145687775876701653860358604384093055201210765001862027970874416904985768319387024427946272764640320041263410939072169118671873026629639384430868246270739281361587982848159582425731357775081839778556102447794934821574825777124663946935314470179538856283628091488408103082150683462237724355843643110991519459940216999409065411866228343761591672774876816419057104929399868602032161341315434770139421195109792428088577940621215703881620462241448246279577333185541627137978437450790538157133610514211903271679559217353960066423992398167561267852301379573876848210221786344695979487299719386174043412707860883661088975634698451116606605085065361242720934075877621952668379279855957372668968004829431547822335933221785224122752509749932792129754823854802084387410708073224550975200390355036624722321145083970048573327209959124470001326624017185134887369762717591494883517903950079712602136183369770849618469708759807199290198475737943910089683996688141293773260966460053292385187564076396266727826694291422912797410887380851729694159638831121176980775428732590568761569266981188165882528046460515188325128128152720446420398212859423264505485329430019268682313267075920089223351821643469242203809936635654815714929786446787586735615082490426029717931125720553779507259840480134941966294868419784924545225898051906965384165559649536729901128805538982631907557623402361827034503143169733160689289667950744910985996260459406792125650863094611929842892456253502895310758875869488643374992453274019273868086628288118791202660838712767584382090992393144024610452235676525029672665277329062228861808352886524246800173286098913686888035841051702916900507229768264954365777093165781334731853620541857550871643837329625283234056116605037543983238829592035119586538637943572661417607001066091340393101198394965410658893808859023414975428922617677392686788990108287456638280812980059944598872498914658605556927558869038739908395288786708376072929805712976971441986580254567542171664622029464372969439761781416103320538976785289336442734019518202758299485105843356013038974580642736575846507352633079860689616009143017060624657394592612607596344980403526983009268251381401331104982320601725447374459934150840221517890162802181280867277565902434579820277898142211612100217842582718432286664587342567794834761532300452780493217514969164297698759227955146815924909281749128698470524586499986039231074724451061675726173348702578936909164259332397206000525937101856986006923965205655539434655860189732510113063352362226318616338898785042578803334920811632915467133640040646485733012157753046620158012537270596917190671392413668218773268974353833419187106944197508426481265274227153124644803815632610298064344817099063027137804888341890654625339288485798799631702541962076445003446905792086398074016791678691892839258328545408854334032709227261669331255627969399021298446479538850020590633620587791556867529545701297274256674185035917221701157498898068048872568016085292967932589288119029801695421992734223439360506712668753725440619173571779216069164845097617555318628990784822772797737534731115577053183110261204887030715704367876050877374208172627112621682362163983441355071290936247912265612764739835487898016645105669228335182438967958874735455643892782829092059671870500584597072787847828635234986429030526809307766806714235350875245450671341068743303368428133660622047585164796372100532508263150829363101056587564671198575617654982848949292675760563372614553587515585913309687913000761925997974736914413094069097970918425911093218134727213707612902762651040441083544931907320863402855995894709259169162815908317815415839537244297667184945409781325883640178931266990116991894107698126601968807041304812358844215340038745190485439176437044556507392026467225653521652853852869091210743619152931306004502395920066919252120682840062817113705574631654868986451459001004096284666136326049348840281130817845297851299780377206939780096340021791179405974336021231803264544009295406259110506011019713203133516831433571699132229549164572610196908193003903818075345375724005288611539782896998653265188771146215299667736579774491454119420754321610461601181934684357867265576483411959672817428841506382950761558170956263403844680376717100933529711732239780742856592457336018773273703333659306707234794710759373594620698118241462014936985429242315643491978566090943614029730934606038234788282701194449155326905552686267710979457005827835234398938772279475658271648118266056737101109977871447335411873407347067073089947420050226175164555272774192739496754050825233888905140367251040201010304264522317486032413175335797721153245867738881058976199784297374814647591056074904755006005309586225883645316310867814982926395177442442436504397988627628687736763650609826291035014859781834972659202911376678623104040744997881585383629785804015713609743787868171395291822320924355463626714216043950828711707375106163519539851960728636459392775583200025171864680591338790757418060540344639746880715050475384019275328759558380096938995749294953448960170691932413050160634867918076550499199718143800704099188645461995868447721185203611830737297093248537568580672652240400305931205909143453456568535048400494328171933155067251659883900929642899956427850310531259546054647639650306671061737867459351368763830243913205655629839553231266548854650571228536360087500785316016038253834589657083650924522580354306335963601985987102783474815579210484932938810450849866462593196556273012639771953583033053445633638062876170982127134273759651705826872600695402444830099767575372323432369428697641769032541394160985229184243606882001897085312743314529551379047859613514957399643202301555240344518871634078553932981174831441676923637489443597590854454158478950644011688301106325117834229022139535620161810777890880122233956617104073073955695033548120344787145689895646418412025451332276330246389277772317961429891237753275095599013539722505335454104536000281059036598258133177445583066604298950902692079585677609367658933076271001672578449775243441797988241445580222358085568830110294084805292787512297850288956429608715003039321160197531689231798099980861202071260940309045362856427109262485408720619597430071378544399912172645791504007110870822857997606270001526438133159978328904799741829730409935406213225361040600954706424202290932831165573291389421689539477176101693208599849730561292191529639165371630567826314882813504146758865920763055365123103334120305899502300354747726310007831704047559252582578818623617094425338856180528773598629870500598486832215162583358535468701634613544833075535527719436897901563870771157740231781745934402662148736885125586613758723550736322439166861327271241942046930453251312322168092536783082634430010108750904861055336847829635491677532674215529287588410701901110333768293864504870627029435094747740504203013300651388371756152428409928778206153499691173753758017307134453502890193842722407381452015706716918708878808395774205748845890930409334637136867748628419555270917706315245893026452289827227116802263266807688457152990194395956907742428810904505773700667064801733545384962686990706090060267618655071753486701942370641314067032849756709890804924284758346978594839726221566968611098451179453188162452912314008464748091514382175163226651373854385357587866203570055678657121622969367788769545423219891211263020981733691533013382814391663103987467858876869322337326181042835322382815785005958282934632458509120512167812493337911889651068511902266369051550851168152395838742143409624646654887286464062727333231654379754162396636341113897636936559740975114010830765052346430350188354811711554069375902284340269721031408257341836831986159628552476185448433104546361645451437272114663407049314466350634853127461014884475657270156505990378988484683746326950347217158744298517061497274380072108612722419621113154864197637376302929859910354621534123696389641057434949568100158771232191301298907271030853759351819509896715865657524163538902320123232657063841205252295970053589167629156374080354340251548177483911910426720404222552493669468792704764554907120689711965789195386812698560153721663539570046013437184102418023302247605371264021163594603797980439240102936307560545959943466760514294758109530258879588537592150460009475300203587211997709782146007202172768064386180224769546866625139365674655978242646660513442023729983666217041160747692897048784928903908739292896892486054796598300020231401049898694437091551301710236074725810417162065175238019427157738244755955140036321993064095791892633220052549439878456275202770192337962470802330592668833280901221167679899685721317011462303373904329078759702299702752294807620253246588789377120501726362673573180914824578447317736382322511943922966611140830052540074667199055152960442969017558432348541249914101423475855449035382923992332781030892840782118664180587070237959857400486836107113023469753434645965135525325853538970285510447332435323933865967880021611629961152287148927496030660607108698316145547870359989429661970318656028358690614764214228673197725607728560622592613227830779247289025798894444813729864116943014731322377826762952606259123440418358644095100618896850922838339871535732966174343079705778836060370220515096498834342333031395835269963617492572228780282174105725749042663621936501841259213708452014003564376830736409267820387425965827056061868788512852954172899715538832971957535641048516612614215969656994117779116417399166970747767942719550048831707574789325421112874102498467462583184009726193706419579175115749923535071291083560672881074511896421802521698838734642784296044366008912798936274182481105595743991230295243865920975738679388135772233560296644150239461929561975676590247551184278806096952306559925683924247999910442787870447883035819421763773318016126164407345613127887446256472652592098997654847996593390000543680767130844162867808139641950825506633257476599355044162849099468526402706365643704576652516992485010892466786473605197561805944675673743805051180935742421390022287899028013203157281050793085933379341673788192305714889297953056970570961255019382534194631116201891073007472662716527292661590797672090306153462676298502464823150484517992204793236052503320087682378001625416036456597705776246181834103054813446101985316522077428021050456863903319476896298240395077234475030852967080039086309415216393668421335064833759076372689372175780320455825714949099316785036637775510764204818120194565272387009182477404841287019983323335457250285579927286128130611243128447507122061889241542825439674406997039743983360193114055241045737316612982846310548223261589381195151692548914385211986722998540958423384200451039699063269201412164807556964154391847512718274836904178155629202253485372371301855172293414361225799550577605689028590287069056257682478399104402798038332232889423250392724571226513385053352119494362218066020500094487590466490253609526101984480867365936407549923972250241276079991037507248702677673903475814627998689069387160801191922706809019340301334407448829969786277937239679598695685546381045023563428781307766816901851759561218294347877191854756515667620800288601293056731905599210925894379201454054961175585341003175066184356272103446839437411814532037625817936084458639642007889373266540031719601961288841944750697458108653197939110467814113410953859792052609218189643024122817648278216535000509924738362630759085729239300483533159573190910721860675003414395989358128234266325964990255773500051362618064956401558735404919016616931749934979971896596533562854775716316686385144833316111649598471968995904015251430704067906626546021214854546519404866069611160237307792319641269278856967654799983578609500350381057846043519913693982941138307016448616144705971125083801539206339316034234151098021568364879158925344094988230404244321747688342002129535198589801232010013469027907888069536728872667534011162685492381807958867110826333363426484105513628873336449706113190125392170190141236130277433330495797708018646447331352932915959045115584376617716699644789644525687717826604956240348258047311008337699931251020861181340968474555056974056742934285782101822313489059995264677450347788736560971191783904540533496151487573422054112470605348664237914218984882972457379706567024883986630072075326719724042969064574873120795563128581058721377126888556011710394621942382730509131786053868006292546976438306699723286697757276272074389999110088446936377506244740649566066597478226214125268532783603824437426558369912988208383213520157524356111681106189036849099934452094377028032556236200595504807958811777159799622503471769163489040182656512940982969515666780788376672709275025977330747032340332886501449917086475069431085405207806766965576138033574398638909314870202447209858832121047244748116449191850489799404670853686364989051283505150867996208849076112761971327685715940117560658866362823673558950757304613435006033229968708031851166867348879089493041869805790594749308320819161173277360749402945393130384355864845091006493446835611233348069095528935093410165946748541380379355296772921678560379573465238835981232779897899091725218239474379841079619672009872051049081631060100327458184023256923954318214590315939033635940119886121295683759531130389779420355516013869549497108685896825766610453780222568790758594573685925476127818524098993692797585602491059458710780369588508617709347925045296144269179069089165634103657105804159408927228416648594520516605086244925556355933157114525147357387255967492466702521290849436751775602711572590800563223889436378199923789366381745283130746839024081761649071828253838933804716045495281340883963895611792705920518703965274918439055902948647599380092915263421175361580735226638253220611836616068597658200398469586895709453871895550085444840293294508464394623829248987840250534765011643028469679117957898817348075963184593679444488390852630460006306114187769964873605908924640679164198310393327543020953557917224575234948131293144235883639656166637783891204106304508163822414183908332950404805091475002099827210638317358928373012387108969685671773278940541659727761258863845089182262904686010920376915218550917242674285077510631726561454564225707111226745037298085553236966902734446477597615696622386950021286376324080062796854049178676980324661271915174799978638309232845803338973104934004749574565535654083260065283376018315848449760398672467277273910999329737171125761562732361026300349085565938800390860778539326646278161235071307444336053372033657388503579699762555841251200459540126355135392514044196189942172705276301781689888370679589865748944319848450559438648837960256399532590602984794866813888028795682533644220288773357704541341153906918433691801011870988429036460422591204043894917084879058094510395412035620275888490243249906833444956465461736822742709059169076685130017120109310681258591360886815275644632916906709943640071681545965633149066527382781614610007540832299608095957011765765909917336874480277447734568421168489967776567238087275332154444991216850934702118441670174419488412673444436082874555215349999820476729682316422946841715461445700547403831931989573785065946637632322374788587719053579036442387214769401544782774810786129846108250213192556729967681497206311829127671995907633881404824497807121058271649866017521686975806907729506244231202710194558311132842064811259797129914057996449494382471598970700848877757697783474341660048333396347491282324239964618301053649476701036667269558634877801126247786024316161197239653999954722171036602762765229942483118954656674496072736492944742598508012994279145885753681298095805576695216398957779306196897732775909309330149592476472258325046993903237994994854358752697638193160910974710765594590040690700950172302006045050687801351486547705388103850785251457628098768449711818011012028331893333187396982467065609469679132839707863806653088943691509459930278706461538725195874813911872479736716568808739837438637963457969387436090605117833798109146719400927605003814933261588910582048004388908286224126243903675544729552222316244197946857009340359450086796382962026411833571205292701795047181874100358012863974354068515494060999068387367933472458107166420611021047977818741672909818912680491809607549386136133359983610075849596779569665146214038933741799901909509103793222598715681616260433080239635354407016775264852420121355012903625659789156795700608401377815033380672868638581057885921238073408990950815735575897279814945281285422170274486456145370368754187807101697065697764811531974118770679656117712566286745926522220235717907814477167825175979962775765043602952995007022169198531735699842375843610766761206249702720962306174113402447649743104279769454282368441814878378202494953047603164491788440633630634342704538830620112438933976727752562534380525463704116148257173710613702674194458381308038094976419934720722209299475963678495987059486848346157609645066468662676851042665862836211010158358032573726234036890845395219788112458925761364251095003535677509174820797164236059033245383829482322740065287710369661183049361985592046074279998959846784470438956575228157614677837764235818908575811092195916074745155498415168127092515786582872294670120058320551205697086938465547606459742989826875074916006689623186120194615265859695320709187141480041575839236271925537616612298873683341852351331445098752029561366958720550686910294167109038315057179239196966881619873806604700103071145692805728683053004171050978630130578959162077326829252886251887255213215217639932980692303206411714600103941537801612676243190044295203929209423827173522842854225537782246062789419754777042993920711463385157142260288764322249232397156210608150210582372216222750851718849723945861366496772922065389692247804946469660413079409894904044850136308694028376671094343721339938423116140299847892121130024230961814059653971182568224488479609761070817267933061357386130686980612281991996848310169769917321396173115504524728066649111239658994796595491256618185560955661647586976425050155413147928315052068847591202112290280439250850980965289170330003914664746464145860346905788680921565566488806015386822436140332348006408336770184691285227759982186544486755230715468636587819507117595382118508199282887869746765923452802449603272307860792522186982958808296082467765724674511225329608336625903112454978560308658180807513743221863183077003969140601285905810257159616249147439891689498948937681615486773413338088711882336108746243480651121167969243745824527486091622163962595070286569697451182911186736532896453063404358072851834836495498280044432280971172358344580004075987131135004823568504739575988865773756183592999640077445379904037677544431481237347872996428628758539307770365575880585057281269495055328916855911304064518486085847580367618311425086013525189851249342912543725832451637626121452223007775076730604360534960484092169882770164389055514972768600627146778259521816163084603150266393116874727128190438352980309951012239210425715304888939525195276543443323080821639056148239275556958757785833550382344827953137716515331496922163005662636685535669663759124350326743876402067640467293438779766343774329811988881670690161118514898906072272671854578818867474031985749440532344851378017381004967661718094503375587102932231380953785722380785740415645738610303316465811285977131545414789543188186572314822610383612233237401004604373928062042122160729574685885026553282258836653654288041100603778610908190792587085451537886834943049744130080766266194420150750671052274144412793625034350711672913525047257498207089455552722023439807123935863054413482198611187158224567354906982640705679373570190283821481683144893603225093682334873748411621157542349952666756072826915150888704662168797676265073499241040206145471533276760466403770350898103835685286470534849337850065254426320613693681702157677292593187820570606100555809268321360324908780581463446250226629718930912790843064785068175218151880360227855542395937008168394063712717561240414114174912959229430109351214853594927961399086448265610019365875736198200165373564547139618609396800865801631523762185884188734015212380363066758926304279359471184491739177055628423225506795118070660193332279880518873160065870429667051799865638370458822885413816232918170103944011995787493540243153167104442298825962246603116904835719724032787998739068639990940431541553467505950060215033973562588190141237431930904239736854019016366431731245486118503637048525834712906540151528532332631310418155252567072386097716167559750868268570366670478197508860216230251107008931575326922602490189317735309976542146337515700225125873823613527369524407233667763727578868897859234187565679630082229696695539178120559284546734448923405793076495718363946104265139330681528083698929806699258454697774233976381604449244211364802415081694865917100880429986418305939483381824043751357824036509364348355401958776300653007633263462558733918867611403312181722995518677304882286740697167408736372930724280854856424626592487678313540867316492836398892154020533854733787566873559310884524319233864832433706798775175038482902985994579279726642212108597021682186019858567219456805874880962561598337915368797267120594912681140223746991628133614921277826012777298665817983114960570075459528793070281913156431686597587002395534416492400975873005094377145764394511053803378721596111467153819143833985025059488050719107734171809407243425541400400056527610766510304709237277103605471794819552830956340778987100316824154779620140719785662783985345347003448470474262925042635132082914264150875518761550301363811403276214001328860805778142674862145824137019062132666383280640032568272038342807659628727431170648475712584441261471487905355479454148156840306041320063655407870519042554694307101068852725634302324603938178474843371958750752559755606645494760305151943097563091100066916926455247354279667511316062486180889341097893669954377316396921255713056659884533442192805503099666520993432248380375197063436437148448296865747055844317711143952167541642926462864957776506454371836214808342871620141756922010864887038779211277709007510750895058386158188877101227908789917182898568914031938160625433605308903340222738502024419552976535079872705727630506607672777991561826415517692857755824064384075094660246699142378395694119673071845884664205904611120211557152699882993920785225603484998813462940272227822025609094700481773798864569499684589369152987856427302307980849231520354888701393840481869537130835753727776136839929589263581258809680538611277729488822056916830950253909984866357402646180326268893792971555129396046824832810446376473026260418410224462572295405940693542211172591407037259777846129737811627644834039859153415660329041453565797104686042844975395830205187059908578558334432719851189124298594518286877346589321626300202927567580209583205598331243070006382896644811330584225318490771862979432665173159340311268171181632770754446817562655065596149064448463520179910700179496621530791200808679567784650158186204371692933447474683343279208754880326068497044874591902348612076537587734644096554920836206048154464850678166705740143449160071950829712479370399760443163416301834788948183106530004206669820376880377202581469324044090285139529994555106861749121307557556346891463320966917503547768811909199939696684599181465837489658799611308019442030437385403522411096677833187792181006304955608642849317693800158486423995215109850895069713954089978940505053753596121324067391771346173483410001682790960056793495960342406251487456725720924535305916763596601050510441109524781231066648570883047070443223306428455290567500944622955837140695050164167928037835988408969534522845763745917506160811914559640516294315511494431676299031420891056307100617874127342039319800070682225348522952744598514023140187253508731800219614697250599497821018060198164355843363300865901590477599331156072767432807023553919255306678883820383201436369924353410766329623018685441930336823992268873257509374372416828522272168991584881645014179885839938148676900005148186245687658790376726828690920351380720603168274371736110856108580041653145655319983228806955467487078161937142713240521219793549661533784715056786070467746639269585943190457570128866951283466538168107559385868795735432727206511124494315206006560728887925951673265133030679201320338267862592163137712646347156644273218802515158697810059682443609056474923278785585504231474433309418664310136566909857514903187067121959327794732386556727965114417169818657601182456071956952248621119351027028197875249410407259114404637828045942980168992096690014671686828609524659349357960741393642622809311159031433540620317494352277459425043235751045342120435376012251468438648994572918441411410494106766414818648916863879232334710794269868721153235223859630690338108398900549603807266461016868886924867315513835665750033099566300278576141394867015282361816873180782281036706930267085952405643496970069755716051766653996158294673323344348365839481324379712282033676196625548450906835895194463332815771624163495859311649583000117144076374786230941631285677199690420009520838436787567143619670686185204824738917480540844590140669473959530241798676253376301549280874185410480694788099139528949274147960958797926713570222962731537768508477780807325367775379324476566391544281086641544912822888491502742367968856302646124591907562269260522691240343632562238762579450627585626564638194337400333101776658159836648766650150206513839119741573174618270587527688328667966709773753508762730917405749525747222938673790056889330872753494526293413361250001683577453497146539713442365423444584392508061229759649953223868112351124197949516786216732479859256360316965779346035772459225508951099614940097502733773554374126755688466130381737993045617630641001030830660709135977620418877420507874563786054051152424479300373744195983190137065630735098250923598973882449235106417185491603033647791895550119608404858938144160039296619094569560897400585386414182701174812754146593341421910751443007536597264499499291391126372517113935495821846690903110293182676374808173804082307644956257096020703096985377934381098270276629090175565442766552707796609936366133583913334676463878903820183442900008667569974790611840425763042231862413048615110436182650432222173342712083693184939599804668943189773577392791802092773939246059113418361439084706682562769810290636442460675778019119467646290839344480643300202806657328939037441423408718804147245792584371645433525061986694761832032453421723086378918241425829322878107637064639973441025431301605858946325391056479848410989502721574807624807295693661557878582610661851294788416840592945169941611075260536479810274268341946900979124361807642205187759341201293666411144565227686604618977527652090511314422804199963111767945670217465735855299782565832690985460920076383141990994174008037332767887588488727066095984380642260473960597621232375765469475040436747195431693496697641022514678053385032449502562247886575160254670436025477383734944525531275507329349529967674766212172836395983554332369597100634616250227485394494739987345554484270491129913120581724642982936290739873838114933669823222620103081776045256857434599980778531574480584325406845328349497640835591499310778203337505670731318890198401176191154603841057069184396224165920806468882196930546497588905054766253375710118878838229497589392707658507441844230682474075185084906028229961356936438615232297660858661067055231480220413168420170063338614685616654179356817144691001927890587239993021100316194043016920464360421555001721080318784423862784665711195131234247588466270207058451650018388240076480074699966570963494676825304659985149348208037071239614279520603414145003964134791861067183007139685053614425184234447409951885262534534329950127268838796806166050876487621451166154519114452616970309537912249269123191699074598332490396454194470604768247644248921352719593189963036650071614890432505194630186800658937257369647602721336507670738464312606723762901937352650533675660022584957531196547951018980731907895873610715713133248672694430394895147744284235982899911449041722397018384489696711193743417457662938969394088280379633168573614883381923763197118303305149170824097566031003813749978806274762914654570037550398621819953994991295880997492769349320231793802761915311109173206384639750471728757501678977235731411055716100373509240791652743311904728592857832366084270982080899327976662343681552317446765618431229731678597202430473535881136081214218643458100084991413555100492174053765834435708753564023756082720969331794953734176185127668088371442558943628026579784119474674270821667583812220219409407708983483284541664384602458104751505625932918735225368933899367798778686780513310807109420659876426175360974319337926363163857937654867139701894529827996755386454118177078425046089079028001492580875848084563430651813788958658900934107046963633966681482356349714893057168591122677000647863088391991304715859273078647194644676962949694943868338682005035187182709660483562335269632177939112957753160123819474005037864908535404936268346612984582085253980565120245498618103256815192688749179769846611559372753496171517101398083179529317114117484839690368813968977737480782148287788350446839801186217782152104463273407478121346993247210061960713440863495187783103648533192317264637086025430493771446557397499182497015338063533430011444600257982270038110599223769210131238671124990810073341295940978599709511715338605801624972204623247425688781230656941244874669954903262335322739639732052666099351677740914228925054263044619057871261123029564581156779240968857359035158006147275427696238766043380413343564000223486885007810568782697721040329511093114736755893437341062334231012215628382521451368260711171521225869317330913991486484542393113015410296352002237047189214894904692375373463232571912433351134861236167071356361747643533286357704616306223311475629760226877043142861836390047764112034098979061538329987126915350381357508296910685481799981816321465595089832335069168498298304636025976331249547759647855435372762951930958759952186099055468181801544512127700686465516746798187050667816257137906959663926750970572848367115264586727475750406961428711991163120488876725932783584901348928226565117410272930419397964516190179338977982636680637424157674095722372953026692147975480031897735194713335617998641837517685333404804696353571051357330771750221344656667666122288615701630547656953292924124249454997793379840103267773837250476236469278436783414210081217309635237483660692004770560412782102676695116673727205330396236653325553667254414458662516399906342028515093903388891261433300894606501945609694726634555671692201156618690605053447969660850020159355376633435206745217180544032233924977370555400232779984732271312785690949655492164749536918416232183248900135160978895722412238123745495548130166914856779382261026414226901760698376135084416191396994879081377237093295188275318554291163265032402390885359756300073612210218474158101284757058486310058768056267516742916650125372703534732356537576140081361910713950595742867012252961276060719392888585652968553583861571653737382950429271274676799493598127272804545681819887461734963278157063568987249292549500254181525757395745363717115442106824683721704332197735045218512699393674097071570590805315495228135115578698601722537715401859150381145459666460857472766596937480066801807769288410017300069338196484064170073462763662331023721412765734836595533773973166699974080443554947783676677389997900584875505619331403089379144344059705860728649514663409038616804489654279209094177058832325443011664922774210581335255586597865556152992739992842136637160829924003104245259903436631700617964189443909276363762707146680737765913679925207897223671301163661131540698730467251008572989673321573406573702950608359878765115027974126158875510443743830036037525844785073522248742062868250023367256578685116346214661697084099121901398048839991185759326344800969007844546405006674463218249148136866542860060294309246503839021617588183050605848540887423429242994684233846578638341401016103716466363654070180063802951443433026757876740563836861215170880700325824941474932016004390657928211730613913378407092101375411577284000971021816440496069957744368797912231629498229704881555501813117992713126402621368694127925756437497747370129996890511321170426056457314603450008571693124611040900091827972553367622838026098151322587657326859182699177175820441685670987152364882617925787228365850388508292073819003286133193494561841362218906188553511374456033038555250662971889662466950364671435937091778058864324269351238037414471173256511239671393548255507192667306992161981755420879022897720021687516260831835449660661424263017620173903017605667650099115958982305934568222672750514375773888965323549240868351293813931746610858477389916727655505809112069832801012540954082478250165118445687441539941463629911358606059159822188505096526342967235531889136138089523943720637461540733353391432639727719530443125513990838692783426396677904572306516590876419978560394000411542347995491674541450832298690030161148048278886247219331429979352741367642560258444998349697692694204652280674015335360781426744419621278778921261594307593778311084358902148557238017900415520206307230295196209982528522185839515558736725971011319911638157851562022019336024458764092354984458851142413683504210644816747320292723271381936561956870559943358415587914856707097324259600403831797328300689298064482458381106126926302743456300843952040707997349890319543165281188472727745689783039764234969551952737117415180459145705615185312146715108071808370763403944689998926194582636858769021907710934126982488322059165276274620930315283907508948947736317086144524892084499428818800699628191695634606790455055605898307876298754138503149602793103148610484484198383364027893899039430863025988364417135428175351171772270572916861734866306878130101954565141379983850785611385771187710710669955587498038187905484252166516905356348611122376693932381274629806641237414128773574792194406624022142058973014466087315941017095033065825941040379339520146873246863358252021616786067251082196362659446461874831748524349839431358275957498856737076284637946785419320932910162374407499832893588766573037235882545405797095129745384776394529453738485391976051436314207119302494794207709359763937663864565360618659533933098160948009838627490129880382702512217685334401233227085923161298012189163339593317778060403830788946960020067268463621186868424487210069596222908508838258285346003232680623888236546716126270776708897026421365322274720355708526953217241518916088975700134168964241815110374289736072587506237975997711568413462975811017519036903477655885178620301444156520071566473443576337979139643919995979445586605785783301500227854934828510842996512797760553157344225354704039927576621005040580436695342033744972241161884107288415142232163085335800788152007964817285132391238698485406435046213479705673319105604351311767655526911167507894626539535090627982786509314698341822295925377286007088443104614483339315366913345909818768487507396985561123288912263699473862520620563674074984199739019383955252598292599410602191618057807489691377294194709343645487802940260318538970786753597683073655243590188127244784831636554375572034717840068648974697657828555499052293545241475925617888153428321131990513813051567758441329166316228635733977557588360704695860459518685357150291583527088120932232426430556922716631026789232378608881277391552049453293547598143304160498867088611753248345946716269150707825497831384940415333055327224020247189333191300637152685465781972578248299611388627846373047162605613543458320800050757738647118829685368377269475770755789339326214257169708823728996650637883586899436639853874974189329382096794016996626645071616212310739263468024894920899662532621774798043871829233339001104119128067281600742672712322273273784519273779413616500584441181835977634934484984865059416391516778479074892526004249066996929941631274191570042110673309965095248034530635397905495124900833961877954333392771043367975864394980976893670636290178016492096270977803088766411417619373148215438852766237054389274538373615307401297793592533432303500876392572209742461772858701600928361010137216113495960152000701965682955514317361171540945620116979201641492075362415989528756943643276716224093287105155738097101755594784627143343740288134131003128404023341698562760917059811497409318669939899428899831357272078096310545057831565629208342686204650884161697560671538015450126612719339507156897842404913481625152697495446840389901858531980945643846397936119994419740526653971814531699559896340801767370148557618300151345907210951641832012091270050907771455284052703661956354332002826895727710708695317768266776119323996269893925571876978844909643466363382588058689550550097280901420270294433439494970245570580545575246602484396468489475397343800126168662775113946088400481489436948783147709810101039197534893139833084863155622694997467748937681071297893847826151046148601833792208985025581784991113532617954129823456769407397911980501773791723010725433812819579917765229170620176555609312555464067219693851484360891985762650080534661933654193539514266463157664274655464664840195709247618736245545067291907525177356484666415615284368019624579417173297034297946704992992676471812600892119610404921546487526416830726658343772045357257804588179956372607079336486928185547438592770730984194545327925140357609173971432156711180677657835825310947935180377846065995527443256940702115543518545911753362914120416600874693342819732999901101504941978222689177105507096029629829169562989186401204134421807733335581532115271068332630205720837671788438981881915280078692365430479264775085735907440304172182568914983926553344679743930475532985537108669816174154242230509456531773045962790916405737796986724358765888692835448097522859776486217002171781423726543029870631747544366380182525213115382003459323732243778634394289670043684835788613682238518682557875082911596987843676882588185496398880595691502720271024193405285780343511040949143059961067842345214756049742502791416184781561781081454740891316384795435889478352576205737109203124954836594357556833445352787613971746097809689116361129787713308402357476147374270299972908823470933392389977484463414236664819617145441559626872480346780534484463847474433163554075949069218075445511622510362083901630933193015281407632158303198529525082029615287163993341717197452477548278722034619468087215275774748931379709903188102510173188490261002694114331674618942365883428890294400712642125812376083887864508940883284089241619593163388517932901211800506096092058123082021174324167917254376986355173787843479643783163384199747428432270513332305732753143061922581310682973754389593645769406849426398068099212509956129471430021530610653173775134538105002296396816224263366052926441935417977610481235069559509109929392473590486756011309935191745786421194500621897052690009907652454075793032514558464855686060541789505924090259281166177085703041043889386024899680171342220181520692667578851724552096144312236239575930588221846960012660555053482113444589148725701954097918551841667885805461644326186147884911886814258504135267405623630497915237950010546291828810106583515253408718368086480731807319940148527136363156771970261738426828980351536713116811323845677424396941962249138590489469720309298466550567924554736421609667924192548832061602853542557227405420767780533744797227758685833648722115961968970119933948782712630843184739412813788039093774672502792440105639014042607863713552997763173808629366353073515422103473826022101279391052842146990756949664633556766071545053595106676081452632829850435206209507595511531780762636889573830358095812101035992873081876051463221791088051361988655344271244152455589205356955884288948018858301601730035765599272676982838077137635160648405087362274205513031966041906617803158594132816740209029644411192434345913167741648687112913410281693373427038252269858509155576458247106922929268223471205260255357733523904615792798545979890135099424981095002754234725436308881481722871023546865249253346665722464682619040050597481405231686441164063409657212522793937360531038720024820326773129807707983752073247253950732007019065100758131907491267634219588853460922876431901698985189775399337849500316956378945174121742031765071297952401326114400330088265581853405650660558434744024128048635437933851244174550745342944876002527169252651981219559885845294703737186958643790973062340470302055037961367212305176151722645402221217174465743090818739992130808639812344866166834437277073948206041847023864969228636714904567100397278294305432746246697783878595159024431424381555736914704905029407042880390796630841307927640549401756007663096949884791559424652467785294087125295928860535933417870366565093411142203750605299767831877086721637710551997411151281709496336065447029616530918061264994721257775406379275321896505196244533636934651409440100729124217986003714766823957937057118152612105116328098983631730475334079434995410963651614810860203499491688444820713097753350243720044768436806437922525208494134196488396157243127731251932413496291843906321225067324276096901698224481300769086303819535349580096713270318320438402756806690157557466146110616735788730581434779658667229556843032475343902233567626054954322225360740362382065808783204527442513177379021508965186885844942330030455210253324602625485686327935348496514218525025017319133230434455916120500760804764867803684229337769587941067821473451437439004088458904873000681505579747502243250051270918420683380686384742321609699169715138742584178470706473280223287683092148615985569296318603822286543643157652376241350262240896783114560467723151332028504771218663773491680499759303374934381933731181426965047613064250650171492514514640161611039041040842481891090061165596206941217921888841629696972325550639988768763094236662994202773003444112674350728142400232392052077977317737145334880463364957214516152348095993164413660699353842049946554800863510224625909974396250746899601929172690848515820372385992581139189175270752332487002462265063951999025357077414693369018085553808909342556295242096167198121077645234915758889718549741971319672560079026595398556477096828071025672662210216353269090089105695480988471960901784960724858368380697883744906352525439764708463649940728805490238536888767662005029446309060060587304824770625783890941716635100756674549214403330411192787625908216252321096285165695411580471267958143828144070754433540088123464849989355883551923644274722505526003109649970207248971124587328624373429899984028406834615387288144707077997820266184876822181969002247746480873549189607354815903066934237020283052204003207571111683881580589854239016378117739060381843800846627923513412918878840037182401700948924575495453185408302765662606951015421985973293057724740593001696649154378782739008257165934194751192199375274281834069534154504566488851230348271178728129302595703322121554210634542343285590566003077046000350390570991958512502524459061728985512791125422370450982354690256772039163115240302733422233169140709503206733810755758820897497930543081752417643907058507758946585293011564304893975654068996634386109471318917088670069443792233942896936989292540989424696405969527809537699104003098460202241362741835822846257542768388652404031157846463338253862568412014524481985056705723492560075718470356736943045340629644921015492755214543156515786194858190525981558244840997122644086252737491431592470530691787968923208701197606894305978421913939497809953352927054773232941925887092725112146933085112596777509570686006201647518030732444070060821698755343382374369602882239729063932941128569511615329850478554767195314874502594579162219876809164894412508913179577042568650388782824771016409231514096511373742066883576822262912357577212818984263650008515647035442028100821126164912404163427696590794471540682479301318949308804006990006158751622398624055044505113711978184768073149072293365598701744659067613787660196746584934711661916569254606577056376309390648318041950765572692232003038381921420326785813494525433311326163244000636719805616950886644357776618492858021308259049715501672061562190459128667584281293429230860506959045401147005151270145457268011410095427757979487650059598176527726696343498540404210112662289825973636295630782068724388493640837453564827415597752957462073733320360533402956718402198594247531961530286498702703204936152547289803427726082877981066248421959160438971648366661047526670611247410993847023258299126838491390688255450242480780985430095204128378205603657804178634790755222755630652446147207977576605515301717784112921094783176291125038695950652973498927795343576304703863680497705172962495374771307981213267923545764088220231331101846707221723846576467895047732955161036598610991723308421104111719288145278672546897013518407268363006429956787703466752630991607729167256948217931624613184543103465327972158182492017843526209567457658051093756749912771129459631344562464737186257190003194211605561322084887022736342711091040322046038415954025269655148236859799788319736204480666451451060587980423553273496734519616737839712054532027989404333452138276430831502524434056110191509125695095663741910181084864130036715375913142575168378089851968419502174217507849736304847673319280264753050410057349517118712564911080604725812004764459376555240910638302460874514809039605607284016410519399530771317605734561936345834301297741115797268099491110610744421147304597036158435392962391889465465438908405334067221952356063530068435280466682322768051119388244534919636359888652938852030187688825896915630627969011145750509741137898321344602821023161404239132262528039565072224148811405922100866359138806518803151050365834359730089020891277106607176922523694155413890363147656009620386324431788336367857804172085659809090101037498656460545663824666043453015689955400695125057030084565502661830539738652324481576541165786803445761879448423002497679248788906928839478915772132542472735620904734760113703666374204695690116075944588484548845358565948731240095714422584847499490067961094010343766984176222584020457550059943501632795622253420382189538431510122527452906906800315459046579900270001642114473106450323959933476433509103332927896970649487913687480367587690079713547282876770606896247379947311373207226728443987949114815572609885356396416670914270632982455620931939933386284905398603395533665149312476270036548565127885633207681383039561860522157709616368038222396888026757439406337361107026809751653878792853104090165781308733552952204850946665665997519175999722842113326774234871648009251771995160372395819382789538581979834953184327515698055082780207864219740751573364289607537696752607593236540730073418730202231806354364826488397938514733967254390089051968549169269878220419248320895063289748384932120036427719362000902924100304396843657795700254512588975426528681916692995538845266992297584136774165006051048243161142353577009945390895936263883633330665174795906418241142683990503066995387836197301039494965070155059595859440329710225287461808633529245745752844842536662534380204274908887016923225108669720601750813847378575329221478269417041854957564504910881841914805929951111626676080472026193113525250226795472605125097217011935140091831615455544368094549419894790110140329559149961939715591132667875538779952911390715867267475855950650521906405976158075278401016465118951472464438640341947473767795535864932734910675171260138720260438559073224000032598076263580840286621226834194271547836327109133192425100883424265337667620955894725128465451999295635527110230855444511206546401663724963539757724840201038675525216738026441229938026695587326902789525140455644235672784617666887347732800384495506223460140000539219032637516291566120896373896697609876498640231788839737467382361172577950068997620763337694761559613876162407757551247919466031494829936871277357734933743212302533505415868470162574596814476351033932442427641606039730410805905872774257457024879104919356965312009127452880391101151242513775513679624529484976620101622810664742129906675975531868716809311697681507442575147592890421555964731529478046536630852627048234052467682571932534848458534345896220703511954059565374789044171992256207404999509568104386118833583755074783010458608666999806742457038216234765054751064977252666363375651016883647241210726676375559229611374640978217988434077668824995949255426239962572508482876611302025165929566690761892681308750508947837962632774648278044148133932393261251230587093096069154649496651144695476666257774226700277119682333823075068683433870572244938039113535334495565282198115420539210068575671363075749557183866873044847205337952175235819453419058843632380730527700410046716659312068846377805261582252775171587728274178045768988693099182099097492728742425129794128346608413448394185167922147839550849755187219206859727818679911036649812465731859061405036498266865989232360041201044528738803718834397200381724611182257845250826515225231819647986533440493989428167787803535263957298156241037797710017104958932112027213983556683308491205539526400024316235047951157439181239459163620115313278451962686883538119916489167067500628793995444853209235049590900316543429502675293372372935186758627859173822850765597737994166775685568681914864550307204852458408321938881387357230571694723218765284714552581601351886915792315311144279348791069289468244567602072222560081383425266843706247997914995273326952918525554534121272664099408696735232271388312257164034608827584504556357604670474969657842815034231560445772109316107229998875653478578937078386322940130996000625045495853314364111924819036960502640055237278753898977864671204064180126153086113298070659772447363871741214342988944131678554549164328458761717291957292976832965538484362746724345018587789987113188829663071072404562400545576159900463894367402952644943517793426993431527232721908838912922010979180100977046013107708669034654262679644333734155071359319951394209795816065308193850569036552533998894378992703036124743848661638055517090166066911695689813712787676175135979618049597191929978960397851574366810033384831841817683050632755397311356479505015892777918312725059491023859788854071980028347660118765558149366778679025234902095494208825787745971630985732037646500042413129373921379440125765529761328980152208316512366496329320055035797545844562063450527327736744328912863501621767254693063107534733363061848294834561555719693940910585318049118581578389581734979055750044470296503323746519058060804216184374860205980326165297998010446476916248313067093746136460906119875374210028271373228460475145095352685464820909151239404186471460794233692243072381193085342315012620680306672087698425750533335963588793115420378770683990286043593001588536445752753539715418778205363943000931523877541011354910106417978665525880584314262463855519653092050868608524569698066034623995142200218764827865837839293428518625433294038043465515145455064558051553580826682106352528181250708426575465495190087453947598927373853649911465951262772764057961746187344292669103356005906222007250290000281882584158933837962215026809100113303002230784718822642726155572722591103242940106659343306455248155209951111223978316073695095853393266677893515322116814525250945399029506835798438946590946071459840231520032839547382613830521141387738823431068819916979489805501197848621644083766403035069747727133179992847392259060458935992940354304914682537048687923526920220272265193345811724782924346273091926123966197802207666503457476826058218180236959300726643443867186515329424136077749632042984356170905746527478539271953574396532330268446095217959805952541823746528265897698483222119549530626367476560001412126627892209261582176989665966607937875375362971901284055607210556014333625156603209496043452852524856859442073542625293346188885746537014715282646738971241609911922428106044075297763605147954027804991907322088713049235531660288218882839301428808741699201264380275139266636955930627216345914755947817570926271688976523638275747208539098489006167565068978931208462677542559013103947171816741148735222146390079459042579659680928543772378488006835284601175704865784034685989866133598934585562766650797558801625732268924289577973756085073127633499662367093468568915788165392224990771486964832821119297506056578200104043673412014220215505696809140054331169557727766465865076543169937048430521623735028272849224906814412634726370830047488017826512422563940856942032671759481492907681510361687042561469677950664569445898418000246416131147422054551439472638880421855785075631707507206228132989285007322735829744772705923271623503532355651341156577188046509727311735570917805028506326333613225629532439505332807123570323702971421662436977152832579737504757669525875384457969671606233355659028334186647684491472758080081350376411192820379862657205806774141941184294279412235626149420823399440268414721455338557148725130857385712007262843190031670119093412278861274400083192266047536564982635123593542517235984008628019284897532900450075508234925891848811605273295734028795482833838779990483446440118861267295868853778482555020973892162127672588653139819607127601911985444425474399092504274997869540243358096973219855821630382024702275229874408571380292718759447504145376198354502850279543471959607766307674698190061900487719318582795451766255277401542788727674778177707009132008740814604187848336129972592640184211358686247012627463885717056189814030028970253755736371208133802526964378461965180863353322725748921198670065735637184007435901493024889739629104854567623682903256257408547275977265759167491440846950384333849904659906756265498622856799289905826653626666441964948272650763966769810716707190335139566707033305909683288008213575540276072142934776747013587132874073774559684316628056426552680917511688271938826637462936047752606691882048870010203485451302957135962541281253280361044760187211553932650425992629083729874289868033783956021679490510905051455512131269721690887654750532844998892093133890164167010496283535041701966984437452241391712323930363134394011857045326213183680936406512208120646453153351092768922580510146131445933465169759355363658702308403906240617271244431642384813255061499536871443511394113716416114604760837784980872289354309811448784956637607102916081295127818630354828947595982963910787000994445285495102772056583218331374330218973947583170358040072873470896200130170546501469601419216498123975918490058160093047728124140103928277459540131782737112454766486422452311360772205504779420189782438532295668686861369671961104680973658253909627878414736966516483406502932414119226891892432839548688699294159437920618096469286178911183327773138385340615603512063164705384256407856757092073996095517712544235119068512118364892707481156045135707137394750567096304378208090348028362649759480716016446237430851033365347717746515589029333592982174354357998294067121207241014540499765826372696455344719971174179180557491431794220476076401729212601156368542024267628286275962361712787437128495232923232368819798141929880593850028973462494406420572453168487767580974245546219639573012723437470062728585075112298291942926369224106210933010206702955818758423336483225820202137470558063236127835165049162328060882018401053558230799140723500721065790612089435057448871603382852722538164452517293036223726848514084318685936189549586864320903650357807024888922764856990260864093886875325949848969711137532045680513107412882508153564186501896921915884533395722150728877630219977393354382258631545518388561224346656941293451539639033593503112269046881252117137366455668797568919982118375576888326642045774503556331414971914536406543992962854448334919908193387841382548587370702715746732755111050548855357258758675740122312387169844107975384267373714354869871571329543085115533977023508284437815318424262788329232265782334880240005839029582711891921416366906513389404866774729684544399069469774417219167660417953360668942752880760580053553527892958536601347085343299409559319015765039488305206569145748861859228324251952109462920734613450965583104034623570517487373045933886388891110836165541789907959566915425338513865673057516084976015770963245337862164276870608392171617348179711176675753432638576893642625958299211029478324140622324103596610028199857402819903772299752485488308631859912242015748488417281636753523286521031733492828045092491327151131476971750607153716187228909092867213888573806529148306738475964426850487905034232485453923685534104782890250357903391873614234808974034182283247708091588128349580090429550697193238384895317717561029379867520492677868402471946621105363009780698762595787247574346484778358914046397855029054873643111466931949136615954576340780015854179732352115183228589504476951538047268916286492182373114260618510947041304476243701129459052551861267431915237467363076510624641038376167757447103342308869155134884717672131921924150863874832183552899791402036472638137779453493283759208960935891508050747394452048909715998925052715017155291276408823005208627254015461355085719554328290973539421330495529603458243756518917256506064859871250946012859064459160734488153604967249319402526385968114391922856327020093297820014555816026207018560263304107893732190020036552864690959429246006918297159417319672971178774149877040139871901929256908876688209542058034410990148574726506318120911339069953239728062292755679052166561765956798054717024614752581004807945294567753931259320019597486956925299377762828493917016593818392277842609442974763906252643160611053415288215615576122876590650374020019027615228705663058208041881902960622673825810080377795467702679610279868350861907324254168642831546397636795722970569967851093447657818972102921732244039209766502182839296556075877515505440227690453377822546920962044203704630143214728344646430366276999114362615084483681378054528380058572704126459156326296471946430721071436161251816144193746714814481727052054041211632525044151338307417221608695982344254053333084142673606212325662252521618815613619412615128417659107637570500974114706176892955855451479073261382433305346697538841972992800976047531388180834600239436500742478944660765137205073259663421198880117981732224343951164523316378919125715638700796601004938918856456681668658980605644618199280824424921928043862332452145319359915453990256541427318033524458271157155792335725363689917538437453582126873012314214197807820657332864936264058783338807180602539486198830164682691080573869686559433700910462600617618982552586072497133854646307811521730087398758165542671652538490300251185028711489405180471374782600922461889658531921772622980870298927475553034921514768027494270158044032086042381539149742049485540308177957306459393381107439979455834556767027243075253530821531225197471657127335774494619670377568948111496330184110104816607564584103161253909332544235779298340222492361331091262371872857394852360546157322795879537517462171070970698138458849455450727552725807631547301464502418189517355514202631646383305232483207165108970447278849818785107850725618465721592166319097197544886306516029934038801140630144766730887810755461562081842887372123693177009329609186584338392558201168521476720932272897454340661473406232320846704182573136188410977021235995142684579084049096293526994881956357316319178503911881912701951107204467331719912484146646700713003631993644959235244439126018016790384686169437479273093612365617896911969516427422819784475952212601356104587211697789271094817681866731006670145821612194599736524805553868449129042668039483963225463665079679563065563516765540723009428152375093060692675714068405413977328989805403959111961910284843595895145214565164321776075218873310138932553482846922235976169669657780675128971137891746253247949653906717937348456640554087771952416066993564753180877626506158386038751492244112623615918448343434237797212543158939294463239559121403273482060066775352385795339754555044913813596580084969533590811780360042572901971256044717984758624527934166521983688333017700077395225742506907632997395198975564902094532592576068012483667602317781936087683645264912461171824187860068542688657139348427958075432517871202345779932784100514160679784252764088998768190658606311552154359868255283034515009171378653821308844729891711086205542025440585176642741531511142827025646338725284419288711501473545771003783695751391204453628754705851579629650663918879432216591105387411414140804639114093227909972685424535885987951491100594703010664638989544976327957542705877059289102879914724596892439829206037993251169623529021740742892069486980932572747599812256652817117520259879450741242853037599231425172143381302346517948362210104036657481466537823478717332924731724027777183164376916128324384526288492415899477893588735834861650436732979001491739727267816364458775083806735258400764704723007707116774743307776231231711029183976340607183770464227774033428551811516010275199277846630682515888403107604256261208030470078455628706207102821622414246589447885275519223907249249531104191447617886466980671371254529033469446490240284901874476533458199900148750102744204153107248393888010209587122577473331493066208771767389302487067629656258528533325114713980086369591876923879787636981482723815504550560719446531433052141055639687091724035752311970592179502584331251662935681966568833931237532807256770764748759839188421981967390056232814524137775559132539071921028956722111580938212291151237141081117100186734478945063590578670116914186098282285815960791671267414199014613372939451937779992510233570994447970752555516380361127182221275781001900825275949569935329036192917832117394596173291335761171904979970552682052439328007054437548125570862876561014869497107259482108107661322906224664055146848323180214134356129712671324986864068458981714993808747304666939317097433938005210801948915053823457021178362950099511082422466973967392250807427732569834063909477886426033472653909503824635950865812908160078302204654667122914230531334717039404360126757935149092926159909631997171831602641589723296668559003488372917292594099954541632080199582047596612757844619270969157288702275601664271088500034727675207170067854476865453790192141480966795372556025707260411010776511192263598265895939399848442268945259507052694769116596602660831176761149562210446025610146980655280759706973668692804353292833507850551783851930708746602408426678067248914810755459572018144666641867571441452064122016945829355467099792349131101488163355060616002854016784997957037844106253162799746022698377557840420749104168661481135368895344576537135539584178441141847005080474699181798000211654895441553044865940934405407559422656764160534037254845613235509614908782819908620221079041834633989927404519778491932252463203068447551851298705898461356265429356087055961756457893094583379459086249809482160220510918046559981960816024343617759125814162019627403810371210195021171104321571485593912707035153305030055418360810800906868093498063781323823710417701048504553543691045074267033372818651620106090225646226830114507983850892219383409717969506654280383393361242919865407933492952645244868964026703256731180505198653902235765937907574162704306096969259871580586488001937445473663639829656820645885175557378819410888258118723021692051492912641746365448529801902586965722863501716859093125531548995631182070563031487463072540108214086097531894344229748466309973204235462781862634500253973327010202622804768729169487504965905142048103379330956473496693170738669907922477975952974402356156773009942154782655601154994069449784394977505694224981705741427663524648643015638295458067296680533289350274203747877751292741442082066190901342445232192855947695682605767772735866478199151258159995280985493368219793567345647594398608516493020691667951428751890343509026294763067763714677536795943472840568215476320447424266544538948890360264536282355497992933955308505352535894226683779046634248462793326255536043601353705583695320052867526310769546709790421815600363165888477954755556284907737872302987694471406099126426584011648278052606512662550297128708703830565149010103929749078897775545199367036991212274150208789913851731362155601375274942622879247132878375215188738107795003832490160915067556502767840190478278938242820014961345907618226407462004792936982626139134723858518849059327385852133324940106682229721720232287379612182799994012038075113787565867949838814121455836737938113046497620463579542175733651917643644887246612533145429868281535213993754963535843273786088655361138699697298122130269452054344983778882953136035896797070295070577200266055722627406259977170005300489895733922130872147625741229789835777807015490226479857714055728924253026744372458833367020488634285768473071008035269378252038727387413183014179813953746114574913148464397838803633156925691476402439807920304410271776489063664527012687683018179810601276000441170747967093923032743398355329725576272299969318166161125217687784009573371676384039804834950949183772098225252233965726714495172047142376040712562488459042213927929031656231336824442190923560283820288132842698924522077884862822958595349050525522791399286985771058813205862578855540734945932920132096468845540642907310772838711727108697830981595127121233773679790125353730080287103525316175000149567612076813556586483273426498216470633719543380591513067411483099547993461353711956354968410465836259206770666674186992120484934409197179828908432607848246226105748290555749749556097379495570100349341383027629863465603271014536241226288561619994653531641510630677023186489339020447088583574840797719369427729882858552293476721807490127961380891647327378329321010865787049073657847743259170116149501262600394870621397569213109812690492363483872393391385340154793392950045758244259705978856895999883533384396051455704172844606298584145630454065106159286563076195439247027090776197519533107838197358769726883885963839520974716990057078433826163004158258068992372975046405946490108599383093502011420702875744628541145478899812458436515408192683130123793145007737307151569076372000642555053040056529625481655639869049518168477527234550177191723676661770160124848871935672798375361259644008361089351792725036009425072146565001921007598302218546172318073699490774952626635808221842685155566955109141639390419047464566901528266070889979077192946758000283627428757874587783950309614893168961249986515287338193436574119547847667002471139854220524939262732016018735551313198345263388117740734963498285181161868618151440858080551468589235151379057409102314643753386320612079645317727927340027168114316637446254346017406922173730970545497860670148657654262809839836380406775854466320080601289743985285653793289492570424113993026482026460981753898788160428448268417596740783912133265153241997661616916354527911945427409266884167809221265589068466455663380862256735598632610840926852725816557289039819854799219273369834931964830475201974365781144064745551327360834056723684956914204884692470065807170498488248904344691390790820819883615728744536075960765203659187633250283914301158981629668190627627644800001726536760048456073983739789016032464978566635878963275288766446619660396642214402439434912884030567327934688997084030396222656026090856202104663491859988024019167552710635591236911755391594751622862220118265818539960329114644857600928613473051768433024776464092045821854497878079597718649984233717104722817117482619622046872807002419315357798326508003274880956721994706923008682136791152183692522887860289722015944369110608648240324918192042840392352491644889362447754247063171711929413348978676976327712438925827321411654523747669812160520464909844831050241213989246102074338069489374291479438250297360107483915199807082102084065054782696977500679580383001176812886659491953549235956330773128852063866445284616141492800936829197822096914437205655831106282167955803929445218642194582172385370955136951867976991746664181251782635206046203564937514201257425696934012284360662706121262618202388349245793347129146111242682742448922187747906344921737580861356844566293267282383199296652543454938623649282222366856587208614573315824718725400038190798365260910114082129362944208008905295442643617286419659795790200480206222171238329234481287683384694305549002627302700247427898208383593963346537350536453897958021740853156974178581623896801158230824515693892693181686188560644568861406635624876712007024311771171053212833720440976598454825856367610736713075801280156399356972836551712169406541845116072785534405108428021874741238110813989486566571711165007194338259319109539540352069396920586348147379839106452218501082618181380633230478891719940716782082059665142389015442373358431261260714939777990129121557152541602849343733371712458991980296168663706252413408976091599976982303110356753767658986311643606787604363104579817043444587225328347196053716154412247170273392682791908118868272810376546841104172889720466163399646697839785836249091346885637680263464991582259782944452240267592866062688081982458114364486573019797478681687408514740401580644820172927999231133702519314031805978278400448240628365128674585342069319491982193023469369103533609106912904238965235321243849299195605697288081436655970995333598374049253533837632977768901667198587262988103917313233994153676402589334473063906830908524096932739547735284572777297430530398894580062167766616803736069509034260804992086795963160040930562486576364666542817631933448755137424221663834305636130095966430599783584794198707525092478694337478430860588503617243756119434710371187037116903980733016735463518162960480187776347292527758174034775867721861814500748044135833020808146866049722115363335953687364369672001719350511472417459203374692532212009385334839496287058696762809007847819331379175875387220278464948727503615397908361202284022781150423657876542499077603052764193747556326611717003055642572695910685255663701073262005658005660946436597235210444476539789088534923828345809067798375653725999519201788985355637783373819438676413491518729446188732607995539281348738974135872668634642544539156017779046443045431646074966825124104989882034799226956753901121715200994613446277708139234344934433060829715521705993439433243415650910896950082237762368198644443865846569102447971150435225565753852159544944132414105834947497599030384774700431146855633898840702282438850852905615913740712072912099017388290541246828300934247261538552206286098259111095902432016622856028588149099939633432518246391349807250152610468244152367531078088952525970735570619848142711386075573711929802440303059557309166279900179546342142305187048955606440132156538546617694471855023974717402434002735931328008784183385732849453616223557219358515453302677734542055030846539031624384861051778081519203907930045911939339893757594185535934901693567396341949519906398629786600029743635083933092864517402216956117195637483245603857825477967404657507661096599001595291203710053037126251250321911857852791831078567474013195258372333494403700524006341820374363439561969177844447233721938118001919644234350332383610918142507347642172484822771759222108508103954159032749359355042778396586559826762424753342864871947468164623774292536852376630149777249558730703066060637674144512895911443465322742492745769115258604783942435612615439520988054660804331983107210352106441034671522551329002854845080326694552861092074231232156763673624614358512445761430609530327324823652534025413786891297715419455371532788621547355606976579501630463313174326458833443597244930166173378754057132642834554397331813091071749410074379818035444938957544287543363362517022522720494680520083457289351024227992548455777226581618434678034619593358618443921269737810734281286436197945714694482315147949751131090639678431538908995473216742919966358634562506466766624102011076346451245140676584040636068486737340653745155457837558258917260893078874006832722639629507530080042678793244563683184651529824911426624893402523874669199368729282693632849309095909191864118076737811395755240872435077529045491983145557426724227531753023816715023874392870550038872310223879948517702357581534061657644460723868904484374497533583486728337352384138739973932984586719300165854417049288338557520672932423137079396288907961972934092094392673841143251034873490094923232342944453188233066224695216967338717213401277056609819576419418054858809968623591807786876228149593244693149366443304609684157994848970371780176545952758318042731028265286067374795706538399427190687288333867538207271398459991577527208980336744358977628925125793836498829208682510630923963661543421950915276035755963919759472755598427851289587923512694747665621466503749800148553132318831625574032733461382644167623082229578987046367565583671109324430268044062526111036317548837375384564402962842464941967913239469063842478633715300138834253108472030856411970480136489405173199733420773240329766857188983668698570722833997514699989010489295790088453157810268128026843555967613870543710994735123991680438549133420907523230815775914894601305003620085311003574679706855949920679236633242584618109093214029929766025390337779079836611030449165687307304183105999356105636854512348648614276398247144146774012498610671556236334755990360074930551139537978313244130018056526959298943792338582464009260994398570236446595705855931936029682905197038129211420485438921486981922664862353853937134585309710260806805310824278261399854230725763765485887680802285492835659963646183879276271425879775236931696277501506159139633631194873343776198672042808329087281644868016674392006531098464232889500502681129290482528900195984237349548290086992658340193721025379212968036833754930007509024002055158218732267336757195241821566463500691798930015409689008704974847167338040510843460444826051901061750514017725843024056192500941922687127474638096031243322134181801644788429106075206711380444581531034464427652425236247570230367936592854658066270963319814122843393717098530354681520380654510991449333819895705591097315054085758720748653672222114094715099991540063698404931507786503787130491929679646870545026225535193092664553910644027739125724312028414680440360650747182691881003272295987143175085828460031363507541852968935685276554559671535427625398009786980636134978556513394618276007968968364739751827901191483224263499928417823081177397610342563563042914705672648164828007928290724248207936550490298244876840111890201217591329232020866547875558255898029190786082684853509110946013539322123705309477251459648862723869241051187421013515407571960790242839401218051040603604264043836693685795274915984729735667936248752627026177901628923219155169987934749539731365469414725571317489438790623670652779992671314809047889567264436836802001709207102049783581106171123107786877282130260808075289777416330651197982118379485015158926523142716479197727974967588427949605788479745465038296160437000032732996490868158137349341079683630789667999662967702695983443250056027963067662991086003636240510403155980765952238844844588667728132505543054743792012032694658983332193490879721886463128143492186775212248112059073795574804488533896124903176943459357229401145228449653369064850497407025384137984812662300980803880154753436259139886428595042017487390144543041557772301226573641192332047672248663033699085572893008990598718277960542545538750276564683397832995576041048598149124618915363452205881064709515045187218693861512804630976009227451300449111590048162737031095865051582251796351634130942683027135869561634214755755982631075137616708452614756978236331033648131168353447989904741833900431810231772924446341799400051496778904495661056620450901593300889897516970123840144375261848387105396987526662812387031056444144807434334055212881083974144795122088962970609713806219935595962242313676562775470825211864363521141567440961105710418557267601731879610501520593978898701298055617528595635088058515205090852636154814297475612774817806264255972152238114178776270899340392287317569499060208861909578944385531816115588894055674227792090459367232537642980833447926479738099817557802709426676107491311071059996452467105781462321653329351895320032950660605906045443201611989017432443071660420085657081333696172166812964981861198699060193472742590459096389381028174633057504340664284452486284733432038230877795656590537115771589496580827204634144065754456294961824738461677488285121031530176417188319907896451776391736110333299187137567044798877882874725748416193481281678699613270300926940781960770767319436649895104171024843204580466904621621721803048397224781158238076670480739224214465954049531350076947406304932001318248216506889745722502357588328488009080726185599912774284956867350082397243886807953611573357355579122016511738405758726555556097279731122634128302764445031693815874666840117061976652593171947533673920934285262164814452036657697002457560648939582497502991948285496403208046476902836638847747126435242208164150322876642807204789869307737642626591849031642300392869747910460977799976241260996670044737285492731188593330459951644269996390248687806056860217736604041710528269746740738154459939415874598395179430954087002617670152474297215118458266204623765395288495296768302404137878297521476289199187754872883672079583731409021706785196897619953032865693581094237359435107545787653434196556016328947097186455531810116970333281860982146394486624974237498429225495311647247650923644140850857393794282393292761849929987479408636550648136274996162710802956066948586946860551207816258059388038705087618192960873269010959841471981322684248246676513499458177872927796211698618449968544634463441501104761335560457993340466540127069883585259500605457472150425148897029040522241754247277694661826017464337724173823772910405529829994719191764769375198978065308412409706801041912738505323890001358986008956133538361577551871211576837482399644721516640831250395863743505342979882215976205576632681852112793760081662823718557178887495280481127790210778584951000530999599189645304795734299920763502340537570754909728047498753616273524181117833135622673848935619633018815541954044217398181267018896350411745922542724500215632610673628143114121218535409461485164930648363464224341993364840405880749513274932736177507093950413217043637154824590648044415440091443759228912673271880523090672439813441869001668694200443290448022177372663202893830830394823963794908108820391411527466917488029675092874030515844134427531617067562317543047758852955713230959914136809636688379251391718610206864717100420947480814888781924070203838378870530006458956328121188448917050449716828598054269888047733340614487612611434701388344166841671011385345345615666045478340761569181887093772272949093076083405409887115561369927365463062293864706329128859501292163805065104661271709668875950105366132848023719452595577114106514848758239384903840958747955493486381868574213165083258984143206430279227551683102910383290049010080367108621988879804703379481055773238547379916422074820983568979594876680819098769301030341289951842263433287666203367468571485736987856392053152970019239539147666526634856721616420562271621626371059370637910325914738981035783607299138501862537029102495063418220901650676982753234642700452061551296155056544603517394027218593011123465379367622597013118532862629400191769247804182365248923664623060318030489216478719211637682454492644923419906840014487740502911670605955674794625731384409021691461195544096853337064743791627713444298717511984378266177704798328594920256285000562831644345034690501824022747722130278949979376927262715713575480415185800700268824652150630805621468195758668289017963264174517529934122030090050780821055732841442508046253103138356756550476660456596821601368567886877774835132261797492206053095931568219220676008273902969974186829019740773914652773238429191674179153303246195799693813308746536063574206281556522230848028132326646942333235686248553829507847319142292457758171230497103266249367747231241133418404372546065246599938566028559009101103253897708558901079920631624524200667495069426521852971640223268561866261594629205836716044361147810663704167950074534202478108909631909457012862954015181415107118366199104829604667475921505819397734509088238876492444511082466765544521568408623202409531514869619195658462567618415532664798475225838927771763330779194889653833750603625147796205259813733974955670888293363971322812747882464237908595970945168206547955775516670155507323131649632873018367613135051029088593752566331995902594225169483968326961073949925366279236480692647969363558802510607000205683736944150852316942316159111535379999984574972343918018319939861217880876856166929827574580851774889373176279977341518628871416060764170847303212527570404116478269862265730794374094915970088822861567597674656975457237626550362186330555410409696498069941553547108585110907468587747243235543406874419438707695377521056403075394391960771244236392897622568742580963749183811062169146014477435337450176112995079472630332654471456460148339627149317159609326741010985849702803233054886304930821590386845419759408856286814059287914432902869323278069520209072815916859451996091891647035854207476419453832882521110618235788471321022363104647227769054730332655720472185040482000304567667934435366471742592942387952926201547374953458539239227605570812385951347889075942150379810901256852119641049695953500318538910981302237246378968428101976098895548003445547513169355800275580606278233522745312084557963245769336745396469141301385914070109913538383464973299444287730233829392269577082560158574747733588884147464742156036144726685437009120840601112678805295923777687668291626754525382280954894267111504336163522409126641864059483006588270915739569170545371372565019421393439168217464726976025002507206592275989144434148012993743643711471778916553135893973896970802718902779128316461649880682911127746240503194551498214431801726153405954426030996301204683020032417322833214459914927755323000406482478633057474989861048015396622839215225407734666427880238693094984755088814604775023044486903001466540273001052560192044405761417934102334228408144535384860289840615291190589342919861100856586616434645754367680918577812284179083041200159475099314133591258147821598468826484397202259117590060873442928863673558001498669661673386001392169525460415628251334897564519778272720317126219385041231975968069480111165301419795488512981015769779115362792057428560667636295151087609139917105005106251193831786904504527987490526088436149414819581983280028393172815831270209090013619066202631558104403735774748736660326896325978019792038395012891648977083457505439588720760818287812293865521517861914828804434451806781583251869412548512270760718225914127486948145392050573885437736283054205663653688125338866623009536273798465429158230553211160966159049939301349848110046483852746606056427391598247872332649596838100042105613823947668268380633624362827725873639124234401688901535749378571419948589869138311075810624753507674060119402865744726512996287656205490488471747402499848117274737067745171442800123421433254708936130678413975029010183728477223298114409685085566985602968795169244466327247513385761748382499751252529790140004492378649297510794828474596617590516531507434184063140247573854759664458502933514688237129375948648735940929051994734313079879857295095123054351313878264805569712287614450499673788564466634068484722997025304985428879150420893861886876482930783102069825539729248230234766218008790181906760685051522950911832643499344745313392863171080610932850323204822420195630523730052542195702121906671881524937967237497401116114830508501018338006958232203867870923562675533654340979635643728773643844019151945942072450894080831183892441957960682450431847701302108872224279224547665172538068676868288796284867115409007891929476562380667025233351253183591476945035956279547891839572298514291587944572196476590232716566473651942212353356046754659502256482710831921816184507661579485271828566202491713065846596666483070360901088434579079224140328434315771953953154744247269323156877462301200182147991901431062023393283850906947745359875363993159662191916557068601404708088168734577700298330984340868532491497167547926987934470688226922092387250997893981181634088012446598272840050539697354960829037941499802278400184183346597474765746605879783722857337243970238222040223722070741572663875360328423148449481792466921775459117418857424185861698447079878325420872327541656832613933134923285171420459814837529752074210287909530755093382956870664393286357092650688371323021604170393189195645738482253303444980526453141882288086125137672787703304561141975353335663336674070776927479005698396170405959134426102780664219254292084536761953519949456369516321441254817147453418937174566614450564414128951085304715353453528739388608941463773012967005103040386057352316039932337284370464629050846329473676333497317487241000895418439082787896687469524189605825997179086280206903672162251443985022903016414495532880435796171170146486359889799881743233112263241003096378256312515163797869265786701839906025323077342852437642217452845824871036281633038885222555295636526375503862378650986610575605567656473115434104557403668452841269409301065358201096563284119627137358044445424387252719802069711615688593682684198031607546319378358008805556219141361218301302541246935047951897859361412936942822266009288662476711141970671118781151272856044850440943352720594573278803972874473435212551132247370545253386073310271908632974554626038731460420818643252706868254299348340298626282165266925222665004912058942067296164506611789136560267482154841904645063098020184806383280692660270012129297905195700228687216080669424203364256775303810524923189597699561967045251878546535889393183467677478467539749102088849603281162696715890490740235673457260590163426910607865128959699311902832891953399051924845470470615432725808541668371804157185716440512579263353719954521372458072660522148112274685008022512212777430599546099018010333600392556588599550283282689689578494159300623848786890988045677915637680479264913364405445014271525064330178168454478366649380858707414256166454534253309773442044614373004068780662507699028736876964868232213539668063537033888446848919330041690324815503988987816474046552963964023015237411489982033465532123655390771507586045423373132832580872322470026306032335736139688509014902238845000501391493144847248151229484730166144419937073119926255592321023121433977662512227455686803422595677269870290407473895645312432219238516913821106835823575702373239687590205092497855449778473538039632855409254954808097107273175683837923706353025034070933633770919568955912077912459445324407112683963327081407736969315484794828299095879536652599389357890418805562864848732239142042161216228829162407321971442139324126193977114991383812705511107658939943832611987953878914034778040288136814420798915833459110736581694587698101486199084663856864367034931527380673444717558417987953735817058772443180341778502855612696433353243830291534400110284830222127616193108253514373852722039372103870287020983133669133203633065668648949645333349564059424601024953803377141604066805059280032702921293327529125401606398087172725415921337803355772961965757545522557446144757827697869006886029334631185698169743264675468329591610178944194623713901854189467842470962110109335865026773530685855090586788371940198067907008066765003524290474159305918291961493326566364281012342880325409608785629872567472986275853489589998316323667159962394533956783092459597475488229888898081896656596862575409485463999375629672888724017450219889400839647678502019310944174624458124677214698648281759540287043981352163134186677809771547747495082141001933594173847863167675575885443132596532592467689979918777756798810846733579834897219164863659469961132593470355382746882140440027244015273001209298374886326151345095186068245291705464610791417381088195195790124469140472348171664752611681364959403923074610349742342161089111357005331505716909906325248060970944961742067850705376880527850124482356400876239433642024445896699373542233131815034171968125031390105700236576736685301144194979737552320366625347955236583604637787637744498467183847003446536541060647160606711646285020532242167588267628015562858358837172204923693072718998945171675609834452278820934431576354391569815793799742751678988566861345750807289908858181800576808262138261961764146143744094189208223988601606165345195825996567325541229250779357756124598892833852307721956093176579790464300664921206532171080389820702271832359599980275548761329333379971791634251805762645617456723601673485799939960748470336046591073512150704129202195096708761811881482342278636811139101156272616468191075941536825354683484136574234762915305442497041385127500224721826444671846680682113951727170352848551676791761399794733165047563523302276419068100877533251124762249795062025829508912892430698493567294243895176470718587531641220889990808444266335132311030238843215040396542109124159014819200428731374803179359386008122464349508166043932562379336886327958917240314371642382966609818606381227565787755082567177346775707541208708409328194746785069293586731748575154918306233973885249575944051163348843835164236720447916273057508510794409326780235851188760617357762109559146914634692455076801569187588275505365655844375788044338586737498140414976259667456172082310011142608834674368668124207273680313554053107870357276538121380564778749176864813015992790057106756196514273762246907712379482640067502282734773251291076521041802266938182747024665206752646974590969764580465567116306844245105657931658243878185595181889680232157557842228011662333715528234886146501388157299169707168054392634921424344311116475433549889194412112680714548210244142286073594591274455819598823024536950972410425897232925783004740871214932630585368778565902516829172878608663087309944767488715788401214630990574170390473317090774919148425722707899352341571767002664163598409604544885737058517471933365474622070025852332789930918872008012024140445071965260037766242277844829201471503728429094888589021122211972364746845877528234642106444469389107052603528224827713542762383531325572378438411835481014021281179482450102384249128823819347443933581891472147758387182322427015247006517855460101255887445766043277146754764168437987862449601364045538641147529331072698126228496126106148231750309889904414534502145817332698203918578021991778425750861190568989987003806574601358818983837008632775938425419058281384580138211582491563835248411236748279775460209412436197032391990777719577630931199498223131239908571127199050498558468146252353454106205155622685649808900832773257033894982940383220375283724012822534068935444696054610471136650896365798628333576324436840866511349342520252085203877922449148473764766166673760974913215980841824382360653375993290493790118012411560427535311078752230175165717629443587732190237079933818674495146718828906882551714627831128352745686544892512869115536607319963404046839807406945119988705248899064130656586841355536616234226397554249815548832519364671302067684941404084384373360093769966757155305961631357527247869237255862755795322027416664573940817335962397296962853412799671479685191591750266100160795467244805293380933268631383451405581384138133594613919897695351979709782807760635114121079443493312201888490121051938396505795848892840898760939305592449540659138863816689261753069648897640718037053032762486360003269749855648541310350556120843335367653593780280544634595548428880698810453507240566064634638322990830615709691878022157439980065124755331770330839726044714703022086582761100858406857120884919534310787738462140490259482665131503618918127638246272290614063849833664850422994126704888452171247058817013406298918293748139561638627667963780288474116673351627744391667389330948520261280657243823218885956229168278889997370023686145967604901814767416570970498122960747997483313344205424453983230748377759510745778692335712744713155428469920044849356778033465283448834834296373177195587144240825084431122619979755362512307501611328899607721827114817965898924436667899934866688839688488736639761629821162772568756588628770602741561981114444933327754769853980546028314211250634682434469960337829386376954721708573406085903429665512181711321135279939842735462044069608359661672842171127812549071723052949085878279087250492589328920920291992842957686911724050564604452678244427419459462313449309662205714325246975768782101590516901036906164203184502397514610754225128385091919399152782438632580632037949875386128704850478789474616565759327178297058999459267082289371252495812205895509185055424767320320178846754323952724345504847737492482685302113842637958730502150098942674436498596239601664323911528983615238202555213196934844660653213226213698511261451706038831537667838956803071164819535690866513083407802337707795127853808438372281526087793946019093255514608287462569235627114344548163307053148085463226117697280019535620666872410559368052253225641894513194102723940492220948103587525159633497530691192531291291623846554014322893825458815661669693634888616489618715029008440948043136324065142852935533633512235209271060754754297361738478477335203739606156632615084909719883524538016310676811772612561237176532446238517877426322441308050770528542580099090805903442576424839830030210175828214141998570356117976241983033398999916037861248057309865206019327842098904050821575192327089669691489205198982371237028990126565223649704054097487027925951519681571149654910731390895458920991373473635680651737496531044531434014206180501093778133560304542497484798483051709381737133883699522093988133142422536890186799652345881240659137433447329075064530557532128672388626402360536606961781400420924820325571875136207614277420145025915647411039310865132123937667330606523258228857875866542790575433988529529562526564043674031741372068810793576238432305548571433645002700676084660441128262381104617806577670938509342350480175291572730114984652928432245275869656673333183620019098553832540906297505001076922491117308944310009240851165552094934230911831363646973480049169600826965060310715066312466837643761241334660009020556069436424319496381009262206589610889005854028949518136677638771384139496962405630129830241930651879661372261457670398744751574450205162477647428686919139236528376013405887404925269141812967839513615709658157411565224076081914192472058866129901182481409334235455103585533775191569869703953031742560206377684159980068977740720585841563568047524490323688702776698455282096134537804574485912904514313084256959773071430138973787314757416535258211795933390863248276799647225982608414676085720235620528341305322263306991841970364025782463589624546505237471325833359945978425132733436880661113636409855772264988723466382541545542096222100877929296083785092754225558978503062859055650345864933356061861965370638706371431810392345043358910832907965854604902743989565275345264719882984460199977159625396346340339913656588667719801338983448860475271162137303904807808753202297508959410506257881833150064308897974537657515099254389999296973007213344036747875301962719503069081723658819738863063696414829294016528841124741377079652461283904337262982144630193699440718084322843061093419787661272927697212820055483619704148191441446070285912420868677518298785441827857384179638100632083554673853606962880928419361120420332214892898542115038360449636993270375911711977557665269911723134880679317397017697059843608403623842728301198695410027991070222261101377256664040559756664983638722577342744568392255813426994934596217126477405254138325723157590825184014306173635112017730904095828960827767581808468040681477340314519639691383757761991114192552463601624063082835398693969401600205157030992149932281689113731598595456581950866182126277248172491300011635894637447086211472198722832556396400456814388199974755335947486235680538020211444206324411307215806701420282404814955269961204027551038035572800801750146839324535735766587678720333730943683383574599086849621450591103919770282104836910163742389304200953048527776784063433633815323477587631921361582595689843124873146446621159564535352024388959625630517773502584857895487875796230444694164450126249057991394532836910878963518479356147143391673437501547131093649435396640082892178993444079580647267625825483206970749083025563304503810010569307421243761370368775279012644349267231489872252843160013894606261969278604996713436905431850008772512407299878155192849623044611036379491352479683634871335396277631378622157846439296636800420569628943669898169503159121622112606218951758742616294040784644152805514188337962085501138348603784772088933593165579183902350190380715648522411197493907258776919403590345955841392101114408762534282740636758014027832498207694788272631899674295289814946061439628717860685960060657942226106554737923682914231910698680204548167528772235570375507892571318554755389725725835445833022362709222736070036636268125237939206082780949925120314860249703666625408187653862791898963323643045866922714957892903771112226774302293565029907304561187944027454896437808280096120238239585871878942253080183925587457989333613892389132843592003859978474639988891988931754482383902025058091324857583324043084599877130918884714028176513734928182698462978482199074306824464065673815777337689955050169175975369539244749559800184252966655317472225989993353105611464157982695686992322705154849886614369253285577669399387990245324714847856205586979941386252739852554584271476416237557864669129881249128466915810490625106233730454865613976965328464780851955810612870620285582090690504524722003280796246288063607911595027165638895483059022066613725105430652094393920890813567005813808572383148001587125830154030214521729022605911985472616402268265694671429878024700786555945565509228141553148901006559649817462919924669889156310858772441375822540008098422610913035192565228161352222498515947014252187298359910042003118588147552055046701557043185497232758750423664891111323618780912121648263853199151845997230142581270584346495482671870151859964788259400815519941776600774127386071826088265771363956000689908950702480667915744724889648491857913142724385882537140722207253851552118751197864864295517287154202650608394445251038905462258578069932217781427702883021634712102620647725229416592115606471132298289802017084614307804394343064000264567900735374891152244645389910537674241202714216985801405484379622857427407667106444740410045867010706045373654131977845549354177868103948343268923405641452299242594123232823975394692464610354578362574630582369501640159357309887469420689973424839486391489698376168877467953677087454118086465081262316840501375127766032095750784156995829955540131206058996439768921139612569249175518385522476259655527839679091463943471908554739373343012977362763794683152228995301973709808036987685230703800036271520158527096542505968267526178690856577111047079624712938087698324179143308948003358228548310954274460769326548749316362354972950057619676033073390185329122524524397239952729813009258650538710386878580240219065518533721561696522926036915441312139535191831648548922537887010913212465431565281349663702994933346569231706546026015967585113191356198442237641570139000457390873454939724136561283110248835342561422965833046576378752780887654720449708275903422898909114447962494936656804237252670191029151213894874649934713130253982340193436896481963855075471806495650528241917556528210885390366601873008892218982842371938035182265121644710176221574441228975458977977789771224808105662714533169852688827296801770824239327286722360063341370976802768093088098901561429021164157617470888227008085937287112529790659527103876433021098119590645677865757286282086313432429910524836265708526035025120950867547910445061242735235642225648278652583250494755970493585473033384864511634894163500609374909981585949805430372910130577347890563076391816215431685934822155076919579619408454771179051954531846959217173058383011887083340704070549659940318056603019410317771185022999316782744171422723534285168642908649119864778059681190518135393832799065299703790216618407800465252028971337945871163917644704201977251260527786685356883557158971008318661853949790175810681213686932508322343240453675528869343709379094571242158803767527888435928238138550480197396348350326390333409469423554287853859012742246817060352473483228628378095924093079104839720883143981049972010232202770531746549702288691031956715801674908713961091682192540215618429813893772412218841224543001719109276304164196028977709790234037572928563258989190986918218522155485217274265432403821975920060849779993048291525924648541044965404075276205803458866950176801780416023232355253192609901011788607037270430117607472430017543083114462486363743472539744213260467980106283470624796916025358849001726603798944266612051209885000906153445449376612364334923673598765509058284871312589676115337631787134482229239349663345582803266284488077952858320629912566218439966685104936975798088277317642879436129814225008700166786448559847045034455464643850368319411898503796687354860239519741261917289400707457483335809392583556960534067017479157170609754358011024794035375042053676394569555374508983178304127892968711305943689270269401266257480342891661395011174754911536703081209642713051499625119943883276490821656671237749235511791797859431276615763323631749756467757792602076528660066203096463223251129886992980041336173513032436608876894342280268166602163357021041686965905073082775542767899344909162282609993209760543638101378211554081932311982897095700638429303674611901322911827390854011242127026666183675507553777282045748728832222855032342629782097639219757200117075649126192701434532417863661750531734307939386754356122619215679279266300758547653224866279460101426248610986365211055289726846532687021801928278647761404985988418825494698776553361236447797349009069752178576855538561229490609554179034795238262655145647631815460661044459641201040015220289579459819222763204730286650858872306231954472929868560205951549792112404565380706122447722462074098888202316750405065697908669302282963324464526313822790707921809446755024929236502678236647424854114516735957335671472154510793938598547961398264698374634835432721744238111151092569893674294449266021501131920976525318418978023279071018587993042566179335819533625721109967676129504460964902579444709034451797475588661582542693409485020947974108734391012262203124877680779022065554148835364493138875754414897675010637959038049258240636965642729550654649896032348016325030063449577429674672429060585895425147969442210634611659549863116306207838324228841394549246867090822810809713675445892872570519062288456541800446661439314904310188549625271787294248440869599593284831356659665736458037387311907885278749401451032205139736108557257434750972632372460644706915973041437348685652247692404034401650079951623973021922950604661694851508808465471982070989676679126959411121327705154858271023161028399042638204158843337457170195974747700838639427309945782647403145638860244023774497372205134287187092230122389581113402081903783444874044389210324281246434838494520821530787467182673364006403087422313876366931641414139157146879752607923661893998364709068225111499352815608523588612199878448968121655587436742819976133632109387338610577598605233042685783239945263128560154640148024814205268166162675222885091430856193973645393437375615046301530375192983520488913687478204335071217373151114723531233098277461991897120750911656150324276260652075678644202152682090572522209012649709134364285683105884728524467635014125387523726559506243608456041289187009743886369668581723682367924403892992953024136556702405742945395641587651185058031664416276334154064869487363928430426130982759500121753287329492863044718594582874409948997517716555580062886038254680597675591888726579239419586534572414138730877852833771953400366616694422059099744413051703204460707106777576118195286015120508488164129611085697905906071913607858178335927704660556466156786006640744447221299876492618679073876136854166414872283552103846559783602079818717220748955906777847130101754942039533698501394395847503288828134301514228029306931864043242503772887079269930057491805323545258513566812591304586977299430868761670807107011109532860164723767397725723223338572246842457501762586547185064221960647665925235861031479696823845837372014911444022820497135922555218072350393549178524915532351358451694076017098009472045708272400579710222501812399022547703132382368027206533257547980773613556320159802628870828850974417721228195224041183019568079943379432114812053037011177043707459451005104719687645297400080331815718462839991240399262729679166551229975964718514806647012241020492533400372397570847008881658925784023106608724513850037701918146959250283507834628295170191420872094515663168294726787828383285011902656972129540525918619111878575884817063152596894562079773041795729461279526488767149361998075754901585763455255786485624897580878534704172757256614466263958192954865606391927202353240019861174548895383198629404639733806686277867251759242363163802165399242390446495882120108951462692745823259216970713342666934418888229153796171065435410166939818086705027970394821679346346163523111248818747964880174079245871796833904779663328435662388603883829822139167431022728555001181658707331834473156105526086892299582745889230478337174852644284006737041157474806706137756146604229962170827926133982091010756304900571264873005264919282355804116479011235198486529677117356600430043766314041397863493663826122809489524332669835783038733304685093130022285610108985861903202685940176693510001912770923802146290719755772848988580448751504393269795354728309696498179255673542943036216555551058897371113446287799031260558110687122664344388367723142830610578661995449138564183987436488278830569586105644769665594261578551680895917060845724270766215991316404840950080033399822602973181061376398981944845552629801298498849297242133041733960413967659491402022195425008025557146589619236738073118430195314910556230022970885262679666333108054903910322967829154506761627574380540044647835859531076236955878551291571454037230945433901724439540844700413101086005051535168347179182534766155780061071465006272138586111648035176144618655409577340759898455725119529508195673942632664268792379568888040679427498515521282192684034332922865432741665188226072355299572097258171022718630947748875001804194219227588892656768138253343687596653240529036035939564607368374144359276534107640277751136014612660683734367925710631615456800837487176802767135672345462401156279371541744388767036203549855558688211621111323196309992369348263490438803056206801161612259211824098963969647802315888594394181613994382143577826288016769323622604641558898092845348000037465689240690299347866767997610556726952849292243476961272822006880974171963281915785667042660170944584350040659689775420647536160338765507759617981184927445326626061997720602047686994433272543139154129288728009305488050347054699847264423420631935760847486622843579359764347967256178243917060461643409925952310165986153553323764671837368544997554957325331865729227028293405333729647829066692153983020939879343819079565155557358498681981899678317829399651567737591758787541158239081497276624995488967868087201460180847508853615184178514025109103322402992827519710772545968369317221051092608127346922001222821481048584501806383120905647498729553897035110078319103691933919814869153308125642351933006513448703466680738556945718812846792971757580357759588506972871352369153734757101382574231232446036821670607815003149339765142622563364435903215133234662935203202890760432347446694693063272541292002288020141818390566721958591304651549790978377888826556114825362622519556744200440286857535564560170278110419199869293920245176666980257177503942206017386854197103516235945732680912530431176329877119739864493705928471575856113742812920171442733965415044392836704047540993892586816897254975749460899816697093646880581599382186787772553780524088596052802822127745220314457841681144646043585771208387278124681774615387067989781204104408564800017116978405409919262310321105246544361370076572680187502001135746882331381387640058357342931753042065283636798427847046374908286760689097572155674017175912158064373795706084654346177459970384474783679725007656651678014572344921361759783480143889358568020210046068808502896453720645759926899547999358027022841522152083736101775694451727803211648799866964444173594838870456255794493938983603265763582833147535413778207522367609197738375447312250140741816905427128473811188570065818768946843443079789502660980601274236975772124269704100297790025307405332014887069659788336832182185445152400763169255190197128048491492155591063027760390207837648284877916757672039774764764111933743874921506831226839348664539122580072154806878345584744589107510687784606165009435819059415066678477592414293890177176459715783631770934263495417308244531250789117138719695507909937056806970680777056691738075987956974305509043743503543688538649306362253202048706126364682473230192180527926236084205483577207671413443283093427909866013737689196269395586985759970982137310838071429125971147290914686848396896414840235311951068872535379566955155324985183260050425477386045137606350982766499759169222089411890484771120276149017833633426615858194406526105686655679833530460670880174787240225882120562908613174270753682467098687635027950209909617600274229644448506317131556932525971800142194304787559531610533585342600674235210916800088103952723211366621439387401374884603062939746932219427280914375058207388793484237305217534728490499497840753637640847548175735899510955520716880801945928049661096542728215366965123905464900168005647052275954946034900869732767165807922761280715617482482519415798795594633491772989910375008680317602772261935461767508657208490142679476147171835385972484035630440605024502653456459559957087225996620643571244871107043471665657892082225420062477470533825723388714933630232666346118324028348482719923095685566475900759823304246375242415123977780313470866638212240223857443146434124085883224184808013370515880426998692425835468010998719952923779963383862940920933833618345170414671689581971601385523983409769855023700446625160350168213803260495262834737421219103049786110852200306940436376636823903653779048952986012076913937851157389540981449077246527174882364548909334953157016239629324017851912169949362968893673704477329255499907428068433856553365836387104004545288920208452618007902823480287878798263213413658643434270401099148027057891908900622190219697018464426207890912497522899209729670443972784653543250136646218722074919851437821435471658938507525367892548282681113706959378578275808398410907237258855756281793215346444840638869101378653000763451903278303047411764531645707808226643416931118905304837349416253369746649694799217484219514755279461114834993720598510616949515625400422757267105711491422355496726819811985463415011346885977662647268992730484823361556037790294025715162404890530883045471973824146676855894963860273119563928185079692137448880259236753544451237256290842578312713372269347735731778538734725372579149763368674889847088523781174672602288623492000961779136494171800039072427296729854714994180823405912801355871379540600022936969288805975508871556197790844767998535534012320208984046284673094841010142416210181336444258392113763299791146302028636240910482884692802246072402903790384094661891290421620799764431739965440783466089726831858513138567845935321574935348726389801876699919484464155404919281652758011626575763210868953611913894612177891299907208732364973659559472813357708881363206581328310809556617838645815598404409060473539772317317440686713914782688146708952265015111136749050127005413187537730630096623409842771524719560337464775609519876346783424247339516055402923367809273511503115571476700881318455211341866812950837039114049590396162952045891834482901378851571165233311714904487032142980652340857055696678033381402626908922347199149907116951522250269637890944234782590020782221459506031264466251066301175076871544758320362693104358420534965354997743215688707404663730069084784557675139199883861298524517045446274198874938586521233747177514098581305005272942689457927197741695862985596579038239413457989852070150769988589245577035300188544174177671270206325110364854756357349790045965997297964249017504465415664590610218217611761872523490354047394811891800519669503533857526437525408417617153569014707157098416618879912227865429806586998080079452094695881033743267097893115156212577593303073082032273642796651580468481571272085057244268955279048603895470342674593891414290694131187316165047747759304386937657920878318987398553757853587695303228133543705820226556399803248387991201453903356617242975393550720026203683063023289684633664872029146757405494493012012981991439073982690370609707501537011573695810812240895143497851615780146816568064856068464335181978221740652029955234374235255473870561257296012481407125852221091971880824008923095197458266973365022967147317504749614883793575979730349544223694784497022041657194357988976165187423330300358972465316221797851036073927983321182715225530042075334624538142398041473801879176056477681314230957999237179704714065529479354048561354482539850093499618234092008056580388416426353394244600548794593124971455566215082718051209561132537948675633225540018399332779409181298457447220640731672684882924779225087233361110783028952056450999782204251144531130423613490252424390811425942070410258209695696202086883112466334764205444815449764867171201184935094026139914640215887338822334760702981768335085765347020597718467629252838266575899129222486465352746187006569177593175282691530755068805791872630471982899091519439142385428388978734294535853331822024880772979809794503825435054804088948277000894019862492120168784572872534640418468524459755353591918325779200834330137825084940367648539666830423181563239230149014213957736196907046627295594652145243415687824245764797902419053401452213629640294665482781392682989208411495633784304060215663230420655554110392169988843049361843434955819964143966641568558754894325428274228355345659163478891684350891907993749523941141835367479891130719729160531714737061407824965927143385709330711318808874826505204329913484052475168354766497711540674778932443081488064703181873987914463212903759866820456581350233861028736070646416850642671076480655798306999130463860847920417448987973357771882203975275084139286587165998106452494445527099525712416942602852111308848973703534415251205518756838712041227050045224827076033778712123805417933306338150166112613801906464774156456666785076098491756162259714677293887637617421197890646244385750113558322573406215836379141622258230862492197017209627631034673421701102070781817218036461561946103089329406562028069272757771607834871725078681418477180115972388952088018971298389082255747887399449814541665420675375003471837165667042478207396229188662783017040144988543040942157234130894911708794298827235610781840755280819045036232075468062531559198137954294907517172184227990019090130107339787633651845389191151874533276085742093297596353637761809332713206858681549492713971023459895181766936706854103609645992152275647034258945682441756349839196937149243637055977747926975655749916549908579621216578400225093752203425880006025327701192623484359071422742976928354808928692190255622280666165332060659329488968416906507682653790506475139346375746068214745709258147355561854284948575955151045655333675588155947681800084825144856986927420726942224500438518165870529024124742385093390546153457631113118918927338919545415788883838613951335181137268068817536218934082890771246016343147289192985701880819606002324228699163000299834203186328667513555763992154474141945527405031045950622765057665211463209564268113676626967229295756358581518577503224822655780277027313215662588180448160484643030497709857964540335254119098411332464259399260217915275212477267042043474473913524230922933860597482774575758267352773366070758123984792719537170932193969810367096521431042255912037535160544982644668274883585914317814134329278164711205483458104669052302662155223643701788365923612942028025558758524368083459097989770199403755675225351425958148834116577032596997800942255432972445725238980750899313326034679826182414785960850003685197911554562859111229059943760990833654070709612268011917508228067894161056636511263467604752950221374268148305009915308450458847014529775401850977110826989023453032770459668706487179138041762359667270369964533984745402236907260868470256013446417602347880761646947660891804285852938252910085747119910583572568586956992090783002099354909611203921391900021999543119310353489974504982235665234676359542068082457385092029074081557593934673192758591128300495160511931665463482293768897184906614313132793686527815023981281619112170674559816077540462858709025316011904870725198756845177251936140051531578516883563057492407212140382942540652348248815468737649791529659017104659344187770459203850625911552603808802286574857984227680585733062205478724633615449021050632572859063263731966884255218627161174701016865955461969259604078708247521441946245085995778686322579180948385773397794753249520452665816254020246281268162676267354036186854950865601606211943085167710208612974291841311377702533009395256289080729920705834796216355230510911593019420334347885340287316364330500957089073786008127530734478836392934577603075721063952153331448922411303893004060551661497255299225751007637852734227526677826104815971545689428723079844140370943258610658504291062383418896494380034075818582141136146607217670970289353659613598815700055214876033834645475897495429533850976239194347925060546910113737877670005088221856008847681943579740417806530499254010557585096645589109010286966496794149699221889528407656926197950036715168440011989926717064107807109999293918951947569123157441665125563591202037696775577314625176400879086307191273268499936786288988584124564957691200134938679513987773239672553480736984711923893828096359514965662362771660316669120199828086362588768200440679789312744593836847996185800947348403302368362416249283252826805029021155469527944055075850314968225844476586529787332098305930000801613342603847896075040244687611140276301300095530884405915821840713484257789989335004859054874957377684191555663309138707459419031230349532349895591328601652997238019564643737285854436029827948499863569522801351630423373114690974911564324060767106832871400394917138374736919311827489859173295014992248184748365764728292002227157260232678223399185277808295250764790894739024018175490051865356270163488718065043378117623151123446100772954657808760616902043178644988963911269555797785873303216652195391119956654306241651976327298494091758961127444958617368113805730406943727959323837469909927049983492002221872669086742339229239689574977133881599401159151362163426906894280751253532303723941727212605792062445068323467688111656937296793419080848777416770412157687665978364508928838249036906437538069061328140255048791623861416333986978546251720747939485743159337341519616158848604893467815188462635676436629051583017668370985726313910784318264565596711712760188528249260186338155003597356578818854466597019218510711998931009156942804962730909637967686772525608593987356183473208728636208456518972825821599573575689419922674162016450629859098665601536676916922867329700388515989893891024996504303286311091356583381135230703669457224148412452073294903716785978739482697132569383721488693041038572503300907665962626443834870229944177374657135641468051300816162546154963354823050859821286132264550200612252964283678545148786638087165053594898448155837966823886462738997893709489951227738673176013079459704677442752398695352970308384365790839104690145323609303774371129821994589524866040061208991010612442453334472428340694419743663505222094049443827901400862224660802014533969196953290764870034182340655604024222441990077789939303986594727340498770527978839885451455988210598003990128911307389282462366208763356390573619056874728340800985625135234338273743330379885562800291302662477510482576491567014398427464061097172555185389698706434048565422418729361684428938219616697436865526252721455792831931307835765300891021816185364632794700607508852808503418169568057458998025849617904901722750571851100537683978261836849706543370268824253424291557340124187780147795045735085553796337691789003036183028740980975564408351615879532041609908358794413310260536510098912895282227361237409380828306395867056716846912253988677972828695510499652815580162123663256988337102392706529801000491005596015915225457163725875001953815305558237482474691299474544697586385313732796143466218681236804934259252807983558690343787774825725516876380071116141027603058006087006263973203345100246364168625498390670403731756317331122321626500903750701746153107909734375898576265170867744886041165002212125294145810942209342896159608925499405539779778788792248141654153764420537449990013270241025750136229606840969207674658932657878279064865893898569796016397225604260038416776887529639670316841068881828415088709887601676693182769830687500151831779945412332794332750181046254811388076526759697041334266962199757292311061446643176544518820013915260400941465100889494563175059813606515251230313556149828221219962734917947495413660278879531089539823604269081151625340312751374205033495892104496114872882680689465599349368127624404623698402047129110424967069175023634022414116334555523834529361772246311656966882128761650278386160065536265877986100014065043692690609794257997386955277463970968208918742699271441648082746937061254498513880967319536429507294931386141191941762145247245920948042374062006968551805487293070071595616733416706786356080451120596180556747557723825713554902362692237163932679662737713786063589994596347386871520806855312067448320079151324637736594831323695844892221527717503894740346178581582692730411586403514685682113686228956454671607200074746819286443840484083588333790919636516705367330141096709127744186099414890221756116110887778417884053733597776402552588585289773072403575453694288446528263449940362483810871697450358690978847093570679652584060397314619487352588296725812695910706071134512005748529848419205291582083316094878598871783538377240221729913559868823568052681804360495413672652250474821298096286066001666760531550822428782000454019769087109217190609354511500019738454119202002352628713190969474593986255549693462637978742279421949099176310846079161621511777545413043671005851014001310293061742874741471057305277608819906247466448073800444371033139546740058490987055977608395152649599646323662888274034841510940410745536538255860557480688491252572147843450564794219295104928186881690733836339029458600252898081237456286809954982264819857619860761058513679371628397050876026251407178004572668427114867129188141773990285410429151281132718635969456410922856602628089977524162889529229578198515675249620413667856059275627887518916780101450331154609061854239437488228942692424594206695848474422638375855653164643399317748991152855386617438180937705159293063346142358713279686447484918572767546573437010677325988751796601309671327051736888756269091655131250705114455829965148720578958687115346782697974657266707226235232764693238005067175792854213254594074513478871139154910901138422798110567631412453598381608423884177182564885935031409289260010003830107824740060315942586708384817829022576912760973710110529353471234916327395023610198235296110682555068250044174638080996586394898665106419207667945202318261637601622761877303411593524212153913791395009173851588341475268751996326133487409849556707577135878514728251810369992901906475043023037318861502791223195886161269820464527250358814322132565037816669438156181310645959630193435879377559450780312091294766204708033826967623253305221406867293627841928268302193038831723757992553667442230132266508401865441919731856288918919924554764679201639528821652913907107393713712346372668895920666312678289605486282389549417784300673890831675511366534518192569958589576233613796478370443991464719720595871032289836712623427596850553963622385804389791028703360239562090512033652165505593741807909799664499384507632835813190150600617965542979963023200204890013727707055909002700346166819408009922892768854782174546066054859824303232943020255469274574499643862119410461799642301748482238874334467064038692368599706118671831566772589745715462244013027031925815705133336898655707114914896681712961286771139439703933294846898115926100413078148264540370433349107937804050165169135314562774701965560891832448711374505221953706070736748698314100059555565918357921107888013843268546073352475705329884881976117670073169836342304525333734416363638477766811716741947697716230517602971456736824198070251540918701156991826385699348258730169350500643445886052451120526411742107841631889085811627409736023031123374257950978652306516501392769065247817648526029152858122389407931961828920387594821183208980991925892541155753563369493349420504104827147161393905362097006664962691565638698424974746280460843720100136981211308101480753086046142735147093328825120358449091123786037587755138431584273735929792511940291168076867021748370507530699449169776193031315608871704594453387843665879563407276208690138239379587994138894294417564710583106374025704582892815593611451539679570893075935154407090809627125429369518363676730734062683373797018562786925684683964515206709704594364270968685964668702997025808225630258420651935808889942468134683852490039567397217109927616192886883456061771147827091786643613199746164391896283897721874144122031788247754861098390896551192561064423846820761210645821291339810998925924805789871595041888057728682362330923275042727169818215829420221486771846535017811516415769111175438946353747552777825960999231679007522140795205785989199833227271334601840461739642259696029359147664391258845048690008760985244122262425524339091214885995491180594893277285670386277963840923254330016289787847332474945484002392593780482207649823473096941228366068028945516574333692204850121079437731994404473327288182429671649109599456959733463266157996812276855659898473066521764673357390287295558034061560678503655432543405703376209491975618910325211196324034563851862201110978702922664493253066271590879383855068310629803107793241166112252272239746282835515186273255421215441533168000576220364995535520370105508161369331251316923800396083137696099403644990957428872900454092883418256296523909224937567528246397815987167185569584084913192319106586209279573383902033457984763111032802177411676500984082271925442370883275610503779781637350018755843104603465510258652686182341874799603035057321927713418182433538622546421695313206402259755721231396011954385519660742840737071211778190625584646433759091794123148879095758600398790971503134674674327871584868456916444734617588372462601535395291280544191374638440842842864197882119141125672611617078637744999713909549665068173613198347587670260255562749643776984678105335528289586842648556165641789093749166627565832863226199253598149445722332954887417160641973822523262832192346642905415926791377600672438996364547702269659746555693086337619910717036037484683261826869298290629085927694183438546636826869178803092201426401693144256001439931887616052862240607390784914863215483989731577334997688194742503419085255058945055844153779973951449767502531951321825865099285440249591643798967821099108213921831388560891744521966167580440342276351166458999109132923191363734020819975002213625923795568366647174364629817814660370956458812082393326580360327614569228424746939786867428016851895032590238008331197469629821480524686546861702510802840403646242044044457759074788638243082733037109274106181682858291923647134553434496332234994866001530589377166380331972544552992598056913700474633913639430783618069538604342436850463175396240481633097696827413664299159052818004881288530659519068345469503215183758392789808688236997130202170874203025935595987524664461748157852221189679006233621070460352388865358137428377792238349159725949458987227637428485292616695760960130312812593258261088260825505324867333639138016055871061743562064505033610980493704654214383591882510792268212254134529522420040197370436918856533728674542725107277990124913156182551796344867311756546094903265374815232024554847631952659402327148788436503798004784597770385781941506116703365095617460164997234959218209183631211226919496487789614148245297300269696467419445072303104382577064547789009039516882133454331308090554090638528537367731853952141691063610271779077164070079278833466282234262512284550855978904413770766051309184396581263800676994557262203537061037739529026596204806000414091024403985521294449153978787002381626073089288535934388266112656162714848252157001726768478359618908895991042832066116599509476460540404790393887512367340087836349326088823635577384309555855747297807953305085810545460647834132425345994889876050167764950618227941577706418303123956962751903939945470505538656673724714000432705045975579381842978083615249181248739154425104228793505145338317375875211292547462236164039350577376971252620434178921962355813896998970360137219948550571997897426528202495178380959452171509262388653605346859979530814501482875441986938429962314015033469365876366299535731684958259414347935514880510923717687229611122925672270434081642249155649019379918341910004128714842424715557863082996944128612766696531132485515638922197706350278471850535841674422273017196420380670978691749798214511215782854080903475460676598506949904804227800271688276010420801815295639363967897879981102981948100888068649120640642143536856558307016207296578763995494072939849622427079599237189942052655049534262732244622096188190780513392149204287413086907572094696992525755196220559819050411539191899304729914985284048201445191575239005811309431688692277084915818736154815132953058368229542452016042942465514401893238756009010094047523756894132087551791137199191801923348468193672985122416931541676955547975588049981297298171915065057866392446855215958378266902172738136936075504527208582780318432915362650697138400954689375043516013407223284791936980558405193214775711126394612045594834621199683536578140647717143381004250327589000239926638893926869872478084516763711638896782926945878712208872199229776403338537446669769675357200936795263375451324965537072878357944515968756458823487134615594976701108998345291404192961700831991696627109102063859624040079979307791726300026826337162112873223272613995250325086748352037326733192367246123424009015697052990874354571382943640885387389791549179004226645052885883761437318549787187292449581721607437465545132553930667472053150776068205714507928057368504816917249376128615331228144340783330944500478940222407092737600454162043618451987825854682738999870302492195172372300642310222565638319056197812992332927153327943980684826755723095261406706793235677341816988172232617702858142192961564394337658823884862148564921918323262072150921096837186289770477176985170082816129700902457242797273981470977284842467297010614632588663331690378049958651564305082681913000033713722337206904052359360809089456323198058949230249463730951117825014247186405586723501285538173690143551751285539615189132189173057918710279558855064842180445624435502384690070642253360814239322879637950768520970014888189754670095770496087185841434797377610107873085967362150251801132076169342847741819008608585671942484312185255868970165265328533134908089018206087266195441383146248884864722493606316629709133596547641093507363634569129743799123982033816541898601066998105368259430332416538890604423431999497951641262516123954537313794783103191360660949954440499979396086687450474090876783854701718954989439706194135834161320278700454390868956022584916336303996779595681744473347488974455058769295785671787867341781139627503620508937450159513409411231717246678304895968679347742520043178053975345372239927629297973119494021737924769676693783559093319521335670453599305887225846606746411284903363267659590103066622525253244590341543713022298214827399669973048325692441216162484931312507255260212194495536690539707889711446915358449627621289248253482821973749080837279768943927541351014024164236162716768800672782551727004687707656068860942050729099986400582603710166434758493846807541574319382353854189458549066935343207786979510196378489389754581999473004442378896243865241235860537589504087988519304994261136550447028518963959876280445208873488332341093895901102213512098254930643655161068214938859573193370127417058020122530663178119403120983399837920468109367120228265836502356898699520837380058207565381229797987956985400625038716958528814492997752940753009719275294201341526829106091505971884257654900632658110653893036183485543928260006687701581427945603394931167535671555409753003443793580215831917774588388181626244478514126450937335988864013195125715742932271706090796792983294911992348442583237198125377423169257267449339762303932665018942994624541011433884709053915331076556124658288694526236198771915562366774244974996727357529569256668764943763053117353061099910597786641639277743127432891310036129919091199698342847663009633018002968185047256881337300340396383731848144604854368880211711353749170805390780215253990030045492841049112805500563080484117967639726243503938011892529026040203714100524293023103198467358597950917598095823781155129106218325978239530076118888097068050785895062909657214976534380059574910118093130909834896355280965883953677744871580321959260895533804870045008751345232530252647061879263027054492069223889302304601564923521242423691683559077034106376245859735388413953275904814808982429126280808048578828243909270119061491718184943746557695381548581582112888367229754607639897063624601951182937531211051166923117250919390707255344130650359920781948261987979732944906562258961966495306157746797638894522034706590280539690464860183994022784973173181493086916452836191150067338581027990145060028152422392443053971037900255986672281604362217256522144830430221941236529298164452389745623139981935615283695260897510249056013668235691662329462692102906471023791842346482781200449788998634256054606164556199655460198437794815792359803122894828574508882254065663249763059858825335552278921074920447825976161451116566210584328845711363704445248262419118882139761807039935891325649853334043625643548597020471612342664678379166421277614907586038880053710877161106920238831310849088464223093483053452473766052936237172177595596419376320734412663685708752005313134500895502450445920022521900076626182425648778310204477928799269784537555930713650710549332963838122273771750705417891547298673354398930625242353549337765757403976341027209890309445330716833785825745692090247958957304326971633334387739476225382860021517603842590056676025471193910580257705737424967650213891044921648582937881585513850224158176605303157100413899335969799173662150906983656352391903872521260808432266573955315300271084507741774377031171039869849024630765101862833815869870787246779708680832060407678574873092541328328615163128136970592024341337623592235561809616246246277399981008318589881874093260960872810567402988750848464530778587950840353482135307696394641813882164960999496336454690776667600740342720178253594046775044357148897737292667540827029073160889625214235739696360195866769830545620573090588140716842634671166355775853604275304827996132575973423318584236902549054048650529133675899992486528509311214881821039785786068144439715300216649768771125453408928522484065909141207679543517832679681757683457134806848843891241686462795791197738171725483368464104867300055356553455616555508417002200087074021409972613617901138874566293283590343903383438411728988318687777829010838032445020935948508911877036131839945589104370161634852332379995562843421979967484850509027908672290878535613689765704729587912392245157174198794626657476115645261331145882405095493162808929570866401920929758710715845810991973093728287751663882836492549763736102557900103819962283602154214875342485589357143478355601530324642524851239295764282484298312245474047347442853530659573135546194537064272726912560631510305024312779164691924368504785129092860360414801663021821911818773194945867143484617683931542441543755503258043260266030228981875029862703908184768538085434871326007420450546122260354256931508319523003088620773766618216256375272221291880385441357909793249330072137360707163172206945624916665379124907143183400653742090351392928259530581147125655129404942318253235660725560815448589855710031564204775558387432563214353287102683011146776600713283146147221566068865721122684483003406808301715031488046494154682899226690153053923617530554069306756304083817040028848113625221742102593786733139239557960739800307246854401523680491796581700978316067406620142608299828996184527060808521780794395427050203444601218485561053140458951285752720301800658178986206044592977465417580326688092992469514441401098177257581133432155065498083964005612375944381750094513990129111059523317903173861519106192283570214586377560458585923866496106844729529133164223709473514084247563918396624870390940646019347041663030775145631206148871795583280348894804895582111310775495522457324503399984910220406831657022742200369430365700628676016885644803169914716286300657608148239886578482236447862293989987277074450202889209746374579962662929687644158204280936006677580473140316914416071626451288629303856560336927915994894983422726447294565749030852904569219283329162390097952820328804922622737445775046635168720840616132157405814287797556500287352839658901358453307396975063113515571105411121489780134570605984208718291778273729801163560990713504546569510193166669148478202767807992570423437482737000914296463709067290028939299326072838661376194106394931752527426193975690004263942549519797767227001001525890070643921722052241990286007761532930183419879852668409238307923726482958267552116358125779917236462882580291639670069113700993468610573196041755392289872124280243947440856820367795033496205495430026271802001623120909884171287538351280544932607433840782691806143201005075328475358510979831567707983935537394575730742167828555944682809570381406390752850335805277938246845505347309101165135811510467355889315436204501947158723572705073167219975508612959237759916631790935630897967511977315388683291655187717681526522134397826878551142027765637547246033888209109475650432705569903184163685879774864943468748332636905741181278480701767216817390611742231573946870374217781402291685110237147401845433609211486437077119254336717591006603424743991792689052254744879669653933984430806428199814207577933061722501827967073137988962504228754609065393746567944048241686746962938541852218280861093354570760621330734927594467429757447059565432897403420459835958823308709327155133677700355142706883523118206072858268046576741643604819962399468521770556102717790956145605861481895695099792029970888473693845860964274400803418221594235381272225806646946163123365466471581743058369020976509302293091913113866283167850173470182881231077886328099819714846356219838646512095863082466233522901414190294271263797846947642202175065428017252436875426575973541752755409099084327686594201576206344329615248612835431529352030334313565710332518721890439737702078817828334558819238681223055854805294563023752980930111814387159426307628378872508248157607593811204692068344864236553508850575376101454987479852595479969795212185661998529006063841437030838316028924512324924394703575439773380759128164378463409184906871986080523299992634726449464291580009688162729861373581095789838832683446253387167207300693731090798675652203759300321499308653320263312300476004678067857035272544826550284074788111808541063425815084292287518367211256400595472410227745444872436424620429235002414145208116344892179014034572479939208713992322173087658476733746317181628950751769367446901671169061684729013882087961150186674641605978543576231882320353252965442254596367852868378176805326678955215597752437645866912614097001674279311851400129187945696446272958206004521679087312973960338691672631616879188157241948175345204116668353501165269486208741274552644825506386994367124417193628356134268628877998310869554054130047247862652113431281986232081072028337992604599723198264769227592948921143660797140908736418067055834466077267395770725296079249525212846858790487689048792972329801041275851929887256462179854701448787984701286191329393845490689947583443258276248611168767985063041745814027072067561087956913327719544874685092058847477390902496263158331031123105387622865319044891783713117517668582095949931387976802829462361632279637174386315628769227751305551711767462980236172125357076061717675757237858910513698157424758274547648551334214023931026003542021816618766326766450112164466980757603538007375929290010595438322202940795050520676728254197165669908870810211788679191907917663651437579815808789850859747543340826407572421100840747234409042447783013483253480690508811904546885322691486936437879788069876417605175646667708199925493956118263272269512082893521171300105892324407263493194643618961071674554983781874520939132330239316968178472966088647393287054624569532774358226632713429090447239874069192268316723482040751874385986725453840708025306823378824935443061278383417279623098447842736552070618566343757510825373678146732388022423314592637786248914354769240570159836865850311253298293570572005033017803620561119240324751796701526641703222278885162477463249228480915774005411341507385214580451939079615475022167072848384740146371443156186995195923226861982584907148813596855395276065807406733530630595547173698092051283083842261067876596663737635727218254311249244458980890736821654751770751443289211859815080268700357320919648155554657453292543031536913913715177176221562711236232928814182008976318208377821461629704082422060629389240610597490623269111604249486781080519416759887327565948364660743971777201036934459371174914460638355149822969404089756797008114214527682014628461158722855744127755390162847560207457589091907018379233500693654613715045038979246140141942344735192664597144529788372718255886951654704274133863917820237270360236839085454344675192970880316170199853296368679380402427127598077007874602155888631012490653226217279425793452613561152799397437711924290662832982612504551063773807959369863943782512826666659540111491962817801377792683229470336488443460534794240935750422726000101768753882426249143515112953374576609965591934299674553844891263947507075632897290390512528551636407043175029383221830622251925888219545988320782544172925664142684904990947575306138126621874656296447021948601893357089805442464470503546290550888203302928373507458023351168334789228004308217445425906534711018948428001969716915918914773304474786734564690122649427241440261615212217585820253954729938928325708611432363369807741601652004269204752737128710951628011204656290883613960563631070419899836948899719617594005217381481197454546958706210243141098031570621794832250990434875845771474432650448781939694629873154084694595320175694508813347920413937640311143170381580543832535507623686437948130956100310430715774736031660550716301020339745203291032415010223341737732411941795968751882136476534743170003809615645950603558770893277780685626847274601916785214846809267014402585257530307046859298479151257665566938371511915975330433612909930750237380728540756092051527391072274722302656936825658961563573602018321096676600591035693612679813464563827945575580550703111839559065934895956335315072547820101483124210274382632354804217657191078434489486170267075819420355290122893822896543711278270362572916073476139942668523159949887032193503341121878405330927644760747728604765484172220913087191293968224774525549697265441472357671314143445125977103989534336455487843058937689375990547646080535274711777855579357790517737675790049025040067840149237349866800737691698547259258468999928359183265825877820944327096708027104580653685913935997085081522678182179528709184517104101149620860143016847540852259453743928707540134439611259181934721458578645990318381469463196282703615076366494184751255211371921635943638905760224467931717388666316140129745255063787053731126701993869263525521652042520174168188324058984906297438233030619769930976780992288327450345138032693476407173217326094323026523600619850523961763647786318845662406438022727803274274343291795829689561488334239703016205823744602974737975880126337403033189643528511971300851353592814891827572553298464358814311431651871183160159613895944758168418190937882388961746874379676241685959934504303390735389719597116702783413275133981960821098545881182780877547606757059460180377152842386633547150454520230367945740500405543034240546036007078037389605692841288899486778148012664176029768924257277011984780677724170887449599975595951735286369963313342207527123353451693300043728137528395106907865531848755251760996146168128398803728714454189664285933860176811190948769105540795553327123290925227102499620031430422639323157270013652550852945322266630561073463891181707215096771367979145890529139507735595137761350337464685637712188185965397515645394270635926513371164086546463505034609357461606768991182261684700773183490333877354600269864947123374633392840592992751755073824702989025917591482511921763761941018725288968650540665974449920004943532246717693971455776661313891937536336258882039700126653130861324307066105982275330608972136110097314465888551251041531253655962410487716670343692659056915842001786814319888718779386975966516213369504399922484990819954506955813433100196380683856316387258360187444224122444780712444701646825549523264000670506705343652854934854697481586297939426447769955306499008591007977712350628203170886277045021958788270456193405502225896679923154788289620959325035879247345206426652339827155311249533422876949242034443076630148566459337124913309850250563648595443041935047915009526179524061204202085320987717504389839944938637372517592765340663333136611690116871444513022295940393334810126084077760780743750671228488275062666873419321898130744903580240052436389420783405410940767664716022348695671677523452065523569038824790600905230281075948661892332957925322920154274837783614771365615962961832873535721859696132963322409461930956461971932711858324347316914233923862291050962195274334122578809956609885633578823123410418135073372510968683898505194937881592854161413357890974042746225975784501154391823048820480320775021828728645582552171759421317556306970186531426191830492749157702724664631909142469771401719998811147051219451123825339505105413955791164097491381363938143972850052787388578522921629796619607705248445263957754266959463582917098709606390846790012196925330961813718474162725363862219855195813893461121099386015815731521921730065463754032698706542953931487781013801877054752906399506925951100256389503114067044954096760840203041098786668133057007457812471297581159004442636453124590149208086184850887389754070994156605194441514471105217587425574608366216554254638579059690102151511929683218434424855275572237995808817679254725867375422993289667470243819095310487816203642630886603402958765133816663140805467801431889029160268900674860352872693195761261778601121197520319879599550184435639682370337470047577473807018502316090592267762151669593846285580393696542971705475565435423651443173063323071554337542335542833953359880194826174446023710426349127311192104998744391402535414864181574502196739718380922123930281355966586700682853104479118605133156932034850431729799215709884498408923149531374550884084978128637618598890071590559973172954155288627236784819117565257296123129924110551107071493375676128868083641297737652788131649603836745332619818483595295303789917072286506096231517756181462622051568636015972885875090373509240370486304961598305177020702882686132687698348675559484426101997073242583489755744486254687253623905821220342799980339352606790717859374067719871007544368108056358642521924432916842031071290581533833815146119741135517628151435306869844132802148030368356609673498553296786016436670216926221652519931100864971149354862554273979707919140691812884375485917556446707742094125011119286252016305387959116626362066543363288423204474961334758985151437158177904428742577433124086371203724940366226693502848672696030840269867583333074055058675663633513554713307943856979061725731824008671932471149233188519334312062733240676539743601922624526298145292384042307181583693432499407203670352737848006792310441271192974010954983821105470049498299197329563089337840223236967302395066003699146603303063830580102303243507408243342421125763785157571282445092186206019397127659493971271104186387871550348971296345830249825855491207786104947082902878179594782350168447045546965865510810253476428600363116623997921938878117852544904217015260698249453724746732440578063930179655710814378525990383834728944068612330693289146436210237422519686142104418540905342505352080144524950430618582871441057518553712092978203391299625390471004144064396450013349551892817406682993942119857949629008510077384839916074272079069389752850009837341067733050988468066135320835614438898498590567427928952450715486051116905808689146985099252536185448414508566760861932484370485644265197597589994745695035531080444940310704172811360463577735576328811487958878088793394250483015937180575872812560434908228546716381863008941083468352276949902706194341140164084000973630990595718441386640843634030079066276738222930526054107015049089646572921910692392022325024111994479318888487614820651231278186101422061451613414344376026865653345578839233510579851456556273521015549680311050118361189055101998246897071713113305287950205587599905644180105186654721184941822119324643299128357053143209305911507184411392800701955519064573303696808911559815126585933917094648681236839214222414358028769613362887161084806551768242535237314798374447784576455049940031667633732079289104415119516996605713498487038066121388496685572046972786905837325460802493629168063014777511423597977803528255664963159740234357043425975569569115549390740698550936422381012907460061435170494395458673069351373658506256507185061928421150018321635441681066687592787627964323755220070447667656527704037625991989841550358582975880776926725284134966549333718388288010690850673501324805672927066324547573560821283566136375131716117652465385022107691825324774998997726404298388903268724468769660444864007565745338087143516135175561930695172106946308955937198288864107538884318557780699526342592411399591020393936948403370953055917462241976534231391192276112493240147948812610984292409788439296903608393481041522610433438851586601154298521380457632700083857833376652128358761245063396374998322193624584466544230603544731103491147084411402968630748304809491853114477369139908674291973699489605051478268859125405488778373461012216165813624685972632856513788836335197354815067563855005404931994095706059831937665433538452612368636691157084208159837922802594198872852023272254237552954835591807693989689132494746861937749776125614717783798566391209965380920882221872382833651558417246287031333543710173318143408481466331666364779803071787358728466194523228080662543913934064785175229880836717985667882082931641829212784017991590549834198757446677348033440724975154426199998688140879470842618588740554687311873584840901215300720486871718744193647467645949083847627336819282024365610764064815775393671122932221223403330716094185176851500776347592404354085888518592842115659019974610567176344738005053479327964090635738371722152940004705276866473126285380680944597531845056226045935660557602112095974922047188985912733816201922191612655620742748069964410588817084810898222048568360473642512382315664964868021192615467457869672906438864120269105760509050430872153397144768836615419976639548546504470734631104737067297608701069751042827837004022970537665875280929746020818115109109698338059585148277196538868514803519690211445391513236852295121415035308394874197306845281282379477425636579411257147139385570069976356958922383888358729856360457305179922269271303816677647102762383334095057439162745893066443761632622821547871977039044576841733211843001509642900909288965349214791853778365871975050937116979814493643139978471885739718769636189971792867076179682853803925181830898154720964284338610483836778813768967506060470330719232669993662473358191879988928283142253667862226515851311758897569937753174319179141600089975031149914039448883678296597804080246203797731455259209846911316474915139556762754266919954911873352183369476876537378049570110447986770408818075615107219546493401533931401341661239488416023735200660895418831918435685675954840384574963041403644298560784984450901804498613372872147614598226952458002493135123791007547132429363365022692549197896304277146010382426717445037670010615369410839652637978471207335435424983906860352881834218222959809043744588509977431467375589906392193431306982841971050112272350947060074661459717654155681134221845529763115902052655401854306151963038537689691940543655314653183370635832010862229781225248549914928328959709809865507475336415422249270344578742478654569598898657727036429154030838179470559888544411828428455261679758633404937997486111347163621872852727184620999943766044291975076814670859515154668894253215131626994732023041253874919890298872899251433663257668038701248255874854173581546441954770929477058994308582855088731968159857011722026934868105481452292339339233843384137321475094934052196211746042250046543080330972123423186374620613773991350475391335100298730099504494092070251576139402483775732175803451782281337863275331888327538751532407692915739478602718246278089868918404637542719355966466286631163161292877648185787422550229239845014067600494694856077432711856781586398920080127957015920539919469417333492579487981179221040352909016199881613879949955784622368188139145289608485115528889764498905576756074334358999455313753225654640816947542003907691629786141509271023864671017450357331243960878501400205611759794338053813061961131126263944121376549847472838181965551046252030239295077280207297902609507317168101314707341395112815533750855451838040286897436277622097951901819800477611291481578869298647758523843740824821830831626067261489796785596996404516633188897392881934987362129636646177490807988846150548688534329109971610942781922621669452391423778080270428528088054699986393162922738471063746530518811424909701721068697620608635822745205084796848908646619548518316071589335580175843448121150371279193722002398348332714656109444454261376941167207639886831149069398183182531586041608385398338228326830493046668993566507229540602625689914729702940670277286944469751068453875193530558841340218106190208371399994339342823673808815241719130834319271077216723907444046739775794956583996839207945452614567892958900629354014683230169768998847079632388524204875792000546343022865144038300821431437268930958584720132233825456758204039319040459166092751365869801786389183949053804699743312619923255711509004302322652186760186781532256001382678919360476151358451842397006057909705049732903582952902809792223104723518634717722257078492914046964362630729689281591339349823041904425533485142276064226952500060466684497250118160130578865918058607916696831547912032945905871860576100189757288784376097894762753274207542122715388152547612777779371216204777594686846967129365567705017578295634135597960527999897031550124240449207927394506902155280175557893579117456993866564094392883373460910157237751241824155870318798716568080991176915326971507437805553107523833772054758303226941309161745408572672318726779775690596844379273733148709486916813011555250693338233127704970734918483386881080903278293052826854408839670822520283767754801720576429619019337322101549359316923743240040320036248896699572293965198169564234417251971692765526718820924633340137317246181425537827432186132278822321433533469723258039038169488003745763094882610467166534196241747127246915175239316447840954253468151233228031542092033674674733686810950103865942176089939867192438341931856470108278047358194314795477229543155600984965193355280126070391140811287999066416855941149355929455218924397690910558729795476824859264088074523407159370205227809651009344696217177153185331762103421744654189090559941726774789970980402552915444370363814151007080967087580048055880869945234547796069593504463977985202424434480577867842924431140115994306484631279446430432016918121476616267537017498808436892640586207294668644976518532073952655466989588679044731187890893591325016382209413556085594245657507985042780713419944659087255010380592115605670229517972620697611812883826162446928510983431398967813299002077967831916960042862851287206990802193212366132090597655344306806880298700971776311051478480303512933646862617463278874176181238809932340507231262569234189348675760210427266608776041199828798036066619334380483843039894056969099874298416385796070332145493602959844238770855783783368259190655942242387975259612154193904322942767147656843572087451374301005183835690417357235087779026554618941683339527430450381801747365016334738802157167482260731572747937718765802128405678260270529491307534783467280528031668063485842120062603395114141903316699448284812778460393974406302537643058987578406645683870675635363115965593375031584304618020667165599379988315067642598308403608483189345988253971396460729824409710961299857556662153652751544354646207794577633120840725874419432579641929166216104093872752271708093259106053706739027760755635081671495008304738821416936813332225975003996466619530001718099059039155036714501673368980127987670945481947541814051256392768629806619706448561869459884038403609029721564918454199172475034943554021009652489939274509105266735387452777306984324799238051531137539804972175439150236514440976681870998485147381436751111159708773038142101066380607221571704063315487581427435999685970628206311189496475337159289716068201337665087547035383168182570266105055864878362580111110278246726916747045836344988452659844971222562750169022271488952460307339264714250971678948374115704189086264341290784484244998976527943571364201809051757663740585106514495564423464040845609285688201160022411232770914531162509826829749623631106552393182997329743635548412360050205863751541910757995427862821326154341284335140761048187190818431361255488294127684275008693934586234258416035335519907661102700626980467103955713919209732162408394419522378650547290709727707145506438459266617933386577027723649254297986203593027673131371864430189724903183570834728855213451459221643606607927674311035674632195160416118113241404683971077975644902927991502046116877022903711254396873164330814873304138146466498582315873084170760317887253932328924922175306280353124730171474169472698265565169569588295883526776813867667208869347038112555411493213245430695488813927465797329273538308033824429122618592517953161609875036095073447991458738824830232191258615193839433189349391051779648239732313441039904748025175819396941950749940228414399877558182397975071378641463582297869113284469348565192406496551461476190583369820452258422741519544548358217054618130587402173198871728820150323243806058922854292134888552545173170810122337574623639596078921638389014553718911867975703978031676265646483913775940590987900160634092395696058484988132466375133858024539726843551797452967392988512606444546226913506745351585067597617106425247713274613813642546631340930241152825107882773168631814347573765746832826951034376422446192801824741607652525168765439798141650477319416564574440911116534351754432647234558248546181811906700810696217697762543292457534441881830170461779353509005317803642914347034229928244782096965089823846060443445911161097560548681954992635676435346594498110458566297016068009790643676540965427538800359619191511237469497879309582261210489264334244621330991006937373166376098152057435616887763115986745673861210126280416872806745176063185978292358602511572355257447522637144733551235204599535601595964248790712249355606299116087623154526732320692563506908176414529744106770849857396515287295800456088538000842104663436113021648737712928698278189090466572832872542988702884079023033015699795891762386526663856968976213351827298329233189197023243818720049647296427099439706931960529957683185161655022992767373677612607695573741239405386268276402141257220359935678722437414313864134823868480837209674425913812655338024874320446145001251303101690992192965457583533605812990848001868244542951275689914231444571024176847289184656380026199778326768927690211544048362112445530039518590850626186719261167264389856492808014688652809693712461634102570396726595756232607241438670836329943489289055231390427329462155803707894496436100938751118734119320649171664648589775105504658286649321601885851061085743146000099010203701810859193885748781373081901362857702638883318641311454819644831357097328560830589786089247324091210102126372683589100090228374775633891366750958926740904781407837687219478507184617733053671888140099018080988554565904113319254351372773977711955634046989401211070857107037426841895052811913588633895700939757237555613674196192601305480297090791668118127104146627736652643408442118552737426283585372932950862195801632652126074573891992139224232960984227177329141274820279661802760312911307302202307345914434735469524893864840054794669349135681897497181915953562905672816966272015082059720228979733503185735308159326033812245850019932388395982651233159503972043763500614922785974451960625813934067756268481992096084681838003082051627694599966592283184239510183623259132215298376236436215965864762871071615478589132042693976660430147992341185980603274216236476559879979579971780813559610937034603442794319013391462684601724518325366408992863474569242803465183738126261500740818735166837245152886742219321580000390682273136408555145016942714207789049203131283074001057174157372134801203388198381312166580339552597867006569554451791290252640494974931115272769712561969537106275971978311137550427260690688671774357898882753188247668950358479126200511059187921068611387034982076535311644462424134729791271836049796461063633166956043686418403785030888422161340130715460111674493568367315430733977623474195377714597398448851280392939081532223389751701393313160277548347861360638113994888392742412376897813786884694683895266897060262541473925240114275564799362148693477742955992216434426182204658704689401096089141724076683555485336972924586155545217017434823998399376215564597119502695101610898235155012403115928283277174861836046060621432731636538571722550757475106633794489077642397880630940972776516812314504051076984956334425352263923104183846040324645297063838629890377461413259906385391028821907520309462163766880740538883678615068605692226222767807623472264676458022970578951974423011919105981678777623803757532860544579566212055135420710763875161723962757941181154162699155853499140452286404409571655329632334144040449602172108848791346784182619566047302564380907353658872112796001820884767896360014757718190138492677771072732249877790450898512970199136138202492166617120216100181445634002435349172453911953169032005690077378111512477099372782675428529998552766910434027139430814053749760445679576787050265779341313498536889218622780069052625226490608086503755638647265356060917364577295143735974196812866767603718472077832055411116741919685656585444497113725519419846763092261015660849304228425370147733946098074108703385532535652199271433618915926142426251764158672055344249857050583658588568225845863324620619888041880724800981803188221051235025614511867851754648868108110497559045089467760382067006527427026935173978301529013716511548928607240386091509312934003248134008582514417853119462092828163214923435420644524320904677882226202903885697423139905716303646746523819410453427675590376862259552124419329189367448517641759175040130278065492708999740379445561155064960824241673118389121896670765628986800167913995453172509398915888170365102031896529786573945566723016171169243445162350188430070299884318252274949109964785197966377774286951591683282458163935674087999640168285350823116450421736335018894024416315386233498390203146682233752600578964323212560366336622462109677628732066624527883003341503513224267703553114228685272164483507083700221682172708834037042996794801857713434957007031625477902634877304074823882645253900045739657847544549352050862252566057002281036751158898063803456939164614930214181460359593706412897541951983641165620261788465974927883244718535424800048892001500133171403413064622014115820066166261932275203632995752115539940130109894766775306488172682961108382012085284484950949645451267091227927801111646545814477670633045784104330721330401338718148784333192331126619753470415722955030873686384518369637348773664469327178670444946722779688312690752279079658175131033910217262606975699748810729174602158631834458932713586744236149355055879338563764243088219837591160531576388461902512174687610269891778990316964366619436537762856282454580600884192149224534228573695954510771099071413799581735806806669313277992547471452934268934055637172297616584651436177954377521725484848849852896377159312240382021470605414246270296388218008518300428862656273014230762176659441168220830501115874002290882518664983284815463107337751693722816876032796983937943059052329278562741700318804206853699693827935615018626572657417038950957933464784228420321839300998200595737683182029470844979530087206809617527267991114223369254387745056266043353138613600687168612892625088686250163317046200021297924556590454664604566740309937231153351337000278372643303084516956549852940506583405308468129321182559537914263816230870379648394836299314627796493528083091571719207669234647377568468637569310909321057143735871460933134671151048928948831834512303893164254256369751129777636358860582778588022741405260363535451499016729914777211260782673735136776444329524421638231634249437364827724716489540995394103168373595869784889681014407853743233540341868551133449305643613020162234455079056471692702654458190143690209118547120713720321585197003212164106789354501555623331877739776958664363999117786075959995471977644895084183749935088513810622642767469315773964349482371401297691824401671475966617164321836359049770404618467362304334407769339463905389102788385679719818616921953673130520194264391793944590365076206316677410735260039501105791340713585352156523223870451074625415556496519452653002123384752239659168724371622459532714395828527891625716103046434858001275295256046648312936637982626907265846351782121265250522431886525697379676015362641957464848804793329886711609301123736233652037490613357755777914390387298032800575823878566861015036149792965750260262262899274584885075467983658987396656679180921413229179809676170363809160787387740366568415211615204296458359054065753216460330406506313499088856679505495611228119748700570156504578807351693855376318219884169620323887156731687254593093631594659389893945756718099082027732982889777038472068571868039602948621621345114320293330658457354533170168740725661418758061365983041303837530102698886635021982468731334871138887317931019055400253462957025886952254265493789006161553220807725335815571671928696106759108940933934328236000742355074463904301355193319711340123917014464426029665032489451139136974775527242202818794495147815517958744587370744080120388924954111672510423396706428354544464268753032636762806470284585522505135955083887466839026442898891578883397740528888863061325281472374874604485718149658521242948498616264709339778130528871362743101973261384674647261040520892205176647650128397338864424466914149675222900363350949072982565196947750758760315961029769146893904939196882166429299546973698388457208288999756832369609230035614149730734193659673385780145308499942191742920039498056447408105271709047402893193739899546922204803379875949648392280699282216934112708168730646296270347918011205586010701102759530036921830707281412916793003280357091360749856909615751665754923738813971955365355392613752172081340555875630748443220562757456022269912038344058543509864158316404181571214394146285857715118840632560785605592821305530277421325240313097836647280110733874648930545097180511614888549846692022637886738492354463030361137822667082637165458328759424865962128946401165115043666807920594388882786437521971054083716050443992387159649277904180887737875953454124853358439038312464242765073797925443129676174206390983808044260453796000421931168888580517886476076361559578315742579561535429128905771440325055601231636343113824075207691817800309255168931626623022735989586945056393196821929638879065482260571035072529438812477908506059483629299599832480992876332258043888157240849296079561866138825505698808589116427478744781732808612700370917941536435696606824683283169238898028209624086304052640314606211575802302177675768152074768917881711533311740511690188621120058457307482929713413014928042067410545897431696145401859844457071036269891678358931243099509710085953403249266929051759407993920844758980702958913345515158907869305084579027502042129700252586527179809334668381336306091531495029863454547026897635321340082732691135502037056520256572833760336004783327995104876322764832158338115583869982153910910364093649180572875235767977236522377954575182739706661545356608645853059183407349222743330783828664389900403436326769593803009930335753044783532520839889597237463158043493574966395240604612118547027078171204829039966745386393519528469211856078445288599730130755507561897529141724172201073867368070741892616440346260164891713427978317999621997338629036140418812393187823812393906597673421321136663547753820172016420106774137024966412603135496884121368841812147860854876957884147107128083896981427994307065908654506346996484743875768575887553472601527823344749804638474390710744534251131680347158770124088531465609246301946076359695116032470515294272673622268953448549356177409426276117997659430904986181366682769442332429089596985433359986545009713396596228905210702116801273968172118878785513663131743594641103852969666728535702897081681183250968723047527938211470747868692363909222161378884222214355504109406241289990088474966729578314353660959373703927005182670659610862957819924379196031281070385570965260464988401644753688644679242863854532392554761217889614737692819425738624698331813263493278461529213801891801954495603885907153059973626924511201316343108572559645116047901874744389829418860926116202473969190780041496746043542445997815839208810559986165375718796265328302130562691624201844193301549478037296509837404019600975289569964524156203357103847696242085006486323774553352185150086763043812735056706143778693646263789989798158118462786899706452111094073960112872743679492558717633234195530422442593087988125096757073637869624531150193224854943350298221976828756826046560869089608271681960805566886503123740331858367174154924680490970268820793060147933200971846845025387009303948996114709366961887381035265510625333023179865200869546159824980027532887376825824502508084494268331061985742818208485074311238516742848497494372972629015785303841279710529164226043767628876333962666274061934030928517807313822341096784069583200533226324651121623784995873219791954030394344832581061787991676315406611812535609632936019339631025675164942261969265187410167749310004695705254762918231340259408726971753142693034985184370315807894599891584910055477774884613943908638856291360942627001529529642872543491221231865857073721328355024740724101089681167386829803621023349339932477977665012456931900439327510800816392380851127684880244304625035737813191515744259432599766827268891922210152240876812263647554078681697333567294332037429008252359008920339030449161298815712108628537856131858249367475750746915918143932974306722671371318735369751503014691793852445219792604301879846344738045528961570671531651181149794448757476686318502274532620393135527020996745892727134982646029087601837202825719402655943208112490624243702638470108429961718683947806998283485651399892257202702351396577901178550000190625648584072989494127770933220674923802442853792578091808969489742045365257846107331196228166826653866327735005823750941463550054800933318851471218599662601012998121331535574367421039279287631162877172835651514188599856993984993230753281148172550421099347514935521890688183703342086660756278156432521529782050829781653268494562007058397765805096521174115719310624221330964971126320468009898954987569728664928930775918093648624874910220877285438986201117047021818121736592310961699568300421120168803665900073060572078961167998301086509354521276431603108914480271349776004763662479645320896310755181820638147308136576984694908012268148609324100208274811246923521949986933502662605658963996779893289457572527071306184171497782598947209401679272195266760874773528638351608765181809520614019138344828785809127222578576043415953167860424301801964622003545325702027383346478413562622991664210303078982315296697447719029501071488618944034393111894579369801280405823854398924688378050808298672081355288843412380452903038256582413416660497011011965032272695923894072155614633328875418871675191646825709661414452592265340876429316122587185811371695518500829167400854163077565640718570797839404136477206206733572138532771679568577272482312598457848713936486000157711989152401344603750151272021796438762647671462404290645013818568848972963063209390310654412911497261462085997412153741347974626663934630264645504491328789191497978806549780655703369407316316046294493264642716981885037110707131876299117664747199718195447012208946473029078740040897394105058183315717380112046688960401914821190119819229821059370355243468240043480330741232106582545250622613904814038065022211058652343145842543868931778843071649342473796014400736921497850667427625657194169749560521618248919826466686890635314357216061903233786015336323383369021193868448238975231199852887690319384604383534505474603670630700742627330372739841007265283737609167344159580930345765067269288918662254232760047240729053468587756882159454569661099661810012401752300522062644716493070363207800970634166218064831819712795277053399229468149162892945850238693787862998054677243407508365571415962016743649775823420573659031412488569444453585691563655935991593065435060708829670009524765464459336359805335537343562768154668706612420889110748462888324907552781150894508000967722068472963452782251951469963535735722907770794594038118675356746120546599017198055594167044599542638339679052030473924415347555392929909502037088807826564637248493151811608882454810923869018181754176562369750897644521815693262171506387466452455488366011266252546927257220742496921066919669698265784862606925049593728280014957736640287813433543244823664959661346289040084956585338380441822243756328116308428330644065034348414249852124658879441687281029473497392663079424439292210130484976702190761736865572731970497062370058595139313513941204032384713157064872956102583017781066541714307351093742607027960680231852128635416131505402287879355600364898625639935947661025404580382039839814747430195284004420280309002070124051487822643638306185255195701592193367808941460620867042610533869346811666102308260957112354517959880646690953191069155560101398991564735065860890491689863975965231644234746968092669242950378768492295069174013598446445491252400337380270516836975979730461840697419485507399857508616580220910200995447105450540684438498058304712208231025924956974953501202353245376835363813479791355387370579915070082428907760904019575617521832338231784203660228290111675151189613447373627442097326861062555345700330044936898992883891564921195045163424861793345452947776688627612087962924097395562379133191046885934364262700815535490083283556226018024885065034297653485263730423509474053095292904296284126356913355727115629007765342476757521915870888214787523470477840162356568543581779043371990081774571084984016504868251140854193995106807894803492882380870839359639973225674154633467121962612698158687259783060771002676367644573388835646491150425028192412424177238149819481612362073355330467608181214282961191635810668082261099280854446247573430169843899116655252464156161119137244184720782193368147867270679396607878896284681124682332825018805228857811661811184785641085629125310366284450959218161847589795316575073246048672679420987672274279536717274470927471704128816471930099815638692613550886277671194952833449758268143255103913354194018092432275606651471174724789311258116756658606808119790331200644850813423574124770636244878599591596049819952428974909067429329733608681599369547572109151808922253550496117664767779840793592532503538773453031174214278805350014919872987400965532972835464666282785219059507800560641767051868620006615139387069483255538894591290712010668639467793105237863133689705345116888347420406355016623264767388101311111474428876421432738105553971138854687466568366043579603400501320313994551580553269524986348884418054947116216357037019947550983193447472256724562010960131355931345731467379847851797718158593649725086242204161592603192077278797432174698295125083834344269987579667322761330282615677089855828948332152163405606695988772298545462441457694489641411205246731058978985463300305218698425501779344711617356476833444034612577071690089635312071435307566749034353780378677162984693700803998947139569954356431929716866035145244116844550714833722511490951860202974721329231028008764413896062074237317238681248000630377522659761920201656526358158935542003028854911550975577904252328322591236614598999240576781209625226435371612705107655785195353395308753026427144811744935804347722893667162213283479361453082241832460991253124258273236210428997625067872380316812507710465505491205036696577214841572544465926793159827296262032081150102154139388693525720124815731140980070423368113989548507949333678251959123301715435120094549094951165864370176121225615870964963254722975320805184093099310098093432232651342897638117984838660483298698535178456164147054827245701259305198268608394750585037745258023567607212659712314903606061344009917852119984199099863023325116488766188091970558052141291567121072579352845138329342850943089131332211754079683919530690479072153982562843540402637994099828764659158268794543958009546267479398578772820249318576940744858201579307286437826708180872575742611969668766554577191263923973718051039777061893492014394828550511866457154941553274784303795959511449628518949119235077413714017762893441140162143060332801590625383655659600775586089276755253605688479555665669907450180115450944576408628405170406983991274528245525661764986225688925640279976755013237953750141367367069674497389339782314695346063736712637998954977552224995585767018233696784229451719215034956901444179688190098948140550542608668516157182080739156864848530681445129547204238252199586093062928437545761883126810428162377840671849762180603479161628998945139315958869602598508201489167634735674448034679168070475693003041072900591982395793100101658149571196174197967808994166506326690584741786404414359517257915534674895816021249594599068312910524543579316890988906267471397720994707307591553745693383079671147991830780479600700630395865623312647808153760681349447173490647098854635606616715785066274978364175621741191902270945579324813050381862253794086875399638031797458642761807467198248013866512497050488946763383903435986226432907197154736159655801295071042761596577681444627364919396477301846398526420355596665494964998845198501370535213242226394404541308467076373943985541379893216820456361664169606196113142295790261503098852420341880611340240562079502930652868715763176777414819505970648616312520947106520598138493229958614880990517529756734019336464078413843313059005789715343367691265978809937256956484773336014339533386385684266433748335499799560517894700459931970128960032286465608593135736748767317601543439812110824575118387967746342808332278282835105805887582377291189581749898904403729061636905045412359796120481481374026404665000475575191756285666984971146151195066785249075408237020299832739133254659354522287117347593755003418884035631434734553468042777311555458480825135550408696887223593751633837660081474031449616080589174739325329530699002140783584439656348989349232266952526181056053541512632136040509757834499364976991132246458482385919228111060561246912687969754580984064964851383602124345159089983648797651075667183081579144369021086602579405248486330633151027798177363268073616262239670854196544398515802423776887831039049414820632859037709988500951926755580833673577254799227314596125574671046423735714832694527257907630120185333765558332508459626427852441220344758586089974708205917781987989878948256242665514291850218488724818357741556695005990647894385998104591506086850605768024572266910106576601837672902631452755206828368889276476183296338441058357454431773878319109984299720847022440541199660253005319490509307120598673917326826056612226250900832137255962374947923482657375553973570503951087585442192263324942489982073132742079584315522015310512578624634769277344145147275838932735276193510961874912215972925449292047646042441770419737743163083231907560928822939393939925775936980437074496675395345522822758446008381848660160829559627354108578213711370314762757351512555805627626696811906804223276720773071612956990378910612938097654321589565729869522479027356336618280899727283692284147746085982256717178950019361663429976585357452773726630594951926196290307887553768473358160799455493622244544294587872370491467022417392772586432723733322802747520475451368834238541279051384066403580571211707831040633295834364866123651231883405657561276001087061348479870961092902800127758886690059931644890884853976087911868608128970543321342247591307980233429362114408438383445523883336421097404002953263203341571824261978861273957717369517822169537640938034646436823048132136396885502486238259208028770691160358095241954020206558434221609761887652859712313974413262480742088853031637118477577344521274146166992376307946816195033815376833550835787979123460044913890077938984141635028758282869032593455308661338791985513105949467006344846278230713674383605138535660321885835689900407075347279592193180060961913977894618274693032454771769979898755416180531474381946924475315619328494447794185289944581891235469195853424078166218189510112174626853818417334323637182813072955688859440546950625042505154235740118353209684519006949732249092762787346807712054756245397967570643197447039506858685060424490101958042092053397946591577665816464215774342143640651975476110218438874779396533092051023963386083053114305606483113814345560859391213177049439803638549827670721494212376097375713914999587034126808546305039742981744207828902287583643039366763685121536125116803182329445413172377202893582528324947457018370869765041929008243785433104351260701049129863847610666101859114624599980208818598262682862102914203453328548942161300365152834922343933915954641161588058765794704431115154196060616434398234134878070910679557006255658995575444567946256475025722529962544878785919738762990423287035701484517125660328778119467439678442988335063823301787542654896888078904893903134419455018586992610795459421280454197507995587890271885110191900691081210718748318493566777119487729569929178484827404695793892334044924089795189467726961814649978799480019868587800960611768517078994983148639616213020149308328546000741054192762102899101419333125740855664124581385082001563857187598057311969532835296664728408801679954613683089321159343012341136273097018519719783804772669541129966106851850508038093841067212686304343976294504484150917240388003428917480234525930921578567292078895892654021585443305651576187614149933478913110203325945869449748635485997344837737021814021702116449831731424782060566666219507544441099313465216417803986387134767978951346894452064304998143192975886387867911292853992466237855669434829655110084666366703606222665005148849735243201688167043658911586825871672746477359401999109315635490930006053875121853877174723717068135742800710872726473326020060640046861586408527486940366263477399176103471040241758009395582230095113365125045727850819304241981772248333999286016370415630518951922566678030260311891445704411683368373487680846959849296358168890296442773574701661757386542479164033844515470153663790173516501744874253916210815067918839465644240687478540591992410462822677907363344926788724320155448753071626807067290014755051813589021153302075812898235823871029845150556122118054503400411917957081605148621917528142531336461075704490647483073680421245523702880834674413465759364002678495797267709037440962245555670231106620405734983538824514761418717148699857923263935640576033768600721034718651497446503169652309160592125466452216182447226690885197568781673702859416725870082822227160803778258605921512918634963498995228226811815264666987089882483256092953681009692702431166604402260977834550357099346965792457590581901812809180856159257417395998336249296995600896397431588720960221358439679732827991794988697609400428803033813542904094350340032443246857909919877427484171225067700181246084388926723158386352928541877615889797167920357192832063780007742949102235375371412258391942145232583455737693510174164548645479057896632771005772887874987133152702081507879741380234067660163148103652854385999453695705992932367904475339957822587343545877581107023331518363814575425929130448887981788088061010334147499800531810437834833690914341684653295655024444743012916067357201364364490227231180053463748671357129734195846547353954646296472465236483034443909032748451733429252259629601263092328097020123578676867894816205821077246448644515347778765201190352903255561757720713390967049781377765817691941137528948079384487142304238874593614717570177087207396273613586788154118260017621960492513715817330557159698983121026922898155104324500024968952226999626995438432776255628596963818011177733611787581918209733608417251153708259078394752742758874571621087521157671597395584757536253785820768062266606554175678726817850203828061808741908286175343985243733716007650250179047337409902305865576825599807560171918358063027329435955053053344353665753400802233453479861764266867735786580867138379653228978475501180486788076066740052952286670042422670051257101920216619989570952402520764929988471188160725496610829458328335335465786874414740131917959076841218874969402584381265538502608640723253185087863326082948738544827335800203206761442605501708142975741152556191667673843672964665290789376736478581118381570935028788196124495751843121347393191019046123843673083048644470408658454304526694053244428504674334620588338257279302621110692180109348909602271286386812623163481485334849951901387209209550237315836053102778326122424151218541359697122191568496395974101522511937771029239507401222647947267824898398571473255649207481774585081027538021879840634266200338311275759556974820067329663679705649454576293632197357818145030364099024545991719416911186626068762856555040938034417090845762114168526703067424443197171867559780516561503482131783132930726017324975569018370871899976917372017326294529897024261175208727419786542224896037563856511537408523717643069113390551790749604271188673767919544266531338000065419991489381663446265504523664369653853602053418883439516417877967751669483617202199841291655149673192076711379441090273990400397792177645479294810619127323401391528994246546483677614168649103856378771701526158340594811848522294335587858039904219011459788739499345774237220482077903733338461642177025401315974312348981537076434209797871502944246282148781224252666185371090680267214461253242673353717512244963852060747871643337949229702803965478724964028103533668135338716151697083666866315668829726318655222788415066551636832735342327200866764230321511534086895596208690125381840953366972883592677580428783331802035801319352181798649671070451432267870940513858835691562712937706147177560993309797291321124208306026311220288879500151557597038891241734029792902243659949473776116863137153916325546831933066521143494066069476303784751828360914389476915469651679699921384556929219445463318080973699242267736878492274804425862937378889822357319053131516302442910966094894751349755828883470084936484052611951463711025351759922934627290137210589029658199353272002328759688693782265018872351358013616447868825951220904720970436302074809119081852210913198846176240364020932511816419636506043361623983873830535666375850438028324044160367585537423112767219412001515274088804519436856172324409304361931051042827906721250455453749332372097673416210599498394309898411585317260597159742552569045303015108948325658334235881589417201864161083587340540591872183146974267977701681850893139412554538454299157219482265092226575993346346455874011518788573676411150828816842596316059210585249295844294692130438659579098808723778384978780796521123510854586777211957163868309237596264746136225633712858689320384224139570274599713175180496592825210850083045768449812740742699803271271427174548028641560200222433508610965290975520861895134389472685199513367661889740912761089675225386356608442907967919776283194374472416414723078932586844653241433036369835037631763833409925336291733810960889316953750030255569005868068429137317222146801189900274307855652435502808754860258432006742308222457991280466831564837749188177614514038472043517741283445427905334500940166056583628509879032397962271417339904853214787284747239844652257236295886760606066421511001487251343844832637267019501971581487204020818904294211567588064301957485280930609235032063419804053718668654988035754671386377666313495756674718473221837531116963967853038362222735182589774044999642301960725050610784815095175453879744671991631021543831036524606148257334820836981655893889775125026359722904472256798378352061004160549513584044005379628428407141761621890181201830462999284542089575835840568181331805267921030765328090249756591838642367272704093029489639243262003320129559053452008855183921989912862505990504517367961972746877794201005769349555473982142869570877321648764911805441801448118984782963484691819940900789760083476161409100481416987557186188886197375352387147295805087107500956768817447728451796771588564536425769931626407798421218966876362547644820431483162572740225053344106553316006245384850352813625007368074213678300759488392136793710236641162136279754739528606898727632425505183138703983952132979125546515066735857968886392004441569115073580673406833400485172766207598329391071148631499168810232658105714519445425395643315316081996314049110348159719408346341767920482818464329726596926520979692349644505354057024378474771963037280368945233576798895976732996255524476477604087325663868367619359860785724380030903920840948255176874219583767470445939959365545155929189155246470457522453167766002720383956020228301418311748461656034626677983800379906519418583319267429280808256066912886948873118934574084857527050086132416227210064443583924612787642118444736460232725740057812920832051987199382372188216022655028091399137396179234719051535760416421811447747463899721743814490376504894414145736210528714154666882337966517590144085536710411302371002791505330833371345725701839913657564699243792518344726254154000025865766134344874177460610131048238726128554082189124425621698487501630652045290229331477333165540796465037074929299388321419295227567015148626690371112913082145781811025564029002952086024676147807474919139204539231735945736557703651330666449268350022032919821596925087220424392760161620277627350671244231957430812184098663697638745449374586157126967982403826455951626042496963090563892270742628882633527196065894901890221473955775692982772796161272681106149221733900949272923840923210621415492237962127085844961063919850082665228228220451616686133314671303316126892835275172728439109557163980445407075835813385316836105953026406609297588606926566501728952647901119747174836407022438395128993081050609089980190222331188651984203825804302230268854701679777797871378136326607905276533783755982958497538001413760485956266553004078659078340773472966722579786703231135477546024968176910330438813847913887823451813393008299385644469469350492737746546919313644245792679916781314019790094228686084469687637138302651253458645539419648517304293000024116329655786209160096400197129115993679717517144855271247984661206486766292879820839682203718537720442646266967332330805935471058938617317314254304223823781852694686546630447383995222439262175274374515837036842075798095867915621439190092159711813311214177310207691782163113284631625309713116339737324798154755922384680149487086072426028729980991619241512632071558294263164699769362350479752032333633547916549366727274074167675032028082200860650864733028363701659727826404502028661132397340640853929270067311557759154487588261463265086143352595212486763941792011939121254006727421035785749678834540306660809102058176389644387601964391913195858842186171661918196255460037195106471153636253801535026056949902010931317565552774015021399597509276929959541270890899983166077624125821270910436096790997721075083066917815713217591987902260238506210297972425337522679953905970303266823154083294764203668455638274275745374249058602547648141393359146263515994477505515499632186026502878151660592338750601484239185652632951446310586012316455577473445730580087339299564603443351671876069770448646463180251964634432336382514573227891174698028936039574697282982772347977836695365440414896771930875266195421082975726006952687773826116087181220756573256379833626078476904302581384931909725422085281633175524903501245527289211841226362651233893699721293611962771311035737019597700683945276326531231422222228386941988863485532695748216775211323082755928130393033886903931399946522943523071172489868387042020602576904613430661633021992759478399657031801619195270041364506329706185473444166043232304242337512517101210735664401189746443898497349910266923440007038334163937574837629107817213428006870399013628505561641454394743261254801316801699300179332374327112368075040732088106653657696787162555214445110496895666960545178114092270037511751913363405294042977099711800684494980739354259841366122766515563235687532062266190600194271840835515853448542055860327846638490478568531193171810608357680312340298930991148773606159267777252831780024118301462926856525014465850585622558578384851609950294689538544012301994376864474944877261481606375248686809262022879380179267979374564297531376623984035909965354212672886280777065535004629603960854734015182395199136659280805060977646793224801232298547992835768196943441161917300794917694032381052774088899407173624846335546346168785909613236055601365466402669188465340717495112342766280086754691635132245416261824397841120301751044132714545616464308059986687242293658123288875005129123378736025990169905697054713599184607184344462655429854113266579907212586971105916438256963535668643038097703363992264119843185633235343928284285310182627039266074871933496336269132077210969400931513953656900116333264850233480150748030068760148633835004505524527260106953407112957904951379025536672761538893696751388125678161894053978205495693600521679222106558526038766416275218230162488788224983005192800049183553728681000343298272109059635918447486609339081010617366634283384324294016420831307398265710807570388851460163870123655013502679696697113503955012677808873311220007862854925941248775955663433917297757014568157768605264486365376865997590204775966933711460594118765091021308728403771288110522029357724139582537226401522975544466846962577472652378033891522620804564245766305540121603651407953768028115106877867802460773297446549482839359832878721718856344672460903309891753851701575551868676435389584608123323624479922799322564946685564957593286841429618862140916051119157301646125223518608281718089870372880409180873278989269429564667612239029587133046715473643435515643119228438161361433142301447586767633015324581263741413039523152089198393532755987298482625235096927133437025729859519915906149248622854762421515441777644646841990697016846263939972234846939265461053346729124662953889886628024668068993059719325324209223161696413915806902151656141288429851250219680371282712235030401005746344135211470214167039395435429031241671834962400295309981373618888050707843360849430549865626840549972083829249945429059549455789538241193598777968540898283014083270860044003681174254699695883904149801894293506053895192514812888769689266702263476897481760181445137691249881532225195886887682709675489918519236036861125534833180662203404507865528001308663718686335855593142207861461857703934003020103068498787917271178052327284648022236067817349987934759100449739891819392342255511205811347157934497597378681122468837317785249217813597079645726144404555285656620303753499851456195455973047718298936043923439505818498681474127829851531720728410553522238099659618187921516370668483757605812192833915188302405259804172206755587720451730829196385353572720787759057722302221561185257493703869300058674576168903582376330562479753283427367811985260099710897867388545040799403109689432726133938593214137353142002798503013463266391208726006830557298500066362184790270960388296484986517962166239686659076953961515064187084860663505576500894898652982656119335578204354801521375538774657467376087024475708347482887609943163241491129645804079711891638655023117113360130385020187163635964907650120177900212225503895045568333375715448175575890267533447072805411725154453688454890898399504490041883506321379079765928789680927908454029875783590062062547171650663974640517929219572016415933733584189878654843574011296612740970493939886978983511969899169462391959391693103473085838953595616714348258611818697331917234928472867839258745167878168125102542047355541317753381693287253614816452388125665004998477112090735085983772425415640709520282868488326698465358233314831135712628942036569704090441324001786663854176889056767523689847684853062504377808858530846852946793035250001272859480387450761082494568486448182604839815392550321319148019569994373714084597325501313868665325357839159300968386031471081743517712650128895228879559357451584144629435863359617703258408559577944007083143834891965840268301996917815314823675431576428388151638713654201967205898236301234834838142669488793104901474001592362978966257898308106278599918132970341969574802653090900520818061564668211601559876327665100378988541948668032341622101456781003002164290016011163512714878460152498479796657622234027276621228465289550690076890530892659274723278771325945178543620658844933649585282081421442101634954831700328515761545366034655101497114819127387551190545531332349839859464718095035872384124965695085492667670872244528551916749958733363571264718891135456657827686819040349788368083011835810796644357223236964271367543214049022537806382375435341255331501409569060783117676535342497972642199217269469124091701128695185724776501660067601439108408405969474449115935673427637215408782186317302924826972653104163115164993461982171937132162339173574625044322444135011199339188194207213952508921180809186222765254385024399635049506649623265902457962883204243968939939627046717522953026511873789708034660118434779675118322551730447129537884131844545449619949983365364569290612528217425042228651255360147833499625641908798273896211887023642344335037351361483617415808213772228453625423179115780300994754873852650499970315604047952965982238793239717810769740794016274925390458516053680990552753382816785656119635229737609551997376466919898660652660365580086155411261831846589523443234498091882028236527508784239028614243592438415448216894434234971184555370142846601034896199840793662448517551230961602304592909748791365461616430399904891387216149486297836188359415664721315070368318920201848421795898354503468851043326991690166227864624536312991919616148874898084892995691900709332339279574803841505235349177576938487788980940877560221890382542290381119614421110070864644679191715512527664542788280063906193977035686885416540108411105300270259878713538218081666062042437284267561286410683056111198682452465103985132648974657459987020319656481489424658854339678800583037501478669983238634309325361287241124764122505265271493943933007995470524790656348157983604506509799806846067684317886876103477998016510926491623774594012925302922049700133006069155269256791407668744520633510288954489873857184939163216767046808964834910008334398610596454271659903392939738847940899239912328671162578235204721399974621332413146256725365955628045029026382626077278664414877351716727449580364292080852908403189914125728486649461353304667023983244376299921941298652294838349684025812346144899699834045365695577681345466274542876462351236907099567550502620443023634290294815413322217851188182566288884943544574911260854187161153939825558987989019886373681770694706292845734555061349238491422513902350970637134058598068701163381581744850095539718662748989033928986343855019983684824321445396806140846525768581305909913606858922043175233867234249620523258525907844937085746223827356706530143512553577421583450596252998636299380934553591939822150582954020733262468179486435458553255839705641513976506782040452296076195903864183554687432026373704677895076830236774204406098840234131833510483164859024182522721285714485522299636597328118106263988522056819374503686122071496138033278653679563455045391364680889985121671999252270579904012797164945423752336000677252615299509051940535919302216292554322973770308820175179427274227839217996044715633777605263551674219616671560993024756857394059214446255927437706262504341592479329521166172527051633791976275182024717652978283159003113503749846721176580045537476220564505645833881238795535744305138353110670551469172852949265027821278288044704939614437312802045031478322011903839586757663402511685362858193703058413999259353337552948993929908456871876953337357356547756327468885558312027920309978767528493036142944490656502382922416432236108348067382128794588376151572696516442626579056556181127956038444400395872552895921749047280842620892524572956745655375881130601179280194467750833332566012440878965858682606163662680557129305002547696244464818970329158452219308617397494453914878524864408525941052863675871097735471103160450681375808319402340012704651248485703067380268563166087087392724400201395333415781610984861012338279322511881227384516215378771978078930982815808935645749672608287667583352984521819061843734549750284715913298115154426183027734781990310237892684117535047803976233837056525704273117840424293663904914865786925305021598531211654383158187180894612403139239123307169484435715838376978308634821966408521686029981853816828396271530690680858659952285517972622235389417073302484631269200189289326979952737445316948586088197424831694193015371891123001563111406563011359614636790925372934050274139321523791065075606200993975255516324710119075146560287396266260195079247651002608134372313832466389158818393228411217750223508390912335998879655464662885883376713879030455213767095711972337464620010259328106696464726709611089128594446218228000304053866744432401696191467849247303422445358162054729022438996237942849717738782356589981639707112815663018523707633552016012860970693142028998940431648319239468424614764349107787653659023323501293568768982245643394108648507998781053228883104720000891230643228313808569293240828873482174310455994650555488514952510059537117215653672415831065229828263742576258232332364062833928133134401036360761140354554908015711416863242645384191716115443093006425306646737842663166595422280398061110484228141248627202207974143156750949759445934273361646371348989028490372413515370288643436452531588240828063373113128767662149629103819434909973169039746674995391709584316110634679662275401483577576466426436231066574688842415210646580048303416674763610139390184792868167837031268518739527682735270999230495704369878650553882599193770916389937274629806185057556970469987937766991469187820946980097790712475667981632571432208255003911607275919186638192517135691344217374060457674138790254961668386512675044286296283967718119266756922502831706744273581633329691264672629791283663277862219666257209014857939979783854057279306263586544049204742758947784464079429202454969478672824763298140381444359118131780090934581394983189253862311294611018630570338364135851278559462649466345408395767659717478118335616957326804112220423416926171562712153664723427979218278509769688069433834765437321670703702251945904950849334762369578958078507200290226315563658667184185267738898495102489372606584530691438240559300645831652367355052148598434275019515641863107061306690312624334942991386082321619833811578235143490183592512229485968866877527845873572297351501784035077044580819566375711023278117301148131128412064107298730492421458441513596957600870694712021509321340215427490119190920326175859127666258499055498163039039340351124707782131005084872630210582882221955084668310283701193374224052380976839438612557130205431089608011871160658762458681231563984904183214467079130415935765102496825024845049703127630867715235531907309862431127431560437858732905979904958562113688997358600498551413564545214070816732605751936691960605943696318323145914850372612011498313701943622589520594963046392598062972473769244323459496784257524315286643283825747364704503486061310871908530632194742398043753826684349392164012649135760657850621793578104678373892149850728780586982334921549707736952727890640593487573369460042411112364386501882840569882652389943033705941453750876666786007507333764403487113800790558838896985778193394774365631557066506685416345622026188948214905723342493297210730737580010957371379137705734181096564381580661640957844073554325488630503164433073922027076797149159615418027682133231074916947598618227448381600545660496114228203130133438921822538222011965778422799141952223671626747231746096876197906337553963071013931831129259605584915767443059612785435687745538701282844024386936320622696777069102061252888475771762525724030144654293909329410989067008711602255900228322565858752949580314987422223612344536786539889894057402403620706626952849143151453755351147929069093332162395025211967731275250699621965671817053144400671311609436458014659879796522493393966360585651895765428968026281006338691605421465491600509577173483662242042304753718807113406758379708376925398702150613839615694435904977419744517130044688961720753838312680832962880847045785665971782934206453903482404428087938226191270167244738356652545101475398132163590124226211992224109641671526024300602254791549634379042891483319375179770377368594606406179944809677936945535584356016290321712571831427400750114701464434280930891595726394226464718158195836369935657424806745979164050305536424690215367330324155111286019135271849443910973919809390115367493045426634525055822053257472327890876886013513411910061757100841427642865156697905643624441113906819756246148906594900247199346507080347809899743469990407344795303925349257552139134719396622438233154335070528971451258408409156840999668395847842825261594136036139051313884670831546145124024886537839239939841194432704325423744374680916659644031941886479529647036666318796579744763164822437050939373104315955958402015740228835385487617976308585900529346235235256173008361235219222912915182133096385634650176967713035876823503845565130177833064987105555667569746760233828824426165963125263879965723727948893364240165844231650676788858382430034302681307552034648587309938531926120198739748550211760406226363259103921917988801300944280105973353981194325422238527604375770092265261136326303401764885675328944332856803185387834623034296996208346140976248820903297211535780415685228829798101007359449939253834154739887693883150901010207514562696970569867752972777004119820430556648295717036987198448449353041269274254765791975339035473517890203563712111820962540983633517610948116518303303180819349416999202592650088489567681861541282961454600334348497841397800610978555484478558131111931949961062059181339904146932152509274629073061117173034959676891187231038642289321848855945745865862457471982028595334203613014096376355110159400886733139339514278792795203841661741282734339818445514528193643516978089686544494689656017458599458297828981228695036642192308390493139173593576145341294439776643123347970279530882749736559114548180353603107305859138807012564994667498249605466224535967275208912851361400589359469446283295013623009045136638966824843334648536206085676120512836084505597045612977534615875080923556465744478887187944202543611277929664509105476943129955906648246374412865528183737025720973507737743713114182445881502694674786137553012708209097654446755540633858797643127517337732487267050303213350470206942878716760840486001903743788140682166167044305710967911083186834172494433232576865700043494765387995622829018810027905751955548316936763018091665683143141423178991257291831143980277252592292599069065029172510849456058810138203711910850270005485519603751772171255657781662313749463269191061367211963536136683389812321528024865721782097137191285395951810188866482409331596708567316386750048328182810850204537338924053603024715275409720504764429986098986342749254635286272434921784648392980445876396574343399514872123166865107996882098682521191713630045254733392685671430656430083609016567267150348963327234615810685704517277854740369470462375529694894231584939730416158646895336265599904225531530828262421579057588182332012353473399141878303240822856314736258158503729207759542901998893873661202521325924196393363942029949734738109455259311403112669022823546170085652764406839994852563860151759694092670749747646384275486336710695830912580731192601024847693028390554951696517222737692568988439258163372784933213405600434515065308846599484336149770163772893110528691624552758702818900996228476639681795099996995477337668788847829931348701998152318862675285801064068288973267400524247600580901901663693802459981405715133426506601024823905615420724092096129215608727931339156425547507231698557693877329566421773010782238845859770632706567140097763535054171498916115775718612300016617468920408947062726416612408370722497500853551728697318336011949244675753941614668641246279445084025695462691078633195771561872581992891954895024600154491364217604173531659535598002424739519038965536044552587567049761674200905527617803819708471544008697964989319446850647179675182405307440251220158669891121473173738281871013182831821302535144639034258784614935284734766411073900903091406674990900471249064927899671303281625548080327977703595869060161884899289405308999574911366113883138045096948441401241278534031104863926991481835078754197934358475643972905790726854357948710651545681464886726497702062011892682832355973407676522578527304784697632861146495579311983028495906396713913034080342548887737070933189341401861839548552457486263240204884235414474007415068158610288162314244833244055391542205493510660262420629785185309207394019326678753639336562330647406026663663458253858543337523916777351309707273112916521592734102749018421699032496907611707435457286370015110182188449184596727649804794025896951378201965681076414130462058784447302790331527494122787095480943483321684170556469199541749102170163693968145643139030438520925876483850719176380860106828596758935544711380800512457098982354950637900437857667892864126639975513034971176599406236683822250367658945320862877024087703857863927661430332361993057448306461261802030764459908737743219288043533246556002836016521864364337314951421989124538694815575366039718290147418231159156588153553059195929553617999570518212973965415351567577237453715768705644470504408545939149427189028869562181615102630853595246807735093787685981022491467808547589470738082513834115351572644757623985027206537789328165973524554618364264013026032432900811793958617914046801822178286117432836666823104338554946381327478616910912161266030381486224044713987397267889407155815872021901546352794550443678166922268127536101780280530356233138316387558126470501473504190858787293384936065254183457781411152916837615514414708792664487434301856401964680169315556170362160635563593095989146529886505944893929497538895565594358650722597729890986067640199453677865085051405476293210663571428927068401888344930789474410898047078708842365192133836375884646427122890820549074712096652718495266125704509980539215744838158039086632154079204784930274650511382810004155182081013518493598987893026178913489235974178855179423003071404100611327007108619258690860499990781671207466542212118449369990082219977105912473630747033776875793531042884423981630624547308911234360919932921517630701304999562515658510693363817208315662340937678191211291506479471788832711320343801729382783718212292326234856856612604987731723204881318054377999057825265424994771054060002819615906949042494824881266563582649595185670573472276376857074801024560343401330090470402412597187631972923256954249585225600158785108947094674836267679306763633721202266868657989076645633334236460867539782896092030822380963514565920603347429720754106653345136322171732508592545554755727168985977620078413113329579443983296924035339384075255377185856876901549306314532122270394206270592927977376369372248642369385195544192046299751288660844700918275347787975788951929179728042901741036860547710516731430138460644785594089828557196892790378457565476086941641615262756817624983168823817995572354957560262075582224318634776295940593582430386476740540924208702512596832202834610935788421381534670839406916188346148207561681713789427898546369359180956882460775902854941964154037261521378458370131237555969098261665548558217737321150723418702412967715312098298322420564621299870674142456600788220605010166240068361256147319285198237364199030783376876303597273919712389545444000206990029941125815034214331625439924353500979133025585613087161804971789000746901645693975278517085236392841051812692322734787353274405788905041753992916787639478394123205472772052115077617936042163140177645986994384974263809839021722935585162266887747026109674922784596457894433795557861816293413216838340002690945402649593062376627522556463552199729915218914668978875373499538846520532198449572130233837066218803107244699641591088151419231790311581855987601609372457792345441485570505866749850207750394686377548385080838378202070760748702727590447750544930227490973681965191234067639080985023403821050958755915685114503540893002431020886771907321824342137948018384392012862710591506907176395925036516293339494237447187321159491620602754618740769726680495699051607562623005941619229068139309889633215415366549306780131670448872018493538569286219572112457838633865313017538621628934036214701767384316842116287082213877504011969515503563924659348213786555740114828084422486641551161643347057680305196452354165278247116939585377761682348243138477968342377873383203058557348376590818978613287771170320786354000735789491903285676944227406342078171440841331734897363966840565165187201971946126273276880370134280925071575884791364278052738380598528214309076595266126176725680228505383064136905429065468005481073773865684709291652974905834987203244590154808142885156101791782777003830929148555593023172994130989524230495585828240266452979380617114688431319238973346980977490129879911289977205460858387308341838418193027191665426645067877678740569141348552471130330973062394433279218707532479913572968832554586923235122763108260896303290670334482236693319735140458749792375841828575721291460128833533221096170943859713073912194364450944174187218646829784587044648335408435285280127790472444700342824689856474709835856562578573873095119493996769749567529733405687907655162502495465553247269287129123849451891004602484073042675344525239320390687312966348729918919153505229008984593933713210036566190883115117912434570083266511086403268365718220368442535670811240452329503016378490313435060430507907691725359619626900390056058488852647925224058615040925501523247778340137329294647264184537870317482236256662547803244623790475220580875248515673309380049541528120429745952443513826717353245290761734617823419604660847321767973855400221990272546936212856260952351002868691670610180183070090978398844556553997445339025008102537642386519814513831860162650371219847566578449501076974711885632922746404903402266376048620354266979423702470244786198932979468203110413680394337161016243165333138481055858337409330265153172065928594876214497107886631442464152800840311611609700743046265699358610090669031990304880503722508789859914667972816620386517108443406277994292414456809156208238197866415407749290421608418159384412890625317827372017746742585872156332466431893558480454437362135364460172118236313002300188581376020017135629275074193432677273871651300210371921533669684768531283889762990617150749011739215035089347956372221644883396375128523384382781531692594008733422509357764729706134797844828761661866932849683967459876610960988298735643452140523582260776071654321016721310670851379009459120051454316559777748505320529923112511705116509853806948165818774219707885946013099206679182307506383528984856917316192880386793578120875736395356335185636770781736817250785088149995043015557127810399036455899343376492105888123126282088211005431970388123901202265736714505387251222069981241261024329525522481788324698070413769281644536131899842132697919431437016900277866868645450251996928531449365213543177289672851957178800288313259969575198267100479395723591284239680449218206155040643620852756364822677582127727660197568150032927356038949442740323836167012781287151167864537287496442709234660008306156413965851928515183989141895689283875791371171966782753924682954979110690907609762308051045207386158393423610573819633861834319378496141688476225766884973734488055246908150079356732800696218904264809615816621886315974092867880943940068551147982564498220308252360996121716208183828394886724251715391120297558087290030266537805450066178408196467283806771973997802344751107495862837469693673665055540033724737604256270029544980367620429581419116784036463525486843579536840321367876469887254383949027439615368626043490612246350952386450894209983814885215023173648831043879002488163024194891773408779129454321870382937814233760411097878460495314392397674839953958342433136867766788700335308445644293850331625381381713246085037351474420710629898329870613073325098105410509753998055664000530790956541958987185875353985204417458143898875454505659097020566536970810768245385756749905284813324195513650115447856629447226211833567685350123370993614608434826078695066175091504677831314905630957373515964779566340693536998344061001784109588251003022366892631560781329528818172314671697057241985465815225823325057823556292845822213938216342047088634254758611898435289109969327464862992938859472643575409902300282722765992858333782978783061762589753502747909298606738923932455311758910538888198407029091505818021367848640980051801452835147500291395710457273108980010072234889231879303499483863382346862284700858955913832549791159650715494132073269933421212088318821014277498394467724177097246912018972908912283794585960459463453811741019938185358803670755657626564199661582837699516392093495177896845754651769797568749329811538686861524392523505472111527386389370041424889745637611170130458326962169790945334150939536067894528464764904741113018056977364095265682148298841656873979161526740464973660612817570914833716032586969799064388462855721532544482480022495134812964321577576830337136774117580896250114750684306462404303024715045404810967123694529568243229172160633782949857108122965587952970913523831613909746356258027688942804116876922046787356218025913015100966117962616942755478316283067779211374660354966511514748878570386326269749828019230179033643708973179639281006031617262502245204938655334894120768183411516424012213388581237989181824324431263964321830357924456935930149428729874719861297657019925144356233087945246793955768295090952132879727092652536678977895316330857134865296850657472641989091229510888626913922174720526526329536867703410619948157199340359933485730337846617399315930547085022623740772311941322980261747916279644405326344880181193229785560243190619431081609834107167453819491550551797901580692098089297732554976310533773873477167148531838818464054662051252782153713290939686566957513550436498825942957139458212013650655830592260194049207616098719123868623854201149797260379157295172237383818766648494226567622453724055296566932972062927293442150920790242850341873595156792221852144187482138054817285319032507067797566231386070668539914109299703240419931778792613254356564130021982519392624227608057528323325907294802187662988054097363930466978425573091084610229094537461263050403831957000791775824082171373543950416339057474577550817296256315939513987930163375286164724091637160370571368186394507374173924917607558563968450137338306390116079467614057750914832230133003202366364285695773782569769870690012700348910970828146046609519901168898695532834091261005469102845284167835703049359742528171980995582693421785190839946245390111714061591797972919791082580394197325177569992639468951504904805287987171903463784965943209124300127232320270547921611808436371899504435111006486003224013585246966502208581935359367122371892641371858857792504371658737945474511784557297427737823182613535361166058153876386727544953648632924146915047849243448628445001432777765631813516990945361152116292037833683376089452855102927667212931263790794089055174814772403702073476593215690626427777885771771418349275914952998047939208642693993940884454493003812144959475603188576906965550817316102897615777229504093906573596951919750112794408325351182509612631158990812463715050306043665267916412605992933972784889341093175892372104708288018690551838744270764318531085168115449952223373057720679018950466109503766180904020917942687305134535289707829333996814234088149895795806973677686100740863367592414947265862366694548488310122599055212733854310109799142229031239358657389594940180396445123188907545693254820197306515280704863208640658442419437987981015226418714602662220200716319878470976822306366733329922390840435126189589934957190959470537056125292785035593134805012587997132778429084133044477950003623080579369423365299050874540940197053244558679026949969497285263642480223767790627341474957884931406801640580704243744312086823006519003227641769433428996525267063653996761817150800168580769255097721944898435569927576181525137189594725254681082532609593315983225087050719112956051114667132234358016538612792667481579467219863758595949078404189041838279963451522135316459224371121901564147008304688754942204272496951916469218169064804748981405132689505032729307811745833957915529847939021792583469750576544722396768398502375709003679839375716584789358261944602891102831819528722667688202087724683948396150375281436806171274794324743679991714564107283275505474408178609881580598689249025464207710720157835108511337259770612671205571428234073598614662757470589246848758288081923841702901562014264281260046488554274043276705508156565564611707970703591053965099289783287186061543689700775461200788132839829999035813483793929479751464826500540597120828426340937448712117392927930117899694041742931686698245349761408511587063417413769068113089055454253181276692528169384131903608750452362865090476450848567092142705811998461894632412712634144385614175317382849925097970821293979715429802670391069000422565237080456058235009044477010941288638489803418323983173260086548738028158728925743046364360964153776896897537035536022245109341958983915543368979171655100821464618322730906585542504001270661009621386731993233604165204178317485620816062491520573971740183456893741845799870469791048234570909468501385364560199850741135380133847818009867890289598329977264783782126545167533914924585792451742998397006460437679844963572912240530847226020604142015414131213963423501871843192565591487830758174044158708606066661186123882086025705609192895813963734216612587689581249814905554081016765898737194963124684186500242956431715340602432463617458370404254649823703894458176005563880082897969214551740158423115037702857875363005044301950089173938811339666319520523549701524360268896664913397855147332312413090145680052378271880415839784069002737372575796608109622653588414903648380326599966967275946163686841814274928819824543120902550081596168811847773642010118133817463191903076157267780913405462860353350285840407588593229378480302339832590502690466736233328218952170670692101836782911122443030298289699231932706126063122640091200763414199402438559120987775464527736540254700673371976969759033970756345543626995334530522823906937069407313136905481047041638138553088891640091789250980448413060206232308011592872686674033204664927059119425000901830414689668262514478109425480932765382584307166423401782474423220551719984966960100873132609374180496172477591517893751745232568165079054978667355339477152663477626319344699036004336286696276916775242514195008179217326075326532236465256708217238957010295480402556317600548256928692442473831827839590298826926824164299419833165487464220863644953246313444913409385181146327774201018888134677516434137467864395598981230622869939230211870558871275851092082376928860426446460833957754343991723197100507274782223265250200777932497042969281225256787731951919750899489941170491431991509909683871001953740593838965044682894306149959928647693438912980061997340163108402111172069463000309633565286958249515538277739061750310151735940182549977079516081491875273291469101184794867827241836522207752626647629418845021633971279047862777577696613087304045466495807606401824971759844991745195359589413722888659929939586601643844077753122302217711032443264676489838333308045092728046462154585285901416689941300420847295039472988796416798930748405968609541549623285039301872543686973955941350330468142557295844181507320339505168150663731998647105870566058236836454520349672090807139957931577786029517859087391573301853209890640710149232907147507696950566769960822545016105329250745434928763889964348027487565086304681288159918804347675917608452166429096673975044293023111526110417686567383341509316290411461043097953629244150471339024643488406264075002433616357959637439896454559905760117448005844710695770007695194111741984293786435225878480761068087402585291423082809974636645669916960507466500449537411814576977641776222276069530330794743626078523854295385956884779010780890583676995219816192408125781130823893975324102395192355392413179271734102833414380334323568678695100738771748872705586119517160112408505781663138962304110231790175115782147100240936646919762793741905787895480409694418189603034007384583102408720378701249429963287005603293858849287448814641242041583283572810060373656648402605771002767895899104741728136622245867021856313518449502400726915865726677743565035029322861035282824226573768183018419461287536016510226477622810293108741294940309642627298470323521043041643876036626094586191214152770855339239356696517624136270944119196848866286834849192340272282003672770699554454132252530957942944789128922597054299643184384741015685343810106515860249064485701912641961414189488680893729295638827043489494159145677870269570964147950530259701648820488099999063677375295282260267677392540297500435444461375776636103309279473421607303519868203377571516459864563687713599038840793541069194497876030127007873891657423514807199529158166850481541591467932957405567851954065511407765654899626928843850747224010506956169337102177774717056808268023431021580146728983742769484810384433269503424341297897227285901250920136907289430950786721852341963744356323316998771655108567440827725366592240804863938108751695905079034301968026163528314449393037364713681239497070997370832284301777496016781389012789448416069932999455438410139780290382022935964232658529990942770269560160646298718626387522584436344898126623910084802947715293992304684231050651107394923057659898669847478293107322923858777255721457583014794721627893190167089871508744093582610867562717441856108099593348919015130607416416841249235393243532037974050228923608320393050211144840392737748335832086110815389669851428269296624384381787352094749799878411956489031432516134165488762217951686184442472408103813647963200796450077277306482704112647175442668044540665078638945895454315599333070876519231192981001766863252007519996170584233652584252705501401288114439856417136152707172171871668751998786679799477786457511333018166517334783295915417255218614351894694447057257335377788182966908244260695628230809665348596542284990671645093542042408855936558621931689056994357355004044334442349466091780823845773058322114418646883274850740644556603043842331018421825525293477776653529864801382362269796099492554996185882928922707473322029056425383844574562184109261295743753571748394971412699314849387866894914574878719124622842985013639879001216814822516145000223962343871464105505082788286612226362096796971931852344954290326950738313411992472756932000599951466287265145902126741844058970261637403197336160709469853737032497228291845039628874526380263005132178448599302947725228814895418756813597030400320685810816943434187645921977839954159124275518988842712149533841288331045013308717160604883785727692283377058826744629448010243282297559510099108377982165828726617808442874251547249127220472274675441297142381168221394171019899547280263349158687453906241336884914745791726854896311487161567266799377199036035758684864103296915223117026019951966234077934144684687960674888153849536627607502476170758092271009083429854952835953915896475606609352927051170193788119864132402543405308410124062175771952568136780068568884064294776027618540339297660641305789834468244439462886109916343906728080751782106587881345246273280653337292271233320980597508207730478029787937718455552867725775589523685843974260541636682978863560110852796258087152905052310405054130806471985823302574381286292333070224166106691758691528023838953714523863303889580201351091712225903173462995062131766733275060022396168509405724787960709208802835958710924275785777715806958362360227794999177920698478136865332806452157274332719583367677002261635035363885855940172188185844148805755320715609826722426262359602734300469624899082900564838793531505548109440810570688955303650512218467517087426095912027131845868629043153647372496592487979677426682328634411939578726275487329922992095247396712344565334124238676168705152869319147915464199747533563719892704917397034380604047975900834984489337604421167953270943278065075261121739418761520595098082196954133221148591642806222417802754621424904307778889244948268095816788422044308438198682913039126143233333305547562730618363247210509600874509544814862575298071643625607371940771445239332797718394645344264221715852029145020101750464630920574822565392086457655142369730651006272629689845220199335730389255605081828135792520841700078867912230698014451389333714963885752412582742304545897507006309436867151863924479850703250147444028642635319306587293547725353491230260353342540866472107766191460038595003887858182477588920546974582957664633615537570494046280419330168504970800334996869444511987644343686878650446743776282230374618260133722231210648945789295336037079261237806261034312265151016405462570662656706263422700234170320956258319944821844866677886350857429747024061441565111315604508897182105289023728562858209123250234527521764835886000158060013666415099170329895289240464945637844196460951292162095901002034510347247714575590098011306819290111898762500580536401645679180632386702105506711592132388233963552889187414513758822965010984348151452973581918039400096431398988164114484350229182684852506152799847790712601579193521169165993343599452474789714373618338799703423737039018573419080887586376748886480195068673572919501417911380909500288492323439176268809164002320513169455060321551001705475952125807799536058799742935811411217315166005035676132890385249385148698254957332675232965704510674548592712362869495360033279859495732677906944354795000750558686999998190913010531991077238599104920343591803793140520410085598075872852642635612565001868948768815025258399939996906930322315355087025670465724928405223684374051299037659329044851659260983427429203652163594631398547303551051398685470653889721406624263307341701317498321698514475174727717439646686914415858823736817847300505329136413178223140932589817827792592276308084932718414840755206531691827602833224025080675073437344331969393223607613057325196486080697618347498558631585413422555904835486434141330920640161531181090662237395692031408545089861883029127785307434542107730266711645070510589804247948470428620781689346299817108224973736194252588077264769000275501115548960717691006317161235123707777220689368447015656067926457333360625648136010593023258859705101359104054882024487715056795736955872477328350520288488070420736057434436724991241212386341908477007198891491097212002679775257801705738785216868115367593931943112999057193220340227410571717375617926959168985737533678207527326041998736113198374022621128441915484897289282686408207236065298715660014634081025593094723145370697317591941576650243006365928935416470380296814441243717389643455410236431939390378524979448884103680650726798130325279013946320050693249784429695935337349495125401518510015136869460853610997478363947246455547620178572749558160817111837141924883520522863664705660101092584730250725438015882499575441154452805739573064023607056263687575340953529467233793129357073699045882867984707561734504519408769238872062115964013976341928676967233716690166254198316090739588031175950877945553051529318021428814630685991518049973545854605442162492417044721517018646704524943156398399030173618315709912024093972924995968584868690075159754177175711876123358236461164235751069293299234559126018345852611093162391844501933750031196019731997493456830112648551250085110646849390919615579519591060118463571852031646859670493161595222350847729117761483764788206072066531713262102670497377690708125640437068698342201332694746673404634996863805023506543209218462389359010171688903398387916811344859151080225402786824164928903945982640762259933773147375046927196080553438716001852853306484627249722473933792039808482719338245117706229075053018537379916645675920567530360587560376028784410494461945716969659381127082865264732958675722989607854867453730074977051267004041604268545017243388952511611634165482899776506158919838623370660283853006305141583101675832318995327583106331057103047965797727476818465790068498896214643378712147710616099222832428643109891122732160170640126429369111326173809362251765161205595759087644360033598766667851000206191769959338847102285308430173874132898323706934029463399001476936761327070330491303469831680547363179402226751166810221503887205238400981089142918151757545624243339288186467719571837480989859422520260299383318510214762771136978100865544061272921746803230104211029539764188590387074054646088808866878673647570876842169612714566108007725529741887387438726210318013067889577455451735360133873309311903028045240023576348629406614339700085982323279517589724869898295924886623135233361267429158978418319421202661923532240212639663719164720620247154477312762198787080991340380821665687787322295675815522295080323246940685843200352226082774743888342554332661640963530744320627618069132493112458915367636462458377062704652527537427404542646526402199389642741882591626879139412308328307850136471843335368577573374072233982552901471745859074352038415399370335131464979262439476798844058147289211330096706027744001781164803736671580214982290312075675045157320385526288507582165196012480332087655293978805931581640776750680732917488904494728610063903767452593758838931653349984412421013378429602485447264797379060143265854973627185401338643954976797370739921522249367068465874878033547986959773147156639703943237059545378477053592656647983876336746844220745288765460421210528586797490412225264655718324272668556272493515241552045143209189499828363530283513966224177085256321146200857848878956356038557840235271874756099552098700470818910354847847609052197371282227636695793432697747035676440066357774853870265815043065319993201620135567351305788803316202445027403814602363732052618162015454495303053619632394608225473208161763026045016449714790263376362611573249549842626471954528635040220535946324043232396535471077116054147851664853094312864077947028290896697650220126238148915296831427665359451010258716732109660830754934103509269275039810720229509919054729445848714039247719200065404614736977164119379143751116102285643347336912980165910894422591801371246728397097684097482555237415413405801382911272377621074786578482086103075977125401015412262072317319118164833506412142345831971289463271545028073949215958363852013452931605220367843384791602986940755116545798995747640296929638078668246326341763831995741734192166556265111420476666756736376993295941485221699513769479443585985317916682245716030926633846024465734324898589638246127245738402940973426655999974816912032685289820891554819811065398112505369746836596375132607210875015249642296115706546969769783110683747714904375942700066106804235792239702690178828319859030910697094189288751697525004893724832115654993593468617380910441263507866649044937771121989874592585975347007484911222631777387727868976257985595928780854593534472398039376705687399846723451014835591815940865627331294910692665014408266326116211367939174600960121897637400512904777712302315601463617697197009027413790887084149300695295825177444112908750045311643888981611612736306098690220298355323531346504278842673157597869128483868216356247852150799039061557188320277297235334557419256938826213460792284477996369140985463515397289198542103269284739627226852430734431089634188575104657681114484674172815256481569140633464270130851720946980507220948925074763724031834303566164438636237183139391343046501010740719572803973679530344096803458626246336876869300397060017138037062332259182518027221469124297360261763108085813590462924798639666898221473887194543984591440659720389177948865600939933063637919795899474101445243445831919650934843274208363413865868998670993091113588361617549871031591557948318327779461406957548157261182974755088882738641724303172310918141817781206241161957933792863093491713087094857252306092062910240191097739094129308975962198599381050101416506681071452315372071709101631728520253183620927522962420646043847059833234995404233186230554632067523718475512870282704558114369233268737088143668077046801895152989405217126571965790177764429983961297085566807929735079941133186143583884631504700705689541281923134180056260897831165410490304969898116277190415834717125112996387410942371841737676121978247569389945330530502184496160007741693816536604497760256334767622556408295863346013006079374722286087545649223966316667165302458657107923760700144894207068675816709928051979481368964500485678018864046578503560321959395592300702351871709204454465284798201330415791591956687823562498906367949317929983377486270551109908682380860146503024742035406474665558239736778709916283718901535474967400203505815066603126620741728797309460974242724718581667437670556932123147662517017965130461649647720132380751115034009909489810713102288241126583440693968327586141616958062357377790400018068213815209495577249760664543941252450572644923873224983491742575248899195131386200810635384442966903152231871571918670844853505110233649623412429663248117201021774458359075667076938376127454403022129532665920069703985862018662989286039736093836280787821325647660822616743878362707745937456540358393867066404281926931700704353383269741340873177509309907873458920970554953568849564113857997085306225277486529478646503437271654888232989541520506667782654004040311351852539585746329218572828037021423910765731713427588939023760627069969874250494718843261143861976690362031397359332624759373572152590292697069926234375389980629529057130983752525683297234561726137678323052784458549011752432565031363339820136696129496079437424895800491730124681734814335664400642294132854742648850942904851437695436331549716892529964942075513190808739018991809747405560787141658958027535983994334651839817274745221479075325035138000905633154289554158269778478222397819826199582814850056792665263363854094265858387845247603383637113975693140546043112863421758322623969454622005443429244147008109976947041993677598525732615268496005376529622495664521296906036322472222844748406897658219408697136538827173541295720357524201215623566915650443821680844034405725357532686074974938968752815632609858213764306622048497455756485568075902677812172783500640097879667362254197595130217041024637594015842906182961009763479039718348345620457462064473499773493279040833722208291557760258995509153629777621469416121866211307168744163023110204385892784664519551931221361233811950128894254711789085566435131805012595808733335829120704443330881508468937851603450575494649081352921493744739715267709988589582585839110189345284538244353156609249585615005786190948760056672145472629641817166161681677126541090772632049171072302514144844662875050474492408126336368941129721169713177496901704095678037849582143250484771368269168530359504565485076975449372421155865067571854169479051509533937672099292815532455522987998994351391370216704466320691636490364062254921084832236268350925933124502943006771730853859750855626562445876786888349470563376848837150151818423396166601082364468431866507247893267518138775634160958423646627694486646884945221032523248492763885832810124679471719362571099756435086257636847293525428669293856527790397451127333918690681423395618539351027572519070955544101136056045628461398554850569440986634442413203588679370142799559513149578226091414990237327862336159759531402352515248194946856902307222716663539470683834630177914289672138512690245017953440213210054078610207910846523264428904103301007644134813229057871589846983702781920263512045874957640031210086380466470094335722656776013441573110277313087672513878558115435784787439503828214482943380611969592365965317405929144521871311478908270979058152467245142314758738342642424990169555714035373064081460138768986574786367278514379335442825949002315278559363868435546300467794732320031971963056447887871314339566948939286449286733695571548632987415224711638769945002513056056158606290628259615625846270973975738326467423205917030021135209254629981815258996169282238581455993962438126027184085825015060138205353878125901462758957908532996211108897473925603124030520053682086199724173538554027554411787834526105783825188581950605544475655727431280474543957961935788252119605800001139885935883350871757349099267765578997851410601474421581480921498189487708065154234114519195625694897776484217117000952084153680042276975552698938324742237688572431486764518813298485372954471673616599247191674987008762797255256491278760542685827457280195920454506950939889569054078528146921248148568864385391956915075570668442269527749677465979970446556487249496920955438431568621289295391579178089549468746135868347228213568754531710237797083305178527798872566415369119106659598028202948366714397075103599111660699253777835208577313778459701676543277296498504310457303290828123310182475972738729130715043843593863607622259039838885084206545933625133534598327858071580014411223784141019297092458561363496021173218750253555442075837669694681803992425454296041670085737216209228888045401036358042244816697184514264490740194716064959497482527647140189199382646558445258465119707181969202499536908584662765600869404988459076173294366446458860012020182875104993876629813909416235437454716190766739775341191946751147172172388998776739835071478803456054692618657869234102708242936135503267175317412793241014570351911584798966333262476206273285431246303706024755402979663976181667580319640193862050391234742945842433034900029559867105557960970179124760210696072408017656252850942201091397054504657551314968001752018735232991900319489782488915627885886259653080978648704057572482197156679044630128318712056708702168059406755211607916098012478872841152164225516110691102072645264896154038814427844143996589044015370153489585369020592736143609008086252851917315164606372742728800686901930773644315216784434091362184549239484353101170726062003717833488898506632685784839913761813318895893397355289381897698877890990021218607636206690519304912495223796718055930858558811220288116820059156157456209471466884091506024091169266461299583982159929582048413163096198197581232968899841250117930215729923930182158668736761293385612764377069993490057319909775614194974321480555322808635850742374820352245438764502756247537848757202631115869155657121877001976357466381481128004974999987405458894638276689321418504391711020873815148850890100474323995083468829718835484567499226140330253686678642534549112059306025100656364185828170211181138514075337245108160532521130701099140041529350154652536532475141850248406850664579920682290727890035194237033986111347215494654599945618673261708656351613282599440995700324977346919187171413971671251877072291702377039771668548045893305111443015614167487241296645372799585296094089169945546548947821021261102087345439998253692078414813713797456902897236255170934988499368875805574278287977849156071473628671521524767989181537202598332305500404674605178536811838715726018486706522332081446928583737339844885342505638301504188546603273200490484041256039818139806768653107437080023628130305142768341106515371020699748286565340750005786631062673953985984483727902805630562520489383051437055081677354551544944163552798201276841796779070335255216372663288354089060003470558642675468268842090503326945712227565688278221231506106979511197408351183943821888508103925586057330441143840618834295531992238849382229970619022754539565339595106629951306649866233633861486630630895961527399179651005108461449106636509521918111372164337378477055814591467835399752802753739249785004533383813011696142381988628319347689673216451512444380210868244272708601721689711228584962375014977104230919207889348052730442120267133114543081867847278742517914133462186289243532964525718224021041624966537295665611634117442159834842590555239641916674921881364762361133581782091855049347816681795228587078068526473347726228558422392994298830362790337138793837549025272690804490037191411070540988750677681650015617108413916860897487767741481059877077528905539843310035926795077963926144198430990970454843246366765420051216850102830194314626510448411054718422507916307627527819472087373242013346849636338746438826242293200100340404130453412911131439700027355783631525539785760962167014258844714575099083631914505557091037170313130398147947917066333745395295441952824195823416944686478750969284514223907703463174196868017752647762025973859131952505624428718881827822307475470675625468558473422310917454564290482170445653769280264396279662751048067517236312495147466487105775512006352290571061144890957779104950972957473217205803677761297704913018877443146595915069667733257026644074747981541762139316169807528759036580031493283171364040273858401472248517526592864481609448176683374933662323340932470681346089840592660569261255049211423709664942672762812692488483309471993702280078134626423836314905797379415523150922526048407670900388568631420686964385931530922322177248299573694473762434832087994667418200059438204491548187088944402652940125966109577465225960376360917901168760985511427056763069158501605783039166674953021639601196467483079774886565498262720524253016590037435983408148568246475927418078722349566558827754795748176986125923915677732665013254147966982985211665338728162989984960878130842911259966601137093154078855278373394190990159660836587063119718404764174765433307616875722906507882212762838193269008529080817475383077740582609944005780612724322973316235462544865412526665206401409774673952162786195865666341676168053406342102317754974575285264690569235053388644422731993033670240416687645224057451309867503020492114054291600023843899822495756357025017746387763041000379580131152255475558903134244009409740570743173538244590720599750901163396679638691354471440505034235986267242728350727476575846561227929145614133880955672086564014924573327714710324540642024206012317310315634987691375525371262631857865490200850306039517080156215685944671051639238365310711964697593294794988933239771381349599391540920688957902594095387789230524882032286251753900663779062691891883238462836485070271432228779508570416592012124476415251690450059887195840201355007704619185586454769570440605927824093270851113748604024736763669664370505373034386378363181359232216619603313592892741574552653633905311460088046749898950514946693362934790356835662411054276852302806836160317211315871571983774339679221028788765105996161737137516763611264825756894620765966895351368458076740338647064523892493683615526492204846905687349511421518955159942160705028755611347567046286167990527668655762282233056513096247113458917347555834567824879547933090839544156793671590823150992723985060145052163504295012682745387330015256035245837644453826922237778349931253319415406393093199805787668685240182881057673451298445545616071438686247872689414398581629970917133460039728142471916429756485282842073481613655027930727712932725477591859808854804793839732167442172876811804551090228414086848153147127728392153757822506019897629693970643860447718278282048054572963078335864754743007755501366184870586407526847185276127153025063944862438715118381064326260952373647804628551792211751487259820645214905715163467305214192143095668526351829735595670836581502498629161505411645879039412960887949997249493937629748050459225155689712880958851301290987301740556951114743226081645352957127405197943426462594524366465586124126783050099244164483675323782426779518214546992569381179730462763075644324438607426400761262932407226964673937043739613548214401672562679130458994880956818646055594690014916423123791193213026113941343305669822802591913746979917748354487422360045818914945399938878589020490280876198006790915491905439997886328589819449131298074304136178773808354104072782219912239771749769309834583411866180280550722833347296258199370067245496694993465565827227472456355025687154757685777237205283138453493672135010200552751948878967723308871278438125861791334765693416371697463860667727560202886008404603364439004384779669273850236621295522248730222664319213872844422616940828120847956118154261058875812731158297129532516085450219739502975811316452705625273994205937241813666979234498265275232427659371909301509801323428479853392547810431446897613810348531625640566199325504084109254128778592785715931701375090525011158268223622460914621824766507289084649624611021687200006271384279019094190157732408554579611910820487524630515466395034574364839462607383333747849327980453564028326533158920564205404521659051874356000854952939681928795257304833504543086526270404251985901473335659965176621796643808978987398383867607304825926083807513084550391262878399006683970979204735242292651266246634251136275201868165531555616253855939887361806584695023533299878077273864241486951826786821961803113414244476835125949963685485148155603031343875991368796601139736493143408539174318155752560023670201022797219720513099068118822336922393277341625387546809443475614981920061268993383287932811482316273683236162364328946885722887354882143564226445098884330898506657331485530997325118464190149759394711049440775411549812327319613976136091173904318272432870439788211890786979377831215190279382263654011664514805008460209423703157818102776062494695342699270288626483117650669234155857650267956284226872604160032041549298165544102821615562447753795302182874621154694817342077817857363977715236768151397260203251774231524353389350119139616408422492551036886038554217417318172746247290164552837751167733691679222159643825759837776780454511787572001454363511573850716605132643213718808974596244165658098059607870568169418014150512989436979618610201063485369786115166936982569719826742677865346711828022085072541573638146596476618050331485063883550855129655453777394249026391738060109123719034941245381102696211017178258934182770249125895248281054700214611755291487879348135047613470205026041490970780708712624359727177142379947047732118226220989132319650001175294631480480190708120141556156611398900508673406899765954537775431621120403879715478468649600457987017448306381686520466449074866804591334365104865388020707478508476362822159117004398665272283116987861100386307230207524966480507272268505414098324283790476928100682627077830526482812517674656344064244901662655295910055469849505535612924418171830156470746926211377460228571583548780607174318271182279402321484397664919496926458227121688799845579791861246613921372503432283470567239348651467661452016962987196126611282080157664451638382882685549874989928705293477653203809998000363540498983563486934507258661797556696762612419505865015358208431475118920983357282078636826006580849062737542183702958943556362862017749102883835343412581497776350782218734069672963296802257561391044415633933503044032864221164892090220599623836366141957837649897979503406993139141099056841846526024329209712174289263903260141686217223300543964603093451615083907842508807241076289021934776785783198128651515412124254138518563185278112981087389217331365845289388049579080251658926793982471776163656643957812530194743963407630076029243468750040225701290941945699964753746878690484997384934312204367158494922264123851830354588240784060174049744480358668393647207693561266383003713144696862450274500053696658311803357016956844836969330946702216750888823464099800723437145947438725254068868291168707351976461107402632680838883515270543354670747038993879875837734115700030229882000513840880346677520218256324716966621532214979213590847454893146249022044052926408570414173178431159250655570611001547339117224536324808220405179412354216281213737905402519736258371269351307474826775331890003214994561912717322790874027486494606060666746788017873434788723844300060449849336668715937129466442202933809818283846012526188132856153711974181358787640468834053030986657261725269888850912747941824859491057562979297449893571668811229458178527691697689311909487662059802992283176906973945556975670965819346008135832618306870634196140380573098471659825253037628824994614057461155345852874488526700640739383565300560042912791680817916530512971992539483671586360064519605993026079889698475138422332172603312627380052689002964439707400542766773488327306664649559049837156934730707925149991728556220111663864283951717323121301421917674718973233998162010653141418337129437243739731758129050990523765332676118058323129890115330136582177025734313981489503319573606766733459824161838197321519611311873012942744397190387357042116526193326444723687758777491738891401136700487646347132320787781562910239809502625354757904956857761802299456281447578855860231139159447206507209982891216770780366276835903322977906838530893159485695699467995933265293448286662439330365614691008477724122899451455849868639394469261743065351424297197383351285948326015904568139815378724959982555158096756614629400572534657727113330431921020590602156842469805547490036284918214895593962143055622760441464140325968608194986442154351325002031633147454412173504994722161810537750674201359890268337374852559290120520526851814501639686071771859317909923462885101648690714933894447963934652494577457973283506234000072019265690643858199956348633315334387429550551168821861459093900444695653824704925155201496233083737108905632573270140623614845024077688417834665139139550250580194798438337325535391170194504145926525067962220514024863418593587135062454180030772747641742223312446320702605464963456453307055670883484724472849495385914399859496960545083459034453556368622982157671807151512251001040957175037189892878917752442714303438631874003391900201725822646973430518487073186861868682687368209412096041109934813836221417463778050201621819761821080937864346092113914166268272854825535036601585980885876511779155256582483597211158251154012165744979848675465496206156953502820611548898595316904257723604242088459894471629770435676065149693440157461612142938865641375978181626426339552090393218220549947713031090748349119778449416906533971397193369097774938458416959170043681768252415775243597957487902731235627659991748434818894627022454105811178077871974517019837230585598604835750961768975984839078978515070590073083026605501741719169395295690456280981753828940286256163588875285051292216029077642698671508259348491467925406917138138238608882384738784376277386975539183793920477020820563252244410806781623263717197462249142478771226968003766795542124516226523394963264010381222462121439415356929578509458931121101345349539741382784316605454943709055458135434889596133436555439220091976944198331088661997180344674427530166644136789511450811357655212376543649946955591898651505853048272751133867880127653143131916088424721502522468750167631294248649808528909530064165478134445677916275311372229132623877480559403450870281947275030208235430302675185422156733159075403384768220995721228357723401795309701737920248748308209706654491850273936861244055589686048141978334536331252495022173413186241532291728580204965653378950755573125860205419025918062651596877073574905182654585781199968175561048895071742509580695034333763032760989078454957129833672206378224317322929380261112275135617365348000130928679825612648818671237879213326355812608767110383208720349602491836936741837551032796439431218694815634515214784431975256730369728241295762573110461861944290889200380954964982594548715752505406353405509776312190586455684170527933478285822168244337310757413782599538760878056225103231757548600940081643759456117749066529820116095177392593802845135487878434943263890538348236745080437504952576887726134708732237041505049761096092550117964603746128830051982910111518972224032674199452444345836046095617570637186369403482956839127225188110880823196243450704814241811619707402084402468357181463043089677737986099928419612604506789749823271562790475337042346249282423141920701968041240903730775869586153249464673974777184562497402068574011520358398799109596905300506275178112507881182337558027806554696750420328522349520377953086360690588964274070605592962930418676942951648568596431929347888145245637983293432270022472158411169839245130947274578185772639243686570944989727152938233629545900876619077347841849208427920235090234597778329792524467328826418044256382781666354746961620312625886203510341535643962668022841916320397868727606641964006947524825530659137879902882622350214842317064612722983154030436418762036738509666875614820051252698611645948834957464051423051793410743058111415587123830875279076978895060142417305050601694848646372418286240225556481539121970021126958463352960240539608639147482232538752270761665256473413040512287214105407011133729274285814977463515600421963035209301386864959768399414626340792649752675448658312776139510506801183345934496036941142028339687037453248498286604526842940573367866232065969600543483542960162548338814484335838489920234035441096289885752219815058299353478371573304175500864284057371260233668144217858883847862399348573900032661605312119560341370350973453760389261510811065262566482529109507423630337857875750595906293831181162227911350746178322579246923506719603173255198163520743564092464420128486149412492587515961767162776591743078429882279286125262229944038912490484579405003361965975941156856778424881771116866610394127016203418657349874937246747786634011526920104737388471218216243610190644085023975456270554190305285978273516562192121717641382954267847937125715851505840347028334745584639439448180050843423963225135872145049636304259154594916061563959914344096247066826540740902552459302504709423575523484814889181133149242184648630293891962239364387011967855761701044869237127216025259354807950335325664823955201277333611892539183247855990789244240456572133458708854351463071058769829579321296319359442765012891680330712132737790494549113656368441432812797304269450345272211907318025840986174628698490133871981557819841843955461072392426942455668143111113686838524810989255816813574617473396777354427005141649165271815439671618987592797446148091887949240291453220979770882066123343205030555227728025257030664586685339238710835157434366145368823305902018136024681121480206480021368999453487285272010938939608623749636881688835821430158006857672980514425342621663062849380961106058476312500044105425907529325685834125570128960732712931410043226623837728387987118257530100985202951817841409768224091481541439250142182058045356287967333847974836938750337330673616151229267724390346850242115538584931645281181753007790833834959182744730571533048105400396853580210163541532082864990781927529618716417946160894884373297333892872435661024773665232297266167181211556625917738045790991434941330476229609130552099278051005780181324040203121465090348333366926787307060901816625210152448672564692812743453365066711692077355897617639121791737858986846076288072686052267543803867795234025824039002011538518588059391616751300443164386866029790569411671635878637845992475196120575377467637171787077446006264220336592402275550732398965120231533736211359770113014786534233710642158164144386757199702118455562266829674918652280419525581393902751558339555482750170481317756727800166130793865975434636061111994776844552000374794009740923726405578371950326789424134405339322369215866006924474197621056537403277994635854450704861182047599616372839342058684105028037221864137121661476988844424580561777763533802078284874963844151869472712057606354317362114763710324297291721592861474199550400878953299302043326825794770281384283905208552513236399268495176246421871214427275850851148594210652610838932762276604887342847513443499603004770803829249180420078563182899941531377716842839996510815894608823130782416598096376674032313179838931017896080206196786180521939933401890323613571097137338771119722639282320659772948705138518369635789227582754269949085899700460443366111676887245293679586834426272593879277957902919527861444048431977217189426342325583386644060086748493316122334097361791690453731942063530257401882772993295819197915451778541927224129475753825269312225097312511137099897352178494960789340577827323790850578077671044151889427169348404732214603445614388765661504329191125528005217068238888095052061381572810095657649058986072190151283185498983186881991047601619401501165672980352585625871048510914243398725482195933152339866332536809388369102844512229545382354646888075822617769809755530511115608451566698298020950274583664657710285137713468151363884173297049703832460918547512119935391478361075426239913322882250334644451363989813462928873518956093889512888905384292267977854879551739868252884208959127156822828202956491104756571205773695836621855295913392891367604847365329534943724129817424254993926346531673434623056708323294451242184826909496395705183049364837287155047226342324113461708236266377456723095227226371580058548237892019044595834719792874806231167926180370833366672694457126226958251728313059501052215180084800184378953370341260357087064914751580313886633887333689378034090043072172081332499562812823935552075163531552145527204096026832777815389504859291979741193090888588726953977742054030846741738384438482686149257390209195516195155637505332934317540853144900962198015655712791898935053289659145617535157087783041290167639973930976664311400810713549705286511419508764746246943091147003251164008954980136223604887950232502115798054950740986498937171429413521955220826312466377801158625388613247659278916860455537871517055180771485954663996382808649481511349159982726883822378682539197377473715249767835628139133877689336276192556736270604088800092873066600081488157854205738891268425311440321493005662104810118883219109760319898989662690121290067771464688972491565184248776172552268312851888319335116619749499747405556585846116575909180658251164273788462223647224996527557060026028118588794062855333765007015962919841058765073032152691111218176013841672972055991777971574126597780427432163131686585955026827677777341618364262103074245931814915446656788878776694088342332709191997224621946120683649386014795184976686161003423633536014675955077931776456934446362792183683983602555678070304149062451502121565560838003484716864893837271262972717664176997407781966177849356932612007243059921802740093319816909062166715733205206400110764328030890964412996301556828615415878225878833056947944912338758520522960424244061158147677987991183624069486600724812493576119366981812587405305247813823117503603313148596842566246199181000456907789691638610409987447631591762121203185585774870717327431086666065381483668011234355154813633923845086938831215570494635226409660036103494966872488746154216455879052460957288012944364128816091620077613549314814372713906518920997322706337607158844951704003195214664406022537763699994794781846851232774067922901603588396091215084818901637701226657509405856252393623611507605071309919018691818554820226371122140069446275202202803449619048925133184420828945807298695857789548277690115138383991092934760807997663352295097322792310666672680480163228486956205343843135345676708106851125071558115253128572124414293457945133224517749379505160483628745708781698081300752129604492105301731023412297317718380140443394324295152292576689445654080720900132601987280858996428795347990236084217123641427963492590166771592472593836617923982316010022180942111314049374562691847361771580261057664122399014759979195889431070301693038780160801739424577844246966453407976497404810232898775833026767829223309121861985773840950171023025080566008534607876028117578345288010253335424642407549994729999689468630512375519042682649905369057755962895365339995591395402552918927971142956058009698927722671937128746895418842693677756233563446097694664023775437523183467738595645623133438134629349491289188332245500160601239470051101223906163348590097885049921042272811621548770136478748713962217757706257642507658479191650319824157917247241927569146851477675910246954741318475832471715489112073124323814419846124798293804341037113962793994855178651840036176897104443203594089242907053064035103757399680298424439278761898812570365180632891140378823235436199163977820319220539898122655681567885506415849994125572734515893715528077628656608661485082143231227822480160590177521980324659817397936386841463911529098662582760001501576670297905463377691706157301308896464303458740285504607413212995019861213006722464374936715540586658511979489411647344292651733829396707338903118270834904531119430006062280533709775333858404398296383327589686807872272804979770628387459077474235980392891950239051554335052673741676758318893765974098833023237872925578199351264976001300620826484190117699789607462672689664356442380079172874030132447929181806529788081753795808930115166171310343342786795081244684883916877232643199600611761048978105764222896812945373993691744020533042891472398596609117732627188341599522257096495554783210104045804788563123647209886283591453107078643129191520266775445515599565672113495374681471329726309966259742128145020781555516506230765039187154577566090225063288397678628750619030420620774028523502006823369045153537691766940937724459643913932051803952580488871669930974038988707775537394196083396713634135540488270077863172743855134479899962265993018777822440136048201507558856422538653198099736499576591052627582642251060400182125831869023173929354439929728446849292721404775790098208218964726113167145699085555182806328352178674241019551236578172463485006886736470113551705507099409088931641054368882070280742579536290689479246767331006710683394517852799172886544999595030652488261801791138750383430464903276543435416202107801837538700626939184633735075921980144552526973000780203326738841326578753135244904313059583052372884403737850361410796685278297780676448141596128621686603140180814279407430343261993573959868625058694352248625676031031680750425513606104793864761533312864288360370325165741100175717463885198541526118167829480151041651745873113410180834021164790076480094585252207113279431071907589553994794441808464789824248168689368205095147803281360097167652181958012844189790372608065620830781925227445227377299618326492594500646691482905485922356686646494841148440282121034757151039440637738220510415498673862530940588690397723770211614043522909963795894303755064949877340543935918914638514743644610283515149003448733780888151502188176965671441970575630553257590086965786873344209042082445020039057439018157656902130026930214782724179809645082769417871548137265254825122111732011811530087559171759004067490966636904296427043775344227428085066047902044581580078440602536977803816444334277126794947358034657627361851126247797454903631845464504040239361956624535946461075443302569467897144583169042254175708003118075098335332925080927489087180145377466820339471110014115097869609361902316696595363560126675309806508191607577821206213792148654000239554451070721139376778113621336363485155408848076308143531327315585357750492553903756895093580317557557224437069194068377329157165687827983167929886495431422904970470258419624134631881923637125185241019058812211453276355104156066968323600462243478195657419582013023279209287893019536217645217328747756978785181781531150426046378232464186760041844171650176345441137877891526541455462881910852290049325509958228971681464650184546464983232004297848109657006423797236366533833989509826037975411698392221336568142572344716641782599622294628767412213672042032841332777114489938193041755132901759393669532947199308433847966134212157481672906904845728656100381078593817229999397494195196135463736508672529234369129772677059175077385368093477359413949518200593772871199896881030361145919051866634886631401088989062172354002270311897037065972367845789266266526455320306173537420475356618888069706420903486410578293963082966331852026481217298908692216408371477697816994283181279604742885410586095710801622935053766806480698506126982724946358873850715015049041048749973303537971480556450667809966152285029509406556360548210942254670474961618395680178828344005597402980322265072864127216949298432670795663662965362087751046907639343792353925840385302943810762059497975217994606638128651905154035243387115749482497641701716212855428018789355867670532460379688736909320978806239415684498618247840298447606885677485479974047640857545615017243141708165210261292000959902267303114373854078125619832910209950812821324351837345181120809565779262870103410008933729127161169763993445310371966406041159617777970755255967656364193395668681402548802933775158547545826858252332433242527875434300374290209311697576996939105971304976561554786232067647344167502661883252035111504272496772057564168687521408984482324765132561624041543408441853739462775131441077453449089358173990758614029986592092877743680517581349034558866288744064866859401893489587212582867671544134687439121262243216095235869383536362086584231470579502229728750599732142109579874645594078399368693434453641814508425144178819231575847669639904460684159907345576698742372875844288256399559983828938393959982583701906515603701853119303370145791509070009205433389133758801311092376425518563456148178176793933668272906951360941842703941655489830023724896295766387750221236004853719291957960718300078672812147192584132731585875259918938012032654816464539418337574620250127884599515091975066617384479687945171892486384483335737755724030787899196477191051626963773719935502533827612175504348329383004415290445567589970819734257293234839507335368811043514710831055231789591204109952043210347919568698691138756417624045369078006696774218472270184297657409748161752758033311765008401253996454965588946337371740700173783358573569328284659215716243643421272844380897459019038437635576887518974730308026404609111349674699413088762801080891217251516067808141840137010349198701163411324203999915763448264245180750849331484822977092078805140586611991370295725732075040759053457292544125119325806727929458419584677953959150764885079383971352832502637733488625794070177888786271763535301377720848143189612365650911741914490376598581509852841372743971252559138779053274975839352307991385303855234768641862417010153605159049460335202273115569142102157993121460395140608047185620275960005909247538465136775636949733381973210473152891115080676730259701733374882177831099194781391081560630381610013682117907313505001598295395102997117158846635143045055803785044511000231785768348419300212377571077912024701456746503731579430286605205426987975135865556649211578191525237951046755300451557131702680262753574339647425795687710437304692206551250183183582805179401666391765855772103515480974881703941001752920662267192426386991660255416884385954365130580057032327622712227957510794842757895621782350107924237835518380267575077055243309672210727390953061514915324040484631939214554579224503865568937058246391322369843335703630232757292361496479822070242226633353025505122638273230058695006327648196882483430474097103794245991150729461913310171466972806263317782671518844922031212919556605898875762098780455053126402228671016421825592121458464451023776789061110514157546606557251305950424510966863313637969263617354532255157737409854630258073344830900389422407212548665969159957390103910874237481355346178556326249725212087637401974099226994558290885270505827375838550067310135298414294654606382128532992620919315434339426659717774028667177185951221235140663355390328396690937074684611394993504928956045970617519659915509132089030861870515873022904961894526737716256270610204584862573697222246578222751262669792499231779041240866580786925606976270342590898632970766098004368783391816394822429323517557493178222327935551494909543637169331491444910894247175557219255588978465926559320593287727429590056226153328780967852983281332822980780933560743170936344861716337421713360649360988898757796657426686220778409166376652861789839250259353323773195372160613531174063520808067102372865287615116251041370885677049460426711964974053047844559832563027446513249373357491716779080282253912615834737339116970982215424064895300292500032681800386027394642269340866927413111840577206497617129166161849075094738473991576394631760596338618328820420424378331168317861183500951600525451811423404847018973862842456317136340184226274928570157614840795924528709252691285230257208157313380854438734804812679294316944041085097367684728221913245994355166238909953952366531237449415042008259835854276830744338962719712658653301164009806829759321673634486436890127262367771353212390323361017255349777441469263678093538505700319739162166344885079192143805640843397339739479298814076417188959118871220880560721545580174184924871404992537021099780855323793974538199054857565096209417586805953499753750286956975312004453027366821875615762423540062616989218533412415670600609310901995115819731636362759489652124016348226576215225290114295359619171232507881772234234850393132835612220592612950761067593774860915789297890863374726358897068466751172116496639268473886044009123800743046339080375246549226203586117234615814716587696236848083662332213436178588406751065645127219295801175024554646465891500986517157975013038515950941793573609453248967399274223774705022548781014768566000115210969644130933483985753676792487557611826382252144409724012279206856474036393863995228155596000959683510754132256863217397487983764189448365896620268869761161673293671850978926233932644573589785295309164954119932045053888400289977992475427117743856221319068170477830835884934675437589484427499285867478720707705409230780568955189593228843256191431779598298677981560915753123064585943568982418456432675661356979003927519688815393735294601356395651619117847573218350015439309718641062369778833635758680143466772078045335440649392546228646696298353900897656083567705972538467325418367440949983881168634066486055006375377068704407737199907772173598111707727051403877851763819330801568144696420825743227610827276106909320882683094022625822826078696288086488629094032338452383685774200914801628436318164865774550490799318789147380662295347083321133038029848833660473863741213392366726999523059024428580111589064674430039619486913389745048869252837830944858288801939837730218483055812265734657550611581777530096054537527748049414470718807210667995455819051180109792167858317456413005797809407916381523625046271110004217204371334290316083391896963420407229297792673491499621675854746277967897977753381465820184208598577567668322419722383142475470452377332724295003123211094803794341083730316808124714175961437231641993402005682247958196338928291382640711464438594799536075497364721053897403144482400676418729915530588312030289255853641494977947003181551526987132530671946260721403179278532104715835599527502318052063157072721970767107196733386805866791181215717262272745321921418356047591904728593225658931985084787147633230686010299049441313865787435975829292524609839738339594037240401809384329601825959829888393465043002322404372587492611686165315050418259285386046858281044349975967274616205355920607612785032420911218729757123100770672383402235586518694420743228119274069329992108387115509861048228892523318452451800919532013494328490005555586302241278910648891475078595840729812681605092251616922970231853812240846745440997759086980473999124354813165517677640171897088498726186927329829581429887447045510142572089885599067631448841054318456081872466991567035396384168896845142272719056990789151556601889087641084217188531920424767436786219567704739888481638328784033528897263057597439063741478949707494464417277435118985770323933493786435570919733540460924161672622989436109209122454736158261342646883433727964736586513621662953515167832532096678903506390796135732106451190511801410476576829923116403631014967563389059857253022017418616770276852682243702610940849308547811590144046466286537630423110742117649156863770751502952198368552437410220617924681692518428994868321896970774340419293487036277672946800654843102810499223699513364930810801690944147899944969917723405878705499537665320069058963215391758391672363763905541157766187642244309569851418964531618091724647099771734384397544478182289609224776924757433060310885642152677173571466413953591554799946303897944039436073710828332900050219398873274469342588400473635337871446973688825366078333640796845127615442551922646580524201299069010731529001672733708043373800672634170298430446265295668438708955093770941878933930585986892411737138451829548316615455041493000170553583394144566399303731546086954680008337481959479504435286032242880146140398602619334790046621412620496282753619556330724427959557110846778932181259209404724934084159966252246263809265708451600460114652521935654494256513686661805185387470419689898699059701627074373803029912413193085118160332724401958273037726031534100986382577760164824310428168857996084949427747262009862059531725658771040198759992301393344347783404697943938582247615121338601412588543098997103017746406612605213303065972369889923864219647140000570601373384154422120538800212286215970914118462133360321821792527536778602407839949096279734767427313292591092510052966381139644352724073015007545651802747220480462005651494889207452573533143798320541076533277124327290264385972863175052662017754690757342118402144133261379981667995856384024308655703788352781405151179612344089842840107457664024858990935145857284338527341168681335820835358701531612662082610622378865665190508884616144907450367455501994925640725169248509546704090360563688916852038733858673286907651874225829536324631514410588692567925850467506176178678136764555431426692587333681193541365712613999526767522826379989352730344892491584231585338538764708790841720205364427310230395818181695512052855051272476429404692730685327565508137783046081032129902107449790251698358129919271631557050586462388366462858002197495103846936111218514977892076427218345044976889022121485226302899615649441350946551443263171791979260339499847076748074182653303529457115922693528570482131657170931274790178438091163985550611099237956486526971065688353767912388045481301339189863872414777645485420288789286496064086109373343213014119854823623006333247705166679284755776148178140899354016639648708057396326778248495449525216969312276891469202292075662411217121609693217737568920802844558341089035860562515336733773245564664240403798543029777646991942723251595232275483743543712251257930730499193496852757875512075798128839179825449993998960755050387905823074378049416319897422781193848211250019643979781547065724233571156888283348758950990851446940980655591660580563652624211814563322590703523340157199747685121321234705774601832380358606588637954736209200567124207114410433027147524907418687580405345483468589014962543094710355983457407842690661696321566585134283774762995373536210796166804017564833004684194255058186665052854178041801261741151837719585183231763534239746285661991278168511707229614283477092292226918391903749594822690788289431654873912148896847196505200950505270458164687212603338201460026726731232623703471519555116767156122251993839372945821530600887107770471314875328279330989498137136026750998106762973627932541180195889332394034053808925230773784062437787797012897375937098084335374494912381405142385109864033729643027210427174474589530178813315319526816415610495336648376600651959379865920660920888284402806147878642897362117130170064967016131020626546083922631198372689244831296270049419273191403095262036966875629030642112747073204563526045076186171041772655475985618300196086246765259080600932875600459727696135761773218399320502832362051220430499128910319582039010660270644452614088614290572172425424710283494374053035849235001198377815832014416130050361009393820249345058763818367638389148886839902274573544513256494115844346122967184234512165854587414205866581563196666285024379165373106921502433748971502226116467910385861058363034713955857238850127650432142803186913380696770640281582856958216817486239312533725545037528683671693792703264009829036560941668825016161684583434516538041306448413752098459048003530134948461300088801591328263518749903115612711081316826914138262761758640773907408411753508760073538813703874382425416523615104475446715755712684342994438514897295728639153225117759967292054689547828356788835705817308599872127945337401810655843868843345431326280376436468531322220688554569346983655674890432508302922257441214683021991342386439410669150312391711657455137307112918735777999567522343168821122940382199401838775799971519516477714483333262496314856833632449369488651388834929940361331116427028267735439310110932106246165645757353071011236492111236128922092497119550316652025949825178041346041787000242411255467319200218875333579414134121170061571299786945253050702185579409851766200846430171028860286935026626085365378522084066765143769471017673087855021071025061459711005669602029761319049376311225815106056118242352489523372106294871512939580270913281127301039950402583448567936235287334460784454076382760995045728255205626978245909180976372310165698200386402815592497338745939019243328432191220158382517403917166199591550182469682794857568075926031343664366591824068318499466578362936877740232585422690590918581614668631085692508376655521758667101082830422014593473840940145303366739850080635185171050579885656821177424690903728867846804837404350823256131975267870819405782648386070116920314895727506369271530112940613531507775642774421343684072637254748052496450867487426974417935759649819201707903213148970642457270757873841275074401596127121600504093182990945917520829678092389428384308484976322267331350292742121137197901635383948650581270980894692219110149139887666105773965797407760365488291096326105696000512295248403154953528646893846642317959368639411860954790202662573929515356165029270294604206967597099081211899510249816789482945042124557832828312852264180040480729454156054901222885825059691425836354310846148331832026888260024000575482426467013416458717171734193038484369701293551606180461773746181289414605070628266078283218340959231287697789930888077158063902127887181707186102876439551395488422160238024678163159443576912673064356743151026513140288180223870590219332882779700992229562616703374366612482563272542727042456155919051813104032915268149805390086783750968785836679164930060250758482702171607212623919091740744351713408239883265828489532890257602800979816606075582490965892206372947863679236431674237048156324346943691783645114325234255881430352776656237158234632445021365138094841265421767020791551218982699450925883620273171878876501095956495224825271478536137261369623076894370865163539093914850632178833497917046156983481368071275768981030338105061453870681960352400476421563126012862044970517804661186381550024368522681478676350721265547729841174523921638592575700392849468580614369464651521537277161777647734066511488502268513463020203121449619091222862082544782134074788457048635258976329258693070338762559310859010857352125048309323309683089277481359708494055609279657666927046943608898802306178992621739749534985001512998076117226658624582530360451062186708388738071565875024685276221770873610490818946651536395948092227019045764838733630532860241161715181701860139464490719643213141088367618867721535060823182316297775866804941164878143587874924796713092372442821391102350857837865257067907312465800067655653916358302066633171257975803073156497957202941485650575510013544910979862980041122956131878317115939633796453313561298754069397905540733388248756068609999940781239266290139163064965782546110260545130727805320955696211348280568637204917762202669610456576354072404110098932754012985408840490565439561657057305851710433307942085163693074093505944817336529762522455579604069827621055852004962231142375271365646034284852964097779146841250246929071579148177541926939032101909408401894048819259918244420899361591644732588496042478365258582009241127045423182088241849426086260355158224387371112404078780182483761315320865826820189082372476535212406510579493834286223219077005458775246242630850550516455785786481808092923164053404632156602513796878742863013166118185145760972333999677683075519417825933164827930769291645573957078769800701916225808753791613173319881258212771907056430264556871452042847829563919470860569035848881237669277818762089091090106524033033320636503776319271060756234470195385966541108370667290398725013386368278740482494417505172976696737965286645900625084477835181785712153479820378077694702952041402539127399220180364540509776500206332530253907189774556590487419374101170229945123795855655611315283228240847272817160282076546374911763524444167973816057236538467617991813183924161880603586202227855221907740514557788075652164224800907164150999829213882526755817804962905345501639218482612560428981215237317510128804981540096221741524981325352365123017999952174041702577780680126414435889547787984072345695641083549663785051718355903465984537322203630036833372453132978172314701677172781098266546336038079241559555439574039380978918959165106147934005185824538507453456331574502462381026932339270919920139536930576991684652441140781950642275208922528380355784103412119078669305784835063217611974126093768308877197180718989162629920666785602644675424558794547663153197803279701999287480395504452294413423318929438639216741512586000943908957868227103884910975973281160052432110719451747210568776230041570540206968865658465010634312111565909279271163240770251503260022967546361557294411064826394959649762024978027634675305488822391116809481615241299154608856683893140604223346785406518686296487667253925192047216328398969183815846625295002719588265036929344829430691256060754653451167976631737610164511134130834140422263069911732392961266002318853891890479707907857617200905219836460965637098052089280297026987375422353193747626626792677110992013587754524659102772530945569576858802422159974409598669041898469346751661611681896351448754741322868176780018367995174708462982846217811698122847341074475121228925374958438848540462450075511382090851755831846477359292477311834522506526594517859458955928834781897847839334447426162393262293372271839830309919003700673923250006968038574248393854303113442602967229599438015195429483317122597732546165930139775661924988792253431973537373822860093435670533708932406636633754718509234417226967294277178319810925342510842041946644557500546076432354161593811354966417993963917226060470125929908544492319345020402734504701375002705488376933761185365090762354645518093266993464115492088186519188307038849294567061560823601756136738828443104394578659842312486491738716484929251511066346625385123797107376891840515395383755207574231556413468765346207121316099362775056447943452879841293164796839549180176940380948013221449287518578164761923239084085640929928206510178989008834954227403581390474329590319127854771101509389884234849125150236315620163212040555440264428854922368097630861771510269331575463981526423458369986063084304411512101015232206799993542594822395838437824153433766356305241624651897692644717903999195128406317585828107691523565752464196194841155277904799520431403810807380114840544944893246503114435970425706655975341768680302410233314017376556723990594974894229413217371867738156603672749776051688725629611454144495275251706266603933679302753570569018605059264372850539678118611435970281515022187741843257980421108813491913670190692204411566930212577760860747533083016253168498787581205350095299278417758254476124876904805186579000641124288439352966055495119955238210647746651150491339610272784496576093208929391927034542072143533459544484195098559084467578529891399228893901584294165250639168562087152889246427430000545190107756247765260869519317806449723635053529277047821432633427121994016422097764650649444205126890459574034148508475323005532618130519882925948929248085724913044189229073702918728486748022866905218868426482009291934399602434919510126300460288157144049793797031938039844490090524536929024082680060021157805462053014622646234859503961589273987568761211870610248561694102542481337047521183954978040059523369511494750366260753364471599756889210378671267819148150424904524319516114401024496457882349145706167490067371471107844833083571946202611092083493364202566905617801293589029829921720027443038997685547363004354432314832805940787036237133608650401267973845786790696290201396950300244445816330789780226481901495132693449945710921585960486120962499396160288461702227275824337645385152109357102764944743678081470383975632502297015752267666839896249172001905907053059265465559578496276448125295060785956980925891852365648945975805161360147246739342064467010924158517739075555310480690448313349080265550432338053743697947135019208289205705032859875544918303952049277135746524813726375040597375945160263662798076926953879209641277328472300488173907975623834321470140464743958606174315338002444797430021521357939359494871269996421210873517876412840060126047599670714220406133604382688543847375779242115154436254019335372045713831690904756411884804814541316087977629242043758925132062605864936726892341500917941816241926859586170130827789847870557618259045786782914574415478270749831389784787191215176467690033251742580715779942017448231776349164950560786111103527413957869180592634524251555258978892981960919512101619364266913965493818456056450268478243318335141867316194265357384844087920178686371324779486563111531918254066403930792280913286524890249083977724433059448891227108987859872080938198694389192684276014100605767058932016796621273112232875740174066755895878464406204989664968222716996537316805786847363201075296130221823540553972538236122819947507818681042273088715899058689118265612684695093873001527509077966332816834396423855593379449869264281777891060241116997080528755035780444270939277881816229084763132116435854043834397928457129948426352451390122205891732818289778630272571987850297271866413623633506640261586709571236367676963294391864211437519261702322535346388732952032333367105889554502916155278151113553817450013844880924144628789785132072081422969978026179215906859734984896697018963440619748433262733338289328079781925647247534321839807705216920647558114150672857237684055097094899488582481952698800469284744573579933061058610519733780941338092008302052363713870880670575489367607054242852736329373126007163389034570152929883956341514886479558738128032427458463623245550871158706202824269981615722567971147077364405436151526675764632086227339425310528346800424445995760389924267610621391164409385234281689961378487438315457994966085063446071313617146297168486851551117007721337834545840937235187353671970315113825671180115023480347918069903245882582586018312491763621578117598717891164554723426030715628713562405936695377531665687644278160001021780329831858866950478418861940494730019871282791040024717169268058160806831945483529375838753475852675043819443459047683720171970048080418576504153712705863081753323766863826619876227622450033656179959219240772267077092855767916656627338157377844168485739280926201610535077392046611753970296420865254481738411185105460089601759341311589131102914591698648717433040669670323393129379940485342577613718148163292674058562337925971099527300634127124841866421763235325702979347811539518898656535445877683959719611311423899990097055813307880300550317222077679398796976977995023192569046921925199493265086428606390266144192783623240111051844268644336211261929074817366763859071938947711139966851742196556279146802389482733985607156686319118972715441466010388373165255866745080660851583022844619698594328973531566320166904002386822432091272241913491234813601362878709851730116703349667501221335829361573493783012565974434202076648369731568306106616710329774196475853102666902225720940808097743779858515560765079593518704910005573343615316508220555623091782568296146353618432434611693569935689224867395483114040665729704497594048200670623287527233188812683812245837109067507026154014037048852573244766105988752693160199009851060878430641404886670662792467378308441446697800273164514421564553085582195961188964689094901514056156560084778312259910650868196374810616814381610765519484670562016632909262468260826035091495260280192629717668862770799031883145581821219575936335089731295180004731417912648828652575953848349008305601066761626700101246881734388667822620223458055820131299552545045347142913404223293587087645921346452736438213581784058825410412850538031065222059822990956361495935732554695629514089270478897566337790043600521659681071657530362648566334992327041322187918034762055114438668637229964716071919665783717612117105824227092520200748790109845611545307712588946980152535280438431724031568798376081636540418539605828168235505134109558590282641593306009742897051969942597557993276867811092367927259982553326083451347178795578521293458004844778362923193055859614291683904552885237894702739546939207918748658160978570941147598573519039931616056765011785267088993379023831870522457716039560896956095343117409279223776897249355777268791739607238151150408258884784287117945037521488059104344567330714760482141377543247776073269390384838157150532269762535328158101053823723287870937825613861104697460611845515391171679555440485875756835772027842408977928183463808243876369314332089983334469880697686041296224192730383022744987821755591002071913220608293772144016088338477112135858719645864381444921476810766611350291172905922052881396002581075777137443321928252763719267714475874316885381504369921097910755948963359088843753551837256975257880029549065431787782479777708669821362190084316030797996764456262548644325712826152968847017742010392108157166790148084195585238196300895817504437861672451490168965254757448406912230241687647553884586852723611434333625431999437560710093089065341777021128636380426635152871200211106286241837129622913452354623061594457705749250338528148546517562558987767738343349717202015621450270295827640983188673524558540728038734743779770100631834969306066274612739443977527164991092384816548679706884406160839470919441642628918745128690276968769880020042144947934698375462190592114853781908540968108525431414022625165571780458853338269331283997928084937593440006045308775239892997908070589583284382498355485586909738456356808687120885548199976396571279941356557656437402164554319543592739773417159364681197978583672726569433449458140819081217210536120861711394602710987330137121428334319705310548975033858775503472052817668936142402872264815661234722294989654451299111722724092199526803169847790022321223687720838654307352136500926514835807737266452953214818198220724731426084009711527083405069093303476301671617190335463518783507779170352718040641629718366515044344770606218624731691850767798636482372627589537177107440475374814582914611389521248940809037613713250787010329038104007926066320166114964080491471909502444608522560968255487743457238013140358772778978783135809173744688496534587898853562790175574944812682996462889460172913913832416170992336361612195900219301556785142110759404922314181634495002680181705312440800722269900386311771994134982325769582345079451205647009462991960558063567046273869456824381583408772969447925097304878355282343689501584459210040921056431118708736672940519859616334934935270301175419160502029096698916355073702348748281265048228204810663967796571844831999854976231356138886557988692767005062172755210933660883040633889613390946265185296489832779865430004555090427370474353280051758925425858256574808583202570883859478771048905973229993794859556155011910809231327274778745581085660308791264803695213565737752687282488628954907913484508335344276101193347882992512340755074895783712407771685381196844460439876280646404600595778018558933680041396117234008891754931547600611710378272943829691674092676951694862902100321873861945165574784211747869629220821865860870914045785081689344542394822114372955484500984540215497810357416151022648952048085955640073758549107025456014407842421658334092066781697607055349567393819939687517721685236614468551179765217399231848630034602990860101340379678711759830582855958018381452041552402336017964840993709221009296274658981495692449065675452676255271961294567024635460094205764324267074812187042132074546814472333778788302930379770143214109002244948754904632416737341147287797983636892900371681042654900212679954679489566762802164307534521738941185888307248226606242941759586122928651605745024789161304283241638943268875049136702613380376194887663869045675319301109537108938788355492588046443254607280052377636427110108022857205706296733798555313539005284763194051833202059872277438529397248526521284498675476318376377843216247560473417074721589774931657735606993796919619066550397242322343721891291143548720965127308591444508648959690172286191992456764826011469461080131910169888102517573944352602886899156615809614044756490578950107203546764099349929043189538118996614204743333414871939625368219679727087218212545278146337686212777979695515053156895379137446953032186426362537969743573615019809142538236314478875322232084745880664557479094279248279447367438209731825250388693555902250225842924046743707502157441313198954101945832803355936792524638004865210983941876776538768523583866219840088683395928736215853642952066679371106267596928531762388673916245891891318366744807256426734220736397620812172681820971254163917080009431076860030404417661607204345356809339116633142374624272323011346186998667709242716544801881137220049986003207640121030677224725288623493137365899217538356112695538285017854561019851765588312799979477929288278047479310155210183755940206085873035447638990390361236131355444243862631782756622123189222524354439037460140801193430083754539413135109663150345699887811035595000462025655239311446843186286087608386394057949174579959319963071330055895062084566890285229953897981512982849996226680006755561719887008339343583954277710288126495071928464213249815763861480313129162581120196521993109969970032925691084344842726865091703802364208227344072514574397196162101556650903619517369306435381555810939457158565536724513388397886733189718694583312838168011665602690657873634626401053034937456121422501245147928201927444020127560679408112269755474349411474370028473269204159944134740901486196184029933348650078215927330463550646399834164021873787260141076362161647237603107918088375628212660876276887103199502653425707179029951221277855785956640085458160175768278956241752172479230010605743802498719640116799124700893423498286071584612807539400330478201106221413337852122644330660678875158697443293559671102754602875673286372286481752496995938853335075314775112516776050378986918531744495939389901674884483621268055208354358508508355394510701707696707940966448644990611656203373551555813267481142202470041099873236914475619314421597905641845653288796731605511347929252018918899380969639482357373393783413885109534266679674366511981560600065328447227702879242425013689317787841973793063092435112658083184400148994490376714593583567485372903091338835801091320507129222504106800424930148291975234815238581392130143394823183228775081710612758479502827085513629013878041081520962150970969380659161755727666846930370313928221737911329140210052923126621264224895595607466588341593481692417842606660608213498413644233262972384405184769862001757995409725400235455534988517359029758407994313700249392121472495748810085171525198205065649099303194444944647153928420318199434205601123564317346078805186133364543120147973034139183107003427824333091850277867206222851323179354885746756210964577016396344091458151603781214001012132012075965648534626155994332653586679013899763088066770916568914129237172463226706399683661378152639952998606860551348459842154297823927275423529608847086313425252362157856857027541117974943525492043026278824053556928993082891845890590072076249977898525051939545497269326610899236865872848688024495733920160712070596705413637501627009797220927708067905149884504357939209718391803224369267819973717035985575553828093722477008168510523006086587628221239470798636697743045906351947659644174763728904958503111684441995635182173864849642249964447272591083539774248127618062072397057878782675741743837944784486453764266701194236440904230946164601584844431816844429056799635629949603112743751908092211001075403003692561985469386785635957747461330082246193932235367046382198401513545847593617947271989585501806929018989202619779306309615019732958533560180931889662042129544993153754469717693928465373691449970035924529136116675619305309073088403753644405342177787862005044485270552701795041672000263933284038406908781472135649849086234851979776737733215300808635615224310895229345419719642230318554087212427971407716797027730787524866115453430904224931813660235309470156190852575282696026332610814979441405290747353216585619023029401962386548113482570658053737083856740025998247475195704760813324104733301939810529464700037727938144954354329586973031414159166279880097499716741443476024018462016963177450509092155558063499356570737127232874159582813047520360748175545557447496334605791440144521341114124255512248855750090902769421524374164665940616990618003560503516311084554127700239727266157114279567231514165373349770215784797019299510021350586049259665177790763061524160621850168909701274149867261752557475520073788066800408202281463512741408826400417906104631699981196074201006297706416203905507509559092170214155085687933984148080209533517683942782896275520607972662108199976271631156046244481502453661685036500505293694463075181863274398740096323864183288592790058641815759598197910448517887714626863284912804978545742262677031450551412296382214508517140477052419149131146345942387455875383200701480197358863952497276445074480992726592908622396705657271049375739084764053570961507479110815345282689145057475745651188600886610933713643565313961243426623524068363673077054112964482193557600034114746103013567145701404561539937009131724029352185103437332574261769742340279076440822660374391119799125643240027823410781461008092902986387658810921627389831566993949440893766228306290195771674584319409665439074686118605618275131513652435387490690014754659969891464101647458849720885283612009480442337662008529618694497275038723763186098765929539912590451734681312551860799169906431534728763802541373106195786891662644047701565600192641374029227162925658024184252510541907502818652870980736102045276983197330653920099353311768839606224301346194814245583074284899456065871427013777616808177496867238279243726099210874464560740961991889542783366243877323111473005713635604845459510292352736846929259308283060931743449024576251780534791636590935483600027309119576955875650265177025744729061910839656375577596894048545079050708661308969283363502675815818401906118721715573079233302276141821604752542223656571894219072279545741619439118312775442394544339783463910966631722482675722739898395638190477192600706412703615975692714406851922090194937780315246178679594452855449402012510425678279103577374541295220727968641898312544645069065833668840074892861409922817654741513794078286044511432577654209151542287031056051818050292242904313372795926607522507353404447044216533111696992136460833114849985861878510827754063780070209738925461716443475745478511312867674444493628124828249440588970335958100294038165403829775064344094921046500038691399771315016957841817263356232345878858466012065037065072766132079138168123875360932184256269813602494720098608491431012505322734700966991349433868473201123320182467730041534616219677771812640452335845787578384730862580817594125104888921753980933927590814894127163027464743436225172256360615857350570336940164837406361141576788845218815995068993412643718714770299165838113128442525077351328898293322125960317106852614128436475103641948245443173451229919775196094169499359401570753193512908206989426367121055116317749949956102415674141743184395172645841333715974147870620709435616157212204929579323954993602163939357337484674186253998696353460387831876603792580172869899405234856284375332930457208064696465861524833351795035725563660507340709003064489428655195563441915992929445916379578249004743396366656720395184454809661955628982167773179404684161456369175962713497645393035516506869857065869936114644032673150340488057389063970880099335125753682220889176402264975326541579162802970651428635076904628816632486965865236060383477092009292929475134532353395040702339257459947437608954375263095894188224697481424880466048396005014861127818921174537224742239260923249324571304625868442990219582928123441139634916535281302633067747072772734290852364774492922701254880200714958618197766864370053771402658037791199938711396980222240589025854177953320784762422553044989818217348260953688361274377200731451048900713900498509417426451704170199054012718768237414928446299696323968762447994456363441980459984907393726451161075742012983056606473016268184129152750886744762691714720946957167812656483852363123422050480431987049182987356455019013127549431345239155492333797519219704388457730400941575587187122515015631143607534579047502860853854349682417401183064189678094115131742050713384767614342139366189104115598782480198099315409432263030980409339123667004463818612292079763453744182537259095510216007551207858974940687356755931677785072737139159052917371710227966420643268021990796010466942503257260244951613456699313755030871179666017963590838219410719635755015298780100686696872288950397337566455584893886920610005544262680619550490170258755623620975363680854189015083920532595215657082992203300847608781380987250707324222288051875692820448344222377868400956993178246781060992923587920809175534276629322689046692630446037782445510919412879562921736133841907607394522278410524741837320015699136867066166132721083739721934487469582082228055065399789678720584670971988829829316017766188786050431259234060163084244612227861296429947506356076031857958626911797081213994169151137471193794214376972647146457859560168467526363644429246789276091914124123066700686463764545628933199245219079916011143563082334336410601484982212140041220824754994304620226245100651613395627154488837062807383198686189684052440731110497764511693200664210510918966106162274850292444333375416145458020354958010730025162128896406117480938192766262891376192239965201682211714882541192567736355019947984372657937346867706470619058118163831246635507568342332346290899790817715360255177695354003075004555687063659473371618329100764022257897863177346851814666031683315636435619850870851275874571482320665185238424505404110964518029701265892736520851158873498245501547230052539527405352928984969728567817987528315171493072085408000503216279938049095828139174857679440085400426399591454383403385010368755675503788762837631460537772994175494379978325678996835512659701863716356653300265834817446033316378993445692067928805462545004516529494508474654945574471614182210078977234514608348531440976961063402728402300375867200857654022998283620387116753863821210986602309239800161003408294833528729908471987673994083760351264659582759869250504215144130607415026863137522450616233776692573539580690648788916606436046914500374758475192247349614572396008238689209905172815476990591416235301081404249722474103017576001642097256684220523011139050769520161129923546146336113198026290593929125201180221955588763250485913711502625597411890525202600199596462656575096025379895135585028581664698424239844919371519352079317762370815223763257650501918265027385468405108123053918247613271400563711147580481175964855103163576341061567798206895307398417809060070398965763222779679457837725785811540721813241048376841177893852838044264698568095028006909710144088940055061856047229762736680696916389646681463711315940915808318132283665652685337602680506286990869509466513923716988593551377570778140752764514974708817504312153686231362519266975228510585215785093572571914989719131995304231531374912534169858471387010438719584525002892065273926816483508049820165619079335420426246927162500417760215575633024535551146008292008343762036078012973669565274529779369291271320978054361282201681135301080143174346171073429903561726149610191060574244389404308580506567084439961015906141814355517807987702867241627535517198150449291806219482037996712007954610277679170681453855099102973539111947854409526586079767110383056704413800131636153157699713095703746322015180418883707284409908246181664555512473212350034990216538045710908626176457120398152018659416312364672244807125152585287680399398000443972253869180642608842920682828775482392938803249158407777911963452392838886430840539383813712325090329540656320385109943194290332826722713462529270200460920867186429771185273143370689919689995276373460239817832514416204449522819898021850050803674027342016302849612363532713146092738931945455045733795816287190320796506812156182328318988178970595113558242138283657361967567699901910025946443752897810540106937991242306494743990148682643972981862784423172945786435920656805847769859132941040012228455285543759636581170978192677587088326887582111952317308137709942190749902634041656913097083268504548992715468383062883382183512731814256615039575700639729634578427133982890027084090098652427791526176025198580789881616599426989708227942601111497228653953558510432691570952308770565566892517131928857227391771908737151490669606339424144569802011979593799381126183344891982867802570273371802442799328619879326301506140783739020109848968847515881866796572980247869958369650161186974373509851687734209425692322844701814618869487860334790404569093675331931320906017463870524166878973896112004672205612951903847586295584113994692524148564802062431588331852942179939777709108886732226808247742321107851026100799941526818689213242847685161624585887985666144494411065027343792006454970149237250534804918801103601594669115396016803859265773029090396994397692958925963303628329473667180081450843454141843320843891186756677109477920024347578694317146185914040349176837110568839082188904397660412595341130633584936720992791951483445852381176812146340284822117047285025151325482077368849410756841968007025096881756795961813355495621119353077472872677663699980692402466103170705099527327813144784725812562549948937583288339923502468831560371180369331195881267267177370503221175643833312976593712757605313124232974602848625052546784020963295911439836832127507894042541734038947308033829967826791863982807099660405798546168439705418025334020956450837188437597612810741252429326192160579131764007547916430959634716989385339205959144605169545643955496133104866059407834583672557611229418944239466689418629833000412663663336729450567122495035739468277009952891100897613650312718580420106978724399680860889541212159830561729977511538164364697573800348773637412719196299731566712684722104125331058107386019833158581352924752565509883123460543282853907056724952242729837128212891886789048294431719185760780087642613089958555793735963096800709858375368883342004496907364921629764546519805464906331478219993482366484352990349895003993564946959309453553077191841807711192014522418538303113603560865299303511576679634911520411596183812192352460601962394595209132975270146586912017966212093024515015715670535441078265466505088312821286557225543543038945317417695015967863535155957430837217380105283739186231156917547508771413690985613413346077071210733689019112505115550378383360391741213431150766522757996776770095869765677452189352850077946936503949417634298566344446638121382670813410302978288481130681112769008426626978187718472708963139424581876313440148325834099948259738116543550252692143352286983582389517692641893320857978156414124139364850216823601759455730695564190539926324233709542985911451648154196840615367666004566131125170354369415694637942253010016124613565742441562313921774377101479944803259279149587116951000515331616300510975225538563198979701419134030936533185478802185913395974991927358689800950365092836518709879210549772717520650537292033827313148638006338881465823368387947806309970150910756086019539702272495982912702261987360516163329787007921016763132445619576016402745523753698827770110870050584755208902590733662333402067433636620671099907964317398315654429982511250436708635447258798831006214123941080773368990911460163511528460922152795519749287273706989710913655782914068499278769097353570393626189968894988439524355970952295180758214091872969295814456371642135273704304160035961696372906712388722511696109911661934708678865878856745755880990590795320479930494835064599069365477549504204808146642063603379206916634535998780385939180272991950781325923322247729134239267963893929916357436470483069117736288079960600473354228749686338143523702855817998183654373713163110377039223312331228079726202491814497328997662881211523681186342557691785039366306781051166208493592264674456301809713724060180607057716181255851978281252736531239421768873930880389068972501201082478659606967242289885649621569220041480773159641862954900114762600397269547136754405787753375071968812400928096229748229620289055095160620208115613587633489191104404342841288220223576094391098563837872884470361146855214521391570433216621011437447578116382235616434656589000071165970237230210708612354120224476388230877335266176227027304562393067986051205840141708694503736604645004009315450046095077795871623260920015159975070755999023079811114939112686289121842605954981481319097042306438150633234203659845415357651545677235288974302473465484806989207131484815848394818901562813299179391827852401100929183924336516479403208419236232769629281366985709561414536587467197096434443203634280234287023044684009372668277505319550871422575333859215717571930869718668366030815682246427186322553682830852304050397689062989994991979264974819492114941234992518023784065663591393757528899999384633461122438705981038723940865725895670465778681044086836224175017261117278789831971458899818338259563408655582135994978237472576476890510756140108834450069154648236169268801990559875259099810243527249849390252371757063154893916602798536570454633371282467487061459490061332756159149648369576721624879983179231327381314153566574803036364046870318119328265058440995959255052329791587637887784274416004163735553994278975643977085770698591845846950872925903714527740938719173420972090974905234310810309294632376215297108672256501705594250511156079471000961869479261235723915032088205919666967956213901275698746236789213916298032115385336579466698985115940895922132281077164334628166715915211088584822730051160277419853582221705147263693636998939754082896954554787874191028310391255499458583388786579393083007957570257965902078948384325303256852654218163242926150561652334463543945534551667692511765134963213012812392889867158307942153592738098814894302100041829620585295166786866270431459306237243403583245162040132619830711214624218592284181515996104349942376247033212485915905986480161343589054191927111854951697320499358383588461970200603434427292407806005050905021997551580079760263720814961276066046476377395132091587110111521101587138783466719032567642517116550455028038278643329426125683595531155783167211157740900656115845396765398449926209819929774911429445475277685297940827243872346401710575844039264436475526244160079496772185352430007468683183054001861630647929845818144057558999192522386884978414582741122952423169985935096790908982049663073933051703427233928722682323100224732254881315955171238563021795714024930000827750881737830052661852785392149019524825990029557360494299514245938389124170298480499632329634135749518824665625150484776864850376132567400606470800643249710165649465270528606159624965779466755573055422765532916149555461678510498232563413664612700866710810859149507235996539427977163071678817637258052889956031760232470529601870524149115170686417019216084524863512763613785661248581049244871460704815378569625235988894944105105887217306876722812827907566553671507190148854174480540371918071349307788213810101970468106185468289857661109887304515735679060215941749343418110004109900583098603329115534960154097952061131952484751726223914318505343461932898658075599789429906924265443597570175530833859261369838180201277634898067570273772247599751296765369608759262152084998588991317723625322259536739010130221921214985559025671701644281988717509721288457463243802305492861902416947326700583749412744927314784425498273204848313136185541807659755186019197392513858166346676061440392255712327223989621850586609098634339196434179118421090821109042695243681057697153612236746343212884005529982973661631550485472759970341597107614808190032404884871743909884354974261664739802868839714216321251545333284355892395807122394818355069538028073202387405065883098685230214642036351061174642296805356775138625722797722119044146626234153635213103305768257705989405128732672578374512366671732099059477306586526184989021806170920391830800658149819102844333372399306780861211153557047676609569047821273172971708255212548705102379752637513895642722490681386170587175632394696317230674239271102661020968116129424269439443751904087373511404728374010547164552822089303337930981665335593021422423438226212384130391055753377290852537112491812227813304300126427162818733726615185509987870549534105763331758701436746166922615555053139838075550165847874463444538300282015807264169416139748406775798258750147752716754252649327793275748882613669444558946204629523581612991193181924000797945093306003946025858073201434429444196587993742438240099847732475838947772920873730679912786128735004047876266696578138455587360408545772153690542256167039973314661041249649878194492288530516983369332497060602234077060571907931079733684013329142613573758934335307471907477873343503892607744343728518881620641098913932548096770839363196548477264449608553574014018449163432386556763436792835145162459567964281419467514717222971053671083506334233291027922863329126339466494427262094742190498676532642455247152527719532209389428328569606971934387966559754215357055273001826010651289801220884828607971855607851620757219549148399783031804685446459544424018500675957102980552876920514571074535057311983333309296082550643089421892771036856347268490453368220160868507698451387200002718062391030730979261229622928121547917131650223751277978290504749543312576916354017832687481774173728226566424824224682695810525918219782693743533313615766318513876590869283944508817802054034624825248068337778692463365885265271873189749311051163866813209375007637719178461971377898550848812898185825175628817474069285148041976197351479620069072300464251482138824747970383798594442115495788812800370976477424710889877603517173728916539967431520491916072014888724921308870681872117911285622074134026821567079842676775116262346305354690168473620848298326643638128798613736154909038252255391509810335968350972451162618742259152667843384251833201862873322496542574851107429711484158688883557014038207431514972053062617104403784864312566828004407054503570924172532088956495349642786534310636047679864491361986134745268129254301060741103360959410010255489018419240854312239702080041997131423933046019919792469739244902600779699251882062220338274289022382869134879761710146207905809864366537763558447088238814226644819177830499953417077388559361793501117154092809718385938871902411487871717545248759472917092548529870383135139261276746634935226629404241865900135306526296761004915032978201473742312226087487298599898335296974931705628165151158543652569699920766232422865183178171989540436983333191717656629622649238158657868956945781921493545840712143886620430660042029101264834279090703094162618679593582043254706182642114615437346387454936300944722715981772431539127786692742226290761258234602782797107374485549344515264342379856146175908405955853513109321713554612678751252692347593891977608002355224453775479228080181037537577588473174081709980668398634755528358487332534789484219365664856499532793849733021872163916974926394761818811670380694872506249704447652754927061155705350146191971674648273044146309081179702039810352058680802138114720751693231421202187873073599335564646270178251429120963119906719526804172175984948243247010719382066757826258168366063153591318718960902639694045816333140037773939592100690165619680935120035938388846204720685730297008694133325393817055303615547910741572600743489082879943379934929903122749469298015235404449458433464636643355652602911571183304624411138632044975152670289613351108404112705500218326884176794678567994778902894604915525684793364445626340620910653644745860924866277211504494159231920153352000489950335445129365706450351115585113295077494875133977319495467852113570742610938899976213125086690318511412185870672383503112985651156588592928189769824513295613208156946869514309545381164415118706636337773509690608657133498467051090310929253874427040465252797469208540216481968550701206629710739747551002954816521606932925199484026396531790831057173838829276838083961559077804209302214224295025915372576462664443881302488642566003600486636256462329397028300471581153371654393351392147573775674107395998867784563347448445537624602077207099342467884531174985653805810178166867993556414951337934081112670835296752557434588588605677689227572258942468604691649951675003120096228603658535607932567079364745957720492702274066279271542947624361711454113420103383877548969059383222271642976651561870247971732391216317982880581854380265490733374336755494407942249282542718722822346495776892747371719168181027537833678328401928797537818402927959722884424114630476199635622151467128826981437814562931868517440072828857410249001018557078622407919639796605733703752358913149230550983402845133271737890545505767387783104194380396967673912302416527034118997871555535081782844056710403598926056644272934052673203544999997337469187479637605760182430509623331280907048148402686220621408500705574866655410323957105994783633849977198295907412434074129253443709049187688559580220931705826833607819732804619927671987308123389767576842309254599543653383542029807463538382605389931152838329717085596225077526828609788508495188660578257783410038223896798592651615853532751672581324718031229500054812641016763448187384529810000617578043767166720654770266057933494480580366466786634507893007482349211159458461541302709122542718070589667070068683216255538590043068128657155171097852038054391557739134982247074809139304894892842277570961994834035861565209098832626566062483195952878860718530709216364415567294597784664626982247710695478547742293058112592598485799538995526439637081610364254091208299013638047641526441829636632813726080236559166356272728660453369268582640429086389851744931865987035909048356845044564821364008108362059761764427235660590010475082069518504837371693681037512156813907026357729811714289404697834697247708602214982887646779071291525817201870799130832523990568935077107137269026737254981814972247968077611568533629374657005705787076294562916225793158883795923762081492193204239069339447721183800861518153983186243381065296140949785121617070976860488250730295087964683611260738183106679811165712224129366844176244864173600576494087424882519115992017048950505791119984359776539705802557559735451026911814389249284716315191422795240285800937462940852510414799668340741090696013156838284717244748528771979521432977296258914317606093568792988868301714858599672780626566213682615303919639958592000254312244726872679486832638984529618718897070752079810205750337566911356590039910913425214901863071831807989019139579826933388694902438875977713929661548744014588214718519825588937364774864130307578658939978926943549805225499297701984365105884407723340363726872702399328185420446628213670528795985704246794668456561371211536336533469141838693595756258149731715202029199111390810354943525216329362865625932975328084293837677955317216965008053556874643632856114118140016057879889170497926883009106806759883906799602773448705042863886524498788226544232212282092825400811848084799553265511549379347391673578848677270255783517540167216366153329818734265993847384851814068353680848981378136971323201461345809221731932050369052908365162395857944907441144723181164804066015713103861336313694273573839307308191708326751330131697230355663200051667946699396543139871597958670704665003491880499907649288974494030499760967444539235028761435331980284501029210842604417630586108839565677482519381162636994087265784877264185866535371612092658337048659918760095247633931311136140568857801966290390778120047333703329432132339127882369682901250947107690972578574412012782383669707851891692660836971222083981553253521555882933406480269603314056336808532503391681736306228888356260727562924039857330240235795411155267070395565499504158128496529787483392150004136417002538004947043466861011354242088949863611099728659636046405653878323255249267352825663536188323913126487649793284733048023051589111110430963833454480175455477440659385064875276525722002136917080932201472602949774524842209393505792271095175675095379596124230425486192905545444117307886744608063073050035197369243815084145759058219367536734461742825544121346989803258394054282503107779952509998961615321369163017679564222894818913826664810895135415864394226200648023041456886205357201366002732544176030648234286345348791947493682901271191056103402443884029255585499225243760833408304548550471722194396818739351431753839211179895657670826619107377687489763468789206974570656678394492970151425234483390297498054301538207133859535476218542055803446891062214349375380057002131469901943531356230156564167952179543522152243367275732042426396363643356013372845891199852464415901459389826305253365839780165056086952273683385316538461020403162758627100078584701301627334880941242861775812953723746289162520811809899838051970536491426185609708122873987849979365979379383365400266179607261368784226401677696930876908562423329490330708827367050958320117943641587778160137004600675472320580260570016420520697311009633551595472717181865607142179646092999952231047326401595218963437081644796996790083129725898669609296094557388772582474809479633438501985806024031182805018064197899622255537536301597518669368011250768891428314595510798557824726238765167644599658935730649328426073966090576779704856106734161813494259217505414265034008382523413456467981735635647158513252055326918386079240691285215845891838151455763722225149106250677206119188684474926090004698530463968758187944577192704437496114178793784148530496008226962475438413474416635434988323451157007380331681892284653953538963305862111693478958989372474291290313480492060619365507528646547665474606578084335860028149595695848937845476110171785795540329104384589499364403588411537932572137838489126096533246498470634836635731966879171351175796903849082452864935151276569245694165853291837714085361177914713309438541917785397462902662341532047985257294182262224551278529085130424672776759485019934371596366208942285513547174783037103357873192853271116787746337323931420435195771392551274850331511301918833095604314251432528121861101944016996715785865531310398823971494518677883477653637869937023177804463538380485299072749714062698164462497173375333865853962671041936836561521840220691985194715189618633508703641037020915957833006961374241389569897979968302514439039405334599429510515142060863949659001910801618382975840295442588653514527743484348745686111030974991618632177732391424850695433841246795647424352728717396356890818351672569795573339681175450057219023415593740337003282387027375674103107226911737386292760325629762905960241572850803852827911646907227084138304951627332657879648495095360494439314918316159122478049886747005094993655026837189227034482808806728613703603088085732370021940949033996757713628321707096974873533647761839496126604201343048944117532961543749650020237666389782865466923339358507513089945935001775484266536028464513437128887517413427663828610486538442712041156911353423423527545380276508095971073304680383333158712488121734361033300908220335630389034500211334700471023264546920240845612965080915938090831098086734312522555377245752817574160686989982318067331228695160062609308297778266140781013670837954356401042756527090398788662500841561916484904563483133303076419010993369846201215346340685810532629924121876443782897697255560164666040398750950392707201232968366001511818380089478149492639340614995293895428216809772377039626234955617566537192967532722140279767618452112610591297907769721516490262143027808977579037179587287663134706962175324428066797328338916102310552301623364033936673558391494801429788484879178989096214741864437166058963122040188821680665399064989282135599503288672041235714768671839503111288355982585112363225120982595832810453401331156057511219473952823799613812234956037036949589923631551802465153508410187684764084136319354067460022385742415942505152896781730426518504821803311193839749406646415890797338565098302576380172160264878272797308637078430813324079936454510427121111617854284245465910867350290952897857763021082151676634627836893286188923251753237866553089717520762521214228388287566951379641732815464630789000039650769957905570289394045312551949035846575673115984309013132704822336405111137021869211822601467288483907188244573678009034220659370196208904020967129133667883048626758372468633491827887461601700759199596484804102452072553182495633294924543854239388551277081094521595846157919808812390903261110507596066764079368635085755007156869441673744172406683507110821891435619234226990020332523267387720148657472764321801722625163159445974146746686942240433999495348014125516751300970057563275231483670351643572461980097193465185495084099617076769145108870439473766818968224938770851851557328303160993863452866916025773712574770787589799956264862065617516151963780365520647333767434205548024687758629913419313020751547830911912993954440433528148204854391850796375677916845476313439908899583749364835003546875409438244760276202709203511557304969764302725389265286473934135043596595023724609435424339421128683089137567211395456594256633489629123490659986567550987125989011839214940316162361778355323668988476379724501352885175696651662335855411963586382122903487097120150518293823295429359473831328842964632424292809838003218113351304567792972518837603730857558234402064154442899127244239140705723666723909801531264392283233216571581560488795533176327795590917272916446730898108322679657067591199997022742367454994357288547814456953107833310388205292679136011295782804049886395824252502753030408341936300113434531081510313361210246318881087038591599099746195430073522833065317703529558919839090596129856036244890963270437661733438505214480295430713603228524792293368567865572956140898389903018635179952217532320556494041637365959606588674410095173768152406992609913790353840581498910609530339663402836434274195033892951322902499539844615223824705933623885645019896473944260788540946081126908659573178391664349415704926102922851167398542688248422982497259339565260378830935052308373995045321375829573843263267636965701715888275516338362019023138439988665721957602732129920626446370819835093416458780842671715456888524894098689099821144500077334357812761382178419518506385974700230420528983538971711463841779916056669443201425912771049795644700162693455672018736762870921153265477476995238371623493313031154577393810384166021789780917651069375663709911242176953247645726625457788469938030975117069656740459132678596693362092475197478676829684037861379770238545948036972739266109362310405342200388916505339561163192299168489209661222755339186124043298759707374096934413442305964532612185992445979188377530642519594265273487173153052236016417796562671877237369511278014165019157236615254282974529015773903718862988279410637579761567076742599847414566632428967144660497047770676381335991337506918549040029213972643589708405671505637657308314242167704745566876329671632668577376079649803038762316356990916594272448976844427666368598134632428253051256294767673488458369811272149182687833441414184478764578326766410581744214390614138494373995962696186980905074833941134381574280370440719222851659720160998873269933842678148282630929849536925690530130573884985658825239921912268161930390985159745294700925830554520621060671299485927672227326548750808838117249646645329748789911356397366315659991848976374054013727090436263812747818506938334623870231599887879413673636329198037151728144125145517486878283168220325975856125166689996972366345056949388383783308332810203229672663143259406493626847664456325487297142779887018907820117790994056474259744812304247826499933919171200327312440974530902346077523452666189947228108332614553357229915667586753194877982532131003138772306674464654044482029804598292126736717206699859046005606558484711417679298923907922241278691834170569652021861973893624955690974094751609666419004144500224977489793382218536417109522264667855294563546112894114361400985198789936190478307058951263858353358168808714490360267151579561367937787341178497377453785303433049710078991320398588983869556936211339799735574594640646656767277486743147424285870512242929453152376670213705936784060718504999963329570190974441529011189121091637472132286393776944436609726958057313157184127645678126643962421826458340690056569480976571166922718760967036846238755848380976329153955182891683466865655786512306433879226030401053624257677456446319902537190623228539776168230559269577579497553060176772603438358513819376825992407028659835692304574011488339274207492963420032977245082568092128725554574600365453210890831369531035236079027862931554383643926340842442181374218907025465913272068535073551666967780658828949051481447537346684195668340662690735974472128454000048007631051027019594403472048020534605022795300310296690631513455624364578478809676430672944458106636928449795724591488347529869374390213774489451693337362546099140519767871184498553696236500333807618395513178707602306395530534514304064971434907135414528193167451559807090835105044840370909608428168429979255987583255853136043177941962444280490389809936459276721246892466070798393566232987153687528497453262146819277109691077980975291985147643451630336738571187518676021195529754349780839094825726230623600851025510960641982352172230353158231163705302967766908316866629645611463356002927297252490639562074577403193333825398488843788833224430971216177760057615885513708777720464029470064920158271538120237031935592139406603113435240980729901216087555850540152425808927881349624343815569212354899013612043621993179800739161635586786938487984253898787085157127228171184265053746508799304550617443458236198354066092308726751649018838307958405331812840796021811348051561020567067782848641425942307746058963270491735428572776508260701090275423936115970713134340116060176306905072453658856904438984271945205311247356827500454429375181079251308497209920760254511035593057051558429823799146008841022608134199653683625363829242129804729557867837354964950950989587827557835244041345397475297225967292587803194838367550042060728412510316660137457890076687200833434748671119739074206406448535430827974807089348992109531031764085517626850887714700452933761438692540245365904385060432363742757653237364538942332074699235834402290719945929391581565436613948329864138994644928705099638619106057787929620883064590877963242730717770564724922344987671967151234140073751657924764163695709521222194927294138740981252662238933464068527404831258073840172093243992989576775550961265325627052263474162277617189543003872736642115393111338040066266858496044365111185281741857663349891126419219458205888526365335100520036854146893376890492843536259033195586552575428105506565209183410731670910507023411025314818080986164782800250146593905607433063583735816180389929403012193636009669256253166515074755601264241453635311906612077501132951320015803694816702542136492410331366307698952052021336612461927379427828449784548484871735972510554432941088190150916614353122171213143338594177902208375038544538148975209644619917747706519307847130569045129348876044918658847919734165165977642315252798222852666044767392708238475886781034789818833206408152895668686283589878662326000881706119539087147111657777220410164813293399755885310822200451909187804065578808408251345136406862508327230280271110269904900303745729466728208794317856832245510069708672708907063953297696314995862448932389604588531056830719882197319898264812836414198001568068948293008960434621735400663078995685296579960759288126114291171247157281693155057211623164876277634930300367522311344925839561623323257431521018166915506464115623523649610339185055321430357990598439512588628407004949531817050533963126612224731924235076570501626087265946531912823720907516254923595512714169499264394373073377722966698433039968116519055954660221569932853876647269513897674491136546500850945710462652604663534691334055544066396585139840837859806898474532931551883832430377497267652010950197666592948377441475138824749874296363247876036050269072674906525554967679592044619526045601360412040436191164625057855571516137471986051158840220490814671894404272483983295293785854937185632951413465470538277424678976382579324176906612716503871035057880977275724410104377216787566394827480153865007969842239826030352587603419600177837106140538882487661291549575190086392233496754441794693246868489415560519666143226690002442808050682884509398657577175259390990778682448679417407030326580695200805271697268621847338834840975243231034484390389606851181224078768475458745251568909072577209281103158898219918663462969956333607706910264201409409449371887875567085713721598490513172520669249416206422281816727980554505195262785731234467315211632633252012942730138357879241970467252148448132068275054175209322763816707417333481812827088806997084872617022848886752974811099353354502408662623759557388740422694923791487631756724588386673248056932473000082103548737060902132658556897976895615523249299972203059976195971262377111890480234116216634681114523841095167466067955129242181927943112530490151041721394293275769518516912448803284434737583511441215120189724783046875227450523903931839921872427977489074114195062509537608264444741016566946475023034123004793162827672160855773997022159161622661536276564882421246625399911571589037359193252270255978069868058943471630235105031285306478572474615870614869924874988724647761673866819420365317040462198456539045291832216687787686556723476152336941852468323608965775925235274721556026026900364246438296170621945345817121319339596444781406056424518663139972002502471138352824164464402422210565388856624875854369399593479567138150778499260584310839916633055426129370012195104206525924544458478625825777339505621615845504625166066989217788653141815796482922185958760765566673640595489009649687155013704591202982319486619179761366027668279660053703293458250892087157188612993250972875938218328905980599222554607988165239882645963445428115468467999813016199625736020221804331629859999096352826447351440589713483079504919084501206157900595004472380146274154229479096150583058084562521843678153321335959188989717031219650264587782501153926384652902593773520289635617357744495103482509918496543623660572784870706129570669882227429616208523323209565610088687893127632939806725120623504289236502169389497790072939193074075003550076063893099151595724948189828579251734546614097305137438874659733726480754446490087967585568297892577029717299276493106984043200639452854360875342157428790679650185492408683796565323731648357520619932173723623066903219133140719893332334239070872045770231897653812846223042734886585665219767249424297631047769521112832286211446560183308552584504868976493928263986513325538583986026928437046479010567320014832819141885065805064205875133174649258524197687103738392043841681431182484773767051902680605861049297757518903339627521218195558116014246337352405062398100955013883632770131143750741521747448432446218582053763289409130115285068932699985874586200949280826417962766243190810536056243763273973675392038334857372839970746922480786859109647763523671954268250061137201197955267702321691098487882258921161086131429535969199881145073371570914439279011287233340070402569970988647529415747431204597856565395384399722127557725052124189961609984472736300039294104242579685190931558304741427348845387057100248465623151240443351626849990746798146312560350487290120187249689593033488274846035587584008650451206664503511270069996316699219130010894171117447509472535549252211775316564821017052771394821392832162285332171484707623529090114705562016940946687877103705580609840740683602463660275818059087739430091186140906994393142372396007273923306453934122541572441688390154044694879188555997686109684799984975476996024698386636061507414372642340024505765112360762479523923409690736867172038646942801620285562788373266933753076857422553095487235819654631826256053291312930564695051069410548633493886160288850398405306101148425872148757977313025443378078401211130561530671745572837032121186189875162080951987640387745660833226958311939042417641650686538930517307368540098435081439175908246841556987516824115418379704441722437260322407060099078797475447264829003540179569398614508654992353675882113501753862168845589717164099389447876226907123740634510338459014081573140836395454507376669117263754416298842336664548872797723534935678621143094691105123751481729202887810693616965795040071230874356326590947073192211281766793672127269953515346209350336924464832027061647173952856121503878511344891503964362932035043082353871490017736250206025779582177165854799302969710123164691350982579314185009665827855270094125744225131176314325290676290123894837685415462411831519590253703475796170113336761297115113847939039002367418511420052402736757530850743386736654409229474968774918307288826080161573079421308202647900898595499436983662332089557177871977013068830424384211602266570864097820434916700248189551791717730762724122453779946051247347649480476628741418844790890374682157601088127300194390440486081331765731991138879130302415464491994125397063722683307273943562733394222153532921627485433846546716133541336741657899109051254077672734369993656030912818873715286478483661886986663937253026720143546138246651915033289797487622743276083942906605096345732487823391931732190953061228035135521359232041387587308300419422565382071390267709871565889123616289198989660734637520605254717305255725330337551299687572232914775832977274317837421258889150329657452855482686023328423491336465718765968158657256670357540683201813740211164442591557232318526988103094764170529834423314201076115857551056619661272548012114831415391140250811869105744174628938242073771245288053797436278410748411261191991243451364449704867752896815584030309781506958977391810295118384710318948633592569081819820483323985314542025853536833347201874220490023086998995402405938067620545186854022349166395351559247006204561975941940071527557836651681303298054838058555203793381410106561928685246931936375609760339895414919063926466078293088295712135037074805800381082178377789941350824205008342650152594750039746015136392305888954027416395563840375656327636469042971560619978054222220478971407968587344818929357084282970638913747962420055163897461957375855264249791432845855487326076671230008288446530102313579644170777578778457319933146534341377493399070159182298903839695866654243886068811068995083872670943327358032387472813369931594880235202761192173845734551950762706674627587011168476162289885537488041294325218819907053527613986330738314389633173607476548838526983911489780448281285360350754049424483206356668577682959805086428049630873619249124301309840805448951631377503085891584717205101091967356679090116136999873342560304126354629389968738011787267799535744302011915530309204619445511349443942357137763251512077127423885440685096314039723176927511063368164531378783881411903626082067955704221181747612753977347349726234535843369480557865293439762498642828864195903491203992767649121865192321980515849038545134991826329800879647876036364639882188651242465690359108526426653140335363672599445424612784948405338792489173949265211468719214263042177515971448850294157725661273981092364848394745355691352502806007012420728513894524650598610445637805536534417368743163382995527100465729024862460259909326386185601848394049349671441246987968295905462543893160047923664180979285348545368727699058881065227915589840941955510033179477970336550004022864022951552693221680219949721832886906549303305689421752322160811986464670561133712983001170375228504361041411903775499976369292220403428347501924326796157582328508701907859628486239861737405214132848485378304946878875862814266951324170298051481068439251603135314913658452717237520301418813215755895876486406773065533638822983879939156456468458214391095938645321793316841365097365531970446158321753769217044880598124035942363361531491723325772395612656842288459238327760997202210610706871458801161838747803329165422522023260050273615951172304060966682388019119156797253340736445335773255705666943391433533751307759637695009114050384033901498713521860572826216214079648996639957058000507138055216621000119876572495719374336247280585983215580929597741415614508829793093521243542451281534376275494516129374486728011604039581270709789730429815468530475762428884196591564702056075393991103819736443943949591543821815284300030203149579859442354159605027827156329025261336629204505794345719463945709776917032850960862617555029446775341362416679322261423094600071479916322541387948471970518694374250805384448872333222367189668367769475041213852927592187543564045907950911808934105246471097109686218234175690752150233017356365537650000778235582117060125687101248763616434663044130037150734219760140221740050251997377394931612801318152129486273985143094562942478273459293735082095762587727701773858990232372051726466459707016294642351215869871706701374074421800864152771910714183765438689989933858668059384502492799584993700951829070435720655380907124262648293285350746746952444930068548473222055834990923789361451472703004603127655576470800361034863015786586155599731101874611122536839984467566505498802497418049088193405111434497154600309244389245682122864315528624380593424365576216052689776886156817281716754289430965931140041170286189610942981303821062860038630894403783831098941051050784486518185904276732237791104270524893778806825456685356218330973608670045954400474187121386090165035985275724509754470819906020585066677568084831177479533798010566279312386964132526853539072531341047074323679876942043287471648788225120286204011707241865299629869255725025730943524534436323525073434342166790089823341313770152011130240488458661097057299556168348349608625543468420619607041834359646472881840669599963753353285029421463811060900605977005966671397009695238903524898583091134403525163421555024598301946260750318755353346585272958406114901633582587211486360284779205509062245999680527559114641537090054346446667229250722378768121434267464009555362663955861143002110190730406903412580763166208192975958763379235164654759331294036128626558067197926831522566578054693187261127999706849923135489699728818207017359642854512412139134819702022225470839198727071636731367387703748369729326267948037147031631032791189367972922218029051176621506770324715189222970148469747665529594829618412779107710714406911386448406849845717355808813659459358774855917566920879408801930658546572777083033514809810770340923024380037282146266798958856318086417467602841625090634476739894699364381264814373656212030736030025921091513414654188584214304285871647522565939997486346177279812826754058984551029285839047857181597018143575841146627931493188943741291299750593359927683420918880203752765894506800370129619497634980766373037645743943822979968591079640980167488840589856807636200323858678682536670994663023960922419238974708315010224919851446159807200556087226965545504243965119078288292730328727927002619776576724601316791312083275687684621324197302989185700043863239181344668606420381768320078347500952819297105645719448425845261256871352162964619631672407813195453307908039010899919156547940421189385467460154317400884596020113298587195938314797410468716355439350416610310331295927473027504809302611672023351222624622613831654746618494705226066580628666011948003566601643341778438829425573832538048392965450745590561536438791601120729937985263169670079247670767790618488023011260671166012720740364830142092775318580607123156706049509229328838273752214076822987225391503827602351410778391027104667783229947307271296706077749585215338396204122944041921528056195846426935932657948232211488212517178583084360846711511596274428271706765090436404365225784550461342548045585470378516224643680665206026122697050925249750155878144249873288753849419083532113915976810727268781908932920371468594266101872703292080011237441738328360986364537878199198938388825217698612403249763290736344058292864087479227927825226477131245239438191972218385469777620290632732425397644103386608699750778298836525768079963326787854290727725923101330297420091077506282127618936632432520794979383057855782946170745261591760590142064974318216550232449905993097316588771257320156476822012403095206336412225290113786986874865148233775844086693767514977975677046901708349113546932444642509229464127420807520011471584093241457326265055125501007007660566777117924051601569767735099309868534977431115898998076492440036002892182327164295066355280632107349398955630956422862571097344277547839003905571955992819757683247584434944768388850755855629292707332860524608348574974503428077956593074891884573022202222748822682182061871400739208844428812382362477732451486833128684137382576874203260095945610884794391567209001483798490622298228529649268204165886504981719188198036090797804892813537602845493426585386021074398990074858163883896438636122053021056794925211598870073458454551559489556782315072806804935607525639390804859329789467471455677645480667935654031753869651133272348846610018486369068946889574767909522947752790578665984367480059237582620476709592157612216409677435737761712874228412689858024278673336284269190224032939574035904784053513415033537650489406181568449224093677577204183492595959306605229353949514640008968415344034991921567184618964392905786838523211685657161353152624428825383301160906537863804294090486965517702903509968164894612760420241161406598283387130550440586123956764343446642259352320954054683590969317386093304368394362808662257411730020685788348713206603888015375631584572732783046425612816551295588516876533830442181224118288045905833408874993285473906159854730799530697181609728345208807885364418720210959250618196389813087662795191067711497346027540868185098734282567462912027398667390161583632678769604474181065117133242454414837161513178603380704358555816018019523669363536989781595719501559872023397004961097541044665625718718975421465063712026777661904561699590532959067730285972164768774711163043543752664536991895084783708637044667300983238619360125940446580100450215601725965968281980542881205539878980492696186110886408738472659419017518354350718090782630624616744919263422876154737763247435143567124044148734858989794362327188079288675810840782676032618238661528300849381599314880455684210652184620141685726284591058714293816639849593504109029090141008152834816061343840167545559321299335050993839165671049824897535992915221800287568967786681199563427383779305541093251290565857414365155486341195128450935215697883709010128780243194490062435614143582483693282325145641944280982648126871989756752526681477173576031371889347583523260190187349152801771416307489903866977402713460784740045245710424157958418713874530816285676685658285590905973561092439786064160363926126244516906371982424972300307098427328956728234594896798872786297834307574027838660053373206606535715746011961551744953388411092099176018810902800532000641767655451116657631250175277133534829177798781680087883455636581653970246027480531009389467751697543784150482225890978656305418419053274999027568546958495444607903657442180018585928471763181204110872231074860177913005030586128277443850302382306277608849250244664577035469962275280065007431488115044152212664341825297645524674489102832190889412088926086297027997599947833170454485000889172871427775182367493601940390270947301212523348174935424189447614673226055701108344807107691982503926930901314193877865087858991907264885379054357346021832197946357268228374504296533475585307657414889455774992763752729125591062318695723437001943316721426725228008227181242253947802542585246019599474873719096980678657331708484886898560641830000170404671574568682058547177982972225147714668004731549600726721768758395906361854979059151161579807104150168267325888673368857876725027801348916537947100592326788803963453422963233313922442611418053306342406894227051250326565498203557159067210348288187734344948975628329140915850623171234355161219456830663013428166842788621839822201277718768452635991532739557707618931798598486397711958691570991259589328521480855320693209933212986129500467546563316611245267861540523163750053055017038252946678935114960200994655479941609743284944832343825389236197301546129461759536464352434205160012953723876510301705986132698244612119148710234861569151783933545996437153945016725235294642627856300026991287995946812245312240059252278017328328405412983092516058270386477557476744582243362327000356043090620305837480560506231528974430759503725430306718942471164508542080023773904620346237512607494152696580432618899375281212969498373940333991175325136358308278170788220546968402702078457953064882291411704397193304471999303460476556353565122229636807328998670938606088508429825983880828481238802373334890383858813627043788306796882399181519872470514717763681228876272888987455923299626973276826504935576740470309333837495410092986338321293493966756673520367777158111832867652276581115624121826981922547081502542836252671305767190121758351171768958478100157592166585105870284143497191163252215466976174774209210187366816365997726060822503860724998395064438392571679450404596587201716781020892548625232326226141822326802587710276952119840111972280967796239058185454044054375178461049291200351134445708666412974759659847374032926593479690990654549082716312675095772216060804171909433542627050175319789549815445625074139723435766702892991857522148315783563919155829678688870565379347298685890480455062945250919652011373229755805388089095479749241056739002811076048275752694756933747171157633273427807627127667244528843998940556862301535302194984235922391189177035810028458393164206466385475634187583264408919521533941515219895065917198111558731604774379170780489129538933207103488597920813464685383179215251990030307045051894159947078751035815742476266115327045882281944670512780816824934694165468799348285946766047139341338012518290096799602369331326223158555325332180748308151534596059259005386457605987487415307991997256071216216775343069728312716671648912921185864475704977249377680267914947047730856331343258904215858842079222461313772037854473899654989432722386259611052859260274525948229237293546728601526917113669921560668841823454904679881636090644541315839118487467538025954118622126593171417800076313549669037638196267944088124645218222568770951294419016030778740573827463572319422780828448365813600425704424496693914360944193605665546150016216714771425400288894054664492994642050059024544947397975560175218533734460151385151019453393110100027752548538775774185116515411657341343430411760695712892039825278058251323006994499994228363915814742747272062341706008958553161658852198459669126640555180180414764637008643723033805015214960021847640619931131438438911492911501654583357184020755768954932727284182711639423964342960309656128485253136056504970975928918275070604645472086037392979469299362360867695133983737930789111640160419902855963212642849414683267124351150012324081297701113742441360883393491439445514418193237103593495219598618640749632276522762468525225762873168170212359673579435076118022493460856901827053136049878463062838119228562332881717589095202472448946515202386727705258159610563359203434073382484290278956656762791818231949557981900307578070341895650355208075834773261973363138180233239852709003751879273281744538624698200428943608815862515001372852856752794461122570593173435692549918541190386939348378798781542781711914008537396313837958826085091439219648479019139102726763853972894128628252281307289489347537706264679677836928794474575076749109767812594116790137176268993298652531901497381592577797610082906245678185096452404603539634658492023234475158984413379939805875506198157176612806026500408011903986389412903540335897124432986032742232173514693708433813189662104065371382164109173931737706791742653391164111627895218042657109148093119704988377495021244104531055744789306927949533001506534228543003139968537299511984872960111533990635184596818682273063014978056073580635250652749480150256953524109602216678424149870337871340004145674064860785953857662792850952162458011691180830339156848384035211321916263956869909349305968763148661887022972744068544837694822186848623060885768366882756408670116111256554022105947128527018710556064738682686945566444420400489029936518038389673369582374432009702401556979945066628224426523505975714491848437229232517247356084881615458767636705089795598751418186131285403094709898880014387450535531208652471882264067891498622984267412320457181771586884166831801821365608771614040972487980127878224842521923456424028454820966914658027826819482710335422869907756457446563662201085751476921586774461113905582713164998528807920798906253812821190155864306724204533370855050658458327505355405994458445621680135574506813637012106771653584469121784146765560945754285397659810008917964659577754595956707051813008266153219195891301821489719536819043507418243175789033920646632533419607135362408567337730512642911781598051631505917498382338340402480827602412063572327393012539304511605319652970513797275524216373633118668389027487312419245819885725046348819810735601612679569945839408277208619062974457721030459462682136006262569856082340188813105466735083248418517859170560783426692465381869767372393640723045631029937048210849958607406453227562466228399724351395833853672421674329833194729938261677508689057152171405367499096618604062767160878415938772897909739783229952081153715111823986555937752025989424952506044288813605970387276564195772128935455260690997671136188478036612703578905655219433286379424131770126326863558567529288010246336020727742949530322984591594651746190435326718539533966587911745174156097503653155512400744143333803258059673055696489425159529638877215297151482915801036775460628817915723278583227853962163438805421780147521538046583522659776363339907236403184182031037743228430620388749125413165267891856936362182103358707146541757747704881875106656552919039267833828849625104668276461714131735914471459364921313808141291054678948280169330668408427171749657872303860679732360052083864291518432325392186041851210837898349381635007441184587739427934236321285754135279200898311552824661677325215096785477206084298637244992393304269636472490783451708317135044227011855231871504950315252601486084858669465640699748205484704418002766945840441485681762523105527510352290887421045103058101553522461860524831013180341334491534496084222962421338855746451711800958325909910128160879539918700261134086878531406395598035970874393003838857723108662684806118778489378573086187063246441928771015678919530173721452372544501955523011310174781246179708204673493896991843138099729219703402171333686135898171379459021954477042688833155813199549555278146733379165689688974712510423339839769311398821840644312117345698967473823311734954015403938025140518873260032352368227228380494267232120086800871933454398935536761765122534246200043435036954567290150184455468617237745894927758445262422583631506769473309419583675894820403993559817294694486045652776645834760478721393735899801018626626988419034182830498698037246597578584543697633040571974620283163773967725223549561671119463328045807508432316791006993960672845539497733425686408224339488686674439953721189855181398414173389652567184886995051388027161842191890051151219380926891220522736861507031689297504775668475736075488508725713714820417607038671512653334463645249635840129345768395737392849748570302007437098387094219926565121941164795043584674720439457833581893404824803253323671051875442333720089512629114378309337720455123588179063625403299148923512786422516156200077853293372473122327981853780469322466682021628816414788498670262941288868029787659033484313255434537728318652045242047727930980082213797202932496989321469972696277005449741668532745318777015041516664304651816037636998513300209923131719166335153472952155344163559502154110833522299654101059054717120551011659860947638673324852222954831039028301145536799478244350966281692700665443631534122198949004267735599733655005951635897608280594791968279207989863885534470538991531185553622142578581710329826298097676838516279752213665812324868688638923117768949433053186394854641441445434365385927060094015484137165226434449408858408830453138225865756414294998331771357937316049014643565587831663253372646382115181080707038408221868117495310778136158212074958558294893675028275213897440742735085653778171390957445396204185430245071008203191424827828592946898859744704689557843731780941027019246190481546531364982446135374912999232639233014380021747328399678875618418520218954429126458643795807586991907520056009823138023461550977021867075829887640202857521811670977265853435724972825417506259253486499950114167228736234679024873518375994202038747216639341977872329709686619139995283462354544693112628324534179241712651950804191497804055504961162140810876339917456601326606406529303560440400544776615058786099969042137553176530707549388172319245091518909253826384656677040476105808808121686358536719915712730135097847866382662956749047401547647653639979258261160169653006323152627923829674009314846292672107014091601892015823104194887723322180977684357465433147606930248847969227304626033857607673712774845200349365414988455201645253062037880025281299944775259873444264524150100737195633120582672723680958867647076954632534762497134337339690115747564288739235007268725824651298221305737931363586022226838507424441304218225112234049870605720642582511680530571205896972915238811920741187078735718968818407398341042075179440614874401771932084787768942626683257365381720880821964526233396496402142893085735886874091390005534823792062406825318340637848952331608394475479154850941411133112637748981585792964704101173540071808844526674881127204655769555971387030040356475650737402108013940577849648602073489292650877341498389636983354663529498025732340266544059007358751660782551914815679202410252348362599063568228528976415431602704606719029863710891115696026383648281851717630550908430750685409803581328288923166354435324263169623177117014075060513915072770764977980745363876721055552588370095137133402001736487727450383470609931165905848428817441088493848699094831020412566386195834515342916664161293532550929086249736122516630001287665566888738004477959447854011816486364050475177126919471107885112859612285000548992378587076846187302660094526829797187644408326300736483903786557894958342955196018881557174873072113263782884984510908916520888624064314819084022483340391740645982602760183266075910465271715692733665538490753312450683668821813057966190819129820109556599340895786591838945683545846570281430157642614760455201837018146565306720179482392386050264643169042777580362305579559341212658498829677506270430580878749757528369997662447330038111423914266316497042514874028396940185795423420355075934243598586519192610452373207222930422717202406637759614416946702271553417508612757339453134699490281180317235194621720170923662214117978845009854260838874795396425707890140379565011441506539582869579633077648240916868991751634249169494547400590054902001771095563257990616451263911842913759133306712549884476312437545364918667915150633447967563187442355165116012055524636229566698501766181337917058856172764021601563576168913000309155979042855933517897588527071633634104315811042551144900196264465935244375928664466776882305546326265135611902553666677772864741002351970096771856248560923683754106783223406816320100214385870031938112046104681940692342297540008570340547149612166410592502197751586084764643189576692858976947143669207879495759928272393192022072616425728285396919006834644060399757981548569560366152085283571471665527249059594427026541942082153274647328002656012113938976959024310228740740892681929044327301042566135340613675559441967192961501991142752538957232267590273607945119312776858265858935077229138652998958058167949087702013030412732158537732642801231886104345084477075100325241545342397142510125206573669834505336548161482811155781551600150471891119215291100912081217362088274044916716821069024516792582851281458712790469163302664437560544196427309027123663133745988730927937279104035787445869418283088745884804753134804107169742353314539866741642502324722372160632243853095944700266012947821250337794324726752075505571536744895428735155417594963453692647155358852549043790353305481227466713086886194951521252918115004748125275748877807845772977771689325580422187423058283013588899229372991636964055757691954029867514307322418662515167910409579311605609079639967810174816232988578878713078176102461478300168549680818623579453668481059567610646390896554236235219415398050245270692537135188148792494499320047585363848265819383734604502335369018281811766302017703695052199327427617484539174067873721968662765311371161396934412533900393214814184953585365742112042566213762026821111062199377977168651969398761268780410742212790723867464066213293567043517359020905526636149567998913113252734419404657625372430747793637402018241688072997292593156970113626765822513511111281478516563984627073823732472846547032900628928896989562902902726014604427418362838969511781554403967585553719631224328621716713782159859857406686007882240329905718158086684826661691092519863513345092763078602687022334486603230229423271285255719369224470782911925431992580219693146952092854443288947316039922051290110674558422691490541831831738100944703681010431212462079595816565869010390760006965254351475610972320796175601937557914559929390482146541565291008661023986170460039632510109305946130734803880853414907294844827812256057822632046682013526829391608101661060918266588310992810460840270894680009062958622941143686697248042881418569487270777882218095998798113116953433311026288617320208673981011394045063709456423444685113853691501325336983858570397147960708002636040808455190697558697192201115284157055184215182281380479798522235774979213051277092959863566149843974095410987098674839979509232577743869657195924022108756806153597075880279753568668219971224557665618648729474806259753422822079389493700200852027413401942205308362017206272287204248495773321805007058790866700110097165740884895128848148859362043964548201583461923347949300808453776997551291014320195156976227805684184875104256169004625428459806996264978505884810243404523807590861926167323384778171210516433833426797907860160720861924954283023810544324028104043251092039490749029496135103540060866806264818950459098274354600299448528853622629749956485508199432938838816449808466674367298242918484519314401078150381831376285770383619224976828940178506862483447895195427445204519817864388117404863497628715720633161910656660008037554000694778061668190590613232969800795186288599709600403565755197819711462594087343428303862522461087225627682084872522843835212153864005492144623273375469896373068714702989642152662783519827916745352861120806684637734857794129472764008594012776628545406351982833359755639179547155738135446463978781897640834743541653649976340111069666182834539945949829247385698271924054767837358126554932840591772818299608671948373157169282345114691555870576781901545143588991915847481684949302776820159541963866848122882849495569204669833209130042331811235718718937970905369210150537861398804099646091149347951694460823499298637003923329842156947605579807835663916638342108353297585859590873524085563789413578277937165861104738726203114368889842080075885389080557510944408853360774940343994290910792606401894918684132614747465154088563438880212853584010489254858158405394048102626658641832632086213846117110587696695752280713999550784726323087192708744427196530508006870466698644371901098124818138836269113729784204201907113625398181413413995511662323016960650423670588196843094712751989394945206468899506276628612858638133695052392470637757703121853333665157150591144292474301025650456052101004522701974493155351827524363976979893976221063403201079124736412881526814611085974503809911367466223003937342523919667069558749801123411765126730351276176046095574740108172638079640264046236215419319717196656584145830511333152694001270255510482008869614410409775160285882981001766160856515019910416198192624840437447470226268428013373910112447103722037537146718511909288917353650827341432269870222744269278756655426906589702689997488115728567159679056193466020070080308827652563787544912051672707915164008668781949286558803333543013110794541293952708244127103721076200721018696558210109598172326276218164961945729449598784889617592097320564500784510697093202529010590509125688033504016083975374866218427404005498293281159262973491130269969560441740598905666678212730826590222750342294599826417545126696505612685695782245940379459706626112022433801185734126498079298069774575096964349828470558443139064268795627420924189911306806482381346598310133487819912008485644949491816505219324298353036414140142864546872022610799402955118450811606433621345617538668129573809086922669689072445413643771235491350487444521673133522635526966851707422870850185252380536814821676124937502778972750474412243947347694831054214612811190466981688609945574743133339501431990855413587737031083303271469859249973878334157737076251618944548632046539301733915753683747188613987318570746224699486864303643047110493193503362189619522070637523206398449011543885428436998491138155681821444680565738613042463079560106025840641694898005620949736890126536511402860385118397061049233904491467394027859487129224732888912257298863746910049356146217366295987513836456876027099747531657226243435697182129434487353679683732086016023354535384726992940959550817705585660728369796319021750840432813982622304731950795591627277347784274722013984059015613244921568731531093342729796211450045592456363514301553375227483048123881978776779111863805610589439523229705625128905414427939626687304038137274978208123271346926514757623910619216226302213004734495759964043517077207411388100853769605535282031273917627317671713286699251363139896944370676152517636304069068592766774126758661458312402338352195462528880753501381539968016852321314040386770900065747756739097773189344306997964726751857085848477420266084205253336899850076603955630990738821787816483022557235968435591837844748756489998149421133989251404786384542180230721724370190922201406587014895373959571624020578751617018169400742809855116771440489964103037648015577453790579116456735501388945497623270279491019926541515059347232409292324514683099856008377019096534974781177940128530933430002135019177216451179762431194939682881301472875472234853753656414717704159795765614077896180829181068524855251778204360530714546874199664488729235782148113715214862628651161975380895667232059369625824670023793907428505639333128044911510758872409049466463671281286981586141818589479294991561331461229804748054039963910266899457543784046518079364733610697770930688645338730292737641296041316995678720668472297378462746524864046525420022576020641069746100177562245853654331003658284099033507149016451550481082576404734187691637473245077529476825839581443901459827382883009477332189883132230744493290979154521188972087305189690100603723139296239293098180101891432134203802676629362047999632139336149290610921950162547039080727046646389156172739920434837860918447910610714425115519261301241024918501379363483870620843353854119594975929129889055782504850319305966828220295789484582639666741648390408835251871050170009260412667981937959887633150585696197772632325812333189192230885289385550574956372650455047638811422946469878102363233324649203064643007243605837349706699304799862887381649690399829855336048828490758843903673380425087566975919720715260360751955682539548142483984262070998433300649415302341119733276561624462631493672088740025389957956613737794195016901377244434546304020867507990159026729626417879349450139562784967931144801664456798051981081808028962053469301437232527376242218907871562851038475475450968121776053227802886325766075124827313439800741790876924176667492376585987006758836687977589251588440759090278536527101095601380490076519733134143622782939700183463243003785847316041007179856637929346832621956887699791934866082056433746891539997412201040622522250666903701224347977417183262513093417981699078719025175596780176889907926664617319083680813437470165736633343474650100548461468337213655750803025366909680092561518653639664991303507056456414486195848005758639684652978526563495470203859072723581253097305517549732088779549928311075908037485906028329889855379805911470075178796637903582873161804623578862059717309417655230397256109087585093199076621557651481817242399894248285091961681526008399766930760229678990692155183091759986689311514424431455846455276189026987563016706011602136472913982814992606339534172402233238279118849442642099255021399178318946723263678091545054984390572991451956712337812926911159375719322782176186002650072387501874115862455922228943935378157410813792498339961057675602872744914183658980871159573156887775044179303697560418153264684362630402913395028901276226605909234614254813510248610882596788700641851054006953760618973063968586923985814703428475895042430992444726624645834492241391225663045645214129230536000526265403881003751754101353517547088083934084660476160792851442091259476256777514173336630331926130877326770879563192519435728079458735200633642395184676337632772921777065151260858640221829729754355300651355384524874524543550677625772210614461719715074675371639923719837132103990888507732768673900124633674293872642129333378532218855004768551360498372032217438261529471805660696992607070052869159586557200416365042623616803442189842590211321580664083927756366474099685144785289157758227330446396210897017866497241291152229689815718770580763917294426543907310183428400068065504515061726742065371388800227394439986264536029338218160091881565791868159640486704746800296981583759131973313448816146296203548748147999732209452949714021801275675651530910756501191947227844745778310936154504066077967261766476117094773858796715675756776794120512795623142955851925955818763132364955736147475788750759715020251225118404606898410376389573535182175757495028669403682900689402470279641088939041285561994975901282805134517097027110151185325819331830011889921878125355352642863486424256481670064077170114976864372617552699918518631105293756928044700738741321301242618388839282396719382110386167173607595817613570119801603593831787655938830097944644071593298517543112962146798398971579345180487255135619800144383823157386157030345854515428664247806956638699122622518078980163743208053616887136971730034180798238453820602827244067964238532839288203618487534706003994323441446967842976675599044965475142267421071457080654898164872910264887710831134249061265091826615598160654151108298675306729505348213158454649593393093779531567461105501236256571207332750145178942960230497564927955023129476764017632236228464337743484441910494391459859885454649512539067161515813808489760345254371605557125359473955441042012487338685711872108163174709212546971750654648886412000207524303431681950324243105071235356393717111347970172765049339508741406431776967865893917371116808717058853563370422262093457138867849660965378810796493638778178190136714450135383100297863903762706625210867664911396831764609347953550921360128609570666557923677894357687470256356843450960341198037088783233714437854743359401549113887656685869573743919516278427354530227748727541332689913252179552326722515170513228113388242783246786536693864440926702874224663381298076784798290845079317029513738970788317672188627959011400571286014984407063237657060786150935421768902923686375827591380492658262248642332772760026445060245888000740618470310321827816972063575916552049144584536193153894990899866499154189740942592689553859762133362554185815323979804649103004090075800694830226700162126043840467315877500022324843341831209190977188393661101638708160431078581496777604798600870081979692447922489852926850385986356631985210591179885387680016717209013857378229558381112507093661818934222928646231024182552270650447073691788235696039858371638638906337208520437642449151417170749724529504959483887227199149941635351221186697726747748683336705860073869783904662181940631847972523737220986379342028657754375338817053850063780212214149301765088885552325521505324095095509651438760659312925870269342550969797025945233221549473864481299792007284800027534315560958512147181382736153744607526614746541513295204682464514183463760670849916903914105039741487522165940993169590773143447732869534078027704951218529653637976174859566453243110164281058405893259621431033699262504102690697314900242387189387872062952528709343730170624121263936155062286196207863135384738660573312060361759974825276873162630340429453017690438778125367554313785830132335933337406838995181994010344090097564684530884066971639673344007339260521795753989739484777371422201932189957186535370365626108537350701687508880651041861930757685924016841978662230820614952492153749626471005898402288315080685879306863910908185476009973527633982932241213478842498955471294833325782032176782842174494710634075611200098681511512534665294564643968725035708134978733414107038113376444394103837476951277016532081901631199681581659757471151972512894824838054039046680913266617938411979594052161727166939201671397298850346307017054518206473202190669266240471369784925609757397499984943708604199151355436902224321060597912136759102775390483327621405258982479849062296338458539153357238906737415378065019731446735112600574068224939384533378150552455749825958502979154865271838945242267185080094072931019461050358124170195838797476208174611387749746345518030367600221204301273449731990557608214813977071393064872000604124238808312294148095971957395578229806855370728340444682528126495582368415912420673680391734549224847573066108200119995704155686274827429923328341525207805926465691423881508352172707591576543646436276898472305124460986234022543108390544044514557026569016681364079854838806273648453595663686901110545176806011265772335092871987662969630320882594171741039603764050415683451022420169984567458224209315346790213042490879004067717235743843541528580986424893563681988696111221961663141844344734043890258010675898271749546791100288159244999216085044376327838412909930765892629995064586631595413140928563804197402660830756226942808794552886722672034450596821020824332497760429951128441063434460470082221184946991624371441670751945328160857164924761544762769134380793054562308045880763199789196343285286782144414424644942176896592344854089319998590821614436795133295309291545925029711360722939374725852248552065685170710491091754110044971676370607909388116064174831887278984369114677885072427284598868579598249783359762220672346763349159164061304634274725151950134513872441785689168307162729823245076442032120565037609794965671412684012513194164921560397948397296712235346609141311301724110927876065092541729465669090539164012831899762529074961761832333485430350983318842573635377193670318880647206310565819564680319540190280450586282506787709055338113925342741132452771566573881330983411306150748328609223632201693903467762110093693143358199562728288128879010791892683070909929517592886555220394845158533716234279708476222478643346253668029358406558569871262667637725092614317017386115970093573607492838535880803889309835084304420758817890611624883147046505372601397008189763197200870406962248606478949093130013004235848579923658812166019692464978075595352715158655909764055704368685274698134515662269022052249963516141072383273529645185469676996734085328332083827575658968612640556822953120116766670131387875908053744986259136523868321044880248736585487009300582531764086519722009774557247464021111374187845585162940213883999437531028260070004311637635230809528459320466014641650639934392188438797072089817524086426197226301603312796312223466837793255509371511777643148519487019488220485640708562575328623442960552073935346499724862319580092270769193363514610311481335495013173086888357390218048740866047918620326859047494244773423640268733887360351430209054037900465322073641139519493922746775298574225721729523670883672852590188428270521817654945802556970181353640426895550826768882796471529331753991800688320561207916487824686037179684515570954445321675845479463254655913157243360180159584465465900614019435339372839153518988846876948410047904977676131920674377630480263831570796636253786187919196199145090708022777795499762777107746335652906193099071982120513413879366611625565383561716411667530689887543384231701033063926794488239695162346112150013693157835145667232291037634465168252031291934568460887407519382603033031706264427675583541957515248788054561950765625801705218890257696685890784226617351698454656279115609402328749097213247296434646896696923717251187052406767450159671559904414865889581230421713635891129586937894301550507798824230660108305249970773561951002879558521920411204504511742375865138061686922080164720047750226849784239827776672713884879792246867191606199996641578719522370922249523774936470434989929995263753432085804552408552324876469137656951879211844957581458261944028631747390538603594824574672053320540396019670535593202223848948143572722290374641296623763896687789414984643045793241872677774244296034735115842182969241409597568828387564393400523833818142309741966296125116020589824095736692717306687994805494494039054041706825777384017071319453229939436689282075648969066202786156065139945934198757572468004411558764458562727767416104200972161627774279950560988681969279045088133762593683720889488003839390067227363696126575878055618141390472302041223705699326498306809584642535104533892616611120747813414119152349311002336941894603960963600271532334785360014946986036788148901723187846954930531575805342752849195915792022076093943066803086287899813703005267317188743570365662930029492456206147680086319215960722598396753712316954874443839320993482533037302515528339801700714250035036321791976784763161636619910228442416056151922069542848720108102658045948767085792299565208301009911033223746548666172800368435309705807686069904160364868328102201181107777011308551946227469761375819007810940010989224541567503094690725629805183320761476183952740574937558109672887512672192866516705355257091801304144432024040287255310356201889465868940300006839360012714396126862786428680270756794871185140406179713367791671656465309433452361181816551911975808051466022704572095445656563933206222684254601088743464035497537716328149782582105411375193267789062145750172642613361979208226018712390000757477179223073688379071671718003659768205695443347987720384587958970108680545228568269915742189602127894255018317406218044212496647944917812603585600814583454424889560860405394114555836843989862921763729864383461600429977823780095266856097471896797603496067693321233849948077879370584155016228121757987093424926590737323446375886693093811360086171026400842731186264611471750823268318298822651136479167864403927889829045305636666346630025258478172215787151408715795161760431026131330331715483290313210544687197695862743016458117511630062998895645138272141272314089227829960851727577102110176269236151621101500109508649657755893329385251110898582257527658278875071013922853750561883070766185739220393481389768861303780299518096442425311799399951628745973986304062764097074779471716461119090240858702282472189047240131000714411552841514135363407668468879086629672607004666235167638794445846284246263902860332532447839920554893248749342685759741063240401228930001051452930204369898281026648302792996720379224801769140335559308206840673483687730575048754555830986358182076035940574847986943250853311806945338404173180959947907301086321178701481981224468893859827555884276034028323727240608829460562822835358888411864652736217792800981967059957930618515375674415877407546280149461034845058454872517479985083316291010794352610808375955037857174878112466507716832520554506285577252606837248826892499269409645893692892344464733165422100186350052288215935582954819959553628316466602019961500953924124551822962726653754198901687288347336110664500211878710690679358749454571728515747553153291596400867512740421630165718562538750279043443098131745631063975315595920031855288503340541978070291776429796397888709410759281881609978897779060582495884948505384365145176662939818259752708249017908354828673488724089062190509924644467256537330241735024984052952341683728899362761123152590690012990534185060802055816740688177942652060832330824562679431827669495477102606952379908010434798757205741414480232884937240853714407379467672416790192643799642129140524229270399514904140280942332904719952482903712253299083105544202226148698912613123476175855751557349661409262495954786960286170943523954695606919388651631581564967202510042638790413093351630382070357990602634125410117634179737297671557904907993029008845136092839877602726130960626971455257168264740006937264945534252537068133028080854760064779003728519680704791554407666915516158952642806850474569779780125543438137820757250593176688776743833100436719639200270219651882466083141591471106748332598631592096027908840364380712934524128737398172760980143314174555170708159756650008843167795086424305607396757557707957955163500672311592674522358625761582990503177492731287818988339886957969914357893331302546267481456043565014779579455122457799682300725413756151415952590052548780272131915833655191883850186031022496146348169917679067909422274622385929816111900992700601479546016155415609567919804611673736882058025596709150473963076710483260492879629364364903481522590228075656675690213082770016802400303352385718312526367829946043128982417053995598692370231588726738150878207204462458768286891786619437664184918558253506247388142146236383022360026575471312398810910188695140405566471629088628576538458551709844405385533135103771731358665237871926569219763459550794181206462077807301597851238243141381574799511128766196478857211775778514699632590778333969395357496890378656683394585252240886215379430002295387425622602946902957622543530628891266183383224403864097238424837198007048057006370492564090744522796616591497766990436567971687085030414876756705245308316164054572607347534439001300549195391886577596826412526447098071935377662688409413221372731599786486751448558176770221342880612267370286129136819189376559719456151790833951023497755730252657059025485614210198781141386416413713493122478662517050239581069414329198166577860505313185435305418946000838934136033015282565608467205694909978150711645800554419441930736813584405786367926624805952218171544019000189827070448929508327952089239196676435343409924394699860195648785326659843191424637457954730172442323397463453411078691003124194999360755810564555981620213911135940877741675466737484790770506572634264978340584105067401652359664317329902320540848370043251129567936446216843525222122066056368467358848121730190648057204321642773526066356196702258622676138297921518420552903447674519434658952802230602277079629431603899432792468994590464108278046649939151965112171132289935699700648280924813307169966887860311387735054213117406858507852394561917765633849671584348301823744738148749773544116597026229605699180486307433840283229698856075165491867960306503443829664820635579004114388834872760327770780802571505732521304350277882850027674506191162112970715928527448384876686243832407192235598667165714950486857176001829719200124598624859581834010056587787525534391929651455116939057105788729399807613638842798855977028817669917996447565805740819395043078390544088989918100362593721825433757138747028361464445410449803335460069071523290917428013080651025304369623334138602412681151277315489350297502206294673344962886527619962488730661959552474902156848536510570891262693737697279167752412578088751362000990848541217304342296014860056690495706032107553652069548971127482304180752595838577061041754671203147552805393112591772663040452905259455674007100549725019819091970894312811538911248008321764922917155875111615674382220479184703214789608319980110533297618978057274161315054595657777304038782975854491481071154768889867547415769842549084567452451700300373344664627135628904753546989067558792469223162778392819731089532504993479132024886540273173429713949890876714133428250084164101963649321002191907512061167425509853792018402056686101653312968328591541423913316785618193488513804178782738539914454810354584924634031930074807133719668809671320827304614657265080288659641360439719184858032497030811458251898755758077194733992454667424483313024065314765686864253279351821042791341911909947571487571774013632345248350525018797725253018442685090643216633171755499202514112082791953015467535502613965035526299379294393461068716224250229114027655136751286384097405384977287771661207011939607295660017536522887053203410359101061098675294694223876955975909030511293655491575028779312083578234452986429425176743577853015186691411125082990529152075402411855199732974606848767495211196838228055783221553743594718701907903410294489508525353624644742510409267210145636446977477407556985018353468151700742760958478175885501790747775459019231316351718364965344733776223533363615608711459914070805447406442451596595298551001746041369367300959962903684602425046756331218932722759246150189468075706714466644368413096131183614145026562751954752669909220959724206131897881774452205035120861796104339362694868292962625293419764796291340274768598102286598476801412501940207858507451036012101137199909161566990614589332819931541197686078755517401869378172111642640892527748147748101917410979117784924487975103733371994755585590794244878119750609444588389744377991663906698048732385512481023314008202394120223638944842421991224128814074607803947343995889201241993721124329711612172843373858933695978110649732798297256868949556297083264579900810262528679376592203611653174987520906387041238446537692512419786665886034343938235689141090156328306477121823181947878816562971591625707542139290559910582544003492379443718123774099948062147061094347988277380740069782367886253071334539122562494523678039427365079917921330684127350783825087738097434982455614857437804487940968263530348469826222809101917269560237340825919740698225972195701610231373272836084861606090765071911597734995389272184252406348961188902556786495098234536289061380865228350096528330469422935685253632265753599350504949020007887424578260375601662467525475382542729343004479658120893977984843773489380892466911985595220231024373010778551125945701021378970708621780442004639583878171640360925947624721091854537484438069554651658478260016851488881305906052539426652045204226154947286329384784124553561556393989292161496292393855343192351885953089726570496697886489191501472585546290732190234464996722031743693666829152262660949384950161562606308854202111568453040622213644928889103258612528301046130942841831561639348640559050780306346251387100638408128853679972557087077818520757960961071043355118313694413704078633839206075210685620004528300346565337390320437998166651324985111748763872451401884555526156793449930340098681723076985262821772256593274316450611616333272422284873157705513225444454141667623143953927699753586684608760730045159495290469355342150247591211501034576228223948523730714002711103432034469343992880067237974633016155641250425276367981215305176848718977678856397126049796951555229734016854348720742835982543377549252720007137625654279070833970814595496094422145829114349929836866982707970404507216797757231645512783312256896670401101434565745580506594860426038648259367759196754748917984440531391212061572482713799139251804929612337434096809975325526874614895008343550561627506715785322297316242249909378312848172222678650233896785711520483852206876074201670471203543377035921983227676220799638231871544142795873097509711201081054369990148355196722699493357947960462945374150779489350747348397751528772872363495769304152096988686755537019060129892787865735946350041653752111563828008709932231864843092314258385086409645671166927674033372657806180410400279774724391862392070109630298187359964066922534163250304312171496974118775141402045871287688953540288922257126268383599590964932428383651107822280299571862098805484194383952928125684604787067010440403029579920601905216021205385799513871489008869037478480265646904347126743530097235494136863982965451962257378446354703057376484395381093511890402760150423695135440027479608417315141164875068815573239516321971294698903532139198226716868465211549454631273563658750113200076260520686089471666743276880418092007573757343008173873250624914510264686203744820966530724123003381655764991847194014553764580280248988010177045198681508752932690263039502136989254984533831888130766327982882702583077698596653002936022812959131033766708583388418505467585348865308669977866447564143840955256584800467534629457122622600764457270893774925862886615988867243137576549386506911494822334176078677743478228628361128600842981509287592235556540695882805292008452498377585414646620036894281561960786993735577877199172394268737654248867063354203328368295796109261682586556112039072897102784602285653699761355815859837789239090872573189000336692297695849834992450498766544103842229218465694721416651531190261538764543507008246092200171258389022087338984836026936666997117042163639949969001166256940402328213313541619903190533303117699834465140239066361002647680924433985111728518031601179682805623062023229115945881911630286827414147029543512368653777300068231692429000042276068521772776113444131208640041637591822601283421028901795341148747276649027338795013426958634242649391945126839324300420911914562276827149813068423204883850656028986665783769208550194851292468737233955403991342087086884106257008909681639292673386076413497805973745400604088858598896965355772146525579799874661294990617914523610119071154254698183078597426856963075006778012700727844294028846247920043269691544222630524316326166616553390214550918307030779636640925178650866580084109814501584149061421730822409666196572185794168073387978163761799300934808112079449757386664888279092601942164636191650060190640654026442530677288328615245857571975781094498215845997560446481060341268100683882796777489808309759593776421577407025993890981501049401532427036734813187589546716603093011418640882732629598812615950418151087151530269111962589279760653353148047716717735779105101497970458265054593026013725693264435170209447302004758154187710544882168139488885769440239940265005203505266628276632697049057770443144904434196678414838243287417774965608666483666221742331761937300262370768056820244540066971325414817130766621368476798433228825978675321650546045860087248760522538407142628108694381241749845160054240584016045958055034924638784165605112303787277481175900691780824015732749367349114177288589682846366396198083912531306721265220414236554736957356755400529847807679607355078038065703740668026144468277860723820665623974782829845919257478246336083106648583897302607557505278815953056319303165677206948027311789480364374657710735516298314101415969743190170685538578731870021567758285782650879643250373918588593522604609539735396675448767300810820314088939482033831808746877827932794204737851719656341350331724526002886687338930186435096932601448825775293946850148807115690291319136599482903453421223923412923741539168368074861978577701880372300316600005870014889492832920693993368796775311689803108462133379253897699963330954427311482360363375416138428834908928791267903442451440124038292142073173135556082128313005155009695264791863634499681371872300532266841040443637742364162785735597098612121667031534977645577153803986819305101799640871859341586448345843539453285216320960740648371320988331353262734912603190196042291018987732765529295648449665126444253388316364015425929295780013430397248526938330947249290723634259918495442297578768018442435967844501515581125665825399730836240695717652137680737202103667413388000228148408255802608844566196113292558182820983169399099722925424814562457165317718231648885963488709979194800549192563565198400344944531733852038342110280719384310528675501325382523850283220782323498011480080870107720496504312127997802521574203486032136263487635949284844218682715343227723870959296872813073548047666497657375525526401835880843007467358497495554931888470315120294901290620111253817924103687362064223599941428824213263269604724423557356986418643967105607246260555501624715829745658869782869175349433554863401171039134296698373368754132923867351571291033302127195676486354109146836545742869405733091786827988069297741581566778605704622673540406287954583901208676822411415716899230373782714130010732163360560163483805172198821554492612365963795375973000739736729606874833461871720552519663241392039186076971001817476836005176702591516868584882027277549658585840675660735881383351801852260174969274556138409499785112955956458078899480217652631205707905420867669898043686181289890546074548857892776351085317322721788679915803533685979382120544769388886498883492769693637667778510092670580565735869751241307704747669143401379694504931526653272814065395970846959514125221548555789654650192858159944322987027605525485884723231874540027077927679192679601685138641704282838829409281062653355103942635454386423540928600454472406763995378149475317830006351995718493314064097899894597569412711224529564193841487125626863558669938151610471721832597855213539349460403230607227625521336310450060805550510887780304690772001369917097633471880371576242463702196758363877308797114969930164146503586885844528582787439141235526368671468806906136012914849055004780618180693552932457859776075614241407291224214022167004112786046265188263773684147274492968292393517505960166638568847749567349261092580605973360718820770905537054906964686498226821258339007104762847028693134719358449821489948366512223500824501243793957645084762373536755372450665491840848290630860989217536305454840523680212519026495689251301483071715056113294186735677481678944272884386333678776700389931521759659256710617835233745265811630084412270903371980918962078504300954342637526158408062478526916461897568491770751320773031359019585611004006928175338222874871229589260594588238428968552093492404729091445024078022223779197168698270348507377147492189007891237993556162628811462915358992321260609085739324582763117201146867032948677184088390173948704769438438993952170592306621844286930219637114491995408926358279492937780782892203993668366848632695703734283284010942646738029901566536756313661343804134838237677656246081157298263137559109132068686149669085194217647315684396908664218869023306356234751658122684084408288837789943424816903676542299930934178891021527714764848200815444645412602484154068124780743518658682739064339238633923028132493760895596729288887979974848921882634697513056303197000900176361539333529890993976199490310071359858579347676129355862359377669634705280890395712069503538573699854586052360371741080776076358596108882113683100382077473157657604964785028515704985222993974023301801036855590524048912644466516201671983769799148993385895388588606153073748307384550019318597690197599033298749239124557838146658115975852035982468492152187426529910781872148597237108693497630773734960909973657019300587064912459191164504295750631287069451307924979466914201163195866967442270225298239369620244804901882302738324848394777672355896185486661218984392485336809659373598936731878252052743029806673415699759880886591560521295627692051490663261682177720406309884361688280794130202175832007381784903000882976390342613146840877785840896962035773924696910898090431168747105525810259268489991137947016195137182549010642124611085542360229911831496762629469271432175275258027049186187065244189564877795035513707154896687427341728191027884798925144332743382950145899498878839232138523587313587753429553119374498522760324812489784051881313030899402029333134386244200765447674390542609847516345078371989362579601656095686188637713249139627068685650256509438505504349124894410467850545673029630192532814417510138361851130203153525755240866995730990224835162842650711443113803582180330948179651223989544582804596605746380821783760543483746531349873077527529154458881634263466795196534323364200726549717351785506866762234117611763867162258926094729710235308543192651201406831257561872259406864200640806660219000136543456757382862703915426147242602012591153488722964309873898919904490724797186704383907609678504041449348794978118677109067068852968268917096332112980315715848494551073550729590266267167010014513466760282953914463828717170430584171329111491432551653991771998208884800255736651588614418835556435220561557005806835387136003192533031468475080636154429038022589245610276649957267055457265585622309098192736715846879388124750088430923659416392415616635541124069679461822674082944934788870577928562972538298092526839287088772447532916191099133002947109926453341066596196609376439808804286502963873634341503596651931311974404144675748274520348474681427282784070904669808249763444737566927749201431252745560610772536338933055196769163805130938407407883640124604829841251397322349958703215697491387133891574196430406913666998079185017092728314384741886920440916970091847937065111797980408195581198095711380329821809075132772962065918165417238365570845534693242319834485466377726577588836680564919368519118890547089595957994613259229612380096727961427688092728164876971712716943234791801382009399133875846585169207579240927129740727894880552966878252072751042709712121334635725051553133418763546902899173485314983235729401612392924057490135116269437365152118028117768393963208913226916071038744260532479799397469736052271648331454877238918732971972151375107834842019490295033369536575791422481985898346710796725664489106584811325214755243672982047739658092336221781147230562572857730489222350729964169658931859480214093848714597285457122765770606440785087884734868071353383390506064671307603363082329368096102448666771868732805067604883667487982881774395855549100739231279781646588511315109586111008516519101354552344116902798059362644006815452287134473331653992557043356836039281494160147448606567434323230389471501758581718097285620183107247204160265469756870659035712713550959433055364867200145974846457823541999113281639935177300168008433761227773716612903337254718565521265514629724383844137058415310592770574062810628980071986157913311223193025093098128402635779283838945752619061071971979114459844573388287102443731867164016713651676156884613929012501864380489725390938702288447172468672933230811568395293916689992837202260248141927198636981456338217379939470306272916624637918164176018938952495846052200267782170338484215368948822717584298267906942255764120427577804495771564008283087600897617569392538434838180518352516156215630146312251110611024959694130534494032446492105076299287577145997908006099458933749605829018608385743843330865363633699623549592661192558139198013977602890323168464346774130229605439548297199785233069372694189336951193267035483979821327061897522677965424066571409128094467250978285059610937286413235927089855896115507081456395405599373170981669158010852446739765300847130128720690865774291595669644435270308832500716256142334413509373092743249959220070419872223042516619370572337333657119246887920783545214730080927478415393370076260510544678484242857083086605452923133422616898903398262960110429725881518114822106625701056314372981741979379184493368426190215439888499024272398886158629486719717902470326010953068569832613404459620499949969351935246256790944216891125359391249371295804629151452720321648127327461319888845797651063032664536298092504602632054811721694241847369965904171965340516940948549182580346357883746570554620473664770266742260432367763523641940191036005028298720704704778836677130710567724530990613581564297134410270186390456176118127155261159524276688172619206565257013587673717720196495226031550146901863725277560941238703553564912161621152054210431503524405714810779103678326269022816703519862318707691921132443578059547308689941313744207165653419459780117446974069951728325288706044670591384128402096303924471624971171259080347263140133355278744246042039382353877522162963285536105748281267036286087245468837036100271725534710686924553153225905937111510889019873729508340286470983241845215128548972754210758964037256954403189458282784483857564123396868793830945679976195483818888236258340373111130402267566763675132290311578677631367427641808475070349380781029955192519312484055711660869497809382811711466399922229481824073055591454284594227451280189419706845828114427913236407867838816737472379114902871474986815309702838983767138502943823019737435018931701638309054251670139839442067727310944038237805654263124705492598739376514841925524707414616009984357394280918604090846903943131552281133918092174571373040488229722423559415724991950039400455837330805895596075831998061915535814443903826610202374039251468050919401037876047169450493345114065681492097338288487329050212312418720811007904835209945715588495655857132685597194063356522198332042358907046025486918007449053606212951156673119266604463626835763556583927194893087014882222270004114853267638128052893766347374073870772974073222885533853904045320777800603641862329175016794551337712186856188805780709319590192963281612365572325430605089128311709942092086044401792540277057470077876807885871051768242407406853574850194776080881810330781952443462493415189642379589335616589975749128352331202654900872366679146212224552991508534930764268824019258073456441241517162316604706000855446036464968011315250384749280435203318193690946916302287730077533006436705296369275384645470088182439639435480886187380066492164929933060659517529009238182817312533317805980013609176565672320591124816297608357088095969649872281621214090577980136706142859043962526071198597747168758360671065114397835045523717240161081031382035432412862069832444092791260882043385357257412003895502566689483338576434332185142975169126758976813899251323600721444513431733002840508329507629641234979996742355044248960988642280385515068758136450341105578830971343158964510149563697364428304116269289091017891664675318897320779163572556462164666111845462682529303838120044803982606331484891089526293986670467959171422322060835378907949934126697655831659783622021577335815640814236903086239488952714627495879950471181280329458035216829502114381453639364559461707224137862621788542858392256065790877028990271466407633322948464779029168371113127137712045124516846988975123888020038504835025241579088821845885896755654529575342727679666321427281658786152828054033182665167915665100031819171430021475650261517893268144246500287566421955121027550008383100295463563165223571918268082484296235943820498600626419226683009092093218315515139802528381463687394887754186032275707242825249329840013534577433660940131519332128235105624058224914792071930423730868723253447252992057335924114619180502588127179911861364190424913248593953437439379104054748745985224023916645945836570894516791831161472108185579597004889345215895035709165739158013331355846471330924439054515069646637042226860442098167814979197424465025539492864619940550621204360426467818579017553158913851935984402399271460732542028228721413594751634156883016002543688570620321256824738680978560416490542611331544195304677325603498125019668378249819929191501682571859978199653449314459483687057665089763626574467292150487577386992493701783441571727065633927749958430289452504039595641571801346093857343131376073631280446513750288673134651126593636471582802375414752262447606374244160116332796839211591832630704202342899869296807477715595934748369687910599342547925533721104783172656174115039427869833060087308227188315807796751452979365655256017298772511691007134252545394463700523876937302770776890138373517732050452963332498052275155687846286823291024593219695377146973355948692103119180635542963446773374339222327566929370467297836520441333304095419873486696443960728382209765425608686175425406859170701344194576343040145978399632874502389154965092017829493643936617861942934971953012507080826657538728697059726368742880037410330177900076455854630109671970662694355837609876440542026983462026013117095785583523703122357438092377728632154909682046966372786364573314318417676100351891102027117496772023089061664866253166809315913307375646742066719177171360014095038511153948898877885632263312951479214330927324676142747559923834001751804129386448201500516084137862670440593571792248141120736108780482965491945116566177253788650301431523955665058659130435505942191210183794749389292300657921680146396336757449618728279319536790502548673065913357091685038576551590358459187121423920332335102042551581278973611072261368233225017852549037374191960346564363420719080135910622182841165955519660160677963567030345265796790472534755089731736713372686417999800925780796553751664012131237624518962122965735928777929887356200571022128147481592226034092575970314204756880114095048738726350683636811661431504302168177497621741055296837447322618254869191240021837456001942629769756736637515914357546896386829517266314328791456493448847655027987840999323147911065933285956093597269410369026834606814322343083697040325847237001255422050826842822512195210987975072019652370959520927386835865723445402750348594019333000504910675558526269587065419954793990770892366262462120592200748158408643760119201635976929496029386969658750736558304491625516843570231941546377153641968470209818802851243454598888927111599152259952395377471062931670875858437162639755309902251751410614412595024665412178037001317419693893471158489551382877499317182488058905541980685992484520968352604618095685857718072374686051028835427436795260003485451087789399034253478250065446692164386398752275258280711387615201336753773831553607885410220568371882005903692526664359256914389148606444073143869126529728334818070874774724067716837388800546114260593922336278728497731139125909483612322649645882020684631351952166739989784723149391136545022366844187536180762993840444600587245774294813192060521794094987890485386117821409210778296824007109067628823176430926816557581054174758155313272295395732878935383361062766973670530594913104017527799156700854224093891490875586134627691678216137243112312733973825300603320867775733017668449501066868102475163429710487367145636833628724450315203980253354569161341503618086943164453464365644898306548527886916307738616963013892492181518142872032103839497539034654885090393075493311812474145607981763704754766301666486291380741986250596404846584407444251360958006978039445669793180360405387117294345457624226837253838350459196811707248277837200217302627173725758874358451059963278570383314153657628237344294466471486433548544627214632557224401724619390846689145266881695583108481506102492638044939571884090931846558602228813637222864093421584142050502293803881620500984872491468691915158754798176978950264167341959098218966355285494676754148247295653614392433224996777422256269386174257020886560888602417765238311921469336440802986698551986613555412363431004215226578333561470903679878564140963966105219139804545581382558152214742247838858808258833639484386429919056912771355972765662703420534531135551469137476498030181756670690379755459904129427600427992706628369236817567548850779704067361827229295113132996828071328103617724992965858473466293425747678859053288675425958803816912199906857637335171189167227529284912648192349995389405999841216894788383791444438047316396390598672181969221448242814007937708189831006474482299592304971862458591606441602981077197448747122787671976380613103126080397409026094579787046816275445353760632750254169815230537214328613314364772087689852947801734716590877692162664982544424494085512013197297650515660966607623471326676569846423645726444334199166971891176525280028354241326427021864406395413368388345859726583192865085945546711073381221114756757411835078387241065390885816172526439138734380370606275123268607237381820625052142129119615759890373008380690734248786198891996588657245050908397507922943280480214305710705880044068344149235749513123507299203742389949911698040655906450604000836946013512301731131677967242055039879380635861551460853767287702282291804150922434909528503845597118212846436587446811930675659284839822084153977814422167725638597407399381965583401116506342571891460401879583238759177023827085240511719130028923590704958603847683775467573847667456408318781528866300193269454623815531490053045860943814655237559191168451276206066633076230611477646822706956228594853491722637667703898305240909494528020625684749083788808774275241270202889428188051859656615115548294231493933300279026390981924308270816842475283495831619208034801241399175146135078962115591327665874436681512220113544539648421815400803646755765570761843834622532844276001100851293489519515064324613754572602358811525000001684437460177626981612321936194546042795568043080826760693978823495869343329723447982311735502329822562879704445678357524608981574705295199055819674729731786797934851142605397225242298930714193218570700113141070648793842219756977987026141843822214087967758165454391215293576484123576619769921766929525221875021757860531308193472557509801994854425063639299766731926658288249143835308355304718593885826234506567901527637226840449820721538577078095116189627529460614233715699783622974002188021773113401980197243856805589184997450572893973400825498395299492419191626232096026482174494986174056861374575848541457571399972142778846715359697456700730728228561184237598312841386893800541511522881750457665960744123399020285158148766358179210245615495617977365430821098261160199087903484613528667104364839802309860144587662753569213962042254972698472160094621708649310266223140596201720113208167400080967501981599977462173335085405972548301714772543112310172821624082655422519141068231205285458006220185331920229675926808149005611828146188164406811616440424639466772941920155063569534542702289363627463186487540726465805546484299748571703824976685567750381035686860291989259389203998195424341243579596352527759113796421229513214464977976605705007126380275373019520456190868120523904509182744339716331946534820576773493457843394844825882561461930980356574812288981220895945591221502990048581407048671832344311715115932004117790502054506304848378115775334968539954585271656838235266366732941823499917543735683838563184021516206453930172845852740343024575965371497219495510364069366353056145648820144215260313249979404971082710313020059125899588493157451215686251743212152142427867797854390981276080371508877683775601278336777200700921162390465617956986242086324153411585192282288484925241121099424455038889612576388850442549653752633935443279917825996446406173674554262706830336027290906696135971155822872788382690498563434565270656865971374662568978591991302391332027173493828215951959379679813312951931876626759765591029073958037967532424576476101494241666638602014342104168519465508543281049638404188323803219904385103722982819395757004095205659504027416753334911618986749086309610773127710004515164978750983823863862167629790150445212363731172293703024957539082519131637793256016650514791481977971633934663695837512308851843133512464706201403742660405330088176715174905904148121612918598672348490341478023979321626542933630098213698940526834350824080297927679881292045702325102100720733099176178424672530935592997320201613030365017398036920076725518515233611445969139626052313207603000759278899167309939067914558609303844297391835204907960429942599014666285515424627510406889352376536340213855696519658479599293724511711526123919977453730587141051264573812198418649874199184990919402171934863379943714480314052452571139028078322513335190116065773653477108811897290950235443459690715661143998266269495394492327965617393007993821932275066533763735435120104267297676769849673432464632471569298953707685138100155100761977620615538888266662583018844368582635962258061969928444907045188832401360310341876102835017695030476865783388060696631276514149679917339684944968063536418365740165223166673688453491032104774059310331698029576578917606917658678289012120425612252165230070412086888078486851965821498910547837191661700178739987388273777465463416598101840885227120786730845322289461602312791818589572388280970067408312899467145495368935493070682249405503305651681159852999948724324834199350031862437007365711566546184280398485092959266311893244664124179042278803911144874306331411825048822130496604616020284726553526094192874026183938148261743365952010733494684529456185089998381535433543994643064213463872572143197445690861981727560367616552123902216129891562478111630523984441810680725381984868960886320027444282558406400570213384175710061798992745641244594389022888861140037651729539048701219772596283300278575407051378881666170817217331408323201664147994616080239650428004096112655246315605730208679165624447254757270463077629406135066979797953096747086325615027478772613208338327940423732755360460333711678218259755902323979660414571817429674774278175744657740883125052465192895330571371131137679063967915320351763814807927955660290223836434087206735565470989196140855148839729153299209504271855495380824911415826137520528183503976806512491679461421771055078744799284350701055834573371628665837657498155496829879432498332979540061588626120778354683017422836777749396254491735541953139528544614021815086548700392070646622376998033666940401160750258924422200496025310709776474941483546691789238782466497698284689029965934182982563416173447064071099894628786520552000711636731873781457518814777785797595876563188843606673056612239163924870111781114027068358523754009739971496329918447943004936665412305538624652923847342656595943748274180370198485014779567411443195068977051152527439721807077161832602410777535673670175945099012599552277241489041456489173852191213563826283149836163785814496516950269472386678106331551078520286332787013299359450495790491772005924512272438335955279659179607996909250184023086613968883655480736294078218301936288112398713782783868556643805421744013943262078900360942087287224663405818264622081158784845084357518735877165864247175657327271723312753331882659315039399511289542111033242515920070218803479476299246227954912398058921225058808361962090268823950261227449759954816888924659368371708150467381202035214937024492988605323931752837448268105678735929124021115835906184078639723242833137888253383953200459330484687754667673507912237077528508965942842518591251708144350589468854665402123357052332910336562446925938915981127882277012820002837034818481523059302828042690795941768633897547742174563309011561607978379858371344972437889946867178296826880395585003736684654219860685596709215054351455990178263764405875709279038595267269592650847913458483880136120712900720268218286571282158419838518960346756886215564642860848586958047228355629571798377298996964157570053798922079198345770525681129603875165804545915800936529084589691093734913314830824659681685276829885066143872399977103238262065025891765987499613952159053482990870370075144516472186979684681224007082116645954106883518981952504807278601367159150727912900005098396584989689378596514037839014316227780115203085001352069484165718498430949558583303101112329331174338397370050901166735466092694911578572663906154594951419657987184326970555164617119661302381638760703761142153734567413191237437795768378839210569543567943848545936564644546845900652140458122509934265178296910279529482339517016586084709236813595249455579261641429060318595128099480548311996340904273560693203633872690934618457537827513376619898126854619623803985555283483923815899519471782197772071355302378809504327024362245935471749406950357912729168964962856334128877721402892158488894558278015916533877622734887966712139229740912101829081266958609712061434005330847292407060320450723353878965922575246898699784887921703429567013368824030776748580393107654543172640271631863194500533248832079494331626556927376314844635651231570152993107250907333793609473022815566791029144521599871935285042045499526183030131246438990938358259635488832511957663908939362945181274542385851189093997296925840001602746813445463276676545818337792631626212066628492092084797410289129458620400311923430357365596780027575612660355656063084821713704440221037173054286410804941738302996838436705414700696596735517183187292104914467279377388223275462402018738272227231140204818319192031200788618643936482395229911957269465726965493790973767829284221040459195136136445338602425850986149506256261901958988623145736812047263230464353600876617766227320781036373522970028911175110050389063494643524766510449883657295319275665981523140447363952020151138549060091221297796014907390989462369496700275502650292418369163098023648471546502907063311144975410945725066866655344910186847397964946244145775337117068141590241537374167564116392707288453920416876575617463448261708204874072122896880796074588259500721755460750985540375301320030102576418469839308291947350711278763918273504032014091882409037016268756501343794557286549403781070049206469977143707266598439936484748411633147109006508190140444989005628563905173320396273315092363595037529747932036151456092769593820030656122236103669528767525548293999048853549010201014986641872440052387505740403744617770216289114491829380090102747757438291040542534706097910318231114766929746872803752014119561585519519248741696752424298231367887880831769787301515089328636091767502638678788793100350959344780477081867586535568263144827281040124629870199712903750674980252764021830031401515347812018663360019938375876778531095587220422853643874772471740739893611371197862345968145730598330866242319021778086720569596458231423272072165078135194586599600958136049865825843316283585926387606608514266349327879879091082604265638600117117019267179555251363456424681334309574715510223657309390956327441931731423674044756847250023642251024281220627753009397120986925190690710292406345125452668481830112045548142460746558434392519638232417849991994570252960416933995147446710040167504832748411052480386377858281519906297630837621323586451276444350948425518308999887890208180140871462001693738859056341332771625309050667458481133815008455075695552882471131567716359301737122140153623297329089061068177342702633217658522492427367227894431795567999999512448102169811195905281350116453731627664222906366794934913040046242700321988671652168290782075015862217248394103127124158386652965328366791698352011627490444609621070535967850942686849999652171144820747280515692691448092027779067899740465658565312932292049789764434381715962332306921615162940918882030443093864187951649775656747392907583587905931021698663531057125737065297771438694553704471839476802012191256047791232679447759094256705771349861001185893432818763516850617921737865713046248775008694416249840253067003780109194933242104551287385156797151978332216290556159383923954094726255215143154995720533162190559801722303888521682896107859256489580961060410968174815447527440073394341946220869782161537576946922838206533218490905265034699046433034917912940432735064442015070220890901016722577075760730461818601986182088729269447623372495380261795607427011864354327898110998752222437095782804732603175073499734133297058353330939422784607150131153779748160054069833917211333810927567279061716560109153830420035298291741439439590358289602506262976484558164318445484177452374406047167283172559215232723030866276339130144264430809481545791043860452972445006253527905101055907122041844247113199446294248429427303090696613289256265339584558296491048267743958134294349838150108522515524799151637265689274931347026151107772091820323371835406883653255817871190080946243740516968019188502055508270899688589476242846907821360339330423413072565449358903948634879141671332796485848769955280954197346436858941594473280647376824539003078560359835676962003916065462919424810114456840408279618619283767516433851149156769976646424578071005481137893559563799467077108587961291515863120591120635044227467980254995958133512251152810390640601227998900513604841291101834293619594634629743337985236358563825015677747801114286162472252264437477020852967856333912156574534068616993565342777056682536114743310541042775825705578910955335316456491394658446412630067082496990634779999236843007860908101024458826686543528827929857856229665448403958122740107334040792142786825739230344434282043089016304590024568258598033393573985841889215196370195818205892303313302725115220388132221417134292681377693180442117375269604583135570364551343277482523146240369315608172168177844941178635892055283922740222436677000712650276816960026471973364568352393630449879718383265721850160393238640870873528152016008485112605135145466794371394165789552343572469947866537535752242017318112921045743194113300157085852237852790343115440936549268670087539878303696013554032549842209478246195052336898604105692296486896494769725262415049844519101856908446650120219567960256466065594274727111809858864593172638967419596393803698609893397514598214155175622186606923570006969256027911951198018529428887138547488618010846239528306183963883029984110200027061451104820825762838854118292630598021104787473186147239770309073701289758858146338977441298184186666228219019586498509673050828897848450314404549639407681649235663320132712209774088901252402438705898591736331016065250057791230435799731813983829441030478090488349056413493231080062101620341651605925034556646877613092517085652327926757511962411197655797929680017961962050192227144683595213578895545344456489720170163094160863322523191219070765258254106247203117108455859992757230551800767356578228720769427237317151854257326089828942344509588208019898862854618467821672759628428123370083747656313645539066306064074720835046136292074599068494981012343171611758399727852774523526484536104443651221117443817415049919920893840706814254943618947989875995767003654383162307448677441180057615514515534235260022436214693587441253982828100527564876486331134992538028643404006082397723919264509192392869723820833719833625213491729357884524807614336127644402919799088900754598574163386355995002245885784681400598444228692195089461817624320199254775600450337340836155364968801726395700128855198822625479608557331992703770294509410592568366502239047235988511490720957411425422096073742054510342832063344112671169341868887061430777243925744352705333151164074043003534108833261627475377504937929974628086587520572639356124690451226893902491442343431464000282927868690468022275955297958796297614035999780607577421082472460644142312950106883461113408302528389505302491336751833298670636756706121868519468581654872639637563001350144757557426251152963665197455887082169614107895929758199350779954479117282940373059013285830464422473254977659788263975125861523065791175474733258153224150230707812753607529257174440565807340808891715599987646906845288352695693791193014465153464192048639885547281588992252149355630944747254345930330587707852837708536038265131397966995037024452362841452447936563587816932306203362817492160340018115536737208319467528419898849093493069988429752459186252477383406592644111933312702225790805323977656041795796404122076489534651975249475330343809906072312515937883654376309100565863868197833613653405987540155053784387033295009649253920341243934034821685415229162520817661809350039499514055862721690443003613041506069236055143066857454996432417707951072045405759319534347848568874497101350807785116976309934490939595053223759566757089149291314026481594251154771646617398073883355613233111225466182406208659172689305147638289282576403898037665716290942987696331918735708597303320534980025647359850295062759544386873919038218077355187816179097886293764704451123111401000062591243238816041442887896842144149912732470329716211111588314878580482090236430233490099712993567170911161500123385106283039323367537303394407796500189862908108672426391598541530409283064870807376215583004933791594661335949133929804210588608795459694826077578595157808140199089624231135612660677242946103161402139195771678257692577286651542784420971722208842843386450987603839736180132712439958329056958847829502183511035237630620160866742165592671241733825673136379031366618743216985180335020628727220971140851256224742435536605998797642028070225468458692521203971315646256091473189361885355786661720038411820347604741075127065139785047663423721666422395445905551143729578868193241856719185890538041608686310459728724735038554941005154559245160661056999313400931986068499231777606949591488759775067718177511383475531833183245844219587289754794209391725579266128381314993799734776320412043178465344577329315209361980633257013944446089507749987972205289133381286808764846489421216930648435158344690334241556181413215104872218898513435228150174592593181282210778954771104411644531192155918107965319630546106982674802995405393813079138164477239973648707121970592970865293747336444243754620421315472012142944074614778389757645712602006705152915396973611702833079557237978709522630172400077826306194045150574579932724844528460377776635235148846839162737464654450625836469808660893577583759304246631157321883220456026509207097529331153125711155013301512816937442007385903138899717392283452822126918816036536668213243772980300687855407715918124547290727652866206010107757327884834175572795642103048216277699427960593756819970695930525602861509297983094437677653641671235832034427772071288978178146897233112824814719920424801487666488551028163243061638754436880212460128364359944826534659007877751021168943873300930829134794605501981319640685197435598891289768125683788148649054004949037155830926570732639096461164667569870021801244195845036857124522952818642075153174403976580809579786515669245704527676673353289797475848045714823123099088051277278883842118710666581569234815272026252506625689181742437046426715058018415502657209983273104510137697757346370120060280937529475890970162992919870937718757269032651311562526429754995429481099240935092862078973658675878288689595152758828925860838293436688292816393674957751124103309350920531979971699405361569084218666442835467909388607837297229740319602534725356831312803143620325482038552301976870431725114827387505767288978930978183691754630123636948069732418920126694897316099270705807308363420743762104502306658099502046397048475061399353528564825518776420599902290414247814131733225940134436704465476125635773267241939882526106350734495056632173811970713599304050628722822203202823380946854166511272480499224417300366284945418576524459591215131297323281403395673772025321705720855099658540660941670389801956767765081544127374647796529628207880203821265913978378380173621805153913596198473922823970363139588392015892644745469644114542363843068232359913564180619276221515886920414930279849117474119371100501338719546501584944533933314655285863584631772660056693394419106357397755620157879481314713502736827560504144856300347977104239570546120374968018142472227584468928668531462177530890133411296746540210186040701955357438732714626836609173968468439494924621185754913964612284091431970050626489834159889047833784284919980147740176307046133525993830242310866920228662799177652338252909768243632652324057450608974247133278717127416700835654287676273515862737708506046884867119841984450602923366636024150573626257926932161795188625199406551009100958104011876931319773321260509516700700411372057275242671376801043176981372291749896248526944680505689319051699346754668166142047181511866510284327449544974295982184513125049736918046672201979665160173791519494720746855570621503909607373936557866993366056525659462835033626592167006941717374460759071361660959104981863757588743753618310130023423004668492025236935581938841976011132745682607591682133204311735048530131872997674705054937679282431658764410269893524019552631585101278164988022917143214338289879875173031217922088324344929655128921109397967608314260596752282316277755848139964368100352337358141925196371806217090409364919993344182078607722600904257829338078279043384535941493216344233235650393111560928073426709861924218032629661099007857761688483253094162467988525820331862481801664157846404439058478226953004279329461462773015750824614603364537664260159340458806064269880321637653132594502980208185965623169265034254393587127051059425875510881631906384486577124338089181935037128742529798109537501357594888894577004789830110624825400955366661064486003208023075768331596605490094196745014990478527448828428299585729067325189205665506062632072881781337443133559925441746062872370390783515399964492957374180256158369403981737221922014427941069366009868990459931954094674588655957911176526110049203802471106856216537227281120698134435914606607371127827086809334343893596925627189788851517290344456960130516593838429351927006251443798102051123163355295230792275839318797180483539795461842241864429583469912631470431581334398032043121458909872412246482944619499063960406331166801245796272129261590602365365738786652498972006144851197421911406864759280858102986765350155364781007004693935330778204286897381734072079881499960011721509693869800428279694406931595677159298339644234892696764818089001827619961357565608275850190260600513559581425899275423150469918683825717976739323480405523257805200711409742030907596659121340806765029752593189028752091800344492652341105195858997035824789889747477964606754742109140324903208566656647805371766175255091536700070286499319455971160764833329371908981001875203689898264249290460202671510250021965287844121856503738056331102944493025331524051796806457576283611714198439444368066075480888434409296395315101831197679748883639551605823025501440491442432118911636261027503987717440478862909072545773620526659607929063469303347220180824883304961490055180692418668632133850269794836918495810325893194776201215139244892127076006735238986699800901940382733709675979939240897702799137569939967476433219862475668406597967592876409867247315600608899631785344575025086056256110021464160361266068257850307884658567081822978944257570415384428670223551684775686915118597088563674968345405489986193081263341094561154217700026725806409818293049574819646642344910320688400585158601830884506508231561156267012395170560621456842935109630756857968602829769866020508742062339832533767664906238242697228986598001324562429025403840542468828731321049803544807946782820174452904109518678709349999748153217122469804840139279516772965719494708060698385075032140757134049909008956113852026516202584520779216148488967027143856470263676132157737504428158914542273071098112402948404156134407715698771092657671781236208287318266986776016742310957979231598185759400816594082804503884458258900223303050224488107135834704409067066802493605501535307069892169195844652818822111882929653105099885243124532381368321630887505535902912672077478637387759498248534469287382724115009956274711580647202200016206809411008788780129036587371012082062451631198642148663110835139526523572960114782210043474477194192530535221390831047297145602075947693636151832778045703756853569852107452122942710851749771261588088860233671895159503550063151589158203336168436814508875791123257796113569605817122172841871562066372965949768705430532420054732691828447342719179090065691019681684804417961560610996959476206434142091056393940949295026900107971942308183979427366670481898033718980520723603310506734930756930947032192615977971959603540622128015911459069746792009450038643788034086160052497580467005559545987667247130282277768767490124880838625769936699401807984311063771226628631723233569683297078323756400694384885142323140749963563942779490826041081037126333502897464057819165594363277424005701397410616552941983094287017741999249622678051486715942339336203159478574433619324075015587161899603030808425622759963599502511194888831224821209783073464224790338200918939694294285277974917559929673594987148505024721693222360069009363735586793456742510628047598203103952696754988838508562684013582756054251365748929696240242913571737412011746975474851397739205793823911758483921291615576354520924431396231147774734147339974163632110682484965448023316795815685425573198677979033786117605326332784555812777981103817935024005734090814361896313017332975381767489018577505000832229810507825956469572509509611052616503731379052942367706932612349556076784425396796489274453356744041108635869084839155043976785437249399758381523479664530598925656942733647936567273264241582461336924030037909833251384549855685807442589197974298695415851531179136417834409688819442583113338498352806779180981528703022307799718663650951182437740766460895771167646505642276178182707424410700940959514246135652753887509954574135331175721151886851646574048467399534481888452108984835276025374985878607562916645082036351589940755871512353205621566510792247922387726866835957618063937745836965932659033725696011976054886303585496273052948532283340241878685164353571723837350094721248424622292920003464982219435192014762312384683737998338232824764634166556323739854474064075801104831695607455510585778877562815672167243809683767609134455572693403177495221776262931062805108609379604825444212971598204108005576693878571400636285847030026819370498778493613337593378425056409298426105499123269598146725013499913472639779249601809546132632653219629359470096612826119920247530935910679971754332684524290693113637896411370871262425819268549465838960820571777761528707557098389759692463363662512189477314399090211614820360845616258358528666451641451507878433854757610849769735051446421131536259129311394578659568879506811797323127900671198254205738825483461595345433330505933147481517739761424068937245788193012453964771615334039796047937830264881456987233544642482351673846720576275070419087556526561904268357881340387680723147228204293253992240680203276790152388098518315189881837027849931822903738257445560447317594201547687528561855818004042415182708591380697356563671669211147535237098833123169381394777380717809273733840191711653800811822363291294029224324565643021373902982155637460380698084420442533497895804092395163019359169030275745273255358434817377145941506614041543877055152803054507936811587925666576251430734014516648777311345379171312834035845398017150153783078515305177373020444348856177468229940307625219612658364210318866256150665747854855935201940095929645721109144780803920847976053501976189154233923992218813405601818238109677146078019404384538619330038326121535867906347946404098487848691973231930653129887732682631266001514720405977233698166774654087094323343841406274725033112939179725838181747131623874933588478050855473220945643073395591118213237264786847691624640406767514837860358637885906199794732420819168689302408328637135985616286724098772287693390512353568451941026955879048286165294417548293810790417979328753717093822452090145975075594508874093873948975879768276355838224686625261028313366139793794878354521945457961589067577536215274620305536601921834190083412700378869720332898972413553127020692988145713894439886926881034323792229281874330614945086400657942173557924844031635256444517005868533479158482010122904145194965087258167382940157010401491782515909685423484678005213396068231964551890024429696891911446291496041925685966265964553522414176251077391472005113842805769433483707720813681395759480138849895221841218870531334918311464448707228780749649003967210964532085268413271692699185978825946638178101320708868607677686486746693527993392048227405423465588789961573305954201849489719901205861874880709180364554233599577578548077327059042780862461216771107596940056822710975093589040728183377334941526161425337241883322274087720639375083276842951650289918381594424907136328977202249012111879500203339286795511907807714048226482137046787317788279941166497937739437487174269890876378587868022179927601553280720114336196758909948817768728529379948181492192476324181392448681913431268615054223528413723977153835267281572778355950455022940549093671924991173891951536659940159438262883168236040232848141316245330647463078609650428462482949817201712573393610210383859675759009042747002896333484079548740767209705248926082214528946072446127009655619735447283617643586497356065956350509922221962855601764022207051938198565138110817519256323321600272094588666339560004707245005639524929268971409280338325579186162145789915720551919019718714654335402005905859261249272510280665692625177250134005665057427849705182122596052441990924015621225316713034259371062098039541540515054569445677982105150676748933318494444346453806831154758426071519762807932833951322002765178487733261961246367907585170495884912995689005256520072808699179629618920660452703851154367511530358348970905297824773824556532093129297764355684776722677419220731747764951590655722427254936334002467034443349623433140056804520308624042403787370892684483572708862581493159689300715092947222748207019196766304539946335997653954200798626953417893814542974315714584375215726463748469503820727350032915947101108188956341119737957626989092937532023370595276022069941809112792466104776787246892194119640101815926073845290251663611739020488161042462533237114773912154628410335789233827586727958157406882680727226029620720536817514256717619188046793886368130658934616306031154110845309183664379445534411555315273158491963648914180778002759715567114510371546952539539487924317085824729575599343443592823125994164891495188057161556990838078334334308117430211574406990622866652384282289839299408403101737978200950628978459195222522038273424842537749849482501656188944546912745800934413479952588241190903706927809948804669955938335831714451678783815438334828378450607003570478306791960532938462152618405853119700629384923268532220384929665823676735199841872288944553987844980568007222890276446316182305989600192328909319808311632812409343913966657804259984985333625887481231927370829740783154961702726547187390835903966385149393763525800676746802403257184307645706929846899820667112092438135306173207652238034483204496063267200633164993251180915508059939777179678159405217657295413446636113227904887773723705838926675331489910377344840101001837820947949996193420190688026020530608849530348730617697132784370657999028652296682107948689472454391465561147827499302138115125995150481661646256625989217483648567913734938674364991798685779455513244897654264576262477604485622995657233382101292253329006570101439052779050629557242164962407276793221991219333369148801604159945608507010608433006146357137296589629422291512712942731652655318704151917212306490966101512636569349151806369902116081971795615503459768037229476161685453308105534909072032130528046552543040003932054023733481227807964130468202937018604761174078497753986104913164653304621913571176897188507669828664512084463536881712830333983784857591148292241676207371370505859828775047508966632687280814543323654949934548982465922288667912811173057359238488158509233300518485581319819209259295867134608284295237749317643064631025773020409177558792657530429831307060496457880316339853800879987189898424587046733691704016511321847686791458354681783397689461644845018318378511223689019384814146833599539092368503999448587240811031237504462536185853347216974021223768278616558117888997075150817254110057994697463148378758778072181041546890540667453695019717545944421686165127765653240382824735427305914432876679324613525018276520189305477447674826855360228597465704754080326059328453080298630860860075157909362382457939226311911614594417862068578877440714602653034437157660100130858503476780625030356241788683328421527194640398021646055331372060227608177157607422933944225603310167102425577315794908319236571677461293932083431933759471044998838998059684020058396162814948714083704719420537183126614282951959687801617520591056855356160345338526849018295402910271683369659576080842122157048230220774069838077106717944201139063649332345118521720485367453722521067229930833027190932668847975709885623841678281215706297938856233040205555121547313711998460451814853384553811607821838815555411063833895328089412636587383128507349049912075809457055421400472071015515504671156552143467203202585858253742804260469212300810453028001808964416973342011294252243498806434223831119324086333399325353195303464029507950466754478171616410055259467440162457873652911189385514353928756972219734164030628159445499528895103534346646059906829098374212844220365648606832499002620105701274621204766980481101927092557435259929457398098825728698688445373969327900237660928526819620188904351771496545064256427547166293884945416196705858401941852589206481706186536036677247505171674294432815414809342074992327300732000246934900548759401375042491474870955124436995656044241465561523220307196605009906563639395269815278047986434166754462909196343725934289750273824380252801408738684705325303407141106728232192414713043374386996472116460927766351401070582690496803729159983131845599474497372537855592120618537448986912671553732411513207156973201011747362542452896450801438904755748012881717014699354216334985934875251497091597459070907740381333801322099677806578670782258259235379313027159043486526518490709841564906589333643723121308480537741649631942933436113712823329272967679634768363376165092686867160507992888356230159794119706559748381399312707988124328277409675358642661235732199314858627750759580556190629374620523716683312351612745595271206098713884876363625055871960774125372734483312541643127358314811510935837537694560109544128754370186951150259415889946744128334803249813443163653121386488043346648951367026883468833419140050660092610358079627111374317707662921392402520543162203426521499858356031555592676793705935965664191588443503060478573555583229434773309608555111654983247945985760170079613290333087557525387765195293539062492798747304168508200340587098276839907783653755397745616888368603642433202445154181180313974339756283625802724686201195568468147410789244913520463366397189213086988537928820946921337534873041172602142395722270970324848773383173781317628125400619952525571038258145551058296053183396676608941580618678081619154859686703480965052516342195685762913874148324918167166642813492745580661732729619493485514079676464168753704734026388886865112080887834398308982798779945832165904799672907098334462647847851576613989824876438824115242732556431618326103874130223929379088515961860487340415267726763639727520520203474508022054097661897961613690333514709540531217493617395314961873346598791424077169905388644697068774949575718333077525517176669560959756431724295552555903570074102235881833352500695094911902045860412826900651686098346625667383097824001208243895026970603870326831856751624007524497800677702512794069685535460859521913575115716512882402861173820165849301460172651406672412574474462915452124819233182069455544715763674418145082170378962722709508058675961054787800406828604430252728727027484911526094019915451426001804784302489907898099920059877938502555387909914248449041054666105762828925206663545381553009151134180086064194879532350076955787429260883601227706955289410882492628342806684769332171869012141170674846314089442478708596494269514875367360608852209643587519235152870068396708878627218614258561555006807264248828343228670093339857157799728829463859642263435666481717861606050831149627598623868531224483413782973688267103782355767610060896965305329699853314065174803448663094232626335658815612915896550658680416253676481418844291108371339067766283478576175948648878825960581784132338202761570273240555631503732085850503042011076790284544087014708768535542895878917042370535712486169561461694142920466287946861154204565979428963841523617516998538127486127863942334371894783907496311820893968675957374084603879378191603014512016897348173419948596108281700716017635338450133320195916818433843648959232913915465577501978827061816908218062963400346787066550854832633800087399352299031514974393576194540807272536581183910039404063344124282712499226371446023692699183210967052304976411434814950769514266859675120609914084802239788486245726654241579877433960504616205481680151031787200049877038205942760254740192540516908878618239075889904897949878084356096767516737310986847124404742756056651891096571024506768010309303823291578034063236897804302607288937806911061363978421938787741380511606445100186021559449815161605626046008742459949460427574805135144428778013137642064609047612240853408169610559598530059157490687059576923245650020239312640587484785644633133161763176101191013389529456947719734207464907107763050520739082571901344484821320490009747403203790041563620275242753924761487598240955542942536264074796477844116096738507633213067709214576129910919171211547254395522385087980163182142549116297562726267136787596232676914498862753877162139585619912250584161605874765340176427670435080699542596043561312868103505136667258514960888877345596590456031383814573051096014144671879751642605503014048666221228922459000283436941919359765132468522569641716181786520252676011432249419236646758511806312718657649139781017087862268365101118566756229780221882435912364044230273438114004095118177137940569110815597486482744838949947030796881712454402736726674263039134562236056175503759022577646368235374713754331087532028400227503792746271863866051486683459843611091145151411741360536462578425196420197851772138100855806962195191754622597901712868178814554787281012240232787289407746369706675390365290475045874153574505588351939792852686883819779031083801146378621699728793025852335705197797285474265805197455236990484058529686946530947726481502339832386303351905157309482868764560566306414174773325238837758682850343716062431237865500135952836093899333717382053387908293695292354340215634049859504156221832846298237496456025954239709773042879490637388467088410082904294666890242002655132920019913012010562387959021369405291003940498634717266755213073411356065618292994214840424024747375183526108014404540296301469225217756047595291028029635019550147077048019766057568025505708389519541510899571113898958181365541307417003090514601947314840858356399721651325771321426754912523590465476861384779542732997338525111055139701693582403795302730798601225887122172834076734968063850605104744928226971252202781893520241517494600115270905133176966902741633726754484092919397712848853048519550155266170655341249125062149776051147094790757696572944316000673226436634743724616405949551685007006814515666328478860323760602423950493728154706643202858860642691802853287157769222001606398739645419107787398572172348275366678495235733286723424207148775758133065531882291022796801956634724881624623424743100094176458941030343561475458925136049621252465943780435932606128897984944160145215934546394465833317271697893105582606946482347734584920672657398384060130515560133819936198366701751782020563973611535227259938753987442684756525473635565013687287997086705035104408808629239743966163386050144231078546914230499556403678509721100306768784054112530910172891056408059108534375016452972331700114275998553030276160973845143289037159811939618287923726709459796308535856437735540838863617203655736943815179286555349720550080029939273000541979242344834641735138082361616676094779509957821796446451961108356556469060614028540835908351974976720716097047200683220466984968782267851133442891262129061001428519321768476286705473446369509151306875377197501951688479397795805109591497048798894936416095939528147317201034359536120554480285815770026959071308218261068838062272468053377051375373273780168400299281999359681043226855180223001879952879956285117311507144021647502595525074023570732143366215411316499433972888914648537783024266145291267135464001163880878037375871690459615371230420683725414147261428671212201259111763766286180410876129466876938809994547852069399604451035181705906038771799198020626758942883421482785522953260686159375984950480434294904019498277577743179770439800709118136301231170135592082225173655593833599095305243979006401794133893796182950971141683466947247880885980776837529359181093711465270096021363275881262486308535735715488499838676533076585692170220510554335330669497251597242872576725027261255478159385905585149563131333908255902365884318727846207086043049185000160180482668516980386895254601615101444319642580137795308355571600796802024312495293727343212118017423016692995890980609566524456920319734229088042496387665296904723363981303276800796892411420899998774340085173282172469414644117065394184588679946543487995420445403541149679351695082390106280655671225229142918488821350074732743732918816686512480668193087203612281415954689056901748369124330335662557937088217449544134569240378575658175587751736935817914261332575370785339130827859450045604610932194415796132188767424680130666530296967421495988580771003263039044691141132291604422170829593066883022211489581341657075665864988335000804142533894633398727478268664485310450511910417062196555762563821430527041189568235041837756213524859599555536572070583069435058898760941468309502398062018007129829507446824327970950330583301191249807057568728841724818966336473523254134784812062936511333354866763430201746469180233996391440855470873420942375361790977328577993301560523043397012389302502554724119332866019749123573311392722589168580548479762245123376826029786035816624608099087806116815985372491907297198296279433100196859143528827917909168872962525059063768086646251457388685572472924883473211740537326230247785418614861192924801244950352167714086083047567304123524074430574341318697491931443098819625160299851341922602647641936232042718977490195431241486970428263045575335343740784028338616023097582618154247691012783197530662480542205678051823402958027450930627967170464270393819225025176245485997957586194751146528291491813925722270419285014332799534536626994357147802447357877939337535464632346386903804778436437616405322008359972316054057979165642958206067362503383438015812539694481447529107099507535688962145597945916096586431671412063925315066110234584531566677037856963830248660529180848585823535298233646002795843863419963978546734517210399679876598964485654226075092829416247021328238005180854900472163866809862371619979098020017448677698536132069927988285220784776969867065562845334054661742314288145018302955430168014405893029242064353123968646959343892258731559926427196668961890971339973319716906825266868009647586225991768800625952390743977723872915976531521757554132357912405190410019593820121238253909178044941970790619082899115475905031119395060678728831526189208027276981365214701151599717073352315561302561204534385914471462352134567824963594821533400977810512281108969919458536281881870983335972421892707316053117203383473802049243551941681690797350099309930857976641570302707406225994338281437959718743857673304569858281368258521148894905902784066740202046974580568844711850522545612675285737854987157472190971450720005453539807496725423798392048245276692576990082682277775476915971278329359159885551357599356472012849873939019637549965498256521926034066061489099308721462859291317769329458418231580466040361800350223091898418700473422822588154521518390288363279864285812514208807711865934809664505673204257637307541712975665059111889190836538267285593896279633530208755383361942223907853485045222217454083872405475394701968360042762727890042708583737766753344539581134964581690895086314929603678638563009647886091507981740508807052282897571235996820803586759840285459581988337822856372305340670252005724766622225744445299744374327441535361857520961949327616424609910718401827292737469467114035169089123869366093963210604390467591517683093036028315664916759819002107614828204208723828504524031563807323690962409712367646401174013391582408983472538620503213019460523179991473606833761597857274383878795438702678500919012161560596750580583521781114608932740122039669512350341860131823248896290029405776053037861691302682295960358105765668640528579067239435026984789191865833996551900007931404447811344514285752827630469615003451820527399481252936066231993909217048889906728018114631203235164249872941221309008742431223592260092792904353166876338771230284149901597453970013472199288024666226841663335039370040785115765199469406836207321162696905584394601298253503686754465370692850475246206715906972691007526795021307006461310958661486224291034835092542920134573344558416395748361763545029808074156253286805857001946253618377091885084038918719685828802824918155978159785128908640764852557829737079742092528127653464194290506790242828927096932451541917687267219901864866993651254406182693241525211039817884225691136694627476909500771013907600189542863719949212773224418476907546109833298726360593296448179389517698364279483452838733875456251811174451729067791452447523545404168322045954017058410642520049850539523783999288819737231486693038335632326734060934982187815993399214420295219735116372638937436528560169837075853017828181311972108047432473234290754362826510704207494124206694103139746141285945109999460703218481299852509648505541845696273975491146213196906792823741678652917644591118317907327200208963792488123540054444949318272842564523073670388351359999104123778019880094382836894334821490488699766317870807890707761916896552598359191314001246509248846815130374068356485826439636044113266889939327217078581548484423183671395552185124731877237211620749036500113391292963683196765295180073235486056472641194599380147291486924659208360630021049775705120029589480735570368655871170511282765515704928908375858558283864177479590917198387973384965506821477984097713472400079449092016559147786363826707169306487700858379835359123382187595190976942110987063357493939466609528458309449896783570876620807153260544516253219552613363280579408669205595457097176098506570181115014597360434674283415989104262971855162936084116707564014393879046688190978239203435310893398237849848979320585657449779029183688565763000071976684251935259160216501600307902197995303694185725450183734633817195615001375836731093492416360864572240945014784641238400881061264143861362921456290897132871297301179482949551985406952288622122553013908913805581829410647859616190383678679051549714006782853048381387012316828856948693019288181382601847713070504094773525261975188133134083195758698968390968844522802864974609440799387236585651460084303617228936211956621678372691729550248712144495607481913122589519288442016085085664618701942847541691490155857842783515709604246542174783690679431372946486617445977703469299031686899722593442379127727088386906909385693440052771982616690495175582571751158892807873718965759584672289825770384563170786505664395172991133415761759920604486473692961502281305293293076534425639761566583184774082386051500436201037362992063089865487867399316256562693698979009716317425968268239337131333169113580537684042479303108572040855514302204693723154092376169334045036449017822502838736488181740632772327994639603508586073709826085084347839136888313429085151873199575615858547804955527623021630963321036710096186313350253005022175694453219817332202650698270460888437871092044324783392243997161717840515260231255410700366768735581093997620863711824300001644531723392476314930486907505339993959386656866187667509218212765287437051284879719996353782227337583028063879443328462878673591231638669474252539276413752165173401473804259420024330982045365820460070264148057290636070057926436326043689612357959349029007111704824245420761560400113807139295696970468354555269116824482806975958881134254862123473827192639056404431725935937729487406122802827726272128427037948226543427505184641188974784126513081836609836014651770530448687736984077900687668423024497726107017624991543982130528091764642791203472615435550639433841063317888403850916040550068934005331054357524637356965153035271526973090601607983612135035511210096953954349363546855997243430177188424817938272901903656620194311420271249130783802785668245720218968005441404425115052665279767145398333759816228876491033326589045515253403332239059335574881231686844466386664297267195100634224798193030264983084154348951030135248729345781503390223255995194735577308736266312522136823580573349027244012050966431288715429781628770245474438806689397871907371377326723971701006311517277228590436741977395415237316495141069848625959173238528741071556308386634213920459100379916582232562274445573228007620183148088448212905161514112471971845509807713243085232083245348977270139214690451477025988958434363463602206598196820940718481029857348934589645889129086100361391367163404621376562154252789112638288255971749206641019442173337693949713708471101792757133177366583060476058056277652118381432570225591478293010898321669499527052725299362682930823052151154922770512052835120591645340581127332649705933978938509999506677360216942979780757313092626321526886474948569541437883944696802280819977679895344243837008874281511699657519040887642679680211132021162592754752647972566356733916933308958295762063770660400985993729675996949656373671072782616329115518699271911829390954058694622019333220023178279323245822765765185007761183138970106155716352188091440041459262362544403966731473333964561168207346930260294071205227013399689854440312862876702193767860783460417342644612048852879828137284267391277109686554672870370088829006010772096591564940404484180943127050353888966938054703950939428311986420226953804554293831098354577834125819514186261378785615317943196586376491467398897668327523795304842922820576870712323791384182267956915426884245489297234430305430691409967794913417658333181619023684929728727881482078548240344482483151110501843119456392051043726734654397144609762679415967675644943547731583181589175290233104979793309541718916315513596006310568049466111703372799833225051767119812515801007720224339985855894255268516562097225979573516490579606363425160862954927905894065327444577335168164341404526291552129376307256846399116262753183665219649151935369552617867873519970566515464997255027792418048565732471182455815611737137422403876209316817006026531545640495765794328964443448305949362023145945602772754510418154932414725255534930470725213914770401310665363527006292196518194505139382803875096633319232159587192794755964921371738500342516506595965679941418447063439224237301267598379563079946606665887946172906085869668727772202348279120986253503583812941582954580697874783118113553974593858611099840464737731617127928061477957171436825008832529281398557876370010374491511965970779720955165016974506919021591232637088272587676183564708459268048792049825106369362765881204699868080169710504096502092526558345231064876120117591680200353197139782459124678797834625090823467387696520830055783363618760137572667791868752220556152429306978796310990390445243093146775489658298652271295952062567805040148812959106993735675347004932577623039529075341839655070416230122588488313029502328307400673723517144836532836771105788198480593303967820956360590997513549729510910161001824757517917179916941837706651049528869731179582954346404889674879172291818678850831543832679159681093555641840959315088101350654679465969920485274339115298969727777502069188623147963343797263506005440543240218672815463100266566664855201637464489889468008501030100334919637863301919315341468507734484306280295791830290239476040501015204251125211000028055208492088215782792084130990370751763536048706823059146246687133395707043761249206311513903819033283875935928254375152821925930497376083014616818702635795116709252396386420153478596994054050053009409719997791871261806833177614233121037130542335540124510886070632349338758584945571493707884546136582323882004470489107764078882707938043278093394486640203179598933418567698491375663185298294112885611169603701329792022102744032428708143785630301920210129122381203502469453435162798609433752579383764677771746228088361002864563414509300468646479000987451805607534264089114820872385722563391055127959222589100555239157159571433910949411970752122971783877526857503758625806640342067891389461040206818555315411101634597413458622298543003738530950954325183634745403832550276791651127870298812484233484774018844195980737848138012206903454267203171343777382666309234970349473967363168866773322263197244862821306748621001285174582777650716210025091183565070170591797880119859316872517509984152268336712940031240165592747679097597148305584764541189894796545287103321065379160513584973787102180144297957858824297629104356393004766788999380412322859296964024373314328126649764721530091899392660604535073276488864071840519176404961834153665161816076145490272935736711614404677146922652842238990073078823572456508330150897082452730655113198876192797963166853444065087295880971932247362510420705177052543817762388356391920257981262609960490828789834305794885159596476864708880891686575173398354691142221088254609482021210052343590707830592085367104284851875963969857635973062746272581014427483757686943821111904439541766339700910081560102124386776425448866090938744055642021550596170212041967017494065668146819185111897657075166773315459740005457257237932128311324261032210044002463768464058694874690655080022918714908673103865988490588513473854728313288362842030358583055142217126200709824936626498945111716888244945737634739173068493611329412350080593960379817818061118051757998530449603608878121448762187412849655333916947994508475533537591812075610983725294758855511822119483900426846395513640872264984031352735401197760578146071623366925038799849349942290511702549180065459922527755714943349584562676515395777443051055060533958711796970880020420619159217626077886238678457104185716008776408688097246090513033833204357938720880891475141424195203244803917691937682725226329880524072587127905330227662959193831418523164681252990416503823288182679124519189190562624979051888270284393346834670905275644496096927925090541080484872178262968851185890236566695460650927177703325336553388703797515465901199463149502644873942802670309555686717609532041060809502472701611596641811384162008927790397568304752370337905455865638646837254313334455604589494484260619651319815355027884060981771397448822271797392019603607724326872434947658549998784050706435233170392071719232711143308345335219523734358181202406153808020154413410318832415268139941850100660459121552215925176053865528763757260474682902828758743021030745426764057933466151030669921285279448067084353804843633776932793317198669440993560473832756142310776168385454997393871510578309068676163985375135231360127662442309548138164519497906077189458516906671568115681749799263743580576551525700766300276640620370015508056874465904312137973311243823588199001991228172475538556028438123871743036018262825317782851865362366712713024518474592350389896244015928838247174205998090837936970580443121193909637964843074254968948839749550038935337137613411256224348534487242889866831663857716746041604838264009788860611412888558676150532154986062277893570851099506701823362871721101310616551779715732651842310513853989044622124954147716536783957519393218857422110562104626228135061104680772087533139263602405884712276726380088249874723434022320106294955569798841433385250161301918632393250546989520193610929922847911428323415050618492678337454857337549764471054832572831308492815884522564977576357506265701206993847153580833736420624975500118366442469991401457926340938182764391153166740808177192427022133528480091804675552913364868722047638917837007323845608122822956534330742141573718453838985152921440792955720734854277719675664612631060469856592098020441296436660815837436971435205213547079450191341447003988574517656884390287149931011060251577678378713724800355160116289369170833826900734000594695951037134269285839285811643882181056854232966811908610039463512300933441302980127734838370276429320293809127432641270127456240141533302758624541035865153923545462848574915794762557625667068840742926029305683063158588621813686019825300873082091302414591948247919216790883622518957092338468281148278805466983294441461964933184277314629905515710905077989249009944513662122840404107982910150666629838592503764990135936442623631016258153989888539555112977086468851112926998710477571619016576963891608964239551741289488251501268701940971742420183486194230445009815664677404836838401495411056036203803583123594203843095050662726931219191243321312156981426612307811177877809730440134491700959904033055707601972004850508615713772291916806788390877961409748455919390885313868878937667777262642852033957438565926976720574044138684788063092995576089891428915367908087888005032288430172613935461987073938839510765360192421262564256050525672156803679228503394577803067617419722945429582177479076266860599614209352150138537461531881616371098147902419812474668416047476248716456324430949915863551200360124981294011426979845577846017491240058002845296843216734356631683707267978333727810791125803462667324972215742922621681230673278016078860829132348018291723289481065623608253145567026767161080103280684790297546417625444633896199330947077953253659388792052839067592455718930569253879565165542804162454211708836491930365387511440996522044262465724595321834131965095064709550517208543291534066864011047045746236363001947224252396387274955039760806456751804015356017671508238172867387300183383987665282038802372876322091581213286266991154948480670377820102625185123285545252078284327540610354754718912816116359320462966767161478304397650782244609828326671858461512099716823429259580382908096347538232663751321640138001735873469199122598911509490319637582898026661437033036884168552901345168621049807760133878143104533601722107290958709477730500818190733119831828356625285709932370994151934973401263436199087889581548032299501653718403122974265484359063898770507151435010583888769253008195792049708150770833356162899913427822396226632054360607787400981745679040197854018198817252582671846975514825585713435461085950158592380087499023848106785567228829813267482837553116611888724373115735595155906967095347153307471635622616050663344241867643901365167873687441395703393332944663549941544791588761950867424342961951872006360008051118802522357632774983766099450980514008166489862480868458066667557905709045189392866575988991472161903907467876891789466101600038020930045027638305342416729675593755909352396023637527923866418899791417660413227249351404965502702998485109026555491377941772752162422563794655037408723284107049578967785615923233371522115078224268389308442049293777358865868809665253469656098799649291876430713485820450360364113993929414728168210486687976694043240453331207749745810162312289274621796512475059121675717947218515331985421903889988336413145497929489414402139079782354647667607087629905738089089102746262836653238577325280388646957517013607190105812522014631340118147003139992079962869180349479015619108845605485122549314139194954989422305286414580535406633672961038718647961562958659588584671159365226977061472307519913101878383016566823541612969224023917784298277804834555691117532717977108462735010512842885816736756783756063545601010283420252405626243203161073108052709405489051146263036466832698038626087132749499859628397339995213524728480980387147891723579583085758174956129189058718606030807141015949029747324441277749199752370199769468825095551225037144884284061601252947675158203789339827431783980715089148883389584947843153298325425605484290784649534201952251306477109251341088345501378660628902661801649785164048791087594888435587908333127700564500395593783468740902506277867736683038031978925098717202063733396510782328364522586655221136134955165725611803725540421574632178636498006596708471912633112059315404644360810005188160393908508462967122649072514995224777911162262766402589129541531671549897721991406954373423692578149762981919944783237158090557434481667963076546540566191172921104249214862431154076334490305877181474808784369186692374400444969517333900113885514390678093084806194233791308384095484720096067660882190046840753468413390080233601892204770016115346889316150495620833049867721512098431431354135488771345512676892672163588282341501018791938366548020954784513479157126864572740575527437197246878887879343912636986286740353038229519710310179943624492747776661896076718095844031507417503601352683725851489203105418871517859398949243588048677592887178114688704964494525494175842499793025995132933889569464289611409170818273434457572153161670152867897335143505043044110408341184238580253479984650244697673543600399245474938615817992196883667612776397921836485873121670913592425490804418921469269748450056879826189485946321030060275015750403456616782857070422702703210308971343252907326008064116290977452722891462332930624673135842815531533043467304815066175155768519826057231418680099438545382631145003923626362091728194948601349484262788434680033205409032607338741502537553275904090728664379238156572417873540534501627571591908375230522145925693979003405425883945218402430473129225377071803664831698897696138320124407214398031645984487473256687265118105413722838304594744336282300745721503746497354195489855217786349702670797608325047712432551245902921564922001009982590878866554942860455260822572380713745292759869701431455633873981222145731715683405892173329730045768317423957405988976199469194244280736839142987305731953971433851280902834404826282137636492959157310311826673263844019952804054960317030250055667923839303981960486424513732487792086217352763686826944709200003148977075295101012926751986540014210147204597006295170956185019454755312920245334678813704447096482131000210281972675953613752297311455881150136817963001214433868690237347970984568180669346911878309727011708486900896968626245631960609961114568959039098407981820945016794444484825391358475176681178278783167298718531162186648306315459746889750074637431029350032975038764683880138367090057600083363029638130263276335432039131937679217684980095824620041371614270762265209285373666497609450635747005132987319842168930470494878551197270651846086104000808910192022259230737716903725165898586452825399689981026343793134877986652265646034956758891121464788397235411549808790138443279630768136911781283343990427567860669125456034508381221882236546233045670805012175902822952407013501764856476530633378090362251286792323756034700490864015429850773403500026674954460985704828159062313271046583582566547199240928459294607204392748478039135485504931280653029657096886921018168922773996193109436982112550154032088252969984006634140989259722564163520128278172472144201887031035129583688932322829525982065915301781533835124231850694417982711028483839852858610683301830787315036150405627219757647161129698243166916237732513007306890068319398717518286898396735584431523119108182784810476875927330260566155567111232164932942035715916730261092264386743219833209751392941333019560436738205324997386760203156802563111113861779901394669827453283362037862858728627564140078468965950932657910755584165415577764834531719732563001079699370943757902457437231508936875131886639694970963948406899442444418956970152260274334525185023700616326515866477941520316660274359971818303866486029759556830433117994248829303357923262804870152343658430229823802416788962054383015781438090082773129623289869934383991418238520959079189439830052672180409468023492814822075576358058373134849921298418788594868797089889186924568042882150917830817493088339590376780323776735339178993647775164843865693695898174890295811898907078455357144469791191501895396874785552268663907202300421770608104736232061939801772576028948329762431153695580563548542803114618670322501063131051799002818000539727505635224180172047232276975616317408758184428872606119422161773279237997575092758342048280242953652758492736741597237200609841761487768232815028762155094633702342333180152406498018460279072860137718346523931866781156417784961962437055885542251943979573028049887298604452165272248923003118486381844089235504053100143218533825733005533426200015846910004292370867613855598179566448094333089381892822233777314804034707912238560665122790362370549113839877984899972297719624870141758212620684667477875177877790641479907021663701309612338179431194039936786743600733804617811514567236113124263559228348802176703563923388481056876570623338037259965632229288578846827344946862092548040336154748437241185258876357544731376512022673711581967304903807442146515694252760379435049767029941619224149680836480251502536356717143395724717585138327000696652380202561210812678709517102645665354678092945855332754646621206101937065788052335943422805870002980674573141164653683186613772963501204038223290288209107131174917225552312375275083280546508200572591082416947000940302452000996358995628735768456740257143944888819414995308833016083969799544536792461703990368481272265944127112877284122788857904471477801780497685267239153364791825451640122325978308946442008440346985496500569918770892636378144234946883694620987334319756227361836904526022787575061869656264196710399403377321394665297123589553474590510060215545880694226921963465021295623290047209334443074576522067861740484457315939027609525752276034515367907728192600494298156015018490820754966205586631781324366490243222350093887885816754761479964853674195538333006143805632512722814497489627471833386378626806653513791844745247331477996494268515291063676876161314612625817264185431408215077361090320129308851421746117354527097159943493490613894222773728256622718464503180534073936058305371856082823730326246742729474024309190674520957310854807920733585025807845894656349143961206376204643952635293603238937750593122361527842286435719231901147353143475960334446708596882141061547593402201529621823178255089450842268150769510605405914541538200532854696419201772844221892647611647134238578773563065891821365965208061227402711134171672268481625373063923427717973452927738019182202298529305829475056990114869161067301086594463405571903711476021842462719034287367246784132308226561912428466236999440675552614065101218450391731079515399820765407974215755367619876407642380543098495905399933319773089330201099534505717900729636948946912496167817705120009405319309648714450939912990511165039385159976943757348687305869158810646512094548031596943417041616151881627126164680015378128701558860891904448565858671889106646138573721913419906800616526528496587882346301567383614109747901707762092899665179392715051944195044954211341192094654327846772237892410175110280927751053467987710823466364034528840123793511722580520461373631419126954277528873444246875235049799641257377898699938003833863659045712773345206088873822664768414518348837960051107113157896547877217220060093192849733433592219679531331322328081466782416917909838231134672077998606840512351298892318506613326923946631940471792061812682432010247982711912947707658555549113983191792056112290774680063508530577234985894755276459329236030036962489979065875066399861407568739139561983985151031023924594298294386611655711737509806094280747689759881889868785778530441944368847184073480166233912415787190524239945848677789923410276976409388266632805701923709228419884420800514544910435788230507645045044800311810522317420364019764850507141474119635920233881483489982962548914598369544171172977547067682042417873795027568857660459791455465357907280573527490163913385852836162090526073960241395240529539101035520100575307429361720949400827707157302723503768484610675477026840388059816237059637220244528278645234043530163189670945868365253806492612924432626620960396489172454335504446208573863591677427973378892495359272114465760305522454938780377854537336008315209183817588523434693349625843595979427506780040508896755070153560186659101674876478071622803268530469848935319359538974627452153678020032990378287995128570341770425164961143000166967230725945660635240379625605228572274579958004530198691882148726599198224225044397012897421423971846578783517894541848149120489143315243867191497116411760117739362456549230226822282974135568703637845981204310588743133365312920416169645835074432552839842182722552820567041607799499024544154836989960741307857073905856392302968799137170089214110801040325071850304818298381514811420534620903407260960624243535731742957304974457689256161842095154813637537188929919400659710765349781293922821062538655332443850167184124884108607741918145994445621894760298635811371326039840418377663029129423464331558018548418670815445098216080506324233719411629146841691472657726225728509984423756845206402125945934505661285558450540760268334499905330759768278393000396299484233834149006475204589370490015115481350220426194016945200625758223254275095857951702605772363993349276474277883268662223851633840819276974500500508188229759622007923074897983493699690462487274038655137553732972441912841534158863183202043139206516411394565012471449305221599911022574222792109140954876938991754933005655076644741555672483765386184697534915327953109997987396892148081717058308273439844580046110353201518966537939545825253716298002550059780521049863718397726925977498625503166868208108779605678276527234591539674137732630793387322899970989745562664001525595076349548948351982136224689492313755590383422512195518564813083341573163319349715560757621580110254786454896704384058254368264891431917768218358695271179158816903552654234782755851409146970167369236371773104127725018304244104417120241158405115165223232190052403809014637013472039617531536628482394092599709789253681083979198288575271121577035847504474396249713012983124290211723332176962168344154333650488015925503460562195985879425840475418383791009851737752471431231596641084734569042628815451751300774902025620881361163896622539091519276508669462829421794249464086513296746074568911849284711265145209400724977421747957591768654497436403675675854017125786612858276665913437399873662778445644101695100831176791524505630588575102432306099926749176009972216578754106522155173533670184988034225071593678812597807237474222405316457397365670548886720502683464029568797459735718643113992760316345091019236109753383541543168997660926282395784027613596678905830605460998828624415531242803503696241309792993625769527557754845069142586648668184917475795159691443649774191646484354444062164741948446910313558662893539746638959639442496295535293711779765007359074909756827851848630746497273342427927031895245135336468320262771161100597962358220010044281956894106049967384886335354324242093203524638414812132705997352652529545400391883003725205653594002565928198355507814675531141286060702399979072886486080361578840974655614418372398315860274380230981320155822754378113228021944399733098706509721668480080008894130743357902116562549503866871257405539591685714418343265694082509939823930450538943343037159873039367933439510123441034702595438627152689599667075597584880280188847484544581833378892529301035797447937655619937445520852795103770053511154572935305060446847067816807009999289152824338903887576933357054188639282944932805248319707295862536862672682403437354391301388929431583975517489911623040110985279240297941259332532802585037458717280159367336958899051827572829168897851411313984982135773140945471243954945811572003994964564859452039280497908749310650785319658352752181359947100184670026326832627972470504121934074548034415647928645195920449255623919192875076435350239966786046087219338050707004483908692053923597160972307835041373215788518418012629426073151973005891685048105497581479268140717629740638115932633776055332397345519467010933089919838721583563806417274818027895446543130654721473492188720403610412730280934175354152840491008688000735841279091200904895173036856417363697905310575440777437758613000980823059499911875166613053481972927127446600173619003470335248320106309496575727796021452619704225795207681621059447733135326888370507000130549730112956968355630019924801139164018061556781379783039875474558603689048632044690943645744855684276738055237762561488397277845001406698820573517908031600757910691883978236932864991451455101332433152945489384958273223840770761253144422240967250997281284130889890053034419545082765120832662343366464026770337193942279677406440135347282668644257542527320898223779930222029302359281486754837698959456371271058618626042258853572393005810622154889471846121590262815618206708623932662496224513208592953438877833086128618331843174906940520941001501811939892982717652884184119159186179646811992199637038894524153098082489771179128511454906480754104372530864897116568448068647567411585744175518753985156968022588502463908377322227177930681442734667306507985043462985136461582059828099990143238037471013093459152899811623258306445514629320137128688256070364936599296347352162277894427808292427132215488934960756163454549107364675110769659975764582731586250576538264711492918144872051419329070403215911194799447075816238600443397969787073877618184251752388226169569515084891949158131200495902480992400702623132310533072505167184233100392802968385260071513982149955595334583838400553367903175604222095317527984634214091090829524718164652095184163726226766065400274502290012106436723474717694753940675154861292722236552275350343576978406294321388980859750664699863844639146076943785873307413526660817749214053307602773561232919683936847327910648090795103692999437131496406777003544568097935709718903344619114950988347036501176044095187189068855619258415881400526727092401523938256561180306775687790686440801625552878842712132349846730666406296763053142644925053880088102928776715620250968769549233745480901233412513714262127668132027989215390104787994297232619470290616672336708794590243614008861090148836914597714364588261504460294587216327080890851667638099795775048244107390642738189665917624096652748695579891442565921726415680033964290624936146829296582395526388022999595609965870152803538512573913927556909202985854582945003150532780096329294821364974707498404309492481590616441386001341008932479261984284786446010506888745789478460400646496715654281085082041219600230548418619837089079488518444609235854204153553415409712401309126321921500345911775653332102829880469867257964048006138128778369538877244660596824672916952044226961950763260944077252326373322997422935867854043029317656753139632334111334207938315478553255556359552981025677305100794862518290837760438475236572337820595364919546736737255281193186755422614785268064339508820804236086781601257184773038695423895286699494756676899829912846315407039685442654416708298191452527000853021036054486702353788924656853012445302975176358699798364081147905503892734417310346373052591721482861321015330422863144885955623017601012471593939189569524394313293858640922264621021297207258726371264225403604171804620615833517452422400446392709291201308588629114862499837630667478968565319042632518642097536723780666121341688992793425128536306907236307092204861548301785290365381958898149551717323724290696946030343581628252555184329308821349799482667055468795708302012844398492644552046760543008294991137997811480778410124284500368993193749712337123770545930871036389738764016845577082787134432181360381271348971785547733452857675345360171100833582231020004901043357135827806499084026001259002977890793039984374343992100069789008513594447355507239404893777768971997889948024851463753858059944592212926234677790701448885394953693991480953573034926380579752935195164175363327209358508678899793070613142610661077289250769600583736150396471305018781377094807015818779713254051143492728245864538205386834587778880595353599715062569977119524413080477433654617238271448849186273488455123186849707960877630043563338092721050994506947769248092040287580234234877376231091389792012530805151303967647760398704076271937818776603522857753506146031029350600336303290956540070694971570608143610230214806935104884956873132930529829879635647171457910727496249779747990205675828541887877737502930478540176745221866138417173601265225299512862572210831250292782269847625418759353445533232696510659221679301207971478747224700641560652494757312593673292197578937950697491185903527187808064615264676211115167507571810735237144845789463182618596860831398505862957246367533881001694847113012533728688570374833413671347551584509025796710791380969818481081020923435908951679091817536230697970368888106086460170481569367361025363848382451842556854319366922890208755460401285675490166167333655617591501842882435491283442994233945875752483118443843640248135854019507088803129334422875590084190946642118194862904514550080868941645031557644624549245354781254571382075719972605966951515839893140743616423249074567616512654668845294172117032714948404171583269749861741013679197455631530305269886337741941873776175072134570697763278220934439763709255613894142966858216142074256922261145441988528459178963028484859552539331594804494432084332776878133204231393588276475517783517945264573181934058578222227183353086653836578914472328232878974488672955142048637412666894817020525668423673710840054134872452777840823282900410444292039383394080470267513268254505834157148859753744033977342281687791161633605803446841174893079256976929844280664044584696444431241025436256460697202384510711604635694396041864482939941625515603516281263044003424695878334348133506760083300011712326365821068455710811263635833650906610147667540396101124244266890415328725833212361431112827821601971973427796943550251158943021304534935639152719339093323733058337412101756393037464452636068344176860463331328277099310068111039398076314229715663326120784651908698690374478918019063539295795459438759536233596468564134883681118059351059095728992063036397652160066846687211458553431029695755110512141917188351630525493576441757761569672693839943441317658832532454619271348787105187961765478417298209725696960718609801750473365303629185502954061788531120715167764200367820416214526546664413572899978331337547030458518470952227674866345750230782681829093932844335452952949955919868904248980861694667574348275288213702366480866818798303512485317511242294986565235371739414963522313572405978516049292970385807040458593046382434081193254673865656446281756293562737952035089152747985074289588333319185691503196889783617770522494627837317838442282356123628659239937110329370662277325535905867018300026661055820218962927581287853164440234919797833052791839981019425387656790728640795455571071229916783254550870773854709881683010863359293579623849960310639356761431722232379064596781721585595930319423099447287603998611579325824043922178781957308302173519797517362190718534492548355395722923082322611467710095986910555206007172602664417896487163714709828090033540717669429052800321282500233922760840806627238680831928293087343439029625487800621519011761494920858625015526062067011264377059478624455364899573724126820499563187761038101982513444391337280687343426913141228935772152121890705953093921312744855916036931939135513165584013439500399719004553676731467445086928814998189008706270784744522668037482418757957513692658034740799056461049158797576723014913172765736884352893628068296689286428453437798762352982553040561173580744952203313075755022213602354860416035472359669612488578542492779435377179610340143279661147063850445609381956408859655636046863703035081325118034850053818669126577450419769127234952527223171588549158929901233979505297187052658951887596755799867581969483577357622256059541239795499768209037636968936630586904070557574238076775963080934332861810253580147921733897921328464435708044596036284845551417279428356992782027812648746724736720646122740485811723732872659888418003253416617481454603809151860023895057097041878325858306370507152332942024033349051167083808077917557526086439251383583443717209318353032043911830098014854300631494206209925917423459728235461767405303035401860243726172999030140252865729166394550916599860185734986001162838821781651273494477607088011515333924866130721787037984727043469267166834133147236777954652206029391175077979340885888771488111395127430781498243366770630676735904267415886298787835984368690280015328820522769607920657346812474303341682842680491891093780023902640057719786635964190701094674905493921590200527029951468923826696199813354682071297187094363072043499616751605153230253908289268068329414700577975391399428949424316283001718089446609382583577983345895201281185938786224725865384908298618406220625868311649477590906755350652096001221526888316470152115770825904361869870222558946973388720202845712455826155126255720723144274456567357083866587524434563994319589073739527593910173398256565684029774857232777349279616932993248034912549589015585214675481981848239836539874064715905946897780401981113013100208593828577606144671258615540233454852141507693653617625624951768462301603935739566109515456843233490232037522347858248333497431115604789229097507410486259192592174955009737507716958546015217173640683996823696921447509691954055017067316784462217678129983773448393323513642538003907808745884554908028556150297267813554502538120714177370009868006736999383709485886406565573588669554621834449282672860100151092658131119890379999614899789866233945868527985771644087580222259743085193762942537933679929887664637171006478744270629924876381083457043131245026715457203361930627843611316339905779382527417007046637100904523425369342413101870560010262971347247898881740831222704075004031633513833053261587948662833082204754169800613754716738443697230068031043578416097633532835799899411920863824186916721807159911273267025939451789247168348155562383218319069495148777924084749805506957039247720735536976039280120404949093946316417172606991230345774388361404560101593653043976397856850351558583375569797008671374948030643993457855247118626011906303888354325110728381996405517352171364087198911288197219452921715825387556783723611847275242377781233018555259500097697850938502073090119836440670709636036616655785460606366576762034798832018028111225306324099116064109802012947527963712943308869030543995509535748502857105888827647087122400555745146969403846687874033000529970484555082937179137131965085245399198498272039258465282477022468029431981200503968991470755808751220898576857604600693166222982108760760139536632254523681082817305754363663833387252981380174618029154523229744468985733233676339816606541368619807551354387586806664591312809518591720001338954673124841414754446534239886184350099320420028215287901627639349881524593737599320568247172593721424112609961812262663527077506994875388180522812257622925661719433659779303159907253564406608254093513315003790330988987127067340053434228169559574433258654649515044373468330968089160306513097221831140045298283131214054907836109350889493945917164514082901358324350130781737244442155652926647331685072536364155733616417489980840554988533899574308300413450289111234739400143394443989689515830886568503193008860975558772000176147586254903219084865825243312048958991468526621259229352807708528516878566961759154172723262671066819463568873141610863529553091899352334237747020303135673746516444191885117892062108763686184382725953933463339841481743032042133184788420239491987502987718742587591992799711190356975256176220137897398878741022460790771350343057263095544939376678455872024505050557749194440439638622865442430754601763237755590440851358474456885639184080277133126624929122126017970358895540681838265372602818636055669263951864535824009885358455939833085532923617571426686179454819298286446689014455516068102181311652070803048165620770355435662329708988236126611270479536265596556337414252406940997221696826057307570286669623080167977568248859207658067365853694514532961736867590720196634592816979651476894011583274711970718090931027543558094891929180320644668871649190126192306251563226217308900750029121740582759236784763100067732752701232066217358880391609393374848229484307655142256532114753940814570316362652933707786514380428421108218817774167183534150538588531644124100336854036266532994269982210065216082822984975279982292011347781851000634574085474929483388110371667410459565506698076579290806450948598883841907628108600171720172103852640734112308432235258117392464821031512076596408123486994714811483214759868291009814811628965006606011667695633204292904935148101567671392342544675794737655562733984320952181865885151718976472202143018214815956335378201388760411355573003173538295574053436248401720301228851552573162430875306914672142335309231622806472399952034516275346368301584754231260318436855001253073158165058627350667567598890898406526262445694429582637475227564417646094066156492580042884728312133837815073764730031906918045400951186556720583356688918191369079977152819903663700191867768806248644265354277640569961673860483859160423020202045993822113783471484491380985686784373269093294159745214057315744987804877148937104690872755785442715380147899564740167555978722199646149704245569867074166055338892009554426648257692401751968238645181486632929905275595582312611414007736857565758041829521646611600502764993022675080041498007298117550512974740551121481380281552077917584686608369799312856317818720246878494738704790228795982708010202798527386340610837375948991797007308180695769901304562410632198158960398600568730200842435153749326738866949085312318216179446845143716716077737294796559022783179830689776055595187449029878534212370689686426081624627569777206567583137146126706038624205811514942064840133197078726919361987803510257010036226271802954752561337163591282621266142081447001790242619510352472255172666482861880897807572768432273092536725614495678179531907969487070208675751947226988115013859427007597513321473559748884405166029647685550345254426504614822141742004916205384858976341586783350304677378498738161958653908567483999134529044886742186140831538120069862721161453494683021957162396665383376838010954519789631614634489967763241747528983519842792089272673671447538216843621806188004843691464344628459342681593937681733745583198595197912565866026330183381077489711050263180103268851522624864285074067199343014679282601910816379816445263988874656660329057134234843076568994499931441490598793378406991633909824920091570971385684999521125329495260938996418391625844941021341317683434911639071095465898360659825511979339476740846601077894126372659475017917724177902871027105140031638018866705836346957981116470968300138617459361696206199064922045572239071357430114248654838193654539143785757704866188812645140124302435853643155964331401086239240347314242056410562081552639734577360042755725363963693753827662646824261610639550305218297281745784239579623646989052021616022624263431444510615257497040074145696316407449972188962321019015544711175817566259693950385866555057926495129778960741732264106711095417503025222034763897127389311618313565591366731123574105335351715596481649062747479959467034267406793920363982384533521076394171763639551368733937445446203330812360889218990044390381514934452937481897488676415935266195945444244937536472345570502876880421789776717819194799987761308251756749975676106875651937994525335369596428846180043145371366394751928792347746541101697123622624665877936025564075505362134204911996223015307786607582570881015440986153525440316171668136166555808513214119873340992587871221675767897689047145148121375749901823632164781585407414892859884388842797535559855505565692890499734905898251883106467866448325682359471367239435262944954039291283861501517365579590803856568394871370558858862126774752434715574564743168525829694568591521090401620399358003367904678596925033129072819252813960438951753470647617961122093640272077005771523868690599358624217768574031104737605135990333030570020911924239555598398472959434742681303204080042667249810915882267199171559915565870663465090853099649219592531431041746696723357249373464658076286697976452280510229944051900860100923175876954206432366228547485007691429925996545775415336946462425206094715477985367041926286642031044940880659933471828577926877276291853725623215290997738817028264947759049047373452433811927048560962377854530644678952026307618032023553928818864454622454038731061782233013411387574589001136418368703798625969354654721632162683061725802344277352265018456345034334612041629513595566403995156151467804113458512106169340395394401728180176733699768068290859305573438911365122715453342095235345771256452628608822009854433954974065218042971410262350868374916097733471979885557790150811339735641732348012301446655670755602011648130057910638757617590666168843011565356642588503329181277299629480202290769696989263722518726287812914376185959430046086551604975196826533022568930735509446619832137874691176756257424397826340250267898610654745198448510840050215638951507315742761174412494452617932715203186273318156573804317631076052824446373648977732629559915730422877436797432040797093338961625382502570683058874472753243436951577266253558928466834104170907656383287915547865683610968628383856574680180069396259386697254735667527661178801539533737557405757704137921646949845292501075050963449082040526039599988720523610832976054224050786882762847737543266147624754120315821804801258865031659280927880201489541437591446224611239489101558146516534795880679490510283502146105557032886055154559660511521752468903476665919523581375716920754565773970322983636776594823183341234980060605901184713874021055754414485392147765182710272855152337226463743628759307848740638160430740481000056480262476222017846745857202940733298344354907583674192882122059201043770599363730001877479391813722037349658052685846582316305809765751550549173099905908097097570021324916365383827840234760307829786966552299268383627850385828883898759003406806717801206643432034830647954315918891583967696073455930500858582383167671667718594778127838522150203198265210381415721137240412952320669833078283872666668418525233182905693481443800087713680155922334571117241011334910248789683078323996853632739702799071698243015667439187708332557714317637109199324255906825396962892484142269896806822085519008671838904146572365281109782980106605831165105695288012049287413468308607592465565308795601064916284933425493543176793426641293050161958906490039056915185621976951775039462635533546907604983306812126879325523910050960509920791964155011707143113241456714090802180267348279883018516964769060594640674995168111209243043846070989824687961313414831127128193936990267769917227484332176795259859289351597793678730006612576583731529628424985115779743036153736828728705525283078489904460304115573802469422721456122114450088129986886321664138451418202156832671326921408087189855309847232273114062950968802838988441595780649559486278849246038645270286879758591236850176891619193072466875323138439190633373110958368002127215491623585625361466446164824749753496253632110646643383255437956076643499114707309915534893702951083773936337683323702984145491186352583694591681683063803183356765364228274746880904458439599799191566018590651476604228774127887513341523087151168515706087382912343854317295970946679374839233259322102081385159245006076195886759032283554515711599411146455348212804339828754117833419153480513766762471906112113252645807017411663459917013960071647661558857093216304305641832375738813894380507065002098852914928386471571522969719386937740425227282174590703835959358881036864809201909249684168484127536057122216505745176534165377733615580236384221426845025574798333577529205498481517767951200890417510232958223959523042355160072265867822301613264148447737416091327072476951128671763764017114112858350968668281050678942528408571790933667038459736263153916778606794076593020408716441559660509258612524712146734241590394733333034956910825368057483390357756190078316420465338356584782593935971989847805122344389086635931447123277512491862751364739514451049444759209980838402773097751231578827853576120772909098009271383388844882505830366813789652331883149532773759544512374765860099636889646855858888736994181583183150375645839262404753538650864875222156588632714382177399251870524039156717121548505731140800230840694585387202557472171505037700715774304052935947177276526381966991099335029409991449553323111615450639885772239068494034086074849882369326672824117533180972839791533949737362386251115816712454809915540081306914215690068209265912531911600186724107022454210908256501097808314041252923719340447220619855493926090868347128809149566414446052980504684477558332832497274150809874053214190409954983831925847591593398917709597137490144423962540290196600464146506143255561664568542403596307799402738629518418147650895854622621413948010739640411337551292450015967168984965169774112571574689364311388961575377294529060089884176012435811192703590847072390439986067599727741740165958214411180539392797190588661047173550420493699161025382723905045733791440837424621474959062611556013434799734154237589350994679336622862860049991335592467008336564360284716165519075063311895220769566004822965251456484192252454922860510597732674762519248190592555359882311495780420630641190621747230021704186404146643959454122960887006859453529824800375517043086100104073809290949909291561057164392760856745316419357817590075986084712005217903636052805248892284299025085175002297578395551178959564725741314022961490698933624017115009505779937367386508121039464954133406899967757361682003717867116968607039283085905236369703497915409866709695733622499531703142101916689560429987977979352085352944666638408718181502279328687688737275577846347814162914014088747246373245074465908737939834113138220210522166578598849221518272279656984765367277981526537579806079332915404374532007779489326413004989177299713208017761210519519471395812801032611231272659925879643758489369769914350073319358137987903135994752981271122322456137117680775070945949373267734308348591684163280423131560868746132076259536103237525440256810852528653502194926815899207303661079501225661322908769887981948132609294677374760799607829450355072807925519570388912712987614781698841652858434278291679115637266535861687011440001222370379488157742992328741082161856625295375551392773190794396801552771248361806249385563223940850571261292419547160308018859801299064390659316418094874191306852751840394290976248548193957371082199714360776476803506501703269923020317128731894715791800503254765490788682613974686290877799558763576275386373222441918243863869706487516814796085235072914911138454147240202902817603797911859137331754513908816739860758952380978170380596719610361323582491434003364700519093696002331636154397679521728128871898228620862406804194709116036200420843602639872863809597927454337637022522060929303406621283498699067973815260825352506045100586900730379565772909753307986564387511702445524658406281763827296077638143255068591639809879023139696848322856159289981431593105288368578574055397900394441768975414062610246076688210914287286539780183365550931991883855009760144536611432204303470075341280373032236853582235680404303573666629186455310770087723164830151753441370916486987189845307745210024751828553149137939088389154612673117442105939751915046400096299732349732385420465617959996294392154386606541829981909244077743436849798706637494286577644423431357755339375011848273346979921204931078374142454261178717263380007414160415194025362922529774392829851719767905676731541880037699152774359909629188795334951501119054280651070553082426083585767160858964842316621729805310518030011888107749667391081708390996795612767431075811382714626834662780590059094298574292972771339812825299035009176282452763374499740923577923657168404806160887646289191759520935674185521030446927071628200477086511749221464719552790627860050368656559515909629577236507982410734171632542526388707481724186061844063521455668343128629720253038963891680361708699968247174868015711466486696480545229446871031701667151199646475103183052472834380445534482731212802834772332083696786338515994422939036886626075039829311383418244212748916496912093110354623508023701297278233360096613622287451671181048627708651138657077792622378188154565994635272147114942144735610710658658194061252768860521087747416269551894117931510807445590601936250595997635356813502448212676155470684861753756798878840745832159172259909985682874044270329886361638661309308913940165464852453346970858502358230600774103640399647085947031497589071058454468609198455603779053245708996654322679726112072182096966762659511763955044718226456710409611766608504328365756037676370075645728606790796654291655605109903011481402053315485866945712614026588073661656974442901209064099976014597334640798919304717146278500056377027931831738646914072712309089506998492984838604609967345916495334303346345339831447916816931856874554741573508345601310773598882583307966432702228503015406906396985943778860828292768515095166500144700912498523636873262251596467575399729738215705305324329002926043678926806895310707683534739551937850451008916956853741904695101327387624177454532508619911564860339903665005352319992364693260892736351082264966197425725940185600759441750681010887574879078553980536385234795387320034021153908226340083879413460317140381447009320662543732175890987497230312321910779667143580951980114536156625968962796864402538794909326020021151375052358842336276989328976009074035298377607031616995170891688387927026573300949650343830633820190547249834151086163123079232203679339631136422619184032332143590226382714749597960645012105203315152668385429028019585640385085221974547235203917588366221226709678432351346361583036644207918349640247687674842099086026252339611285040807696315819969461395427288322949818641284856417285252740166039749474551518267679401384735565093895329866953073851177192534924494668822401742300752593907959424192492231628379179241754809646920171641013268732105176211040613783864101979049239491155498420559733203659077094941182554929970451889991768388795085297247444405351409284446723586697150510435717453233933164042515040696948877388183201204764239207177650026756344123512044451677127390007088092704089242394142872223436907824338336621660728585599045654238968780828605321874142517521646509536398128640246810299048710882771609183728309430955734572099434004800559607897523030922817138313566684631470038845860458052011983811514923510479696108177114468226644859585005677124873688003464672752921426119785562776058799618328814713432387880541830666495086432341938079087149894160721793866246346903164929881551859751848647448909880362967965779446115620449798058548514034126736017808313829913453801120644163812116578314854942491759953055283036388262003318631938243597622101596179298186820224864324459667111840668995522453757605228080176544510927553326685883327154873881377052878652453239777037373552357031492633895533483022633315514006372231073445900766194723201248156190201774716716256201265887578945650369966506050568863728411198184205264216446914555322823346597783117583712763061659377369564065678832631473092490509583001499708138102104502094917907868463109346359869699711986135688582181374566879829221836530633835683385644132369133939542312444208620656068641881781132407956116719114306419685589033269944257898971870765544147451636435632621206183942712318107213064967472311211394684399662942008712510067682510919092083302100613005115350790087226667996349908370384070918712332663551767922339237274896769411742789898619084869178327262998505821287444093478139135675802376042403896022443606473034195519509096085530511294306564777241859870898834543502837333434251797290756317072701956809132834475438252641741252466672329679979275220892011864441865337099895846910425308207143095108740622021578367567843275469961161246934328591250790888787625159105269495557069594383755063957066589804398847140293094110690239804828186116212943170482122956234845640014442207156760819321745505429151278883627563250921484527063916444870854410653433820009482498588786830463842657061253931104603834149916845918948691363819679091992404937793838384787794988196702647832435645870743691744471372783577998102865795478223755932680388974208016369074453393763706676391718327255890346499484068915517585946160855381825164263484966009574499102591155906989637932424182847158557612475369992554295093013204482908492598012145987108484466783848117106032121126799829408495520979294815766629638237880924179260539498191297158545371975824427999852244527368964189217140384873144033507486940354883227501323621196044935739239314831234044987187298991701592165930310753167803822802463808532799917666423528858059492699223118811534634522585045223726955871361067833425372084986835315553957832353865701421075848650002223985937441097067998757188771920464684078143812900388464146457946033672982441791764929525965016607438431963534779317184800257965513328214416306385513643038502430747278193746262533231003349343768554366616265407896272295030418534444518287980986764896519962281733749894276449634144954756333537602769533008891884302572874254172443514680355527278689539083025267760756029555767134969935725725605667407931814335554729274893129195568841349183406723182349157694539429527216546061132880355094876230705219967623491810764354518950307768418475517787766967450779492280163614613799004411386954213287555957855315634374637494525274962289852105929632786219518544609887737976813329288189854488290384604736347887834636063624311631424213257992932021090990739732894313488636929667880142189161094987983346691399386787123491430249272480193793765733558792768241368548454443669632440455790226498571915189054735192948649374974703798082595954060720263767477102842840985669188687318785192227593183147878986843606417791022872127395406813542818855639714329472683797879525598031620887420399947635810699802084181360855285925611684902552070244067197548708295525845190146881308266259231887879866825080117256943750835943361869528085489891263032309641274581189888282166374632461006015683615727449878618545290873611720628040772388448298651819823303008244174513406645253735201708555805246757699503797392186763991827147435676447829756552773292033696002408043485323977590263127533887405639699400372642084913501235832787627922774388472109010010125206616531271102021125449780202595613701663451908130770386557427095783964185856793071648935357816081079767125754894046094018177143589461912832444641922689206257734599076136381122411004926413917160042486659656841352160834212115264520619693853790380928570074347752009458083842125521610578055108751311400233497080571111971763852888309763420679839727723504807515895983118846599493825743435219704573535969736139172415411291176085688052228633064045793762411937415287130346614725260543752606154856991867639813761278674818923271881788875747120189033989134878110647830974055209552353326757164011214158018905368530246732168372563316367934484988002810254085359340385679087849236160077113716368877247111460117488728696088665085280252646463106278374157846348223747753697473511926838219112167945942579354015267708909888837620431343225698038600266937786611955919355064583133357316525644246274171357165390552645241226871043483980842990633616800452176315538178911795487213839022964540558630996479229444605069964879170461406592570897043644647950009038996452146294257469317749167693883119621285051052423104161096623512043736645825179544123607427777079784055340391793922845380630447701919121374329165093502492186262681506277874686193905136605152047352460087645603364767767381048223814809087157235300574617507568731104153490859193552089248664119436883208569187964309459691159065151805899164213965294923156555608826687359788764002688046418537760418249358028931962694239235348290622909499317065542893785481178828977652029045164577919892124167316761221616620617872865306934347282878024965993709849284278064683376265701024327101506381323922453182527116490526639334213332311244552740113161961823274931678467359766592039996947287488967780959769576922743183183245181587205316051309432447170198505218553719262425837487133024751357529429225994920480860592064315715003271865577486847541224313342928044979956462573140662217943114326832694370142805420151583547817983692012147156880766609593397939507317587199246495397300442296187400393106681311358176972060965735341817148672936025509085379771785704373307134762047770866284373739247924709164904776150644443946410595358180028592727969058298316563973091435182439433168203615096309513712247340862247034917532253708446620970330243258826012311941309208481261365678835344765148778244772567777912781767919094759501908810795603157923595689990566085662472305263848072392086807213843725183461681074873820070964042797093026822799083401208225545617355692781895141590773245574626823332198709074506188372051140626568964061346075586820810654236097075046344731992351801453212795782117013598254243046960623162680812395079737316253570655795462346189736209954342925405512578072027390479573954538282421194872689223343586026320727767740678648069102078545149351897863660612256559542433295375651830825605764882537391716951068223915393950240285767719698917636105586131445146801607955195009335159923226857352653583531104632971158123354674683822076639076340188030128321124184080385189796140175356569301174206582469541943234574090416733497945923658752479657080519214393319091977270584280782699258155170809185165115363458804470104268621526622497983591248087612702077525993344248432949031270680450536204995155489325214975763005980244459964734602488890880390032152529697659859026033279480004249362186021740003670763617038152782188221820121199718043609543848414023830675932435036258308893571143731356207269606609964723267226425070792613802569917504459509028007869064757182575980205170142180008076826398717956859562567648499531372474018195545361202098437488501607554757094764286197287478240087875420572928200048524324791309673598962986693747382871121612725942072888047090108819383416473255249020159038455219720852270431266296357254328810562054407104437843491727120853165463259650287510905301554295443635276063778380078724084441658502511376666017842271619420612887040265416662996700071584622731024994410327700786146908290458680998488579684437004235986063415781060386219196886132458802201785547891886239179409518057163380004346427511491787033786237208840906715701784796991913877492726452863784363972174482099641866225499747027633730558549707836295489263990480053796684173980806657159849505262531553151494121623665619888010888721358417727116801205385123781373540639652048920729835338100457584331659808755816813145034730688451035412539375758409390824821423597958576003582577474586274279353375490244773026629669691068100418609928335625290956764614205142342322749436980465092909940401242854981785299182180892840706632582550635987349845475215877444486230985359683529437002585274661117290397991889667572142220976006496566807075258263103082536595568381203191986610523632362958544918067106797097386513920778526887992930406367364732813033747038387858056744316974998664109988425578732556521844865881003075864491176003762365939653715383260755484283097103010697491445433630639056743733428086616343230139620806155549749104015588117020030304302625335432654785347530309214258230060784319171749832179947969717662362290315837703169635745155617428627332388354710637974889988164808711642488124785051668245542689731975796080832430158442044790074838405319114201802862967957845761628257801038540279004909981671252656109659251002287072028398338098807659848411914109133232452795254583519994574723232854612943281874579802983716825530858266265985946993428015844371287184286203567919890546472340625039439459684297183119195720166812075795101206792321481573957619544242415568479282212831258728726471943527177184010321549229197856567656013035669191063744183343719777722061885628820429336052314875104911675156107691152503944171323986829048309119623878422992696505491660284747876911078100028836210333358481424403450113409102149599354205072060244758423977027934927831326702329586573663249925909096026345445885140876632239985937164277106704831741606945445123142803866939740415506823030431100345837704139426784235439240560385312589081006196523727610608207650796489319291863867341096613687279118033410777504295110627082016327889567941110388359877529178545463686966291889432025523450521414757393687552078445071362779239439458282669928847241777208479411139222753268255091875830223262759699835026373704082510414561881055277144237258274840091209243464479731194481255386832604740557091212350359713403586398653302843647645304889602808205502708825881945010574881740388973087963796083369472175202295794483663669864310758159328371146554336854742061357653488792344151418191972456326776942129407045010379849669692516851503071140515044177732209428329012260398899195205029995037940499987430084889421807892627399326038148633308192945424965573179155765295234103138374292964396289976029677991548208911284025627344064666471904634745585498835338341205304577591869908986264902694744430795108958621187794134947374437812656082774409038429257249340242080337197171176756599181620875050368581584275614119750323642193898109556557996088701219163728143832751578087445137984235959612001080038805584206862903361046265060234118504778902006696694258767777789105247494795521700690638308410090329512512982884917788005532782249941732580170019715637568634284682399907099268799941396711437763800586995915411646646454330996991659718971664048431912397411222199425526737402411029225753792753098741870722718160290660322898185006111162782901910784399710013139417148186093658916679979533436943151518465492380984965705720077601694527665901019349234449906729637473892279016514121851375757976034024535385121290660202373078786558276370340612958793611140358637003412470458846305799789849818867038445537320320505753720223424126944314930846189483058825313588157933480891236726896107280457264721717348104313909359894945496169268318581532608408124152283353476094545443687640825637592732606481902338822182811196496800440803001604003861015198716230851808361405598945694392273269006470072568839999217330675700768289530275853924073807458704992456092612521200677325153346912745495326743390384036456217486537848179111948462693287036679741235484953351761060720984076316356268175561427506725318009967152831715189910975843994333825540286518176053079388222855382441223173937807875087082298857181627453883776989652912982872978547279868070903534177687669641373075519997100519532064562508914140674425949934379392023420617572404209200646740027969277228308257435225548556910132274068742000261328740318495752734844379671897550232371129546211688512598523468314265375925130834068699547148513366447858017719818842485579837885957528551843301623805625889116476961445308301161227692593892058160695252405080572877242905569734601426198605654853051970787652630805032323954227846271087272864623629370583826053059976002541950473864854932875562285086673662799480402316918236543230780988690868629869184530715564284089217958900462820585942386519996215752945073952511369495206921543420290879801950928736146036728705550942519763793728739315293266761003957199228988118304035480786182481133543969285025853419783399527719291361070285438998999276495085665874965317592626468065196989421514501049295615924223896749527088432961946331432063872339538956120521588460031446918972341676213212234928597032945534048474454799512323871447610266618135110893148311742566404673841287372207071945971080871932105754857213788411831342560450815096453633238745115186272035959220420210912304085216382403610426973265392747125280579954362970984108752790869098527430128191692903706670912955726834046599367533359228182576028428763515273147203727405086175576135559876855187317287289630600090458732327116461787442659702313858351514564916234073853964322094055752095896748378910135275295120468828938562412262787470847074347675956673986125146553958404287294213087788304823338090915267621154575686592645666036125504833252969504498241313917270638939534901332276743032315485710466356940510282608947579799544692074658955727762081755166037856509944914502415613676347530819955566829002977170080707381209602663690528655047852583895035917376773749662765020815211934733521324917131058823310626184922497623855734265395339350350778761922673454239653978149694805158911100839897153700134185683232897773569206617577787476733979776368742751658766530100815008163872550967030092194766864174736687494062999666598766493521499953396157843338295262110001816686218462884934879707576185855893594868687425907071190840533720763976674731942640433987022343528882929541192261306171808110939116692686110768859348897781922294050068876060394788288894346776707836447728590792699663648018454841644210875341208792033862076002165980259065221131464520533177076155349403207773696589347866929265163567989674111690352593207851544291567525112620336404360160549608924650402171175013712833114341648899621860605080042824941108134478593217350638733633721510380163826410362174929473579992639313664046853738570548965998159778790505112603039386815919842857113112001850721810796905312546395949575880886954444118972540579735438799299680906460657279070714124798358837873769876988390966058223868501104618481229100110442649673694867997660004372449159235990463344791874368001358311101813918363036826153407345897419293302077441880290420686139391006176029691576551449974553248068232567480651090056429321282427560647142579801024616116510127231916892973800581358589590962996723834634607362436153475910425474026177536699505003288102361846786837866298280954955624065106452510727400332938120746986598321093025688986414333412989689478096246109900290691704099485441583602757608916968312559733799010423691834910236145994938131411846975001322867298780975035365769687893901041051927178375471989950661441202860875297200829377567849900408461441827666303011238587088234240103942874331379242160857296067607719485620032568841064345788147586383924943549258162245273373084269150805741368980513028666935605491323099466634535474630506743301512164237190563662049422231742782367896696246748991807634743897913375938190071754532296846086441405315369139353572195585960622145783914186091348910713854979721040092520507090462975176279202952414350088193406179399919640532077499517154331279107052346748996707729748070088536714579551347005226579640612457016236892126844433619821876892772627973021261504480985438165922030276388655510406001193801355410255532228494134766317418593807879593197548482202335912352771029418005382071184910948822108095109228540502606787653977746207250456665286102989851097803783199261252561574121765903598285203606633103756247254693396579692463852332291986627760184683034540284811986498977675755037799758764644628698181728519530239820613682440410769225223079325693959996940367944459824531876165741511663628815975078080669365985163385023562936406741741258529900038742950331986336383842364584064240770499640422051956966308214133100138268658446824574720628838901123102390748174531969859239347071943788552544360027151378955863775395365898105691474840599599731036412987953557089276538198861203484701679242870810480439159045843847316317397876858995527985326550674554321699519692281180116817833939525600590534533249950285633626921050337911359243939223189033417705081404725282566626938748165567737581728238932238316298144311546915348262229221204559896646174837292246163502507061099621567448502852410593338868225793461321834282388643237205953242332278921738184678211914805421705694677588341334811089514055835790900763382041596758448035638699422544575582816514167631277352520077423298357103331047221446924821966356667518214871444239071348972309231043271649765276912725270380026004812162525345365438182590055392617833775394997807220415995788774355523271512842772312885454641796294946474708248445179407227502300053735226150467804482256439077219395740276521961253709731666993246722659999974543319124656755284734259920940358599881610361160523461131274777523752398557649358051165596892611296084690614835932857686606526603509399157594572272454633523989971433058887515107537567462662475247544776283886806187530411621719327278201716848967545867288789782331949606359147438641841955913310095609091273995676559183354031018709566362797443747986917486716820800898013276903086294492349592280046131412334016196350161884237977309504028104929834748558571863865994051947593949773446075303192928186969046502300161745994294654866928319330076254413064784558779446796150035372953131086442276692020205620283365408217241385143889301036773662763749338572068056635697318736833823977500324770247572644474967659583648647099026471283733201166201569212562741268693612942432900068639940085790412030683839933069210449818499988715132454155801708122863189010235309195320172912456695820842170682609444399682384631161212226001585617764488970201393819092095868944856915178857692528438386695538995220754915175097358447312164190600054247097233850967209431781234932219178339117604964397383050292675459295625941895414076241336479100038590748590302752329375206547567523368766872063537674239104302210179423186245913818978307066913871525799581019547087817016000535808456989067234816945149799023651483171971274871439853670485420498390100667544525334596310009038460986591003164885635318368077539329469777404152254914236418085919537320260443936516927789235679687042937281114226567403620815792873755421413931114645012399645656398011138642944589998755221929980193180279181253892996121782989922121991744635017961018380001636980714155344759308356871123908410670253146922933335350180246109128649189160084249732139531332892259996566255440050066610418231723962474191748444951215059894998896262117069337299070252877654176256058484963624104564109737446768856422257547592257401374354198641375877994307450765623998776252176381490183898722523650980730289260803176353270165567518445748610490336943550264904808991422211323628784205240329310326179123874868275318731361877900147462050274389607782323997066731614597453023376473739976846139017878433042035387774622843087385916621401070125668412659620423659073990947176034989647188134688385973125764231615064796456738935352488871372216331544866630117381644171503788389030476297453546180442741421654693321722197723642600231816420879607117938116064186745653386796679841080290311139984488709655740609177089196871975874026693846491516598638060884703923010070558040341308663591782742576095822842826452437690900841174328131385457122008091058199218716869183881557397807269323180024654741737262723754569268553930414683106248819735590275330605848425200092030655504261718309979281077125775731336906179289776181094722061334733747174963346261498091556073085582955066702557232946862561326951126308049586296600316601955778650008554866029121272151317070795803232958588071410622228464675026319114995654731481282870975910064751741380207470719652621630988279762502375612160771075191323895913643666673001392247348876470589221367354043652816522340488279632439845589462510117144935208444791418860273204585998133201757330780338340299571966561831209612510554803047823629087756969447471827144675495016746132130052159878486345802971420730926239094456760849686557354266359849787549435664082039485270347059440437934734162349374980419470499085539709485207513096884226299742076305302321708547171634983246380938912315477677168535661596818150895348597613041953784942810990694944570554029700905510990790218871346246479739462911572618725365279729106389043084160833069920955725302300320207328437815696450993654370090352911075913433515936372250885199464082345226207870374838277824383354486694170246845356265772780319589072305241253405900130180587545482655825815580746741444453551439523791955775455234023909322273468428395077820486315851315499776771628120741334763969638842884191346225855281408200632936517544265887660092622263908161722739320100741924663660519528210296906336476214721769425794705187020187579797234190497491903490231428318704375892302587807445524939637782677192094211292575193966697893743721330737411567186135196505653025320770356741252191574057371747506083883555192571107947352665885221993623792858328725311510895032396039743299696353957858799725940651039921731904255211818051092159185891934304125791379836092815195796328756673333164825764784177769387866987350167502130844612117043611094481797936809295535560231352991627455162720406724073084174421677439455036953265443706059145493273513181011243659976726730971625296868950958182275427185240609179347926037414347582363301722409785779164773509383540132077256669556415125703387558689740220741322207436055978435498586038290770655569049700532285877245552809389455503713925519120546353483456168068508911627960760129742786083752000108803823022574661573777141875890650411971693634004430875343050099667910222240306322827400818895035227397777115498421205416986164654984552248357026787954257531548883953869309313613419393694313645268755235164074313780161755804055827171499349475055469989436400899980812592620984019444804434209548076477283618082090033490998159093541849573438571751272977195642889008234978657831605679479411791451259522051124063062146525268328211118066315106271868789676329768988892231926489035074151705457196660312258526826613625295225761788703124592353992769115402316693307717931129831169467030015163343422413371295536906468936879784645088373152873746549754172262030362122128588516855849776074875583152801998962137712576608622954658710721793445513407494526088754209227276908018872201401126895845705018448599542193780784658376458249513128746820163296315421581249181947145989394683248099274443379134396312998893775567872334597248055088631722012568957839810793277819876948596231519559708286542052062304149394356695419862156131443478493778846013989863408065988599866359174132317238135530110063077758554569617361882794460726628288116652360817587546181169535165164398927476332308010421718689590093769018906906455344052430653636714270324202358454701052103134524186923354068008510051099765124151879488976521727157619301549759733733667534622976796180998740659688944508274103020108435566832436418327521890343084315813110758596201727817461548462903833788844908496297237616720873514522008884555262906742448475876601458483318720213011089586254142508953654026139207244225790874050795242508945254969190042840432712930568861471781066139612220930807607508637888319069621324287085200246571398298291577344982343924417619428519593013412595666172406453501571126197948611459845520968621271579334507292055388270016383277991766541863933290083959430816522012820699534936773315277948774077699284310705247039387732811172897956561036923677711818396713449533152494355976657063182346421470143506507622127118743482894450952592173604921275262323386574243357640580188595287316274570076856621143396031387295388477458173915725254031021160734551523857649192404740898248940146568200259284253643585136193702746008906593743040013130555294886548007719428271790323195981630791648216870383251747013942057497183813080647713155641801933034041585010319779323286769519319738254322246490559658976607861627151313416448490460413546026240932440009387822080234288950729316707444999533218631629649915401291741428424966651922060063913352913132803097434034817599701743270295877631920488443724784050976954077913662597934696980331977953945324777680211238227487264831341409254573989242544855378040955834460220806597648000653917402768667774977172158768485447991334209222180468406110381031831659680125625327756711635475015975802931049360727415919878323185209048187841094042485647218314176894571532014385347772086692174088448532804300335794345752606715113225003512752779518793772438731098737390710198902495524999405147501726384195791711192083502565525461981285247357842599561247923873449465432747978158593838321887127773651776109211656602877194010988227559523832835414521757729849935974293394523437850774254753874979551486189341244657300495860282041748818132258517176130544456540085433164808071387356516249153963968472244039371445712681799244947399390346147988306172748537143916352967268338257269138477427823089524268559710543876375592324065080127385715899343906567850684628128735579377071916141798291870024316455260327752430532425727816244523995374544463968440953099842889729872712040023106849334966529009967636599084652356850897158941674356249857520458029549442857641926568402579962282757146084766654647816361025022315316879539864934651577721039742836112952826558372659940021723917088760887036853888568011580832957154484167910896755131628545774849606728089378563915505250881571946772886636063451053635923235349342521084461748645663669873286492486180821031042939122909709715982861247361456105198033295944091815848133971862988410604532288025794591834295126310399930296604799649047787626143249432869943706793112899967442798515021584521400757916761170408277607796891211696509701599839675267585586098811019672493104655037083884120271299124884358589148568778781752609697211318690712911485588110444708204223298083159253531099978401923609441919480875746490721211820463532367595588292915797888137024241649884084253615468368673239024335224953068887702738282499486571415495336492377017456533477996792833541158430289599630753480766734932250037553581437337175989894358277199331449852817945373747125353774799467397323427047472188046683549394276750877949636439162723209964209161227355065517084130829792091689026397617136723751246797207593571045796180318896750655866172006936069802320359490446644061727052610535698979587622133342899518234795623367595959309343739073787618821699860123999623624769199520308933445562994548345266712361995193012943561132861424972973683612081994629162743974701452207638534790941458488217897263444790930809603844069487785112458433975887764439979862945972041057528482307917685026143340506183871815149183379983589497833585640982144938339954996753617845263416665458163915749157043630673418363523456175120148161526878508862001269749569471602825419948633831132360804904683831908873829370532667851509775543786979589756620581265061290246532301344524756396817246583564051775977518995609518028672479719908816841054565938437893358986764720733441567269397973769723833885787634407463227996799108802267673283225500918798769749877691254421080088142712639460901264365310338018892490395498251936867710573296521712976186021570341641033618669767008022712432518466800749729722335052521340703162692467399086436921659319789358774300693402318848554470651651860537813702068974273450311340112206577871044052256737698316724018369845999107929410240527563863087831037382746296785123790379275765831710679952073832855381966865058001500259612682281037503970839888802649296462139554854248407647862490786012480534952935834033236234267838546878744703933600244896049813164605745368552177714103424880154609986214645092735793198080647369860984673350123181104766507545941600717785808716486147426224066641409230407860476737996013263739419750991335443083938897559234412507734691487549769640824325646115027061507145057775873732863315858182262120973980363285265197593439787249922296163065330399424974150209588265136452772107150153357722699702150294644652934530976798531487463686579424429213116056746289762856039622035670968614400145033518881901591013465407488295786611781436962076417188595012682774407274498734514439146313344241258618181368024996123916598679760579379554906597616591161023757828292288077997838084817016861348960314897803638495915173748143465460167875760475877647887231001875304468041913413798473847085382631496564579674725537555683412922840737908643375996381705857874218656396237238009521923846619615583393244172475032596959129635999554844083917287836412117609512320985272222138887168289167189027958478770778563952016449298245583548404693927468401123634339672535764067674981611855118064310679047080541972771128253728509745864459786882350634795087553564695500259119509609261630349452318662280625479321087373281211886431011202252603832164293933264789501539512261757507123821137710403114915783681428331680923521742088903725881429481406383604897768338385265830130069868922062942324812912691289432157699020176762755343053197146345936486554883979333702246398447548955972835813217578915281078209681034671553077595300995690872645570189492757188907535113197744992543895088667134031453250032135749823653809818944230736813944760730953292617445793511325392331086319018714714078508189421027728446216261602780875552420113000915791196674907243072424091355442239994521224023981720727044499918463686386073340553822132604257005553390632106485985296826617791204772474869702356266747850321110566604487068069327691863193012100917800618318442800859801634555285753899223803741331750405247099914818137672033038585052215239123698816948217397873446866120133922633340359497537841612373561693598368344419775003051614086428763771827865557021960630518142050060611488685719617503514421373910091058761483636854975815682290518823824361618836471646801587991842010679062585897106588152434424984201882936034323803377006717015837767842335884536523489684025890323041324512070608934680576694396159899265539178690080246185628914514132664536597178533195552495947084316069720869362967200177391885485788694341274750897943022632605893409840271047538466588310984641681268467840648082003519787963773316589732695766724163279878262539880583437293216770723856252361277398645142162637289006133350920905059013987050652398173638191584078028482579975716864302266770838423860311981352474547074424817388496296929412319894546148711544558199647112142825034984267075241902016171286220428561587079716901366087467312873978356921021077359747843322617721800040594867048369453825336606355918493864834973400188690919857080445019601150524740583771611703072088936325978261209100593386643568635760656505055268777397784730508390823098280853286658426840237133407589430513476325352405580636578526469400792056115366393473006560484874591179808269899398282828458784741986688543363196627469636883613291353068624757996586828523378644998270321429396941097369986469081420961451942298657197397947606336443777204550010235998233696408941859994291601718925144802162347364863594898449267412348043475116286301839843437096325073381654745898644174617097770748539953496272037592137943873255888824717834680535885566470933015485574748149805113550630875338775859299713568827281349602324703019364649231720998899474101575584048948145121591197500948229852545205767475337112328510507975935917035332969813756838296787003216732390755017051971873827487171422477904348456807912496116006507061219997829178709670238701242424112800926882482438176734361642390864501882927980078499352296845584191788881484445311178789113748094670657408189077283440360831917869730726438992438267811818556933614886944770022435752890411318244258827914119349541332551066634915065257372672197991644955427392546539970200557725775965317223996999936148875565256653557600214395313890024457908197790671669270012508524047186809842647875946203874971961290321744322101058709304967566440254422325401681974857786942388193893299314519297376313715933181758479352864555700674259088932483040326504180631802116059471767992398423608311335114145840953951603507650888199176748254263800397017536758384226063593542295167238572550706548650292421761908498015507124637348472926669150217631652903122024579412290772606324308006287529057183078331642020343643992275962028595294148308019555057865674273146869651976718016093293461170549670204528740499547067141276144113663708638670543621441683062252272842234479979825832396041089590729868341821323351224102105712941708725779954939707398681213137205912798474253729387615784522410860336188433801871548810985486753788545620313792972226302166677524459424865710387547331185483322839451138507584852308344390612918962862635910636999299394143985141289437486043774597256410530866295657890759478150035097740594817981889752139388774789304729067696763379081118017957492468898545206023212922016979118090903231782699329983659804687651644761784761395305982050153878800544889253573894568614449054996306019874059196990778450534061159546152853284023992285040816974465384056306440106712254532072613262462437294165198260800054487768154457985589043024815506990316947967404645736164235489086041085739363270460616522392691939817915651275177185164680710124029680255663194171014952106092326426537853523423626648973008644598034257470639407008830791892985569378949958569958831307099540161021221021719845475001687428859775305662044553729986294827819643591392984243361903449578776637155636783512901496468813116125501728877573229305309658853141355673142763471040163415035813340051397338311949301828020029001703298701024614705617466834309968969657761126700782370647017807026817299969535963489170785105800339435331877147338869445926324380183131830921567869861926910977360356534219692692671304882285737565005866654274260809314683344803440315128623287377023218687789285826372481031106644501789069918007999447063611871051504471893610296772549986016237793761374045229494011632233967013759625902428174035118548694582914478952122018111047714957029737728778023510953044518410888337983364243118581883149887724511000506933246788249348019350364348026417168771065024747460287226374718110915450673431209020969014670019414431980049380166853354392226977631686410483253479506837959220155158153841975136892998741651438477885911660232654738709589248246632940773526324609918026117970229649472919428237848609990098112570871328094873535243140726067367744531805859535567556856842695601780047917348125661970453015100676255735737177051695060307660755331379926031950125737832293261252208924515033595603996145411638655806322590050744790711003640653068768257746116123079821721377246860201322815386066574629094395477407102181822773784158442005692934482866985322783286046513025853466515708664309762449353278839907371314690949080567790355650671263385559814333854853042753836405304233835901431297284361901993359228687732531604218308342604397973804263785604183034172844476797415086964720102165062179241068053723504395515142087190872099327931350256676297895698943693843957151193352889075591343323669935806575145521239683811140270404122377648158239602421322282187538489825646712030047099589705026719595488466974835604604485887826168084970261264360114512673757108634770707536374989475774472494502281547713107237831122457047308401905144202987976992482706060522118429341363668648643164992734105488138636036976419005292099822625370275006361781923288261756977916293052064032127280755733765856268327794181188418106015156821677147680704310862221259372446845261451924936769575747390292733274279500485241202056561212842870419854356173975098894225612136361186727705549929088611085300980374206539545428698787380316173803207714325011802935420119767821133597771879210569965394001617900972271685150551892859002933053102221702402299751966956074820341281297218999482553267610924874249536983979215967451252745905058500499535279001425145671058295442422807453409228278977985831245631540471818374029910566241097218242925072238515175199676137104440380870404602143867672494306132256499291688162576481349009348140026002496352728425780481485064608449088250328788641429551730022264220954138264018771219784138389216213469454358107488292498105866502201129173558721876279648078500566555559920656557507407887164746501739907723851650028659801505646367069181695849215434916129456689866849524431009008195575040484211518888819620380621035033035358207340812269524587738134861316063303416542633352223768805286788586029243138538156660496594001241566464866008028539874575956991544387499657524629751672480506037098272387772135993380526588494339844160095594901135241980741198200756466046269487370871596961071884662734178637139201208561484661395115840611280759856727206574464754362376122253050123228711816495601522493260235975690122501384108615376935418907495891048225386842754972745889509270017447070202441248405381089319537633849112961496206413259895567310258038300267220826659458726381856341893520010796267479394783971013929443492260909964290908104275561026174819805622061517010070267776427131829506166639886286853600810168692874824305103851311061086291094419682130401723356366409401850646273566289806299360269049983695015353217405024811219259037698701787988550911711085161373630653461746022938665625789939545066137112766860506657519586291737785805108727059109789900226936277601557932691988177988573557345504865121957086523136693653465382621347308357198195120097561391985952747222557947163664313009663912255624620066234795806771735591885021582843913654133768903194182181049689148422168474012176055505562808190741728326309072234106980170756275040450389915324984121124228104932067337415312027066011450040812663399324489370729289494172849682792680772944407200754743575419853313802909776970053504244370081706596936155251335101621861992273166499713627287163282840534458378765477368520606489542093772932301085911049357351467656459979579412859079514054791636158809990629841885925674206974738423463931865233849073798623116658138385119292073307459942873437309344459409926185279757813849364857386826627725459746902599211103519092588791158671877820029299875758256366726787899957064925500945640526098278221524481167545464231759012701396389238035326780448062239060829754686010026022379765928684330029647876359475501083819497041566633633619244176616084928563067729296198411661302338980909778361794544238031399250060316163547297544741572636874955939601281026121314595220962308663592320949244792494609052606113861241643348559724343483909315236138817136819434412415762867258137036274044868829004499785751229839693639720276633423935989157702186504077744511906759912515116641961772353029209668529926445234640561114170145925585688413876728458193761935620729942545580676771305428944767871328472631756741893095680367486050138228562273396232718318389653755157468240315610610043755639175599064969043516092809160928187897715405039321356447315854271966334046446058548613954858241971789375827858919596808130116767795667355843042392373979893620982005727516964991428106819453360599950319908718281165896732472659804692120707467454241661163554841842511672685657022810058514774646701268321433330728235379714171754925637511036431106156569257872372350274326975771100197506318223837660630160235692255675399166876823391635514376577759029758892871710456171600282154121617504192716404788396460286777733358475913273221046156056108985202620653978164462113710137133668349960574837925523434147572135154061547821589264553014936707501446260275907390768243144503455260868669471106981997377922336833457745140489617060612669124727924410966208787605236764315282836367680512756836901639986881791911460717073795537685844811344348721340238657480386411738355206467101877543942655190071681220726511511267224589410592835030025503712247563478580410763623250907173828221754447651901051509631821493805253041625768738859451344815182600459944907799800887341294331920729739125309258353054768402218024399413799793763715988535874291094103109033993062564395553951197993134590820776920688118931437031281548103416644072801299128910658605140792541037129576747144650230686020573343855315274255751196002639717416932214730557456905956043592037207383259598839468517514153244081502007324946744461076284350682981092775459796601596557980886565410506580170388468913689315495689095751745667529962690915774205572692166372075407661142195626520392365277008818531227166638012653488621707275889657966080160309383538112431824046955435894107149454288594767930695557368759284693391826953456848020432958372920362940086183401779220619890810822658906905446040301406207872911511809911519777462868835207424505793616088784315200225453336683126558811175720639276068077377412881279103218963164295642411527857033248047327803029588169973143358194469411957243634518180028384788275259305802267088526522039280843743055399309209252185361091308851644272510321103255818612840775805116276338716542174176268020533377240769174043520283071761793669839399276408230976910921524868561611551071440781901353811649777090665242134299199797062569341547054236997583207495642347011945647179691840827840683520462667911402784848195358735855764897719210085990470009446829223113832664517921728828223975454970927428952622221453178637778023017978584241258977707228911715592320403156848317196379057793150694874857970115479914151724851567426028219660376194361492343869055480952984412219707316000229231998591226204579374116004361747911734056431593982642751460985783581966109644673958512482218894259406110696664410265080029228910658529716125374994516409598878194053564127414704479142465667602738711226706553217212874923799432211094985885400051989706453265090513054927986850222032028895551436682236713705239177104759912095951650871300547488367804344187711169247022178685933282783043007976890467517058065493748025736576784243865917657685438416164738637216614664525761154652596100634786734077772389100759684622414104571779718788162661283044731347600732047829693284819034650887941262284000139555904011626090046644135218070604860805973008500085924649882831561461395439010406385002745070720201154836163120077951746156711270608113353088742780578929563368567353439124729608533646873598407242386780781219757887006405891170814376452536511563868773303588117455137034176861734964933244667502452322121514819263782106877998647457831783928400382983546820882170269473007100955011912522899319590662407592337200908382450861623457548783605224632855913168679782486028653135748985551380286053857917290513341619550274871759754192748909277501556803057659232590625568019083560511732265784960422295507246865408075683208215937181413903897277757953043734111022152942809167133558056687104855857784724353030656044143362920774378611739032105190316985994826203556921240369636491091101079158845631647479148164847850639908102308840501382960810645479139678189011016741699300828436708737708966930143754857312321811989778784449299011178600641317130543311703380071090513573948053044656105366574316869617694853041610040398930168735128774795087454491443138651539835219074207017392250399757673778952906093849170831192014107748931466129674476228505537497376435435856480875261583230206711057930439849819812739609658892615223337409015892589223543977723850968971990043041869675020430929944164718207323602462684609345298755375909034145143999768981614367973761371594489912909980182746171397639489306271882372460118188175392356337630807030977235696364941735450628550811225391535260319525574516830946054486042753684409625574632127440641778494623626484644913422027838863510055366547854760610462893760494873413371809143643887171367093343338924042913955079031592483609212928516346357450441735828902956336079796217569423387265911265508308787509310473498159424135957006965812092690655278379248725763450303708930255621636346728836787726989288677059046832423319332246432227744427945587936554474091618745133787775475920943195904313181016221980724521684871382220830367275855120169626490221707205174289607477185319464059640569399793183685924979132835294911792015152118373760517318331256220134657093808553573191479706150858690729830066914225031887550749096242194650379241736244163654326035482313890412212299310051236331925155506810129633800997620539931948927824754883447000175899237874468677109558168263624300182458539286002693535015228346581746540270947550612237962492711696696786969976815723421481282426521308592586263729597481274067539088945450682334130848161116553647552404886162321035069905447016822162476995316952135511010751528956269342970786093820120512357582441445714648934955446318861124408963265726063958071356644868538610858573847416498513450128653630280473006309546721876229607844676527320368862241509175281221300656551033046644673887491610604638814444596739359133482394197078529351408512935693154582836776763797185992415977127878866130502554430158724152494334366611748683266279858445588361067009101441299392998962056678704709500713974093412707826670696565183826255605001770487226707186787309455191933351196692933840107997543230704775141854909985900927367850777805643431330485307469364732535177678251350755913921160496175988559716267233393864260200738544664430955437650842601194035068673123750580104272181925578651362477373498281089471094359982902547623991585219884597504957523601336567898269134828746424702738602656636762457721460319342122566288264488580043141429345578683884639074144694641168011500009069664661923408378730926503650961503150589540553981770424038237753221912671232064100964549143790960290859261637326745448819176530246917591400996481202544211707987308302558722709568953482625708533979115785507235085655866942779299855719056258594082268068681566512743858512712839362761747095842703566631997589104505270865376027440487444128671502869554966104886598187066071639214145842935274690873207442829904331553101583635192266955689118078217118074473566717996678571258932153996083626181601048882935155737498020304605311946370429039578887364581878274020968192032531121227781163450383483851229782789421411017398022593260497489194280866038875226993104397914220030267188482081594072358014251573591600253801069439970660258029972472440543660777395539461686139753386781141787048720484451622077158463404970571688764872746951790422583377137848768010173860510208044230880615676805209392348190082654902321408088338284770032895298762824937714406400502962698431063314748282748868120419724585451595424672975941930020284951521374425291289292114372533293265245418967574787613534076462331989831419283117161752676551854030745638400519553102419940383297229572850492698483573698327814977298261908269477836881780522960530522751897614181430988672046935572626123401437033995364968421871957692620926492198486686293423230819834604711017733225982165979931054600051690238914040481013637294555951859388733045133793937399448791360111797767489628960840457047799221618016090368112264772387894093521909178911518215436502988700543095394177302567566936216556703006284685735197635228132745159751304680867844778950645392780325597623921486613256190638212733378836869270343814596225445870130729719824513781384420922460370680579642909663205709562470405486238193248895764970548495834693883272218396396956303149399339145559524269952064955071163116867247211435402809360155593831659941529792632204511774781933826238038431294255641582500621940177627797756899706344130889410831341049185926885907920287639146543377316571282659725565024038486517856087276275064080027115484427892191408048653865717109393506174604578211956479774347581999143176305978896435964516222152762210560533633146868092399789538971199996754864068829698294229916000505876084981476361928387683346308097596238032489728300017139080649120958414699278492548011329539996588513581645177266561797904888246007698416174175814446649286626991411748954138401958473122690685663660794513492729727510099153740633900629731582221125523311958106903810116370570361300707086934970733905927039636176551494708323517385286097970800088488859636467492005857323009408354667420561669212304455260984084657330288482456902056614155389321820314700059134833960165201904837914007242351647946873700410557001090710905690933592091892045915323829987617397602914166539838725072044562759792267778589580590962402196227151643736334734360196255401259950419329264087748162994249614092147939124887605308578565341785950702990092860841134284276819081716438691446122696368711919778452117556880991232735010410127267865778201094873614519563255046750216197724809242302569946824974679838447234345234995852300348286508093923926253177830543832284168765455642478724505627383006807899812485425356317203741541230180006044052294542466091623432592994094071721833057016564503756413739225328357800261226476553771246095960860887477738040324092223301884162136730191344286175199485551851882865927425274422291570786373899648202205994215648569752920628561547575256435071370251819561151608589302660487195995770693018824831736841348401537810732108358709740283041481903182734009984761687384513179840027514915428801740705639718292270084932371453173178936023418082329582984068527188760546588813570131056186440682021008648864713041969170348322587100600496214307953210007041376276165423434536420509303122286148972248912432930440928901950585117841840811423304713107101988993066150493062553000138739831911039579234677274618028350178834070109136342416339773001719110598720065326332511359117320784957280206524865648637830851105350161548784121508296900555731695460400451248448705560104926475700851659886156365296548918352819865475239165671886669773418267492921658786287230284168565591533748111674042498849370659263919429652184515720879012102898184538185695961519000141767928555016005041152673028942287066437769818319765714785175765164280275741756417099834406669726857865546427909518083389355576936365165771966399722517829720035622849539431768523563648727062487237031124903153705494786300762175527701505842829825495232192800679956431035705729536803070679440618636780233043687257079055699728058946664495332206465251201796571022472513236147076282710175986744186964315699731773744389374504066318295107692592325475400333416856401708938099829468469324878784647964525252209591228447629508639546492636848184425463643823129866153200027298057406289213110373084777969333436473507658881851509130976678636052936148409262601288932083285347445193634791879593426428037475851110544363666178744538076300850520809194196478622105332572465230698840737232655654755800199615238492343300194386130170017105370712978119530311493199397675629509710692240781298261041257243014029872678443875989086454938402587000470486029274446841167793048804636546841892870047162156815135130037097801206960518416829860074051750568478861567686358632860064701657932225955476399287622905212272911405297282759408911277872503275778674575875387966320717588832345753671643339840621338690037837885140048242930542823057714048611633506913805134152203904387603391588825588332202843984981107901876739676050111295287372154890586535199329172151026242764561915012568206543652121732203131617383851040517432629507066452621491605833917909310640840354672314948066303707132398206819872668287155562617701227961640044633802756108149984266253904330569743931898900562836385559136121963223478233275865587899135076089569645110772300833180183069570075669806585551534844151495784100769245143935543220242774945177079573085318384777399512044780200624775536533944625064581627655326024210912201557030063454814323085088100761543440736577563648257439332248231939337858092144421167837389285638206413827949827162628594651752722381512176041308784830489960376104189006661636006185233857585871782356818025777177522887541313191626459052146204107638557299229962996483743111473240082804032673099078960353397908249838295569590490561536497991860538744256751151458404979358775449581595450827374832814314240522690653254965329767998567370280600060442856238234274316290685234268209086354034350826770873779405839941889605820490165612444973291361769938506621052867036281277515661442054116480407316937080309251380814602892324121681951950327483880245507559147425923999805612898032623764096215283842886876249060552240063215450136089711358127187232908865668829619174434040575524652118219892116302009506866255669361302276470673800022100781987286784687972269904091151313425927595700433115242107497993621034197519566443239934878078619073059254145679639065776189832508682110364938992494702732833009757676327587642659026253155981795279766610032631960843918753407421004335865517374226739034202996974231278140245539986484694497063237827345008076988281794759358477990187041485212401944599990587948806790796334791148255950512606509690582873157136684930298960361113913654769025407303325250214094731344907292753484951925187725858909803908799852827126656735027432473213061262697854105550903844146394383846470389467159217503513801868669847477797768127636140527601717037382331930569660081951390314577278593689427516900834905023425958910396187098992540076373320731122814219744742416848207044267998574538321017142871429626238083863416393474217435343750491024911641872852545559230921859379603024918021448509024262972700789018291330174180727188065446348354691840304727132818055881368277951788218327471960688226909910974631209795933705290404476691981332254969088222399314174027604629202965795227995089558873742217828969246730037887421953699178886683403731432059383268242083127019224222888180678292498684836822133024354378755814274127520407792793205550331183021660484059686007309516718864978127916522511333034582975786858995988434630966765761804151223988263743834438055693868664996126603786165556848724186667054235535881743652622326736340297790731755117880792944123605345224017379617209078343975225367016686745260046192539694880890806719448698210647433942058690528902657718746625120110471030073251211333667332791536172165111452037695287517397494763544273232028389643518668340836062847780393269150174992648416222077733212854806171568078246453892193287965455055346985044731810781871638739561868300581472522552954707668837220594239125502764645678087847698909824785429779328738901831553292125999242650360722442882659879166133794340427570929098299254784715622148582199231947052614460521876262768692149093673517041995655188288867816900840899342303720884093195288943747714757017598300103684064641912444936285749133205390541117325787762375972511897851526995364723752972175142867584874418064949427571482412480840105692036632709078304208042590646665169838182064397225291377102768147233654912118499843017338045194875735786588702629862512845732442381951743783741961559269128274221546148770023333496525626143701796728967036228639964400962772940611438447578532211457565516535326784674543198335734186930548203115601677847121884223103548390594721006782048368754603649516706109387706682548392273152879169560718219636089844973131632499971266911151532170347806243755203510582014440327307039978232808520861180066464722665594051820270107454971348100174603455888213669824183440356877946691771664145727540457698714508361309305594825836692685419236114995206974877123862394156657535779185525660684914936311440783276140966558726146528867642248381812348280644639465217508286199143756349254839411943501763487307971594110985930986812882519856326880482557635475909781609899415116707139346844477328943541683432273672417057705257190897900642603646151056933381899052399475057019322806893662405260897430241235858394784258291033197978410834879237638041051594307259852732464725192240797899886522580427771215759609199537830670047188429373398382172714844403904839994453958346726603562931064870801751707302256433284602387610777444477080938698966197668077824897211778282381044693523858061626882359247342384643500270092794947010662093864446642572921267627256777455306844941744762164869322680137665745470069383212156230458554636592312416196052474724563064833207205412624240171984551404949151491992486435010117172787162029485588205604071179116889470547168623874082467786804341989831786036403117127477034575477100627710310668966190123723715059343305599298202060906424338233162249512994403813034392333181575109553241613119981455750541029477415763738085304374709443997821939107156931228518059418683821107767665608137659319254858072575873696262061939145140204374018046135006680359394191226436224217196922666017726604277873221563860357676330749309533808021481222781833853438911966916198532141845975285188422401730597349992903174278281173570277667591508060484209585493487182602476052235298414819663268812108199309337756959879044482097981892814295511327261807548460658704962386835489019972755432786130845603174082882575837585198056996659219516105487856374447898999918644060915188237017204105190938918246122916445558247206058225700055822428046800367300340260658001942315203633048973703313906993350870611053528047898900882150801392613011971189631059836499805411110917825584807131264522417771403956267741924171392304644608387008460603100743378847414650470084436390859695936729005949099930519041960486528654659315800389389920777588745857473864822752069921494790360667772294235988155893556018479979569407417658103606301206716301296858670151611199290872200214992286852523818948736654299088507887285536872134495731545332618993704255052274469623421072157520072248644671108718035384834175247404217540185776519593303528905075769729643466840048643668823551690739175693414333307937501174531623240337819181711046935711347377263517088288193128590996934375818482875157386104288160075075418072714806688124319644893197217613389345201509275552303314779568723901686249009152690860866141228477824920147633670225139246337771286242777132945684519254334318659252305261319525839152544138407616200355851624955365239262206137763160741099016029831979238240542173742602211413244210533078475397842564902439883511430487067207817882122306149524042816774902008907785268406979452434354252155384908053484196663209389381882646283778009966138987966386923588772903303566804272266712108637564399763810310769227733873192671474986173877830583449260132025091579340292682739351543347466249630161191674939908029538231588516437643136707018916427653580903572160434181245137884641015404642563030301036716052060163223548449593296702008353705047056217753431088590806816307110397105112565189151270121294067639082313434327413726201654163227321836733854978851888279122050092564014520554966138173437424971316699306024828398703264137877885869865660296463592911387339155316880988385899272857271925798700997630497802995883989000393919195300944412151014487951731465791060964929388796239401469643875391723930178765663077811569910653618508957338483670170671443789811777481042179767501485120076143202428085173544681217605409897844954706768834884141168263588914611117593124090315973111805045866821791393888214986252846114290568548754915549632720717522800285805979662310948581608692925157950481269427199682796484660302216802679289296797302226323592711603748410755335876079130267103552129028343875103663794472700441349046834941471913021401587670682724384979613014160773326060008338869157870865149813368604824979997380353822038852053692194526557879678559558947937520415529428982603097269849827897272167961284180747047802778844667201518783513334623380906767225181704611290705877114279937469659679690448304628786406137777659057527907711956719012733934177783243752158645299094030193553500262065348212271786790250788285239882164578282225654824433912779434110419566435714941878005204486457982628479325024577044447671296121468132861230864738605920268386967257485384727679257392051767019516667174005413132192599873343902247183141410482563464575790644921241178792346585475089612128213980353040847827419474903755716599034107242146247187729371279640876560692510594357898245587460498063612986666425279390230804709505667214264768749949303435129550597366100702956086440245758246341154366214215998085966268036922937391231844716290615451576586157976440282621188450007186462828493521533614399231697540098571081222209701653067398803819563376318077624851793492052931580251428607413221317988621303527070918758960283491668250635194386667499545091655941241004495894051831510687236840454505748328474580358836624260527827820796080942112378948936369053305718054006663498758857639057290302228829063323272968956099831841615288488129081995309991033657478525188415871828634829184841551063784755190055129971818345737472840373542484616089574185445415773215862521667378427392454230257199063543291950479438656691217187187338129749739660613689211478054802111732086865325785379176270673462554729514986219965584152126207315649437857229213775759346309295905121835260701282103913312806659212781648528178388752136376688598753587901080077406531137339445536430362562704323918686779855412318798511342046109825259511678876961681763417738114734884268805663958374319191745953686751628414356397188092576276019900352654337228635920131440913365224089756363524741885081407958519210072463170697856895224630219809023003501356319086230715021113825868172224424352952780594665470684376683628282074961617734583695266081553477794730622184338385828822204947239140165409995325011480742950656344650265706797733063055402357761878557134821227170352210696754879248528153842713804384352059105656342550197715860840726247758240827734193478198864836685937077007097495581730278976236737805888165358209054547843036506268873500478048143642611612940471038153794770272682751306907672717996360656842917560474544306244063672569091855096199479539525191860832997352054956914600224193414388170176493318614488381865276459265767312045028924647133313963110900543362115689288643130797344383594359124611127268314784176006517992365726134448817066715384544082024577166745197180800133247332196752807506047559079671813787464067878636964374547298889239684216729467625563765525620016846170509061444628022805909453821697626390163127925539064293968745989493631048938374932818419702012601536739692166027748128069035397776524076245836667597426265802838677644985201874363827739341088517995053775754049011616039582019851211474788075331175275151820659313148633608098098361123186238871202232054726765778440558828615738797736356122218162235482725217109432791138448957042086533577446591750657174545950115419170969608140780553161441111703021818979465451995810522840375984238336939964791885929754025111354949403392052305973070114307961232250323911437840398390548950887041072931832362833029458894917163121155641567746355033881207989536090538042717313414073265853958784122397093131784086871420801650437399325177598176590603414071386286367871708882831077463364210578902984213959523638325674069622186166039430994743439395999306103297876197480483896275683395647109649267676269821586030040927183997369860338287973580205434500461021876341460558084888806348248907836929780770011365020509095884380881902773821470450560458876342850539437159067913743234420343385192334363399287374894688890663342549549789068035691984900630073806413139153945888529619760109414418030523500429677272407028782424368008494481488717486270535520166743643556576816107453548680764498094327678423360887580686688594137913735967983008435731068017107091920663626004551916456015562989393805034579688881355754642785927345107715060148928326664162328795992326296988448275654166902854637118175221533860287701527311387791370742893173622639735809753975139488187967318348910191453575905445097938209922078140344053062088199660949840481500513190882901293464170907496458376650624543834754240822409645540991357361061827971745580362956899715711779137977556126482066239537944002933063225831657181277770920964860991363968680016386227478807788093793658507399565358691944058538966102565724761740430276702236685012497640337911622755702233769644875624070070924788598307170769860269746357298583464839884292176751149757498583161421771958495099919877495495831016268500669303946403326919786409710318358842998386792190612728643862924855428414201880975597903598984969902664345727105063657398501885801373518740365282787457594064441022203030296853771744575243895333329576191050527339616971840851859442016815431946151339316374425847161944728604996018382029410363376361924695933499895868849236208540878873867588718178430401021852998183702674813501765292730990815559154567300904782188562246258024965960499759514093541170121583858505400462778286390789639758670445732190588552803661133579208898376472440563078854837239052658176376621691918062833075749755432630900014531292109287159036635053473416125629801512972508596258461270347558210882272540584694763435202120630926338629548373194490784562355367931235156265202956348147443026979472791099391877109561522412795705017733523952399202122752713740213712891227509153895582116348643083006145781514896517868824147827940816857689850581232336417475691831990257651767507187113285746048359318956580215773898623808422692726711394648992073461716376382325916711579355808551307665334498036350899261143401545322261921892249304478214461781304142405756306345946852373039600804044289071576672407062702563701603544853801503859766813974827138685279261824650861133208203573606560565097870823070207749504111700356156107959042635892687449093006628990080837045583700133862497377883790258110542565682761034704714961499590498015584237447636004096385460939249452546102070589457629138709593556000674749049733034636458882132472556784970453990996073939725533109576275364096871670934286574472575378570647775758334945282326299449815453542224199333853643248618859161933466274387057568342059847509332982948808569942615804673646190322552449896519449072575684134951988554848713217452055434383367924599647923620449693814570132867314111948711650638949473826211007691877455072049069042997619758893358210190715579147815290820960244320500342955131019283411481813606838693586214246539999400360196852594227977570776876837393497873725444501877394230339194997576487449401192891332756395813737367024257579087445733548195193892425336710484370083584980276111773979954381441069637733182842218716871398828830579536533339909443715778285398691150075895892350185121966213092837004988651105634465491004039535820045922316057034622157159407191066023704753678814627803485349349617931438912636459781630121567572818473561189110841069055703986204187681640395189668063767633072967685139059964350948389734340610009202068150842002160156888836641591682701410593647272549900501332146206298727440248163634494679704635618272318552381819220517065859508674825032205667491824465873977329212142498210942742552682882636555191423200411533965774903575899647892890326017113813664812339873281311301465269319512791771792251345627012300255068133698276424317231575937736351523347914153196150988124297602216920782744457351081223149557001101499403234271822724287575976786055001986718346422710620975697646661579197359224346505455200711460303943003133603889935203374765046824553519064707690792018665389822183756700828194933245958342171589768206683812338840116861877757729134465858567302144160442085756121328161744418455060194387324232462652955192970938491540333409937587312656324155864804203619007194715123152948739158702870878828661533671238003835165447498492515673869293858681676157917764680228719552604539448941796486811123772783671232677170583887573070885651615883599299529432569961017388462772300632797377879970966774361173008072256439957655645030923934799308030463346077323217815723540115730140996832435714834312478621323521204206165626235164061856220724823417740241266476287015351627103301433106996374071040349363373602649286046182529612903055093587374188600714936104135942933805568993118555333714723560696573658776283783102347294375863305285855878426565813485591447705522289308240232411114222798072629891285401973047804039877095288706810240636820396916807546608506407910310129857178517239252332220208950555181650676480840855098599356564539213115746976882438400750843044329146939758662844768686149297965807725062231454465612637776606490113840700964920771063977383251687426765722511552050486125121111605646422541268967431104119031780106769230266342479582850771164748670865994428215810685515395586367238394703845851688015964169221735623743161627767850654431192957010934229506199281696128604540799859884005305833812986641490859162858727424487036096531758876622638304709549156706505448874388652103386021285145806172574637806823165354538508830954009263448008194926278581874064241156462935535250275920264128782403835674504945377932667239245694934309600439544783970600463104161719064112738580441561465179843330725561710903359656726363902419091897281085608653310772434542268724303672499488500051041576251880867442094253943948148480042483754053014639636819615444982245322003860090097785081994221196065197634060419191456302174280174115508967247231359987273437433776897774830055024281368726484724900189099115386307940703006734867862939210065840673410994157969243948143242916094618314852232791331265731619718755770134975569419982687968821712732897466301777685170768705914923462918771164684899214275280448940840541791119079164616526907258682331703569466942800091477131519053007625972271200993448438499770987552016835449324950012945826727987031996620454559025086767807459665595593376302280940538457367262111897636798216352180102796514171969034718336829715254408288002018751671110813777561556555361003194101164894480366957672983954555246987042112937324897703212116372673281964313967107180420715729679729520965570939712252233198514196221554168644817400572435157399027485844853270466612913244028379502334268479447998137823199017039809770046260396884080751748648003143261721920940652714528553006335746285627905615604305204632545949449383033534690513009849130184125758611560728350829029420818211458771992132954325199167840580939788752645299656141346688036424611374604067055611767069095599215930030686074302568655209351115385092651585864352960414160138659398209917668389176971261688485672185115065138112503540179685774268603550341353892048650352593615555585850094596940694326645418760945497314758287797139706599547817256591097990091941768138722876847752372716465418152788727073999710371125980593910355311551536046374910459096319223295241045458145950203393421562008578209657656414047733466512814045245520902045982980905782200483743809734430266226873257583169929040748462311349332262767788766695259357797667381356322755698555208609312898210479207825419243158523631854963959765536835669708159884150569166268255555902127446993932428866358662597256224074232779338027751088297273786858645219051789099862692277218605642196937784208586168886441912736359965343391467100178120173681898863307035841566593170904539625328655026741642365940285186535623292452805564473549519105742511926590155308763073388469378194046860491773454261643530599570718913101374156494746008141512866998022922040962772332422651596263439630869206810398650185471187759519429505892233243603770799567558826202417357240947532825796369805932953137872336787714603978122398886035489315296926922052507385286565657486695803438001640074848657004923600961692828599466138919668603325186974866735806700171890658994253794891648909267951398769159267724471537713570692202684018198406735546737615048669090159231294507592336358863441669901920165861811505896984957173217979031113290091510463109513756650749519294480888355555245313152698294550849990048450133223544440497433163182852460076555922057234868359524073259419233080963947390142957119586451877112141691177786232284072093475322290481882819243465483740239003280757870849337642148911245874576438198378660619448101596288722905722245912653569650792282235753555766647627651038365340263925960970519112864357007516491512304744697542034610721541180170308068637912866887032858215708443310998657895403683343017369771291368815034848221487171115881389369788801095129920983005051520766900109584167077967974049749407653199234971582597236056710463701442675514595768063540755736557244789395334406982795424661009086581946509399738882574740383894388108556552970289984201370360718083071548722387985869629155874145283551306937181687501533606435636635925975244301234982203639716524625760467002257435684873391648834716033088286150100003680400385159321076203397631466296008509042657850399694107668725750048708490337837571563970069233505242922765453803450897029194856278484329927729319814110634114887997481299672785754653607532186982471982845985024544148745785582538726505420681502665797860936466323608330043421349525913184737651367958248919389126410477400136212646116531191125711750953394226799462257329447762778376830349859743347855865712123272777531078882035730381162375503671273544159665429275897664355776920229680209642674738946353005388862384620944531435756149440025631891524724303152817051614683980631060797345404289636877664892212216269292320835288672578750577434214805576391899579256857528724108176228762836404591351914390893729365294255257880392378565121610542653494696546409690574786612417071096363502636835395817528585331750043454556310068129448648666998990183176066879441843855065717339234434120884691570362991948548958496126960712015137176083315254836232648726772730057139335936106478040802557603335626479649299534051375184043547932074570875169531490943669841549427964526936329256709709458366846201637670605473055167502544656167330053474077565763627068122103395222285937096540302707401186769000652542006485637750601790695107243208446330247122326138426626306682293865562980304963316354752366752163378224534412409910243139430598494577618943359117459935738994253510167737674848185283183842729090839609701702320755368609855072741667688969056147677094318080713055315197909639291295712587257556817399473767638053708238898256662449192687870774812286059010316224402027350817322175588130146066282268097609633847880444352104785164349590533716832252218111103464860150707882067338239462836576277728355686324161424153225475495804428536579186100249149578588001339858592088567766818683666891901649600964630981692371249619249745853938692305101912008282593380227782683161200924657015736967097059142738321792083406272155679386431486859662260117627248280474135235032227310253484552911536967160325562442613719719660899085491775541154094658408707213049199349143567037696231035087085301988278695719132786834450515162743933198480951635645171261650362080337072164745181275368307427576409099689133497028926315080698179701768999767199960688902228646565646513288453882959853060619083358453592065617247674662110840933800448952831532007278098903983914843071278096611190832140529746858587019004472145903135860241308833862975864742254000638436620417925502791113478626933007761029429167786306655918179430137978938118025431485141371580540583190080566960067609729917687231649671738029668218335761861297092060054592065647131546259906600646007167146108138022857540835667345568714419187019066886405743126334744989162976522129045615091859983423004909590079444640459824859059506111319136807307569844708665959697826266375204582331254992045586308733335171938514809154546374644043584795308321471765649238334867524868543892445795851738563157925846516944858070100530821497671623207442213625870576450311078346226193223910993719257452679278082130645685482400290612485772031267755639637788057975466673431870603042890183889367892353315742367818745621511542716659047776315447000207284086571222443351582741057147153875360629617594153265727305626288303796024819053485377531781313404364253897774314279023251237330521737922125822686158649110248097727199725263235968733507187314801640129675720689678901077850705947476916618474345119294236847643694750905317946493524254436654008365187352962300341038187668394067806631670124688656522858548405671479904653707366754815870537520029472484246276760152891793629047401354840410009699934330167885492952686054848872364901412071336221103976110408240664388452777263222811368389695970785963179952409479313902463320641012639796320391686218859050466519764095919954223545935705967660277783861908865074129625630349869060531014150976060823511057406803764971215183866491620487101086665569055135484229271449646101777018809731201443456447823462076577854032267452629149562302975958909211257742140368896541137000783473064197391730384431412333474730698847610449710244160720278263531442612704981951018853661333922413011393194436953396892204184980085482890819559173808953415769593989964550773917349347095747387842060110945494158192283060894939381564901872877445087154967832443228449761228150318132229620398467484283105303447653114556650473375824694744436956344677125967994080280735205063297669290055371553117454278928391200464341480699423903077244490837044974112805729556003984546508439789500497039312653681494045030454956331607222512815795227010128543815611058349554746013417510776359647630526986728671575044725427383172923906271594002323448127890912085865159252592416818886214926715062170635842111665607955154016183319148591554243982108941562212894825137774109558607009237120811062245500044806066104114865433361906678111961302702235444759901285406367294416082310038947362378492202462541621806177672336397460512267841023339711855900524863780576931878528788351491300936950516139856261044476585722347904170713917647671853248505605611408988620447766944616655476921598564754831395297556213658059300926946972892693837044936358797568217246486732150558082072248057507442946732252567551496118405487061162327225017369991295424219129928982412271916079357841201766027531823458486693951200188548677796734496312034497820034234442008548266363821672924762327181310458949263962329774105986455519375943039300653392808756812337591850825163241022072538232048677079616362911212328461673976005048325088635147846576822344766543563150895841689853664691654227979539726970093282636131429923177476117309182874742835652487813085597806978507447135374366231998390198434990583564019815704222681575556371901653969572270110080962822848735407386126166321057630070054095144999325167125404292849910777217358559201917494642745596302714955237976740691566481869893950574405424489381927482539918264778529214474195159735119874768997096218800948020553761552357780637727866740133235066224963473165898549963145501074764659811664162737224644811339717690214826633535017779666370845066984432318455721544153656585402874858527712680520290258893076383448878184822046554609020543423757645688505050110433055405774649602906282955786924113088720518078177832743475607431346470939092788295993025534414142378440543112732764671440494466777678928584178359940996372161913255980381335885977682132401785987761515363619725697004917417842243801832790123864774417530556156784132492109842744463837125585192222816332115578486458627986345077849111192711781942245704622409352202614976122005504239695058796290085717799883631031916142869655195975751464977129478502355906092016868010884382136098212474875431426450300438720713666946407064302050319094353359530589490059415830081985438273257648848922370911768166294335987387686338592593921299459156489621575089931626649480141079336186887660911346414793963722323192930904521153032086262273173721014030381944140760380880252342802013338760221623655068897404159841600757777264583229584763345701245147221267383440219601002513589400275492675701014008398804733415577453866366377392470264269420739979696557555932658996217575422281647458191589101607871983755523843703796865932085623433218691551575378891089277352348529812676206070679045181731693419152796458492556742418640348842721550627935746063058178910438778254918151597280675315409625727310862799016535897212630310185092373811516394525228873815298396271028410780780441094799760526443226670508875071838826941342895955523008360953327853458394596450144317019828085274334829323429855998341308223537669443609725642739491381510905332772689750074040795644399076894515147014284038874841980810218837896761190449588061602369483762582609806295506534732395723850242244239781985561079892510428252580132792778002055218180264603430058655409066549924830231994971756120655884887080366455306172647488443248924908001635506837242333828600864065712962271398369965761047343961883174736064839298183255278580270974690716370394744749343026909504294594346324889428891641170508654836144136165526166409070654081046089259682278696494945508958253220942328957716450763216171258142231880487673241437460338503693739621942436267895861778849778994596152919910267884608896983824452693587867252388979972848819127983117987010438784131300113937066951254547940187238794239616232163668589705313357753311874954826710829123968005447309398826655686555208069538829597768950790187884988596499582199569807078411469685220599115190279146935514281750914668291607485448923386814401126535836662339313295720351715120414137063858797158955520412876511365793322811096082610210592660275909882033385036523265409753874297353109613283981919511578346254176106757361569220200986204298861471112196534238816121574305636368827675195119110266543048203980340561340943975172018071315406516353780778774039869420052808984096058205969814836063598601611692530650588669212542925953877545114464885568109890731704912680175403554930759181347383134565208695353357769766885210618884916581519404590945866895722362576311639688157097758413819715327256828486712022822519176079414292353378038833998581113034006349946418308919179690458302857741247487207706497116127515795374163887477287773931454225816760376832555114030421335129993463276787576748872422775186176546771281749879894508087829287902851404041104899399843146555504749140976949187312437599342620515320512588846511789708030910360870201142020822589119219133726902464316335493272764823243784144118119933937070363334558561310724970441934821449830492542299419193185188067157930285612468174009385473796827143784848534984938785902417211616915874829010652529222069952341924590896593180956287275092315655891871041800902867668513655599457379557586256773035565744143771942082542245732240290518907342525781706926932859338114517993731040063770740117571799416272426720256020615622554255639413013841906497045135141554040891116500411724856276980411736849366094978542583672466598276246007914828216185224927597355479335915756428164740501531640468200729113886557710852681630053019358777051239779237468382406542616085019164723712491016990824364651802974003107796269982057366290582000779372035355795929285255127645038477017138862106175582553737235070948738375635034646990401059754913389760707498018481772278175176761445378802834002355693784140202153176715282100597399344045679733085089634557282530743458981217742654548613491561436539391783440628986530394457557006494857364029321896022828861157612419674356864462378992715763326537900614842001063734380252746116472208622952249599321845700678685377251119630326948141928604673060691726359944388673853609593426447841242313077876049532144033797434507977697214514949636709797587908438912552740662301424242912639568094877967677127717892717207245802044062133544245481708872041152966032328040159436082398239377902412280359195904014918503620219101143054182253755500075973678816329783890485435156066934299675594314554970791482312087189571372311864292528633891670348587936673753982928188728501643335246422825918980489913748019317438274571913701475979462064948085243922086732445888963016302370329326188808710907142410580119847930775403491139544484985005198838459539822731271566758770268452455869215589915822476458140208281315250874089252939716456053704433004679871567018213636067596735560625464964702328324173428943424332860890694378620073128815531623619452715820064569309296825668249268009737725623614004466021567872930217862883094025898658899207892619320648295835407663409435631956229129923714500012170458734566069928091544651346482269344145940414019763186678343788421881121865129840747269423009919043392604230926339777367711577838773942506175248170901539725045508549867981471951611851621716672332908414476355672041417943701961503225942182162427219810406930711428458263919566887300762271635341208871056148401084620497226213010911290569858090888862123651079145172798470786604153951120030423326924860667393865968138111963716402310382525914977881028412314631037641866099152321215663575049025997575672616814624834062284260118490290866279652448587167120473101913590790965807813531279864260359791639627783924774917647839235382791501605139988058210861427848174302168398604363703624015433340166727710652828892450470401835296225683100425425228328219293018897915775434576140210351801355561442130757196867936740202601378745517163512944765676021420014316605845169992005437980942036403830189485176444355537846296997376533312859734054328344975067039398633395896674411218026720076335796222035540970063782840506500000935444571001714962558807956108872118191706177307453664783738189634749480524864326400849052491474814856672004826676950799381106623406970942660443448750055713403407285862234786371977346341081842727681320972081523266122704900380762802140752053968187733352533293807850744016806485982957058816647724701006007664528876108972974919166557655515269943323028834381162430623688466628237615294183583846693772184463052395036106257159569064841388873575796023687143047780932180180005421540335717425778703196444853284037090367152228296196602845793086833664997666452110125412289769722767380313931679055077633272988119399933663024910370874498627859425994492597995155820872933695000181154547354887137583978860810550078597878519169509018913531097717371887307196448519079936899010981840813493089469610431464259901331681821984949158238704407598431062911983304100897808690342353719021769886453413800692705207862722728997008426621342673483484151862123667992692628717022851109240896458393764567268303779330441387206051614987016854781997776434020505119046258617161079550895450733655256166210310184545799406707047405565824842617548106946786296549578195462268613739325787658921064123959051999785324977971872025654064628903693218828829027145330464238372877002581098175056435865534379374363585640290596676041487336366304876289965437793249701170359405490160779477244428495288683342389477347462721723932328035448800818064315494284746059293702237515151573098354338181648611071728451938861629719279418360944464958241204550934901175648123208186245176007288845328859709608691676075863923343902138267932052243666723290302989440991095210189216123085421521031803713764919690242358196209839654987319374276501514686207611041475603448797802804920003662501298568764782617666396684098200503611637078787953043641020369625719880714095810280817934270142171643232230119874932776737308568860579354994588543104636367921845627473880664381194900549796137806576723670427380570638632896505598754941824973196504434867431976233078083297286426655662787439661613555357410216437808305529512386737591933223806365587550264069241970413389165986925288282214291996210400494283656317520465548445071602220755227055225645276890968970723030342493802217194305984460028099324424551806439420512950550902990423741752058139845784543534452420996747637369057305945312913421753523983748725789166010241688936501063625931247463136317767625484825272517063848314271252511141561592729988356059424479106529993795147386190290731200555156730704291666333164684377203849723735139848475825522715106337914779771736667732229581764762097561755138760720929946171927809566939427920674835300290449541647505396676122233531208445357497265808475899955395351899143329491572688774943032636275741993197935994639317760194953433839844164689716953685910994860678427613493574550368708443604579222150010333155710260460074883589667711133063746173409727860974553631068006926616801781580712823732188508231337659925717416112178829017852774234321841854548594624797081127976112764659264276408665714351471645166553395945215139552796793140090058091906682655656287146966321371593998774550400812459305488240460295129099431145267928390431340512540228644538901537076555172436325969065172565539457026087181076244205069018286494458376893930475963327437599562701087360465601537152961382507652675033141043295941731260892241791955106229387147362674713856595643742147739206179919786332517110309436138137034963341609299966101411691220264810909778539468877182391472787280994004923643887992724874132333697570655899243761633048988157087195742487809816762705950816230181379827019387936938536380738238700254302660254686852559276318936276047090704449209332261430399900068201239556839346491070157285552994458455107006092453877274310076266222657676499761099280055725317550758857126518304503091186456964859879735362841726448819932938487137937824527209371391925969968098387605859767566986762695409567263451032533246536369681450706165424594261664048833652765438994697973722151303736860669192434042927926231048880707120287545144940021033714203205805265787799086783941662071209753012176476220343596390931760057054292231389881965475055487273634783606035185470967528365996815085504009653008160327629952341439439338764823656150380729975444278725804011901736167998650544720163759709150048862236761960780334760193013926668127674527885447150163519666565583898547237072666852252486554463762607487584558114781578325701710659974747236784800620131303280085103498559587735597391786649159542198547897903040510014846546292366263389151842394917852260053983674414043251958340433840081682369484767720984019231364310112221894291354641656014816730223164249731616688773702167053768671574294274289710960934750477241283667648101290479997180198357254199047444658842555835375802753553459598832340696959445868151078752113206266395274072377380699162582838361157160925939979331721511059600585586376862765376919661476542445294236115486219995748434467803513894042466265181577798276777350996500428076330302681062644872107194951131177052233932783764376315005946875870736610388962617868786125531459934824465923886575767888173805009103057258997971934152578630017346254553631657184556091274616484695215306641330886517268180040421522028916946903815745588623071934013794724333688604275046118861442634643690132902443586232268934541978238831183291056131050144970357577080606966942000962974409219319236980999615106472199260552956546662221017184426846372599083743872942653941937643034411354849166905753345516937948883206696476011164925490734197812826749324708087130651490249497844179708800551648832150645048087075919025552980941128682560174802853356683691662841818299984869584651154446485995202665906066871183298618411491585719983154813177662588015996159548895311775045949555111367209425507175312705351760203548021682868526738363038645283125068105976163231732966428693899673005370706123295408675909017960691589477773029267028006175016878152924474651509036388738886524561654339469502528017693238153823749032668705630400059462899306213960723855248504346943969677280346573548923577288504436041596097795195768476998262795083369408149904294974873630762825399293121338039622275367770304451258296159487469403198412603369892620004630412225856420412715545297187807031680589731753465810216940775107356448782277355501383344335948085952620551077928263574272944953553714806451394998534732542824898746969424904401265797170937347581144635565728337772889204380633325202700818907617891497357911324446928028104669028825878186286471809345619582035818745196255496405524580192176390024622601658923584145960839043302129611526500805771802816599658394348954601848197701720325223699043519890433459438209449686960128648665109311087851366302634168479760700001644441669714182115726088191346641590136112223075761685362918681948784553803414308170919202958094536909162351295119661414792263116700797631957041170317691596768702078737878231143074554693728275995911804364021867301978601321488964193765298906035770433080118296983384787039129674425926104900289469675981802014256349043905009824144965344695366777615607382263264390222741350021160206316503605687814828665229134772227677902688697921050600281923349276991793971769637366998414871857222286115818850879698661878830583107292952520681264876723920782831810207581168020280592567906144005035416596327031744017044107204958204158966502749430091958055416363063913395459104503986061390443396523079669137354008827593350723398141061189654378439354392163957329568710370974563870626881805758621977179727339100504993418526159129328533363602079157077113509355176319350661513162518930061223106484033046566798821482592105951649413977931542772834338453458582235902172303701958653137409889289779053039336772214239381941986514102852623587123346866168288103372918813119445805959465038099708952595449523941307250020976817011477890981992963456092897159358652302142548583829343987419902572981568508015287612255647229345055025939284385847603981734844190637545892868727883939100832152747539062497709984145038797206369680466810268116244418945187325206507125707721512102285711744172515514077951825648714382396232439960656903934853519510109058889430712242335767954468743232827027995475756390541783449106714724622746909177489424809812717973245004027438532633558028686854752030865163642364938993389982362509375158840116067988309792928766813208360556001645898628578776714829366455195298829717910906643835298852586014781632270157463630656055735063519457703997788068445084932883777853655200763121047813901740269563528341739238778881768589623466289451327312546668902424649739120196106155807560746878704359191615091937896957863786413461033316661495968835462398032249092540670025780132493934077632039932550794752938840977564175610058257289584045677853311149373232669286107483098437295559437482863851380777320968910901156993362534960711496049919750498407307441682755193187809348138894713417671843636603119114783872791719045530928050116158226475567321019429428577348965849405333155915449588807262906836826309500351289639062079564951351341510582696870569541200071830853867081894467495394980040926987602482193595995898224103001763028184056626553067311281565368241360872426607888469585602925856463914285810620714056754138853324749181447800612816184489610726593034552633954187911678123049191774839179180215226535339997642382814400017612507282525896494034703976958358112394735177516967058737346258143359582878472057582165992775159223357778065284636855151336751059292108907918348560082503930548842622654219917087462467914168767377867578497325245971880677351203636116396001280368880317826977084365649839054159488365846333545077106670379534942206452258017039280653724235875377557379935534795328819770367392912926835619377220115735984464039912918926412439115347551819820529040911035849963554936559061956703266528120660168302304677552094208675609728920795810131990234658930591523478345654508306887046056078308498951870901143898180420078404712054520380986668435148612437464291020720178025963573059592739152005707946563776810560226649190732767277622216705520110676185585584853857407927003417871206922648291782602743284874064344599587924838407798632439219633507489021891554529852037056063078175931114347366283172897105534740483104896781349408197979932892941525040552836648679172353135414406487799301276218405299723944049272821872675512977049823674001687077293743276303776938869456075391688268937566994503176392822459283396371963906391886106434640155478170233647167375883533760847713688957407782799771947173163130277995058724722734534526584033410530048344593230284794547851447497512596292294752959526086902367799564727803854899561301496321704517007942404224859185171070958710056427945689923148703969719995615969377011356440067911204093326307928067866399473358261915974446169163286674529953576436961347655399107472552739690658298897575009328917546916939421702644212666666163149985912936642952549697210882395873953143084389538314567349950458322373075854757885378161579915420668431158985048528552564701688831677785342280199053383713221769714888856811307414586804518667433621258211477538854440077154418040457706437660354371372220263424833971869520977196460793915902021214778336681339363644065886792301191865387233955025674990340115596659319462281681528071312434221578783474479913920841006466648627255232884090096284817715276979435944792132827677429335069118022953121056601693277142834242461366023981878683658182580865035175782603301957618492476387040118244683546473479271347082566402752224108342067041413703476016842116364121825521990956707133876662452901439936566729571881379084086291626661040609106325058708592774987812640379141634592827770102801409908491710078885918231268262926590404328901966306918725517020303223660970669018117253968282191137260125379583812920075155982924436672522369393216583688720994779535669895353603832723156567908490990617741831338323536303840232374257062579126989619673075610641677852523876090872062200502351815990731628355052635395738689481804995820546053501428188785213356832493664300169057301015431729730863808312494796502087086816637777128503540524486513532696696068662890462507717052467614624468670504042445225515894356304903727218876854438521263566511083021205534417333537481746321157966922770870619204303789890712989563942903920232164836960599663255909501526074014769317232455460715318607588176212942091106653788613754889995241183521936049350503780238143234967540522403091234380450451938298510142174968053710194663317531093685521329316508927091873167762369159019986421826519574355359686968595657968885711608365162707043663453099182885448537517131035393003885489713520075720738662544822685909078261071266413614255152897755953231297153751892025532287595433766520087428910879665039238993574263145116951409763994769382256380764924087693697102108111673232885814522283489853380114498682203444618425215065769740716968287459436117373005107962981602808280439313263074344774355541027177167951159649452481411764128043116370970179900513204939689875807233173254526629903501656376102787652663018142753273292543289799405773739696885484687962275213059890117099017334303489391831485811979424927254045867972015699768957743163234543183683709926434697833510032223856210756343878077191401812148956689928536470390655516962287427908944501909315928065376503007002634687962984662066746599163253987165987184812209201478162784287864676537299944872419322213408441678194181443516505172297432074047459468343157056187249968988704613423218442011735356500207610456255541241409254045228297552814082741591827525940486790951178882626607194804966123605424532605506461892726385165540980500941553509012183379783123772713774268639035566967034372337021129675210763353395309850241489155860927126301766930423706721323007754520456642547187744653992719567576298483041976786463376766676855261215838620329129340572169127539103858858573025438016189428598081162637375630916231634954566069555316819266897786893586683613665828261326837702757553527978282701577846659170501494411903752530474141930315302783675381426974724050640980577583977169436681919863529789307416844901113115746175303033943744564334428472506299447099826545378865295158038549459102510294515569289374753956580445262326389578158802272492298092322131446397618071953844791396611546072088507005429753452628065670544978232399361957359978450590039844279781840009657027655431112387718909993485824281763666161868842163339794223053297395887331473521663244104921913523132071716074899995028950328393487241040079466983676412609028100879521256536974603159314228384035774349687499000632899265630050389536953627964726911001480900426839822737060265808142598848968683727405303609184561559623455338461686628094150763629517058907530417827960067405327312579701896428615092154637968816054567462609316997294695291649260825610195096604287808331705720357204000183875426129094493687163530670331031776786796891997773689359622219260434103445121693505863772517396538868876295404196867791801122315697521055217558761639935370449610266634333917457901796708480569749676432693626970961808693412113369984626326273136503857181288125531191073359975952961797363627051123720091337211274516532301368519804389186074482476363456022577749864544445271819838578789484979597157131542150429751862404634968803553100092807110803108706236233194005556671359020927428278916582200565354274956822961657856435233303433183808717552219874935994252654448819334019962542002620922952664568165419245213712183543978954141158505330778603145308301247274170151577065260204721045409435904365862689867488779888553858190007854681508263375347383658890563982561895881783143326536533176621388126462384201035951872369140098978029851606056638019676832709726060612315817728856898934677971936579437355648015102459057287200754716774299003494739757546843509868088284739551543974977233119674996040162790738161411733517149089159962956311480256001643558293034189844636441550641496031763178676719426223457741410563810301863118695635293109596760680855884051213491388436649793825420176511662659839577835931269242021907557773603427409068929198473946034607142243555429478580856484969812606224629523357681206321858834291326333927377068579480074062337870725643491552543559158371497881276616123564754673838110367266496056597072672609726694127696529733326977030470975600443753671412413592269258883957778993021521741299450184002397379993343227079108890580827889394002713251264954814785738927391796456013368263203341396986020976090295793930385846242683950072511411057608618827036379537178647346582622817893304498694688134387542729416975971032118481618528398244571055695164547176150579876878044531895920887693741643139053984306738704274159623342204151888289065048372603607205094194617282808034848935550664157864741635564433821693807466553149290123774233833664011390650893962083841060181861902265933138667734200965613279178356689576066592500420350980797184337681789628399348481348821049642631558567108298216692231227606141204121435116234403795657537807315282755788223559393977437623341686967726291028538343040041121948773333080809670870906726855495583305490642126964245035645185328236815077000716348687426142040823149745424435216922450543522131936871890858945193269163755617414242505800891254667352680525122374189249781797827672821883638457076436866943514013685741572784477350563059703384753176582383270684968132070534460843519624071455321075958273995722317244705622311090868042763788611468000147386710494048807142987246975751081403865868804466458031689055075800409249523230698251076592702027591592192748927976037780302068043131964533554905285648492751143485595043073877221843303539941379245105320248818507692715681690733474469337110797820985534102962574368287315518908774067747619269246356774827903485960142360562997372710889085312201454054120923974889081938957158508425388480627618569853015284946029372084732401004985368739151006619145115556233626075260106407977305332051714339386747007073146642191982346445076838011547398399565985475915140119279633421080810260648693659333382572290312210230616351590354957839712354672009473544876787348319460748280126407459559286912608853641018639347774027540993653745972575066962648736807824593287743489187876495534086740725531203231915533056723531650234911083220231913562878879873093947886066140413621179945619801335745149220593248870505236622284980059302780360788882966389692227931873682637238387258083994182164013418945901142371272427726446697366870604326333461782183683547023437256777218252458454546592661387699008862019244757690360190820477443966006850566728771279459903836321124903597577032406105578516971656507989918913369235345998227679043472970540068750433090291582720641870146892492313471719976511995173464634969927330715495646599117310287795611219853707615820431394874090658179295179741203660739000569966443706856742672408561976750271767815705439831074070297197886722984092373413518209551022512680719138863760177430254762888205867363191753688089283823315512067227937941570826093983890985180769415922595206649176016731442756662687504779819452195299101048157232662802169802048349858603998205667745371560175901459253842086614124703399563197391831634036555444855972872642636840812930638369833291905556561587524149574550828592351792032218110926263447181436336550122229315667719315480929797517325166213786238886317129584425709218421511304653405684893643340132082587365276737579948513827760656022371061523435232608695561593171638010513789670145368069327007171723929731562961964768775453447498533298419752237982549823411592053587026202839434271519276962292146263083378941631312361018918710025815069306638996605015994281485595023410972226695502991217880804108114327074944870424530042137995056006161881932205449892557610528953416517136337457660919851371281115584545648338013260657584853502554927671371303828700940849520136199036139001141879995019639470573850387093684644142472853929951154272675958429354029305162115883496985812247577556036610218870670400718828294549332362598333684820744396877842355406680516287277254760264397846904247825134042875205978575509297620026315108459454726882285797595215539538667826395505923218504506983332613208899717732092247287516392535654967054030899186845524053555893373113008345806218028272307578844593071214278076318645751344470630832010786895775649051155721564691014075783967849797393276985482816401886585641494320543983831432721691271475686652930393980139134814303205985667600695274650181587634798429424790819036028851547727745238439820858220690711003048208113356573795110787430171079355994821695982874373962855901984293997099474896494795818143176736926928721463883262264494473778437580772020652829701112376825858122472254712010513785472848262623825604746628781115717621913160929827398197226978726107941273385324651923173471025297657479912961833075603020847613723547562235799146969257479194100092855948248248450234503007254877797013975856998080030249178785518556576074164902068707856608299560055213287227682567290644777246419950974594895491442650504965766325542689068927190738689754065784785395265334354959426881997440116365983642048403760899711586695735483461166029567879645728010596047528892363786996744051837424913085731887976843692455586822387772243501070695687424093246859488218570092102379047808792950042445668770440296046067861304477763274226967317977723038729871862790825960574201930059311803260962822568979853867126091880601107783315387047972251743526065076851005233504967549292677307956807479721772258167340302039610885185557102238186635491606021574739978201772338338141738360245730629922092433617675087721312724502209794134536129861074544987613556045438074019033750864279683018083732815028161640139189373388644640454292862135299233465747565940290901375884228345868561429561758340455880261751816917203454614616788673902856545505901291288250405170943795631916457993022452112346902331314143296363945124397412168539365235817088963881533282569433050463825815301044720880664217101606000423763983813206546029942921450800714151754346808080912754358149961957403360075675180167592742146762723033190358992483199811557269693250199967024185668618107790596082610386486707621652662829012239714334674256217129103625205388225657425050137685379574172698795000363684139111483656188412519121230992398842870689080390814542812679464168458303825984450714573922770515380255075856046700770855162268582104904598344582518236381267598870029911030230272243966605950183173431167528230627559147328273717644748941034868242976705436516461014589659339767885729564707487019100861360803270258917488564931665956423578640201154389066648014207451906694479499380428450629907714974172986496154813337799861062975168548858745369728992704194287648767995173415317550674603890559026761933639403090369662071283805347549469287045834623598051127168618366710721720430350271266370713135863319868952140817995803450346767297461986229114497682878416661422697638257261777969744353790161277404145270127535359729714864448894111220282737539932417813787163930935408882636948680238849305551091115602992728482904669790946637524788303743057535203225867819686296598315431468694444512827736766323266972658711807469133783741469601529891863135375164717166360306995404812791417912382808549377030551572179837168747016883417297343828801175442208035559337412604160737013223005429390005871750579813575352128366074320422323105163090698189641077602333651076880448993849725732775456997248765760764802934925085385865216291785820942944349784522779934526002677013268838442645253559981888236109646726189677607111938489240314252409705322153765216389678658954251700421888611890864853830279494744646210991172258896877948550638208088701121987708857751475691206678629019759482832717381452951529665708779096240510200521130158244045993910948521148320420995475569483586908168080628154066214302421618717336649369850382647298543555049417295176012249317580342457496739315565932401221711545628436625945113562338355688997059872793840995822183136990823792325530863291059546588496218109387558319656923312776598968694798646626443516201853895530522356787868842468701857305204239923262184243094854693470459050950711026942646523869491504732513471737233924451912902165351300694994054590238057050540033394906097751261644447821154661322672450150173470529293189590407910108325081471998153085594305949101934852333183055620343153417127747580264884188283599979001544228637587055777295515126246319804439417180094824353658463641672631469583715971683793611865963331259957779119017711234298856490719942531231201739097506420864641238740122744075243639049039742277441188850916182491426012124201453975295737900940498636490068178850363738068500392953127660832481596428713887523641957142620987133904420844077072192871640945564095340097011743342148990004219367974029114040864784528061264868922552682077393125856768465874902435898479733591348479106320523671601219674365377319864369411722769716674975620463431134990336886438592624938919239898922243793531467558202048174469794332693088075278477427061109530962596373486778556018885016656316067814052603788258563703390713658403172998493551872086139972459959097401002956765336129932458861005972358582972566772691418270607471084368356744511741409500039419725515756681980906485567912232769788129621732077698902718465358025362967442869536759012852848227130492029927814642320431266096074458432804944114700155025380186219427053654344808395893064038139636224916035347175488721383645655756528075694159047390763682484824255353983735960851946075020057209784988619924782510786768065464556649290666745711619915995931280906497530720279435678691468018414222742683511151847544926738670068542665354522575732060060103543290360387945181018062628934160759574681064445466294879794883589420895994055277997352980285165607673879283413152032855360749920239671054309837101119732293872168511716059616110666863707303717145055278249537438142319007673388223891966232087515753436197541443488528971719219912820000656258472357400954688092646640375445587943629531516189166238141836033350094150295297550516413895666769477998979073954888640024548846856786347112836330097900983184264411437463633797891236111222652935015967461968699243630957322956931301599806585067706419116896073274473378394030738861193044696795721363521533974129092570356692549171649949815692464379191260257999158560007175144816652891363188704199109446032035834040472120984480511550911413760327849545618731686684931233103926594644430039274089204413340996501145067653832840858247982129248781804318022510339918751471012072931684349612797840342991595070343518663611654907732199167836211206424248799750251247811923169475484336574771630076918615469348207753226916609039844648015709816830385225511957553144939802987937869171197064024906739266518763234241977108119096848406919561096921603222671407070945003698604244918433602831804666874770391242248591946073340336188282337175886583337059432727943978253184275609293162507017464918052541530886866965245844768489043366030681351288103266413129268367402428577284005033698093804589078526451197231212112022111121346926803457838773347583994084872469817526568978911681461286866466331907290508827454762125879866550877380972955586538854993851351461569743462170764577336232402265845310831675964243670906401922434264511878041993394485282061623945330376670181404912818857098521337968839485403935503839081623771513227800228963852107380348184099958990929309197668109027181498655175178905205195755362423904203300335352962234389261991843018173153421084372157921800397066820944286873648685859777006143559164540953197026135649177224547218525344690745702246509499446522728686864265419670035425109114955995609878472049773523511984620142536860809785447820589187835698298734348852911171992660415407886634444854587311106261109294362933688631674065232774665414695289465220025207032691852195856741740971195392159389256081944954200329715845746477693549616600164218190923500667592701221285688170222982215060863300223381578699241498203215233045097390821841763417310334597103365367426136573983585318148803500686852428496893267126534576255310251970543313154210411810954215925009214990274102722528320606202278823259652510941411669010932195961868742720490408047675560895719675147152020347517986838853409713286939963753183984993442282780081471278277679318465725999581020090292429527122673218837803002861594578544747991286554835481325206961833713545710479052821530006378211728862959804372517449986644279332504886122216386620454744723610337971179067694224505343084080785894053357282979600886218601227296777935428143149683384208342541882791835911661016187193736732864861232342557920995728746540216950071707059865792493058037075975776008899170490042906060345051813811093167158406434383720600706968251404291541299711270388320975471699476857767957009657109727318954837192794036468744031029058684931444555595262970387300157542174412450414377186110185321840754147908104480383612162909293548095854507719607887450314818085395129482775558797088995660540048263492766618595980432742498418566989515711601601372059139714203526812167468670025438907528056306541746256005771749636994570316133732244360905775399219979009220992034508301553396828928846003797517546152833879321256799100229433270216853698855989634796712883346872650352846930993130413053856762761874791828552377196655137256714249020855026077488809283175381358183546836110116288555841258784669443185116007046842026865855281322746647111350003486129445690539313341991066592030404550133966827187313021207730800393651697442198571090489187832864868837385043224672753375620111540084596286814846917470925549753136805338999309863192481101012316476908027372687005949210640001194985392349760629638767391046405429323513019200368312660008842068776330992937317326377755322170552025462725079223495895906745110484556998932454842361237454147855169456917718706298815467400775939927627522683188772537064690947886343991987167696420916113795420592718767468285762748609816810777684806462961275278691446191621652062246166746046150195871677304493348665751972455027957913739847190038182337956795377926275717972119573676735518485625104083445070941628137600435789419620036348076617931960512099878490164379245036429555732219982436271952158435614785294747200417124183462615007267742013733708989866187774008997129277836627136752663367162983596320009166033222494860155853538940500045185292653298645873766513870113394509204592772250878641853939961257060378471539687123014059940479954651615250246232369642642471307846563799489167524957602838378442138941434207400176212490179981700117135449971645483727384998295584407618088557371465768422589709146134857508379257981885914335552318912085985261621025074695679251408847903702699805916876676336513289163205975658141242250491990858809471541344665138110244672180346538333148278894264575163741929385305112588346199568644396092368332276934296846006720734597240349781707278170656194885707291349383649016555521163660688151414859306508816121789397528029650255648293760890243787937165137901202615734991939416797674280092633124531487522662233078233690280251897707795901873248597477606368673525698328091761077715892024615303001651284470504541790682336614809835936316461374897234510151375208471014781909425180662185836129174702416327807771031637280730765686946247136762852933253130568552651324508594219963726352023743468545195937335587638188594059701256187843511572121428768698569201773565158221862753099268458237391765552618446118782264464900066330175113341777012352809413854272405968998458405176454653704572530095509416402755045343686286655073440396953707906651805662059435250846374403790147253993417445626089890716874974297651536168330023205731327793250904567018379226781515957186298003908181875667313533235555411058128729290557816578056837035209633806931542053088445248005018282502259890976332816415731570522490775289534715145753155986284457942770420557569108520562622987223474308172554565271628174471888968929191068913258361624429692442932791820735026812847179723338801241988118201175000840581737654997345458246044327917823881208692920747695156627071012893602730659070995782044145928319525555494751152569885849011523007142657963830797669893385623994922134951845644053907424834971168893018061589308490899062315384362500643427549830353538314858643812255238535242113000344539095867517165647001992433420157903425829238682026324390514570389213535093860787083413650015229605497646811608308928702495411499103748494557974754012975318976501264780883750530609495439008421804368242335777249629555881305783778836471623441099089680096516770849957501619045604784754215722047759127711913254004760714856013312083162800527520782073626689094389105359507319214863775166402150445301085280023061304481345469610413806195897599177296713185633898706617200369401150382858887884255497525230024773843117095871109592499842249272579613943226616423142368007325377264189137770014905477787280261572684577614639833395401530560354228894443628239278195403447270628367182610721624798753892231296245842559413651440300433625350380055219305436609659596688801937385610089296050015488877632709231336570858682374326778078641941140786835106713862441466389302930929550125270491499563745663571181002478058604205166465486165219553976924030595877919761723402700259916585262506959775175229981045989746515894193731044303978275158344721324273156956670581921562741804485642345963094373517784559625666856288488023517683852029436184419028489528434347850797963619052840019286228362928048498092743997663174864253519721588839602211999707791452888497887680567492610739143228728130188226608229850423654057753483621427532797450757852582583061812067802202095337094786237141234617355393488134932654837276946023305920378722390182881289457987449482420517811779741836086813721141407066209776151828481479232567886903334312668358095778670642096082524063048883339633777627920772248846406753512581181937823320712060920849706193829426939034526497317556191191229180618836625264482616531122146444096604272677005480765104439627369572798435467860850000267543968012493239619683636026943975564996364598484916430568259141464859272382026221218373011825236530093881417958895642651072493502453439225481137370693385961902986036723827563937673011482925224679751646907366385288191602261345992889790399440800468027579441630560481328799486531677298679721788239351221315219579244337306652714805110434079006434370646882728829202469734941747194876876268079898555096357048861156316369499345834465428155276210704120356847578596608922325418905599803823926863890637087015263761864511926898473932668286252782749631612669250706391646892535128284426437204900119487740205209111551174975460797909365104126940583183981328718276909020424666476890025938377374125505333058137249204434186049214400673624328377146588637430566724820935844175742560530032937740408090056684108960181090932480257095122429155146942017663970486493498164387528102259090899498463587637958587855860561225192854844799671254894541722561994995448287710382069754681868376242753919746706389848447016391452831138522235457219724951899995453746877273250824144577502227341096420296674579705273896262883162044659850810133651750364259992491253135943458507657682759807603246706148262667037846938319931086546533353882721429413625301255209678864689379739980511283179838401957523540666766629975652050977062220972392634262954746947738562173312660075570654786855696194872146410458134895047807656270766242402660676812682902965996670644132972126428811435873004474877776645167637365081274373005368119668437608847927953701071702723645529556438396245904708636950773818723197030624306658325587692718522790716650876518305912326942889147524266655013565129564595356866302596258134371945282015152934500081950170213439239958434555257662764024035789721616844214372532483423455087423522058670336819214862230757466429725405182691453504693410814910190568599976761215984034673280450566990246856875654371400907653067500349901043462067060841465561474057005968752894880132868341607499305059512341501468475153662172932195320895107569633096803289126031643464053966436052490150959352486875812842886831764840761208910397995250702600031397993694758564243336487806722898139821354122093425435413604496612566541262451705647993698391540848174534245436821194087369654644065790031382491889295550369344639094211376116374316869790939675476930795340752265846716681586576843853655592477329177664286805392148736491353127643640557706234680446422088846811708766445464726495767132149394295970297258078218550617756149690464097802947950407855129027171690585727209705132423868654573712097328198410743418981219391957659170603031999849785073892733262107494808251832807756120996290038542253851361709767217833049006487256351848090066179820450224297578392676511409470329649226083558037878677395212593939479611668679483469723439066585342010581146232832351377322466251158083154007460354573877813211948053682352927064004112547130572976677066687021000909119959352932775311074352858480970182299979293790574676149087807026500995188998663789204046030831173205651480515897189692092255029973074741232045489301739913115114155004469727527674502029619366038957319654966922724552208203133744306452596920702274640683437428074927391006121344102129992517573832477388432836718886599232112208848639365195655181981144965518902572680327431023562143035768685364547314265845007148041900248533150300234886911819137383639857887890598998553682240774586085351557565729118573450405871076412497694351026819830755344764220168046769480638394778701534332789800722167805022861907625879271049093163092456795370133916937504464829124191969176833003265719468866315001098809950465589116027689733855448573939607852270815583396049660778813952051155548067677873545122868538415730408704966071946905901564621808512788958948121567256091247134888280905945285019748350405933805204436841350009266930753932576516072278354424848366910292379521854345116125995008098855228061143523323319996172007394692833044933402185801375816992982645422667975090216271878601382254206591386489969695192642045692312199274032215674379649608100272423043672714682975264565692452012345783976225550859948082766392572258610454422551664933019760804622910537536769685567260367707012344752397277902190619927341606550315971371473916502922052535303922722443031526956040466630077320179219946100997138071002731616104719128455390025563767533584471194419211169255908310802811491776615816270015174864150248743344614975663585414616643947607645339518537367238623533861919590056118612082845298985175805506188447121434766109834806064808832686024823459157329501903945508439779984213532435924921800700156780665435552396445966188013969570196019833938956502074574390836267464680464919644624226829667029112467781131573446916428823581821901769206711463339846114277385312605874284192024833469639465635494861552721986696898555543138448576796244566794118848930970366806615871540791826482962658878243677493487310727850466450061786462608613298138202896374704422540293852907336274031892196389994766584985638423390437632154868951147138800584337990370020494174970301616967225462245932886491060029860793390468362775733651349985973594942306648031410771541425475339210681135054856248485213142844501282181035914514833289505078458800752513670370189249939885243990095222319621031432129316716528238650384399285165914761079256426799741572877844152050121358153470049633628649083353061441313155820981824985837896197621213483192720008687595457459742898148878639353750776811561067002382935727827232359149720111898246569329865460288444856994715361772395456922782561119159137818738918943633774056933870221423643055013492337893317051576236961461386123971527102841781839995476041881358949252696825495241405195668653525890063434800353411656733971241538088451075241575194200067978893086643677389106833925491420142771728136231785789673277112373906149804979922537064750979640711897808607285130981394784613180241531256350802368814198701329429017535709394101734241067104289387662485907462165638440415064235973107144611352564820450383769812687403258517777612872536993512753260316284822237750949741191590335332638187828278033960239730317532840253672614472637219789713104633962848870085693436828194564220332513006624431586644092830444289673643779900210791878177137852368605068516339616821850079845765275584170507923892437779813955808248948360033721084600172373028432483379108466373970293716965411417662180899653085217750119189003133625337103437069868868582556903593719100635623384987800319294827040205580373104755881418429057695491816760125608496059517237827486333261368953254571093470935717547517310353646261467980939903277844796449706787715758961903618935813202996478336120956553646515398081450199026419082419088732268929637917583844758581233855158814549645933995418025022096823427409033623798523734058626628169285625862924644254594652942956647179519649499880181578288283240966304750004217664173794076959123488808468892709545019617133039633603711612196242479974642160757633156196538953837905107231024523319821248553254753828241745757697007821510159751357127779394429713257175168608794961099494624769519886820667444840696878770876223087699657791352592292064330342234085843967615498756926468637330810785492774680898324621787021809941431921537689405437661011857560264312417522409093886654194892000669797535041544372520151158946103589315356370932633933316378142107393560402643933215620026571005973519226627951543183717949294403355300593684724912047091374870267410134575278514567279927492002342996789322910384451770301040960575659874558391598008998382959498679933518502143393686163017627707940479363189001052422422890482441912392351816380414787074535576638165456672407623834997827151013738365125401584317648467977497661929917814148854220961033444967656543440454086924917135657316830802102152207548009516712944204014788390879821529384550146286639397199632917567357135921317285257555411558781731253581935637504749320048899419676417217692890975775527283586415830508087008553266872554257818600133625944326262894473695188277266188312172456299553009200685091997922070973933167290993687772804464981575152110933814970253137128423132861538151439528325311804231599846646947034065186496058464333937227124662745992231476456902203625925768299945940768548492931471400182517608235783991055442260230615069407960461928277559620553386922663732198922116867591220153319884152250214955764739218924218362726622887533435827917558572369593826990386632141616739291650546126002528882562695541794518441411967359900413307162274732678208860402609545093883654872927571870095698445006997541429902296142571274707056790731713104386430766323046310394169690302180717295645058358993892240972933758723847961699480874388010988083450607788182786532197089656811179852088593588238469982279970312501469178399447313521021565871946985772368980091801829826980538900055848170959865413816150479792705176990513290201451874264049781779079468468385282413184626002706424697510512749988744865220021510349270500737063425462350739226609789193189802630180077041894283612107156656025360597090581404475910973422641583648460807985135096695193289209773150559661098006136332428940795409970895584423627264466130812354393534550152856587661325172471985982118740145605416536730961826788825063420400286979369760930815709093893799063379657663019073794514365256210940125719514441259096039393908825128460128636692225784160055534714215998385565394971806735226346103934477178350289198323892492755739207704107831159140479194211801081125387146941542459139461659871496314245555654822581198308495626655060163711819651112985391013812473172262499498764582865679105395999465870207658646724638201331656282836216569505241390105164933605651734464341528932703391546539206713541312455780742101927775026927751902200119716983377737992216107695730209217853277957646098676017951887928313122376906181073226336891255070707320740906596292838118396609944744483669089594384628634112890854044463049745197397341858122315755913690730627156538371902655585396450539402756594586506263495448546368164623969360249895667209361382025563579607554925158840233853774805434052563060572558516266992940849495005805258825001831911259276806888689792934043944579044839984797906792628763897346389287302672174377865905978096784247836163340435614724329177241512633340519098519164200178363522425092454985949487401547072323144671916642000768162002469640204874394120335944555689583895633354119540325258176343660980704033010719759531971407112681422054948909918472096924501800180830326219594708035676011729750787487564917646687200297858390765483728096472927521836774310817047436174371228662580242932489070852636424051583451338632367313648733012914891185143200556810349270831334978401789179476456765501926969249077827884750927425885782100578505303365043078099626535058769874352873984749120211867142045820235921487653221734978029292616083393235222758253008607383045811239474868468611983139110714769115593103073353989164367577614645498909616318154862411170549676533228730512232914907143031890773851603096995029198676129849755107327862101540283889989825630957334248322262024503285549533643904045859896460038887832309910662409650376781322346385757332798217898850315555711963143514061981047717647301616552992169315183669936286449361312666030124250474752294075418069461269258958904196906037466939034215173022674643013737437689872612560572351286395244165813601122822612069710852984631124255621283854305804275417061577931651537956611436959330906167471939007055267035071498793057967614377386878484658759764834737921738167019289247232130544275495276449600454240994144277688241451457788511426210720029503623721655149261607885067084036308039602498076801969725439008567782751793299964571914527496650300213064114616859232767981045557852884401298093658677992259874274434179341502280866795931225741810591128809224027870267783531647707188722628123500791049669277245404084894204090003558918052596171432415029323759016183641945952897323564479972996412146708921085771252724637528427075739971671538490641669899747376063637265388060297346659700670913663591596130457395144890248176195749492598694879351516579747589589673382267947983971532216541219062640422294578707265567757147591582672162724195249642783702365510211435977487360935127308113226687335180014617500266697393410120390068753221028627051270628366885746667080543771514577211312704534396223957310607771164201957701490084654495625054007189318459466021624173082738522942110505002593083643048666330913205869494943773193539586367872925482506721961856385820782739106897106414553208762607512534322227352437617219678998412629516630849734229224849268566130857298358735533230359520290520864973873911878689470477907340767891513042140693193783650876620975799940551151130321730985192501617090935848430321708410281872860504219920861502162835915504829846729101264887913050217009825995753414597708745124781880322749612694493411190602931946397341375085068160480113547038109008279687925887972060825428120763359825606005370227039321080505238261537185486920398546990478757960493058280916617671623685869899995838663195960140119879041925478249355844608241482665301690174057124251767300616854385282725789889705341219349696609615404486024247081291322483927316747740300291743854043005235645028804120140101468148325674550969850390027585549756299267609974601007057730417281021569140438075778664803799889026092058502135559257827107203289507754257362708711837235082618910168764056566165388506345990261817955728845462053830622363415953849167426414342613011635233629623393943512651778418324267892463323270706189041741189097238361234439517001630280542075395056683186098725611817928163486415964784814228080870741556373568924071498990344414047643502143605000152495821290244139335855186388379221994293943091658007447280894058236748034442919103671487950638931253074296477225642528020857302925960459443720345617583257736718042225083394707058765413368764220859996566576722930111689048331239366542614249019508361865620738618125844185992507203426606203695173585669201272257390162057540165440549875346392743198598046162376604766304214011004614960793065795027955863610491172809709136082475905434002688747450733263590041068252370414566926070308796786790022728846291854937447849157295674476648665880258897169316048071612527645453698000401876136508652785674324003242763000112899937416915556575567697772507922058436980705439814971113262235277796820556329374003279951801327560492130628405706317107838875335116292221878753247477967201533901043237937308590357363975392158885958304144646324330198159216422809410435251549657341045977906479627011962785551458818708897801214794451988383527965973207244864506119274894420214625334996669378342190759870960305922028565183358424612681232572064964507417079188096357634313020903833108512552623302704890757409400745663911635138846164081570344086627583264842379177946184721728035344144347958166771979053963637870211275384491466944092774793963012318188373195951173616184774395474546122557885996699558552167138347120573494925084323669001847636623275122483827847920598545417044648771649109596969117951163243967052311622068608937502362152704366641286608988059335742647407514171611388853502100124276259878608449594493659475358663676102464877536831521890894873702048662957879960748334169341595600106772239889246188898640091779508043160248596459299067971564948966893786693377703123194756933197654356757969350402773089609221411614164989988176934242953381791605169773962341143128221569271948851577848240786313897496017737102745231468862920623870501204500574105955892086100887839599718090304088306802087279329677499906928599723754056884729139671481529994586971780534252586342388249566810401026943078843353956263721854373437133487284335668255514876936347785218381444381548271520813256387183246455973672610916865331164165181036028868164022492248383953991867395744700171545793669548799658516939132742376685909955851266831659278826414543642001242121200088432527083300509817113207789620609705902060628106422758636707789972222507058161085617807061093783045330869045978909590982805387808780590763351387143739676928183073142206270537214349226061494943092436349702638734480237189482944474906776523665261390455232087247888375398454655264759608903125664849228350263634054347821055440936881963047904339896006858445581820048047690072381107223393132936174757244056195628562055412415073091058176342104634897789651995610498766750179369115974816078926868263942968492915376503028279385638200745111931630946397231563624753696507629833807921977641937418479197660115139519594672239211750620260615898364100228385410758281586896675931233867292947893854685283599761757824869660784565045388239002193512112349091310281417284536280088785702370259080604391802622979639215666539158605221549673217398141806333829502486737118633247529758098185164872548075128341886011241050481648570280452117777385832737206124307474695667032039642765094942759066231842187159726281847415893791517630919919242259768780035040116151924613500262179178187902775689638974847182453873499283145942923278386690627778250048490157577108698925804798507115632317160550355101662738202009278134650681140959814106296046416756648962269332011648660093726024653160675105379559755195256084116363757874660719257121566211871158829172835887332928702508504437486880844008581567381337135949347955707124735917191605459088620318898519581432753216879927606670402125820139903677361609991867242088980259255024775302899815172704130665185052875741726525415537133217186488516421085913082865363091938182960087103338705086974056765789571657940142700839048244646010399215466155360630092124763286604859484383873906390629158512509470458507592456065942036770879020470469801268431985527051764866323773186361599452993693221044017270674420177387580873371373796724047964992884721139222502317035936907712753933480840784993707956697087543244383558326465349285877424857186424131325941667757404493623731602909647836491293905148598371410269141010830382722973529610788248127283486715594252670796654514929929174972763493145371018675242990292951747143389025178239126881424416373897534628176476750970443725470454717133773391480415353736597067127258446886714962935554724998403836205108468001996826609104615195191789801100214977294971611518742944315065528573162539855085046020765217621826965116656673289241847103591682406827588141165875172648347395311003105620184536879662774108668528680291171801602801718864466863165086020271274738328580251777294055633986790621675461336739396387568406869981920177432032696315603904565043998891283401467569232809368023091072014005441187545697001777450597272091800346664430371705277401303576061509941379891963393460151077652734040443610966119818956829672008177354806369269986401015305807810659715826941268684811349240028210515724077144970688498794676211981649957245277433171700315892861808006682956801616504325753657500914193889125916432487616835082452319250470593944650304382302805511699671838318789365838309327520021620956842627691657633862795923357989538250840655974955008124854142840679146377204787723793881193916300567035094358163603929686906015297391378036182687342158913564173638598674111839271048400593837760543352030316794628982183167123251929120592588299114996712786135579116470419491048664357259330564295409776935065407830937549895031334316139100965256387326048657494048205750513455240743233205371259075270054340116725604827076920868175597813721327251813601946129977018610765055343079051934094204094022637040073114142957647860963419830263015624272176689381124603188378802553570448258982388073919736339283010697021320708169742755857971784808188344316951726617159623965037193029582395146606294037822093636399261904349313178173487293021046850927561347252227286171278236452436259733940893737477994512309259111176259894694461489303153688283162802965290654590438148044204002725393811692495417521293034493982019672137309533951054920327517212000737589329652401321829773099219709852194315238300224088873038125781753429123323587837275798305137154617564657589909052102566267724881975369820950726280464996849068161336514920964693057790530896216028282666343333848411581922996120209381574569799456061982652963908485037632546413822702816819576807477092495262315269922360923024182841610197700229988675386322560413876637767861456277260677500216165933963981507286051178009570927269197071361935812979289631209251664792727620976884308475683308221318609862171748646161110113629488916473513585829306034695351733273654788445798369809002489385829094213321291132437933113228632436457850421851381911226691675766283920234159413483335708578768830051819176634103879959262397121618461485776559090289471057684005073444863883736328171037213810590059894711493333305404640860933239483707873553287083391038758319099538265062173410402426567500628329443395891087333314043407784431056668607716435238250668871275296793992245696106589582990845264287690221001997992754264276394234793467220222819632023180513545890512628790180029185208651569635833371632586583273009041594729748352946623558086737417478446486080019176027314971801501292515667019962650434382796337166003293957146474808276308787270897582907273312019298543075218254970747995402154700528374449630015565955314935783754367795247854454921512959814079117164632564783162423552959559960164186022580796746534591669899502886764589789186391024968964588801538459253048555124495070372770103155789562252706416103862732542716049336133204368186486380775515472910501179749161906373319998339617224420427104591196058369873506575617399130268665273503515566972241989643185319381207656940148952147962774122673911010273494695089883124522828232814905168643123554722928378616209841658613447926096811649485145199755665563080777444269433989183835307209609501043076337700569396269763358832492623711589377307132248368830053182804489545722437623490549126676263237575006422981991223572569501926344596220812204068859584556038567401663386262693535486836696251197960345268077565373913721213991972156238307220747267740231952710228800120663760472308445979740543384225431167512925075885944330919619806061086623995662276658440852699754621600124794979460374878973960284092690473970080335084498080687106151676745578773392100828348590864063331907044826902612490725860936398449879039283680062532026605321576203577883717156637751683339361128940820064196394923217132636778954806173279075111088164038539073570925380726351232643467171088146188317890622284440253806459097318232107433768137399913982131146652032460961215164760996513747238049786594289400155312322131118630141372010960566624630618493380599349569316738338354801485716323845374803130275907663695970390011007924742925016020116118309620475125707511819137747746132309900928209140638095265418073045987908834619148714404509778540265946395037387433995499525492937539667835039065699670887953491029460530404360877263032125585753346068724861887600976455190385861408946712659855149571163134257746645013504590488208083478883979397411573858066567493212194243700865823043862169986006809381876325817940535521018627479697521582661700472319586849624478835537022436776102965543026012324794011070092323039965086704934949844149015227565841479600716740767342488252902311330828922321037700312240939849172553931053829725035698835331963646189455934233540188400822181587446855631714768172903645544553795677172757316498767266178519775696734697740988704560119494146812768024877916954216346292233046383935810321809241313535194619286948485184014049451404539223408108489249511465176141720337427030755545499563828954401290560244288486308138802734707023391796093451415076536474332243027671572291715555066681502533683381589659427745289641163290340700737307548819664534709833462485922996910539380118553619643001923043293215585413529790140589909591384590418034163148820414419487484065164808802106772604796614112435298852577093859822687250842872898487801811273751377222235417951912824560487496101290244412282255976504744027400865026608649312626119309229991764964843725099396389860001423583649699539346965970717419935301291241719906070290946255169339928281599950829141286758605736730355009227615296767751469192150853315711573191508836767010220191959829391811694472361321939743363611974974478658862281809885319427581050485173857898252550254334432687233964793836041956063176752584877604643384769498278427722396996634985936598967810289856001669966266455836741798844874689015198068711953212722657097743052471134915952338039113145465742161367234347910239330827974592918139303719017106105590070167717240749144972528716267117664955568119368678431074829512272415928163839346205839334721741360724474269720399308166002889496747680426616485550681466518207749253686332502249721234225240504372752170145331843768572964924949289220316647075761638410433892421826941428152408566187353605223228438973423020413725063414127622749406818356357812983466130439279013109850329676659710685592343470397820753662485887990675571119693272506943727502942559993517762454352050846895349162546555351915489686733557240096830587572420492224788878931928500803487481076551196956797969602538258012973764263982071960684568007294640066876298000269736971038020606583798183970972481413315242184613542494017228010748763414326569531029732920447840187127435565950674961116526322076758038974628835881733821044152768721901799334084037142033506956331777361865756920560449321055558631852407277587512113761053270255966402250088081439937577147782348912683012449432003158683799251692416909726165387382585268235026776542935617452578848839498439418905198107295106334396342549281115063802869048876833690145881552742093903942014179900870194040755632307608139235002444847275550662246620026361111794689433690294480867227535056378774602662339395868185534247556520743972442683048621049865394963854419924566078504826359171869110573161103525205460044468924946871847788344423614756602180812202245469286823629386635232381348363010991086172804808677838354974223152826452585595423897135628934684598589429911929065160146872302996624709310415994244549497886572737495791938342363790338847275831312728567658790072926185733418299691326749163149501794629358462958470265281443773944618335845481970017710724079538489100556325725795335715190275786086122163321027899095747504415464238407456924713816976096523909406419041626189892131969386846259568362681242623871073134515354252850719203827810485596956943783887021502828203872398042488280507612113433562310918005507994750438442941080737469634476142411772588899168951864832680419423272763941220878363590490629485895762865080112035447908182289503788098480497906592517383333052952316614950422205866902338033525174193178124740390293622038064485684668672938739907520947387171843950018686147633620369178037822084343771582157759677753291549048094824891424829017495458378118857877531254448446233731133539224230118977753903615131810788018931117714184300390488709162873896775288979830973111552396063751682002115223221677001909151516584592856238279010228797132328000989387511181199842312279888846710321071670380431399725871171742519444040670076295365766737385407045535528890551465270481092913270484068282234061054576577501368836202111445504086874381443362941150015258623672322517816693088071324998858081122462418834155129016599674476773716607169610165506226938663612264046873337954492795919427131744748218355410714703623856564895658845743315693983931772781501746709531280428532039231524840614041996283724512741214899010665437321487197030117790131067930968747441627798355968909661651548654972576952000909522837396562955590931969513812670124778084288170142754873913473639519494912101631305789134221577099842701722716634146500132884507678034782503335452147133007683656541649499243889411357810416820190423437974833763888979781825012156401382607612830411832069935940712701214316352760218302780812186472759663473837994413251836682361472161647196671479349699741293615890663346182010139046884692877394472480732451835769258857541189713658141215275876501285005443092630124260530782483477834190461478467850454527419823886900840935740751809852992588445384408403234188197971655834942978034163151137853217999431551054967507890702323086237278480669187131829452747858419431904479483222807817550398683363614944249871968671682280143901020306998669019572775931952370867805075058110095390401159158625154541581942444981875696845405785958904372761721623853296271874144741493524556378076588653247740317166525549973344706490028566783020911162802686639085375938427248120415803771861396333710564877895837588216982776532775138207373555044632883522907827000040377650994123838359750283219856773129748441881669273248165384952875653235435522183181098844553832824478790513774684094237734442058294088721276431355815009511862488539572766008754759362305206287595101334608960327239162774189761935093173200589103730960175866286366255371266707487480172212131935066042026858849338185931958725871730758454930035205223147406674262806734813867228849842584922602179429700751948789362233187432582584399983386114283398968157096115091531207275077170289756781597004079822858243432017440227131729365648853601561556159432813323290284933034561110831793750179480109781648631926763079494799407623390039002519498462054778793310026179492867518318651710335975077953153118519412702287625011695144292987306739629369594503288917243552377605794346961165921841626367765403006728615682960651829061123623696873129517223092705145994621226210914282682634420758629432809368291030256225315128416376067230121509669592259132118483196677450990082312721355084922864654502779134285777849231146624154278104564460573165012004253922381000049282558710298473713462009428576652809539944234642081385108086994336046774859159631022058708867697430966446380744740639510104255762638174664278653332105802477897153876445135444015413210787043665631923387128494616908376705761635617899421961980716831480941078106794660505345919066573046982579380092267332018921887832811247175483461006765260135697347297523318071030269750507973698610167797034639350977135100483443892181422394561356542651241461842844209659790715723367478966419065168238858625632909549631635514865474700047945881229190645480633407737769023678758777933361994310125631549987726853491402182024217281606602571862175241666643597834293273121991816235348521158015670985536932693926383006663535059597351654313501362985276307417586692516823923330754493179753627940764838420202884659632361975595798287122983248028298687592599542295402349046129809455201272867847465059025179836848985131886238578737267161652087888003320934232286063165940205825248896372200300693222192654411345401211411676109800541336961663145075835263725742643318071651239017050457053227842345236954177824846532185778677381949206090123549586589574584253482900648478719758079879470214525706618999813467013645083295605027897633791888789212910820604086987162588420044206368772838874232863543317293926059888770445192081069304559620336865468897042911346970189598381457276864129975803277380636440172728050862130851133399481705855634357126580411393798870504656649332139217337937662103592866632053503685081701468512653453739891579377167515464713592908953372898675809207072924665568830987689848068382975047078516204767860482011610051698951952298181247931511517990364666437907191833475776349791197196367686472094652003858282692160975427396215771910356307393581294524508966062282916253329930096042849743094476989344627682884532597259570145523853242875249601122204374619748931396168881376628757997286572133391125523018403364128329635129219529006946441111683876527451854181404374037626179663765839853757101007951808494509855074537519822810478305002286522272479238347969014729477638367169528493230762593770261001737874160595526502573029428766464049016011612063213469794580075431254676020760823729312984143382843969058556324657948449653934637332230344294449804166085836595446331458474747127386587987163608535045342971520339454950013113737634637213876079941634158018349880486505358049009650581000129093877851533175122345834893779324728934152692818028389903942502346886154068941644703227630375106709847385239316325735668837175374707721061566529020936861386218825516946552826941528108346210425614234477772675982144947353438647482528749864762607564051996482449475734187355481616946043918406292521903863433895919706900346744384367544432796290668619984319072391181372088675382100010306919213044588883507993721325658473959855955217073488551099475340765865815756382197199796043447326498696570376760072034326185382633471365622517163936794311202483522672097465151622129193662764969895716518864728880838826252542813971880890198595254999872891216918636458973632216203936133424287349366916843379313610580329202303397691177569127750066703777066355206175047153960516418551431368774024109680166383581348544023305634511750440105771436151015651296815183831292157723084192469397943321719201415141974326888976345844084870630541090264852549748019484409896576940842043712008672088186116857127079026607540714643755421477041001188275354148169641829555417782698905998895202385501374165940951811269986897749937128250561287217194741831443508572852473893072798464475098371060477743360879215707062200715264514054709949642069521691205221045120330395116087693731167302050682550127826269500753067776472487203280437995742830077422491259500906479401178449407033749478189694494397081561919795718637752919243968433354641828811549449860066666974168670592280501424534260824176079470850402379427209481252045948871882365486429872119871375075670497794226188438968140098142814621199464935636708712652399043646289660475048319514051373503607050627389786246674109803774762562833634568351905176709507742151904408120575190165166933789487716392717984102428956282288687536753065282168716428913619197060947145769627573296445832346918134295250912410964404479304124195185708219243715139892011292202911331374048538549398796355141270309633106588542686099997489906983711121685571468533347564090835284287751202782443979139837982962359636914230433979470653500453481577377088666728530447964028383213247989491134253520142425293253069570141202209868086458260908242078027378785649430960828866084515213279065819977522847454728799530263520178878736671685138208445445727339264252169109240697192544986348066642813955503832522700095515275510770148473097834718070985209296583629330910823752961377923827943675450636477683241328389522262634769983758843766199481514901862474053198343276107353632818293118423277127872146349057492827241114351281089872134640615410890642492376690716656095454464813141020032506808593163118627457986246719800960907752936288240166069242543164571435869617785742739119909679372150440120694455766679821595701579256362237259108033298767668994490185964486584971382611946227345733057574826188573067187246227101355918509296264969816934350291453624929206672411602391562162774049135925502713208144499661691525338470334430181177224725086436146751064204815011565370227107760785345990846368230177798080468087770018011606003794667179767278724630003368908330501318179927951993230899010812273207260756328728593008484849236410123028279549825229808086958195011008887180593695217264360638880941241693901491235218809639287590306767280594037362535207925026422893095931532299738495175794949082439264331605408739910923598886723450514231527968766738809862503729659518694600836960533074595722490383917377343577845497463572581148226059163506059786492359588008258427093902384964030495683915615264712285912364157434040932349787229699674926279044362014596403507853678930538946166198906342008150425192276650688169856794377101051809695065425547947785954923143397778766041068571325062812297634216505465569429678258106539817922318686269240286658606359594190899101187895664662809521610863073093804591949342775539704956409601216078322990172836460174436802329438460099883150827463362037295947727065963107890384389797350453040277480245689332552281583408099760274956050636418431576888618575998277516748205861350271703294595231064494515302392929868091913811999101702791894145225258855360553592725045110520981587968168121510436015268257602062596347433728908010141282125815205137616486765165500809734667691620269292787794657651595721465522527738651207125994919371641754896770576276978302455727881261834798407995086905678436440114362097161609976591675978577168532426947803796567246643280594041124582978949366649305632432403108555320629345325848849701873626563336416312268463750284842805175432043296557204849571423055463077755205355809552928744348905368265238015393027977239960664578724278414742222059224629277059240139748985994341851896857793039603985759328688565993854320125295618249830677326869651317947255085462058573330763061443357809526384122817473525609705729594095157431127560579947275379199239452099644102347074956386022774589305996720040824915510797308961231788377909022854823688261564168725555411416694657047837323583911811175331579734520979070106612070149260954878709937175588039970760803636845745275387701735569730767233602591862177238141522379285294591539098156233322638123773779399180618579950838043489451395400253399375855097945047126842452239234945049572934155600438191487814709570458419625240779638750922142129019838319282689448607859955300048623371846213142242438946327494643469378007970023880339366801881553776031108623292213383605946521985412924013075356123044439817278402933489586163548407179623085551965317782593360911051452136851348350925840108757725888641444600328364090060783090865678724412679994271067062449310305813147325191141856961458784527105416377793119281718805444759300033258597066441949727872072642948271517862581349520663735310450215207670804557008765725013905202144957001613739711586867338330237954394911865520383382571911332591337666502365842316869884576181253392014528047257801259663574368010089391004722208086008044846534283687497815574353264001193235200035985761070283427550196390395974794262898628420780993765379877945276006526825174927060532398719366488226585441994513606006583772983640894926617968034164015390446198628352559686901215375363900715213925127144994893947170439300706334427204213590076123144359268102694255833036816856753093766673937226429964715456378071897448669451646766446285621951003660125481572166246104146759294883327132305157534088308679115025733052556459957992134733277542108452390895814016282494338160335332798326715773877837983692224973578576916387984357693481878562706492261439550218496869195895286871792789410589048857704848100430897904583419344466996974178761145419050060312449277434182804173162988629558401746164373943030286938798933640308257053298888608789536195029235772171160807155684912512944956792971103341006712276144928643733165045945457299543463709043151586490567729036546236535145170863984038612621887254087262694866778451092828766731089736196072983859346520545659197102842681268251704718759082887164886427746912511062046481426463130217244277794345979738308073611594626090408739917255155913915589226782095113897799766407598256595800853671470423569139205767875581094097998646916545575391211280802047458288249167279457090902293148936449411816825600715631935392228316449463330196303664307040099593353749932952314841801198632293753328945036715431938940960530628772573196821388011484463128393703306771296017315562086689185069167381187154186753653899942402979886189105513824802299629970257893998805269254689184852248776842974809545364977520904820366718054082537147823784463003063569412016916967037709617151938124848052775261552282060842876352829852782337117078569505605055089275453426517824160779578229934173516801742738074340410587374758421081273211864950667941729737946660355050747517729924905756440964707568286256695317267390935463561699334603845562922267152441575368849316817726233065957257215922055671998242888008906538210698339506870064311374390074674760698683003810029413018994443406727161912632103099948635365463921716489108934703949139069095949020904191023018057824835747469635324914849879503090914630910582059802154049343265642321258626678812951690455825889230473385463017032477307110957803433946271519205320525160952326999258574580411404219197502838503404959206844089387846406915905934374030330695530773980534787330885417129572436285256461547818983785090327053907778995528309697158445370373456919184098305713755167066712767007955765982872096909394795918638444088128547373788024015203138304610227885735862806837365502298873618199799332009366812041867922143950648514055772843005727360752676233805031200766482877798316287465964541414894391679406599780811100823714653927824330123999824893796795138668768665777057940155560470075361236219240122683042796792846624396302801059424803637834009056779845335148392789904168650297995984969606835602182318664354333316529242942574635479761751925632586727708884880266132708350518384667624054777341698678887162754238812555571737873761572843022934237371434440689652875704197448987634065466259327967246624797805189559957189980077744820923950607637331358635032565560398774706668380652956535695533588572249748823619852452512493499830875826843822842152665082561513009711382397781471681306457938280760150225126844321225354318134321236422704774403601915853929613444376716364323111472205571461314767653588488828038826685613001672004357964961858030205230868348373328770370301967471123635487741007823190250851338439217616613203821830745936729614046137037083857516567411053755425624808268361540536431062379190800086648099255675339323448367946718308027039141989250534555424226652897011666306591387044509539427213258074108423079460023126924758775172977086373341080959483494882574374904361635388870124968066961269008242074612054268979309245098746683028218326703509043832596545746817853043324973240965974232776268283805131130104615941774880420123429279971196274223004679097000661469430831227646156365487487335354756233502058203380085210038829959979323410679372018710376449115997476126880559992705434660359235010639639495128285942196713059619119977231320175765170659781687489838947744129660189065019135267618027900934099744424616794863821502356726359370610320842351765488612312721025374329204120960775621138875416856462523080884795853138759259717443428288733626237616234476350037227243936567940038203786540443807507876918086198763820845709744906365162836092309689321086052613640371678232452481146612129250350649546831318929858904702114696675745151078159139412354043872817877053839102372334247448163351039558330505887934836300901930197336642877773799995210784663277445753662201584111539855887242538839892566755192272402739340698578177397240441839626039037258332081534283752399730743547925623844580658704784458011372898017524046023500428684943007868933804940840439134782204198674856484295198511588417076009028731533629691173808644733911736144261887557425632750507868988332955352792221866440302152065473214258714147741120012626110636775622004291028857503903495579673866177578200874918910615304983687869877655567474458333976270405529053784097029227443647917595712750831098780219110598850587083140966418308948796821774399154692544759025107785975056447230592243646949944369754867967487365994316919767683551806659038776911607461909080984649958354681983905871890543458217437597722855772110552093087094050652891349024195037553490051588476105024505466398241013558699821700774097483844076383513904914735957749147165147377730648758746472948142202522789119488589550704993656977984629210778071814442882686471630128806928607447574548032354842380356736422847798129283883017138026739572915552556386420347774247115389891592758156809441932164160610373720152293663993245277316560506746443019165490770265435829196722723821896742789603954341709217032438268119692746306961731966269506189590423480086793336680391783048075410002904043620301055700856768794429899843266992618418255681163564447956345508571086334049514919003753600358860390221068405219535735586727145370261801386138156601742689404569796902834814403576525838872014505895323090081447577572547648886692901043866605664708254889423114565996716649896809185124820134767891047055917218926118482705366264695163005449996753424204312430493075495736680879279194147731531565395651833245274054924855654468959916474191141177115962426309871171989822719767288641257005254297516523553817571202129565620135328024721742489670555363285068550321488244625127522593396294962159476513232256828370422903132322820751548025271619663015367063709673389815643900523012016361665899016545339967272726875166284353923571193608568565835471557797634404014783161544581968831580697465458571238262269747595535227765888621452745407060714262145914820976751838461938818233839334356710515939244300852279916173512807346313569736136808999998497948408516148307660120066358306710540585791665958124801988511160227912756977059054064337421624845954938521969161053377487148117313207610718083047787638524675717666695405114713188789750174762630867627135522746701124539947873495055635419323901917615765018064690489625015152771215086194707659773954172738818773639616390937049359067737100204360581922528013907376902107499676732739030237891503574297273269846572935537296833229814093235613562789345229526799736961969037655705473450083712963028717229141811141794240737390200352320754902488629729243666689830238622059480781011322794437563595728582689868405966617050547510922239619338333383164845743646502525538392964305658883319767608460192753315603372997741255942501303565919519417356264926110330096973401811363872028994791034329504907638069670995033375617271181705798015649330048698557968401115350579032302984319291842351484073197297818985715184188547948722374799272746459143237620573469145545914259924417174465484377973955606077065623630299367641353841435380433176964095159049827001693652905364504503103681179352712078304714668929826903151266622977176201809373265546783756839272171183355109316269002483732802280272760567905907342824150744185097436202059450430598507514506021680802039271594003035485986404393299963580142564061560473934055362378247533341344657126431071065098934722192644044723330733112699954689564593493078231305462087611948750607568652318918238634617656621004955415738096520692657334580836134369004299120644151079049666272677741565431768373096620715361592116876825131606382593751175214482942900079261055538299650500673892267603285721501994009106097273300538802327950665141507678420809638132267156543845715746892391123593860206821166428695933937196209115114169157073477351486973914884351208205059384383124560257352938932935449561430426745970468181709120894933817534479395475498181880201431024886218168461415811507682488014477073557921338539672812458471825533471459803456546567220637398192403546389298424411386203949836020869303517646552844973345512296012383667485580247197106313501145196007712562586743273909190448608302741010642743989553377387279935372465719175829061223039564931558060028003058642348045929479658879933982653396868246481148613936284829079998739146593425666476430514730928897589141328560694543661037101483464551646208037131224566185126470256255157107447069631386652703868923898110760589608602428884391269253220231022185415516415788652558064206864662273418057283448720862887925202711868489386400662902739233422741700284986178156764093378533298213423531688109324761187707047826956071670373163504012125563552872413177431933164248348315031586194434311230726864062449017856902705933898467569098881688018492171710133882668193146426373801751392548765912695901882861758192019971001494985027045538276943109599651655398054798879465939880106524392109830094823792124641635936672261657815149313758880230449665840796394250456516828570075129534241839419044660079492152410292348301229619127530248536233294107988948929462657348003917094300385299503915518149341478480855279554708464680146420401580851722235629717082790621402855823267512150224589292702338282302386572229427205634058233419558071154475588578252302596060912644350893006599816335078318958069064518546265117950097228211484332052932367829553113130661354944250033754938644695319679750267288550469182655999200696627794032354953683766153307740788353338468229181481930680025626236728442492832003739072502936841621658708326336397200042896580512983680972253348058504196677089100032011530311538300573624377661144834087480303100440922417308638923346815464770597798090408884508615930515816668448664108180521780697789125120616933296942684019802528056427374948844854565855180213319873882227072861620326361198654048533152751215072939981599041110824616907086683009365347445492224105887473845660068582138772236227143220101762905932308888332144832630800083172221932067384109424743127837305746809897803744845800356574799854126152354735798912390508222342736820309521875027620050152578668146805370342873930018356307541361478617853703695128712318045673757035224217488781537005408185445444450864407240097126213375470753513403263986476400205145964212550909083164580963362073313469781936842329685901679168618046032740316747653169017153956470454322489524068752511584375571972099334883830867863058752757753386051900632620906531480389340804643202098495131700647593441508982015438628404037808701639057991210030778057473613045983717128946444166233306555144905987099570655357902642266486635795908482362096860918085369891773912167148311370391707248280609251675628432023243608809683489405693595946399274578282000563306981474765055757652510867271186849851961617200818797500514651596158757276201776876341046330274619005507590785020553133518894454910562225860965417794937805807843436788956860837840831252139983193296888945539367698884505286911982089435016347690389214943806235968368370905939679103756364248706420858585848584183932266521349051000879194282916989833342089789958002057639085342471637188340530990167471338313156185476643183573638690561482884419274288025894176978027500956788361460254871966972425904776789660075118761986167040424168809033110984214266288794510234827910659600984748062399599098828190035711593422321030431156808641318828934235136497060806698554490487307106647772289369161441952187020713740292303107748223608335797051698912124311833385380795476111815672318471293462845401741102698232413880580737680658844462892385669223208098249728988977125874179959393048487165202759602691951351983888281641389828082278257504239797076865884022574641193075375975468211269336806515083412276950871193820371858145043769110529056587405714361765385725336949260332756921935404216775805499675621886918533389660882874588839579562537048072772200189983912919673536022366745838050935990597125864788775496089256989193413387211291679377361269461746620918554249612181162170856517075810478229150706954876001460333840831357795635519233593616275468013664094140067846281728698214471993460938934502421531557704208131675402793095105392940582826104780604781624333325044567362931313579097302625987507761230074788978106969536885215684903770542766745131957172443085333604230507570537132505074174976551947583813935514534963705781198103226607171156222828498279674842965224490516150386347051900324987277889189259024955024208411564101893646089152646523163800056403078280076853345479292423218201027273504896687558003463984495992377351473796377290986493202346144642927422908814957070502936947120022084315689173153298711298930500495310354140669722873131116215070702041776992602390710087665332660036269637508366189927424796051204976838844365935683258212184819592283101540099216023407668824140860935951117969527605478067462462682903450685979286675769168332493385622155319477409367079957974014515992567818745957472479284703415704263561220892842487650182634156260544007815781299153680166553939222469644849571235612447498894532835950504461955361698888163666123218184872662667051414776265556629927304048826177397094174451485870420498586772700009965087632475969574502749622929588757009901990611936013939422560163541404515572714176995051098993283331484608088344629758982518623514921220505690345552978144327359823340394198550290310740626669203600061063170466232708453071325410932494561179353446919185647544818750818609532548980926048770119644590534631066177883358785846137690260377821537664310863329847664875732935368347271583692257338013236647637092841445908868179206756482602663741814995202670938266852918527504877231367055785899761061329002634056943994912902780574169193006758629611267640132489281727649256417315820438942467658842679664280208616731646164295076791914468237558493599133673374560261729100833438291771823687986501848912991683845407620868680822583463928764713482208540560323923919953696836091417944959841053698402013626638324986727248295933569109995419461466486842553549717386513425138764448482496344597532581058596785872549765993061024850613435311110927646477053423032543160942479929599825266748903696231849184270255727755941091318340212513707113280153876802650980244733028454314858753280264357762271222744671058545762079166441675449321389310395709375841200149240247013587404495178794086935459121705993786983213787338051672307747776898598961981470755944669395208246224118616434804764098133778603989233567522132736711306327605539693514494125664288212989502414024781588213964675545432762492795594243554436116666476999573207513549672289936536947851736052688822192258050439293134816310274965150367610000445425539903541328980334279385911500011511206119187157399661458279374762997722199091295298764458529190960827004621033915526440660057858820692864583560841582368745277091056529874518857956498558121800217885800437842014873779115836953659556079188301277942649736882900339886435349700944287138853492418829050305931600861601072767448313239871944335992967037027332574616784400026581938626954949479060649169170102632966209549633223058459881190714259689995646486354645458786173894166198703344631267788685338330016853115980554899263662365116516030783642880206401471463202342089567590529365701506280693934583908487434051759855464630303674580852791959119778446126005407488565562639039450801310106740933913940582390103763529602771164448742956778606603744978606390093059164352352575218240329962821230392020019184867807243888341168121252088937890913216661579643617330874685932055018181440322555768329398467589632788774434547461363205852960188444506716500502592996469089098336139308990671872325340300403211862119615931324390315187658959229481008060970134716311488611788075296983821512629428096416188635665132948149573506176261759378791139417874596349853675634299978035548191715777433119073973024744669754918601816957853518008207621900581695246022553102917850429175185170894214387575810839711049761296682422765667550099073370709410920546356637817276129276225855136066715798259998053049601142135594182520699830374650857292630271541335803304359894821507693373991412811768951539015248993282583686420936712406538947543152027853536996203262692502460481698828206780476497549947823414640043754564441847046124352390979979636780696743321783606775702655514133796492337968580409925922012786471392659906287822916406173036265705506138243550455979020440010745857360960279303473123636525668484100909805845121680679914387797481201476430316560655713742336868674103634960157071066439400482884744094246403362574317389395897513702965435840780027918905885780975239113618102077571227867567126001593874203320040063562706134920414634756762382829752587124280882928405722612932326544355464916841412903101084349839785705259010149030163246391929133521057657181167112834964404700481127103810208377206967529514075016703851196743298143548576362150022887665759514270569694790799569547033474813281295884359248516663568593002632665641194804822783515408387364048605533924937395707566988235536089305575173995076956435904842774187854778099250410373985951937687526953436824749620353153784008241520993657286531421309131403048490155843463084825959832271007534493780739037763802698043954302311044818353178966234901578295104551939221765496679974962169065485921773819283537642721605598931789653652665634704242922081574991670291123771279489245985643829841020986828334852577108168086123402239716919772076762801074060967970323226445743658870921573352283533376866217972161638650129704396303222386467010124697606171952854348915096366467397777784708750953748649875687226490672592951444457187992674437313111192904561947786926923095216225191617400173543973589904223602642311908838515116835157143601722830767718364989140771002540695479293188832296765807636745925214842105841210833226926639254873859078090938012897759812278861537786534800038140261646409684504399545111477825280525730775349486474275865430041654458334650397607980744735396651753783105429473136775136695244028442614517971600243004731252714885234771643644197570038784146122708129806045379100499000378678583218460934693781859268995852852061414323759390057994019382464901531188218773073996251630060045865524749114791650413858727340358407574193237225747833729949440854545065755820638230868400930862360268621368907396528794215176906476881033096149350608944753532711485414428434233192157517134855981458344412090469282087811280523834693729717526228393167188289524129295439944308698325581189396980655800152722661893442149995011381985369767191306111317535865305202939311214372736425605388398351023078721944498169460128690746578904800113237800484805161275480251278548900042344441818687124069844578324447834485391860963906638529316287324941937733492502153100772416759055114190462881106321462497896770535395842402394895789632198488227685834107455269944181161651309547259314892825616141516847329258073323993591228167644312327909086018378456949832605561542832766155268848553757753554790341961549732119237936424177412438501231759493613586411161130256004838574902982694059063172026760628311412566725330168543753914130051880854792586676838347742505039813830408879618162136339226340032595622553223072109450138530404093217972493755187413592392701014083248476489621492402677390429891697539906842003259484769967186099070285290280626466349658299673729555697502631220947813035694861674542334560974677700250150433037079959430921330596229455800725371112650637104546954577132649215558407359937031378533278390919645979633755483463938252171963391496902854629704284478778986582663164245067660417772921568103070075659528410905329643710591650485062901754786823289029193272918312199662653963113797520670599575817000091324345055155697518947446134815440782329108711776074345309885150758959852709304173692264101648119221077836005823971884299906963095076771342739696041825576548592102896057759236583493833242227099167183917092559351001915000350780440804155704969661898894923702331832948440092248668493557214274760739675319319081356624188758661793356294147194531642042638711836159166080369398355366274126694874067259465264019427446864569597079336852710140001123545015369435775950787557868336199138858530114556148718574963773970755799491267362968523813966349529860458774325262830857115424919996336335863265214251548182874730249884709158108607271405206025061460000601142268813691237022118449327045769487893068728017123903907888617222941905588731139568186255782520648141988663812765032857437339963609742519069228205967085195940095493474057058459784543419665396214268590426874857363642956745485496456588147070312024357345199922340645782920200601665218286214388159877559111447047799354727367501517273450347164515269122156536419757429349269574737159353479823071658132377034127654038222041875417810834004840318400752543734300002396115423199217091684182212574679287803490162096581977732142714672276654595232889712841003236951937942175841161279083339495589812806710013869437317515695139025309249652445428669408473478239213051000074387171612614881038814187615408462615700773357556012564900566630247346509929814052610092274420470876533397822650243282355396675803614494127384104500797914206108546511910319007268636427873240530705846339616621397126284724820377071112761006336168036511658144566753551613221552926134426197065941521421647655552328324238893147004727091854104385538747873457941103979740792182343756814349704317269106276866665204794667215109192081413583271091185277691605286746840714879381880665382152159172613081863288189235259419865228779547727612249086281920677188784342901011212107563074997859167937400359413156855068758126192438838300532309490030577670851522836213126226185848489389899460694295585713697963451211624347167829826908816366462727400888674197263038462258491412287340143707432145181693173879228377806168141189858413441310413239512145156215914700603858801858367037674723923867731339629360013809038048014187982996928499584013347544248331795720628450209822136313171507291040067192385207319698819286003935278653320118493568592772346835903125245827138211249020404881454756956104471097443122523715760826987947617387303065577492798511193013593856905697345359455276329856676713641201636425815197268751538510068192289177110940199778119967767767129500713963652878262539155003103470819183411093242682579564124754406205314712540531893192009653792553957140115969649064505796026786812273592374297794076212396333190461230365790830084308636504634129029720030193292655771693935060463094415087559768374850805085954281520761546182026476292408507611487721992609760971730373524755366023260187401911557534356171742728511237179656080714905289082046750086519088912131671720817035059014450462135098751992904635275276499922057891047735701343556687288275013303713048260901847378581345737578459699292385623872788532039017726455670849906441154040361381339921617263193842296516235261540735574145437297230218439331705728956381004092731688675800087152189803899504298495455401011067096141516494089336437919643931989002142595253974072092588582215915551064193411638039917423267734485024320132808864658427126499981593250392758691384045778786536256840127463765492068733639504596888483625946519747320176347796391660274263044114577424230867146901531877184075589608704267276867014501300995313732271792056162643321710923255764944673504327102651360550370988388690634189453068718548966856569989163119393433185858749084098535308866348041776935757168685063141908135720951477561477024076939386977760380210626953810965204413791021548448051401725146140342090697564317687753729035420521139932095327559885442929681958611568963127074995480119845963875514936238527442813550742445029694385668437253820957306174603457245796438180143393433668220422196904201752729596903321863672284414499897257633280170831468150120512858279421489859714268126523504050294040942139956176978067040660691411071558934193065931982388462348043419830758246220143654912958790918252903486379316698457108891616202632963167731437150941987733692238524155071398597432053255540138236877040862281439048573587834895436017516787607532336051027134567202271314074124123257233871320895953199918517268424564651469521413960471574480926431061472735141449150867871545660472613901987721570410763197637765569834836434245163112130017470259819429768528392819055437490214881483151616065829154615382952782981164452689333809549844057575337607223588116204205393975444511688641529601459460282329545726499962395975233651521643773030221040257754471092767020661897351758160904213025423186293596006708673687984848644078719663618142744339460786381104363636843774357789145658569891129565854476730478104557835646535077766284322645613254954674294277180804584398913083379555492975043825618583758204129303257746399046529537588855595736931602754764419004154033700035659045420353993843200242427373171114670202618059904784553970201356564535124341634322436030762778237989228225287483232440455542731054000026564582160682128326105047754964940771738863952045667562465000608526417777697946021647083023172575170573680378624841057117384307335706099684516063625975805814934586977728770685730134272206939532606116881180956703633899165263963059560881529054244137398374017106413401478443947002055791075113038017324520562290762072086362187921671628973858824628020344078464265836172056676886715936356891847240038409234530769088680445722786451079081075200057306080045302933013059886625685404458347100965367670347550402496257019459345965935566029152813754462084189183087657449337401994348157801657939418168943338203944787597171935860483359134705599665723285815970324664959231465488346751967069684216447630869446557480943415085343576206936845993871063334288842531876003803446184681695364981256434021003433033579837586563945471967952670970078674435568361464914399190979489786578811626091525808329544801563178605283983919870623657152223879643141239426916097549714777081595340715290370327317771672448671040486604089392226176186597351324752138092019231404675510623654654212039418030792880027918370015266705101050021427969147293000988097900384364788463832413455378510869835161093079839937137352184438875894852633845281563824483249111194103816497147000017322348518895375017529872281961784000696382676602602038725312713752398628927330591182228578256175656682504890634545802643774951129713904361246485508411129739113919748205503245253590548840368919423174791569997724287415949013452069812455018958064581875089418503710469329842425420234965477121165020623529474346985549397952954127538675743543253011396796469095385613178388854292498158398623038095185227140688747089382285549947575499960454753142845657129100519105842726242784696873926985582626262954571955066390026491322542856183792434941857960386485196029410519550951060696424246624634210058274967670743033532388153641117942721802540840774198806229184735020842057613908706409471095085956557992598552529972930964853543139373760941675414475360754863397362355068939001938433697270236977551055509534862604860401900248701702998532053847992344283365437236477571429080800355704468438383572162391884378305170703521903768334590319691972490869650151261398457958542955059851923223297791693424375175847764012422307976122079829710762563815572174651368695615530229580393079236179045705088947833582165560437663046433566556936634494993040049873464246874037655191024381735966209313643867985023716575563844768249826553617964082243182304692810257455893326231195306247416983924973399749259627312221981801011699554820905037327941799368951232792761081008061852689650473121202717122075432014078222331262332099473998151680412804646119052772975161288893773719172650430660610831735917373520560740206803973657454395971796366302054822026257351444451566560195478647935299358433375613467259054397050885033973220861198178858648914799064948596265553422416407787868852402406495891995011708195371650617605032288728107957643796064777889085848871551520816448370043947616064303422787793490181919805328150455435593587695287409977286845853540909624661442669633843529623248882474097482880591403906741562299569421245077348957872347937759769644759338469677859269491808120473636135153150853744796175197517012768842570652692850836634437599635822796496857917294736337038905943566879437859528774448202280206776103878195984239142391071701763326414248441501116907907610544009222295844596734435458393368134110809784023943604145256251060479945855151157005078765845160318795035982240293446354765677972482051681800284677412159123823281930354067249077846347791118537860168773202092098408342639098513966658936998459048088794683370112048105532388431425942797019030122379489301907155969035756389307114427798319501672784220697889537543373547500075300095912852172119380566086701770288502774933814844284115433762767549434937081831553614139515120262856377726570231451470159261980510970340993226915423240925368398680999774645210616933834941258541923517078861593715985921514283857308762210226795793049806022816821219385216512795103151845770914885551006101088618622273329377028802164020911293976191418082021168421149993821183539446422735606255887094638357524082993276157209967308467591759720942477171962914876675762481141510086188046069618696429382324658075983712480851870681437388312163250840695892121820465546104005306079113259503594196281787283482454930305990361512114746236932886051138590069116593851006180387910739853894777415811486240899590918931853482233858787898120483304404107231691162544715165460799079453105429738719127224460519251724875685579095291522086998401221975659758123974858813720438001148756254250857393732364684786116618244601341312416300133734755734605321703976144859423579330087853357903894783869848273391518866390454955285226450522950473383281563543305038888386677562873787768588866769336014761645583993974809457915027860158718514627702148851243851935206149862871494538600795802462823548282516706698151545324448212387165780223378759939350564113429995175594162781474463517731090552624126781153178908941686569285930842588196790371995500379953286158935972693890520436340201563378506848742600280886262744966968442265305710254545966847514317061854017556839590800416993554582490106233395194897908748476896757723137522153440181317326485320258611632245791749378559683797251560543561148188072400677911075148999242050859494544529879624072345043389884171511447040081363066911114211899418058899703351902448506923793983934588467692170498290715525430798506517243154375624636218460825014310496643990446950894808546175956854507213506364275478041997312230093557661498542832316327553323172122698214741679427424460679018011837922193551404904746848404075355517670954112429423666925019913184299706314325888403894042094135715410418068825113410814137249714895746129837448079907523773540797003172759154522645695555405698060571252985453079490548229093651472466187131855996466958131408676131252905658614794167907599999498452369054265581569313594893401185035961133927534580769036422687819025987711842496842454449412127990938369273133722160648463086865381736405500497662780168319342026893442818235511032500578325052217583972424489196789179540552043817583419566124612715528471298874140882321048093469426107212094572198926508460371728820008314649379246394071247570862631575787011062186703752203877511550521137175048762262384159501573470991094129349800004082594085452511082045681923298536582859079659778259748244447313080532678032372944987109578897244426843094385235628034470857471611610582989026463219412857228455438632413184077438238012448414495547345084749514061476608565457286548715472950048426371904002678923118025353967071876650665826318067280718031937043845530386805922792361368510390462197144536890364252881610530265369505429627588091658270155814758075453611243521836449591279571105812954891765778432155054382140942814640609227429682352172604193070775703548012517177205997457746699088623532009434781740342507335167351818728748399281184658879617651803476107775881382150770107837262080061949884183041139322111108340351395625083931521236044664185023496886320363961610519880973804001720850716491372961261880314498121234022553835940837990791031268272460119815215257829311146550337442922838510606654881118255602832493553711193905376306533643028565898342811839449911401122171321681632924654727828839610557439218820283897853048743204223037410857889174433181494886446441635204946770183117046870132267398822862095551384802082560539700005799738640581191062555590766868224453759405102596222237679673468821983150734902134875187436945902981774674459117011016429558768196442693606802596950358452496099143146241086982883866722959184176845398599676863427121532983166768240924920795374416563925912645576754802598457077106526475733064122796017652353177643890745595499311294771901146329950414343788426283094684723439556361999212755904691022746477800292921384977189276602799445242087512153501583913796801404804302355256278947203704957407724074838796565081189735599740371919172802407288223281473179679406452139205284384640642382654932050465059498264992178072726692345368196181069368137902776825416879185450412477449148429696363673497062807853450615799933062273335707224466106194467838404188165127012786852295866539920305100082981644512819555494504359304118185086088129307093727765476623431776134834019889326715350706345479021233868235545071249049458414557360037476818968224314235465012445352820252167972098739326997691203923228904158282640170783055124008815834861440468162995922540408171152375467740982221962721459084077621082033521347780816797611380892629471882113996560531319508177715015943486453841488465839028089407658059652014629686357373420673266543782899274344346952353391768699936375640725329775968607013933986997644899258242238568033926462290177059104727044320991607603359497665353113341287744133406652938240008367444072194179454364623295522783146673362454839126009820964946203443302670061565163498422378371169438507089487450395752521143178547132232121234219291790278872908397370805674254838682886595241761442724837403937871861047370657355610520895111393252409263270560850727719454546618784098147981015031634599674160828378366257919118862848224721503211173084586543560437645302096419741833248273936246444716537077491751414390563000545070120821704324687272756542132897189103581720321740235713119765895699662414905136396382039726343348971972443955068470324816208390914974501911369492748898517353979470005821374046599874073630308453839298057291831071109751838058428512118483674262572833231330977370289733070662366748628026001469439020170857529776963264880863220583500697313350972339642592383946755275514959239132969745406286775808748610603955398808869771914741433775561661604533474191901250970110407679498752266920112043003620147546595684189905092992212582349123312193583546954229079323049429019391735820586786073514884596553004400895529081620534706780512042950703862551980763003740687283489165960725948233554209557519721478805611476586944555706054526908053812664476533092045591898569781321536146604082696745717260272057092355747265010139791939041530087889154113403030778726934239080784468710477290292682287498052025422653935104925371414062327411803685327659115373461379393502743980838517089603697091773884679462801940562139610174668509958950947904349266991115566097199745253181664241407025064029195468735783265199346998604511197593421750175686607184814463730978074483058312117771223299079600464794445301976038344004981987639263009609949005639145846176798720200903918865365642122936171612984355444907891230031682878293660060142059747999899146873539906665790950027882948336862050958971917824459278932347724283448887771644252716208916263699028318807705581614144967496976119055801010452245397265045247727084514190905801627990033324528389420612522931415380736991638995517479403389815427073266388354781648486426743698413299477943988441339513709468420652026790325613183067893740801329928032752618433747667107131233523029387444784789278466701386337809376915978916187846949572001492622276687708881979762098785604429472719579921745303459872572033526131341161662733625959832142586705178487203422375914835554768823868925311605563664664846112881486838416488923290420479271497500282433753507623494692975471955259541975845156272107015545584056263213553432421764390449267342877949464628904340984966333844780525191266519801952087115569999579618136428109805599813993624139840544319138730567507527559308900477153009179198644450661575747113894898905895464005348415151815896548362270511934562794802560717466690192190165713405059550813162184240620800810351052087052213884939509981963170002807296714701092762691437192405542497610106067965545648714000812404076831646818960160944633069086839526450566665603272868086787111726826450200384852596900575760069687708271553008406147778525569365563868057189327487471022072576968656028744494999925320758097890067804153206903388092164658119849517289432094182866108268051810573635382088863334254005031562081425632703459714903066652348359907997942270556446502810136947688105603361250420842662016620823488326295758248713700950083221989978685889908701808215641967924831069195740028234943218381796656527695218060438673062506904897805941084045970509347095933590649734513747309021207847948974132284933515674702269316616151500872279848892194353576221471385706439436485520096175935481826296890042527567790345773136396136136790622209457808824821171694288534261594365582750417666511380026436257854177299021394474132070876255740518151490734085195932282468952332469504079369721757115997686538253088055108162496453271413625714478841635430744143804883851063047370456502357467153163843988099087679285203135962745943219338984222067744651345376655922287869052753006521260084338360090911763553557002399050050431144509734261864525731054600485368040444457410976754645225938776663676378001816545928795879811076880325529357081630923450104298977234798861339407340701200922990972444047282629088989646871026824933142839598122263044654616936089898721284815971147160980327580525986555141461768571190110290582950330223442976328171624646182366359901277318983959094855698151500138794603387741738454983370651785672553340299766797376806663427564689499080666056468584966591726325319778380575331312784384869049541779508075637463102211802474962335332707348905039835995370567121792614751817020647201006506041274643791081737335247921485472613801777842505945357410898907632359485770097155072012430690854135818876553150929569503686953803722579268086872474803199030505107042098471171864261454696530241336491935083191541680296752353402414764235679690146028943365396605964766534947084920166687513873896222979573465808809543045470359552546936239901752235766763868888741472804046461143722726670946423108341661169656258384495304330329711716746594612432771954255112483016264892084763366928749022868457270455172619211062845827589908993306854050462364224015606565746582628762762422442115564527639692202767450373318150884360055663961668417778008767483063439268613212383788489900075653695968502541655829674205362394523772302001053905623381912608191246641244005773917572232563932683616228141564962940729968552687148361285868319218686054949136322149036744805181968775403089883279680841885943087635479012917095394420806736404975247517999913891749150915590013189832575752171579864094626077587150157953273915182671701489098286384857653435512973769771694946392093892048295769632646576208552098763928022311552875064530502850255106996404242621766447569837917920604368300915342043709649915925357115315647980482620625005558022433468577308346977715849905656025297931314345339506492560306769805772334142575734942699930207408764479395862271465077746217722521566377659520002307780979213672310488033779502661011616364712679738096934859673996822186278797818813857857016172484739683072695497006323145370084145221021953055544403946369160414522773964845056611471271726830332313270626724136040528523224102738931561043315963058903224483211077975594396061065810209455550572627925159965253326363935430120300623672952657448669567246364255054782433730929259231280776581866379454532764918160420311003244029624328335417981866169493133322004101086449641368813953480190001893103083472766932822812889142096584526950180383866650126922772721452147250642404225160541782849389139163103801469758377320201159746373934130189898201874706723370374806306532004349350158807418151676237789152489454829937855818519024041818015897356468522537117047215918926232041356961146067727367517138308344139761444092432194753244765932090591211261747568257831888128053849930790083933384674205732732580026662398687229418615398073636586414636511693290415470320538129823639085908029167381363959204709463527270708629752169862620709368908165230249205739030708771975731830324151542114216196448378093976422444539816538684410040345663814696542597445370637603145208190438453057974391787254396401865076965945586310483412200413201027696734929144396979692439128038676530258360332721658480327917785618000074132865115647553008196015174371546141725712075658061180441503299363700282694639380743862662087547719342560679725016006422851732815610180673814827544803164525464009066265511158954516614840193233769502986604628063437891318096695448953594179436217886748493597006744012448597759593455296252848270304331145913280584103439755649299592123351489781316810935547745799536419879511589409256846330645618272674519367704388773645402941415089131090483746438504970562463220554678182676363033544592810735596159293092790123817255083200532705949654754138902630310305450986055108505117829278786488970132238270788297484290237953319882153328356436633220296032594294264412880528066906921090770457071385376107053177355175027069784686492836105494133204966833912426420824530627707678672513533596876685645562605014425866115453554168699791830641836249376482586632358306116616402642071070190771309049185780036060162913993779110561789772580992714956525279339392587858365081677012644943723743274261956111022355670519656977112732429815871705011900734911893294661452512155327590547268458378317089803156821201016386255820115376904108580907667467231108911584984449192657702068154344890348736814625944815434321073993563827728137347455788631077280441148287498418512425834189149865796472671610897973688090781942167590348039960119419460943564705002496889465152917140066585467300326066305445365968675424205027767562378308326083637458333767447425010538311923412312516089698519194267847073912034043013497145683616072457936360752592977267103682518692043444489584053451771638364609263532975859631773817526071191023505660661964593640198965282497145385674720716814546051346230350580102178780584520617173655433321233531346486852410906219810416102590614435706894537882446798998772218298925069123095382296809091250504871438438150380528153326513538314792462736439988875775359903985163800135051431825974816631254153941397566910197082013912533591205995925501432341689182168935745177894433180861226013917754665181400663431399602096980660333094254078405525282436240694981204828146839422965039252807293086528837338982871533869935492649705231672673841738434380767655535400023618948184855288899854848635810388921960530491172654842654526830273782485856415715808393522115267559937936865470601266389489937150936370873988840720125092141830015648695058837711219026686042349328202476903049866213331936906328637118331308604036200170244536679193860638498116461847160439171987099102658498466469491111702000043602889508046075220220205022155283696101778422819014411152034576563582844436741029389210908401783729024147306908310319461201233647758059123827976756192657852837629179888549032148265077219122082053647339076977125154235278281897750712743426087966282344914380476799809005187059140005741744355465389556339487952479001473250391458531578744151322901212537952290149362283138601973048792363506646343042938941149277209623248382737578232902581480281795727605034410027187707819594288324083425140667285008072023010135306499117162610723303421587828660313677785657889931073184643025240016774142717409529955872003589717665539427725081779519368310189440929136802928230381080081860110770637316934790610088735919109092375342692356750350895151044092256511868496285999581276195746662399659994007588332158429425109125719896839734948190189055463559754696528032256871018553450150597443468374617352410827636694910982958884285644955858729067522095013935799773731202207095381207772806551342496027933638845535504708000787442649081271020350004220525610476759341178841003657283588802294063929385580579202079505190019546587323526992012915793088812287587383302141456383654772527553367115523139511308651451342280996815141070234577275754425304960880621609180122580179922045279503983479139319194271400695236147800599306673231903871165760661616546585921566483981847739404466416034662339495652788779939458414490818087235934875997977869232244602077030695982141555925455559527793832705577324235116832005123871791053514044457681182476802636071803005568153777755372104052452184010240387403130202813511096085447727686896171869725141099832184914036162265897265963217527232639441916532978584310127618452590706208441903599957998042810111280454533154711058103328325071028225182935732792051202064214864531506683376098235419980389573651760407217863725495746967983888060715742659174478941929344130625270616791686497295767927873443005437905385425121007907321822498209481328361696070962992372000989502876563213438923282989515202016113901693585832451189040080001102174017663766200989342045070662969386065479953770485560946700876309307047624804968822837946536729891629384729553232396596516530470345635733034489592934772468441297591598158170476520116908992992777905774681469602391032966301515716359019961949447156738899476227970188860097983921951631393167199866713389433453661187186076426404509245038583045482940009822988024409039658106258845412406977853016053925401390088178890617217831746902584733718859442093042070576336221962159187921514669267035255155073074968064708321631416011796126575750157454916886414038492825060521020860162363618073040950491948428606520258560276154238622743440014736266233114429390412473090951643427003160394174288513894002997826949064555942309947151860609626063213493268965816146300226000042893666293151727856246027556873043863416548229898249360895456721142774850847776529760416558344033652365023627241873970716131601158190266589886989744462191461015147659950013227479830389846646308910308230835130793495638944197486445285530007776917497063117311407855277504267987505904360896919411851341720681063281194011050689343358154112989543364790371819583752488206277504964291565959134567121232585886697529653303068359649636221454390763806325941552146363788885904257260588874731007241747531586997870218769672540448889249079907976814019581129488845592136008076276138270371153245528883938766266285494608321501620549255152285490186679084319433183203017987266458904422016781732760027623736307841427878459735198507032244534383258555715345649089202459940253055318657783148017268424147231118568571628082183584030679909429815808408550903497351086164461548659289990668559839591539441008305160402378272723016714268661980429828015270296330877181265511721222963177922077317328772605541267599790546815487798049675725409969773257655614044875753249559515457805798884859206141454351402888767446154894955300913188648106092440557249959479477613493412964650581610586226864383548890481775700006890664102751827494637264539274001175189445186665435917366332344707954741363806083749157442989872182008245019415804581431449225754700782480890426708300113842953863988103258929285322244774096734501345537344996462992221967549205795962623178027084298399753743679773236446330310481287910571354063301597250719037719259737915302776792136209867256507916465579943610032366940565800888956636789979933718266892728295982698025960278365611684000464889774552712967311393923857783560986233499951564694769092544085847774558815474473310481751173041087133119475922729921681031726836110920141543720014799971012663213630636778841723945887255166167930443906297229693257997415429319870985780835628202629496339426774071562522756639506541244606163676041686731676522809273173944013647699437481397571079292276977525385660869287682175371913010437552538405433778483769375123166942500342237193092349400509096027193188057204158559806982114669214180872677258578784414384855109941533449412815641224537426734843338546012779020693891984108169529575181521179781906521979635569895869164730449841140041204292463137167589608688514451849993384660167107839337759405948774464552498919014968353445085034331558484724958565145671648238113978395581437595796661551429778523969778264194773531770210915121954850221866935007674772379433051858303555071477552563643651420608625173220865126045221532102053786248964845542152082043953359266256204266623159485209379168464728657570520556675566879827128523132346476223770021098781803324975989085535723218606706760810453807787740362535734528720573029776773047338068913921338449816711663365654814916916166884117266971925889446030502834018521833518146376816319214012741383140699349397347571359978477712731299841936141891009954909184089253948332505813386491928603145652472622017783437636109394427824431002937868684125728924903380696594889121060190201174904395680906308298192581716702903881262933787057122774220903352329507000023183939463910326391720009889555809171619769156864915478426536869732748133998760114223357123371933860179489460091225614506259100665156519897777599159786459983464806010726228438547085016495031862482644122354155747992142246365609944562201075382013000102529524956398114151645859590722788609574520703511554325081285008967944631612823828384055181000692158157800050768334344538714375107515622714678551114728839639777793086067316470069261209669336726837786102835191920100957830466172357147567559555181486857540059626217191946801666203573941554587831258499815451539570282777755899292377322241040085077947248952159876529991363722710634718067052149711011539004323281467849094407435497647642023252391658775571963952287493445175615583387548774378107521848829870477890630880055530850589022362831298731967281955711649668457629728243795103314635267676962575910951268401958609899013477555373612577520780304078535538543558961505736527015980579877798272297323278454693192848218780938680685903129360918702049828304469562541649370681411756795249088376916857310226649278747466456382029367942638027772763505642307128047520649768442206682399294920287199193719347798591614934270221837747781523580424463576039855763946750898981006336419433705929031099572496787974054941569150405320288928481982510069179765323996932439128956622296033576543813951491773554905290360138128769945647355696319403751908613564215033378195367876378512664601110898425468029179976595096362097109008491104326440196169976234286866844857681881672354135674002630621428801717970306167296058779578944628072996211496967889031396080322209479440500169882628123872123191262844792671835387238924175089988781664965194586833524349878930793743468463244945111158558172174255421430649377248005477275005827713752540039142198808923229006615173486120073122933757365776392814969060539708946369331188527963165945658410699045144609763456847129633613981891514497068546307091799759312967700597169018311703105071248207730768856206315480208059134246799017851240220393041574627793639126011485458547219990626141285956919765626439269718361221043084729108417053998338664793875498181332244545117068648853104543723026688565601242570143055354296684849258732281850677231104994004330188855840636117647983746704337646936602691303436853972178180611339272346466716194375119740264361175100732178629241148950081099814477206934388247809506499517350113018142623285782769999730660884529791230290709223994531631472025667226620783881365461381513834754612329583320397372481486671801125387202179396259090671844548159879564291663763261126380717791582841544502617925068930407975362239240995095680616016959722868600752969204732227471805071921418656424324393156722605804600337390139712276740097947379118661369714857279122098063758473595553522558197134143787364996268070408578726194574436641289388598146192010624048439763463597587059435445996138783038996075848182250675935463134297011488844947029961197800840487390310815152055552807333150591392094414647499335975627981058981745185132097544663625134594296301701161896359348552538786305798352585964770229171254395878350555844610387756900829028634378484580404994724219818353515469578670394166587648132101213227358941128012901282003846399739262033806759134436109335425376836623019037637199644781884262051431265078654671902994797950914372220890739178374817622356961122349126164913997781387355688976200506602746765659326927221378711425551779630921533539445844538548166996099974759139590515475004711113760157586574400181991067763480002956134170933612913219401322428375593612482845324071046717629767285847059601075145730480867318924709138200540541626186277755404027983326144343301702739542612588354921397069573441880886718742393616087315465304268573211239787539789685863530082327585465616968605497966298696298400023690641724430788026253382860278365040485432144089379787134291590370647886961956100882762276302066391548116051701295202228734418532874278127474121012245178783370727578869488899189705713262746903158972046847575874973766925041271266750026480721302773064006923602738116814280593342280463015874873398634961909025597294102718792538198709711274326538478286170629332117854153520736501879264439428299594554528376911992143997108389698015024907878563398777703185367491948373562832579253947936507718703790154109432083921692635405813164205596388102129487876495935132497959144780702604937442202446487395130148528996812825080167929646893630015342199324747989975696260679471080532582787007815851071291825825777978972169116342770681132786817345658157118194175168543247752234645321411657366279933038796592904209548179347834157303245861702875758748511726031412324545832812784766324792670933165883519887647462047195994171170775037415602225503589210525341935640728345126642498982856489789775397699089588201434762684671693602463315267604249033012659828964914066573481276046675546044336953514970772860676214885310357046735634667859294237584909039763764507905292088540758770649106514870119148684515327023871746227584415580342102688085783915513693281366036318740642836887873008674685155523411500383647359946102496468536223429434160771179346441207334338809322054445476055768303111639756919518686118576547401114684112452605507201178070140024013421769170164552460298273731536146830282017540364462351693659119499698743412173457871300208443901800592851568466929892999255089384604892682947824051615730166764549033528488256053871810884017513800750222862187851566291514280561631862215809064236175055773274730535755333111802703406600841619839221421082452752982775551335918544197891810077636502664239206515808262951673480931811748438665708477397927893227629606562085545216146420611273468171958342393701735197667184756115130203017952561267194567991925812204465875148930178987966222646658389185257533739155035041508232805907357316796804302073065101198591570678059615628080879419990357907157030580968055938216100149706208855555989821577465894202307997415017031682474869206828771817742320527021078110107521930972645945871323431130985452452789917302097119496741637076744386181083927543771286850333963845514579275620837761084095073385849770491391838306869520826970511639666806667286882635738507280586282923166792735069744896055581610319509031178764634079602229239842195045185397123127341167577374868284030905442565546742624690867284725873881254295714300349258029400738881006287864058266040358793734165668881200357103401242406687075358319627993417263054372249499174385812588767342465098830160099291163132454666322783614948123428874600351423943048009074846253150886989506096454304008399147199628440453289007438422116561354554732622517796734957351448374903413678802454606834530462762762146968760164155878939463916384937954987597514139968936631676121615693526057017654579989871292370335197915897131759410948800804286576878636948735712966502671494297033150278247030433343860667021388581417855432955156106246686555703471415293506852156101173402957802392821129699607749866036574197698924779120882602760936448911672467401235546437321856787707406865022366666139646619203936607582902193075154390620283988913973926578959272773596564392436516689834892973027268439659315660676512587432158046941991586588094690493236226166088323933021924422466026345963043684891154281799041111848179013274561341625416651079679276963515541037934690774381705710356101322924405148226499371699810436937753664146587129324571519821780371842098096476541692608182261205233238464476297389809965278551707198735646341673290565684014102835460790886017166253254284255259085467863269048541175367921315918211682233439509761418333861205711652562524604912913030914256378810391760925612326922183984284634920126634600523494429524015059804203366439521157837469468946543832949638579321635882877226341919006312765431676462876420437006439106573441685303369691626159754213660401728822249359147548819620687825835552986203471523128751120617266892686149058142858023624804551690665224945435034323603473671800014599841016469742504533206558310244238354805983436206137384125166965173319194386571615465794990166135659593215556101269832579095666675270855636852883156992514570215737419138678177905724380250156904939047053909923766409833024333494510281562543481577733112474773387414362736518666820858542463942901966407578074717253153230665388617510828898585979923975888395411992528175279559415379943957215298643206406402680678214432173182749820713540481254753195558522868459642718341686352664380100348612107594805021631172310744702322471600703407551298751677583191778712997372621470632052737495028224877138449574540005510521670008427956955365347303990614459797705459521271019289323473166548801239819762379887188992045981568587008627913189724094379444075742841488626935506460282405921925679354802122664098435607873059108306274555566027451636798066264755953610236857186190604876311165813340336738661668746652786287923762363291510007596095526110165965991517505114668780279215711552907035918470338117240798922263999228368582526500862928719478196581446518142826497127518768601783365700711890209524306328250270231239199302645716524998724760190069488767554296628779956814077417842870212130727713330642750730255421359869389721115736811184354009467825668893445024903835376574566112745099534053735645827844038326294332402772031928621684660795500030831330500730261037530768983572001640178130560288323568263936789835803010686574509474897893752525170475855707829063411537836372498463145757440203395148699464393334417134902772281546493400409898295139658868302428073893594515615235578953610123407379068038110429537424734660595649625757407946841884648116709458193748353608445511692900686841565512479704032330547045500167543855495053301321429467511838314670251744185951791454627668210255163513116806924716142715405800475870859670817222917595094369968865839036978985932038787783045345692791005658341802987652765330098578872142478981376772173732363091063703381621609587259735157920527778425154486613381823878480000298459856899295377367797450111401428899213635387352781382669713808351393652862542271916467490565413844807887503851341014342643828827241889017842128453146300038033565423958679293116196514790446257462742838392859313153533858681841348602173641080390040066342726170736731370757065374407603276897999034164222544156804396801203324346738515005657246283174183872605218472090966716324969723915271891398319029545193790018125962147809315544969591197730168783230173515668570897163242711317349198854406492121728847821029900547318468425281614163847589592241372901583980598799931800298463520516808187838333928683921407752396855872403654138157281698514042796103437103113913270752181860827280052271441166506366155790036158586348332407228114955264064975870620152096437376146448746149073733463099791319858462461446131476868025086247082438520412297620606134736025771591026218960472227982985761683268186777958529648058791792312761022333808530247915646802985981165234914820812131914551175091172977047394089183534965864910985147711248129995728534870116885891513073089091533792228486682096547270599907884014894649558487298608888042918251249036766795255095120759602592202731925410750524000707022482740708640239393163626627240475904002811540477347403489434888740197762154857655711946809962605329315701993118290017802889660782684682559624213879947946312092576343157093174796353291746699452160472390236566892029610223777403294147968403472644812650405809634447059246925647012566778143782417220513127766384122369331942461749540752024306392919437961126501422584575992442154092638932083197439000615194538573936643513263207098575731903052588439718391639668747075063719691639017475355275813188301001170252462469473624392100211922739622632867764339988487238589163842947820459235253261259997158985250344594211695354031768337489725152122665438700793681643836879498090986380994263721695237016399831675921594024621205056995257103753312020702231969352347540496579662715194702609584902652463959482272952574155520818743577140400452059120515388811095199469111149526084339186662365231704461085865633959595956359796636792112128905206766893086853877980065705251895376462677045312333348752472846309064817472933079948445455499248857132660943455145114439810900813408037203419382931442559663319336299070593289040206938126970512747013915903477724850761766539742572585319881486288813092665446633264308171604756673906547573528793946070719987546876094664715032688115169950321619807802718114935458478939304328794795392845251569478384349055040800004992684555730444391061960647550647543814498010375090820004891708782710978481621870335055184876837726753902975882974833647854420722777835661692932500172051361773751256392336993595248621067127600375864995758301692255564468602006163462972616859666878424818613656728342419625645900992174271649210773903757923533681928297341270252606226756491784652389624934269439220619475593358326812687749334372012038705194103125779970533319111676120846161855460636000186623472099388539802977618016371375668863969472986595104696093450841634162739264497970426528252176527519414753418478279846215631979757663693057408709482144715452688328077943841349566472636210564936477156354225716430538994221904008915652209040748557922817748199529358629017411777071512842425100432713526965279379631986699347747488332150936485306900503816198453832597959389325865318553101578869554538715095574673175489944964077053422347904763568401892038722887993215660818630108432144402787419527403190459843008100026636546462755699319180192936786051786328278569138419397839519136449126317073674640175093024896031680300766340309922153967576668624080044050789005504261587183087543367281184054773357860775233293893916985106673026860737371088838381839320856663016458452367786109192385499778694177598267498952029722996056010074186218769039125618477595108087521953170848469749359267440133229289330741934463950748631768627900830199766710110792635178424390388419366589940977797073585553419444604177307792343037701579522127302864376069042109046022660095634520955064501497200621507497493892809086611049337452296941286405213382211275918723435212819710592276769460825004576434386905103402560159215500532354556954156707570071305980035170152047890716818049471586772108801435641639771821612025322445964377046560066469997037616947113910410261505025170720352079591275519853916625553150237631717345779386084758165461952572744670294012152228328638381412732437015374013070751455378750217197460271115400717102026733772608697010065104671099225114347871162559305810053928702395652812755821542785619412182837118073557630531380131608399357708233943295873540826264054159973531002482921620554143466980424389641980884010704453933188614214324779773842241921820029064261300068593551039868725314974238610828475262381394182932192504512159214575132542324299300782556498159522584572844789149779169068405989127881978289708962907080493582602315528444914034752435166785157218734077582647884714349808912900735317137489690195476657678442955045541868941162927634321949706033086058145171545848475223585713214876530197144539889734842078563937934768160462226938062544176931915909524369264367154081082254574557496500932214122124454655240926838570676323122202208586183618121402925135626073287179381808339679477188116703299761035368980696414457435525270454329543651841388235851689200914225274262679926540454228374302392646168994243950258938403650650985625286561961210433301702737624214810712502743899700733340603479946964942227046841153438887449805312097511823864150825908480829243504114977207568412999905553975341295822700317510524918430749085004098056956635061597891105961861057309204877902667019477332107040727217969408610343041121880221269773777214446035694446706545200511120654898890130161721469872277787360667391918248697301692044451224702289957840414393124114610873582140616417434834317245772634202762638416286685922473347810176076429994989452406137328910478797011353666271402928649305141826752748357376879016556120814520791286093028575695505275915456118050766705840359916966924280562109395984251637866607929433053509766560776976788535043444495592654183688045268437374134923976542488968437999646149450194959640582596690346474082817242386232142704709694646086712325269881334965210649408715482848060684838956535678082880563599613221118803050470087185995858285221214401281382061027352456298538427034470918259156329331451352522150795046543083266537222273663888067723047738916735910888655981873699724687630862817051677471233121605238680406063143749125418500068141799187877045610110292827595688996030092159144045518998673538178355050232694551883073705208310872387948368102482873911122717395783904393132951848940601306011130992025748574714382566208070428390892026967166488295562534662742273322690709495187385107247208884724192042861770998077902635439285119469406741738265764413890144049056793377155602474079236010587722492122444364666171266119039114767890496269586667378067303317605045076945239566337911063378791118122462769080437303710187218677726926933150913847050131731220996830861419998645119827303466255033181660155483745791961586594537494551282548167041777372719243024940824686389389854179253825350605638602939265107522390582170878564096380617487148515641444285545094859966211542162677312021093594256947160084143599996536641942833144883647369323093540211003215017087403488543759854794395206621009520974700540035863126471109586413133013895842742648501615978411962075026925521285720701616403514280799972606699071119657926608973290309741482659139081500933959242346536476473034942142284740592902552589374540939434367830457939524641935939307054915426693665264390243331367318737824913320394379889966128991604981986486159556064045812006289497764665075176783714077402989813445914940129066341105349074378289694401199579724317589465517574722710738990251338933600532731702760698115100510205944218015533520324216086343175388236865394918047255924387387970794467013282788078996158732547397195915294873196135918242673409028418579222030748188415299828084629039828267795157446777089951772285586856637060650598105444640491704861737527907878380818971690456199311624953098601039368159231627208483838096013409514879012349861710686365328611776357866824694675504335821616490965744587693721735515669410394409438827861583175149330406182277880789162494498759297321832933259162334947430468522759638100996667935550408519105450342458688304569237314571974855726834706730816041221093297443789874833868032746076881981473610666686523178152985817483464981661107021533554957929170289546264978455012562220098339061920784917900951604045913946789656298577527414169160960693624865987093279076124706122880755403700434146659003452013301629438428598248597761832763752659347084407979236245071732067555122140127998297185704070489549685116279448341157424035113293174681283251517411223651670280171054830872710005493472990401294560682832767240849461743476849592169623996286615821653091812603794753808812311974181151439182434782635785867424320928462346554214092609114187141386091903449443035268840982797732155776075311521360555534233846677027001348532220729166257481878955463420370808167950564250744884293690549794496038292883677983387855670720040480340919966196191305999736632785344079955257339937525955033878362197275995607414341462982468068018410986721122345651940928525259747592303171509099570228083601415727533417526442664913454790943165526991887957949611589132231480023813507385064877874893529813839780815515625591573689128482029795345201731047382309942657584720528815216213960694127862624255587729192392732885184244361231086624669252113743309828838536544943627862037958638905791376349753656002386390311345608852905467472420872002606951167729268305202163125474392692747430786697494420205747939442111832074141402377447162149250645732436254222524803799897095055326479727814927284498451150068269366586471250369429093633826053128933795705889923350036993652974969318649165392718622982465005778720264527185190253896568685582425514981673910974036781718267759110831516857812382063799427235634653746338198843381630084885676316980098271662299574930399895692154201085985439052261107496268948428325476486389612081290681872934182550910446990845757571466554638376049777600346154565297971152488954127283865229869102165956483036241313708874147775524991378975449856602815140572311224416694759358971694540345885787333644752628416993307752521962811077583143716654025039819820480790451280657589806974725778739927848340357784577087428576984519894621963716417201932615910992943183729319707636170913626690274264463117642489715188315251859386488737950526938087754410252663955931720154419010420551117706893679160934636582315959907434920519538055145179321470739461895932343969813766559998208841178693949362843753109665303156768039265080034350495195049353220819951500727529837774697146230211999734703053369378681395731309165298709773641249056040170888920928152084542274417555112315312226658640248446677321727105930657582103137172823090071711553934802892288390522270987303527579497748886830722248311863892831713648983841747306714093033901244307321155327937072316222599010055834294444435057142025548628480944541437211151956095641385578575056368211530370322535448255330745205363752508143768149291382999711178733596191923335210291463860352221962657289222621566557982879614029432938249375367379405446782118875895582576557000667310842452790253808945909569900815556520006487429581275365642734996042227517653874703584165055226374869533927039534236272258178016615836797641668151196655326079210812290509143166447629152754219717385574815362788988487888281962296896804361216233796930065122233529959637346603059794416638420131197415887890783603950462917195855300192183724005187024239769758013687732925174195538605775217835382396025239853587850027283018113024641831651474412418927039841437118438209263423035136539652173887579709080240782775531812336830844926345090220305702995405634282568361348155167039340892114902961339288768098678452036145520409712577324355482488951396262223736809071830927469357984873372170294783844938700159487327758449641099620055348277290259440343827843861095574770731352693657251396777539847264706272662118238137451744880127266128742252003071210037550181952332668834519078357871010785230625019744749547904292208551797504887212848199021274657433717916944445873494174024360648061794605198676776658482052433277291426246352178069482983002670394566111793696143539931890375830285435518717051439672437135327071844163419481985452018032439472835120450548160699043262257648274513263948677319213554448036903352240037706761878129488137624893383575688996718308395967343065475860323968394537244180665324623457977006814877582116341972221965994593405087314777032204758001396749156899003271424233176309872761864552666437304464394097423299622676783162166869389366750614806134386846384487318017975606254803651522654263278748175681812396802094368681220970420824694397304213861573076836858493998830535595013309515557244451501358082682528311591839765409173047184685672030247608194418006752203172868288077907810493405099747375854278080112942905492893602410857375590385644752545069310560383553829264062397795145548147087319570520424178950099351544574739425378356744239691273473545371721429553207695490518365676418128967550558229560023383099915595501793424639053839284230747791823202756280523210104203639354028394429071943069987800544509727188634780022831112811514720127619465786473217174376000907979945399566277043506789693775846489396080232369491185200335010279119622810439219163570339329682666046490611509813626336876446421785833503835825552019473527171910141095554022369322181173087516723533131529546925903712499373197686222826153748234378124972278984828315242634948095840673524332669225936988187587286232353703738679510772469173293049413723539982544188750453293871875490404034384025223895892947864083490289646662051005648684331183461336727503641536021172895448325625054295950831214106217940861086213941156261301385554348008062964176306008153536749813804661685640067827779590400991954197020571741755179942734323503695295921831288645481826133476165628543912756069446305124343453801910967272081574888347619444370103689637622931238993766326848636729978902358757716645462219671722894516552800242831169638575424053522653815716373460737827088365628515624216082051340211621276627558742508449295170209860294646527112117974782203737457777446563087827263263600521497779975874087864249984305452960103692482148942346091037810461938837273912532358345345517939084279406797154855458370707418747823870867212863962122979559030614750830729258839696001564824202667660339718214299725840722343893953881117016957986865550777338886413339134105779559101009743738679860530020077018822668675082364740148589583132602980099424050270962982475169685574963107641882132766479969606766951412953616008122732295119034732430172959232344088383091584265469998035121475078313985330029013421140673960120309011203299865734868610646943566555662797623736212203962238298447796035659156641632971601653828043425984447137075694287428233326869358723611757342728463538094670022023954894935256701704174087424515138639485725577382999262117877259132898751310162933026969779542180965891686963531109016816477118622967908961564670606851851059689455316859882391399432881951007997012845205279973537403847732826218343707607319149041020759380244613344678293140437983113720788225088350260650835205465068580614271789817349569506352667082435573817501707947631402974788342322820482581054819586266058104733619868225605597736215862963737874414025598879579670325615551610424112930605095520954720445952519860738896569995410426136714865500954348792539867048207251436716725056097367284496312988460639168101491026326606769587997003358044154089877697274166836342460020158076688160623780333787220275598889701850445996978598748150398295122420311701122363243259711041244634925343630848185786975855804789662968472506889065138462823508922257026692096023324472576583766843777957534546787943146755186022295641185844507740967865109323126019181905795764997804728979429397068421644763418332123007689945388214010940439418693534084193838933086359895850441231644155114365247755069779576239389742006202465896418421973751808151422568408003219798024355918816242776744461323255994715209019693382877296183783004708817935253537751936627103491243500711276662732156870077640242100239410894886869212755923131214913823526976721159837664251384051736740798623862465420649101285279477450599168177630051794327289203656024161842807969372509225194771677818505646611273145853980699654854552329318674070464102725301297105830275545625642783821067592091061898567739805414928811707283813824273951095177312537674206663656896988260045004094467241940921104212910595717010997723115695445694525647228140405203858291067963509401241991674575280411236208947658932542905940300845454203256210972087269777583023600539091729838206023568968217907530234753243705254273910436070072936253411546954981760511649995200083856678027421571329688476050852398233891542979991269985253416564053536732825714996061228951195518692463619760880394838204837492438629546958733243552761388925678639013575262917814945967637205718006822897857508072295663755553666726839942080393735207038128045088816993900773541691743025416579465477094009239882981592183526850433789632880833732390626112692641186007761809960590557713462160266078010884564531940632515180506577468149850325165091473977377901499335556798238914384223433278742604567312662585425922952427525090745865345179247718998562129240263729898850736090738271504462786461631686903343482333408974275772389309922158941399092424365948617491303638306534359591096597624445364463629088771055179902299769892365060360686296280709236823455117517607695799812396320776253982939986830047605893747033036296611384489137744352784832187220293786195009300956795488068726682691267336348404915423457390397061625167850177841048765920370126215860409218993027716128390614940293066908725448310066148913675750622279045252267567293007839526477932868327135568834874762052236008383031507560989583894691720944841193615809777921501772201779691196260258189472360359131948182631279737292711813180616957315765673149194800530450955841799572051508502544209287386601456317304018873481660680079792519450396262398090447796749488946116014029397253946328001062542877251610734746416362307392225733267638763013721028404001153291252664236709911234681792327439286144252771344533086472292493087906535421271071363753874363436141366442254847529691716866819817496456583674996850698218252153814735622835674242987332052798409231170764302519542714613739048624957143312196881919732312754302169796231121993541668998410638640579991825549269355359179947230587554152768262386439407784774183494898401748523287110872208559610325436954301921164659903610349068349848988691806584530292197779603314604194361448698509092278973366739255555336902435072891294684964578555578755969355911869203719933785124838762610744764252155934502261718235541855749985262510943046163087081813757390192182986086857859362520356242689572153667822180042740479622406905855548369431952200235900472269961871550113125323776700268565676334896313363502651321171971736841086841770524826532366684945788489147780165471716082694481173249080659885498035787581322186928363533225596968561760420795210240310803954298390440243283529534761410762976013706647132030798603752545389158946349278953256906406676636908829195271174755474179348991904401695019342371693893104971300403866656680029766154235698573637346231048022294180850012779803923280852003425777293043184533438354842505347618537078597240611856368143052834042078524057557451404328101747596029556603209804475363691960569297736362784533059290935928123067855806016883768206805566976864222770287979593670659731514500841630283781616679447269718311924827168385673149266899010796948464100717954097437421838939504469905462900419276920826220797527967008442109688092246179110594677608086030253016350780895357625110826586058228042283344795714998597869915599832019512666564667097537824616972048572091184132744582301074886725859827428706837562370795032741168184872621432028159878270273961462697243881871370518489626774763034058591859329793655602441975331850235133904504876776445279171788399503080293737491861727165792140214234224301811892455636187971513010934644424496832837028573405052983759262871194889083665306979701395973747600482319467348815372657611710154450600588468526852831597460953454593217613942001055256235214376477954050988687750056483059846706562639410681745529578555301509492548033476801130728164858750640084192529517296310483598794611993773637450950230916288611833877522796387356443532238351038085182408918996889833484476618126918187103679127279312446457789318584409193187959691349331470679245370702952787737571760156870257207970650823116444437234328570987587728114801307515240435207759262997942050882948323727678698441011154045691829129787712421743240389188029221776513691289970543000277595404725054650684307113897032792573470614065271453958842788068036473723364074354237496475053355188019525935191756151877137767689574159143943514290442143324640469060598577124401785640881603675090966261520962609737125167500126211297700505074511541720141977277366288817497570466176471905407062994427016846940381686606555694463321684618084387625437176547948173739147425522038401959443460887551617428657278054020983236319888274782921947822963362146045865779096323259120237670587433130687087888982447529280517202255015562981080154083569895607102901700380765153331536201910969825145640106399610273294161269000652653628166151839441034922228788567024371235878148573872918536975276253208489799157096971300906803519017809354014438022852974661638257981857681655645349335680719581912043997829426146832892540638878803108114058033256704417286069958642350471376837601970762561355520320287090251930411784616760026401588290042318134880003590252021066918122768325263783087251107122374161620771815815201017810926143254942600562310419171576351362941382930540068068522449852523250896416542456586568328125136417011454048427323255334416772807754237393488654778148159789960398561940679290695927441138141108900949102134878102757611311514123376595937468248191505033497292127230099835844214985633301789549737228422293986050583513998348314589034545159454996147420725383016473219563461129835886766522554292314725325140380387273507010383113914151171207206547067825508472397326336245682133361596390316811745296798888011386953232404529166867760266573317776257318252419347076571305952737567449630183924188531019912184100495391336402474236416563378807683470953386801317304397299816518817946648487070708034800845395063062685382634028854031156582176718473932255073101985036125477166727559917097032176197802680054706232923603705459434161151599332833793548420907042688032361551930436934656797948198926566393320847954839087237249614485361187482783352284454476877487374304039093253458689048789578330091874948357632583906749610066467379443726924374505064582373434048837016543298725242535445266894421730698087160099178460416385341378166730328887539861177072193316644606813946626672569517144419692882543443210667611644527873263340109013353861678305203694605162047468622006925169870149579775043923529709995086053854759409478900307728038636649195978269826235138836925978637712384992534483048811767781842790787483896074171433480872602799030739192389589860950894207519319347067537209253212765434921566952800562116399284024420391016734024026376549573159869547467702307022361332411084327137945248540021696148356235461937402050957276645210673158341769620461501478634977927700965276572042052817929540189281903668559970757621208863302788895785306425246407194754632599675008607692845181977658338055730401956256491469537173148253275937317960089875953735561490333697240443144811155370616741486940177344959661765101651603149363150208475123345489996238481157181103154288117129768564152596876173390736740531946115134591611505463265704149376154801917333511123186136815455242328176577275638783907865185782019680645627044904605079342380465611046383195593058675327577558588130945771171941961509770026465597834789384348545485391675484309870163632727084591295711345347530713846220195336606436290802431918391848032912207852137893357939720451515381615153488232559780484943176213083940177504210328232362657027452213117566329241104577498816227689676540925604514318321214988520938009705694958644605022050591011385207059957259573503619475970502383147263866099165508206608751369680332837756876576957126675332852430574965873787228536975980538193168506574389677548900796711308390920528974606029935060927080784350281138937871947452854515381051649760540032963336821166834678210300170307782364876979235962159243781317244823445905579637348392603196938750709705209376069263633142644751787481303568643147843485158919356450678059612028200629931056529871599198337977145949904376793148379260023511111556054864635899665176947170315749188702996038680855243482036296398721451465380632053125987214792088753467001647142214126203765729084311082373252393350868304653554819044523155757141657952085001157673361336382409761321158686186237152165167269956790549176442361531011251211802708268128502472989151242495931111281126742199060001145987564508213858177964458369162105678473572995761903965826349687632450762542929989770286155934361364390050508418603166729172889778891269803021139768778461445340506950996406920211572373149775035457683941691863409792493623976477876196170043307696949323593820092935096087928668820270204538112009635560043547426197380014560842415121711870659229509140311313092605323830776688740784199777932563020932039055246049099844058731907478777775828734876703502064560990490863928527437579864504437968072966023511247048127394078690121685178037288245354933299343200481039168764967990624186736061731186818799384768408328249268965469468735971362274846630468348076244369018507598854389524526047194697254042192301287524112157973021500362764673314344144857024039744052168225604898954288497858396430461147364776833482227397802932766436484273873604859941577864376051348458334403888505007526534882364898522199072566057379105352200308451844400565273033553590641174710410101801927639621803637613751918653594818697957492010899551591695673947865977332770976084180197951351796019182545218759693789250988180170613798346655489736677383182169386322032120978853559472524823612067024524278073204295788337031311621807300716766740991669403690900235046549950441445188801633200093816667043981461127221382193714557105764185583263035214716669854468924072511873982831834191428430679004572526056230701015943828598050010451994951648126333503232264105600104430239787856189662024474174325948988910637930715863321456959331163574474043182211001109251773931277829625985496189241459172897267781553041793641732203782706185330233610993234852527531303729443499458349703586399362379168437757584781124430326399962468251208083115457812600714189764645088480213758063950965195611568342743520860160656129613176233649622714372691350428313297401274695576547070767420916440657734925435648120950646974253360879457964410688186226017264699074009552952321720526715723627892537014129145754811041074133979448588445481146962858359376686209186114336585643827226133134848664706430754666321834210365033637718629677700350679314159106005690331690381992461454465661662026008090516804538280769783761658678668996034873367127639002793459935111004497912630897484382799676892894245424259469746905429647736009658083983215756554560088700037314589170395975092742726811767114403242585212051676978192510391340878044473069703786819153687363647389963310463980656380712857642042339645475548459767342901266863350346070200585703803004191270057391270169789538770452370309661826334791959741896604026652796628093628985774373822147397204067364468269738231185646857416442905730012714429433759673908568065733321280148274503335107875037559920032168625670776445087925061564236612139406018255915505373347520251926891113808390459548835506567091343656107576684916137387109146862803252776837939200563121806722289389881852638651383758836718045929705916552800039685174974792599520526617021601888247383678698582881351909194002514709328790441625295880095188399474799416289309755027141236251575888360160679487381032347602157096365725222358657881525622586636565809754361721962645285228722866921516524946803886817758845139020074139513851007639931446427848593571306142082352920365061630394590376026809062351531601312093678396812071220423403402695479870324408667057099827076898075914154256956631924589672452828115830644681915027241779187345231175806627780280981249126604564848613068495751453039840982445226307690233072428676065136522736232521408751998762364730404209850693258622708244185355712201461346452780084303140486436226617003369818808310276785611331097959170021889041720228755250949659994338694204705290432025368327627186117901147437691420910485600534209099153648318824794049727146008762702563423077168334567030950642390254508921736037728612207224278625731009473074563915945367407091373590818123953494513507222983098115416353575179836537712495185258365186961060889569363520652948879473112782286042801669471120329491893777638818917560064265439712017048023364749067503085216820928200435126186635601435684226452416340901829737536845757194336269648808835554971035542300078161083631541546544844327906575401825682262797902900654007665799290662716699693607161128259729759350618619459660255557319875336333367615217513558227180197676064065315450229920172608205308145059136141320983410578943073166776871036859863936653582037489258497472667628932767642964448762076077512179155404264633314503719915441866262079871190111870965704280098952108581830894709219875722639624970378155564830690366943941062265658938901988479910353705153063708923725470906466636092832708828417456528837711430465895281429418965793794170735740072497027005549660057829236154422966399977091257259809508758185914508009911931241890272111325652920679765961220728926230550597902059351979133443836112148984325726291485260618637775787459198056972842750790495983807704905564944659466859271037573609720275063385723535015495122217364899261488768837635056514405997361494460228606497017248407707183092299297386831258891782103461882658403623827356756814867645033018654243735696190889534718675052351771352966506655040566225980690503374086872041624811525307789630155255140030951745724398936625589039972731304021918887219831731580699142207845399314334106339303064319733522896433055782871695973123234607110122517509560090604423323588812672799456915284593491715609537760831678926497054445120756035109371252841728915015786295386843750434161361589962446288392591979147676901735551660074131960218486550814645338162808559551770609928532863626385924349633554852123008105403781245810290330853502231611516907435729711321240711882816451988592718542391596777314149994230325111337135065233267502170146452077097295315773913296485322078950426734865563204352547851892541800303359200241257178944139893593081148395282957819207895473232702418207192141440215973744382173628367096459059159766029199558229228643794336985140141344796571593010064512072989642008223204546651989418243177266483368920124677005874463488636226769498575285886452622450609279154854377444104729809285236344281883921728724241783803443468160837707696122094358941176003109610968467076531148525163875954729377309457249364201904130295825829258194915548581806628662841731671225566017194730209074287675345766341478421447108183271554604290409683793156669784677706534534177831467961957857354713804191128245463487507986025396542473394780991010609268205907348317401631150836002825358421057969249080798448251162637995635960583817976704060294861989778624175026716464202033743216314001854134339143869465279770284186811137256399821129077663872879182513090764388691560994660367575624411018437440915348512868243955342188517864274681776105395433341788598233620031125229115142598962185321964838174524447361063455763516788704952539422297625657729842432744463741494765550760634381038960272862840998804273095697492722255307900452051396085356473640014337012886710645734942763088086493414865107515540898133366055720295797490421690557047924333870187159612814226831129970746449936400895142970100238745790395239412652566031931821854296073254186018141785548185040094692752708798255987274831470885223472227879899807973058788743473949761529597312527612549800124367463975436835670960485142083927126347526404632847861210118822962319130069679709144238161968336046513743287110879151646199183471108978847601978860216688856089536709717853558631334614539580249532020217516441655352418199718181308782801724896175506608111171623562710741359223908279033058198571138651140679604204042900617479315201078490563983670625586146527953459113462244355336695499388371830183509603983280681127982140696216090052947151706000501869729173475598418532672595766186536892593580389948863714935027623092035295363435586901594933937596559082271850636820084873034177295288819533850040391716768570844441328945650344187174503817287515774676917954111575510957504049174908554178585356907536334029106664544251627606501226080383236241285813289466280294573192615813897517000073080067925084719678925638221395189329658326781061326784018290098724588087670111143815871607480322420260467672687961721701413189550569377117953243564366366993329876525232434581438993918495739636103932433231640989287776551935304857468268733656690447953547682133339678746418823259408060472908908116612553207983984170615925564514896055872158762892928231689609043637414855518944926599802649061156657634519271622650864940955565499993592854783118066637194459133364735891673549423702830001356713903167908220610047134358540418651105993435971388560686591219225988810194697568577812816210217486946393307049534906641100725393950378471729930988250934770910248036547606680188653789824385611158999965409309650543093277339327827859660832653280811933187695651442616641528087924476753211807731901142159625261029810198687777300982393851998916971155068984876748296328016874826884345559120852834190965693300295260941067794428642636843383178259205806355116766872199434609234243899277937084332864359170077703070639195826079440757954366263922112302742406785801269561080683742141114455113386532707063796030772266519820730964484599967901804341696483539454047121640817088507844175193080838758385503496209973780620723464581660350095377392504630380008808073701924485770285717908458294647027789359908537174748903961084556561581804888426134631290388920592111925665694954674396083156933962847176918504791256840581069969326315934695920571962164897455002603990535536806534716459844068678872522787969931496785747614593978038914693842897206798014845182517798737359838639986796290203935394379567893421155185099574341555276473602516468785562173765050861991839535607552076405033928042682410776075602702219149157417222281529265672207754932320506378385546245438978066706831939195433329558945189181612341998130976201279897442821086513394761102046691511940311389987968548787419761636756714522086401103187096705774037399400128977960933871642303427234275222691086514096112563189067595772181827129850907578510636456792129920370021653241449234141112389133144519587535306595258389118745454036319716800462109273305537783552521549702728799362416746789499582752002189431514911530533180186721819157439055686565166753442646562639182649121971133385764520105423275717908698523680728893346773421542832840136947841136358817288239122656465432715400366130618421393586753614886186967576828565177521929029597752679886982153584471704089237212747961553861431156204092593929181964205032475557949317609876841364758443383728109932358574689726225856285048026385017532660617849220009552074475376823116687397491162434182354273150479751457989854678841343834783056265380963815776314189188213029355487832362219305563299437855849912054503764515063876033161636261681504502547713115763263299583351840297431489812426397263099567281338244972518417692644224442430208530044703724578945370011479177756560760033894229358675316416077653106814563341631438599148329029712231166182620044381543994869414327684807818652503702458053380743807473441207566127678278364704268421572791302602673311433897082781046945974092908450016510662994426650939154039127336808096415426262493020512928885157865409465193837739601073652156313328806304449840085443169311401659340230526526461099034315220108783102610139207863721499008244476758593565435647463716139652654069464632017931446292795957390194427722105058122250898271028001320234854379767170523677514512092656111311457089701293118406688624498124249351792367611988971249912143868466339545510951546692747137768869394246695222452883296438378079695441885726303387634157460583380114337518258130449569246208862184048813643672371973572752625833071790693273238901689471720624217653674463605610014426491467815920003760179782583236661824541341207710362359022054116095987173008842924868007369134873751181647052915967932230203185630161946675389173889635999115997757998845211585331870965381662491437931122977091629212815758226217350766471704362245087263034489712710522123113242167154330332180934500393397421158513604729651519226939227897875516159022117285897737693196333208505675870783559152277786592664461984397353860142250218744513625465765435457523892377445824701940082122088629026002890321299167727685549292532221662434156018793200843089894232451604918571431887927609986976339309382178191363160466698721195453942197960422543730925556631796063411619759406329611033109597845089929830200829837623854649339957383589517624454746378515515082873312878824160844615793981598253097155612010080021613139034888598808854013641780901652555568174995536778440571819832265776613542027832228089732428504896873176408091370709784802895574309619255113654193974603121875117440293321098801929631567807775487069246534444794262265780514111090965253696764364613591971427912449126347474468130564888526727729332536291888310857704864327490701963978060859510357820330964447488135331016505309160256312397121916633968608245750862573838910018755751354481135108161897002220510129297868878045818051080541473013031625137805209849601919378872193211688824108605034198228814211829340327309221163420667728670838148438896192155316714009112891288358726706076197299922084440312350526660961243580686104894707965822887524737698752192483594117583999315877906910769203575243667420160221636876655223876107464109418060730900748161195150909326318240932685685156926687753984119430021752629993025666349693387981144338035658038613547880987544896446514854741201102252435212917302906702759770359623202488846739212227389481868931132623298705850295956023048565436311311678937624843852242408378259568580405651589366924356879488337059399513109872325690546090615845293001074048983842492204789707795113435892127263418934808387670325244508061842592951464727795918672688789213637089680168947968521246158784000131969631762289869327496847966036631136620088499670710216517014438387750092386721451607997655478206843710944377205734297608794645916452654835377901826687078189804400170477037134146556096780448281159233880294138256639039017382104238931622858061921814839048204779066595740998117722390154144221885859675582882968639199595340830954212183746998087975133917914711328647164426631529796545803652158447611011108033710667753498872061245251957122422459406968371280965832942390834949865764894715853295623635549898531423016599621642224216979802957277274709402494296783471063464954233391907614530560437248803876066962366437679825570549668436008359227545978102497484845013042509957464807282324557130216284067436172109777725361705084619638637885906736347357580567046613713496076157503717454558742724961099882211965897726361134947695505508414738854015434377753490916133529273562920570319258267149697613911166708561203437584639832639099539994393044543379762973209589001617206938111953015856090938633120019207877052314585091722907182443417448776111604442157797957205014200500478536953650826924343263088277418712419119606185867691178712336059936664790947658527734060394757762725216762279490885028282814105361163690876387435263561852217344540971061211809412092917778336346302939032261149605538496982500829432732304800792187479320525827848962214374451728056773256361651949321786676654693883354492619415918891209804841562491183273024092706632847318926780303469031173947252006791538058522159725688844037340316685712276074171599149815423683644346280984670581965964899655843759903279005297218551421296549666164273934376211958686540672486235884605787497451004318860459423577318939632047226549168654654499180380801549581739660317215019010051381109194416998615360748807795328323702292547279638350280773036879776687525077126204346584423474109749661226146133277756734532306662903616701641448147378995017781290919699909577288767887995580784300364770099257194786721075451272135676982830877430981059639016515628980084079870159655915961413773852868687872901880055372333468128417782029354876503385582356649955203862811333120920715049599023594960331442849662990565426730344396259231483559010232091150105869327855934417026587021607033702459608509060458641669214493058831591389345228138325069104261170431558870999331987243441555776899897405536478135029208060996281191436793967323720803648296933796979452133216501231228787918002677682733790978898268588643206619947047692393132187315112787206111732621928710187365125320505427964884772851856957198775366458056056965504618015035179669418840645733338448589031967114486817813224142566547102853415903160859581780667394404454792406888114662297643068901555334612225699402018522867880336216695504310726408790747718598196837598006018844972885742264494824139542585186620838209362937190079402013243641722113153415744910594686873964140754416578176141073429660437492907972711419457958580462924692205835872387423554596863903608197179316963465927466094954011236626493806595693428347745745574123957135130231345082724070172519558518504519036391033753058026082976813191619577551843434909189996876938617587238682013464811010639863163857869029066333449515031850488234249522416432550899136901056617617194923241519264493276818221285281086362437134709366246092750128775810034950822152313826289374015488542364705145092025525271344544042014258261562367591009704495976903205327725388177291201078431085275761742969179544213908108676106482577960768585146198673082422280375755731227565615362228144704524381698124975574983057631746367674342108130199574740890617185124545589749113621957743124327498283269782220399560884986607970061570729273322742087590110629821975439418368321186173179594466786402593141125527499906044051464824544332614057375949614604289360752687057811777093791240713177548288945754591713841204218987589129201808810542027181601099164618589178451085538512977284946418534614615396825140287841692689777062594414882901697035158507898240150017338467933233929536712457408643058378581018333135777250384673703982727173813785693651051672550842544975656615490128972984137875162207177618888019699515888503511326751598783590405028441756631334785682790942705332490032699561486302567579878831804597817670514543508218563186565484354273401645072586752813179455845564431908593360690115929644166959969501258493519310340239520235632449284752749044804880239351735157999757853884216372564190833802078917154586632781262441195507538109224032579549557656031884149179579569400702473501024196880911077364578001183641876719470825885956212145805267563186059458134378296362289036719513246241014460057478903085757094132467529283158352133827292250623540517559668020946776898896082276731353297419846697043397950111572667481952729641596966323544841306890274693961028334367012304578066184896362042876897622993703862698868487068976198087484555744302750859112159616408463412176767592177375912845627587802618640447440258296721775543309167629343402364986634651136013818817175726905121232722417302892184721833610297891481369231588192331899079200496554229351073870831248106829758230030045428794624928647441829867735696784960827863510072005345799803494971410306754264264692551141449048071589639702809559092047990058138089045612535042173879118676087536762996490227674310510644500009233182378059340209545882765728904208636437259563385407854493930928950367515038439150148660969250812365247652193364326765806948605388678226546885507898879878096052345411382560460156543882083676318698150677380914017419285952307957206714032821285648273126603854042231981165049530602619053818022253468474549982327546253369017424414033268386920102526215407565256081144262431917588887728920626505013315875041209176474525941124780275463937379740747302866880999035136580218638031454766030446693630891999136039302409918434737697247605040276511465406561370524067513235349155099750443492257010566453550254199662648336893905100477492122381969668445641061235018068312525681867516986733361010476298127320068901811711957582404895397364619264238700061381134939226739802987359094426935147537927854817888681959643024246957488752844409570457585787954973897879549134245189183670438874004255823398222231237158323755612635296616550259626237334396952741184453769982139929469645933811221973171045713166473865722934255509437650939174390520261441526317995447261120237245240711923804626175411108701887148524488666675867175326850796599929012449353824431591003727847475212306782272165456169475482183895438611565663123579456260687408680041271946997986940265978121926959984641053699397410080001130569545217994317398393132450318708886526574116235609184291698386667884016546468405891422548652670415471768397038073419629605371921290972697999134597516581443282915997706063556107723611581758073575939477857586999697595901183252844603393181791767751398058825642491756941094893021206547383437191729811231719523718755499919517361674323233785114441081281160808756262696825259017992363586326452350608371273249524192860379413504027661042570634536237919040322598309721224685423048885592995207304143907744093407288369731443948230958316101677016014796570745440729825887146340322363834701940609046573109602338013427894153484142174494094098163741142843306990622292325262936820604513170566530316424986924127482544531709999682895925282896596767365080889175683169100652402755948372185842185002917205144949123993669146698894420084330796989043965031684163921359908738835440603611272366188146015950080083183033931206876225533515526950567989365545732433181743279980329524376969376873109149773648348025864684030913759123869897557137541513882714290965698046300464851183423175549269670682453767497165340537660648187954490347664173810455552806841883337108996786402463982091193015031785397027042367483390966767412980963834386235377679882786537330564154000765225150657350562889235973337893439119324839213845595075958679094682268208694240407814167593929474778226331755746643336602597096819257757860499726605057771272379975802115400317770694585084805599985937082754796988335991895724750746687783411064016022002944805075689852226195564658175897765193294954736597327254394808693582805482791056822875636790014259914234214931932356673226935155652514122109919640103124923679786994212186337370740144225298009085113774752529462788503701019204889152415594678305921261328170322065803920188770875494072657556464380555463751975342563089079015611617544444286482740574302273647264846562410337900988018153051841881369174200239331047784415804089869480243089358480543638026374787145708366231154265418642974455075953139478697854945272561268409903446034295933747713995251539516923921516376450043479622870423398136634971910692058603488888961849552689052951789391767912435993932497528621312728768922605920860865435177225940617470591091288647466089411795466071079495877846377058267662019799931626967653222237040544578354339428651447471032999514376715269023139966972560367148309400281097312353081680297091854663869681832738894936071964208896172762773280367416552853661565824282889686909088305509495720254012040175817966456925019530690105715668526911791723937227701268034893234670891308947738377352881525230244816348477294074832611876579158379465765248249030960381739858199641118649346461926952854171305927157480808982311231296251116180655064578736197035195755545150200558746356418500610402652299895710282757924569948924367398255130181009440714978438583128290915260007981496287920311809672742194605017003231262705405081594276885590483786751327218762045390544849852837587547028244974433732551550036794136654269170373024254272364164831082348820674461299032947145376760415171238792543669910136316908174773036493547246455495233768615124575328920789973378891266241234155549771806283237816263795916146748537322321945000458371560073506257737348853585722368085343719576462404614077304782633304795174547690732000943051554053066816819470321706305247768984633388396300827277656188496502965995944465014808090971344237093930792253587517109091006643493857468235560516285462263702863255410002045562641267891416308473342116655816691430157725799174933862239616017201585985027191458687799530564232419239603270829883040306916216248829922939084154785967108768283067588765107976736803397889009389885754075554408917249076634696541578490126017421176248572848526764987982982542257126632337793866394575478876589292011734159226532654407863330769942041528531308503998611577969593839915379598880252089638075505476645306238585282453280707839736178618054012348015315784208538892017849408026594586403021490507690378669570362896992951372070544494770968348483979790717924520714760139296141365611202543104764800197863195557328326937858069434792246631283956899243617365881324770920381907820245344413479957980785942784056007697726761055565301626078438536991674990349185094407254780630941554220817984951686223602378051801629131379587553965831090375634802497677620691948090609175905138143663825057558407273714148460598131650718814829001330238429232734097595767787187749781556745383877284909538777656636888497000142453127064978180878164831703049801346765572672319924128649613130213885159610307606199979140869451870344974968102447447165301850942858294702457736169520175122710710578847114236500782535042666357825598778090803871037987552527461985493995676818263571743986653792445316010857195687617611005380966745686063048624039550519700734372996180299723959395296028769853685427288376937876798061780499197224564035389681989078412756309269172559919466302310562560716028630370147532203105701637992518459445727580451926439789563360396520797670034349201674792143211562516961921357661451381868114630293563751546626387456388582403563645476675332104348983487921905626297959895892747578150294785402473486917122221537746366762075763152787123817565812118927349078460147258797692822271433984682410982694280100609479361545614028043170556408826979743113253019508871080372020940058076138864078137371103488141982804418579690782161534937492751487690186954212997674786716496884051111584791721875934824785797695099324337748249498663141772108824426554506739278176312404949652746904136490070435683679455165812316867254643846009045400432119264947003833009865172165446992262521307433517468506720507338859919469747084078905885660698665336841117790482801353383779329198157762619589164691382880923201234507556868311863313048068375362931607290747591988543835996059413331035314364146575836014327490391704514941511547833490814598182312876046135851036089572639769453743137153232665108608770522157956346623725667947149583800948076071909989961644932012755168546631548221557936564111225070601504216891644115991464042911160323391708958605130012368623780213021807054948729413671024599249680377287900376822395971190340745804960010081443675053125727888425034210588383300712781562378808838484002362354371566197179367943644746881178733908143077086909189068059884297797948572391677820079756789174475277952915367810741032272939595888295697299485742206838644107178664538605299479432186022890299496234751727216710870752575503898412993333630934624541604603087197135000823338506556434891081085315331078370062907478047313693958801300784881549710419768108624074853824113236520804369985544962230746266256045571736226747826794863791316607695073156959622398718434790628318147850754035382854946273856842625275274530015891465500622713087970528981192202170667709868199357016368377418109090959400047787504391526866937836599883462082123482518861312122307111235584376571414561793506556950341631236636605626785730416695164974186998910921483511802117267228807485329339466804577135758794592689484225196030511105127814085632333922717323870407663502237353320377865228738058524076282101287669373896205210419046103752826936320473838772065539162145874279926183759094272701622081947357023126273879557145360839395445315517477128126524299947273877399447795292892597889701718193371295532320352958423674143437315820889922341045564458089685969761244223927484543297668350184434647278114295307815349506303161753052202565130175260261454081973531105185984436820452579814844258098983906700884811862789658649098796412410761218104966237949003923879094589953743265984742462887523611656728970220507561408031256358272185630664281183675239202938063228484588066896222950684283798369846895381087213842901453304886713118956651221354285925382168423162272411255045405088057735506899721121792019678093523334146366625577254865388905690021231652359717636620004745084737437993648654340586863828034240005481627384344153415365547655412233776777103487116039850463379252585377697761782568317630903344404476712655481344927715174071912291182342817843307836879449861620485320270750672302176475356467944381396041466959380780097017529519104138362836848820717284061410495293728026254960205404702563015058853608161391713451134994255592731790199108997602484375709657510253622679919540378899211353506381807037603052250252271563809091895215535317241780635472661444116707227694171979046086719830681776100480019156389894932692430107131645700329964052867926225036361113400508306045824176241379935185867353669923052705608534276837166285762634188862454141305527822130236098284434892238605458580816675353108935992568365071078410727930785855961037608827316246975144725959165218728418594860968141189409054686762552317664700841751338022713039997081784348463051482409999698707611387869805848255885049123551299970671695134755792095204101367595985706591760509883783399775168512452337239997454927252051310632363865343074906923346419223316188063435633799508931039030106750489536614879837829677255045876339769651218636879749193491665091358624643816869052920942911124863315349550068710741199341521889614176150478819902614946615740016088014726031988328102413440519471566566677985579149996731716603370331618507156096500391617561473270491354560084108292420457136128276623287354932970194864065370934582693623385811290122578146867333466893901805268850805011076471727104482934767942986835719091526877618591822922740535722288109404281744724404242218625067749033231800278825199712530481961957209381346391558458385046955855391920678327817127746592799289901720586416327029836465646959577273773467074946329617306288984863769698358787161171731631787725284870256722795712094432131458653285145050663192376706304844096934055616551343888212328719838241189272496736656334522314712558676693799487801301398715931951779975428026784962886537746925116137983528457919254679781944994588118908117837928994982253493633694722911527167026963079080221873889283712900220572832259131063448546710481191791262022370529854642884337980957499240702680437090307964733155699802757878517575385369986048164585247799643836635352298060850443532488740674534299854564831591334261490790668161702873205615627652037402857266602143134316531822683135544803464732954097658597104279010114786613969426559906775976603349069904314340556009069472602264951066911857481020104986332921100287924947082882490496562683630141050438373114904745563870401407924352021884846702662590667339064985384068335131718232941786751124581621074516006259027730435740774248999955645055659978539124981713583885350116521731620847461457634489694260393886854503194368145199841000771056868460380286138618461685127222889461194063371435685413668720358891152994078712683002482269009747109331655675050231141786903648256415793030550599052755499172884744524989146974776397799078073729302506143425820346751136948649026907907514771698036349796841312602746608463930533953599837521985566037672228801887276946335530392941280585506830122860359880060962736598893922365514520612286659445455967314395653054825011883151631913369743156452900229194387130943773761191664404327345302997044001407101830710205686641348198859508041030730684107760434765251585345856245003190843337999893697193313247770702272343180161350291727182225231369772349780181709151484298669126835402375852679088988223086230381018532383138144042644338463481228805062055179890455628533052790902329364365231804565736272021194090827937333506435669549794961545626011114433893583240746347275643185445985529238928073243345844255636430901021661721048364056749904964015173515353639794205682486484501925089389079790796369371380633183581895254905402036603424434982422050511948821583801668076240596733614756891121190154297553762717694119990304975801201098811911751548358222880524736736296956525420299791411981879335989718514125300959198954797357111113030931988859880385435482408766205478234197532240876701685442955564883483166125803240466119405638824108076723544119510785663122498222940246574066961431273375169514549599483970586540455714897110548558355828400107135145987882234038932155787348711126067214574240506867140248019475131635586719586992533103019158828243128290712693578899921528513139152651965647852904432378611942510370645609437838963270779187670974367834730826650485348035144333673418273376067925287512325069359501291243750373682050756762501190252398377780709256778693847650577095796516989453013256943156977482189850711126794049590704583535432211602715406482605396229149745146986888832609209405487256346899494420293209361465577237332489801213695275551604673687673836740392176924997377506187798462962423149492543948102241358395572087651856993987409107811419442961772779763012218827040648994801234338391793670413035954550537512824597094361361193926127347614026413033887212866973201180689659504642590334087443184331331182881044778655805379086616600168523459729142467473813217515596670887757662616445573577743493239602632255561043796992039573235573394134472316773238558363706901670859688564804352679509512583127887726633894384506770407675736172974614030003473646910798465538336221238119608251284712401334072359868921944438867067657127427481670026298192791993797149643367381179409568243377431749891408803032377698781907010803134660790929333521933340745658638478822386971781941654681335109760156190928547903221222380856175527201294704828487179586325709111813783435283039660417344792611098585869216740687498796100743554302527769633748083051264021989063810917731972923347526940168215225659166985001759822608133835330951738699881921568963321784214603568609361199990702900544263088925834082162386572881433911917604709181137401521350207032955751217912918838537757003152319007107757588192451775251100834352786120768635743327094944771371543661602885036804048092000461101051205369922215573064955808780349567691792156275967822828154887885481095276914914523479596513933360491541522745995577417871909715406666092312526758971309536818046254109080769238052152999061888705192287333444763857242182836578030528115793281553186361897500672917336841708559845788671951154188673878518588925535462904331943128590447718048010515179246265786443222090547430305036433198283665319897249571028794587965527520887563742745358550536768255771014076454857406784744816391973882416278298744321606414567838257364159053716415571536462815593860195463194300911522447048055981885075813352714850342961318573325517743780772261399891682251606690952900565262738204197092896174925717475644752137898924031626776835540195240142365895008792961830751656496590010052403894569404746972403189789036208625277636751821228151691993618778546435761714031645199021926149103643393314783772793470937658941553444761479965430604377387725945539049846536708495071064729073002197291662212071922028405090007440842813469433051480904363472152730002878424995166954422686426519921322636210716114122654227024758492789826134161739039549935152848545943791026577574518086921692150268485465964940707770962678567117823688167539607454197101980740782552912504364279365483503299113413807767687236742764582372102623403895545632474662775242649837931234475869623059874185115998722729220462333062204042559324140096644610900010107497547352899567831571272865412864295405140292817047425317851045250218815279636563664425320001235719376471924824894149981329419938539524489834544574073866039555412780308605108861248375759159006558185785230632508910029560943712653500790804401162663845310254868595770921743336505761299974458701250962371079133803360113203067717612419894491955708714859790361233818718062676541047883527607486591350095136299884046261251456702895213680481545075930411905700925106015576323845858611439506897403649638069520347510964965763363367846082397425939068019216465442412049405486785480856197066377543176077712869409416379701791494674890222456797425264194308940511191096053864879983158319364862631039094185823934256157653439277247310157176668874159808932038692138836680467645913893605462040423375722379081728603763411420041645287812631010175929423707047871029367667423481671623317061229191916883925073743690609957416797228098693617314676121204863832548457977920019955809485127603069057363330391840647780488779962882051796521742479718279547010982509659578612862975571654628651830234140477808291416755376808781290592247142718478580560413249366127544118240659984208064791843158571931704858069862617498547281996382616495200187697429589653631970770825219611583227069720877887906918163355118899903309922235554936009422375191245417469757195923348505904634590656908962718663254953907489502665306744365492744034117351269974933180760214063338274417097294209336463984116880839229753291763034696030502881027150347788806675606035423743136121848883859906871919433307291233596834674516869580286374912493300146502118203098131104838920055596231240265917852870047309518200393953716434268591247080795529522419316491263858114371703713074558051688185917062199520014553076558646186985559092946145976077378341542039772897772325016119394920546573150315894305487861654848584060062649996201851390151382965134951464760842193402950670882376174487591330531562950511001718732848832650009414594160099103725766675163499460009864157251228942581237773432227486178380074633784530206410908479943529896333706482509470486755816936594871507983045826808860616182236207732125128153664133548637631409262481445270224665087692950152827280798680959890681460230360806565680103837061756384651963398676295696414503449770127969843842541786055046796969409337288204646337767929594559452874475535432527468957075204039640711496233295820497919010673735921770340258097105558051607598598760379980241368369601216675655786450792629352534189209250936007230367438979630769919482689419737493891444374431110214628193959398261442790764243445789247260239517716172583643054418501076677357031932176517184464359819650523150865913633925127335157443344743856200812576855893837283739629040128006527217762000832197190882042694315632657172462907619248412129104210089488985318497250544780934525479153498612274092158848783659933615694697155587290452853612692929095434521672655769157387792376620430411448336035259776471011194623576893114877378628043126079341832238737420340153573111362670892077459616369935458389842213392452005396645808149647924335248460573424029617218642992480383010406165116808606061984976304496755993158094121938965314203138796829605803236823371553790951613377999881274403353692463569895894402294940436643943756439824211074381573114229857925067711404826608238645662761980128135720601551548039370207999301491876960658453899232085193487701960789679978289848141956188589755925926355201865554503714925285901172542937588800648602649221336002201592186644320980409790862375858858622598601352072843610115809361126328690025299317101033373119651128958515642303002847449465232686324625704629634973133237004634011912015577684060882256181704220964189545545248815222909525193147050383369413787887770842490420409337999182824546372311275175282740514317613743564104616648399716955949623856403620513077778579540159486464448099579873221900215877597224574901779549872803572544947573999016594318027528696116246980451067211914382206907839513975810420453838292815337112137713208827159322171571147619937084178872126818326482161293121875761865375891725173259665015040559975637129475599863176719566895457212525423659271205762135907540851025738576515201339841826668379585449229264282080247444386532140238753097261303922752817622482873562076364110829887707638646322713667574671000833562245653428537767616549466587800656408073353888174185757104918583804454664716562297746383100685134644248628722803021332172602572533278585804544750875501684272597644779082990672727218625978213039731173461840817873722801241518842676677210414748907850263715774837607228486264276078767402399329481432434210471157395548058128891849388466246814241369333513104693701454603545038611481226432468055789197289242599506916516654196402079330264677371300905421694107385726692002239686162762777167013886110948049956156128882436431131790992944543278816766190108650219952395145220437747950885471081534128438945181427216101458570299074287697124362043043190910659276029286879134872141440997468506775348695644107427661877372655273947780910147416130590582798508822420681914412641881487722290781262192642337615929162689558495620448755142563709977739404003361920014589064427707481910159797474459937613326692584757021259103088812176435686918371181280775941855182009856863651940675825539890031403175014778603160777693302429684744780117016690849330049787303942156618812935356740789382859510585987648867936599955468602331940560290498886157998845640178024562015544400291667930917039840675213867495851342318209725415985973292185330252268466178450045688995759260459347270828412821119083563346620676541331869824362352039340556675769116725458638693139166522878086854784840261521777669231942868840110843372705423451041419600394400699746844651463255827555435530410216626170182670852032263478442224964422310520604773567508531487640985897073429033581002218192430588882927636933221489533553091843658586042539728461675804192665072556385030566872537734501664349402282840114523585796951277953112552799720378433331727591767622391530702531865399303439053544645760625257421982315114019988963237062177292851442418132245669731679489195717085599441143763573210307658205776829407140704346892425050250143222786674708984086481049458916328743061866754899228879818644645593690523954108154016036821972538400862158320467550689369466447526392085802552942028568287456364748643690874535114342451992279128368540685191078679666778719286047467015460755097681197327179669602116780881041200826858616079515591708370664985221700865940038778578542458142943952890113935343240014395431906500088134980312121829737236161538861627240728213845440698157637260681437898607564155657759595553138278513190469737425771099354219355533081340117117196308520822554619128206675820981097914852132249780845402077842582121031454169928621371631075412105327564766195498907450405394980301616080560896756552020077437426344890650648603592179303247256781404108373797350985693916367471752510723725506206596516201076404746844421223155501646705238279322398737467270092194977201258052374363610788338986809040818426453667876244935648991354149362833309495170636432786265048806434210747587105909479880079647114226515859940558643892238644012534704493313026364606298272779237795819330401292915930889183949535544114358865617927356438244919240228165610325885553111931594882965816277262032486150186615364118139013655931539792206233649082797144033811101872746523451479104767895645802320894042948924958749478253529221586747311213268797059304853758428001270342627401040964697125817472799638631898616170472955936411286514409057775741774163404198090459960825707034792730554422920480435029747417228601996445782228204954701500453100299010506838465787841506083615648001591487578564618264710494744781606016986750551576995772475269680069180705225224789036660204884184688720739240506756124251140586854854033964028701243469312584149080951889538391076470275025444128077393867240269768730624504158359793938122803452033911840187347870495783418099998680506006784791046452412938984061911195414316326922050530194165544525957532636503628281864176091221357619418577794968608179959837905647327324551952841611302051475111771448507187576442618999990451130423914735800544088220367684913998575284759751091743281751045827481006335281084727258269946973013708937718125288963812906066304248548198244465150994615227759304789260679335935437201737172511253365170209392476398403355534456007170380842078221905469414961080204859577441009219088151484547022231592918647929713917791056766871605324347603248560559896293801565381887407078394852963194884701635129291309586657544104227973522074888134289241095334127213154203049824619127723469962858359678087650735816394890599940400911645190735848965370363301490656842720639007215095773497747919238273250550138784365003649854759378492313592969878490085275165443670927910706650029809387636271851937667961072323437919668474541923377072635933075738027973591646452692031733962172202878403191154087117446567568567149208330846406062102000907252101854932515523348026372272089437457809243824161256380538039175602977051318452339494815396868351090688329240291326376698082417894683446249329372461387045926634491031507037901484530196599430561046599569327191153883753719337585480104316443791466352736548150385202714927224035997804194012237761932269077734523597418163765274041633731191687977556610250976640442837203969576493574941005950712547688893408317225216821035308296419102751897108160893399580393611740467075285931729458664678214236505081423155736324372915994859620772756383816268888148520804927075972061451795705638204407762546852055035164472010856104557348095545473629215327369674748149674831237561139803321128016226678719290190411839027293844794490008238798727487157153248217370626722401191809942659259676019823667633070905242793306824822277652627612648399843714051782177179669132266102432073628372986838723743507171678599212669304549295465905322142281064567073840685501032985259917636944283776247779017324333796207860854515219810146771259444328828237305393881912913729600833082057909826982052028248081040649463583457141985609450903459330510663199953856816005875088851950946466932334509372488679358725435720938427233810692142510613557694787295651868965711569104545312206862463308847557620574425917458266776397740984695034748307573285350464265963837577319915015768709329652510625126874574126197524044948335841129196927604951532393365993265192935310936832836284814007134817260681435121686703790810311444903977782481481427902761833926019977728037309895002964849456375862231753138492708838630681786511420637805365061649882198564660992345127735129075249074186171081688002777603437253899314019775284941378096605501279463462996202109430744330234775247834031396955353849953489838267609996868183231406463745719485056678576740064818997898179633582848073313940166756382329651994432879189025898167481774150621798282394998425216526284885345714178701811583766406195190561030252457210034297629819775128625407549979023575473648554436944635760951560624070417550866539905603909763492554673284923374850891499623675416006814655966641406188360049674728360389679977589834277419055930101910891020814143338620520445279601989901471823967929210057126268927665850698328452355106066313779533226233349790284528201854472723536234227332952421838272662312821361302504923582310828244985286549724060893753448491864656470333571932080156338920404061090878232338625155625008628367975814006283339246223386039402919204552624299119093940014817517583481507771637489681046529479772025007034231276840199790764556634009724374753856345378444308953347159488960246780789543129254381102151370181295210667767677307251314259803649994012389562137788572125216475184037158794822140354350230136236256308587894068272092520112216464922042154957530133240416078349645447447517453027854098831606800169343860846575426936006976700165753824980281663214461886093560174336566836692951300581016825548540979815214561538504666130400432514844489966879486158481335377243688812661396021607994826355336366016218795337968448350099026619794698956983275354079372952305952014141132892068051564848189504472330516499301645249147231693542833468826663431434470614968996822317125413445238678944343454993713420287325076924666208844986373568485252342457088571189145038415456746273817828085359395542466997507423064629986233241585287675201153786951575908070322323003345727778805345540551633050542866268886866917481243858879052181276026231145157491839040972531498083906923656732656149257691236408185823911918038641231710697366025584127101873024304418203558061888640360462846663434582196481186606220269758935030685757592028539898801139264020359842117323409493072300894909386545749420305065318343369964111512240329906722888323561087160520399509556568687844593078655350812831800720169546364908062820526715626019251819770425708719259770284969700439871257233923648509004665622400102602918795559377612615814490434411248017565027187138841813475411561416841636761139380870930622426788046142304529778555056963752402172943824236636372790995257162873900256466462943989046103481575464353391953080889566568884707458253595534306467886778088819824653785151790710585151875470661431762704362996347819802801611395193246904746862628403860714585373608098319785939759667776880341230875361831406131412227112362905508955878802243282981975020780738830015887483685529122788607148849082812963554524325669481798886947521563299493098659110286906396926873406748571986303678437815287557169360564634859079031106726313794735499200365356629499338194431204526914944066999817137257096619305181524776665895255135750111483270270582077771408392377236222124927120397145730975950737664876177637141601043346585849851154862220573883386730996905097238731079241484845022257391521697386142978537106477495377742149978605917888924996727858074648183645843941481469692380679866004663769458520429855093921477236948534519434866654436651583875087770408128669232294383630015453881565635685567501460276998681540592138465348459790243821993180418706842447237213183990559734024852091397878900288104248492238307160659633878089800132733464168861612142368030928303559188206260011726295322558648188727919207523682905637560909762708241125945202291243105079666896714514403771791701424657452858521517211560273932628819084878090331396645896869459389238832231245340071329027213799507778076974665439617107135599219654299315923251675927739144260714588813782821052136621064356379580775008236139001012880059718131209945301600149169928057503214514042397317798643051774722879453310307218753021111659835053032033119157606877362477385170419518293119474548129430575086736647839129475920475710772465779201848365703704471088461166823900279644550088476341137113919561464879867576805453539487840048817985338059954893201257622107820227542298449870035335469834365018649934647204707679892383193751615246222007460287265225122302262936033563010645026703326702464701286130764122713633123365433255980198830703810211823684549630301363695513451957404606252048910014284122923089320261592504968872020307263269590443601880483758923380376527534152681399757921721682516750544124802195957428501375681925937892228185040093715103070990283363116231532420452710230340914332110964337352771553433740089316112709330341210918167250957971719833464883660180242074688773623713588212782196987589366455035522308952750507337715093028156309047058428031340810879390932849745159847116843537303669730530028262667076519611889001954852298770279099643097097457467496070099231449969922812923347795096187002643545025411080008662921374842207227393018820583672465499118601630136675390148864866582990653212194166590791629071233445816258257566369017658520205071792878004817695247633957351053229431528524259912987633140870406396634714960724783689829272410020576392069790124681686256290538207663683137199089089576658866932736363578928677034840232522173784522214092386934869097959982040706767584776483310965490376010335933093327128463610586977551895557284154332645876361366830277577384097785706980174704680622597137008645422929099122292577887467920491207046111430658593979522055709035702575582380088440687210980427901620080539511780918681446802662457238931091468155023476232568846635186630033258631349805632224600873315938163116096058838167495851002704120203527523767369733497179695511942198469353815539484811039988960881562871989124729766411847415946330421552453541424628696351253276240542898508021441756621029115968614415103882117808808703394244768657650413444795121087514390597389485824677800278532389164471393703703560222479730448687929277953586412448309994095993231027707195404949109674198037250491379597091062128840484638963268409902216569379958549297360550874435044407310855299582506992941673747048649974770670590897564790270384087538788753452832014377403426522640181009525023474242434050946618115183217687214486843868385795459462247593318418625432841882989667164915730521794080582744491581615388653657539394942654776407121504794844463900762165498642332032147463999475453638271783412624714125829641630213910122805977426752905933423871531972254646990918959936560505871734235093227265455167722161744313498469696499631165345538400839440726133306379944192931550145426045659761180279956672848769536370511102821752456507666372901455211699227834975407642449457395144803382608722156149807947717491318816022517980778085470279659048578876788504378911331973130065595175803482943245965789321330863989714186239009773893901401084337922797203230596455663826140159629507473834881821218635082043500865755285626794685869524405144047295536564196194270909039288144073255002719295669583086788333592600634591834279068587381247462360542762634242915269113960059806341694566443735521948973987726572035031739107773310583427349243537972520181214559093469264976655838257734943516118253837000495060521423902253415897996199172657052293522496535322727046507966480272441818716535366007446613974846452138499861108746634698489133359142723396100462787361973783867015000514813808881814929727443413546755418841727443909315970317525347550894706478201674136768834540678042981542064395248928716790108554753456062501963976672639759789316629317426500726830687591291973601371787852035661013878006071956471274312008613119750085564543654146463425619193714302249485087866254542917254679029479634365602562917584707742528890917391591736657997959190293643913394076735733820138677453442319259681580992441948362048779269688659202405516452315256515906196993192687553456539896996169241756550027891554478336072666227757593089551736256995974782078501518218724470565244082811203537685455702496569477818008744658058410396824402307104187719122774941096073026075607049195510040979407004967738340796697274818177591804435717187664599750888388803662434163251675363201598147410135465767052449626912636036183654437464950641159182669990595240880555995708815548564371729758682935124371439205295372837009829453298625603378792318425643424740841296406881467533923380425316992792993503265695166541326037583686711322831400532973236156886100738156890373335800901865360598556041980229901783955447800358896180014259505454569727723185617524070500293867861288177282823087251267547816693696889390060826845374186224326259183680362791521387933645293771859534643735953231710776980622399863254503787628311730677800390864503734017840176133600720827617586772277315417809476998985816535927817131869674700510728596899080513775817446633774089734983989155508972046895399547577893517985738384892834932968832993829202652629677189296185608369939180930862606552082721619245936767919632099222745393615085140335179747599454579559340797791472068374397318507951007951954153758998037396587342355789256888405157942768649544733429827456085730193574422165665437010717450946928788040818388308779710689957622264949212815284165091133823098980425805378378724378411372342652725692761386900528082133634423870558619798730673733416541739726452632088175241548935864477327486724186720177718402689258922447183122293611740036717243874990163926508648360829355103555255659756326194082767568815883381435186752988418252023695207045133918907472300526170929949547175275693766635972735351625045946125138370570385260475801430495674782344660211025977595310785447272256241901671293611889982787986143799935436742996479371254527903211062105436068626411928952897368255325613766551907198899151495403334309932225958702916724550275642928646418728336731243711548153387449179055273464529835363137688646654279698503140189225852756112336191860631734468200048007210540314581644128106391220008385588219790382127717497121945889393141198306456965154493544368968232449006090410164917607540442016050999545430192869758228090596289315460722873386580302094729934386934050259388900473247768833468048153932250715806603405246213095686472642164311225522400113001501987145323163641097132934720658832731616851680209214373005954044040358494333831115713583934048329388801495878879372585101813727757873587586791840843909538113488028299583609178368525353576943539925909674447616655113932646292656342109894229998772827020267337299826184067242893920942572690187502385017705576954972799780351734246007927034426781676164073162265621885401569269578393406689058904997886678508241409457839695491379142107599890292644632142359921219975983266703146791880745733498841155101085192931822857935144347738850454103922214278974098063684509557883820543748119671028657194758395703629703174918272989300747212614042956246342833284045826467016971513181443108026374188318277747649200261027314790312834088499308428617753176543248561742224425479300843894169314804083615960196936180565769436001897534493185719685587158018669552222081082857056995035600895796132231095570972620879045641042178060452042749817611935580939358056698161404528228769722093180024632499332057129346769063763358839672132264894616447237486258336700235178522553434121181026354926135403642987745459496759906366587255220723713978705085312767303484108946729935162546619746355541702330208770868146619561550163798805791942571827732019202078875742021712573532331501204436969848961499772603770048588950404847901087189880016576831799711916486389359420240911035597688310859278014300774483369921980910265674369336112090442358895662462053799260245889014357515384677115393830915630886943955281405528590950668811589681899045357098524890552347517961217770360845666222537716141211513108441505840354139173661858157549232395800356991435574622025616250333291572065658379239360389237196022509960789997505596488589273143122652262667080539470580595249457806399091172688309922998735553513751031033369902394428057811975150006974851155590380288235730110670380187852291974001599850597789467801723426330963766397955046685467442046265320417662492260935100931511406293221279537687330965896582227715123964365300760049879436923648598975988865860896839690170358390606076974533025171763127257230008152921508244460543783926505487177593227358116561269958508631460746659335780348161505820548863734333451708229134084169532393615564290168826661176725961949177213708174391179391850020434090738964069383624510714678301699797851988365402179242301206496039464347724864671786494335413526665114753896947850049473965861643577986725195160478794250522231474360070405884328853185382627019794902735957349013433387611842092282704368350879118174465848851327746763147210879450533769076971215110817229638254051920773294315797145537629559583336311519065787525452118675342410543028483887633266610441931341366090977504775912519696956966255380584345656997586825772601502360066970956667870881516813356298531818250579580989222385315979219464546444823946139718877851518156642802875295802939594574934522133805379267536864001930340489926682338481714975196290757869542275816787237825439703979884743808347898088601336692364758527200552172877557308538404305482597174367939599612984846970044746675704824490226205832579013413833721061528188141983309341091880897919567151307048201958121707905340552755540037563459867012932831338785291198356320191842602373707680618181433187065490607322413220566799916621990489022528002069068624871380985800184543912562563435176766944702523794308250565161271196216410010269531275386768150113200929169672701355261459929257038074767431182330297630361116525374220106786010120787285431374544798193104530764479876437344771760088428112454671557831233355676695571393271999216485677952930129749813731812163615342814598638652412928117380187471770095592191687969198719216466371040422655796772509098337041285003491424411462817286637746006248991145935500478122209584440531881796826013623241976858105976477576803278310257330856552550825842123120692899818291031240938911052448714428959779020466506981376131324886409184983163458145447562897568072707833916083920338524029208856100027093317202905442535875315509591551102517900360353248795612994869315039803740346369215641543114834467358717376546028990467249272421190031609790356972944597262360527589938947186009374915278247757703753217836183881277096803164271174605081954625925900328556985764081360940204941936742341523877621856452944475144707267329377936029496177018364364769964018430125696878708195660017860562492892153791877831814386700788596242465972726724233955775893733312909651381895379874452049565447488256072579294737745662945811004152723383400275078228488744879497728072632427174977084721051617432370263223126132131234450849044841109252516523431655715830111149086932239776559375209458065051101054468599084831893863686327062662731939032064890453392157573990191502275297777142816365394658676094220912799224082190250708038008501320944550908180727984248621270451790219874222573323276581657389748602047802493592733542454983184288009730847365681677651732175631807138579752246910343224632909345484416443725600044844057210433620835888618798647265191010414019100044560631743673049002390362207172176360687459111597339820171388140072987933260156685826213091366143377853464762080377798724405777455711107376270262244053487943965229490306065518805989414345177976270751696000370331393300387681394404197095341318367298383530930916608160535856360079822033516058895280194877440509518921702062652135396962191991652715988657857202536708057245688208736843922335806189532288068324243231070659488371054939581449853287979876251257631215209909467583477770497867803949070585721763588393396487423205869506582026325700541262746178436156072465861309873661853452873170534055684703138053830983109218275088914365127964605415599171417885287951353211554155558625203147095928831935762124689826299809733789567807978522500269582296278363065724617073198092083279579178994619389292384883524134557309964711812936430303837980702773705202058323407678119821234332324072440200810416017283969558650612127905553537553591404008369880101530783023059898044762323225132552253424617887686393664081799196337664591675692029845642183769494858214253348259389994304011836159348246500428188343052746596482362139343368416983226301196101256993414169195284786871826242249335647089791873749433492297101193641365408182761510454951744820471064126503478352326152248719727579561554621572660340083029014090040737815044189130672777604010341806842418457421300730543770669631037984240906290709797032509256255362594866785603505564201805965105729085080755062382877252881781511276053043505348474372597145142999050462963172099745145123524067371133907203208793013888193315117853906599973244300659080858884947544213161028230779523492445173671121345443685597238863698013392234980296636916133166184518318460574338779144672495507393105722075341383437084024482686370043408208794248413955346530913276990334653786863726158845314732417234379570939273586125228718762445692720948187469155701955858119370450231087791416921252811327187894836711382834507462995021835575182282600740060658651502511221432143973306815953047259568160306485939259311345631584433484088205956475191047567093503123878240583698398693904700765248000700105460789664455355109321346862104071261915802796034806710516166346749200081116378614686609179026527892725580987633263002782345418121266922028807539308435679786220919646891125375117524902989697073479318089013101522109596214570893070168815381649074863264527632003244956863085196821627836612625074606246946107596810200674185644789448901456665653887185651806021653017868582769226497681531439942761885266209932187208375332194863671970486717961964958450236942384183712334970302188633401896324332903255316708172274722071554839383128984192220385110844986272168053246311598084086429136371207415784162083028567162898588034210860468940110041869710276453636596154254297588042360315505983542148386466954553276869289597795443920849291252632643546151941005374437144764712929820348566931411107506723575079262403415748503238829399058456023533272240662244241106327925796869658647691219306227937091875575169932638273712366890567719091494603403431359894101120383147942310113164896994930560424296857423671779224254612253955947496822582953259140168322428566369169167140058328080263250763360949558966303722199473746664579486219932790699342018618116837946507561935389627117248640785941485268395411619946766808069137539766973109129512828676702051604198064611494580951643759404312793009750979924665877719901773459525750501061797231969984254291104038676186651099725090695743952180524862771349295483042267373298934854704476508575554381077567883612609581662707594914254062822434361403268765929415229033850826520436285816197964498105678133109011948765900310281086347178833361046004815971956615293441110917385494309359595077091622496427424722789739980038602086720410825174610967303768078838189357633303418954842059088481567021086519185226516937907321866465675022286280247349361652473983481198723446098664884976749870586333691441517527307661133214772734469889453052672219544090459617133373940569975916144580385373647738741810366361720640592703216930369482107739757143599936229060013865269839895927796148637644368052960524092945929417165374386651173863817089081391429840111017320535960952326805575000424383660112655774082204457315984457544272114903377435733310170114778424921701358466485208183052560948079467098586107672234645801886021255038930818507614075065058071242509112848919813382568715907431308230622779540995248010304482888108405932038473026864892805063514954298259080666643212055364132423570571340986559820340685661465357335201887317375226560514179316780478052408044174414676533845638424772682047067984969170579959195845636734772348299970848822934421559938081570695270863168536258403832765018774583261883199596741441807913636952102733718569642658244673232003189471759256348479075221387048383629183505750588401402821921156764497366343121205342269629218504590627901911234916073030180585007959244012708426495385116494131660888206257859754024361983896012180659079363118891762305503722046889147986093645432315939241594771710523319297896074580682859049100959448496534103724139516549264270003671619704345227924559430932286837816390613947163457639750767521023811935259406283802671970990940020080620235456831823093821743223895107635531555338300045585937119983897090517721451534203222132574459745955698715294009599169569420527886099351378903139723613025479821041457997721188469267167162632023083043486160953745214529508691730964083026852094316936448323570322969305551122053185233011622279193507075888700719528132160559157152866783758384456823512130192478873627008987606124752352650369096694735592660160768191802096750409287778231418761848384014970310800665111162432908369728944979383355616701147999387896180641542236255820619802121221677100346507202562363692192609327811231814824039437776816927218383076915300789147807253417125884684290929079633225659155011134280150034582971765822827531420861120937111189578106261324414571897412865063028223087349368300510383883664163157159501862270639997779228620041653484707062207505714361101456233115679425927017497234247311832864942845094034783277505825352093368434773103199473133720804585097095059730321066416816818580399552778329915530468457022803425127632261136464007080988577412332247132236788733679325430518825375623420970025591106626783760025519847772844048554614353173470106203289026193769319318996279626045568987184695545488460135984411579822632444607573108894742646097823386582783883890525961646063179394176791199826915134148329882998896150327471785331620079448185812486483312669846088176395204809721823685315522802720546293284931015052100218325988412451553170999203428375936152864374249831574560536501537626218237390472019577704824904522408528932911390721671585622626836728286211284898444563280567789819454284107627328658676774187647795650375595088070231033135878651761203355955957355722781964745707690071893083169337861264991627503348363158061470564898005326060558190980257636644316529775655393250849538190626163447209124361973591850059504839332279734949379684802537196600149773708137041725831683769554379919337847438459680441332590812025557174304764921639574018614083031984719220017054008667889071064434673350134018711578857611370674626956131494598910486866661533666273479277264671110982516375472940259654732529425868745945513726056213447587911537593591611863361721923976179799677395285867968712213364232232207605913217629281294455534520318328070400663721540408612026017727121749777460346148516281210716695916840634962830500819523490503893197567705357713558136499990327729069842645984437668888831275432015145133396267061573395412451626850392006272296626911490058170048994240908646872510616341687190585927783368143312679657617231339639422265274947639799812275093485035809915911318553409456148382342784076008516333430452002663096467594268520386345075672218425616218872760284792698305412484909815189497456628065361345839541823820634091633565972971333063308636125926270657551552664472183799033260803091621780646618807679494054809954358490167060180509617741956967390213453493859654989471175047743089619432202079031103241446381742669067836744846573839054763054072838862688400022291897148096352722878941905114969778577317283322934180455643875157119576389739306772252010262701309260103349627637150114517620182515815307843024579504968949847540712942855571572753567162729656933813867364513062739730316918977960028308691031921570871134567522587304438424695219819757829224522544526882209422570504157374350425038351994920924262130756962060655432551708517893490073236041969950374205650281444941804136933756035638726434144485857411212094543890196786965776092198143407089923009450857063218038353426248213610039462679626175152614117099633824185708359999876905094912966233759352152885264411232348363753262894312410325114766599219578458681085142477423080311311130332878390628091530657080982553820033156208586986294263468644547163783607643013584019871872007492000565530741735649789332240707210189691133124118797055108485338761301509576754987767095750854722474820681354848422016200630402238566492755494673662602399217652063526562039404240396047974400040367557832760362035863536732972335175914412095833567311051245818169322935941170280474230036821201288889107251713089861227541356765826251257350048375098370204039363053945866176957267225920855688890003712303171631811445400520688951514596921520724886090840285022902540236810887380164382337221038271310339003632250510803838579913507830716155891175301610124273933251272868695890119196790104928531771559540785417190062420280705893731275933864114880618969261592676668231078670126069494007798816982960462584955036690677176711097064327773645168891424101863892127797657953141108254069561096724781585208504937428501241836704424826573862502032096600766397882310717477834696346703493146139664725918859839544532794480623853819568164633792436624278380542520488259296269961416544000242117247985492406033413590036093798726506046215867610199003328624780903317993368790073252126299576525092596888916478691980802633847690531776955867692366773483939686503222378079264470879078253249908718358493772763588549178870167301425332526150349907984554163373420709503196936459013689248028501981395784536698110979035391799700098057896967192981149112589782912780427768916396073211581724679453167935490432686182096618795776266949431590386780207129050579716539020312941917224457561447134841462718834324929932703007595415527661690505350266725233560480602527404122053454895793189332590266918025368283176991264632710627991749910598310846142457465861556367546485499116189345871842183615262124969841143443547263988832591017600027545919234474659033505478674113662295893164904514399343659784311535388732823859673993211201833741468915596628459752162318283089951981250672913503067912501555149267149111079250110152817542672795808628662215168299845082474471721755020475529709023334920633902437926662082781247026244217462351398532476260046743344269048338135160936406746129362371024247262780252297219528329122302708457047906084566952264965210994579408807702954901332274565402579980242021127426953872013346545384002766666203229581116121506058181656586842074733774736690923002969754006717325010328993273860144418180501650706022408319579617308282684151563093811541782164912765786087928750368962885807469461319011725383679114344638717367277982832933034674488869382140782553128303882663510033884173390634178068832228388391983680948297976718303173859356594781330243355567896296135630255185046820886190888074628892816359669964765304866091572788834787625760161553995960386540225458459796016361942643820993317746531882059011017523960114171775458319493148038818867818038783917338781782272882798073768305681249088548096393853027328985007838417088108083232101605981173059551622224640119945860624560703486896532458930402949906634055953727438771455254018229493398612823252030624306848564866736845627940764386260365141840222481750498390710443080558657909229522207938480046169169078882504037897336097507272561820608390307018458373005487025378329030024581812044220337343297762017789496307264839259873722890529810917636690803445012539247003171779953611706112918948906503507083584272377048451283410897339000140698300273528318388197720797235172283524792754079532862229636438341676674984000182610665230697617059457613962947482291152682841046430354737308161710000939280541308421054466322982291357667741101382317010378329691706655208074305251185801058937240580139352973665675129602650506157470457242518496099268961973341836326809394361955674579184056671878557292237374134330311360588409766434071809154645279421183034945015233890639188909075402142216150438943093355124635390154739677163572087608134473004212380531925123296184028834523255391088813610195082509586299825396940606479242436251665802906455328348433071004337481718949586361523587000858900076248751642055374459475333047057262963855978908252295475494182353136498573435946280835206893275990987881262413767457697549826744285623141552625986311691678034837149732411451779530798520866503677567874928012686565059751688628985455342410050997283216375776716416140292949124071261958021864816895897286240756591095130348038832683945468585896710514575050099188044602252473872994054091107906462266865629208065958475692540811635601271489381852198111727553326939926569833112959408562944449867797372773197421385537853837695968848171306357685510986299080083449135450594779481095947360178639008927375784089998874482543494970147495380466144379701533348294174771345281116242357595385480392774808319196786247248212656094822948082348724447179277313232573938085700360487327370626647753888107576252683312989266208849003350435111931889348417913850670028743991166750258462814609627499989462730931709634870171041259620936094742461516969199175597328156512177539727569988993492591150713129680881716183424194389510334143812769992516583001450624994563421713547650239056426653527823393564334355936324629299132036547783537017148530470461590967771397576107473586406882047534109522146146776371274067983026400822887663919437546950413151623678604868104032293839606467753365103861536221820278493239826605267902941282935170799861737261530288060609764794557321478374624900143732921213644456250323459392015681219593960054365390878855698717271175954957931154665884901079507008258874744281396730285023935363321200468456678036845381157945522976920566117183179902924567688092978936646878871638438291323931607298030017809778953684513916177011915146979433749400571261888485876436679869337585096542997558967476702307480960955895425610843779181860589863899730246845373253315629681632644312104958431178883694144639322564795678162148098673804323614629173799161519608311690108457944308819887263701176995518605910253408042876052432841911916080134722408100581987506224888763387641698544164233317146184849689326810366268474208159760139511720569047900308267203996484655887845163328219486278704532354672372464806115858925702807366106519849155861326356098012367992081599827753497763271539344153059146737407899105407380082517985669050684883959119386462379937570077451712903444671261058297492674329575694636517900724903070322242642899257798517385953957820153107672622887480456144588422575256459688740071463734311565594176818253763168476734008750533073958262505664368114340813071879022982809790251260430491491537178454749612907300436823353909933493080076832447035574472704748950912190336062606387508489786441079922963035206688064412629560121851114750488533729258021051355127395073736458848766099049305916147452310415229057828933093062603425796676481873039189496339806991580750615099706417022856874134445249132303655545580720661542957354839571419701401702617601584211440559818381467437903964695512433730348056019630015440554004830305703303185305281325821641377463188217238217011657878218404586381889732086810750463559634640134329789442200176254105797595863852498338556602034398369882633244193963229249889947683027050553135406170690787006394242188091193790311381107993505535880988403434001997200954525459672652649231369643693136302029689168102645860606558081595632408378798586637985435120692575720862896587265327796138418396926540424220212379839839838531223419085680465090593833091780322651446283763647004984872389470214209034145040055416751658199300896255398854160102917248037996312664089748803927733518334940152910441397659278390550449899937247315100210496896807845636304323200515459496085143261876404514789843225859213110758511241908833365160396020745357095033487668070517050742264555416552637876392171535068948350465381370560150780869337100919668084577566602576578892432749527085226583743912645189837824010593377953678572688136376899956975916274507716336322286727167843653840902711951321921329998790643505448277625042058928195330592154153589178620515511442207228917222614665206595527660831335031376760951243665024701162973274388593656194960395463473359947281831566527471692603287981584571172770846912777898838358016055112321354605246781593943722930394675427287436060803531874734701149395368016494382794357448091388129724924379529492007124590597061725755003555847047378983743341717981010784989387479019195728847594265374827649332678408084527660292695438169052402779176330316715677350113179057958646581285423375560755652616777048788646274289814311963851883240651785984488504975224542222429981256904389638502566988459591879427680700138521985340060413190945724170959267053726828157578100829641955651664702996336073839266562750587278017721601891033954968065481653980966788735931627204441753760424458317381225652075311214709032863902697348159919834782530623717707758830731850065763315691484828912311296442103347328552043033183817126996751124619925986112198305781471942623123216219362343325702129510375344951485834148940874234942705403355516791444077408093873193856322294366351347677732044453543988414725372891712357647689277727181605285909446264988483349956352210288884202549131461013705800164217526045743977876129494340061839143389670167341046877323049076782792236108557994265088252711937451925229809443488331331219173556065806990114715090291224220282543915469318580347499091012205596009731059414261053307760902963707783797612298375471147428495064567984594256836774755777945930286392910156574650431120464905140197172196162570252242834455921660856321583863442672620126154308751493155320352377198725903302428578550630837478055277416063021009978362769434609071305642898884041133092698285184273043697669268958659984307612904700909524316844355696662066984834238887825713787704117030741194761772565839193714024402475076238458299495950556608276980129384753661195596005583906290932015547550130447859516816670159832071825500497323389317138763922709795696444835802050180804545203575213442809485926314490778954878237596937246918723599946666463786278866395317249515214872273232140361864498637165713404609434693048963410626739926405888766943679616329480233122314007144780065307040053173082728601573045186643460102707619093053702803848570155114077469645439342421392583917088144053003582982386614880331837378517653165719277315748705047552414009838397510152526440579094547245864888114811324723042596981862121301489217867603938609416989332940659790288128183979809723081793415221917002580769609004685075719864680501602901276473438492115740866480944408314967612784291621139612104559931440544848619227595649782637755051938690271735177177744510418966062912763921249088338890139125176078880455794053732584090505083898408951517785183932959670010916667427591790058146345195219940830782424913264015798344046232790975767575956484403752852572394370316983219115013550704805139251490544883524994131180795577471227350837688767012251047553405537840641104431810584160759450179024760556481843217103226058502044005612945342414620153438471141048580216299644615460215998995138709074098769347657790405551087661972489904406386896264790299202477916355285573578904136026986185926027266519420608449617390266286262899926703372273146297934142163180774357298106035725067350171766720837492429461835757295124325778495586259328223831981988730601925626381320298783358065567714947372846480633468024336538614619217757365488474075409414779332304015660450953785663538410294718335643624511966649257833154545306256901503044694351256043016657311839016666316471331072367602178342487326455514491450213386274481624192526086657078078712749595042305577232227678686658493587650166246845573366701112021959197777458169638058607161570549740471351259707451394000035163723561872672687862473875634836943844155501886298977328541584037213888957558997432769696591095639751145554497899479547388791172354025897833966346992548228468074260790468763774494613701025008906858767469970916432118419225825559505381663811601902633498918610160802441557828418648460041564573278719261227252617030629329706873488717884687509811097981201316137359936878002192951812495212205240497637379560336437313278533138917405157322322188592674658764218272191160910428540364433910901371792237113671204388567657875871887788298837897041856380193384139180785552080178115147819124019798660911695063712472544784449990256989503761915095070170541718961987818532151292609001509835160861307947805074255273568354272691509633998960550948731933846693246021811731552946956741926141335526879363374362941269748821426988101111458074427773971709998215388233569023767907285908650202608924558329185759579049418500675757944890145603655768008612097227181374223068435397028253832109863839165908158517850792922093867549060936209323508459832875937229804942273303907045039263248428716390962670269023442937939737563452128001560201736911478401219025113135327235880651934797714962085412628686081561297457748721476403090849737054785476220282385858904723860163231810928792730747065919912075911194135556667579684849031389532216311296362053897181512339673389463070122715377998064533502648586608143801662389710853630841179989255745311561948472313674205677108230481749595058243670356134696333267170535845923597714226451383630073677284652474024669846169951573516545370502420816602892766419864310679373760201803134604760940920083578932801123818103660182662252589730212345596920266753864147710113116009485881411185371100553702752443751480175244854932993626976347227964482166245985034501059660969656157680345517489403762764575397705132364646718639678001504263211069780878949431096081470739131201399728836917116092894210122743183139192067551100710360975069339183507657278028323335426918478641128278447500501947235468757709998492547659229344845313493361641875774553573153560543860842549308756688908732231131875651614735012929836643717528416327979342727305298486766010111871733180354216112508273381962649162007042199051033966475988693324069046122442405327859976519420494369514060108952703088493742984069178875707454722458360287182975017767655022639070662339818976016331171193331655889224675881530296289490575867189612328206543849067740664619312911504088028031313809802286766018893044863754778139849630996935116234221241661821113497896398667747689652037736520614150336470556962212989627942596650721185539338629473757100751368492748528860284320253970137784249222576351449118309630706591523032966643051811604117212765399626051732068991164218698073513637288602949844424719412417736657674733495638741007941328900282730398375698038915218256493772366743166521777524120669668907259206632124545140379815261000965157227093488180404626203525445778708751907748479222823766209202669027371887504312096727263796457838575010593445626849674210743070416582619081317379817269259988724823616238056386708750969687977973810671650857415219725179492796413820498022123947688515392522583999395966069897350643579374331032705294723403394665313386531710562281748945954721337264690646258018320381808280832101001587667340809413278678571985328988577173132964222058632764305959180419656143652943172843762538887359138926084827592154192352202770893400606159347624391391577172418356100648772947839819870246509157004869517051468016925134208515802687577237892304616927209201655892442919492064146067070078870841132100434654957477027136606928120287110436725968866006999357688219901415863298895509251073316461050951889832582947164135588845643255040605789385151523907091779686044930696859087641906096472136644737860351565584050028244875537549823654805032056450129060225279752673281624991334409734518352671468774443012885378816023965732214504464326268311511968530555843344592230948341360078545868634862598942277534006895329520156492399051458565575240029260335299685206490658694116426438036309263334726550350832883163218281077441668139032265057380545079583341988479378620643541046168362400306448545364691847395952520704794602424514493271514326481846714275826227627574503694907226243498086805980419554642051487996668452691059202654685433941560462696273184625343340369197147629803329081643659130960584844476111459135210257095252866612878269175762747178007966883960856447436468263842087356297556260024893021078514655448753327473263209946015317647834760952941775334277664780922208924471056658743985473300717165236295406677289549301643490358039060518450374217981899858756480006824434497763284021260937374670217038356127318393810129519453275827270134436675477875259106894247041985691827714011899727701285971902299707241737222414426251490372499574318454082171656956759777924719258614516841828085978716517475167435779862815535503040443247186376226015432729953806648995153992482256314245859659186570327604425562684296323672069612123278323181821766563396941117127774467660287243495145467136200935725128484091145710746154810586477997484796101246581545451234936732154725228528073427116288652454210575948468215299344036000484192374950022204180266095691550083358413905147423880820458510016101837932786356116733492761528163332483054209588340701276477904130084643787164058760713180350349768633469857640998565586097223539102699151570385463797269365850909526706135111263203669755829723211671315665715973021906251104923098032467438593405912948300604939672511592344637034592628153785474537700429614432529483402241486651953009820760503746269111018940313398944588331479076815683259630928163794409967865411361675785761385001469317062641211263543756066641601152744311671409939500491577111306620675311999310968494211654880714913669994441224150955730242162481881821265629471245859899248774797881391843450117532114412349379946858129744009085280763687825981270259872996336704377836862676733811399337411201104967327041285159140724195416911884218347657874882098461503863798276467865672493382073695040305035850035942948303472313262390672249188190878553315556193484971544862390248980388656961917465558559186153924379090624893635072823632223570137013895074837353158564794582779413825236844648831310347687617987252822884230686764394807899012064266125540454866601755462735582246406048964163582047823511466375290029351360592242903239557776248580151223210815827883443913017645185100443386957409500737098482659860390598219866822574908041445826860869255840478401220899458343571388098662732181735804587234899312968921350556879840744226461987639113612497325296920112808187755251148473974131393682495904070119229338687574977696790433741912869999947444539112301367332900221246808935567921953081556997642681479453726674207395027165986375694064039257021149129061170267534454329732777037488702626594516837414257637394933157353713899595104113305457030235176709905448848172679221679398905535321528000121335699088427780913806940129744761906177763215517697339500891309563585038748733789239696122112407950625769677555956977461414899391948423721898940205428933069155406597393836456777980975792261431890653743656656272115181072776145519881885169012728451150019060861501733068634690515799765453987959196452292505004520878451086794578954867490146743915422652210932214879077864399169706767610635220264612264711841160085519516234963295755681049585512157465160857291647265675010289417736877048479851897316167585606296230603383759937141115084972959659292318750083696856720539822084631827084078458010672407326406243603353810171879456054622139618911368428221999386267725552920675808384653308008258459544747422974882943061875142416541965792545917440173045741386808219438291133552043658888423619152709048574791897803111513287071208943770141147561249441669772491919279773890196973321321068653452772028459188558312050379353495820896359475810031624906616401914147891256160910143040709809372477308164128185498339757840626641487588129583845514522949141965124631099749367374351122114395909350377293496691563039595515644399635781626316509634157762162425498280785072378172720417101171636129074724203911203238009586068652706595298201959484669873217970136423038598468484967898894736026405644302844185338279405361787542659547875106653495266516851900944923084738850916898166567001909488479883712663283215003006998245684796503553232578973077625739771174879950671080463277785584913143350289592681806138616141479488046701366516666857305274105751958361342943634769733727426696276009786298663448876842948131865108717653632146277660404031708726847925130983537798515236639557089922517330142496253784954175696764940137254645635591218877416156825948377214989448835507538433095778763785350011106982741759211420629826040581524392441270984565680365240397110030482939711836564663507676144703564838717771751061300463980925649926302594713977663664547317997638613853735459612555789425577704195089697748232916153489682293937987054622936591999707205176414691459042794295034862384505410959033194039041553454358821864563728663074821794051992518243580145891508019370863955405269080880378258147173457063416563982585014092548321735937319502433465274219917659741747317619001626246552252104700914074733352648303224032155321739862016777606224072473276714771910009867029326163149503584040955107128685671536983906324250179833460118463778689556656885789390317235642191117612276688803599190704435847301798480000998339304642149189819407692418794177603271866989198794136244872791409625784141060150439005658261854823632270608918383043969920784166805934110644141659176112121125533080672985472891491779590666231603389144117174581261654314332158552045488971411582834251408432014351528745436899777123440241669180513297553016355634260252065900541945742582007055042230774238727781476826091157392881774055992551806237989964061857271815431575350811628817102242819688950164772187855975738504696549734439100767062027736377752239229446069975103125573324082726169711530457603687576554968719712260631442723733832409675857168552240355485908616402347291983715342644515661142025282002808746550907157305686402074259154793375750595123876154032038565896932920801382840814457698851791826441219319691129255505073517230486056861425165182728290827710991654045875664400666679429450806509083768385302482983339593626366128552174833229746354668561408822332874925752928832199757477593076530761117391332611098628830453241745555950232101604157157398665744363696504344831948091897038022465701356379518718037572702231322597498612083341095841959504122303168520811540205472242939142585246135055504408127081518762828072686311585378045927188140401557972785060385602293412457541333394747899365565891497064367052877846079153425348890188966837363813815104513178158891956452728015273042813133559988521712543397882075914350703949954646441311016435702123297764558783445784594541744763572219536507940931969645981326609347024526428162766878108763411638901916338693733782591326809968510166347603701285758779771973926344843347988871573170966112348497652539047383843565602855583723341367122693150027755438122178524947356016173148935583413970106370952172745615558801955348416946007301517797082522781161947360331644031172242018318382999233748937388869629707161581842219770506574421691017777005840036803579110680544298166077478048612514745301077130890603051628984984544015041676415188099553106595814763589689179024058584662324246454967660839647925989229186890015664931437365082549361540227506658834089571896460729953063606868398800880530152198528465777077003777533400378190292892245331164204581088239292231159082121611370936391884837508858086678596037911976988256870859510568903355125566699701279968821077862904519369307120716106036583457149982066610828386286355203035535746271639595524740159516389738870281943993880351534082908959947041059134442081894640266071509547151879631275869983361308197512024010781853762964063807044704743193141381350712866300860108713272111242933491203800199951599266239469291506253993746992889247654407340547834056830367418134514622623347940644371296374372342557668827954155502529321621005247998883750412121676630431969825603240177428673157936451334426360304542277873227137246556174935195826290250858663489350608191392851376751009370363032214670044759611438391855452579492792267977147741150438510499733587400299487128726645528070085189603025047948878754413711569755307291994132761196695183385129535198665680481924833083709999867126718033377176771038919276344274468065247413653202887437965637975630649209204422567862295651516249825757133401108476765279918997009888781606131469463341090130790360133820421951382173420031700406153289932273885460656778488711129312177540975338108345140355345401375479522424464775862327597522346512194217810567064225004356151989107164629265261584590589921928610843273260236224439899934577356970362435135192693806016146005069147077849876388821351515912430223431972439411975150439011361045870759335463229893803613394661435512393773892041437926417089014255904436461263964174582288445080549746475387343523639336752482752480941703637326406615794433528843017680879791731162815684316790098444324698476372672379714112187545448207600854132382279634483713847490538301371479984637530082770533949537303759746571605667395336750745963174505719213517119303545916238110653953525457586415148395507821886169047309023187764865388407325050545030245370742070688564278102215643969539854904237982448401204291496936184518573657633078826248732513215327061376753218491088006602112782716007697193903534273532725010195009474007173901834552576803100971140583626692861596463517552299763443985777772972777191584361646935003861062269661016281503742872954371504559186056475988722551744942062810090479876563965309207668514719111288847603963663231073633353596984100767243774894845158885091258457968540244489851793775297310958956088312672367694699583121712013025133770314412051297633819711599309050291071165829246223364661991493118879472309008110919092932774252951085768907366398484345054162957381775866598240565700774861264424682808658438300053455023396213185236108152815619780113176155134556522665995527604268991328304536931120295920474920301756320563685164600620020475846229944873203345169508038925785669457742767406549584931547384491970855811813596855306234162936952959901499918593491407957848687614776530797622846577974124116855976925351615318351517823658617255881082046146401760204991681742329228411338229799913943479512100254193170812854629675480902864010737194134836908616298523005120523924585955061040861635863978748081564278321412887828195458428550367817210986408847492921517213944924521731903048971784522044469408704609430785746361751143584578330146192414391942553660005137950805657174420440391090653907167591383390949091504742837310350272291142734915892535705050202807598579023373518856212884958316264955360428885069473544328851117623024098607591227967410030079645202774591983450012207523150524193693997156852280970038714796471904067099830924990586744106243992578767630361390701642906851940404636215371785833437467047882826821011120120657573829411732900284211018670051733093870307606861345495903312326285022423877185911506543269033520595233786226851271607669342792168030688910985677638653381105791568843999614769554638767577096471451585684658874254009425079022027508884204358214387731085889885429670852319039585248609400071044684645002877633179459165051989575912378754636927589391138742494103874864362104795891131817776775278666836980125623892974794039022368101229682132947241824026378631442841833216656216692585358322523431553316977713146336073443299918143990374611627588220542011255911146663108702672048649112962831922471714098270512709528561381621799683325620230149618722703324502985750175374278036563702128473459257030144752236564225188332607630157684473773884253483976437858606719137511502841303682950919064505651242676146912362243862386971643106955336321634804878657321518122082804810324162827963097018854252676067312762340513630399675869924963237761660323297228102549661597533577008645254388131717751761193333316299281855567955307319229315467889253429711340198280198341270822590209419971551346347158089961959651096119781711158714547373319610735719254719639953256998156014371140049649665410987920469019529704783206772631807450310361186984994012336857575502771488233994783134182362416461209198166605490958347999194496479896238004611940885794519093964496509679144613568532914439534159020066923975251990869168390277476355902364992345564200156868422227902939726250097144951692936476395525855349929244503751193877989288755845891256751439414196903146253744423864574274733528280225512629462132105562183738224405404753099944665668636436706503769445064496188704920040344257949128454600508904728793727790262682428370816571520903677971000296410500189671385034538807026466963352294101558512496673924287320462459674833357802228942672590500909929317484080066586348469403169724993853545392922546828794917107968924346545764295486893028693431980432752230220601144681145377973034688469396841451097169318867019891042249089508675123244219026275827890472325144408954311972872728276232274769331789959865690410348436612174929672888460425417868486065372789540162951619854820527051139203676933771561982397533715215800122364109883282001907935452961934107265344778413200477328133916354887615375331051617541678404445292120358301186957988295661107896362181012363422115583829624561426927267841436216688507852931199998549448515339307791591368683955383215166248704382344263282186963757347383794335503905165107482492541191418412503503637467404010287683992582402658090631233198513501556644778879282370052011878648306539510859853056295483152608464266771480358895837200045878114092110613018961870576216428373692852322829577847874005674548379852007186213557155331005608039732011329620927754115427623928974729499876762140153422627682949561439353388469531683150677848778038535143751708622354782439763521245846485555670001898488121302104777027884671187331961420621293794284138355202559028490961185167570211931004999739312592919633636739501794781637137506224838417130676201988020187354204991331716508880341396098558495583655959571397738204708001493732062935231202329450902801107371788554500884506416004095041828085217785036904974881233873240396511685899346821687553082924144048134441127903063272564615465901276328076012820054063296939849181980715903992077435124771319366704443868838280551328487838490372343444902901534184301237045312954120330518375384376989129592893478977197156008077804170329407477207336680420457915941461917505386597561560165654673957748058480250062507502928718235235590562160563222413766917385439345216134485001894852349345596803535455768893924674860072201612766866258316223741635635223660169484419342700910176127518447374562770425125211378682045151850311694309996041118353890104024250052937741637374288869508147688634036537407048355332502649344953769379624413334098493485472724762381179239764166211736471267952402092886259180728595272605655412819123290771824210126621817603804186556795929034729213680836438666750719970510540342889358191098180928872371610303706518956685979947159493596487099695943153714367438295731277076542581899763585548049037621261823358203268886901279489122335971561352535077375454147499201415880291460879702385624067837029314255110170076879616201411130417577586856823873367080013396338422336432942093714746407518197470154373303105320132975525245525910868550525060218000280863073279914333432363604252116409945092328739974452958500062595815905609474102832210676837597274170413464133627581277772568912645873276376082785998240305688646143415454816695847364721167605147423075758127098334507289826762583686995085230680089297888676441264763280564168808498027774001244351798760539093594907279712792145039760407704753875933939213697630114053232172013993885692977982308591630509549734867240494977873895262737826084033679623433146033741089612688828902301003066724021744840136397780722900650672523170313852521062485798213739336752046064508415405797094395691355779077205213838450019884346422905736944772616389857758588021238002593355199280289100628449956103045745003008173819158576428961176019322369785396740582057752849583082980594743027464953284509992801620415685590492750268537203417783975883196713548568834473750339547715801714036153874054521563549113080277654328890216850970243223153819293588053855055425140552980630309221573785597128577495742424545707574917808771479097884231847121517333471773995138374225708160639651964617680539315861311986954335143135949641975049075635636096111173301307031855225928285160370729429483259892003297494757590279947920051441404899768357628987948373464829514288874954060241352812365941080837852410973377451525929475657766987443458316141217289894159424750685251039832337206301662198702043091748890101559699226291682889204761890976466798821447590184208904042874218859398496304642516507915757979681826054787126671736585299438051925452071322979454236189701661378254193345649518962624940670112169335100021768346597231293227674171552102381268782006988576504324603689921739737511070450764518416543297323444739957535769795693467567437250410850895883449021521147337010400314600764139813203675006935867085173069770763466288945931617188543992704334357658481363685169605593342148164972313072049465703497548422747107211272271503330944955031872178291941740276486102139537385271316275305669576532705986390628366517642442399675298373057707379424846859282460545549584017661104115154711066667112100595178096779041859931427631740910955817304597833217781440295392380063781923852324040217128790306510162454282090015713148257999811423284207095085997681856814575474072350171801865592891420794124233061217907733769421345120480176345439958229932803305456552275039237565387923661102274636123834410785186189455580669882306034024282969594689789677044847428710357999180197003595194014856007008643320767367775811431443655675844491683371606923406488118152765000048595800116686685681235683864460636473608821696784892302127209352822822399789604637023942762530688107242997619948478463499690143171568900077330259989445111450907513151443168231506379455363194622267285791199784838954801152694258007521668387015798546989790357643140066198793251317429098217280346437646197209999465370121954386016287376404698944795614952538785558440931880388182872513747694140930452357909416337534029224524612469677962199442589998687194828996230639741608670442211852934728449884901603976907198518514593986071786281654070667781055567207335907513762162532226086091930183494858294093928303064440074516777961826543036155476539685880746279498304771491876204597725700194727044529054308848205044783301220194438517594248770669379787303598503745556366523586943997982950132605745041845895605548230379166606762995705956028869168187534935386081321185122943167905463821512184834174149733624665337348885387200422711987643536481585210379565235725248651272172345904312822754911385906444233476680815355869427886564481069783292523559457457979352356311355401897764392726908110003474371051524586853042051352279398263821448372182510990456753693056319369321728169337286128546427191154281868512118039294017938661398089925322920634913920339402210232266335913017575733996561567661834281952659153693284846094139484310674663981978261823359988329796322037080774587015189893871249244282702417865402366388499646494838108504991480820793675762616932515440517590852120445334825688573493381733402139330307374456147274185347122558603941375708650983249158811146649232447677854028982294954350419390307033211492533871040955650266627778945375453622713489500194757032930815664928704458393241010492874052085001173409480908311111924950563310469192356473842326667201751971820417387919901629172704706746138562733939257213420997466646060953177261790645237803711789509821223884446979407797303988894243891864947621681990718814414993037363173828655291554720066106158847948920660599002977124063208290048719282856508122080377960661606582962708433335230941852100509182446440737528808464472340544928682240954630673596440106070109832129624663232075016039510536390844717076815425899134987438497187532229650989439483500095620788227640704529121696916028489912744771936826809236022794893306889541589960254458340011668669744282998148508557864575145145286397230119054425438820751300715799928756749083088363517804020104412710564324493155573375484702695739812680974098380870515884366246394334058844195146286959472061852431734654142919588635012890313017524858243252327213973080829691525318773107359935854178267030719375086790221496517819578481154433564226667075496182649170616891658957106193705688210520711470428650241247870104985973466822783793344637978883314597312506609751711985338643228322220065947578377549781539207750389790121918251031251672232881188594300533854679635392285214357450801002482516844425155184890296890974280384893187706498960933191365458268740583710722507010103805124675991398117303578892391191950277316120098724361353004730881981401169044525279112215320420244297273368352752668165069604021775805014958197643373005416817106711228385148340101532271576041120575071135682349710823918276208553194604153593276082124872497751085955157679352394478235763366178028436852521298443602313889218018539041638442216625654763352852672667672366892866957170649839699380967223506029877265621012349676610613120596878638930446190102629559742710850243554249425344048609537261189713304079286739546595620981280853078656525829511592755385989855427219774183580046596356326713902992194175539880803202746510504842148496683757046454920112189183586063402610296785223428930594036541621648150702952166879897452439827536981953028696654434061186888518420099753944870397563311545706215926835194402441880019506085990320783608264148330931744946881462300806224479036308468204290423259484600940973986795728812529646762720833992524036815063880515832104775068068914686217321126263615804192775006634606426249887200555462588397725843036736402917846544137258927815137597563960756681669581391481468351226928280797202458813663266293939482939918434031713481712570777951267635651680473688415641964593200630394656099873946677995005527823819672206393277251753371627415800739755883584869020827652809709011516056274872907801786668261825767359561254258414246283003433730334983586811476529064284199360234215176551799987124191752169612805403456489140181070278106326440881827368234436321973102738365135970024153873113443689224888951864148467936261396341757499303402065681923474915415315554363387032191853287468053854302184327891883657984058167666239938040303770368549033585452192094221172398491122323953343336926124667309176800891537136248860334299667223154015069564348328786647627936111875194102249223583157545396264570231290760171190879420987413891511750905998557724230025709948970637565475944937486212214444346973126235625164681756055316685053907796580048107203619389083165141753810703212903095186356207701150396700748893314070555096278092402381972378182232172010540189374145501861721767203012344551214085673972486501258415758043241861202777168551621401772608509136183059195883934210908776301919846678429339008410112164719951911853849749909428153059298977605548435036236923369952499101983225739757828781312780138321486153440075741272734351137052240112749621800505194525876401989448379219581445989993643257423154849411256389528330339745555841750870044586060950296135681389544157121972245406238775121639725685620013002389209240385731563486891562274264016297531738885395397809200860581803274130383681349667643985405997552769913397849516804642840480504406037717570509902201216738210857859605437426070517923645677366440912251127390814262003499380261542106735583800805406577926280689976538491794283119831460941687130770902405271285482105254684990392479175854728483010173265124017653802539239230934991788076483634862806474347082420749457468891953838122422042821475306700287316011159439142299624397057266002336045105419425070407241237475426440891555070179915015111895390667468328884751656097954719438325119071396054955114159540980241928036448783296594146317482459596421058965971869630588249690724204762827454923155966762754319359567790748667641916728240882545302893714882018948833557782526819826221418464433796462530577597282152065560477488974821174521509048675783959631473522025902861570673070958263855318006924612750814588934781008466723960066155307921700802654383903805238829156546243972872273945362305939755856337319104552216492664087657007289646744604774019820555621051443918074510828815112243080083412388369016725916316824777161306403392050970540656577007137157193312056118510320450100990023925834890889270626625698447272784043268621190605096864585854843793392582044590218049307549626436799123472622177762673778371194435620213397822165828634813954671031448769667470442861713691605401113865091291614341527260242877922856219145757571319247656992187787693065147825026229851898056989023579417481782193233726061543496885132384403352353949797809623243037745234756946431108728150303767882434422560570771234516613168436386794286072526212094326492404761225798394125266507993819459380209760547044801223184461948351352989081286231143243096322719578567418154573914176093996213863682288167826042580701740364102352492051110027056113758653944846093107552682524451553243909597991781989382568487656454579343748535618845015915833635475951010851279038608061443203473637840651027091680630652310963218395954845055734608454659530670806235714145001282220586139020427022761543007190809436828304787170043156284961410663314319165595169910169209433624335368808445122423238969382753498469974878978183677400436835811859505099619027018482269133727768224474384154904513593820813271098425349372295858344977541160938790653905098749614981325328909509638924644789514869289917473210860174287003764473589677092897733859120966921872772854889855650349843382653101990255034426938325618124584928958894535951315815837572043452407966578090401942312502458969494207723972820570677745067369933105158992163426181757759634388108956484613879885752235587437018957514845331661029192653612691878230784246114619480929568275987792829678643422903654776469489442349827392626271075606765658436743559245104093185176272869455326156608905689112367381624939459891293884785315082720860758092906706719725968876522264499969815528421987468656818677753811081772106059792433826333042492884406729906831518477383322034876519372559576144829466012414068484901791244679196454706541695855345869172650949590643522048121859729867676928140600455935164969568456953294670172417914852668228211770113559683546260238325945598708405551019531926040351523850313603506456058177765458677872403255586433823130084523567386040090644080646140377277751005172945721233362642280115961579244429827562168411046146864870049702187093313051903606724558452745985173129099181693390314807412552675532528892825672401748707741077470064134312932014107318927648229134338428034642974045780662657087996967461890505277304570745667940562821035323956809788997989746599977278303649142958394495047420625540761806570752187207292607263566133028294372738813747467124570586016967009006232718483720501689142833460345203885394048366727544345350944321252066663070228750593868626440167653985259638440219257396474307224629551530997188654488383164314032243254687907818205262639274227118232752880404716782652477162686185764107230084360996231754586683030051725666636211360900070149567310186299323068612243544952687416140802130933311562929906478495927977370390450223153285340745408685786353016351917018352872322577514819769485453699168585603491561921584152651372634057183204640521204003257466896041517130032380681956376516668799643084256104931994807928152709627652812217349093886052195804359324948022267833630553480433445582375133417454596083518422223250855122703100334350041993016764137558002712544336448669565411757044298331171057259652258341236657496294188328271703382801491796466619134454958693260791150412609453464396126038064523548671246246459417727448291983760102709116034921813438885429153267352635464488868339189049156663151335009153626247521735746092704450159799683309584553334981556298544449675793084071184602620699421465101284668821566424582720260758709963415746413577717079913448535468255928788674394600880426005081048416896471015389712489878600079648507483197773518698978950994064352639015641641851358743647910485557285171822222125284965694708850393217728444083956985212764394867101363130767601501156654538898002371679205012214374626756008470696527703010721290798564604240861430813474054307155981965508981903082860783755072903864508636826477346410737954391354856270543335908040019053552648465829823935057007731681937198290236295126566010590278634224872009456176159391337197342748740755445850615822199534408576544994961091848336097177773628532702753182003350774289696848760857137734735942981671971425220849672151427131523549224715991058763264194126805805498954202598368715559615742286172190164771523875939218325069078352650340934148214958561664987143965192474150024277548288100359930860663731434540780080161719467805056665854730112944581076801148382648418368891906223599398103475482059204709391321834891700110041953930213791704238062987292946392281239224017470713203806323656656379703858146923450443251930707293737918233526601661838179140928205002141080256036730793838166121979740745975271065207279803955278614445725415593708211626833042125789658736871290271867578956675300642071899967538323591669255062251773752668624190346405559274041588394334204133631651542271413385183225101011859647319739419491917459438331560448807447070033085705880230436362743364797843198568729125233986419304130210971816372160396634051147677757411141030180103939828913541382215187201042415830082375249098800827892952350858730970625614829823651465974984222594287189979362035146394369344279728326002123535474780601099935357752929493237997760498569460878362034501941686862839010368061776434052392326719591855378518077103905440374404569392838032932675321729536520793204296104998633595163624195041845853014814176222018210803471400640822365897899775645974595086333213895643471936340548193119601990412922479480520571978715178629706389533451097037007309939448234726028480151735902570620943775718309545987035154922755153835613545749478614286057423487398030964452116566095256506340308139516897192616073318839967479536882105859542378612388016628754625112383258320651355485404379835436842173499220565027648899731684234218117179483191779815946161376069995810049890491441981459863744001773974999758871540406621477583300798497119712423071189696122313296230288557353976794434127299561484140450855001640255686389487449410259971612188371993652464811755192518768901209676738192662243159852322539609600261504837632328569420367150358978933488450099077631197572358246590510089397694889762218813239764974910294033598106904312575643140792970920070376063127132465548470195870889912779625845463693150849014232618388744336855736098923475486676370009584246699031138617853827691579368408801629449212502562509000183448667806439834917551869474740460866437775364902930320987039639430700234304203832925229862850262471325393817660554598912650834751599256336002571137609790292376463128852878347319671498375108956550811290718614226467078794453807870689066653385504318865514860438708434891906718625707088596162562366342409192553189105191163148123550669648785597110994752734753092042577604200071555679953944182657634676026870271699996665831018008740521726932848362849088161720698263267554976730349749508446989515787828751645416046623586308082066734023506357215326316876820106038590708083811371100516641048145748852817140678537177058414396829395449053972792158281458710494453270643006575414655583407425598473678914020304497174907320590607105470587527446282217469227965494595836422687606380594792865305660605952599767197059120547542190493615280720425837510220408334744797214282116530570533964357116223391708837380431535117331308748002813650956918828533275821137632273018989663924915185288487956283611923985331695878307356012671793172616911823737564543523574702427346849686961627457579367650885012958011751516747980834750029727846079207923793568772940429095276926240295717610160111748373026976932197551573859492926607534885973943983517871514563482012229259916459138350725723561371110796677087766486847878666331786556251715633721139453299281941200828549474761464155275152940436563580020889637360878486877835439159254210372812585692547157034264316330525464283284404070838813135765272110105390260193427295244543922634062582203338103441170399429835196170643285622122686227178392504024090666138874327559386804535543786686225053993074815783199805837509377763284297838927008322470803740934975745899085540097483301991491192707912536946686044232148177869632366198078178996061858577012476214178713860567783539166876460053901380544186523272222422959216026314768495416479413549958620671865496866684478544086165323505816470093137147676117086075179738217447442176340957531305259531089668645636066129345114957779560018814154560202538579980971564061685852709065035579789624749666060433856370363213758437298710897730958243403284205555167188127281900448297356716386642270943904553426976740851910771221108279953661481089418393990459939765184262381686066076387572199065510548598452597201904033501959504766715502115520668364318180380926466208991389438588735599927173075961371054094157553124092961418860973721503286449578473869627322457129672485313852153681981420773465573578137063655475263162329293086017884924090382376306815707553651734988201792371507520654322856227053355139696838461884560854679349377876626942451435448533998895440663774368621300040294561918885224638193584686786106514254616706824946644480122756300999849017027715986972462571337473440032798893715503922431113554075539399542291993613351996570926330934297510986680688409343869364416880521147033221462853685885439019469223763691624446198882148866918596619630995554626288388460876787217003789314115003248166728914486055073914734307227987742731583556134390274827168307707171187912315294014310682794893920199798789569543693380117941651736869288109244178005544474142070172535155547204533137716781553282205029294665770149190575182604459637604102781985064353602762656184036270971267705528105279469024548668680439853812130723613975517251209129283978327870294472467197109499069781878462173396439610928642958782756654938361835102079259295468772781847535268124020299134318586461336077669341791040638678076797370381583551540269763409196707447443870780324125309493663882213635328119325343068080610460274583084133415154274302841290055484609553220641696464866973235929335141001940426700261089083748626273991725791046180310892208461309648241168232923478907033703107782012207200053100981218648534594359357830996592702951567932450161626098930533212989577381830419006408933843561284575824137105684123585454468727745381163243370361882300462024019049724583271873801745562130994392579705756336386995547941774955098201584683924320901362966783531293472825703911739031162994572257146537190207254331893734633524798888554608240393666379535995544576058465471567760530311371526223997043997251858609636906227395433232730727082998386150834015279913325820324471292631182346555733989515434733471601881042017358705946025571969276715099651707498607177641140921078115751533977729414077038124487188257734903536681429955073984994728881360361175499952016383630153552563227474202805680388882302617855914061377893398096025191364870540209017077577526360176403104977222477160677742680585063156682147976470803986694157858242489953971038673733594008584752031941756995616767602757100060830767231801615385074582617255915722469885209514885847948914708797376463627532673517200221317149921924995750202780688063967609427775081581292995638423622057058453107975050397764257753660915685057775383375456026028800319237778670391400126971397658867486787826551453934448800512677814995049798258466106159708877391252231505201254841686059263019251541934530022769508855089645274717314692490716230092067264281451739650459632964369630263015201965032374334137669959725700056717671920710996878424254295203002885178699091081233946050569713052910921561647155132835214325805575791349451754084848341139010152556401304961328498287371965124666836474235715333366570635099449830910583562256253940064908715683271501746999545950879304793645250751661917658653202972801052275966970054077771495499557697420092100890642617529921993902101667719634061816557646256699676930837048430145354523226175828420499892615786237237628609868153532667318582128905111848548841748091550011082998623135036495832036542242538438632290164556811858414739071101165122175061674443399012824720802395032071747075185932841349262125950207325964511503479692986052994746655367182789797556595643070081076387037955808203505332348711144333661573785543260403558557056403989237007055766986722211584453867092644760877735860363113664289838521612270007358086159761889043084793737600406473369966880345498701156573834958801928213416024070764555894963383497028095741780108312619485320942693072777017108957397508408380329546555175842632251028019845168037158150921547592773392716514300732724567557848292731960970600625161702878536207170128179149598436967124629280330221689348081423538173415621380014212951290232811625094976150733560777987943006632024533901795097694851502746113814241554547863566474352817020380188457925522361572109179234572464582596110208185940798179238552873504903969742944841676899132385702808150591695945642786999520400480344154026176718186127640476301766781283308480733663345968136542049544491261986930907562429285139037191601385010918240009756792474632697471172125126657981617368732186749181349062973102316900822879960685671158302747416170201061232376033901053962329604664560632824788914354498241346663857431318931237838855584890174516700374797456852373878023348681958878220236694108712986326947614343330354433687505161745246332488309703834741385778915288569645570675158039793895612620310613453130503047620195788633934785178137478472888107820151459588236192962757939553969244585797245938897889129779058936100745908330892476646835643492174583560950366486114844589416135729350166664418030381990619841233582973228817178013222258022152441374763253986777375332899077290289167139024730376883612895526225893341499845361842820531364398751168462409353370389731861455917195149789794491873221920832398627180521436834693234267972392913144555117107982870410703408579783919697649029314897927411782750389775969273713475173509708617672512383211814125511477505405699221089317511220450416336816055513008310123324813187969042006955283586949909858500568918176666396282645139939982822503187268818911851188955923083065638130133175705903352965433715728516934469259687423692395074470062343080163849820342046784006952887851520206508427631323688171462058735943394232053505836248707873739083469543261266918568065562080709040730137382111051564629106263813474395040979121322899108023197464523199854732226433472316657099496963596881848224059061476440523664940090262062104005315490189799135857513331302607049537981826356215653387833201058670957829529745857274180407859304790520162502255063847406114245646001156893660289855295975326095541378390736928159541112642701592269278736958795246389308815813893127653987144981070272033625620163313575379393990170531681292695633391609639928894855903762430567865908737489671333236589132340125403242076793893574047139175652020543379409960988199874024423455185919631422254673026413975826232317640488816741091408374534118479991869319629363633450555780521438785828897742674951460582959106076330871553612405625630498759946967683720561107975271661632883354361063169034577834900361930788762972115218158932271521200470749948861704214301965988491725457137208082178133627870284489932303116487608652317233482871460665800156259816651341240657810635770661527849917712770860803355215834334338497174806560223958610832551781813812895186345266828086256989772531689114917489199485997668172719935327886350098556904331420413908177757294918484614907901017748393966725660407217875507997216919511200099553903960320756935310713627663798512778801608755219322764077592564834547664310697179236670148349301805148321703187757677777817428658533016913358676710821217062203682896472344727674880524263548984112366314293537594894428875417584338601849558558969270029802356809804756808808565440940961365283778752550530120041229672499739697283071821315416355558094230785884803711817616456033636791789438828284707859351800108828545105964343647196862100160886023436555861440307214295077932851276109429073431780629109887650097215761641169746807977112713238954622331777730302621012133703953609614636232282010098126461570070634312410479091879253634452510428160049938244946227881087048514907458785635926933485251043448622056172072043490642164950698905468356432720896264571671942898293629805328880103009171701640958474996167931220533191748328193627939627252097507981753166704763274379853331776767790985398522345224604769185326006087131858106094948757964026171430604565838430459981498651627683079667396722724178644871220116562193232662556859792724828350038802122946692618203130321315656011859289550823183243604956442914860498792453447239186869500827162146655539924955483410999661571501353643310898614527788632144189519290280527623519365033119927698560627575579255954373901955354488098256838671298629602793010878662601569114577730464533593375960081816010848400613278597276961446907484301142019785591283609994397570658262332729417821482105509445162405621404478041416338573360045043551806002696890060796491924339568720402548422036527266069983029313783204222449570963883584891238040442245793024324610794222948310844061324930245881463194115474778388986087048522951130537776615098617370122046123678233059912838606124692516016566587289060361263385151062057568686577944446349633195331731084422961906270183085660329361862897236058096764420976522810771200390656984208514754395056298577737750216419001119446823500727221256720616356534816608236782705291068850733199230746402607344725373874789729612031101590553445292571677501791778584530419907811895805617151340700666523275768494071068818444670581383555304197156483998716720360509472106299054808317716383973508040381373121215360147785967680234163150209372965431709436299987502929868020195761603514161885035622761287388457454590534778395033837376940516378341517338337885529155656439369797267844452508870868406016487922384308074290753448531762889726990690921506701235704963906990264599485140145964347710361088855320478433036505419026313098838749353723838179785157473072047973202774447085343601584766101582530883196836821318179350420609979838240554435155553890498706132566313915919787946294877504564976851858512590266626250817932284086621531349255453432583119040435291244239322481916529026854016358189778955200706766504179011386786720811868435472667410111294691403697479811221577031291200483552762909481173011959142015588468114642324079934515698078772575638796555379706513007068966783391415103508875888184301729433046585232045446762876704878294953508303260529918691715193775759188428040804464359413085595554612354102496478927156239226599063497023848172528768375329494115744799869231537699494258078587969669834341960057318377822044484892097865629578712304836459412987758634519025577526411284415501461963383748024239697869606346636833279811831752515381038721966772807516794574637782521485806015527724263846646117680284593209247282988289812770114798449129147048635262655917396212453582324551085325817134221410548978996615758137308588400183110763188307730882424849081954425719616761020552438845099947672338094027619670129951209076850139741440560408275451439243791471728044214420904920077584458636228833332286768018027602488368360616275150571546220128440709523918718818722824124416001750786188358232494147879160563023068442529205962702843433591771247298098943858384103192329727520746859259170468614426294893915114452779238613311841387442241212003997571441078665959837148390615081547121523750316539407707353069645625108179203604795932367020881907548751600640317831031310798415021838543964426176483102267024739010586699570821742899856997006228981954901262004540866592731661105791696989495122251338125473274039563061432507782618818233138308405135297198957547622639020023248365957370885848100919399016336562997663581544011613672381142118327790852766803225901841724256291587871369178260125415979577372929107927210394469636674990248640170318668124096256395148692619197151139310081700827052031934829541452526077235354849115484095093962522658186142334590575055189736538855650264611077068383454382072908217831983451767238685852572371374128496579639288588925210321909053645036304778312820596831980832742938052156359428656286733889166148977871878093316196032349230743246447562045894732585902075869237777373288774739440197101234884839847364071613998132340110371086697456061027628363095546887390910514222437625898224843567008359173853561564750180296757285672071242755116061549987829030259210596577515516874573388376447032986513901027839850415920658142329887061777831624068965616023709721228536847590006507501416655097438184592693242941415780171988023594099554585052874544997872237529125859123809011050302661190356134204129245841128943461334305195014385700019875364773027302755171163232281003523365705526060175163932499206478690192287190438600981241518897366108048390989580467522872375345989482114079063512580933363851910161484864234227118820872713122732428113835191712923728445016891193622999849670005081404300170758846135871163970921771293113864674034776957897616160598775260090213482514784884701142908989047246318131454475760824492853293569900315940026762314165906978220002491375595692229373765883803769676122079708792769185024037015642322354574793480324803647014225348083159443999346667493555270765790964753035348875722912106508155380061673233595427443419165371678588530999062028067572132905796123795523456354082512094841581869403660430913767069913276016737655717575662900618989996522254263496114984570649609063479816504695075765612091086772261227430221671745030740560272240943784791591949969914872982164823318519180068938981770975451365670005741087630685449130025237185676845436723239335918479124079337940407167436166119455441577209128559532964360049941662564437210949979581843886326210214914890328579464614047689374463123898911612404775404158245772513421434436108443402972769216830189924101353009108853501514799426302664074709734840931426129796805529819930509721379598689229027279634991898062721349566844480530673990588728224994794451411421505963359192723360831645679551937242732124570815714556392874854808236492428882344589501119826546505255604619043105754015909396339282494647524810373446697326047952650568213749732800929944718937612627644774630266724376561887915744001349797899024920875955593319724496480644359457799886254839306126068804206598709483378180082720956536192659853816138055253176117012715415503248599083404727787629811717911696047025389368034663332061435423469962209122472879916753527659255979018373043111214706218546662731862437165022343586944507067940261910581659075320882133115535329355840596177403718284253674078680892032154437493263786532067329425297272185704864818239946611057484795525403616330881440944168739157304443710959915967509492436656505340302342112435306989619695156398236994396364907842315082540419337455936097191758438907505198093416979470679937735851739018415715858160286983451506878430301165133247902761616348296510446551476310700603378402487363783353046478192910274883759957178194737078349003341886670465694466133437424518670381135779181566020205965848559113564543378845397381233712019674950166590899849756639974264165817862129860575969318643697006680432024675127885269010984390224510284669890233510814586885610318583973379212682759147122499227461161489512834253669384669142431802151169707181499166446411578151836331222390689153618963496990140624824219898897493659930833028181950716587204942696142944277824402936053275390089051149757559203958986149128274442100435298896647466256000990198196719186350011566297155767583163928122167345077357857651665625900689618766577108506180183882645743906823726414254135286040118938970042028502968908455741740398945101304357684496061802015729600175713447855387231500671689800216008180943059119558165696537110348006661115573008814507257566692708535517807935445744606282172739597938216007740805999209746370267611523673926081872316988388370617539819047915901746335112480530115920637296749261336846507949118570071677070538443077146215626070226468155258048457358322124409079631802747100638044399787507541186918008316273755676553708735559672075331723534456737813593872234911874044869388894291204007021651052540492753701596215774115025755400780802601563074722371810545612034634562595358799607892914192001956770078212549226181199064132124110286216225077479578074389775628525251561472691864744070995931367758285616225211309692903820635232432229632681031261470009233797342202364344173271129828208605417310634538818771592231203485090990137981488907656972665418418279209647223733157197945400261438718918381495126164636687363980147530427723617946636865884455971120904571635623618635953013056939914155882729390925713902237730629917954710270220612410463793257572870489491558994520878788938440377969945195316098458704183714294458717076616584147162430053310017175306985189153166894571627338051110063594508356425874739068994971031584175926665164322239947178543434726366804304170641259413632572076807379062973141263101848581512757709841263026510896782363337716485869302868039078555923541545472740274029755889224660365704261571537550466763710683932299127942156061712894382233107822438815144291974647191447890220344366750173948633661494850041665813327084496813119986991240380995536180928579180759056222561367761895226702932289362509901927754692468816801563313335764846097906020915053059634766001264861046379120546683277146359910127479233024043207500270090140763009083250223553306268212438966095146679126431076658732278528487703285763190438145272580055421078559334017257699170694015471011713631369472458763496659650235222670777339370908119742848125587928130636224346468675932576978432201580920602244409684853501296539729829719460165294807187130117041476317800685776356652241936387566491136840821504860759729954536309450568793568148530027793791383905038838468940627890397630083781839920289953062906709941045068907730109562747784902937251227091441444326515208217775574035656746128071672147290069462779556013133899336792849339167399157184887423659574753308891693684533540744912881907070316114843702944342332389702714520075011315989684620876919560128498184430829746781163535260931349141838855219316558275700005992681172931262400858107652617023015237796904030356620421427689474951351355287724138856332442973849356951636356487036729235269211333797164560125341422479089073600280990463973072649851340896251069051912463231250169346742026761557548448802119217899259073405345921976782733207080202729589915293781102628810480917342762143362875644756061495888339042139021728471734530933549506629426889592650604877035914565105925399427019273016156261419856032527394141621590242144362312251579102659519535911229001435318998900450784411343782965681321385495352507377165919464383962430642996438777617495903744371585050267524665432634591771267966458707947545831876267982893141486333149919331690983039866775143765729257014142768624938084849696094767089863237310353395681209954056740328503664365022610762100183963941447293362402073463725167305897816956689336781236460139510875983728912725952654716099862193686558217193293491875876567326715750814839787919035109960015198455984458200936143138428128620761596306041188599135424839706824692907373091728248649349099746374791649297091583105455295023205666567233580196672858891603819277950022183282235599039743895219968159773881329717856621349418209559812351918464366205083189807171321662474663428417769845895630797441575366527231283978194275326126076520965640635817391416348967912342686227670843609115382824343666086575244710007693247917976516419159527661992471890273195712956159819832904541572522971414971216022756068717215952678498336759731015784302008036863353539950115776422466364981405692468125421144189521162845458961251564770559009952143992329291516289440229389602449884885100987897044442534431318034966688353570191382146941714755518343209802325028858882292912646125137403744454434204833498348389444354291962223627716984022378977365631743287257824450827217028302076745167927214943177035676048613121819496381641157230429342892260313242580420774042877050916626857168390724389109890504750609304280084057625033016527253638552265697512659471368200263952016532611976228612923956927697872397645035063911680007437625148155640446497199699264957283758126415737212451374995136124326741174943352154494362528850360665448470126242932645176865562846064399012328717485401511297417393157365962392428021556556836564556842960428685808870437924783645199639414256159181207216405247071976741305874177841343070313592488717133494977956151444824828484045017556776516575943025069235095673653810610731094749220771793519774065079904600505041786930877994356801400547058596876637849282828354550122460670311374790188906403487380590999775986242608584774449098418492543196380674305169717271710694573095551523645002130960128065110150090823480904081498251332803381550593471095938107417272734886540844123941876011245844264101884133116014228610101322426578122011859194731302283733562600071436389594950009621070657778803365840576563940738779866949542704283500550496228944587352786720325575868360198678307262320264702525999161256917266831788019639411536024330763879730203443909577272926648333176460307304649590339530128813832618295839251670836582138325349187630867332980575264310245549377149938500163083247640064947067628605242455176539945796602151907266606510471778317680259645179551066710583120624219653177460616762044493672852598171989999288359221781138160329272519572032232899490107789830337825560644653035358270794466008626615339367539130010893880972900938722367974930150426779771806150739330335498220423136279447657407376376080563676227050489079929004100979640825254952987439181121719260542737745842988927758133883869353512069675381705739589439742307612935593632790012660929056256734698422070549115178252295233806627769161717095485772612047397798286731952713050428698965599752387573219623682556377857800276775338976082311981564640223266912934005069188037705345618937239477306092133890236454359169940339760800690369720325325841055838148082578399420004418286027681918122778026360721733478954382699729825068524105438955668390350135306751063100236219084884224097237976209629677954220595498152596179588889816127584969249264473790811403686564699121397994572132714100854591559467680594560848287971986184465971287524722350682533789424345888328122686161049354523456967232487998546956797176023975952341475961462161415161475982693561052558808447552616745636208615908236624849550360589541955520752907243849396039536179361147009901917452949180648044470450679373802076143388540268638321925638023519120740369268776124564666262685106162662612053085344778968974720455174374283118519999955831974025683602940245591878554903448366764526008649725726910111478420262986981404378833270002392770929262986847481652178773693443720509728516922908072660259530877400189448758925559071770065977933042203336553248792685094824315886151106244564118782766524323748586558710526970759842255388867824957065935116288795903110955553636602048028332974539945419884596412800022463292925195632697976784344093952404009702447140003718931142015966360998886839197314996557281704214036734091338481755654379809260848188110605129305937874032517506302440426170847301544535097313897421701272393364739162167863373060583781604240666230937783667994172472135323856514173325996877846516212984175548546740578027447579065971478285121011795318052610243204641814728720132108412777056141317938451504683844144887587801761551417172912421609281429030875280781475004164909158517379516564635402127961203838130990781055086964979123550627208799272173293675521166519745531738610731873773686071858295193712258359522819031201331418866887537557532232401006104084746640374425596015941348944004854834797409944638655131184997618720581776165237965794872629480971023439837278067398251911307282461950723685828533981694895047583375493034172345748680311760365453282124576916133514801460498478281613007857703186442927848795398320876565874400597170251355275064489276520071900281718141877895234793554323737399556520690827340371904438426104531323606767554924304547229210244893493046607854219774886122040057695794713801253283383002230767974164006282911003459236638354369922587289728007994321091237967489281051183142918785545502951053499096657536551365223793908993591671575510393084911805416398809997269673498559487417381209256248176668507896622384774462244405208155159006018406818677826836823195612960757733880341589452404147952601029496014630695571832026142587718539263716922839836259041171638723468570551145100276793659143004914797025697766308386272040867005541271952924503947644880317799988231202006506321811568331092756785394258951170161545709168051832981570660548042778077134867223490774439951412474241393794344714757243312438866013393331120056680923817206927345469739849050490227848915847870794926277192564396860195928400188200389285396108130459432040504463380201325441339861327303277346384076240269229263354693491488446008434251809921020406322475106931740774593118161602193985854513395179770882388019332431509808992952030748771924068092307748482671862603802800152919007728986252232793608981389674108323209591658757159430021792044122676784941555297848533093443613198706628884753750631019037355029787969798305725874959495537533567349182649828283067379585509988403279950226948503290094207488951080796827179025850194447473331749671231483209605197354849381258889096704154811920327851429732411637261950674143079351702696117969571378839929587097379962218040084007981320964933745192337956981361765242859607412692395159999697250545390583462866282589615703145877408737800797327609516851240953387503555483600078579374172403642944174852348231004231587015309093690855297246818897356759145571784118022698134136613827421420444004764621405856834331528590847716612701361135796499314991460544146321407115979007899655495094173338714564875814880849367373045669812493460374445196710506682760185832246174987069013786570737664180208940409347604388184073457856682955516065343877614233918961784725736564499112055895506731511895278782519679683080221169275119050545196962120019633038788289781200343620589547562702303520349559649008828193867822783738256909524490438105077854346072023945574842347163912556463421459607062673824551645314722925057310292285315374179976587235510132309538727049679641251206956411508302131568371537355586384397359559812846087852380423883301681670610383017196193020932050323070800929150259341575634119516673363521238618822185347701348153017549935050332489921968679823087408036661856863153189589841403322158881819367277416830899717744543332724344814288421867205922136411706435176088276464723467045563478480205142925442855871546289942205418068687211764709844990156982463070655001197108039586285860646623653433797031395454004327619122358652670941012425521914195017717593133981649718857021378596226273270128123923912085965778913226384816415466549831879460342806205550534601680704655061525447852257775842438277627555020080482036334305793125435923686838110547000025736943822592769203565356036651392633019638709422483669999569500887402395665178300213074694730005851977648297810399386916627962164207091496965185716209062530437286631962363714575366046352476851739799324688910517661671779131306041567011423808174504571881165648316133558930595951262277614818663549530325199776563483534767725100970561758078100972007314515543228102973792523718948343347915115262042258497664839174333144265056569802950519116921803304188057004662010551596725005253815445717152992498402527623487881177857480834727001858344540429604719750204045993306641084065684387258212916649277157681334385934874572276236709008400362468926091230738154917136494739028050421766869174284090883850968388504006072425767777956694300202966676168464588361737503831582873594383461915662877892844088042389325419864491626988301093260885553088163388494385534763149862526921945782357305737894667841983946114930121906934473380273426403733301239068173033544529536741017832292619695298935349032152864051759226158325520995981459464536325492728099660807049679418971267900132838347043070430673277564349151627224934458765451989958627362388621996748161335839082203868632658284781152883345737872453789347780745278056131926999253553469156621404963224931796184654234290580132873075781723558767877532940832387096660201347641750361308411197542752849176937805584662580885148806720871369401712018032299052661536955785518770966977139098592916743322404045889334383982664157173918608481726461721026727493231460028953038841495021956602170328048389644951333634982421883923530779123653585139697998578393294842394360589591383275574695229594689671068522690342849493114294275207104383769557198959408925371981290567222169682521129154947448080745021094548362046402957323813899387126051714128182828960812227235225654981188714396832054331180403289501746644119801799437067665884416165053995155064801359045121126000559314416777005947268410540322885887099506083108352032036240003322665800620840532400782723669057081818775206032749463360012856739293437166263667380047218369448694047725874749615286253273811499530159169407513473404489396121581919040553288995025400644326557198166862477943993151865378587405768462164833777178774405360090388560604303544318169494267134946519457019578296612316137201956966713964534251237661319434915983060069246652447121725450035465076782742562683325640169135366935243375832622918566077466627918600105567745438854195665837166596446640798883943151794006331419029013609707359822823895630470360602588790589624740331122508109396845462363738693014764512264659994948372769670362924272034292976841869622398901250985822769273050763385613119164972095171544001740290015505196018332010189493231029932745427084534323320571495096959863994826610209887245419410241344963792035503333853897532931324965463982441893469688093673924361253797288478374874135198024562740894753629892639697729560053165245980699308071481581791857304064501807136004149102005497256610186730064208700136578165527718546052579656556511743936807092688282508848958107372909424024260338240646971668460392438540195593735228495241604039014781642849772689978079786576572552635167922296243716740679310191204338630967849189170316405916683868392475160474257727086306453241518759962255660747162618659239545067597431588781637483988318071087503786716842089095988868728669933821067528946982570942876090710911249114727165374819384245055008570303894459307594055362108593943233090455217586919149896639802580423615780403920838627599895137609846897368306079142032332012157368547567280043846584090177049951448750419977914585593163676252749656872362390967639473251495721017196095279497693030924566659363204760638074045748436597959980417607806015734301117669044446273206490814116916526131265418165198759497616206808221693463098193301514341005428045484571426299756280020233740138636152534494151950743175830270449231379391355741758396873045420314833035808700966994975723864743532388793029652982695691902732108353812953478545410488829102426675270643173699547927126678903772157163711573616467367930517558285626624280487071327144700737338582209457534408658146732125774823059074828867998614670243587304561923569055804255490799978876446995512900120181581845027643460242641068326718098451097498331852353090089453463083469205557927710006737720059588451527563028993508700579389136943960516585835219952148378992076048510350025676694842675224204804160215579445692082637742603621620238138564275002719655719627545089902418333054596528084883671135560790214017352559898544300040300029817875014874621502552808217815672048801624174021898727288511105947149783282042897142316614682589265903749037009435116717386776429022288773307724346400950316289352487642535557329252681628348534544989273841024642548821966979815646131548639010484024577906953500213640833498135057311348522671305438848443995315096344472578171968052098403771098112089563372440948192004767524537210607920903349434860345356198085899213540284184094348556542680650089754905191831092870791418594627606860901121899932141329270462553417583416076620777825304868180406956496296721793754420758472304096258253427685689925313641175818981010566322027271335834031293870088779134360353677106207357147555479658678058737503470612135227466642497355011038006828110044213686131410837547195922864965297806849026862623178378974818786014603607375482923417320487934128946955157249275598158696634652711628694940268088135604018321674997745008719754739709240692709141617244071973461856166708851140053601412650470429414550330606852693093911786433530292231249966484274820115129027341978362101206340085313093024970924506156201697880547572598172692328984566861020934005044161704130992272571350228856389667492333924223327385831000862592040196740645327822000577015580391521037543547287702004022589379812007797842987022048327522080336570094648585833663001258304660114432537377315110286368494373480316212905810290910780867637151220593566592616750460877134729983325449204141892368655610206462143752633704964707736639169413001635207990589391978547753301030640075748320407684094031831462179142579013461296684484811538439525824150703075984676281348740753462914023779860220067011399043534349784036330738671732698796036215560472850611807849248452282954012213906039226054300194692672191081630847596990122849374299159499114358142398143601422492647108569085172433604701035446852068091331519658389729914946743365713801084325742069321309975884232456460568995485813533877457956664610860133349004252127812382858673967556571452198158132680115421067054063363865902176423510508975973932714385179835621534208917148084117715697202170114168698558841745055889535596979433823274626474736230190279088510195516229530781638177757889828607696825941224593476730183350461069010348630464684621064580100064900670052695143456695790227082542956897207909630228240683545483207837574060933516378736198342026411046972676226670684240705401050039660691850420975753668419138423865717644399567496189081574142938372352148159951792819885981601022431103060504776925160714730727320594911805649537550773047216798102446622478760995348795711179774396868192666635980409225826430974474358324430072690913883998665165941604111325387524551400289347911641830384486551309070246992293088808475741719446462861734699758645879835695057496201897519830836243999146079741064086382761826616629611778012601647973062469143333310354831460124845569514632474606941463122383078700864500838851308455940553571186523143189428660293236064664217569731415511238297116632810221624030017657646863271596137610470936269987206852225560384125784345110244035098891582573744522077080153178610723549407939959663988035512258781264086024252142042499613384902410569825892788379825670614319902075900505848078247780697786800054620069310635470515781747713697166271315913063300972426900531790726410767804675146617923885040612976546739602597815921970305704823839572906381151969453447638435388182077127243338586072486088869451717644660169403583910016040208642391845099068373557649314766770386470170934736224314071172307909216898729507007473177568694099652729038179621841839172946575648721555289066795843994637255008908167657135195657301810858623072487588424130641116988449700954256519477382757496083865574926125487142996193924286787227509423453740606961885339782580986784571012173041017163364346590669240099436772210797867622468228957488646781667336813546655654118933611532181187499891006087129331117872074137547175492587117538003272152924746199712325529586455010366154471812770252985266282881713811844144301767123513460674280149272193831028140224391750618969956465269399657682977639416424811137025598312077037069114296908542708138214407862386830403807499154806844112392737960272062628276303640009023247434797113768605577913332871917402574302867208827313081667905581272662877867836460301559039761572002605863738416817127429205659954430906571367986675890391713030584782268799010257469018934946485717541305775136178533185384198042042772129246136002148856099797377596939351983694303488475993064349810216288196168163941605463658486518025305565132448393001098944805063880291749941721055257315769033704879113176723414430467235609072991859473665371040405513242329870790830288595241841068972169431984904749685521849222811655680820853648057014039875496909999896500623534934833088635853466081127117133577834225577647142902916265771353950748765653272752403061389460159269543733399181563696086705946222573173725241169553925241980401319239893093053827624628266555549510906088047143488416499768548353051693577037286378035390758823160278951443311911777433118744944567316255877815434245751375301191195602058144519120825795607907810854788363177661828701436918937350496295040391038857371140427939939436237539665111000824725217465414827912907428812377046575246823449731867206588765488697939535319773973746985055335056064695275918155252125712300192212075195699527802395409185619143033080188567778278219880316966790990162483232111660112574121503981153879526505753189286528501932395526606586013444826052835163638459386790352768973034526717327173998193000027465120696653390201115657751569249016361753520854532611943044531157063831817432653584741340635020078323919343643250748010166033142942638330684889767821416852661220342020189192138743187954106959876482016747070001508062640937918400782607600862142911137068933671996092091004767157127254107617159414048737030023665978594522336846584494426092005147767377281756526204322343140181792202655537403503200188060572440464503715036891616505337281599733301012170991431295876882090721835544765917298867807105849367824206594568906286359708573492567379044011452248609721489219132741048919811124852432055042552906421349456775327141538207087570050314782147624731738294030055432468379030927668389865720982673194456858164254924970771912047631166600769549177649862744784506977103491742146721184199414439272375633039332682971602413720679288928432385380438663517569408112742968402957214464460288991019632795132840583655738062619243349262805343031364673148714652694172648435213108535586154448691381225959248480399492694795212896353223129941860456563177297939335025906750048176482239661526705437853546523940339593110987046829199625938235700185605085185932708177659559292688287965614189507088491516606721516702740782473929460647732445130778206296198385387423389228350313638126423032016911415911565953315350079057769232869459831452219668943174063027115835432264932041230728881093361237767826017804149547351657698827491484803500302956916540046029461380673260335893632109622549285988255117204812927774601590102103970382428914534265318244873030994780150403752633751253524401334537025773169314944917203931363340665511317924391223474174212239158188044637272257727322941036706317069456222084902652045478840857831131915057803095787920211894022101413512856341427593558025465750874654471063843779491574084021635605932926925348707032323270831299998807476633154564275234978298182596053726379742261215522124551293490401873046450413716548607236560464188530851148034790662748551472659669024942428654521105384960428061679304404794713898081273584290215939621722468906828299561441881904262031913883933073346866275044734196604472494465385637515080438873424279755617425029741744190805609324306877029440425774379117938364040051777229782702951751207245708061669191829059245826021576034650447045212445303344732811459093169574247895453729323854287514801129716713753672686746722923156234798569572972068671425424778754346589701019188180001788608287090174975176470157795753785585418809183134719186736608542069222738610845264067630172168290800755329016603288684346564129693487472419847110612042940757816203953366273079439993248746690881068215700825437357939871795941089121873084914998941054795666786729031857584679333573803754957177275504417696429846083574307922049096194888567038409019301099590074076729995276279067563011302619052809384050857853917801079031606103957218532476842907200601513807496085390962626947173800273905433541399573128711888336087106011392919505551853715350524436182738512277136991215028950559814551449133315317549254195589871474486573589902143191974693438490835865684180945132844615694913447550448673911901245599882285946211359330366998186128907397004699652562539011504533152181521514927535031993951594362138155040304088707374140501914703166864240929192670301845481040155391742663947280428992366982034735262964592460701292594142901070565028563584068669946129225542717539463066496290789892065243072097173522967002370289144051158228042680887904084107051524847436177435989822632383320358004601619728367219194012957228287642991156137726923512781197686514886539855454058532939428006296988885087968065017099728714024266365558481957499591686453718130343398460326818641947035128234335871554057396334835291638595161726214619554228149718363608726375522976835010034285322480271739603254159255702005714979242605097978167933591143261561647974173423597188962809298034125122007240798711742530238379811677927798119872498108922054452804885556544286483245606837996747739878702461899009603828352685196763126974858102071980573394782541705789928485396969646945781559843784851031412684372584014952952093798184486044717809464599515190191630056132635203724755629680910374859864877588597812326490423526589830217982556495274519946729652491917426887080863340442833381297851963280601568231654273937901744554514491801576129686465551081659644303085743782627483430212316991695336144905089527806535134226669511275691569197176406939323157039812755780994227940629161194162064587726316915020271282143639156577975762406404557217475773199258472982102117162113674228090039456310020768317552960258530160226819152922615763223264181523314053018208504538919092631219664793586569014323765583958473074924351189546227681638274442100096525886483754501127253497996066025553387655943321140252504592834580975038103864201096826769886607841291967320732561307066344352142355425162715034844298616297039182049166310688399652316648330264400031763275315995295478651795719364654354999772575347440027097912837890339810687108627642205616628461952762010726951162379014862892528433551607792863876836345918232598262660955087505093550678328482551241701447019471183458637099785717045697553276457006294128984638213976800180886670700873492231293975797063747823504384284818821014422974039350532184787068181318660502418021031341127841231974706041999327778033973607112636639801264008752990105346624347038627921729634840484003324583968906208156214289471775154430349941675602142198964847494286181828516815315928009130231098273250360776024545942742204642677521813943001598042558946501141759036803128272335798937079194197190007978917925470816705374926817031723846222027226236939075644966700180593699462355394517710605117245242406272459362526578365591496490657369186772334444892115222798238288414579779550497796496898535129589468213070921468429721619268283264164862724192399943110825202495424710111143054716071294685682714630148730811060671155969583815438578174370661510424782696051634045873664999493667887185475699884204065522630934084339026736446317359228115792056787584276693213755908848558937901269018580325343832718892995667927917947103400130685878218739417285498601611671382728872194142190421067451269065942992826331625243939568179326408883717125866892864935961443391643956963373363995934990881987775128570494674877542280950007825313048227260595703887423256777815056703011323830660644510435817035720920710426226024980823379943018571905657705479866051638678242070413267998892432161016191813002482261543873671727438438523529528053742966272917923513330499069922488273271798253773168091997558143036430348679684260798837100780934830306714564654335993823032554539030098973063624656796646186386470736209343273243004997893822827451164574317168368498846741787725594424723829538706031021638878460859772757095986924348448363548951901393889123515506259835094589078079886821830754311140251387404300431857254392377679419192705373351526095270028109028258457976277177897451879239863747666394573541296997036574282057729638828664341533917666740865306529294825238374011822476949880812631415482106528981830851893563109178804513622456856809903569881323116455267734831945031730206745641881529051717611111761057216395606995416416196536062536980208644725486906234812850596761967561146237821624721456259283275345754625726728567937044796002287392788571715284177756504432014618438338797621433865678363225201977296033806849126208380786723613578662269994287774132916511522120586700127841003390390246515693602320333974707434321673835060773167134672512520931173301287789404533171857109111773311862652436943851010476237626889162687001690440655303279745356828350317842888105686041130910414348345342879290930712623537776611917484309500050011370820491508415401957315609529129479632132856579546351171702943726323161867388307320744113691368406643990787869846541423136509863717623573583022765156253965599232488408659959721667701600092467339711420600792068946290527741731490251266024398749727187349077727886350054435833206563745928613601658695318954904574030314305700274967001028313663381574776839093547857942606415761070400175612090927264323047516734892303020243389915974455977527712655415717228909781450019753529902831058140782330375914308580633379620654936959776274697026796555600662573752227404444732041808316530813365969405937080944370675206156415518736219167060415431403977649343742191047518562030610010756868461035294329455548468696275296450182586048742711071624817622176768860524654032202826561591990328671044793050381115119521567172442141000698778145803709153659194282826668449812205267252762830927904389501437710855935898750863148880635231842540459483552866329078140979182573440810364079627744266616118871173978826320343250106979000821967172800339213000117891478284604632992710344915444842758839691987495583461368029412691235292588349980407297612843410976395963272414472931098977677858204392854765839846812047698820736059724104535131960320345181617043210762957319772318514947011000337023896576471401273137530589174556508077718166867283237516331292630460849937435300319778503606561140546192611856275948961721429544159650600516453370534521600837720893228503215665269509542318697459082205611459314556131255622380931604031670686378115988358295739798365943445004629657334179461839050736545652346836029594559290062082494169308543510998492265910423089684475052113068464266567069182113360561604529894181767907212718122210175974897319456592317515901263218450248051843396902974801327603965030580007743867028325200270714097847844768886201923018775968341888554304969916110435863796265285085737009829626455753987792859132452401797344575945042487590417175633503274135599158505246683105462652022755590465115523075717906464050561924262373366882839302377257192581426575816533762878903127713159048667937838727754543910694372342109269028248017245046947743316392309754214531800901135877222963279827306873368807424474982527412310662523720138600514438932105455671938840662369833542567584556085740148476501416580701393832637317546790614682101147035866242097839369558466180153662803327291286010924765671650621784826008408190555185304486565672207713388973920462661346090123517258119173555216772824841248172270768038320227013868040772468679431828300546411577810594397398025190593077923249869865378762533869246814033697826106168756696003527279138958245015305819466099059874539051418444496018078632498137864529716269657301546267902755535622436423392023236998189265035417028311205861785549756288291439749535007204859042050043665320839301640703353594014979862081830134873925178469418954587901441445984665197519792438740669739298101452433961290016152776108762857508799804076978197151093710174083065568859277277101407268273479136974390863698835093011047849032148618153100140228802973635319589445268203615029503159157613306274649153621798652216569021513963837604581597738060786167939855969428650164542704312858373093126419993352272644857264915784116681095112169711108644153120499916493339393692692365292174369229358755447011551017826616294275383652409862427315930514234712727863232845872322198639793672283252047922408315618640630683908590119345598260087065852837163195092202702468244613007266309833613282638443887933683769731588209145729877255870174066967590001607783526189722077378291843853155593969753575847850234225346801825124421536928234782594691780327482056221521935382099302437372939801929715841045650830111371256457094408568930345462532282571166295110589955097878789078134595682464900313946209250995708781181319817566566999325758993596975984460807059254447059053342906451389290082146830191223155019480453453970885139211855883208434718938086609263496836682439238771590137842623573775410954573978556135090855635241039394150562977574795487355242655281805654552045675998987348128649755706527762854173964589908943012679004577348017787077269001469667095124487896981544327905247106904239688667237212835041657668211593629189583024594713445008850581741461771431797669753488441728957141926196708548000595670900425182471517125059736410505562418647094606831572527782006767610989869406751290777349381818404961095794412604406276345008047895880876601186471766230761314519360363154537625376364416482139439655785116499873725470199095387962209507676752725904605195859733282645725721562011318441978668047512609610095349200251252579911812567004749121164503858215023607789501684615048589144353058026241275735541401351440063462244119423485584384566262106668884823359582640304975092292433780949114871148312900024905258606683752849350929276404817724400274286457825914252097894211516093949096915417543989496529035463205201226587426645698949965148848840399245381030833656282596500619525262709440969820760361704375532195127012937046486767492111765363236639456063482492729116121151916135735919525416186378255920088974313773816406521123739046698253699596025846108311276379663337078775150381613812743619625551328175367841943989784423435503467476039742356768384218657375700757359441345286328497853124605296202001885257448030191100887314035019080020297590058333450826375244666718204532941226897098006212625206911711208906115979035614761855285091245241319742248880727444885240261533724282914072919617600770259554568689031934567104324935084731443121565723971303813337584616603867207166999489827466868657795467066670239668789300423144224972320941985749827299246465281704970559392059498931239718553250662011935904072062726104072070512432238003957953930537221534960375945874068785075987769964503975080088354501761905164286371822317982606405690711205494604215874047762753243618996966078483348935968415895156683983393430999339524543025566859926500042102676412117192931408934822803800305039185216148813946057995595177930527624219116990141509777093267197101963064439418238963406007623648689295845014267506157304411049120904351078532485854933641603690177798324791964312727872431546610053760452373947859470721927320713212128712026484388790118610255936794598116375105835914762219904083394163574021544742662849081589414689199345826552804192417369007310624301085576802877994231108364758460354268497781263699417762888434602301228844243527207382680761839031734793248851084862933884808903081210610546918097935421929797847363805206179914480676616325985832467935366956363078073248895237470453577111856963403591632379179968257150436569932336942277384580468345656043799048454771683640334289989128215330913576646356164580511441736656005637386195924769404250507741449167165936694215985382516085164706464334797630053240548322501543842909575105032030226875784458549738651859086388143304168585888811919222009173633092525404981509508862035684087932169434328230000179496890761637751729397929549807727361290670467380627272606013991433322914498723694218684065563373199094225293150860965273228832260823974070720995560009581896240401611511039139745200628259187072624962869290784295321837331865175039913489842004591329727414462431249116317644695927193062111532722929449369551604281538667584809638028396686816584093791951796813379188205331881416154274838347442128350962896816533861629873648679657301250373850446094324253176336214283583488138194097979621182683625224056245674676903633640136628248956876812490667743362633272117978108736080283092635179445463894174760709139300293965500628472175369961741993216194007828759603050174124726083608128809322970695941409131210802433943738150077624914276340421766971744609138606710554734557071336956144670477238142016022769984950653473936254383480731233413848960121659592775401803014424996444737057649704839213047271043042966262784809904551019592075569093973207999069527236520286317641011133354776753722433805462325278672908820106330868347780311166897742734125981358126061644753633804867062164395195869891010951876136596513137239331083525184758344948535930193692081047724994969471549571544890260503905854095697343226171497495379016821062139324287800288021836205002896907840567122605868616515524653430624124388219338332902798661980557305825910893676023096136236952791483766744781670902769425459094885447333505927794530064744364242254855141280845023354023575542679065431097836818801085606466362718039786734198603472358031625194230958286557594770445876415515164006888995485601276194907941934049635299783439942234556184001242936710369670028069212383913283642849019076920952802270465582158703258716156196542351609221838595409928313358659592885734570212698329176851921595403143939929193763559765752564023244687071260116999745777151760868404097635331246866122663617057364950706505585867770099633103914979102821028460834864523031840850792532464096081933109042418978711386857343100774598059538550957610393852485075975811589999485948196823222718209357863903133095613898744624487461453432557879098479847616567391229759860011092850990290670664494261811763847526532704830902278396742371732847764998686049013494782597816841857131673146910249380218679660537998546596374236364102178239472039063922191677374096185922919015418767519234055026030737670765900001193810683696627187742121227049107133511696171881263099687156400443073304834005245495773698898567315396927743871586003135181012329153318527796785022513910853771643620822292196153723939102756243661658517661982341717936337557976266094896821646755951357607786434335102861410496796536805000521763083085414238064514818392278530432572548569766909671345765550392977472040550806293637006139753768895567480006095614013053624683130273339302596837815491334222849639109307799912212255817551252391184462873141448455541939405686262176653226004650579123627526935695238717355433922915286386164943038826103934387297056261700246811303422107182087046867116535929706865229785554395990054488556868534221635042126011027140839180564594853254392255065724310458535398487215776860354878218073819449285130627256946446269489901988075289142029900615831461288688435928230606034264400542054851209623178853711065880543177905630602800638962849476640401360659061846877759914455185773791069434510674273079498123048159016125956618500625214860904874056349441325228792134004763500846778882712572133297383490566824992466720228544943048050807296477049471335056175740178112368232809219835297882352172351982912781255324808449810870582540341104992528272264645209509298852885101469789486188913261483954266363184096679957021527444546460222917821732414515631447616843828009589475624918549169682588346646240058857132115238096329453326474922202489055659902246705048534662759141618159447236854928545279779750726396686106024225738561256137673932768105231688222359846692935063708630958912417362528641161887872248460997586257938255110744831423650573134775378541703694492143872437704128742437854956000753610634274382805703096270630122732544626378862891145658063821916386088918245736674200144007938614407833569245638553969620939400083003244010327516596626664245220763639730346926102964289877641776869775650521162542351259162414446832487652102765222745480870393843986396573274082999023225267916460634396411748940102963011964574597629355938177405278080141032625497537517540936968430680669929903470151968470728179042838234526260958752647074035863087908202121497248875347680864904287212563526058373232977064896115452557351028711161597671990425071029309586784747954812623336943721810851415211890687543353264013088352163489932182619100509866817677419002069780812493245859986601753383086712406207064461217555824888588687792612276094391390087342781373585554635685908447381193258937438180553687894374848064381996820500758877835012399008945295847282909256067034910545506297920180229193111472117344400639768003987623026610137858220926146199222398254175599813696145059175857012344786461731772913915959409526584132131969350498493766116693609407226913063189696812376339954447861681777842837561267183238042304913658567065953347387897243772577419124456639503942345466094487383683218931620683717079237538480681295434843852478982020712402083600064857494017467569842375260946109751780868256242226843868635792877275250852242670538322316350900808836007635314984754200036599351570122828301634250275486130123606232133528346666071339225637511486797683414341911278242590848801164310475412189320922919678980393836705066237691948565833377651284407395839756762635565857534034424315228181583596115452636781577252312449704990170134882790444595900032281725273060687071280647913065152251502234168303328399184984752682076609257007939893365710581157348406665858401437879617800324567370140171576912644441495170933765688575924134534478855464246052085470493368735524744213018898249374153998832522040762687772051021271108958353151609465475617779218014801250086229031742059541648425163407882054591399224542264143065340448327212732113363695185508076404538969624995297116423578351150647490598653189451212737577876373081081019209488955421171486020159444024515948836409200637929526176999538632671955161904066019400775680480455313803043050871767983900361180536186287559124617332088416992350357301350212124495632669343578144932593895851795075702350456543791440599172458879557694830400149776716855195193705022612194774526597381703846223227270287139980123994011130426728288837683320129512925790487810638925344011534830567721320435103217240851206024486208547637897715843000771869979622879329295853135049065015331327268371168648570499484914747151335634717602041614388238100265467031789260257746334271106809863148951816606462695961658406488154842706256587969762829395569803061231578881369791760327282236221807579124209788557905487331610322424631752768458155365267178454125609091246744926392280257779655232176742980553119476725191882365996201533878795377079556727963311532711462874614966903455800650950020584896315411911331077855387394179332845263417240053411430281669086005357064144938279287764370430946735154784970813540546283977416760946260362132021456740161497160714468497497128969744999076794952422727270912264230355087354152437843719805435989777737014706190428244404026599074155659566956689154924004133962654387984025632187551644700351470365163659592694901300033882082391484916380255783959867121059003680782452476832100284637539685648340870765247464810328288806791910508758801935769243842322306758370921842248345008370380631771968786768549550779562190947726413991129544075600862233053372440027500620887311445799363216431888768221121899804737875411915944584466018318166065837885386339858844445823040975247786705842145638647625757625267237325685433235788930599309484807583774029919654749253930054903842997892085585791378726902312985575674663890027886457973195181500243251436950257573552605181645784714197549381754525521843144329765329103818052481688530992740444192476023067263372959970268649553784210210309450123484406268084912636971143812389440543639704858813739456942420861380160942993479443348200923353247092378673824180396365489990769523241967176942679997203096028636501884426860840847113911362435709572172703679805765335447494938255942982640947416808494962155914171513747596204357723452541217898505944013181110203331211358886095559637862748073967525343594122375188037182622901099608579773761110527286372876048500702513386325682030114006654766004610187294605269819970249549818073274535896339776068197748023481445060363174270127395169496345668662821957699043270016887368522067981486253404351052026259688394330297265745873280452438058982697894820410107251327607146807463303947814613080170169654465965654184463612354694847843626837499851376069364119864185037227943792142105432328246275649478851392713342724731181586981612017092336736498983924130887645794817362236885142069290947894651974866707114252579727652661372286416488492947986613023408647034034601964116134281607673831984552257129271789876200481228379779770675261270646127203735361884791167285519049470881058759849014601870378353897146948106795583873697746129341377969463770777678340461655299434726687889925159266485466419198335769745098969618888674039665766835233641378550633001258592148517677724365994316575482807740109378308486416839154809075058124559423338735349391834998626756998514295570811941413443974049354200006545829371487068105195909710878955985467986878037563555051778778199409834495636423084182934421534523098197490150769553002998901205135097830421849719476352848902262961931135315808206070501321647084790089316955394948828218081291243729815323774733086107468027148945584490376135140678450485051743269153977159290754167363203097879499428257391857366816702763609438623007244129418113146579080642016791660190215573935234979514740142619360256970299533125090129501106825280050304670742587956488979896560011450399312976506076975009668259939787987859771974301388921300698418264139993551523916090963660328838714405607201211179893241439910736081712936037002049694993626205599773335062976210381407856640636138118557120782768426941388586096648180593167728573128946289873606443533012300868408070883202444168258155224674831772267850459955039694174542878661302840110644236348098586355297370527152533572329119858418784150977827213570025306874806288326709111006988476712834793327216561131534931442699388333094419164235694145403307898977929536887164661621848142765857407258164934642385410133990629216987131711097671139337477425982832770286600406617551385247072750638928655394884623327963693491601707655208521098860993648340351991853097723727510469732102425766907938385125398945876021267034152826494774151634459054567116154990392142034777656290990565702160362111577123186046634425932394427575832830231424788144065455363584721258200232877363844671384953739077966399772500349295463675752523215005662442841448567500634739282487115957852840725979549776233060930513751048297622832033842409110611399319765411654926765676752857218865631001913551526179114150689018539606367539767742570043286541292740314318515006948008370236710975448968819792821127812081110542111142019964850326309843318726139552444481472076724506177172432920309712781366418963727716085912746138125933845312300673547494174050021451003392525844565879226548247295535820791108323367250660993005743142087892685557798046989748576316763094388303819090571448305908853672943352583046432431688540363451120950825494523291914350083484918404445695848444044332238957916710439090440754773630221446440459572061607338925625430132913595113933519277755763299770782489781409010408977822176104395949636471581007435658752438385954071521466948409277859398670713916947517723023197541415378654139359350069258687215591702280153679345765348818487640449548506515283810990246316909162995713581157916114885026461834721404240509626398275059283139379821158380448782917534378668309492094850667343334520742856046467494040785467252893984314377907586055705353012729101886292054294221845574824777363452267310768726537914697488438903893375465896474144094925310614864938853228744044538044641943507855212789992757328218890467444771877343549734850241667674753342950921655340072430696891309886066948517844742845073112123412073123808957579879101751041047419603799349145390538563220281158053704403050081129526035601879507482051643517243917396900153897119263081642932692194268714572478464630685166453097514577781616021719818815365793880144087834086537007361923990872026856800360133017272658194781706296535650284564642498174573248174408544708522777206160511834008173345781776552640016157525817150918359112515436281865373389864637328909199028066693818415157140963432685641098025697428859682948226644194012128767037725037121270864834250069900300269315048971366306530431006183896305264762650327435875526111378914000047031082419192334767656347405733954393600706390321192135868057580240548185638555796950361989892349042277955630141031292771870115039202813584673629975096806240730915963563427223183183606945786801291244040375793450898878121928618055712386472509317173691819385880745550042471303460408112248783087742117878188495293280387655299056674731907847661402426199673472398053404982693373493049769586807289163458304402367467526888071680644267838076300889544932743674528266647090588844891461171308840924332246987768391308368253947912443998043804848527603384824941096178654136139324204693874138393382429209763273253948248659897667424130706730578520173005763402306781746895350210654685531680944692866019196672830253647529888236696420791422206760922748852510264625063423780485085363611394724993828044487184027472562359211517792186079357778827537048016753343140930760338505358517405482643390210984626278675186202527948819554982303784742371734997353551718880628084614465763214599597557527221087320241855543748475694779882184755386211445425536734570505902821221028265752833097209471087967052687411377594456143091765700611982517807909522948091002391555240227698385466828174882806206372179532677632876442225642417783565118841795850568772665481366451216795683294164917315146755741238130776786042321108414521556238067357960842115196566786791621720919578838837999066699253850815749072460614201893927914493756451653189876408452268173616697263324020841965117150669184412675050116411805630687056171782872690449262358555404692855186936992859151376221878839894948606891468789776479214247329708888528345942504613071034579268341948388715545391806632363667016973512767066405776453016223860864797300381695058125800652201891100244414198074693159379385519196223614086968471310422981922053978763708841827657546025484951936751735845174414786666326547507701873645509384778934118866399036431268356435942830730288638675445361593430932753207099658697983188947730518452976079326885525866177976481740349420634320529458807301217484821138327384764704674821738970421629730976234723215055128041095554243303039051107748004253142053640730525906993084719837828938608013811827110634990026415597284664388601925045819797773704877109149145678429593070356393719838252696429974048032965572210607757662518250544269949726042832418708022191551677373359233069182875618175009910326992931593185684859201463522655555709756410110144886116994742552503083607614308914992876784759634464466998385561659543841395391378136444340450845983878980731410307922896568285936138566976604833090723008198637437560858758581306856576490449799256157748408693957916413320380497372640445426288498757304951766069437638728819231304835094356493123717039479727342610087723576548388817883784658059274900995367527732199058208321781384393114623305761808852734204882079274915185371168276418605719506851015476061504124109055013893485509209917176824577382208200108712939183619311377996222989400771641218403016545681672759850932493380494140927865633541673336601873325699970614444031655231193735473154939000259004912493554328672368577461606505360190391469620195123235379077702211723044093817538574994948680260639707100054832415366543292777303836566887514318037421352049150135378026285201923596543666494029987887901984164558186646888414916209258111393169901213024209688135166403964503908796132241522460083263676105685750142592555452033607014339607425797396638776749281777831511929523860209073982014847185366790025898657893369424137822161715233217367382484875173371465589403804128295872653884034063247345207994091710776196504971581094885363805869402004516497182887771835603646829965083907138953551132190236752715924081772237686347834754543338313235641064624069110132042669576596272720100138142288560754613984484399900726196916712509019337579478061360597799702178867446857843562787969497046499042143452816305942018543538723587714147972216441212646143286643326039286644862266972407743027775032507836111934762281333692843600946236430983537013889658917137831752783430002773459173345958357851364398477615257722130213791295046472154744095797912269802782973843973841836345477674880267047326609578644033536879891338503305363851423805269298676313241834989987627495916301361546212285067702461046483715474882030484380216465059546888077228779360967148194091294030685058980071013091144632357963958474467012928724298941174687090504679752506410497979129603671464439129043814660351173843559954651988262447785826266057976794825677839537958666948089539566833935163958481572491620927761471185879308317631781378107611306008891465754282945153713413617284067420638055366755439048720277021514787870440315444848041493606064872895063254537444127823266314561191856059905766734966821136183322899845942952646278881901109949847490618349882555211120660183726032878384403771035783211759432809922092793435132969416849381721906668150614113430806511550579364227859649218320493988395931175841106588833976098958259086840925202345126105253857897961850947292285438836212135025851073956056014741546742827817869885357488635673457527156168805133280968459194039876839734923702019840357491053616069260361275904034723618303478591980530899701193793854494937444001532985907197939925336051937466373371109886133395698367839394702990011944691843906030405037300344678131887182731667989023909076116089984989760013176405108214386771180308970189856862731738440844062909243955685564074146285277289647586147603243913941774900189660146698359343059286034270828456378434179065654822104292196851532482142978824680325309666146538854647624856825854730278564537317686036117467326623909600015306688722983753813803421243534085341207700127780695986816139135348671260451014197755369658082588588985436960136942227458155150339058004467088081499429109021957935431338228707217079541449076030091170612933454089723786765290427180474335869280645340019225737447596736570434267422006613877681457735864745303939405885128999348925403753472144664205862278226089810720557926219994527084770072782342910200240881538185706135660305048280752845325425829708221768757875647815253454176366371460662045550470146342131149897065495230275359545882289544738977190990947766617973091027807780959426600495519860276055153834701803024196133297025149052613823442832530646052455124783535277178891010942275661707623051693764345454854494992903918576474255056892575058987922419433899036018270310744882048216149625067129782213958040614113896797374298842399965034946820495153033590611955612901399736605897640728680047082018085361198563818243311403670331439797294878050969954323310159860939806437844377009724290896609675799620671277128305417846290487016621167426364682815408448532081691067494310776631296953213028200396450711674578921893259909342578934178630632985343067412448703173462289941959766264149796384572340881127582400421231873612490983148121926185677408777191983020046787478373876827875135878207591404654457773622595625978762015475995614149857075857739654695769601162641936922270633789799510740822201818509676502458424559164045115851167930394943705827614183634895756655093474290457079173448366182113811240879395652499635666388716345714666284539390432010275829793317426769660265869099608247691238110037417091218646970701448231561964946588492555454346171710233358963130524680908058489944376489718907935258452049410931753601127412657705587884491800025735863415908944423718256609592992510634862622277775774882526512913338260424676036540555319772845807439118312646084899693381084874954413115563842483628764475559065942234634690458613214038314451757698318992570753824848256838697304115269874406766277810537278578660767353461463537785342965973729283860162827031263401968215453098551283337054586321096343104546784810994454337451036477583825871728618681414393145988662333851558736392095404022777072932019636162985992211995863703796569409317134475368415603009926625525901328576959119369682106447128351767934690936212781046532284145516917463237805265915352890351312435265767838564989136009180417288209612618984785340010750286425554558287565647745088306550742623835918728010543623873759170631947150832344469511668057582393752057587844634361699579376168419745626698837013813167704529961390024159029753853234337226630045914141844401265153465137517099728316567288519685203891132177421859460708251266452238642482402848983532722234864666214105132803347072280712166332057060167503999492156451064549259398306060989922056705754264606122991267093055057300260586608334062659129770648903779742238096392852939546866856748337389743180189049983523273304871590033283084653413685157524527431649757791188588957231419802269540301488330169121084035392576428757848657954493868646812751914990012427537098325336559373277491335209281686816295306103277170149277226956375845589279049716647343779473300564378161597173451593664226329000981272068966093219731163356312105051991463038403187864482162197585056482429632770867326908195883469930697246906919748908493285783297879935880980773463870846365377353074589834150591100452943764470532493882503281003711185482674570361754080073280937500159672610971605833560205561339903850987234508585483015569784057268799762966905046820601920295659153983121617976884272460806026248289947932340576937722279959018195335228228192436553912521632689131521581235425839102781584954716559050498598012965164105716333749840009260458520684441699158224074650260406791453132393403339556669304961605687595716763202677867663454537468435961339013731930559680481338537992318394056044369169591404973995284970762311217672098524892280848764963430323964132069055632448707136730015401462186436433997783986252479217532446129207364258820539143848483961144334263719666649183572716012236335894281216020175601200718178031956626071343354310174705825756961415289474082819655283652071735505065921696246494636575729307397757179832620315507458947091374514379102446126136344608811370007516475535062942789138908046893680927590189106911041407810403538192146371749746696367092622212870376540340980386534620285019402884905134093977006435306114628850106479477494532304986049439369133169094667558180776774597045207847342543316826194389556181237269164999403283397206434532814216726142988206742443049402746330488507299058961778633303247150171302640611399571876215945727881949844681147365003557141152758277820021567744851166434340485612923837757920272977698588651474446677401292156210362940273856048126035145774504581309451722369515254296219208771042198494887531756850973225294989973783864678998353861516635821511796808269062531187153166264228818617771119437781548211752215827474218960696367796284502122523264745824572565395134053336144813323875467606501882300992443715997858346942237735891800771978313378447684491299339136172714408229624065203056877695985586541071468631862460520744780722855881759581945460959115595001447307682297893263242431249351328523961522749479065421820859783988610778461341401115719665286811452001540385441131973603172757215360937155120554492386756905223737068079526777271764760563911107594868398421770742047890776897513712929830744055951362277194267343367987436762932872838025106944536026642430073472733251266961801290865005122661027007332301255446380310796034607856299967946702649728110289351309077930204131348179260846340165979648450954763247103677079567668110660934343123288982093345025853919281776175009410127029627154801282987360922652859346747052153462307035367382175222403749505536355338805448377063125846456971642469198730055362882222566559694663041137211393088418125328266719519959207985984382633927383679366945401965601480345194481218096581810672711086202969120415822486303040233681353273988799998089868277289365464041491265204038898493322806888594864199114135089262644482649114592139695766452867570670187133007838282530861162032029550362132529326707790922187550761747550720645041686621503045763366706892859532380309137136824000119673289934838508056861694125469492604153483641107304883536666711345362118864296309870713665612140879337283261086342862253490756219435663849901104513800001243049261752190756663177603338345435375025556619454113929847469971066947853275590063266155300497526519571770159270347459794386673294626806914449723820952441612608427705588610273016816720801524246798782090521648820090929902917212182856742697625212737982622228491630164709677768007562099855656712893719334809609066127511154305453998797411631671680601114938704774131878394719367223819491712129531876984783220432113603288272620468464429027077088494449332645334198503528478589843523852796252647052157005887724895328437627030564970393136432807991571414603214831914499783342008912873308149832018348904560721894156334969959559750850756513211389827714279274579416150004188152901276425593796018934456998022365066914014992327474883310420723315562675534095684322117604825319506089369203380312698243495729463292139151543431461609141406829633676307030845187506924820540677932529267573585775968607932578794383809274529937902613252337449744598076183460987432736819310708807083625487716970863674248779249977692896274281871699424625073861509073700868378649220179025502835141737932801927991683828300004985466891102437238274776833879996049495017795620127550417254424282198393886267880531172996890193971358390892482278219984220827759451239178144808750823987006505105946829024385132918140460823846484476231008614831523544369883782880911964415003672703219364936044410370374114996336683399217699423752438977591173638019637993139569537356852165553282232232642938266690271049928874202533265266851560777877455585727298719042956019476096429860718740091667456828142969467349349457833146747681517151543701354767713344145227785268272137731593148622683649457046518532527924335311356318039307006266381821176528521714107443418000224516499640750169129411980278236800407378501361396243830068051856142822453500996188809834773284442672611669082769149361031884259855496460840871578053588926872485464308838440109314779702318344891576020478817848999665930333620516944270783394000682118583700619633286419753202225987151835000466897186902304753885163248753677645311302765030332934013496087733753367448745539584026776680540205496133452483820105511849749888982526843398282248127886720003482248807477190975220594052593081181490289891275818370922603695287994120681126230228092909335852163595770331554915173524218489024806967670230783939521546544687168200802263404868337458958494809045549640459206947765434083918126973090948747580420160706177415942445980987891142590185813611262257925096726304657697178785927080855026576625295408407780089003974490766233649195796297700115618539150281670230984885466579756114557531434838473371264324569196385415593192883210882435558444699445206833842951891905892436860585530119340674794681924623572604595606513971937721673438386134046430062585257493414989797921418042415110795719602939633972969618057991781639313705144956430557029524474434277267579336014791060579564073194504444334126284152240986270006477027266374720117793628951298171216081705734465820006582374711447844684994398091924250854357191805088481966321753502199023168810334507864832417725945346752059212901107300718522031152461668305338559015634532639352671531688565535204090406726933083570592535469332399166114415979795933975314927944765676651638777059635508264997680545327419376592755558918846904942887783268740249747342622897672347035782564430411889709340391871901467359286499768300954544343582200183037117966852730375613729177488310893870997002329979097763138225376644959542341875241634845187063902524149418313707718267736412060731977704436946864577906127022658278833131232294141728015222121945932469143780042656655859872168412081282646753010816743531805577168841312608787679490801541734410614721419403458717124379437537751414258951655313142246201431764280810607081950689941947143095664177325320118880826724402407044152874639099612995112773043459457613783660888594609239351549761981249028195332351204365231840473357135975128243242933899580727562612485177861365029894127925972901553150226032293014678140069688602117070811771033794194871720481192768778916288001135008166698813587631369897253045039208015504962731867236759486942278657744233284830829315611851886275301651853503841403983104223621282254588528990633352892696193846615524872412015841919981503014554275425610342902146307499145258994879859543485590923592052874317734110627136936108669478260705729252439868199331850589806896160967679458315076338518407895634921575740303928806683248125206747481847463343653428313963456927737268578007805078199007704303564056439482281234729274217859101139198586555344128599374618406195596829025283236577331827628471517682871692480807032709400054421139397248294870995445594474554113819140074102866215419986063812656562696482693848727130723981561283159779542340070988829381061154829607248938568313782447116940123325504600560724603272866351144162251805094872770463515530943890835105782971493821595203600448215175995201123490782672538398348424051362607569443668624209627233408227787657812143820489982566663978840718226962157461143298725725738570687769167744156600915587591485130267542666837207775174859261593459882842595926020912118880378826856575451659251389550800707840710480848480531208881191427224198467015852087874648727946684378186672502645422488016994244200301685965549089968253135315424258957571161765200236030795312111260255758651411543371728169098179361584831706856888038925355668892620223847393272199556833152352572624367477909105588045148561340371509805155750823165768078619785337893527838639674817714360940285232943146688026139006800552885650411859959451841560225528358592909332117312110800501244369951376887109281992735612742877217962361176144286175062448436277562403500784136287758648304743110874461497379680290604678707332112677073594391275505996947581898872603037111421714018502666679257990502988864768199994908642334008441554469300324072252570205859711002834374440210535565428052128545971813852535887307896736711732084556992625822430275764444084069995742045791393026253495875323117069448906175635438225922625951532671359281386679355913594221109727317860288215131336989122185422165486332136109462724345616238329185942270856903584255445412342967088192962632376710314963195936408134951299167288563101623399190144598790322020519712623251851872400353117717501384067099929280029686432058981181461676056400269495154379283287540142782887502300853546935833737075013828008743319386773241605729921243618046018632898445867411980464897392151286762569801340281556870888464499399376138024608416339920457796361506609436482129404509081908511349559056212383004884475721853909251247451127095384705619289891098133960841802094711116415631393610850230733224309792292304426643011581856676303936498055100519842048527620545770989112317153113144782864647729756563287859973181506940662411945075037009524288720167890893995047104468882533611090375218116833019285474044405829038750977868831772501423187266005533770595931917361299461820296406550785904736389893211599564374205309824718612859467118080803174925864907374394658490780632954207583428798886906689222109876374263083867213822493862963118124040641385374930616757130187092892466545462596427284142193698500438665272984846111510331254924092305991668979954569748470832324512482365090779070973152131649645263174787451978305836148557922975945497148698164160086709753179443119361145979661799481478274269429916561592166596213367749995652727164561680196805565894027755698043140962542972719494989737509123398347715465530488908381126993817695620509967449955852447510324526625093991063887645148806740342428357627249294811958596053397472258063391715369424259758767310038907097305757454630396722520817805602406045328817009911802672203326490111078401756179702645597188761569002940677457194497732729979093722140589376047894875997665359957772137766576387133357410235964107636591708572482796596110610152562720607512741999302360629617316887104001329700099605791069016351237834458246944011360921355253666845533928349213455897064585542735853835135095796074214811259080831420521926531224500156554464779844551386115568422896706006573438638406021815345702928695322577380605560971489156540415630272626295567743498669869107341671002842592801878472576136796428475878376631201610506463877475698251410088017473863795477553243677718761490123504626823808263218179654969959536422437463891707062625325053922817054831075627581741815409515440458300722609029023576879518286660320297903466463273480799569178810454375913255404102097700167364924840157423705416630591849099746137386873767645923164065249566211392378283098438915594460415944678335504319777101675357349839160047248220088560071452470082560204991871098664395279085079337276364854464856331284795094989329841032075781894951636412761113710069125622770286634204442475697051916950051930784520527512135557312020004334396745946160000319033524202168422066255377898402372831351580653369551649034854420937551574188878345202070161042806401246418863579428012857138728675443718808544562029665116610345349922839913442114329243302594522486597728664792346349032959314721601165022628693231614638057487853392886797192513598007948894477772480680916772036008989712041344493975250705273783778283245304428481658027893589275214055001778821437955323110710990204092040767025804887741922867915256795670414865072338898399179390224121161881994182657814304171677452813862176562664638877845203158458088552494732829128372532795846938905166159654278685728043493294307564265883012858003916498201034571366553173339244644389522403476736615483687581339118124997127743008729649830510083737058637109454701858819454717306728467847858281514299356952244326165661946107856905761307587734317954888297001132500571098358312030191115865709605241328126091222510309532254600675022077843969686393912245645908749675324654078749529441384496603520086389029522632767906373832597082308668130445365140080421280406989701286051480212713601932645045112526779808297469701722223057797771406937155780687175161198659354549965540000640825804984162863856461545305061290015911521140437480325035374236991674834122311987145573679445388495770242863508502644195537949303680174013356417095922207910590488616306019242257243510957974237018635444781426787562748221227192177191541910174953077318221803509500658713200518791352875707154891969986416745532884239935404359738990133793259874913819258721041285976328942912014935550658429236724204586245241243946005157494110103557414764535214763724481251989590618632899984895991669586921561610481601177159073016427303265443371155395639551989905471017404361240572895510822498327928035170445568572608757961843472050423397307422846847818326273321985745726435340069898668837031168053023724557839213063097496038273785982823490965754901915639545474150188767526528203651367953879361761528363109657187864043629559169947779996949446929858916160771779928208309046599279852159587216153991710652735431005247952924470002369548527744113163866283337099454700056859076982072851771553750718265807165055402831748310449759824889151783758945428088930315085425781703816782239277267394477054314425502290633929600022664632510884752883429530702228001448966183515168975062958461063793775712589834031358037701635889533609582615602010634491063726678587776186691544015411155202973193434523630736488482245617121488921901063412927914813916563517005684929231237450267007460410684041519010909627448015138568242212388563765340042538013604495445950450275164984120111896583938089556995833118689774673919060917403723185698316841054500950735886717603703753404466495632943125443023770141362265605264550790595040730908644920183768009417573902200437578032670653035858431829714657600205026196647092842872028377325392615519721393913358979088803456035890935914269970415868320180705522583968720569473580621571426892590038343617259035066472257790427128763382356044480545610569161865940931932460261189762269445961926518527401692430217817260248597545991350780808021224247812293403665940269857011634758896217567039970158267103828582407189311088162381139430144893867081555380823602311043519215133683129762474963431294664653534225150840279715623916924392107845617940827942307224637424867230132548521712683845401345422932322532433930688713137025917098679563130854687614317979039098801425855649802265309584320440369679270399746262697950182110644931278448293741840564709173229905011025555643325652553145107977792023218243159504070946731096188166460623931663398216802679881695750680014013753992032379324487046666967303887336848214728938132912785936692846991229645491220267279722874748431760360648765078998379021733856363927628909309549810682895298708792177262379358645527786114908683524370949463291145320902092040115550759058444444778792007231954728783220238112715695576918778245002317688723573853676984709905988938314833938149485748721543163385290020534055392345362269677199304487397786168348113748265446256853571429796721847701938511051413653982783963602230962107122663635648623620716857759643965499517153331051174977245484517105573495277151777745089584171249075203864343190471934497388110984707411819459710829342057547431813634430888222878382951732217163705496962758297064997450542082846928944912407341888977310415527366747780912216475722551096140574800211024190870503994002082626764395045161284349057042539021353580949101092497229795911698754368427423949672413279163909501691156159399506593647243054107948828268976048141994570856654975789695149718501583274333115237247654921010065288932157890051405468922077556191145712210768774450521152575195083299950032945058458872784844966647211730229958637159368692723303127439310088198948981260948532432020984730308454453297805206895801376366711232243866308564661491901714973618158675051698101409161519505712848728366510565568861206081721205389431026415240512985447301802000753462360035810739761943858445305898003941609463585555830791345316331867665260744963305808874971902224509206270285541772099965674982699473597564498401353560926951712699375631921843084484007094675894910844483539514842826697274346214923161281732339547639080908632851260088054195259705905657485332367076822444390229585742609281925361201721767926761914037316348031820533517923923840903512495872702470093859523619222001265232832599537674589536080547242832539503184185725015630763595921829709301597434905457884768119642353667594686638363358583730967680763508855378762862654464655159425637056003564495129231451261571876292742203432136257932167721230621923734546102009072321103497145300853010367187297332563689836532523888894931090180199050357346290238165358583279088427317992000884900226022652288135217962254417236247636500430590453492510585344696336928740884438993192215055874047764428667046224517370434782434025435359783009602898719990189437104042467150284123142708452703667199086290821649701322584748294503952168840293467110139013458749729459539296820368256626719705466631282924216110706354794296498607566252886810768575163383632696725783606030091762545193075759326998506216814973081290307582955112600957053249023455718896134088520912300637757136505915780916268559721959161293769871455234114800726418603737742113338491480028046858380679837215055874551936809433589638961988317812111656327776260197824158368281427163286958083031114683525605104760220626451629962666041024245041265903386330193224446435709701548457344784196292267496402584975934155391266520272022257113489872076628831696011927698120916951338553367597906993533056256006178933928932377171351386587005226961459006671995526040915175490075715303741796721254407658679145746784704077715587575475211856563513752489452076604695787347346861295351633352308281723986668735740000744301741181937670399350675947320752424161295446249317809301791956976388655506481656382872369701471879473961036454609623859109181764734801613620431972681110842212281227822625883738936356552505284537264649684608271733770664931799966702440548116146318056741513361840976322884230089999121618916768294103424969404031876971486951086839793779072018004036197204890434209500271413420577317444060186100368525977256462677696861444705570259128843518800770137880816918413641695590374238575965958756165414205987822413583840048115355274034838047586857777131344829581859895439961211418936619879211915100872421492484497875111841141791263603174050648752262194935553150923635579802466524597494008419341795209297992593696911970290452353476991056564225186813369266746496872298838626608716278219427392957840948161586218237161798570169860949362830036267053670019381575633402938553474791889831515063402121873978653090403901778358633550886436202430705761316858898079502859149674377688500918846854922926018999003497629113593700236850841641577009192874251606437101066480848120491777292304978231249935665620187384441251003861998637289596131765932114007305575909783267362747106127051206274784296661031493701637302966621162308558618315137218047106381449955258633053854439421383636714767713428947873809448627693058399384617110819808210605967806957535709734926218326140224873115144592053085707999782662025377935600426170522103465720995642854422660563552263882211792512735681023259807800722710610313850164664126217596481237003593333133123006730240498931228288377835660830367876570939789076286902970124089103502114483717359669054546373751371198347092367161107222928117936770930527279682922266750612180160241159941528977270268728168880498649017937441775983544878260930151291548327611526019745070256805177906972072425987099953607612109491468790387634765116108623114143407182432874588682915691403646473429597181282496569424365961727354491820289594749669829747161579478773366481326435039682047842916798251761873444944737354264320045099039382259558702164963512542884614172784198089027760929277703672628547474572104594363797533749475612672347475957347751684404917306230160690984405775052296032137906779786776176424134978220211907226860438532719456965647432575300077144386050312127902666807008725379684806738176072072368220696516883607535240872757396453621190016726608892742197875151954442403432445953477478196605795921600959068233032339580025675579862532924564679043414681000730504109065646471469364183393951297057734163197118215193974321139836205414602979989797124875127404155744661384921341543570435123052875315820495157933904430090476106829887760186158396559745932733207797281725304555300643797410076420957377632159609818260449062509732134801583802922321409319472477549886702614146751268940195189760375711063546529229391638122081431271798054973590492920357101726130620317404613396859220220138537377148886169394280519151266325058664572664180635708984219560602338223156423041140112519427063885073760233389152016895535850425266740962896298921120875496022863673947457586359768916848293994303997305097823986818389335437891486503650020375083336071228226362806785385740542023114203927698787290146722374180782445708380191015375814623584921546140015772005696370318449687702993043854505972403477810535743322966069868036592971725809976613424584874445347995687387393103359395883910875379667480113767809700409368066021996911641561143252049689643435337476446767932807120588625504836106943055666806579255126528131024523951405399622729766148546297007715522421152711619273936633840236958144144148889786974558701249419401148295571507500760218351232248647891338519689997388300394183139242926268985549011795496814324372002471853060201388551972027656612731136875631093773350167352956318505956684206944370261125496197586813779220254337411878039156874671291549349754095837655081066558144920958224618631767505643847676954863332703922399334666930104826815492882648983523963869272069450477448206496973160702036403852356675200352032245686578631744620554655846703696706074855050636399999576666220561792832919223432490790038578736418919613776023277565090218061089682730786258574657520823522088632530749521992923173559950543924210608274469743622220684759154548368427813094527024815384015793370558670501750233954450914002590170680598610617567469775402788043272723140279479259749892662355149007249858493152878782549123012158165697422236080786862567507385167710622273653780051274144490554857017947328561008946890444437305689163023426967994861602057614967764127507521007818661899611013144669609322037089121889664494254578737086305366423484607373020281841281076049246991782332684627546084476502345972542649860026982205201009988807937173044034467335652034194738699132325847393773510656692431353062302511340892261285330892405085787961931131336127914687628167398806388736860549909979613354813244865239056949749423896399291071531185056830482180270869164697400634259653307250639657067080143739906418766024231805598412766953042199002594849161707907707212040609293591503818791161061566298486078787567871766132461567418575748555295492473354738611774289232378591286337945819530102728480766083551427449590196726503702361939582287895141873279614386793387841942796325915458923105315504251276641875437961074669829133281430034039821972066087912482380735885671660460645310641804617908175847719985956934731109396943841939542081340355585092749089539696742020307674798950172096399920682800025998342268962952936671826424464716009908177640567791048379891185110758627593662313109799512264472976326511450369871060959613686651437997051349923686639403881071981761044911916042349604197013372298026745334275881931095877844335321858621034223809147725864082629554283380903262298463161208682538303224642187990822717129106909999347434476970738291052801596728966543654283740352248999455774946433184518820824532310651032014049486465371521614762248614370650806753727222652991243996289532005010603635376594384938199737603519955267150786166291715454895515192715685046262434264577829650058359748404475089878422443297653071270531872728570696714192956798449591999996861723048899303192729870163660430732403193331716892880976389051569449273472411812658077003377563470154769747942996651094031206598721137518450373786068286171013919939095312777468375086748274380223069575220819533633119404690216367398609022993240146444887248508795469553017516337859671590998689119347050142407954428134524136549533007841017673296439648891869143846204739624819427066312669042077983184802484708377479237649233164272999145007390301366758956638250030286007977026186345225328402897614586859347551967856233448639382950596061516430739503465032978017017691718881428966026899707213587333825189511254329772320180324850651518658639454508895432079946662586909509845291589302196444264033172250988266524893679392241080138502064022521788046335262233092348803372430276480541516035469962597367474874445711435538120035857622829544200922585679343312259148772230613345228979598357291529239844696119998562327664141086540652576373662125607961506530926310998325357003909701043496317676853368645643360885605450958956132516310375886600235131325250260509505602542729614447934033259775763136792191084376094824815257407451404943418849667333481030089277519620009857297383151837640063137708917185111739466290758723529765389609661193341552374597666278990892059831591749478415437957726769678979774286597915932209783225108245947744999266816359929373006118941800609226348006418584096697737097999854249256601344905438874840597125913738595897771057529742950892020707900922561469776130275075697287985546290657056547342509887593774581062585739488370045675751438723242683947353807023499079070176953094686157752664933299783901685871418998263492197324717573857742550862168109820138367888168567371978486501821170154838427294159088129654242313899924405578200885105041893124596836472554844812056554790001775345094347961570975489370239683756142361856378186878844391103433960392522616320756970905394391427682122332125083110354869642232020487964574828013769635910967730473162667482085308384008361268836488742393479568716846162051750363862589647385886385925886542010320395873186148528610802005267133944118315450043527417938632300030987203643148221030770756788460565603549702156438874098085441379896862981114965560438330016215767946731400743795332608368589074826787696458159351654847724527874248343401203570853232264981012054016500499853871443229803348609772319185945978385901124760059903476538219254446730965248702860563608894771643915540028780633757801308594570407329351768427567716682807064776341856826384272442381793138456763741178259748816373875164149598734046206216978646751500826909588829886220809722849188183509160442311289014535653921090801775334579306334965958163661452353069623554885071548310941885292017270058599664014017328845555685169392645102728614091675473162310788179701020519660595249651685657196253920369455146772116905523665951733442118915643764458070507954635049908504727323549345889979602510703407460559569599966106595535998554629895213145227917399558790833646026957805882744659834401802148917707475565338963126021215575264759183692353695217298071314932396768078879176940657120706817595005283412866862646249042407932000142807641217058964758523282142137073722096702091472626555419684803607965951226661587749976841231141395103438054734902430237572464606104111867452635838602247200996200641965613566168322025529807045768307041363515750847666154685664722230884740947392777910836065420217374155493071000793850634509931996104224070946639950022885756938248260573810922062758795287658538074696866354675833853889912913052252567993962738580047101326533328633285608424059615995608548631246236100212311936210252083685573317108553822483489669729380334644902354383302592610092380654005631496813389758480276638950737608996380289703578238177164780079628078516682819618699156774902275015738629576954140336282198178832363463540134000082862219832351847804296798684890007841572951460666160905779395502531088929106364314266713577367795042206038442503203698255845045681712726324843864721328720752506409745913444446782490554519198134987903786982605772599746645882471318601269010732553926429743641381223805787696023955633836233796124058403145984848285831337656567206823263448509691964159691158913599493874042260627336355123029303480231102148611235744646685603421043226155638928575266267219632368986527902658456987665408186830800875642071360230147009970967218854505578851585505679840847942589316049129756978732357893318293179588030126661076508769682792434576830739654210558499033782980075463566290144220811760086464280160175271282028031839697282087744781619348933119442611515430904978524330175256148742447751476934795998690562022704746980329468011720977073156408068912364439731429320101234373342396495689183867297963973394773252788211209985083713656954072668560075430383698425842249521502597682274912287049011509806733497933810347018057396371511333840487790546423085786960475794416913056281785118564008169678330512243762983679180496410848093853779745031398064866940214131290729866839323582301876344186019954824184102962034248839895216896961720847339514968915027175121075868338048763500744393515877733086257093877071569308022607816644930893917144011267451081808416326301082568743117583830630266585719630273530350444550794598722363649098610214601258700795201818818584936306504251985465514658165497057819322041174275175382724678782159382303097180214810852072072747158116280020609885119257281255499634315497489239110418414952170015932466168318817108098782778858884877939642367791408844234809398767852503009876426352063067503332574520328388782936931213651272784639504894061870335632864728556613722341678719805048143253608260553052899853067575769167475003139946016889483268659987247100093227777432177639795915602920480093857009598035715594199311562434798506347877923210903046640636701253019990951186004833231562319845157236517208023628840236697649644759874344305746533272894824325219602274380302549222671473956149839174033302393076192623149632420830486747771359255183739542921645546347710770985428925421769180024245620463653199360679880511492460231556148181312002792068572665883613951862045297656207250148342924666589698794009299251460882535677064219999686203730275153339823337693660387532586599939532241645614090560340903068163082513093112561068886417088883766110522466299495644501677130254395317494871741487360659441350090353799008551842722009929050489000075419360403734980441867272915378610222738906961395880028625699470226655149458201922138810050935372685345313539219751990041433669053369876428201825770146838241130843863425984334803257574461957991385872428860964920868388148027989128897223886557556615617187421827085813885567666361584894005300743330229713228071219981330652865761326711365058551992648495214975453482578599956794610376899129558869666390562960709122781776845294366333669896332977894971341420593281350939298817052194685089512647462913697011753637381400193862806783845232715614859416503216320799691438639516531948441493750923031506398519145116629609930688361247141380213616925398385330692729268661083439709825955173062141145447638792246121246065507164992152658618714990369498099620664085287331513518440662889485614401261661258126633053262951146541802412564440224051992007014531688937330630654351447603006305680196674476465933414936948148018514955368239296356482428979830208294836293368832946330998670158929657589934067200566162342283370594919302995792266441731560225107035041951777957746438870510601350777262399335794315643224359602857123321828611077479124032821798791956469818798391240712748168861205431230237001722126433294060675207248150525737402758392186276027801508171923706422986150468986137937520488170632948947022699810137719160107600766584021162867382413898921633551656447732758670882771365329565031966776967809738444015775380450528418398230179760480233019208010522146529797958459088939581053433313919616929793627653469510383917823406133068144956715603525145348504532546229998435872204714625665072745276564622512721210293481080641752379779798569111859479450494856462982844952657418957299979081096080751350486918930592286154947792789781903390676564481578160944816238772679729238287808607231636366075298858077604427911950712273126977373959791144865649153451745540687057322270008779190970931119821120822232888731477971245574902669420402754798524519066795960151491164419255856744001978247995949894538076849346249996702188654255006876874949787969488687506314506837682206126237143110177606823715197952661767357062488636721479398008857141570888799939700012426116668768670849879563353390197562502579388662712269526878889874438578734689209501298201517324154692290281216866818136206227334226227550504296519459217919806566958634675812203754191375686212198780112703689638652764021719081955266603772556180677233811692727304275209863019575086800202911913092098342178206744201476929179096503774850696277548151083530202270380055779789334169206177584605530121668411774890957018988863304441408932538069583073577526497250789579391638337026826709916583914356714401581043046801635399135751130698522259182865698076371080123725408259159067313605261129649233408426547107753983983095751789215873902872856697860413488930181754965580215911797538435106157957889690856708697877111572685589526246072057809479027719246023151111554746942880786594140008068530106714963993259293892722196908908657113535932085888652039332717820015690112963119729045608868305925429237263022422261865723243387205065660266196793319334384066035129414026056815504106591867283909185414255154881744247390426322552826714059011965435087423042535989806714913112268767230348604332965218567574756074412269684897504472264610009673269697320853413075310086048329296047510674453949157278594484980382504283819020551131513037705616133378920061369185217052121574061696976483537999817247603759702678099848998058393302464013477388529647551458690711358439168406952525616619649706347972843092359955386874469577067237377224061668902958112430780767188138658513872303255471145635519897811368386747398319473706518412654416881028886270534006224824713972938108031137583235890186559192637439127297002923712832692842535600893140464808245551950724613892101108655130723612196256020633553512970350385701497505373174977266137074779346866614300323119054324324328186965976726636485763842047934107346490745959675888687052092091919573331039159967257748622045538987700524286312597611893387500153228010538334229528798683600772250235047446314199628815165031801857273653562160331133748440919665362922886504630636957897028551437518241130084915407730030087814117967264092740344827539775628959365019320736743259013038826198175366942712338912782767182104966057262233757732446838532602053166938218321896617701687949500173525530709379614205241512617361985485520024699758169596468311228152003386317470206847744903118726861426924251509168833644597733251894595003488106110788049736466029259098434407905095644588837623611386959731219197884697770217018857653545996629465573435131126451786626237306807106459006410222783013785173856852777075987103841673002941309138445964434941019865364140354804955019165575338325241451292222625298245405196195341651261908428042064183587432827488959929569181248846405323588655740756380318859155023700572271874880641498196957725235419185279764969619356417097662727679554506731121058033681899517231757982050601696160669307693345757706184324641441407478940293441060389922412470191669469871935371973847084442032384746578436107278397007658627383286980328438522193333300297758074204696174855043339490851705430839161009980264586161294582585302344610669861142512171058798436954672950261935816115795462350544212236935794325655343433877062192330714514514304734237325718892846149261198944360818610820448755382769584232547609231862143518285352774852932608021593566027198262239245671681374560424249933844732671609290378790329066799546991283070630782640469247866778345995769455988699872610224348143390255262679834794193377006764900062668295289826245747860578756641889387487341546424241297782813405452612678199355239979582555620328297364499777034673178327599511011633470752033103273572619953630158129926944783233731390055001783613902575745135844383599614311632747762743436376181090776022294559175086080040037170365895618040535500561101876795276591342089521352884753263710383826167097082002603583927832227818595370051606669615853112696848894766651253746822272586372035520634402529888858458925138333185446629682804206212760665573092369772603325779620890166547264581899072112596243610582070078660220602643315134266142665527197427353825394257946791620307541561400153867716361716760830879100949512088587166225779328152467878166504202390949743775954751483920517440377693224632785272423549649826864287285894941584027219493528529315316074705778775781631093998370867647715249844839974889435930371080384213896959365661036361946722019326106005971487355272722483172821879539439815888880186610643653303782854522498057665237893359631683185833007788670615735003137280644464591309792171189220923455937034632182895823656506074853752372709784047752947687986558818347219842002140207433624305917113657985454519225878521123277874004357436258283683897604047711524139464751604311073432997977533572783285601613672808274863237813018875540635525498770188420385936908516383920136268741264407364166004342762860607955280651745531606428853355508593393492983364979727015946108963452973316254978756468582902865355356273000288964522428532088556226063770059095368721432658742222859600903372013207241681587184242816723479020878934927284457983502988367114988236411591717643108900928020621941621600691621437293122423062190279924638043671543644790233349929647855525157084851467713010284766526210912208636407448200121488801137735415264724943703309002441778664181610538659466708204288880026032530835787822654149722905867946279209720778373000207739088303575378175393608114115363641353327659405337396762519375842093427097210061574872665776271846094338478860400973446449527952348766267331542432793263650893572904930184674189690014490008428013866990271402299353103376511324200139754740999116588031054371541281001713203716594841395540546818140211069700030348534903040841253129107634513998708706197685725503434318939214913629543057735727979219271976987799347986816091709164720020722503986343667851641707516773098649434778554526028525680671732909266899709897288775058000150583616853936899727543687427772477719145621878007697581415711459006086425307073649935477850134011825612846774743752800230364756469114616768770128769408472324995214849055049237585476002814902584607523223563539522532183655490417804839894177966796161750394069319100069130729172071747109192900842803664142735298765610314595129629901350232852909572623061221668987802816720566515562150434116328276549499578526337796252826560571089017808201995387125149247093321401778520774009423195349931658103652218775670233116814956294492572070246690613764242854382091037849323055081015325670623648186158516177434370989734016301850691716986377607664675055359219570820460996577761576388041975212609278552487205323982955312166707880690584879555899505274967223125086713342536786748557369609007777102328281193058801039599872117953889979295708917223540503015126159369367896787910331416350139320515517773251714180127758329336901310062026528903890704545216480839233907912932737948551924387706565508362721649007986397623464684870327134209515521651627083710438176753285825208596771440787112154567644959088167973784990648438491183604799300623881760061259608049263577880835786525888500030765326759021578371566584648598911879116874672127148298829141977838298321984685192582942524495054836784218192451416902418727580167246107456745047074349909599308547486660723897565305689815818561533495339701718716232841067820946100449552200151522002532461341191864811458356952005043847634253442187185832132078982652587340572891396963130202507018831837776680102935133472304576929311515935279047183718392717520887180324667007603514769227400678442301438518241959175236258223225092618684916658741569778471415042336499995796528632167413803010847893007966553514982701434309200891748235076590492153026107307151394915594811568667542878486120366430278652424981138164711716027144811551105928124557626315667667462934432944703135500688822632778086805064733018912293716931260817760317278272424916619123521696245859622292065910421975166339613637972443578681853110547370146031000625313561158416082011702846399862340121448312726999518413860327795653550490838241478792018900265727752763461251093536163930572525518100936010481391997994388274549566119542453316214738451153906885904944654610670876200045466388449166631467487679691777500977826422701729326708860173240240276454796568501049105158187247710016737280747411777424530050417841998205579949021607953062551276318237676415117001335268846310882126815051591728413964937054420116626045999046127495845430223930842430537935518968946124111792160519389052877679919966035577952668360451012692638710601609561406086447817062755962823434646404505203321078833530288648643964523435537295859698578038071663853262888750910168588554819238270266126382231807374136123601784962168761302427365966457700626334799322347326639596703317641958425994518884220775822089425129506646317942398904768936550575156691470601591719729635401490951162239323672504398127506775847128009523385593990046536141918242070976581923191410523709142037782899546640511472008342242027644871369698313669786012961391510782725755224148369711784542904175891500437385562194493445253509870210572805110891150697992070022106703393289689753109132806370783376557193013534107336544791912244307756132921322579212237889658558247944791738440032038176135095591959061430950603173747486161433385515674469485975041013417765464815117421801042615176904884065714063309464208744907501265522183506547137393674075615473064010347990117140254605594815434403652476492988153517729980779746098360353072950381268916505880406571270923348029365443929346295462185614519528756424819144009192605702977122955701359333966368130747804547284257797296790291614166946914141942608607544622712912707145710104408286307266270835572391318253784093860657347468753687872553612935387619624191928282252968583412153615469519752597504800552457026552957094364487590126973610851027030467678460411842411887638012110454720895017011212384237157985620954819250640969374275879230967561737071243129993566071671577564600080345689407456008645278549683640414866164034539932401143142243210157513190008043310609819016979722053871796234344030765059677595741622828668937883638786068336775852668567297616228666534682649512384175980171822196194414520194507508666034201690526470862939269651028987956879382786584312595651880516050509846141595144627210031849595869875240990355870675431972958616080500392175385143882582345687337720799981588897244589462713798593329351474740351007944593338066923569485874949291788868471438667202268312367439196966769517754017036320248122199109701463885565935053070009233773868073309848498393325574820841110913083752091086117786284433285235640726929898076256949698828105972986422565843300380146166444216281219695229322308531550357945407328018222760997594774906563355532252147795512661994190528781253303119317379082214719805868006096748172778997900303047489363219354491389695152763729782140043085392467174383279699247176981591865938405254747877412737521195438968498024883124802188173455098395720908624551235526507404782562914024666561661253973529612640439083043225490089181159764773809795493718381369142921429423944266154006179029036947827396835054881468579153058287612750178925502322490424339152977797558555445567317549217353118573023585855693445124179942318740327763687156741271650299132993734474155652551958110987173520469815259588039073228040579964102576393204231669401593388312669297585728159131098533061879502428772702216502000982844359045385641811806159811500159483476692401333424364929489673479194988068526616376214979440641752342091623978674677891978894681987750864626340921803913467119314176258413773732159921405072822127966653822108626291254561605917255323415380999876773598201376674596772285541301850051074800540012293572617184539826611504039609248604778143181991895314545182396625171610373953556922306895552179921411212346145276679324692554437804503110292358775999579998661477331564227615276312388998119487016457331963619209301588274943418674085414215199583850243737740322546923523351797238071043995156167533628417920719559949615192057996357004117216981338221773891551121869330492390254330780332660949182251060532742893927905167485317148639978900829138795534679368635235883311352969363512439445483985101462310429293676272150956030351525352774533491990496956054247820025857450934497300330038137636473649275242310395377709013853797695321461610672516950130651012453333530120483028357616671331686116524436758572487051308308055273395883611277940021299131192144024841066255239154752233408611887940023867411697966824219196999232193383709947258534596840344090765721491127009108286306614381148018969591216190771881763594000811449109199451867614780357882307336612674940657253058217315466439023338856484892386698498868045280383517753133177814110882481114032444831938233302878431146115780109452297652579201642076165631601186857834842352665706449039717944109145582391994878014315979045996086827081850016550726426751226853060926779635698567767650142222604362987842566649706218554813853566495975309516449705506085786759001859048327441681152366942804567546046110899471707515072999699522267165046124897804833473748834044663311379455148742664718561345370171662062748847407925349571783673657680841282327377105888718922698489587889966768601998484992166353985092108117675555287559823195535961712482001661522797779001879391303459884848189155140037034147689549087514808625822129640309585515463327665388244088996200440545905539656079971415100452760130022401632362426260878433000624101367594194870194277683036271289752424312400638045719686871742112401037192777706777312992197487083337824987183717137771375970408440451805655133308512818202538558384456020880730149126774231425905043484459283518134861743959620500644253953835715915201955298980213545210165693331590387543902074558765514073870544685960944981557577279529566994920678040872359890938724258470115816198998274149212410864339968598573358442988705345405504778123250895641871598475636830971991332516714201074825975132964354711739581736851725198264862172144405429168390654064714621623980911172647480418998110665487600538761431438188239972396307608219095836239270414545274478477565457079926318151330638782846050914372719323323236039493374133299670744288436922009193737703256775423536126891612522553743260745136114573603682305942535674827038085767867853094249425202982394613846833017460625787364185783679117836617218344860872413634254057658940624380491565027188775214305799682540682241499771000451292086473500507130669920586883893281885752138457425023417576191091504433389205473715499770351090341492225155402005239600864565840644182088793617620891346473678195280895012931162754551216492742483341227275779199561706071723435892682210000803416386975678970095648570538423486005243025631924214926551415261722547849263617238054772881312627314597234911698115064623129789286978255404873995497501727302740786272390260332950259557228499802316488441121932744474457633569360477560196418276650606998566746833841245613303708571935012737500576887043669442781501366660969018317790101914841626377614608617960684207464723924900866554583925756106771543198210162663989887089316594462923668792437909017583386277085493131244506640290766515680645129591598865805355412062114264444639723324814902433077006891529895516843672561846455906119950099524553003642769676161938901613751349685723876482104862441250145517773066418869257954890856462801864460788006538668578399757981993218980350836355839836303118159813972317191226745729295540774645290682242089283415584022697138074203926452114596398327519728584984608771035274549033671979524126088326758079853582553540338580834199918563301236185315009838200620186292159477865525572432957356965471922842299348229539128063263550498934875194821223359519458322945597196454453841341246476076275831819145580169965681081884640103890398107310562711470436722556224442426131899406712424442300458743595111847594357144984577387720760618289945981305406003895453968028780931330403806288752562669713980850560935976511284112342662640838974006102980600120643370529816788840819385763764358779876523594350916083094143206779363505611749328931236543746993683923994302664753549572261976725479381479302486443598568648444623775297315472977135774344070138253694577206235854537137249913301157869103155171851875149914304895058203630195778305115672187159123242523390430175408325954431197780244818243882574160445774669827828428213737746761837571746537086993255283482270618424779927572456733315304960536940030470395317575438323362560758149206467715101695675502672541758733885011564802530269674290725273601600461267318770735109853549569065149588951393950371948957162698283497099138767011497945036986732709001522939904142162956815982097509763712348086591695764113707245022238504022337029601535625660195332122610706388764243856094153719152518886212915915721427895064989952191097829350497931123553652867176179806874932602741066585559536237215586165600464093605120099254785890415770826749544277482366117506847564440575251200261183454974103970836835828554353074587492035429147894459372653385853941381804773105253802027054276942564912772591459500836531681765566376306523141456477098287071026583785534887850604762153585790334250259925814877751271802333274501322479903268028847506861465791141412450080971774773943277935811124725526080648227259943218667651649397739098922459221465837845097103867600927627776538937966859405719295906984311840632764038505680814917302930016476247161204176727282400201916475185374854662900285587168309188670829596512598430642667761846196467041277376927060635069984456110201221283451795149413189131522869940206574807187785215533981764914530747498483673808747541291290548076508713000727994269124672509514403668480085600829628906846586624497415726477117609688634944337015075058168087247696588055332832904592687808322306204198660788419895034631386330616360284800622848122626895083247206514690423985779291765936280064050648963065043202277842037278797478911492369136802049972031920199369341268451520033054301443150769581601034459767073291856000120396849661313699388032886168207520443408975592055574505040032840297945244892905391746486720291359206118189091004457095285229108341033452704624863677856845017037776698717891756607624842608738917334336622746987205214552603363107258659535105489165796463831641313396904729261645669826655646724470585215252176904402371688411215119406876842754650525945320783549547680353146495940443250465834392543058910403715956406998355885106180700381146000916332473933662218346746935405443581953458536523780706680516505405791493526844704703578044926022512335924084926560584565820395492549389499642468231679074613459210406093963275930115286938357049534084408686800577826405181434874991388329442171674939085094055081557341074626648239918731757605521210886129787346466347434899225704793341152944273871548406012947649658012338438689890891799950607130644066678891006914787088700766168720154344142573965018177281810449770315454944090339735962453887265636885162961086716856146462650842672998079654736548469873287810286884775789825132351206914189786813685637759708904635816150986578263779378288886854781421986407155300581284082090833361569601919376205990539973018457018146703757621054650411972286054398466475308042374706565933276140449408854708412418962999286827324059058033941552821871662380669352929210930171449036406142567810671957672451683051913783118893819528231131420602169742269257952314436480669017339663280306133606583255061036657747139523687364189453429543896789949816737306554101333283512071948303696176991915288709207368673521383696141913708261046207678970637285035685961576241083600477104937857901894255665841791949252568277798429128647108442042411225484819137838224423177748442215828282055440708055260926282957183164062056158905351723756863131830198222346188220117509822794818130033875074770191973858174835673964410694818334214263896777133270231302245007200377185773061182529363399805911383765046062552384424392303344224204449952571563749433728837230449280589535242009015591855282712377505981362211601517700895632130269905448246966027284150307149304411693022187417327527464978738563636564606389290657721115337195381192680722927987701569874925343439827931517593918705212732932833232467109339971980938913234201219645089164178756178744300019349837801571571918794663957775682028496983439942209843548392547392486945118845112910813064653524410862781639606133800306352219758898699432604635554311225941983803505645718675229013085294827275671698359506657105180943502871034458463088430557213210960760159232212191370245083901978270234230366262133567934977180565938913696936798479962887276750282921759322238329862721334420460805170937154566175813243696698968251566045250302840207724056857704911717054900716556622569630032709582987820065248364454982726164689695474372814952687440027813503645823913102489478841315256496534562773625097425415851905630341656262529395596058765534872561980641475425781082003624806261244598750088836759722316086018744997009509906837997445148518482963332026958904279744457244183758605131604552769487513096745778396532719946503618582712119480489953627897656141461964559032922339378906564841033837258012684372490444748104925157056823292900885788452561960308487206970686873885661648863913135376455513554346551196456382616551702313640720268176091692613911264843406868697401197066879112550331122363560363585713505757567460263757084183276626140928011551403813986231899404092839069256501361064711813328567275648210867729814836963932775923706074005523751594299793199100045303171046811220584024271092582749957297403727928676641945380362085479268865020759638056328291584407602176807093519220228591997752488383897303866922722463131645100496502455114378861289240919034435449779281683133398022420823772116233175879581386675537512572532387165046864371759681297296188799242166429769573083951698758905711920572948269308543754227579729510822487013807667807843747097674001963374444270979247584795405326481493240713773748233345258138675451741025141378430121995900642672360444564499187436484200703283728284332880115447235050905218027756372997712602413465307186588413241098600672612421281695285653070746210153532838634689741842477195211896034851396626723918950304363714593842956915642187921709586497216482467363935249385356518472378625346817017204015327068044352469637727753065111563117215801257683907974206436693440382246627241157095939675099889543237763051220443040983756609586820194146232319867851513938276215624271769046513064451827400075505764838534665990498254731779508282296744956824844194300158728483939432171179915250807142065899791422115671966594589274501301771091988377087504519642714347988155938286687983247020243748406829199910215323261854214499551960731307775380519057842200322769408110525254307507038567224918859014138364283113053345322125560888329888780042979726942197981003746037243250977967499990919044758983782585681915519386623013725185876340281095222657338969632497712928180760209497001169973411500673228422766930537522272565311313693599658925891566201828381827825104006138805634232811520011561775592432053057708985371674564522272707072787278694963371813932886669201015099899324084226361488131235302339428656588592514662831443817485830882811993381729891096298997385886844927035324912895086042882839810010191548569964619110409122765175808584802946204117855188505920086826941896301328486937500827114455534949444897308748863623086107280952434604764913883400451600100046549193200417650230495742327945474831429050124997683330839905164474812230787224571205835668478114985108071383831178902758745106215936468509603135746503451606852225139711128385356395940529313030836254797398237459409215907199925003838168984597694852480586111218684097959343427582158602649056652435045601154961212211476212258479965951732592467020530174359624998303103785232016141351084661792746951312377390392353964546734243067778352526978237676821122301557690672017172585794973800167691485904494352708052570653888730652919672057360249719276419804985328641242032282408492620475130281503489038024964188045410886643611967485138509485890855885616745497687444296704616810940063058615406163240130013929688307194472836015328531371511952666975878551858223402600318671576026402432487632631647871670477932506974836833858375091443245407126004518231396976221783276553159010307726941544790853611617041583225471240252608699762078267580339091058333174466751674427887304775621493426241839993288150709910702916171937491460779454105455406991164152931154991952124735958342746775780569425329227068773122519845432077651681619422476138510926112976226152947965324861505551734927376882267605041901091169404136892286722961152622725716714779241940803976587083264234821424500717899777238108325216072232619460637713604359342264801870692918776866383747777276739134421641716912673196626738128782699972236861330408184954677935675113074848950856527570159149293531519150818011819072508711969429796870609441868257752190262532439119201337895162346856032326235556343337323428750404114666095906605031125352418609488359582647488878012434912449796167275447719489513566015456215150555401650397521694909757621366775806968614829570956795312446031140072759489265525669712678858085421011822742828594423176865057321407798459084516396349853742942239219219587324992271567113524008729516567434829076218801107780105338824089083397253458930333600695650415561575737372804176881029216930518877474397338355648161853156644907948981874815440767707578865740772842592880546904940158101441400865757660040334874505440333650637172779796872202814670087482104180802644480163610842722222894176081458883972626268866749233875649341073240895891563587322133738916095064504422385377133635983607362532732336136313942921048722440286358010048210648568821396241299161636544305444489272537841366135374970916205362821326991400331238672944648621256732662136343213376555665721735102797418423808615242193145197988769253681188531291009101505019009033260398243343343072589183442326724814590631092319691821224716200457242115665012692741172422567046561316310881005229615470970654207137887684290632739366594612984858867905406534116197304929180605137881856267021245700376615625609201517408730377568307393053763902785094292295198456893029836457842884801955765707722249391783796314583046453310540532536109289596562298753344524079248721142948916125614978774114570671856681312086147161829212513121170079988647877964025274967123577838541105356831239684885393111263000261780723161208451510127535566751417045008174695733006444631890249002442082243898406672676583719525362466383153151780890369933195080449019591874124623052952139819995217116164313942418862786597910658529257730629716753829930108980740484056468291316523426906870732723163423276003689331614473448434479093584656305394220540297444410188513203311049567502042491435468760385717245439093982237872262201101399511848915360444741731802693072112855807394195269590928924758060109183573500354874398711589234829839487017522799066297942921165080831300074079694140826238401413348133902717485738719567814373540465601275542603887466129681178107997424370861254120781997156189165425885306182093388478509791890898361707249295530591061380110180187879774142052115208668076254952116934751445254165377204901335028045987022346533389771776672344468425600160122746591677316272068719002330102915669554603339811651138164062535373407459624587307581534948136639542578867113042897375559436048901108973524716101264375771714997631218167011530459857691439612200179277410268329284925108972929537065672801443684606164306309632213633028275337072962415969650040617147904454683153973791483836101369770854960598210867165978634566095207332104718858569274443903812754413173170300815566528842003846039229164787824381665210953004535256832398146082330699876240149409738713283518191980564313739287071788092253510554566843176002036999319348733523567613733987451742331292853886096101059798346238345393573920861836453499773160799860809518332438874368329858705133770623161316661081563557855024163789188108851922772431117434101205348430120405436213841182167137279721345770211443047175718471771883927124154186495831052367839282633459893330624672977164079285514014903458605692585068994363036365018602000655742084460289973421395149908182980281640561044567908492629596812487094351528393413512083944602758224400275785510901038030717996635727626812937252238774795231816833268859439463237271809004642231296456109799992236165196790652168767386604943954891915787649803621077542838277231918155872981538893395923699732939527546311260622917515023305689439505995049837135772036350871330429494421362319957190578593919707829953433404109512532615758389065209801154981068731875880678964580434644253627790054316065540054390148031221524392005553715617666429609824361607656403338189076311781604461924642323206551739753636902488835915676502846477291756987390924541738395661662163345505260638618713911261689979692561346586315760278453395313546184243089277467137488048060581106822694517396188275310246228030886467472331409515179937791042025422820783468263032071918221555663720896929164165675450318279849424432161466087376419930807525192334548718695981435376244168698111707468485599360715371427196892178949912864103440618037337038499014205116753010971394517437827927616393092877579851399021585795953067229638855184724336424671325412280274989820485974078679251758699724562897113854482199170490207418689073710587964326654875123573137750691502083139238124599722927271455343500408447445129681611830330803348175596592904125556311373841257408032302832441484762023815950076774252954777032791228257254359503792299331506597874601213176599911274516879918299612431128662233073080708669104942465380223968817973862914785632644813800167344386350388081534546723738172568284421319695234043999132428419663978615738729596531599458325703222548516888907242460542657758186457873665282306960287706827338780893799567373682720849177472262778823916357263513461485843334696416971462134501668546693258578351264020182109074376757793409803213187537642033732016595571444822748650995878713114024939374321735753349813927787879145260081571399705172642831132819011000792889012546253194747477669720154555868287360195141055073577370176964254363108677809071980257125443489866132107150641980442412024889008478004506473271923284684259913981035406092261347167637547708212718658675872268987024563222573748853376150029036125881994521720792272572224948616528839764221939909101478817473506320657028245022117165852685225417900437436146080820065067938456135369603540478151774214011873884120572137258978284431353335873941326223911800113097093738520353349307983888181778778706703845649233265906943910364027071676784857698040925801604131508525062656854379620854946688831044343949000371575099752913557095728201022041657923211510654270977064885632813232741480354604731738439003153599202701523493364090886233114241985470720383637925922152918191734294415798285264258253738661153068565080034565096346463357455208353086638249203638460424764230387031761616298459615458793530290062702958379398218519558422959759297333321626314203600604432146742076267097107547539639347006715226556335142657355744077180082489357182786738055748093866505974078362136348310613429655003547655670883487650482097920458791928403441911857585103239379262886537717244225980346436796230621222552967832830578507972404174644683115610580586580681471969031408218941257422889448150737702697097885106299734217302598432067769967583782823387571369637280383150763603731249377805923008769651917518772323427932765503161253527418928600752551858954709146004083420747134756234709481313685429389407531603906364520894773564365242792593149113258682579228719959470635021342231628914041943474457622150499943630979514410679101425967371190631662243627100816137934008032239113066706517670569354419893566345258390973044044279738324306241499081560015949110534536643737325571704785110407831415633769676288473109338172448559655219430527721246310288601953579271880714550759652773133585790681796755756330316027632710120534074601784672793249284311491151453606598190055251030855832431119828724868897008905366174297091275949604416927451598897810433116773238432874590007903553800309217323016881795568127566128183374573595385607962509358870562473314906715061451591082872830915621111594475105328259645878253319547272109368291127272373448782964135597165548586713666831805856256032538571699353026483517848044907947412300007372426357165539967907641812233654414131811736603319971339318127748024960108884547324644772857145678562793665829602035290213693234775070982714086944609177219095508474951038751996516776047640081386632173575758759787773851285752412746959902316806429375315733999142130902017904573423218128644827120208837187888699369721133592720679675853545706791420368816206452438262467537840048040995959720800909164580458354116725596527059166397554484069639964401887892180161208525701794002597176852387763135043844886537917431996735165347381972689668993015386179326869475840987535171674017287958484449709736637756723778305704359913939413069926015160725290356466607746319549138660866089382347063965627807290686037906602382278045672025595340420346754539085391825571576578658355472648991655926524291553488052989792953262598946376069100245719275634403936778609364583577640354556235375051311216057126662890615609491158153126982667468046636821044838523074287471879309574881384569440595841750464798672688609174062102403108164430423413202386687635534647596734250749036742167395340013038411380033665490307329565817500356001582601224329148249910768397402354592052424030606680929904457895218813539818502979851144693342724990466211002198182874083343027047464258047621113003267720845070180536255342135053288814715643382383824527851783538547752783606475368576264211252573181294003101948674962665229233431432893798485968205130968390685659790601165973452885499178437543604824246553303267288700800960378188847638814146534986397329290956337762426997215179822211430325665324039471059925291831225690155312312446340809265690061905476361978459790036239808959136630832062363973827418086088883704830706925315176642308438159950422163017296081966743412615249784881782958081736886120757536673708279410768875806346543760732406842156064123297101838664206819897854809374579351681815329995611592399572767412211720116001115388567139787849569503340270553490908322227473494233122095576380785158390606291294101918583209742772172517125903830676971539939645908838907872894870384285505007263407153267035302992411789406394980836441439329576256589586014263057940423514343775305114411104496615588463039647159980923804026433257978567704232824384219063164480672839126539072199142563243727375178540965044620104388602220598094037279037286366305510500511869871146601303192623508848635020966238535170416016465371319566127616880557577973885829927141823934796675222392045649734499772869572444358898807787754178322867604493710901508035557755233168029519391513605378295503495104081062015689338203384452665263863641938313932556730610578055019007247561100007433585153679633428304527946713070388386510529462337809231128424222313579600068813440226886234284499777433703339657792020174389626012040744656657062887457295046887405763942272119345315897414733238625351891737553461300752410537593432753700276603686170927423372763086640278815350002888553229991567986668458383214622711478348576016833221852041249992843340785060060074566635641954149535742258317009245884974138606764301313245499833481865992138610789127977897485061752093430491789599608744601087688929345573172032765765687336382524216192710558431456583121644761637364952305333512127147780164410605565867897437489926574112907613001902432999550269489587411125562213058005121851101571201923103644547851243023496624830450136516326773845243937832451641422958902162968949816244997498573128072384901518568466888188760374691877145363923708299046505791510262011135613140642209317569696434222376771684215831210959099481132911226183443915895226941942600410355035399159156218052126732458543864707235210238484019743825266931254622088169390296900879880452335991208315885440746672260881232406661293384840074043695092831755960018683227694241401874979287884508688486638126848888325430829551984241101547190822307550119975997130297301124566705493100751892582721991873207427885179101810042515395293877479935353237743799626783057485459503734491056656715592731383284245061795606168659971240806246750866246990013568873107234918522327713068038316962495314562300161544711492389867408878636137247309770593995618300659376414590052179892019733314089612723500194988194097938767381797829012096745226691135876442493888641642522806226484696666310206017310729673168689999390809479211368714985129873218081893477621739511478678789452973390286783020749994556957132289742946949304751501885481994737910340446725660975570272420470694921646103886054491190821349654251990574788028871557341954369336362685805253477277568456371069765990401211618179924425917618702615085228631850399795023921869845086963662262511372659018805455003215409067780478904386433145738334923037815498554785908009034873144959914150648098609990572955344308836973911168844136707603320675100541833102821396518949735826591549143913438550987707161924500475881474080733342747087374595329057956962371563897505904562779808282945429927629390544730804868778645702129889010135829212749699059440010324835476204817079410661932746532701188158189968319394413430536028672135764562400107122829519155539961129377276516302905812511916782417422086050693677052155893821429042833304251488099736651651315263273554287856405199327293551611163751987400060315239940143469428126732689962956296864012116283471452925732452633506528153619256043438756379733006027070864408970641039741314693390109789154969366555758513946531609533861285575003358098728917970053809181233273426397742776039472014239608891350922399651131824943280791663751010853543319647542129550065778872299171534911731989419714969579865425208299554049909817612637073585293268414290739051552085630712813478248939724803461112987648254521585128412624893216258298670072658297132476208572589118120455417743163375359413975844169626972650017194575907303301818799897793686901729911382272061279028805301238515990722685038155645784735816532394241733743644915290342166361272760203709130288412448489908013559576733241130809302566502571170303163585709906479673958921364135867284228807018984685788480879029685842291141602722371643427159023144297616678931252392557150674903123141751459472955912144421914706659740507756688072031791090463986368099402855382203709385556699617146232909190451160408941563780573778867036100970309226414096147962416918573203747897889453402571852478025611213855760670266489048668835106605926950700511268415055319064871812311225334031566032580502813288961207352448728753299012732549328034972271173391345991992066557061953673643667887052605192977607610800712943639907376960075275722054994889435925975863183182532843257998604579181737987960583055099858349367658269985942676513270301334656976098332917448788703437924685008533448014033527918720135548001445398076483710761593349080212495571983611450189133443696764849502931393475778198836916722280217187850016016691708022953676943371593386005780162217938252251688811064100783858981371902174166678569888402437797200680703590395441079364844185981246067501674493578174953856672735654839408081525724220392333298209020542400132868994087172546165519847369484981101214015988059237578720733461762508261373093764737676266834684045937386556473430732608789783599107037704324356732454193772575035767218958592492599874124481377325502639422240343367568665664211437625961348909408100855821378289194406158556396064703505523254552497326254898181564258999858217153085853144810492138670966026081662392411434999162632177069114626353625244164692846121962076347143189449177517450963978402259205616811142919979592994940382979834740386483675858165282335666361288677744506937291764498930498922398222998889935895549933442779344937467777498487887219092320389879429145897480691515528226922902666784792108015196582728732864570440385443990749938646323522134769374985532124714813488653437236899686352547842417681971180945821882024695065369357389743645009564892021397416312371731327646425172079580662513437421252323254905432410180975654157849107718122064344384160425414116436810445757210698419951628291016106578799107972662877266736124238830807770571847505693437504414942506733333709327861386069949134938616976498519826170347696070935708793975814453126404296916767789291353034932598945482392577677045785364466841798076560023617023460401762234903679004179344226561390931944147934262621869940920369617663893902620323309119350156650166267801114910407042380417970886244872921923129650654942910221294123417780203558840167622713327090664991223309089785038279551560851860587831293051209728343323768842190262261165752291407182140342147967301400472030481603136806088098066779423153632923690313094870287646370456468468119333417753067690420242760830827462668208312544598246738736021403538875306907410481735023876188378271839365525304001156099447687389236235783282073656218103028589907083973512710538278480695209658783959921197317252081023046304196280730940012938079016037942121237452436421254807086807521983840469953146038164848939665102313948270675993619467183950486280076916920495814474416877112067982689051027887132173983139461459167569425800286115514324400466895305734815878457022788667895248415683400426646328375885584599101883992819242408470841432296814849875303134413977897184442851475798800389425972797941059850910791617817456469238340040894891915312069217892327118616759315513194469907639991462894750428289529987916729420272723544009088748255744007116897339301859948700356766386323450239638706950089541317359955986675274508425769513795181956125974772279066604720379218527039763206975660216017641675805821068356273780769437911619364925680589777659398081649596603710713519481160549055390434525992622723972022918479993814043174994180002748935833763634711327838988579517708574412045322368349047787352940272869964175392510520001618554783405206016426834831199031835657194363784311636556094667389578454009691747664774380122280576370818901506566579938586739522900336122776421914322061466913802547061567027456475697523741744986049835961289864544232183103113178328568652017624891411733633054116917267986887714690608740557525403282735188066499515175991368756020108275602707279152436854225519546212777728643107565779718649357902143483706108104740729534609325061327144224100790717045053335319622599969258719441379984019370539767663992285094308058346100789453456563557590369081490164927556054449187876893403253998880118772218993067056071911382848178276542845729430064499435729771895389237498677052984348305612565003066908020085709679329991419662687369085952267054654494877899914627885900167108151155902026913164206279155044067827637430010522777208952986828615217630973361787995850359591558532144749703408198284553153563968083582617342229479657892443116915439464459330604906055148059564756391119058796277866823804375084711917944153862095367644702102261214451700922148580841597354714769307869930402151753938371951974402867342622551653760235276835569929249360898618680604353318126505190474191269664441408320441117558600963813284479458340887834983407983254574172970214397670565721796352251031816549339930273324331518136118627298111922065760005876555023613169077227087892679380354013354260633562500135748997705091184497222970451104721969682900508883484699146715013878368842277301429261335841164248319447839657452275736580143429411581650267646165650851893734974492258392041499040537796549294307765622260875761095258406952297355951864014175123231747535258145221082110729286876366247752450324213206948451096225200296690288782020851508660018350311763876001764069673872930888534722479847905575155130822937883277963080180357911655533032240867849981016961850461883547704120068647106404340001713283875012149823611174869229296410449374718198806733565898009786462632116760888178855050209090037381805086170178174654300585156514792152048940837429045446028209355605206705829546455274709827020651784493140239875401585310687298986002103952683298765727016116433929692833576586009229865801188666071623408671873719840018060551142401765388073277295136432228135436387179600766873005235892705435409768336988198096939050024354256450890232953213540648755789997769565998222887404392888342883415668128239142584230754791954568681679398892653911932472602491043877341611169984462958367783438528349949724570656978023740416481839385383760870688413946565138612726715886322266731758696280749258618727760408216215429632828822804404179677481963258352425284949914608581393952923830963515253632697839522005096529682412944444345056952352452035670413008094243618889028070560082362446122771173704734233468628665480439214270928234901795053122484672912953514960569344477708121411043016692898596508964674663323205699131501792603633766843852018720160715090505794241404474123648363056066738340986067864644572273478198626158228603669883453306576555287984715787489619398010179557927859367149213801883397776274899270067452742030058079708246209056855717753067307788005729263797500837070048230643698012379330521325286211094670227259888035678874348071667263509994726364289155160578046589994404155937043288042820338938245852429722150329232274604656539195540881800160364022246763568746512364914030613359993169934134886159874229514457616429803235789526854083069862988099884173665964824911981354324559900632397989383295836157373511075300023769001784393395174326738909390398028230391343700175762248422850761705598373615688114390941184767227678110800600962586361290696882119767472154878996897586105589305555342785035957139953071215491872360895872240167464419151759426259383901576242102374045413776227427790259864727317354994917104686488822804653742765884681325668214545164947153838031661158769332643321250340549651327233818412513029143521750480973654483719878381972372820578595954834786128070542195050709388930158139372702634524426002247783513975101430214846166236777736820616678285577002752102473145083801029993765051166460740249478712197078123636377725105453609267224610603432120679446726474154350967190911443517564917930775335684258733192461334830018688437182812981276980661281117848425983959817417379785283913890935028394032825700521758345778787888355289178971073885721287794971692762675297521293148621054657113515597238965901721022820421497563271002773314023935264525063758862930764566301972630529189902191260193796371534546276184096992632406744255386757391205484754148501016190786983275535818433035008725579772232935830589227141147934179021031148196850855307800910472373697943430987233695770357182315629501251138150575192685236312756963138235408194252618825977846331568915313165815196590406420737542926104206545857666973067440249335219216303214300682685701911017606967716493305724957531592158757363164611103755408714391836804786619770626831852103357735378147760764198113533729631590419833478469050942767002331821714707236179034596158344829042970163768849251223291165107107131238228090729885103943661993167357284240284811035649757807907912731400383236796348347470899144773616820435494234612165030658246783750432999309904898464865402512451507470334852852443536286825585425229124235300202219213679595087839939810006849218837361556444550549460427734587813372793925231336312009526833990944699943474162460562205197347579539336822457674147910485609117449332892562931474538911661196487088662427694236394546886025018111880371979980647920050457762499438992723435193335764517600360683198156765879345805721224086016626127740066942741676824661230457080345591334380100078299926756602342929447920173221533537703066266524746602677848791048059497630372134409214254146962850245753369094702660215800305230661619842300298776729199397083674129898279702552224683821646877874819869649219146939781341250937704306160764254632438461531877794571216858043846888682279250897818687762359558480354347857157813998357558074058616014469488252337701996998888433018824112071226533290968644911290734828274159628033282714808229757528572464858429496962088717938371321187057189749138170951715603704898606554636919734002351323435694937807381005961540240550522840329109375005032476216761623003873552129107617736274211280086837991347477866854663346307800188761333963240371826958729037700627707264598232463526652257187736116576510488583481305124133779463883295907240285999765627690402926414270989117342068850031851621833433254827043738351643187501204852698921298037203158700003926599459650068563773468537532967415379110153367921880803250455856992296861658989226199718259527103694782265016313156714470328807543277451553656953880592849877961628449956306524038609362143148669728963962805078694091844948073736290573351087707573487917041025835917034153141214196992793720737007314927590205872505715625992093967582388694399702687782620835621179846515406120193659438659908214363991678638561915938106768789407696322516894640008228937213829450875226648052655036306562172200805785616921422007325862394433001234854580180221433179594674022437853271409158919066695853441066519213067558154667998696029925259761172657923533730427351030924258529150368494348931664251343603684568435841331916775288977416164875296902882074751955930580135567300492599236782860162870631591929161637411641374482268607153289737492435842164234277101621210907111538259358372937663643958438785627909770882091960738701098335163825110906563027264280708034199516086204045581306719476999171010746273913907559982424023200069856422993662409144013283544173284229683525499935899608802834823262127757725480879661778395573464727525963877567167812748890489974064902003265345619284752977597839464091528150927948256772947570010075002904127236292471165908137279117977263012868089355368104428692940188131657306364915424502966548492417648816705984498476283110758727572785760413744838221941480200512037048505622432579126428561079131207563998047590016660837015089040716567576502664084423738636079890928092157440836239275892934169009250895376162196447739447400103255823477621017103206908410330488671408848325192326470685932728718531498294339547725167388728953517649864041374382102059798842657082993917103403927017584120589971208631189166068873689374415936392315913245191026929175051398902924945979687165697262949067409860417446433549439648986582368655149443973988379601737264946352968618738198684379131425104108685865621302409187385425348341423979918954034580462149635177898896549822650696855082784125673060488466323199317671721259994589130318866808781855841927648361719463784200747901718508586683696747752748847055279972593424482002123743950127521806174836054171495639556943104156991227110154247631096329058869076230419916903673304024821330683911219732766182888132724832558712168869547464234104041505123106168051147960912771053333404884365351235714656437238665191747309578480868226262079980905831971454592677881773397588037124974586936102452002931864380988347709955835372579552801484607939274147930162695015406584275761817846317774844880937601167349898259614433993159869118576113679800302954024320439548409771052190208852355954632224059315552719338793416527459253062426849866519527154593027554782978284238820023016696163722020259461559822031669283871362796152755969703682450217992841243177940483620467026473891504457619889014528392815839822894943810178800334023711135820633345006373220478699926146225771203070942188352310959404761032422256961521635318231486058606207795571478975946158515535102738573923294266443643937627796305305497520851699255279067838339611802359369682987748678260540405595861152797936651464946712575393291149958332082611768375439827414935333370607921215648133655650513274188997196120910744587874883011237326968398067713472711407213434184795449628859570922617320672421896656934293216039311000022151922416404031412453974975702178597810613375864047317396031104958627579076740818158386751318874041253615612962198921338673717393970848525094513357611936905420455778881327283118570631407228600606397439678635945057599021985175642440570210892041036590785435731824387836525310744872643439917866132144387207904223882534844484240183253973643173433306357822160377039598326604553255695452211486192450655189037394693094258357965139429258923920581180125308930502703826857583702122549525326993839425702101021457022778631386150760968180837856037367231065067475537958530404002670252283090184173933913653384174578627349713908294405698619488363939594690989308241940807676998718244605748358549373198455806325686517788872990659516377834085691967684780292768297265388507150722462010803635981350620682984489764292628601829179813160435880047376982896895042958583511218914383624160829069089934317865225583312570274852987355295383814902927803923672402987802819657154059417733822767630807854816290924201714046609700488462786816934041399115595508641952667975483848730169818372174296004043482558003267585862913526985153228498424114521172930572285327551522163910337101512312781938068703795613352177513758118231624357056540585118270108824130160201445057925502298914242990184043614493002251471834451360609636992933730214151049885452729679213867977037963745840840695617886005258963187076806576250891802520107349309500320827793213974601720050718103507463230094236309243980612323563843190750151160460897408903789050677819831569153029907883318059974056046325832438376259177903382175880957602462016429247145465241001429486748183992896723970090932550212924016582466983800052760277241093906729232928317640922031577020538671300666413265207896197514215482224351572517719137991281751581733442831816178642884483792824443522115765773123444738724163996172903760159639653940050946388451711873272914708839846942068803132261839373873122047764999692774219258056531514041031521021459687594695520044181301624564869517145562778454398390956882964523529530748150727552082117549746831118949715146900950142617040194180547607127609310253292646421958591425684598899650367244034711256191791288038037447034691652606062800922666380386530976741999376643806424541761767537775137759589787882432629689125404716221534680848215486781380876565088177147364567600383936659302849336159342659950902871868974367000117724221540758565785553009470158918752339754838955765888019119877316756521310675312689429254469494262999993129126318632894241440259098250038287630216584895133575916531841624233966421815425410257142755372056362746356485163658531260601528664729485170121150515258769096271744358926917597908504469572244261412172621775547663467058112985203266126734231740352698923351103836690427199387614448938752218176918059777019036323966996573304891010217208799836935905137842843702677370540046130941212829839730976271995205921396862579933125228479630793660307933021742561393413107284166654466195729108499019786627635902004300032234479752645895084633978679301285068882538416734313946167702010759915497310120560094696898837488030515020321095159970177239181763819941742988471691654164937181068430488550429079790789940749086037377639187731644231687942150783748835946764697494260459699837033869885288370936081104298706119756221364052802151998251772592355065956400366476836962279344416182572882398181084238505982965278984389781743278905927473349760419239131836252955652530107069839833735749266379549975911093244258754183341195156973833892496850063955959556208349624444404457791068925567116723387381939065715118110080860438425067733214307210912396026742860046750494090253452219788990237699131630544973416352301544350703816197459062503111573824015209213483339367039625198570417436174192216202952744387768465123534900348535644175353158093168499324205155253352158594829847193262256483975129358437458157314995283180032754392990538469414962758949664419293982007520842794320552478956065977948640433738746100606697326151808779716068218769645902115522990208589351912555106598544211644990418518007647143182226232746128587958568744044906624956388833296810779422452985211336781470222613342489419483067961143378797415958141535344715671253662962292835691458966213216392981178140447914935035229198892823422999923781584577283147771466451418883538953318663575011697484283381162449934968450054009774630416677139974550508242335969610440527313959661771267424828930864024870663632310609812495346513983094344835776238977353939962772895625628089491734499602632785692949973519070769434326042533445114014767973492210307259733838209232360600389269965474242695098997059511673290689080381851617034493022591752383096273502408431968722886827120728364619240363493059773604086761377406208106409642255807208069457903955539071509975827187957081170482043269735519126990887803699454749274826642381128309402469806330629183148602536240185265238881963765099669752198452999926106704335442805564712406419218897541879241122190851373316707064540660082427908891023362712721570922097371510813666306029049652554502132715953981286321046628847640592366718784419004096106754363512486097354556682928019889179042065169041681615836548333090079988465425241984983380714243891431635740330172560096538866609538219431594305758246545498036170073932542082380384492999577249194414506634484533587878868705967777930028894901938172775824132241436617035076351559121374336399269233247121884507164776364307956143583956839039621114540158210021414218888667206254901419833474284927267139211832610542961868018012507865619655815472477002823296061723347618602313939561285786659931937741086139382530473924571084136037853117793373856882590633187837954138070137676414475712667967047630860542099313650371069273508921608397340123202619722808398651294429391330778137724017732402679865839757368384223932910076092655900174935369703363012912264802732598200080757047339571068893243470980437660292941172420581950349890972597623151448830590433733928893037498746785856293027188016683306175510209887064603904629884116574322254690987266421097122809049002371571897274159967248515313571894679439689531435115815902121859111334529823154262448045658261150114920985302659495854257647614105523010286284520028294689267260347482133968761457370090783861807376835380373463191383469868001710057757602464683423663562545248956781762155247354907077874543959072254558557440960531334875674985795180072892296794582407127249427120365476339257026058841986385468172482849015162377445037333834195197867074410286459906393326428372250086017179503924535500305950874796980313324895893333427355347528866735433226361304741974637053201027630139438575207054341586065021924108305392612282361834797167216204045567488216921880421620282468187363810101036221929654961271112727423143351477721899411057153848466811800341237170413036195111804361554483214346438150394944908407088459604554545188989976235123306941263401296962546800583267561971521810379792039572756911716731929573410703451817474616668206998640527285921744077820278325837139380827135541527759013149991356364952678911009859255006124553400261947327351135188125502260376589807372112557319429268771254503440733116224312758284682519074034919078925572988784335662477075475093154030748604371690400611030136063794616657079655086413175783521876266691769437173241412494401084606111824124805521985402402068618986172570374105725285806960231991836525832408912290650132268921805306837131557036112783294065877203270678322530309385476444987690750688426574638383456869583709705696411304298718174581756971876826441493474988290600292506815757424725317838843619506087039656062777560741398967008492899983752013284487153533719318261842114786264067854282125823070338923190981606755604577805674196156424228672997607735959494784030805472785693453403319335519596168550742363268937383070115538493400924948597938817192183037623410548608879679614693783972791503276472464893377283896626556166802140266431632504203027402394346552797086615354703521676914823513481612255585078457123086735130315922429819838352192971296949202741640484108835259083334569935542659081997408079736521350004662316244949162146375985421697293901208981099457768562671424815142249275737387905007124128227291977377512829772423078246142422650835576945217486269107118563934204473236511270411293760457874089353937662752093694315692283945900751535567467343869920074326760475002505594916605607311501422822967966737817497305457642911881372207737612318809537585036679294840490924227306728862490760026665231843476757378871451034283110992110657291706287791054162782557254008069405524118454649121886876767995486741964797420752016796539074005307021617728469960356252473620443602805821810007074991985656773826803304741022132864574245003352655895531356054144969933319956769065228757313876666636971803423655029691196478757318301148503039446241068675199463136211832570459749512103343152352358063823095357984475848392560045660608087277314982630830909958438858896289951222942155084717034101892377569501689705521503532720152983416043023912251656733494588397463560403120035154810789985423255005916054513221799798337772259217120471545484785135481012815843229601748740462502046616716553367600563925475299977915680865331697550004986771411314910701335292099843498810609583848899485186228035404700107115673159316082035320023147246804962601153315684218490730309662852592613808925734873054621410462682340801469521052317242517378685467474147969151500529892613456315315908368343685626539463370421938735525422316268783458486684008695591467144378486221372876718113129749450326241007740889924198895070063638030635338083461016954929869177174879931547863063664050257354763025402691579224656286001437163734613920761341552716411155851413769692048439709165208154663053765781246749289222268671265781625083951906667270909333394932777506597788810190229601178121536495184927122015900161318615122508866247076772284169735357123180574209595509786001903239730862083425038604501900838629518322232989478798219503741727594842411055195734934613004422684673357094153741643476307241687532468760666282626237046590163959716247855914755449883827171366055398313088464315278012967989445471559834495018317020404532507351565415377569303694693483576437046976685633659192009266380458087746235882355131747681697268532819315288600259254714105452500895476913545615391591145882333311862461985595222009216886244133788892100419954031209725619636009801292766268202200041811750747795206405206814351653556125953584522578669883162422283155828776844354571448784694357043591895953155046232404902959807073113793293209039485773170293786628270175371233191141993359599533952190171553460033909749492137752062847006093538622637565149190237623418183129025615471013882818182038934351421720162968823625169807490947198514561039860759667426272544500575788893577854637260926805261310519186949262832966708959962152878335007341824328892582324565362834568693307372370941891684551206997121332393439754770599746139600009954671821118052785447403742075899987014894245431613000301743391812999475108413011796722211072170605421399095954720889860418348125246408527675719184176298087119797214012425396714729812859431323472712138110489287219945473396941205156801545479949726053999338508285845554064637037991365184421747187317899726438034954596599074849167368871271929677848083271809689907869014790348892212786090475114144818527198838081347154325031554476565416493951099434443939186266214166765162680504806062311821044460922463347226412350950465662048209834664356801561299966699748518300307915002471459087623524589323057860502657072649752972004681966913738933843664005282006201758879420903925162652634989674246144315867280836397224779960009186841831002019100655746730838807954706064891322057768445470575444198720869007283188905033888148370824267913532710423375299372871373337223584420889603540297204846463982594047552359560341880170038650325068552003757398588225942070575144372954225342517348671064654590476117641144752982983903862982106050751758600971038601058823503518183737864208223172805941127490953317659823449675609113942472846092979264589588898960536227010324417602003094380815606982650373288979454848057694883757775754699814542786106335838100983511042411048890553697638754856550407874753729137207814107657570050628063484134439483377936952658451432803763118200950647715423703143952135005602183971423212162361240294684672955689473872977670159134193236748081683955927866844091914890878308358899882187321711147916446651814461134484937397100281530142881775670174427958909630986533737956342986712155242883783045079445572322629121144008847702804705914233083744146780446415112705437418948426670076349613712028215948540708173984817481672226320829681841577863577648766135256779876030262139742077009421567620222071425410041540336745196225084945509934385860009101614988202422785209312677568195404956832582102133068012171273040631214432243418034424801205378231546774586357034170692125203350195491601105609229467294671260785762637933498396260629561286522339375143191863063993487012362185820698971932057355342553870415748684643845113612878881332228355847608428548159322600873149615421770821738892986738004010772380092985651850371689165753760912978902274388049336423687098673517549709461498260922384816648138813150815189161333776431232924154075213656000112620025296422447640836991135405780408536473174778387884898049945055577341122672646727867846611213613420168133253040490912109659209142515574660760007430903754121965825220078959082503657154537838223378912297427893783280987748559479711113982418229209003007906893209925314035131974223285241994101491870708207878465501686382860709447831649184689644353182286463584314118684004363235238909092677589646033859480616523278437928884103307130211523083984095797876858905312120034504272452776688332992578325507244598484308452029393537956568622176365928958794467777595469214440374757229810653881126776916650749117711562783217218246587254829226299890493600481352936036321000445344227990448298623455297999353620327984822599487586542980146276325500608889585838422242601589073811785300612745138206714615724457247664589918476460009355861473233235618314464974391914455499968024611434438960431338125116802029117801266451222141236921971915396138772334086862210954904182460453962978702600449317401702311239626080953727370011185356969729143073850569814194284765816087174204854390921957367438202525105833836982275326544193218170098376741033349765425763979793845406224209836632389626777561378942543280238463200554650321903278732653608758915481101262693524933184945857615190352448000494115540818541481236878416396593711810019540832155161497939184267265167035897029308375384162993690570766920938504008129563109056690491123635265950873899165464997115134231760649992344330264564997045097347530621612106367445093757140571907015015828947963411563080025718628676386451008302101650766876858193549187437834310078452733663605717073714769464416475097501378807495727658526154512144605784369066348897782580464078293807659257774812785269040918953308403156834784507186237119503386056446849830979319617660941213565793911926925678451804270034837201981159955278059989560315370346572811758841546604678507287192135435000043994896455491995450541432077392021635734671074852306058186293989570647257499432157726921550585948983941164281341889768411481427962527078329333016019545046640467513446149956845403429365323898590828247905568081512974738968191011321643910467819134148093839150443360594137442618945693826009145705350930984770476948493048203766693229088539457689408495107100461691638931406859268676604295460534082234949807544952878762144661609864005759027790139375623902159962972926303972223259336303868291513768475993291818276838939832425657244174551363368858201042109798817951079516633343740907267825761011604596074473055460940674718748268934230835862356361002630197486991387614747922396168508180958018353268468428016366874319249941637773101398094045777271648786055415349467757340623568911281438475487972919526063567471105462308575648775619433806947027101980241038068041878923878952684490545502195038045759044771497959366952959641894844074696609949696423540855086493594651564177105001443331796412654987041309095185788031592725633115292508677022279120681422808102022740124987770738369841876962706643386812977260476417251047941018868309696611535366503605876162979502371153390336129644162917331012889874935025897237223417663589315132325883483256688087204625854722202612060615367483673677636396766306467492349486563861998809913362484570973879550595227749191799031031736965581713553248013063404608219953229727162509433212912001104668240433918431224935196248973126856970319508177260999824779651496164377464033533895011422682158935115211271892467630047211685935596422940814036266789139909291932694777546573602036978554939958127560567205280710224173366981814305379142740573591158627429173671938368963111064866382759188030016429986092064351806342572882461742567589277495058321115573028255476090825388065369989088602607691741792851490986431645838070758726857806930862290973798027773640840888859605046484903197787091347130288636098369719371224709696767569113277185130959814663854809333220779747680466250421477407125623107173007102047919526180931554588131421911771911207612556387783145827893315194550467351749228886276415620093472184699075944356655718792030035456075078793706064201267855660367933755032374862474882716023415949645632476034426822070405854047890471393186804272210153092422194105218874820944375755722914848310248472901910265623319762335753960021291504064471289403066381329670115674278908419449049159404308990278640833844138840982994350859461603235790202283859617683341895060646685146602181312987861555478001752063439354961087328994867629626082367951904264631745461845892303784854867999214272238303351023722939882364935425989217535395924464973215923142406863743102259814509942158167052883054605537971061600580515676340166170599539535331514539079286783116988619445593796255329393130996855714338694393928279810283433989293663465192144894066681727993910588038344495721751697889151992770602626236282699967699705692232812965536771482464141322658587712189000390853682721088577516334062512433172705726835196617869995151549927637615699674048347973339064603651871518099954612329760642210257944461849832162596110227896940945291107752635026608202522444989002600648246031976820692198579575081123729115929905729016459299585265689319963060069315214610373188170233910215454343826566439017991304606417125124913755441589867560180433514786837293994702790934443458900006452372842141711599906933434105486355856419115914815495397484216446883508195946833809068561995162469656885762457322173260148381117073219953680846316294463151763629609508126167526771028575309035398733571488215602522824272402124525708034570483450524877967395064658715014567478801061413166071804554320160507039829761121574935083138421113638276205821744519018799798345428642834351532155521028245859249491484769368936658552285882022698790959084097419151276365045938891743278289632477635554109926971646321445914249776260443590925466640484635722440318337206075509962350839978373962701722353968223249744352123777147381855921963163913398560383649397555567585100566540517376492963099203943863882275439030608608019350851873890927890143437988076052028134036291963345776248893128417385508775246452615183934532345218848803921599109002813140431326079008713694891633885552170701395429970949030859754927322420752371131571867675827629796219570242401851571345488841529338740436525517124985035171433551060640998172063094865828244971078335841384930412051522615099494596915283444873416022867607336884560685959699735739515243749411353120339990089642721285074380671739732313662455686024543534574370770098557931896877056983915338064662729758851802794884228202262866132206749176053434778866000151797309834063561374469462152211841364093870484501984357660299390507845197418772059227080059483066967075806826423984498875040279112310595031721907824023911876423481974354162891302281689117956531925894811202146199394903943246699432148137193883350731364787946303990470780436380718253050811940574067664431767552638906033625376052393422288750172745646494040850095046274582152346658849551086588219017570485308969682465767317416691064482269886585408171935979311983925775614373695876899093623084304714687748013054321807937945389613379133691525810455383270708071137601267323867228038637146731672135523450551967443406796385625971882905943829633595862523730381406888093617974615519467458261840192296151037212434699999647053461853569041404043739991857797483645603256277049936839493741425466494277979671943141566095757659420315732506072083951316334057699850662130187329641249164213920185707196732076357153758537118774276795607827060597127660922417349517309616555634489455352128582529697213047234134681275054357731351289993445181602257766225883147056958377564079525053973373594076516084121706820833860194124901129787499176004127126417158204227071580014179504331011503984591732696198655845766318586263057313361794993086451456655506520479678088717894079248384745319163519103307375558630133697415925645918731834318657220950514569621809004387273598191161972259749935757607375474822808298457416040692544384997688810576712164899671420156041207590068096315639820370236046139164717959698715320481853231143342433421971729057939584115426483566095763370673952118214221411949132442648925846763916142303717307412645536771443578851615525887713491802556822420314872290189719138926887731609277763308853023738629859579489829760204504201462851775803164896738846802467024155148185308508064862410316673787249395790082806881503009323502667184398214367257295772670628777756093520588400410311121152245904920006415993250278905717780855442183947549864500753856204628203787532371877369960728796963123592185154304376928723641549902993932476984176465089995539675167642664376519524290429655744243216249537426493413861532603283089945557289448570758021760399891572647587806490843886713673988495781867456730267218713838653638484024254465560427108589944807074266494518653215215272418852323849784249313470427074495565321691535909275548994004617180367997411836821233920691554981689882481756757850501263089578371955699570283972996658281129584690825499013004212564058537834545286007502896458772782415670947222931012157492594613472300121443964558517629895212763144782864987912381166556244061945328157807226481828555323021740519448486104403621645158588242046727386865510097784650168042631975068669131277347820926013795352616687097254064822456334346843614803486632884400559995968996125520662776537117887539344674983736635508379490233659054008677281160726943320001802587134376842690417227000156039316179630416184498950976082098751462685100451121996964101262853910110386348805047801792352666756159411632592194740192037465506651916018282973593045712853297402246868580155775636854673540816517219682087138617691412974889289641630120261666484527955507542947920259822751050464873716534686836950745311133232102282938371114901718812404922937908827127345454098685020621540537505655257056629031504660661869870480559012560689710481956809512119353440908353184595208862159216100350483405769401084270992565394921841677889377199106473366186207309753189586225724865826968852186639500616051646238709595311345237801527492275317196788324104882562431579232139107714164900533167759980829386919223256830546525079063428581557481453245059934651988531306638829003360840635090001661065866857775232853734602691698386024550440664261825428668527608073667546096151642149981313499567455600580396330089067333785868134073705215609729709104607762949421997762877572699934713649504826558689845051610655665853653831129567226579032022527062176626004722535826018075349473792045498267697329758587391827264956509581331889580319324992454495098825751753479835235400433475904552395679013652661297885468001555772244228256501294795537184452585734897606526952475815277100630707151052635179420577787915899965099237738821515216174607949263501817963861987286811270257706121797415423363945752141774071523079093720539858790821115283754176120179796866603114211459036710090153692630661180140936831344784282425782347696867744190758233054870042306141935671434183308998395439143098807477036249439882994006944782363624474652836916280323603442279525248466469922497674649482826132883717687083801098750802318711025603581516440248971173066903354301550736616418828970026612861470151151682789644293185696531213598763826010395588942459474834136273410592692833874597740030608199087340648789629275712230488020509075410769793771344342251810519290654273669280994788392277835579786857197807500688380022078851856856647338215801645539806451317910470554853540285774491756069842475386066640464178512812583193428522054435408592161490041132546664756884811053523485905341655395732189401897938898455950840383707691054510023160032211358006330759541598692188997806646141737818820018874987592412545262756529378903311590111453445085203686920783727491547957952356605550851538414967829013834444465556239551746203339062738272817362233928941619222710224705984366786863469900795326404941941977407251149647967280833634688145891093103575994072206953554404513466100684894734076861389236511052221371768726618588484312996237143916212860119649420876582474868103033307400435668787594623066020695968131183670451852567661918858552092402782190950478581802077075704957610579745302136085000623332452449216671948719869743100292022386234598069567239611561365106782161387262752285567887317903986194191656816839245059587754595121593147307397386549759396444116289270489282560206148834226201070533078580901293261313181707821566333266710187050605156196978109800128510563404418470300392417895349131767936218501443165001175633831587842250523638897770878546824588188884522699424899949977408477463522239703050727304348847596249202353729033729086253793904290602013374321845201145753542635634065003717177660530428079023964607236635060303124339410889674054279180982656373333621765125530210047416412285331012810149376015020869463875028630145864190956068987411376550860143894157083060356165397917901569199320403457006197468973931466644686966517193211754160171958502589683696635286131616293597346337624760371381283708625633692481808210575962242935200117828473045980479919531124545227939550391198984895452522683684694289062856131439275185278490755072834115743014306676811155266880240564900136243824763640894156104425777240938338094936866289233202713688191476712578592137067537326468772363606014726849313738064213068305140184506820637668141411937810422897175920400861638234918312326282223104626520689912826910038074765845564050153455153737956867387320673197400810143130022023492839921482285427925762164534548304828629731789026926753918668961306085161886110598494355106578025012644449259492376218345185840010893737897643619130418062103723664330840535569972844133642338054618148320364608844629965986969224253681581464585800931280600706569185035558499933840390988690903227351098507951276410900046185875041752083366187850784634485057911626168184154153429118500988408009750836490174354163392708782556766213642646996372398491310851311442230003154049653091729565465454228980023996071187544174055194928660273406814752063418595290151362474439815739341187044672400638383487451036158723014308564597507906090113583666482893876263159367632854604838932704614702321606583253046877124100357834139445417703283020250762926266095318634084008126886565519602610303248822862057480075883221543672106810379969126589831657622570827160759989765987655881390261260913432163533542538831490634332280891842823339736678610064021752405620826193795461236430314081806408098485376316630642740044837623859174665007578066675759825019030710119204464699580357457334325756896991644669498218987526327404874113218130254520396559770286588501338287164329360219409825508960270226820510647035704112230871232686478009401413387025306695909264980205822738058328458779344851663490998320247140419429220276722312580675201197032305436574338261099875320254714417399603091007829539036306873144011294485820669353967592124183403589875797191515527213309125623205444888219599175793966469275766694496380602158323848865995330447381083184613329770713413204580150283613705834767191130413703859380984154418359197747119561326719846942276621618524945467146146443325471772445645605411691685866354272699319535683082302923352245192759339848432423073257010706896188660266624077205103006847725910464348604521669958765340511549968434822293437342967417404147022315621509835643264573782372925584573144504158264715813749726462982217522728220869318996955949100151473729653499069504257728225167183616304611546088315568522325179060003817136062079639570544591138038976182764633236106131006584622812939355994001005437969618638672149726763878283473769095577396149100257139717678873219545122980269785064993821563610476513729969496733647184858864230372240388961771746599300240257644988453463746859340781849674353471670605729148812420881866945108735095329170259551600166819230786796104722938247899238629486874963805365612064186683759206660109080654509748762298373928902018096070815651029286271486501858937074369425308108052585291914836543929634567080778163837933963494143536297367372048678423959833238444792484648345682871109958926350427606803088872888743518084615041822525501462729744274014499021767678804247862829991859767160726122701738531582451661521486004301694854386312048796665771302793946006240700132674069111477080891611261421367333912539127050676421122216086468846142205259355779962345319372489353366229189131834097229551436800415893355682756487395221146346449112136664131567890537849809912326703959876949153525882341326948624969064265242407765850989491183957100601118962610628330956557521735137954236409219707847972929266335933917401759712637436650685759765476346701256235469998234033210170074564041211110792259763778544263080112000989678388030969252703011309947751849947216942182435285817486519916883957498690888640600596881348731936866643890728457353737512948932603803127939048052577023421832628623512873916171160414761738404502759123638461561993665103328428346157200689886580142461213785204025881854934759321364996794726430214560314967947766457105808814600917963803357175568435539054430936067862847648005416120778707564579895985997573722458499224889115684098300145477426438820389215890539175574423242616573813420993588658214069483740269316636104428133806788438720210204409831656720858295922458317211686588394130212913263262237035779551137052135124815053731867927390123459499790192163638615170417570693665961353891997705160126193781711037091849185744551870086987766402328408640133032157600997237915685385137576787731168208043393400914116108568296474437618350246696823080006322055221576352722906466767534896962116106205178151464416854435328156025418570620624116237775952000551866017359708319256684535389570879123609286973167296572473727037911558924901724795130571163593669502120000217515973023345756652450021593355240543681407526223954795566416787382289901136514190896609420609421502065022487351877386172589784416657935654847124483598739304834694893584596493192278546339496982264247829005979536558519396411509323295682362038557490918991992824863691187565125419148402997146407641427446648694960942063496393243806402589231813653304504019484202196230128315962997252030583904011762748518067829232849122021663871135162032995976763759953780837597231176312782769471134213939593736547930093608124652546846214213527283979401999688553394549362992031382553182977852637560156938517599311697701746148253429124116637875488034628017719572036717008413418525604926259889412089931680208912788251795167892018900911058781134766695736672905233784477889582675798235785308146243126957163156853423640198032780620138713794717627181426241038751719496153833609701812026589252070888967136462266130298256761023060317248081617958133820889524735710144838121446916969754488626284045068436869420784296202385290106480415890431153728629712430050444305090626959951176019592489509875712345317897527514328701896858943495187699606623108832119001367725963040550878289618669255232758680878540379737343319086642615389955891289436548985825168621441057971562014126115124623785880305740769187734281052792517187636181336037138562488681094906237405467867026474506368430029014728006610305032798055394091090137782673541730822516633869652590257212701068877885552866615365448755097396663790569405042552596884099390889968298432970126274788299234607793153102708661421154813489733089027345471844098439489815216355401096606551411060341187800209803093877065740179773183144020391763148227851133199562725501027453336435809946342877604654869215985893446569732942677748789100359413644358718661212353455449253697231074576885592609828568998053449920973288285632564235722113888282858421266472654549077898149772908629862430112659124459357248435942885663936880116324388391801056007605873144824887494860966907195310790633566356821184908108197047172515275111798776166719102444598404490879266313902762561252686313772837715646776629416961048018422729946706177152545441844609700278884838186440539492974445835631780100130005659106379428323461709471011181475731982741719818127240309890462816088913919095913046080325193746943130823225720470530363020538685983887155764592908229380473860363267229180461791498752833371205920178309475311630957179452658043519471274201955373062799182794121152486575566652669873788235304980601054459501277851788755050283126168142791145900295708635555301525250456969033483166761943004023566428473188341391670383459419571777872019456454420390542241034358133504883041645476578580007335797055812858902900114966322191283178070095425294555087344387826375634750571538413716822330603666403775713033427964487710143680222971384882927859872003050368599749550972332744816897789435042055420216409265747998763392807635877919537709353576009333601296855790178348170849590693868230642092846473023904024332999562066599485374619948106321243660905998325634890227329244554986299920080447880256999665311507116664219641415631784780821622974361040192925314907343333400880872593037315125143000459497127563603186965386244002439356676746647759370312868189664753016332735113778584968923999413017770258063665463784532233542844117969214151821469871993734170135454061118131099160460863234271219179770412652773870924579825261505132787607745466169012139269055456665666036058326540190961885252862470491416961638721271308056253369516797505349428265532312426536927912296125407337848898498479027496672822361401496629883715088911729379145057200647891612930744632161666682489557301456015330456292909892311332850004335677253445782997137756736729341014626042284522476256520560485970565083993290228843370859850467315254128529671936874643797162462720799164834380215187720390750936846674254899638691555897825208466305355942334403694632536150401074772747471870093542832934187286098992233342452482036314907447023443968056672931474409711202152647882314479694425055029349546905950499498358738042381111727282932046394135556782437383452484945470709384284941445697184088907166831149428460539764682846884630579960654504548395560752839776917615355445131036441142388697857195158924573812004591193606191315041395527957912234146384982987912618942927970038461852275155867061123010249207594919578579809540351872968900215526457088872987997866713467645184621093101017471331531317934254335687264468907988289597583941908391730342216350369223191069963935437193990411676379098741033603433224134704663971047925566725056357311387842657135271153029617674920438531788174884617928675394713514929528045251534946680247798089942932253395954320019860340853614043046316910022019939205414726267740200453266194126375103559782283591483140492630347042545587301035048136246769952401533331057173565020247163267390914855424101769042931729658911522835697422498980933041336716035329819536693605993799433827314717244416182391326244477670412372049164613340389229122491391959938487985491588611225779486611387998752090472557918981923528994466636034989412163444067594156062374135933151102614416001741581747780666608713461348958817515872007919724793266073134200262886307979138902106795175591442312677129902824685162630762317795400910358617872103302878399838944130404110414215438492378350846089561625881038142281868806435675440337403259159515275109549747460217755752088310715715338342037574538465650873099570593361683193113017509563846317907712275739060176884324343245998536593922461419199379839167728453590057354201322086714748795262408627687617489678683442293547180293168625058792781690451755664753844768589004538151535902282317921848782654776352211947831942252079628842780375773528324858992111912362548703206575293777244659150898865855148159884812328410854918265139693578162406996318091160948219709517954470920105147593202967191921693178853662868480210804030082726533457963324470397876526790192912187270057285461185805007919478491758728661204986766393777009945381385423359165546399310878409393526722737136498949867950933339337788745974341287163271688374808664476102412910792967612637383181372156085050322717101452828011986563479849980125570545091955956238901199095929724575459855636528181390769165509620301050669861127928628418616873373152237899732665886765275117666868503347267786509873411978878463400647685971665046768383075900115732583217436091354138398042054686065879003730093703177332522270509030441325711710543495390592254571324626316034307502518545120054797114597138236362083791685405317821355808568749363187975391749284427529623202385189556016102710496220792581615293907112013634944058245394660600220232386473235339629647414973866823650718151526728121359997099126889393882629062372187481840551474557496001000378422405014075527508798468741762865375814496249094164814503677292713833677975149634617284485712800160500298750888743909955250206182679726979946798774977082705763573507805760077327245122901767758672420171017884585546882390832335200228004970913146305550459998435177910422132309151930121405886813091593007393767018314159983241928989771322094957647675345581465608743825835529899862749927891728243035574736626798265107014062012187634929523601815513994895141129418854971098909094285838630139905216784412076544020213628332288243564161318254327057102647892391108506627971530058634427503791161140046556326685271229050592694810879553631459283171013237576792342081767673262732629732642617891921985155023229579228411085204854227591776205289203793578703636444984167441041154173376544027377777879312905053342423239283195870574383499690090941777052385849518996309681295364020708263777030012689476527403465099190921703100950593516077559409448182353351592476229393081330324094292871780249713937587819526235486623597049666001965954304249886974839660742166099404679413962801637694763544118424992529546537021295298015029128228530412173620708752062035873465485307721072986046700650080045828991672309368988281899093378964516929882570354765577401698930335904618586391687611087563329114250925116048125289564147710911710611216988200698414608299784371524421303579015479819528836545118066554628156264360460086734723305633522722822553436669732134455273915625563033231874510081479795761820809203378474597277830910149395131401033595716799890828092534508389227060099823058965078189565917190342232928529265250428747424930270820060932596602699636928474383410627942618119870151960932707680439109287309346994664011826796131828970371579731625925630771335938356568285805693890773764993997323642846546346690211443564922632942414487260127566003745804149246238158747057150135450712648493428395625221350308259323478297218367612233170179827318553757255313013872655302741202087382699835902097257286958818184420161213109022263083327340037093929025422458097617788598646321175896970458359426805556916031277573380486546891907982429800952887895920509798231387385752721446601061277978341568720892401394724188442608171394815139926938844487052267327045445854745112487251362117768422365628947236324483760798069361795438168819276749615430791857721133924331391194995412393119494750542459524062217971521080046605095742599685181643096066089760176361160583024778341475049828008487949443635939333423747592909186836056603478353944311462764486610558806892617304316949566249620173615456517903419317532648834188937384947872047835959330758811714106754847211203882258469790605191420790235968353285997469155105203558363169583484360997575260813621083521587931979986253505603408394417782622659136807305787461678938652241687403886491622198582957901691266188073541064759538574632787292455469231525977741273445708389073125194272151925076611266020629162671947741185565845405826784452883066430715125845944205670846005317051140444148671534326819785799020785755885418700588161366430912183417510536781162175400273389975777659561676691375587777704923627151491599348114974402509901015252357579684162740581405643410889441242982533895169759554235721341926380764557678998789260804655848693079995593284741867344052722356201760250845013565478720500345583851833405173522769366527456360496793213942640061432936132346014555360252897291246205950658651866238256675605016299548541211025526975077722816764237885773420782550784522095101394101568768036468702207603107352639768505379369465425030616209102704276148466231612308404545227808690510977825997540025620889805089922467676864048745766305315839034412442472912055371726618649520671587600237277066361992910336053339104742076145768520595025007691804817624845994764018747117926459952510166442117250689490551363005443902235645274401916023028945809181836454242998942770819779540387242766195464084471016841288843820988720177062961594249785098547857251601489115928989960249324261786595463109948163184477290432319959899015827192981020978339920961130780249318796946564245240692481365660321947288571426641376900103079159192476936098964127383561660413849954978094086890205953120261263448808666024832393725009144553292119649014838413820656508673158944527173626425109338216637932252477850074064774655221360464998351567985621069680949732501611619243312678720889443256864619248791209877448702732343694885375972611967562848608760243889073849573734302463015596100297640594244202177483401237021486276937704794878670357119635842618541938903340047473911008767327432169056118404504774440528854508794069719313842399516386162767291689859076912165726893061905780535884421295693300979895277441108018108377173062080415465795836563441129567973980085591334423445902288259173548393018663377206519760580631805154174696753299611569142748564440560419006154389517998951147925245126794998375703205910651674273010867271301776471195997944387619094838387082985537957106178859630686010389362168168632566183193919807513775536791566007404026227270306490534017289329846328361622772915660964518761472518010457617747619075662706360802628220281650220641924859643894917573074755383223088332652950106377414467916501871553270168008246652643272253675090301145761515002289302116486624594533718377172759910204972809100103442468006534865900857281090255183688339563205148943401628061380005466860032426891836489734878662929234761166423064320475073847819725104139118518654113041703630785935226918757816956655370465022925559293869480991402889498132044470897206472646250534831086401918759667883535644760534551985897748471103227197377529653975071355723793411149373486013975351264733246537622525263897041912351686995906600700080810885140592652906654945872238297444687349986491138251815240432226190105331243008626482041430271909233778861011984023316543034107982491345600663436620717022549935855719217123141445139851722604820825546327482058126447364436838238863634140022944315907828969145638818312459172898667271836732789535475032864337910200325299571615486910823235789313376796623144564066991081474179343614738081507637357695723791891732689840043934542161271083245213646403361198310841441941388196971463022020067607759881843682979030155003498024376496520557182236417335202806941746673145334383134743746658242547973655470203142346048133201231060684239278742795623747506938595550366307881274181203790172407359475575831922027507227179959336151436683517390082021079144877483939947450422701498927117692346029447406023470433506018291467769371921431019718779413917262113415140513960987601990092733281825526562230668668519894747613718023852112531418837463064416050560725057246592953086346424543132237508776306501518818847538609197968027396114031656573891167034625311427600108548237621701572170819635397490987988325498658703920677060902589994182298338591030996009591836002042935271548253254311137329682520652183103885660423881006371740767603910327139864286742809261966919518814417512116306311702591481448852894823858723046586883361367625138827813088337676865558456496653389524697677756405897466032627412685918183893039667260259800183366542661451045841754446753074937322054562266495969979874228486026812987004114595630747251067745971062249820468840771652961594085119495198216694133125327040457415702736174976231698431205566929752203297878503107862454516964643239354385872322493174438802112240415147918145691674706837924687680730923684233882017910885970407940347985346310521752534038713811406206719428432508135362402246744422171788304289322743876132432913388343953918762599572856452080106644939814761753846490703719461565282708412801099459959775464685431538005000900414460252027630089283166632103699836276577286230028366228755255072124863654588485549812689132308963321771375601898907522819958263668490294100589119654234619739319119169722508150941016896922966243449858908831483524020526711618310832975323060355196452481975479187032664544462468145462636353359814801360793173621216623116987987330371112730672625987999903362517698895482985274819571302101613035972228535149696836158385984466740196669135064121240671148406502977456359899004521404734304243415024404681402463799924376508996953501116885620763022732553400074257690824121961470704103114484435326059071273302461438318536030632128658326331545292646663435875418186305097255412696843284515961691853915196673615951184292513707374663162576149584959332826341752133585771380138495247213984463125274919165808836515781052200636679595740772669459087170156006893272895081631678586599889747443043603300031494604934056839429596811733554045680875882805176792280706048874481399627384341697358888600636720534948193200870657552175748799180071242061144768090030646417988060693838677358804305431395551240921304754312668988312853646943135374645324511460822161849773127985968082567877924812938596798098279990298098264125153577827575795214801749583934744902358185083855385545284467110091457214936630692408839750441736400692778683974701347476273017199326196450059920953874838242374075365089978582567865366480939360266534027497542058650345979097549243167662372006754387235412519163279369981720246054300924043494305960514675693017346610655541793334887482728363792799962300620396881606473777148189905417200830420816648949582190578489671148810143993004098606850057490088702211109161561845932815757800994929469331044393623712693003684692634033190658657965451416786946247671175600604000778906753667900632520175358022801111833748304220905650074955222763506587427787512796513800736787980991187821700636723679780471675002201049607917147123883138750773531221310987765465168050824490255670496801990116037944438028642369734139771615998668637042425360204697156328108112226949619081060033622694295609941549860699574191421082333384908279010931572784145713017164064146476927780030591677616102189970740490225136081015432661344890617305863297757322244076040306762790882117943773093721877161801857317261468755618475691387065004385817140211023980524643446223023025712712671091766127150817297051439079913995925837842014669326061456446252607845958387331068136829193597287699058702224660405392524756397473466752371296437682611522722599139086041823944366995855895049479635210130557965207833588313206556102401280381049912037733035000482094570229972124062004872487209025472039635160079490478110492968921892099399427796259220221592817293341605375774441085539009966025953294751421815957229902430911598730740317663228008915967765004814320903454386373732574390591476086196282087493209401139023837940094480633177584160078769046727763433050931107242111327855225679756862011655045346821140249268097127112637693477854615774905940143987958907554616487619755263619064415862460321091412274159795182941399419571255384577479691987406185856926687542815385202992820059058672703535890533109291358082873626615499856720511938136263279371771695678906415895081621621013129096184572178056753651226398172317896762345109755726996658353655331980163082552176845419923783476999237401593809535724623282450871584660804920316351662302242642324275171641615216846193873084778107921920296571656277270691361122906631680932037948296292729146970733065680662638828195118959147132362384654956675421216750340221455696916271484545216543596562729695446608494613835841809398825853205723761344456805054313129136055182542018550459195432267618160426057680580662885681970125746673543029649122263249299483557785549041772471128301174302682606372148797008060216883255701854449595955551410660952020274250504906174044396270998285285907561410690157080852123650481808281249997464427196640304090475128617501637320564816619322911540437567812679644887547196254124389913163479193943366775641861780036477057807667671385780604505657096006470468855830262195765906863882418374805947107513691256829983984382491087467710049169411239705763026529627429417876601081503318191730944555482402044341685158616727260120466218220443734808889801374022385796635707644760202199836034341084053428896387255363675404350199881213707287613779278801968536368868438075478191695104451771092239301214792320981634468463544126939426507326693498844869635570887530083995277355376833317751826232959844169926368236540700820463451876600756536748431825404649113050102123751668449142701315821644858122043942586002048585757986726412324413381871200469475037222120421289319439529460161825169997466117601489082636718147447963548573081640185066343545755904800204848842517211833762394320036052141016339721171709736280322661294858246530003156962472294958744844744045846808538879124103642282502479342820122183557672400375559749388813056796346895996416014853835301837553365228190016770634518323146399790208939428718978470340943861275849096810719535076295146359338149251274153543493731540971547503813373553639932378903808480974475937445424885031169376505573602756777271789165453015496102484731771449373594137183962879382859786728186768958285079090466866112445159082343197479436078498170791482326846785279357248680826067825103593912816956244022780662714944324108696457335456000641428084063031810747215699874189296883662793344840454495983173606738091363225699838797968731349952552297319572640058409375005742891180658016471015043000773994269564596859189321027794629826218517288432975939605118682310041789471264372007539719068714821474229783983576738038155868762431462838338825349274835965594207664662892401228564684073540525001695299511735534146740635348468821918247602540954606530608954893834090862134355592985363127630404901945473698211045867387141104273834428965179042451397896290415980486708687424356329620620503692212268547869340171454668967515004201380066556990025088781966082399870909912318204730447583951292196246445214139087742149666374941218875874745994056749825149715585134104054449366756033272309767346104954151442244290141928691839642795329151470468618145407093089483153265825383727953763339684010260592140189625081309701970694503341709877050200358659643213296059378060361397305325403511478856526181320043052285972534906889782324623217815179628661973354631317866258305358708549508991315521004566032890464795133787352363802755809043925812687549361192621538531586198708699936579474350713069527884975079810030920867894804431586845822244542015454326713899356888108814717728498214470177263295771263809540953732816622679124575804988404863930599885152220754821621925779679180582956740863108565175417137571989837294163464600553858798497495544719554510631713471406547121212887957222239240416711482662666280655082277491418069932975997322264129834153286105150016324955177834458641883114975254391507463576200384175810016428613883351919613623034579533118590824482495680477470040755785163100329204983280117155136151960936608778477125403676601294878616475205096361764316667606493330801435060878341918463895874123435177074603478336558469960437036478662987716247521528942642991660746309728152281390388966269394493169861160266156850019100438757127683263924567142472550470086493670569061820864827865657190759331687755952285436382034382654534148625805992297812762936336603698010695964125147890707927819440664681362159645451345509445327664350345320522857164582020674880471976099570434107761916091850362151665711972729311861613663424595503061098279270431081477628638241338518847219040307350446978598289347270442128985818825512941522033680331043353559739102646678261700337234837419377306379559942737239313502155173222916242466869278277032852659913272807791656253257324951219702520564924644174692462906172529239008602413144684411612808710228882234409995201684993868654438719101780498078783324431008633703646798365448707878606572893971252600994188018417825614010106677177651532532164517572296457232327725161070083010154803065030349469187868024330996400460501134090647301492701981293954780090774129161174763627712267135615324748875944370303398781795449483177490258632260142370988448486406782762865953595850207827859328295514048320773896792292081610975631121480815487881178566688124562881392773952284277671692339719207877798293740606903528253263864300040733137433493745720123728172127821994108496714395968441019135125144169919455582382648505152450241629811999742031877629272821887309273222555505790481242053846032669913563819902384754319842632173734301200085931256687249498114313282776043143314888194210191832021520612891647834024636404222063973430979086952045564138871216778811388022078393753711360038051277907176674709370339589587085775585624933002157659054067369825412493557974469183163269009311070984028865841737157886416791989201511137346983295894567269710201187488730255054938653705058723071984069924119751081357274021177633241356937993601024277751482080741450013192319732722847295080958772542565073462414022993429139767532830690924010813221095210758651110589993659665361579754982419372041657750124585264528537247897631981605215903429507065332106229005578521121809378509806680480910810324715235277156988807949069532744772584863656986907833363409256620164758293388931763839688437343290487885005078143278601034106792882398892444859086131801181032242010075133302005377875431822948486049442104985761371559367554918623924809078578397913844325050763419490388606936919745151763861293685009148453051457861801853791114349943791842205452985569974323285286958991660774687133584450386521315554399366735504702449433731442639108674954076954426408299645868055149289796049146541887141976853041164853850947340825023623156612077032900779355172798435805269506417522071705195599004881691185646635486796310517733352357279569240755558935942324770179933552890095539815101336341872150213564067810098457672150190312921070745158929603674307398449932843934316831116141053260074283070721665844781955363903508833691617535028555214460007844993857050126083830505649860401176470925579645665077719322438023204361367329375161411358019515227057403282379466923722845889263037092227968334781399603877234074766130831793814109372841860410502636501171086864958489988218499304945619063847819903671029437310985737732265146917539246986039845826871375753249180969320505312171137278311676983857085790569713080350960042282333454583202835878097533472501041098171355177592677036592534303971084208884073823581631562158875407597820526502467776712331741910801556817046756780816831484919496271648882028695895988230340792760076747575909242398250474328575040798041576782453511584553319428888950482856868418126372519049966927875274932152228170683613554302166836323776853882090455733693745978171310783222702701055926089172524561816412743365401530909966452262473774489155330178329851966784814954807086019171835051591487915066099116571020093126791312064843806888804414956574774417572208458476230256935577700013416974021146407822787264905560046049100309346034230655991252598214087104632723811632797649125543999771751388784092566701371124928280911079872027021421644111332881688810903806523961545835677410386741843976023959371800224433599967821423931948445776649808794143429406305272808006488022426804296015609624819601513436775813138377000070172870897644154746028340453661064672623816309715336291627725153323566335825699522863762578932921911585950771692599278401805672902000092448722951085607898957013842135000595907680939351249696410216667600433443344037487362091154042582941217450504483085965113975263687585848795538185872488480804075187454476837729306979765068249281452771945418434976659782132013838714258671600756890357545411315777274679464050162159221768414689081712620538442951027603942652905990583637148346561196754709930676777848543248194530486645939049585169255841798628950599239165439508217169867753820073525097201943204985680025848309869342445306631760076754303062016461709775224735130358672881521064373268195876646614675707079840045821166313214512008374997180374383412923392016346086803764106712249582230078205145786605316858645853005744987513315669572246557056461272173786964274137424477125130178896239837938236530016899176618334422058498616575288033889988888202370016253998994825023798261464766002499459427327600881443515568007357590795017822236820326751398608186467266328211726223168594736637809249339395921163931151833915888682153837205537583359774849086853511744532931472886253479906558557967233436192892179684270914480170046915485922943162364902994253243981279549059619621154698492105896893057184622536847426405639788396822141433592404716244436984576694279902475711033950010677677400345360062912271050344073777132884187315004314849795078303980714194198622332868735398037414395328501439036579326052103623982927153371978013844639759790517277078721382056149979345826493525679727119358915090525382124610395720951548915851446700612571061360387876824457103272507974353693733687945258025597843967693387836735284008490457311541470661051143433553357249128483917582591436894998708278333431809014405558709608478721752841480622794881181246341668769720319419493545301489171888299467235052080906941396877248069464024895920001970289649803551929222331170936409481800665181398519609825748038967308265784784547566178748711957343622953673254035991087251158026846150903929273481907481714481442719134148156903145268812990370601188438464864266117230628897774272868290582101581044807583882709956746090449350061211307705417612594108995634163331865672183855169752989194193057156983553243443041072600638969711693084052585467322458357337730234382312182324701248728637315924287172676896776817036540741347006657455275541148164604823220862025697599738592265607279786142257042500512293483093705757560664411340626153570115067254040217091127964895171526996252040206112647296559121807758452937144982309569345962602961832662382031420814027125166648022520578899487705515805013322473454978713263581601240567286633360800239778867525576867472528207293550795321878734889762497772175850546579404220203135725105898113655412046271127594236397381658062788893355050412099337454360136839220496669712184301708896216379452504583816950396280155063315962323596373467437410318941755785235282486227476280295648314463621997108026490581121756429690711168480894074032073618124533434849522445443570674290004962086607627253808548638790209483723331633573735381441797221684828980476858718667929218451742952995256696220354287763452361982401590918671063187656422395122120826385107976457913291449033901984677156499509059510831249529570642161439624459365996315869968298135253355189072506993149492961162036815860733403895048674703880462846003652285305725214740037006311691113520036425323917688470370570001677914430848383868497565634590716311533284143432359735595757910040301598486043542607091291322788412252119767810309055085529936189738123184397383357614226560699387862341921714846645309971839725147392094374699034044825114188460868304456074054081036989840481099258490209439158535971204582829026521799444718858164342056439031822847539339156283769685896815825790362384624582929909783552916039609177304696007588594825269295335699371290856206988297801920722709467127388769384597493948158994720221246425616394169322495312774510664194490165230003629950830302240731898669122383985727009749940918984026689834051988962681786490921080419611933001922520009038270116498588458309283680971788176279928583050364424803756817892732685590848797869243973708789262533918918137293128581822557218586390662353264590296529259802644572746587513213428101172036275346269730875477602375281123549427742115452846715482945870274498073467349256279124752162579686644121083682950675413711045053737259525828800441326878884205822184402701154877354614483008186457380405854944487119636893606267090298531112408199041706263360775190678090707246508104049389175904604955691129013765795463928329528155624965550423722572374637845227772574232494634876523433471947110635023964951332529710285379590150173009654894352700801956425736326899098468194197773701031148345176873438046797179975803604747879762384010383086152931271811382848861968055813553748521080115446946015314938613448425347472269005501588525254480170005972903557103442628888295259564756481263507862229124645866501904726697376575370347917263337884018009887169169225228614516613298490267461900707691538129249108724250416880398476665467307044905964204917355456273230829906746875314587047765890366550603633123025931507885001204496214761229211664856164261264343032310495191718169811684627059904022468368140849091985907466730389767876877731827319070862677325829823404434748673715011913307223642989765015692460997193833055244605850084858342265347425379816920993213363761495769592368103653504026495708537514604954609819851288089666903799484884478464756783769867430952618657944501876410649881049228133808414081393676507603646271963376930884101667043016302732243094685347706398683974552077181693342611470197580185993062532482298141411612916036732862900541457835566200110031853692905962346559681918653975748645483692031075266572001248109392713107054867012817156500153536890349577738700075589767231631258721831046906465932016205738187472518067533328641357084591232391309442843832344987515388624105455460512890296790511229161659269042774836798141531565797151655261449286332265112259455577900148307773415300071143817574782078341966891770017648814794537022132214276382420277817787616790300496216576302151522618345600161922440022199841965091785001878823666732922149239814696960665463508189819896673789856585508226314667451576102267425391161231346821465668055250111386698006284241703135188298542764562036396170239878300223491371347398243705196655537378594445314730855226637853266819267081856156262293638745945841090537908268837808427960829079211730172289905156987614862589644588830236540966062789877784688480909444296794257104020521504026716973984398356064075627157755420051856151028572020652128457785199819487863250583115050511627748631099705803416565040681678415373568871975727535433279547042426363064861302918128426484277188955054731407015035348111924558326804566815569693609437574763330872657515854503673386465052963056222543642616479121244262215494919414934411554850301551430532863800340344880911024915850267673142360842113812396410347718240070605913786045481880196787029033212914534657402906648621331105376126721353872596331479344071629118390299227777931934002525839966325997145965886698661048589643175782892325133694063685697189393088426191836174110258086393850766358174367956210255750630396273101026680869842621725036234558862281717324456668730563376687728115231008805095718234334105374272960380634348442399631749007062135120623334682018329387251414272173391516587466670079528784708236956073160237782545388959566463198679875654402783502290278595875011294449474517796166708536429978964086071180990637628632084292159869054921008478005992282546988246389564214995707076667694507907530397452594416372847164872684578418597181665887937991642367981308851010243073262582760246976260188669676072305684153016508014599914868489075815833597316811386002875928656951782257815439109144094580736748720574503691197808876558493272432976822153532524163197322787397707439589044274870492530104156324310316225888245282695970833309614663628379622534715012537997544820233524779643908286586536022316930136263751166640631828177673774915582223797222968697246794726638580949660299121813744552019384406898013435682884072448689217032521826736542492291889981455943551605735521074977214117962869932902762736689621404457435653335188549566149407566651242119769272998949368861826437604258850793506148543540660540436158508998112308443184998747590186080207190646941003697165032188882342539315711967489738405442371011340601518792932533188110269665633561263876946591337856363363616560958987587776607096703441389506531651635251802337527211909769000587234357230562616974014601231107124597835099094369752483116261896274392862638245184104422199116554911198853325982871398019781900687622534773437318062789715751191067164379674880893947117020812384290496426177279626268632773256872501963729875425419169080962163794474304983050420106010797188860782304284703825599164849029049444331039570231311576894229253454106671419298365731393275280840050555974776237075851328721296022245704345136949533412687542437692084300760468623483906500355675733595627547865215419726655973378582536104605635522658699661429315143696370332260859497691741583562161248593876748190977978467072840772541630985662383347260312777234681251973607396612176374584008793700415624556243346659497759454888326377396280638611659300974951813452368545262860119373179640939438691828235111551376924144955078407291047771690095616469704204831330271474835237941989939102371629713556601310547694083113781753860884988968403605625749676599865950676571163318170246352513687884807643605414021774813471828482797465473485754040935355439315545393669505766271201548030627626769750484933213630869468716563920732735556667627650820082207901765719028975520353177995215835575494677991456394649792194766790349291351311493258276557892094985638725108107023916992981332260033798467721061743518350211334821821050245493510269571497802707471156441085312440615061819781398477023708700533304249598819715794799641238222971368282747543050174027967391025886401220536931729021422901706755905671970208821188238843968877638489252880598702735766436398646369155869074545018956779664944242037281232514548892930829235800097875655000137703073623491751421449896927909028488919071114611817535533336308372682740752654196487014252811955756201638100577796709452939560640898985080276712955913184261979625963793454726008317217092675396823550877407365160335819435065640728721868821884528561611506840098953827904007307712140964610957855503381230201466605017031260961865210717441077311219022077649295232606231970329465832214826160872252971889243569966698616595535162725393815416291657150095966282764932458416340280923186838244940363096261283742762628786867831210404771038405721705381624161814212434884140167815226382873475429039103500867616420532963612016477783683337752272489364514720864972845399399930634198591589755451158589453604067623679474750172456456355089232669742777981138667017803328017472399356764526920331288802039177818104343652840964509174146741707158265639981999478405125326758557937614616085732976887125304454759294969299182675767712947773789037046140910861257592448465746659847081279600972303410078320686455812143826286328869334445612904684617013816082277169533679696688893567586499031885659512345621974454067691658739859535230460451595359354958231840419892986643596988855434351521919917505420638516816024482494477126311904071162567973808629680088111103393187563366507681893369013883360934705574398528887770976143461689624521760076673823151912056505543440509522062576340657650130891973061421523756914820063276584777723627859958748398034975310145258924385359326535252004251456729654837085192124981812569307851978828619960639773267385681932555879825249764569068998176724187616620564741943067012806384689904330511243415758218108724176397701899309816720088439585607954869886654647074032931235154543771527340086298264053168553946345699122264347169963010033188037365987054710206904807376708213271795407063736256252670585238627969731172471059206451911268030958680638868000482486049517492338350470727132130725659459164847398814412675479319409692038920725312569819982095586259055589139072130192802868277480785434852479052613574941127122634371284573543202012802492685112157902363700276286119823410280714389006261465857008321706793926256831061679903428547858281863742349105522172542548097043306378250502541145091298871564689834943135456986948109333541044587233009049475325484506888691775643475816014110027873303652476264595351313487733072217533376371436194718094380144074401909131814837341010192032730622197126162268918260158074842624660578487996134489569719413587940289007993080064149558602664598205419684428882670243546847341416736503257148543974350221898652424204920813234536708268864335204382950610068594854027133813966079681955279055924118158185736593240754098227181501674982786792405477836693840497841320339529221014942567005580591423132737712692426184719276259792749385029505107926576698685601440627037460630358936686695777759764246839676523453106422211854596374715052278404353109871111192780619078856460770303417511037547971025107115844384826438525155581296369931272878599933519592937098839781742544357571216557990751704667729090515775194356803296857295698157301379047902115238761217223603564407252943169100196967529951460884060581371881992469963897362339304883033450670814621893230978424415556590736284299998901835547491976214636361999870121742508001773743656035869307613499942036117713083262870931556006551730810286296934839134432310027369641680584854729040364458174816891882954283719355669335945608555260971308484632002422676008117495256540888588237009808588916941339424368620328211137811218255314618847973197973541168564954795232657283351542071019113259818987777385191439204464262383279062494573622384315110973781850950529161179755940974430292408548505197848420765086855493976677571841832961042495248664304280790735444083522301148209452128912182378489109809811342317027505009604411115779468233681718680899111254222716951915342833887537995031095624228143537241301314938548184978964643938897996641141647320545721860445269052072471758872042390120923512235140957642213975444677745786214602374521147428087364139298188633008566407518902210990941290495317227585206327330960144585783281068891865045510497674408815975641965394279994528561423701233099293525835734299112294370336212499244645535507925686258399644791225971917218832000418089076440572423675281183725552644236725895605012992502068333380470435644649223986187090447607078467561685097955218140646353714885827876917695075761995167902495150939650961217997534872021517484612975581096317304793632992251222522421122917610800935371010003261718511545269881890891386446842902476720482881355988626589481930133042864240256084160766865013974158773307507600725218053878286918434202906501484675077948668296277135075605459368934440446683744793564616519535549907481701096897029023756962299655250620834402973416668717208217739251970228929747606467322278809997818887041813114212765273943135519755492787983670190014985428228747333952029611878256500411467161785756138145116487422033374929383151469493143246613172962354092057667302861114732573809829287724982524908730754157345482081693616908394935609306593639920473646562154531043646597910350244386395586462289899885249131959073744259807558554042280316274566749662353677495077788221543404677778324964135825559136123022464377682186438496843943210631430921842067583724054594999665465810195846685906536429790964523772058898601138974865061023715217781340200168848917762013466546684257546328974694050530773779424463516168115788351813617957418170023223071816048783620309911783268976645738973471083916726179419752470102364266188683617732136131720449106523145246860200146601625126011396705957404737180129980737456437444313072077258592214688201196939358619473749115577821622901321085968480365620086134600863229462429180029050703657003215756988271740187955947792306035471660459019519563155226534922776238955274298036852096527415863794953735933321247472569684517790410077781125840221567076833237091018298773946561829030970111085356059175625005742872450745721010854234088227886952884693059157537938524165979121152348228356810024921318838603636519330902590841446487695345258810560080991156620731011745561551821639928704213334705484530928218033624529664666154287287311071745498548127774180892972958099195756924949350529276026125689651430103028687683878773569346471077321603658288710147759355743401278969977739694177360995113835242281566072827207480648742526900560159731971636551930264817521477677007885225704855374132464038083273248673534965912742568815514553628608021696842317708157986100500363955234072336833620660795069792321186397603018719974401341908281620815469361374343552322035561552941430986695780197793062830887842766570271797932392507422509122445600592419327953426802728785117024433157808796721190778733211365141788228418810375458905454631758940445390156585977408622948229878746262006495321149189566977201323303891151355786474481579094548598691704698919110223777268307889734616323747822383428681947777761123755477673284982734004088935316229310758402401043095520631949845310562220863733514232729103752760001123569750500705958301413853769574306271778725408535590342514625317684703094688947883414955122788118749253644591554618753444661941269913442622366131114468993538282270194063517167875649252748995443227109126866305766763939460113741249331022821385496457761433821948261645242810364855003523451753258833874762165609405834979244964122535516192244280978524099356784051908283300453232350189538324160302570019625438423785893728657219581326163246088249210914078042252716363768995893999819531381972123603321039743891980659888202829399937601795502577617977883236158017596300065477593098356448217573704241151108333831923556070235876557953629091264188327996259201070368247543250531805191967529429242986591041466168622295232789331684865895968481877871105110761140432246675556664675271393986649851521652177197247208795885964537503198557381026577369627643397662084138378748803922152280587592918451622602582800819700530719738778496529178148449751826911545683601216373245796599031926669716125453570596229496290820174903380621510263130537879386275053138068794940650879778637985766611330997304318606294841661972337879615075678716594787423450145400315416034627271216836443502662637460947790434334969473284770960102645896356905189443502162543253481416383375553151098906625934161973516629936877057397459079098568357790512033223875478294125671915846516192698034333238128874346156389698305891607550542991476241531787279625835814413552982152452572883462570105096842625645713020496813903689012706570744792884611197038801146982139671782009418836965489688158751163502799953006002121876288668719284355310090849859294889434488377421858204823816238893397990995902989202532251761245787278436623762972733324741697897084224860837223010828101437659528030718437875735109812619395434281406829567002594414228666395578431339540730244413742123138179741561947790314454129657004434721572939366145124616686978367915356897372883859846853050496461974155945531951156167497468435015011110584382944664480778301271962200597214433831575929279678008117955029001352845144843786997528240225322654796619523059793014835436392375527814746287603129252796371898036760238461988560062096837018813072938513958182917267999024780586341007281214009805761094113452403365578383040112537635429519513968590690267817655282012371807194873503298381848922780370447879098122693385516164678841944427611987213019324634703809773717999945438329956429209182359504486699261060189249261327816594562447690197810460309957877624760346086697298996580491042819894527842094608479479608046217491724145328096308784677608473723913756469844803556707288706905929678862874774964916223584536602018430953745556360192405869401668557202721750644073457693691642853779518982165375309251457557416216433389394967327913215411132395058241569244165225474376931541385665160408753841322332530190352182661289548249284236777077241361782792419150937226431938308412003113050124358983843443758807959054701065885823736185839714188230145257815909102526097907859578982263812037188781676812448512185412725558382625749958167049167779513783961509675115009839310117337074435043903061053617343255157067391646970467163876996218522730860637624919467445841053653356343157118227912928962036670368998616611290892264528518691837563161496261643220079931968385206535090670969023428381029049730533716775479051228298799459203564871400995060514806149467625555586906327707158439886206928627865906184558336062697634727978369159240216197974211810659177122418893516558856603747176634236954694927712435993797287223246223300500732000846254653744564986326818505247828035670882961552041434010645333035218223979888038100600623025902250232689451386397406542244387289774509172642053889688988590974172927238131965741670749514027465038909888585292486292999113093009658060427789613453139053285270814951983016365764454831232301727647361965822737226321091491173787027799323514252627247871173821550086080475278259230680248644588411233045777322121187378252717515465249251022208780935448563612448770766415065928845230532998552976254436409487371110784199866974965423118358682081365455650598098336672647022220340339939164579096746555160138078961227779115146802169681269247732120071533360696878186527001321478892128850643586172413639919377317463513583366555138788653247190501933034427624431557321122196449188242095272897811824680231716543273343332651820418955150131097212708845572501300437470045533311039141051007289498772039901674719654232971291238885901252462344575475155149387858224731798810500467180382924404871749819678624504402732566606624553802092990915474510443569085844801603215059171950526012550773687948621612372842600155952980708275812407402753158436400852141930042655185550567767331901776997012186659695426753628788614352574323385297458372600600712739712305189904633528843593382725380517519833312777270735514370026359334307133430926052653389861221578352524792758414521091303701985234613994901749359977298420589299488378018293518303798161542324128957018309978817629661464409204071095762593220375754682729890330422734257588037536224799893072703442225139199813942663876861452046455248512831482277464020496691009672498782761714877008511904184363780452061918289349146453512991285430220433196970708462354825449819336458007684190103068180454546355692153974016032560977534470772358377721300421327417744836188479597778968826117057763217229597098491582684236747329654993991073606283284122754023870599819282611660329129371557447423504066641632880020010412171688555198644716615317465355696024146141965492403213229791141325534116618242163328325552773411444448352463916813557225756593559075472474412868885591694841378198420882812010744320290615813412530563854277585859852920417672301955885474945442204724948422814477175202094977214179270925441215883980531149637611044951701839877980498073454431940290433962818722453824164399518439069566729763995618669798170060824861477903802326409102480247724849607041014270048012210760778901071888332772683453722318611545517006991276805020873722713043283566193778748697119930890531910261326407148056482834957556796747211500799889751181953027321430993183835226294146121874626326590490092089386766804214473253933782995483469542964766725879755479323242088854298656887866330453271750137350461728696086291682659390744156504177206112080865290623268372964198008226069195182250520916320494532349055814856858316380094831667810725071226685684554518527204032070453605938667028727780395984214372696139051400382920085851197659011534445911199063290903448694560866979664202713756714740467966419338188244117348591869648083068897514261322079577207322019807397201398231412362585517617805486987825014670031332658275991617927305538812157373450956282009767019563592004004984827426549068129092096291843741317163437496619174658898111906036209879052741455434266380924228335999259894875446453790818415961496813278951994841189287478901047441019375791262155331126201831378802954644859924156815883807005439056676570222662723173102524380157316312737845779550307596239720592808967610638824122929065937938822187061900491597000234054303595960882357988260769718955134923396788809878449779600325927581243844606145784046855775285805685632940205033289048747300593790428067202314518153531151342775203892824923381873742618151137862138030012227832354104864707890301836869143303348614370885148304172257026064760695960339515191027971511638864192703811546367192637656160603949154415676204573938083128383720221036051760239430157592803171237272370086120709743718360129529903544760868970841886207662451337319044524431769977183628800792486262894169677974712528143057176784016684184983499928651115114520965036115696371584105991397475323389301373742247431803182429508716002445872581429025954117942849280764314557617942034682541731829198566859186923487533613883499383296636993974012540546266142547826255451254618695257317756918769717481824351678433362045605009257393255100213721476250844662180917675677872889044426418772349529664619453217256305116635165049762991903790969516193278591881592627423346475409248025016494514564451485508633661934040851276703203536507168590161090612651318731844742630981391005348917047441620419845805032552750678541578039788862158295473598552302543390627568751319192979493361661551938856210614843298317556251773278399925359841914511239495782277563670741546201172680864296262237543676850382315099492365062356847191529371810857771155281702765124478477829540622338505536977113323344571678896372032363734567307037762489918641872949901517978416512537599196448562856019603757825156174464409548057859544248938881782007257281068068297753139639563151007644677202918180776659436597918409914533854259254202883538931317681883411553271181165955277827001855221364551552306243258181419891047371403537744052114339235618651583046738198056115285995199982248872147227870054617226306716792740549109235167998614131839644175100558089152189222453584190910855400707848276313402068629951004139968412442257180212200528485678969391925225770625999635648685401930758752991218254639737949314440351117559078227118168296974582798671304704730270145509899477261736423494494773053352770648024714704036010014760091905341633560498865823305023445575846654101204232272833062356609440743678411485949738360232494607907584897116677247817496967674796812481727239292572096052608298625689199910513045317081090939115082978292193701183730351355889398861285171695577424404464217566388725642863033050886074276713433521703684058385574309825775352459963332303464709829898032078234750501172357200683319480232228829952558922046732463909374581733810187795579860976632690448856791549744209228933822425360568319540547269453992715704320482238951500647772720281043098095338571505098911032890868094367683732248408950572341561447169454361879812224836447884203269798751339921355666103846854000838896813654570283413605841839741392812418401492016249009188525325202141240561469830877579668530028848384804758507626587145909893162215522804996936013132011379366846072792893729059942177299278652651357734855463538510629606265566643518742674562284976240499574845997964808047803565103151413267130566433804305268533538417298798962367983672509206730581709254272546245097571229826670890169459439889302333923809747028317606624126615368780136726198493108466975642869044661516242411739640719796822905142666376306688597560609624864673377768559858811046919769082388972766407008368825739977593912915073075348211307484486027553630568740121232767164687361504117869006140102854417131594951879266096745685954789422676580826195174044548683588710309234669216797351237732862542575301644343804552525977090306908763860558991652560744509902797106715582715504409792419786232089881010649628094895763900152679431796712759798866347120800058325056716235790803430114210458502777770274212106412362706704953360208513805604908978808796945945171270494830056053552266866214749198115615106520292351640751573573984892521486748898615728323067758795016099051262295763006749632546263768392975326449760480636567226069923231626736036492837551796969088461903542291108060601377261765711830131005171709928498962235067778178355561768632540102877433281695440119739512855444814373772078350101797537854776113111107239216187976129765760200818411947605683334784194522152372849867849601643636844551828736952766631794820337862615817716248525391328609757806417239507206117314379216671355810360410942788138654422665441340132789953931977112335916763548963009251606190442040345837209898722703367839794939471561730626867414649979479078693395312720339010728055666169460506096395105964314374495250140264493914556825900364781210416311278019807190879885949667225296834685436029735440601046994325565238735587451563131035631347922759051120938970980318650739560368912734671996126537739790859541627423398782838846959462508587794817872124029077536357175959423222978299747440762897328445288512297508427242297563577791927513352149182127038134152499626565934511791535062148717080851392393313060301479851399601439234661417292647102800680506170602196763885929647137078744146191188415660090935264037412663574120156974038732531957682182637843360268580425913033904859164873680114352181042304056646812878343707522409761081634397680100645797373681899590916292168568121036171145587888969107628833839092100479026673731943690627313871387377783277398717006306650216382514264754309709417113808784985963131346479273277403866883353253993786666963529999482916073164081633586929447310974862001364434768498538197875258751682601782625051387557518600933647086786567290648010774256714667645064237578016710852788414853886879967674502053187805168289061656601697131592257404761008249565308854784239584316218831596751055233945338456381492615919626965652241939387733346893821758480805164067492560858717852892538695012788733913968714426884771194407925677916863615073763328535089416888812570452377835446133444745277424443004661576531307923161178116860201807586160723172900829716557782056046941078269636369038142995959812964319058346505146962074562529671226782469709936056576543147602775400134982906749833059753756793412658053391009042661899751093605108282869420216141810363338223160423899506272122445590656877895498738465977520786075931986695921838869638613909056911056768272977592024475807785104585606545170032869202985932100277420676473119063669992524527991552887464123734067313212186503779796152432870228889868938080218367312729533702907377412525906724601636341293725290246553574716367938560318096309311724518976396141710812050271395118383401787742474552035173482066752877945612182242702528903007526748914514688202086601916472115336789760582976625821354628557146682572366843833124792116436668429893395096001814001456460515965628437957447119904908811908409357658376337639164526922882531747804028255167554890156833831415756081926598051894147856576616701091014322501257274971149480775224731183109053087894526756641905491485303991581714306651683261675850277028440806907362212561367920041643126056003028221999024801369514224956243635019710162668882126500958752808811253114801647164211166350624479840124347282887343853863073528103919491518277900260702330666100287308040368727803004648564342515763211596387950853111184194696317953079876855131753822055054061536779576744486789666335934113908364803580372930281210511912864088881448439222191606495192080133361444492692082066329840660034818515649966931519544048518589531981561453158984529914671090832092780830647342375324714615792806919364210561373545219562001437377836280679586384329360922603422988457266502704551650560219312483852823130634212369505782674712246189136565608958489222111419023121618737427117671706580276201812877571509538819542326529020894669183868104143692909156381577674622352643326639139408461584402257547814400781025203119736589775271902909139972513241790801458878853766122586396872314135025251987417236952986524428683829858202968799842447927831458233591461307618379096956886776793388597256983305044850443359995444259586837262689598190218105535774375794307642640941376617470172091364751776950720299286907314837425011411462510993274617179069592237989037324659970965563547971501548855241250288024160174273108831060792136099793141385304695673592380463664691977065935941328978969092129225730649288818909210282775493404370119982114929020911579141561068954901848913205586333489685727755622521583855568500789148767043912088796059466352681757282591877750799474619332155716352707485315093567806368202169343172165324631469022227423097799458321810483490621588249878570425505309254829682744995422002852822457310631605759541621772648333430909830439529551312722518719063206345886373955864129313499265983918913020640602855956920535407119678732549960125040553121874731596054051762117572260008193416500964130843240612572558009299061115691644589541505734967785117513940818112413840297270085250448511449267229497852113580687559244842898548842405260572208602870189798061701785525012970872160744919115513535664179350871650984736160687190581991283969845071565047988234474425855913220393712256569034589855906427611017984714584593117631025362918248325983123563070435743876777920471771764433743466047156926496642269346561705986158331107933116337034244597168686318679451495876292012923827161874030426656668993681373461569731298906704379847076399332716070869023238946545304556720787267795704630917462405728542816136171167642397720862684179786890633155953109586666582642867473546694151037230598904013413213864565296905859740266904719846018734631139462804890005902542316053399345979762739110398534150615442045180988687325416122159400492418115169411427173517846077239128351143418868749872207775579198086531812134900332979345028293204320043730881766294181853941278817557232208140500143374104819683259640380964286226274306662443920466683688801535603175669862918296485438524498305795301138443916320510777487300313905882005768737190963438951589480258548786393941847258973798194365409578276093191698719204927586087436579093675104692782118785520625830401119297050412957700862582106719254015554703217111952386998700928111343874144237601056046179151661296382540950156287076022055671120125543160191320342705965775399945062478912166442650407209554646484664101863952897433517695367742373161519870521855271050681513480027053568920397098420313640451822128428787863705886338738618124925519825570986846801477229572947771654668054106722288053184564448844683232908790524532408056183994515105691361649470847733500722708313869999033814560956379794617363461900167413753212336536067288606374072310435873453655842024193234150243186911211432678127658732464496789486954519409645998344055168074841800985436244431607722332654891463060248058657462111867210688094716316466058296298021402006922157949507312443651307236795730815774674859875733381971609198443561099975145422262917343787749536146152860445550834873222583364764728053854256104403947840638248099316533590144703864439214541586299981319077562300690032109618250146202829614596589304247150603052033729885684501447611559260967621520062520868544640558582172302443843128008019493356104175771525830301788924092052522815710971850463493850475588279176846678255827953593809473258655226745876887071457678531425529168869590395938508697130344649080262252445266326405179210766234130558932632030814989630093152371863950645539273231776218343513115975002175229503537329554012894889064786055769169286016651129897593969070196011424846402528731750763845305843425233816990481909384063422481327712228500143557130615014602133700200351168602405246231269547224010638069848785071392522185971220700662495492348759982106415289385984349161251943934235796013433178575443997258609803998149679183893926443095872118492142210256129753021106789275833057071549019918937774141847875755903434137155628330910860039781149711943024133438794194326171486672224900692715259409961758119658572662377918990863744892192213310770851250278532837336278818950612479164499660125981850945322380426581178569468886125170653353779416413070388365573723876600510051612257512263376415077308617182286087190266599564083029795333582678116440460164737486240715133014839979290618763877662424325541636284283839360524945628653972996389263396909704571422242379962987331491152435465141029902610000109320811855474838376834721951183755940583048757138380929584233306400416060828603389560749096026968505127445523388307732215272540510448007471995429714185386704292833576071844610678769819770435106317052561201073135013377413273584446336423006699744503918490958011743342741390603848272003326411531750476989935346611940759215829219435471058256306554873575022794856358026512062238451316158782823025219458287421183352731927554395203254467468319118015015176149516539124129431164456504457023667831119585171314107765300376172588120191624357971955690695957796631043143541974640401874611370562896951924403807999112223863955779152759627407691594293506409488094496702560792024471386895116949576834033146856537817635618411481909739405233158746029237127922262281889504173322017003952460307345735858470269622301817073368632183513809462606586958092391445117744240977858009216154125009477326810308264212764928340367176593846033426246673861398301483742292078293120125939139462336020846697357372647320936374964532087857762085414292418780557912687330405238646835498375564254504105818291688854921723941859352831031092408708660130515628151599786687884654494459577697506874712447846356625532175857139545910066451177430322028039449197163064258953343430748447457400686706088938676706906288674096949246148237783482646886498630789816354922875888052584679280812156267459401057068167326737902813273640059597596321313362290722256273162585961341015603181391536084900544473259809236097541406010894787052333978382358085309305506194815883668543088086221285098969995931384064867091999887741969465113581442321937099208805149909836902407730524102244930272718162643372015811007102219465701893922802173215152231363874392511142979756951206046152646474168214310748347567929398464737982925359314963921580642951868359974661987043810610376179646768521083919548477066580325342845036344435777475828265409220855448455490791072344340639960599409031616815525208313254339460590529451882515676691521100455701469414455184977507348116103482633772376644777813020290173148253130735707305627008058329279341586775751528864871172542940260922325883740333852696029068796061984376381896290866590506820575059402986863059715830200114174851729511841406822859882298275459625093827352057434307689403135271682564044269822757727400577501474638113132934393712533736942472413039863501953813672200909151571439904899629717598091092832591045957115993960207630329400364126525875805037669172143511143214150003547879044005762795084574909014562939228870322755536083693640689395952453592509678067551826759135969407374150803036788501044027634286441724304135500860159943788757917169204672958800420414960228467137752814394329262096137023309560214499303586275303861928659259766140506917861100801642911756084187917178278554890813756572380270199972084782215945200582422454724702851405294673077186660844487986624416739019789198660704792987693833420954324286321046235179462913158870716981447144761909864439310115633099539680475376643077661967912742439044342104208303399663600979602432497771204580822612374539643431928205578127652172910950004758642154717660755768849902721917335541262915250161152173309100223423503188093167056947531152954751302656587340676072176121732128228587570357438934479858257597094282114785702318347357293901738323285053367228437188268455284684457766459517062718229453714135463785686668396080682751664993319729659565789924438459528633181556892655762306890924516762171182058046886194073474266281972203111220267228486659554888155462703766671700411636297476684876660808032186617273929618216546996257943728010805907917977840946047261154558853035978601944340800328928190119138542736222016841422128951731496782436804171685128938434390787051746869718245108844597093483783414495613756450606962661045260066373670104515400107576215526090871838330539989160831553393232818352847241756863770794670966130835190094674070290322040955642628858852063535611317337194458860857306097346277972190199735331635149556518444651258984008188507545247180830084916017154929665866292192851421826136777596591939374690699092872207534797391772337491369059381922835345395311237304347663444793703321974191918095703151330092851193648275071993233547918458821817019639780305336970048094658241409296379363679553067889963617663368470315803074108187002220771773449370869907530772289755003440581672252158383208930038794668908217553764070495048058982611773969000003359542236250782412409049319481097629644820462993862104401087716263352801061934311329481405571944936610558460235391363926662949731810080306412899807437533019108281974202221974406740059973737357861227520436470406758513451564081935381830217323605549389124231302573275099505047237607185877923372491691778843595271160387311578075199936748270663493642165217282793336195741263651187157958502388397651841454429545346377011958037695442887029802714590270689149226864047272295978000026338432401233718619049961648174129833524651234795173119428375032679279710852381159535725651799838140739079963332888044074405486262924178733430425315709035037904314651642699937935869375062442846024331802475652433799418730610538714590110934718696683186647667637886591178370917369994314680931388562321731111853933819166562052386284669932690206049534052236113071802669267706447105200412625681875119755960893970440103254154516146884186093064466336303999093779009052305681794670186256297067960865306904735213440275048095598053513497469271824008842352616165111060034891314387169753623136965625923491087512135586461964398376120556400580114414503042565210686036835566845057409599216639619119615719734767995615360026053699843483980384455074148765313724565358600813212275508987661021823842637692916150608615937219794326892635263578112049771069923616589413289969804321027394010107786553477253708077737353469128717613592726938704660655038935640596807286794406489010425181285498317348703992210828867314310125040839050882534130132444345540013709941088675137695721554900802364300763377699435860498152462525433739694039688507160517748789800999957629953935896331585500780885561098710155965870927058279725280724652758399880990431008462089142260761877174263084342848306267695972580919407683240425303136324492281315546219204326334404826410857685422654371868706417815713397229878291786744835750549239177157687355013344920474424361319983994786630820671700030277975527021981904265783747631987105291546090930514039255611630168682612682364133656499269639428983650740307861704547352093719076452960285983981835857856593731099257733937542154257483611460120076668652064851959637362236458872824323873506382315984318189238787469749593251123253994314837435252322597093073744565958474145250212853942110926965477730128599530450794634499344613041049687232114141827103603445596651352811618152115968833733818829381923702167360214441458230716212735297488191967435162307036646450150539333554555342082335510199219244619691219830857096115769882052997286175341829223272882857752645109488590500331190192455030277773517727520156354219175605792927114584985211971127767617858365783541561575769592882839575575744664669736609779346905126185707736043196218849128057024293743350158072678011552279102347766012108603326890344109661890892962304507316130060212412809836625714877228493158737143489354725661159816578391959479337238619438194338479170497261416639340075524214464443182086326387904749034525967601596257925987901207533851755541015647225819997726867494058465617731633188413759290940552165518095904710595035677806285847417444105182349803406903561164748237864733809395577025601491243267057089187679758515400626976791963061130165938851552892561922518283514030116867219016414609323881398041033545151133332187431120195085138398853635786110346203223891432113394512695383050303392681868198920079540405972259644290629435203933063541090759349036432358833006427453500613772210870332343899311536630005264648652187097306872036513858733033547504081690950993825570207182869310944787314931367777626190813167620826056622599603195757542773403193769895089255415919952281579392493441764280685647571568082623589502246580775879149190287502000300330446639646226725529136552337901367902854819687616935257768259931661500108818025155463333180495416964486847993567449424811810453075518894471535989085173478133103902921609883047903942792270248133230619882194180214806656305418613784064762258744344616796678323458192104658393224809503578017753962427051943340604611481025582113831167475924738148798978102384029212626284929584377834794434556054896686748121516444476940935076226904418355052770821253490964659327895105671300525071305698376443533025481069697599348124322920586228618540941601074842198344522055742916766335954396302058986215558089659339005113643493362020519659313228650422204487870270215185686401683782677236620158984481440904018188738885273507344939901511466796681106624414864510091522511934874262333821439860605610684381366499676338667242492776745575139938005203081059091036432523781317821527967110259152722069942386984425884835244392967432857425649516284368617261608626259305247936980633022852356145781102470116019691695736502709966118845690258975790106182276142725408195679006939479684820261095486908268639627272541443354278778051668282262270383600024255999676729229478880219598267533152388630050753252280302938686196796345477560004744012204170063551948365412530310190876338335649865405273510363286866410843361062895998558563313683539473513487775772849988286623733447007057403742491012007938335341461178726784929914456837230730874295033256228442019446428404643377352443797340173041801535217877578192785726810728653624604094246541137632981603471274774383284808121950367996578209053049057304845285148790639270448885251153099254053980332617326233739444727142955110939609174362301046872768413527005002410736558837409984169406368198439108559202964440661243404011190814637765241702209635253919394993817870125908033373676151099784622133813934740082664502553174711529986441478560276574792681794788148075184861092846116459310989328178326547124989854103885826132346244521951016571494382962657874532281417011402162305027553106901284639432860096324196808936692869502022874426341092792676740726337399721831794009932445618777519973593561706849165774496903624249187133205971737394398302202987001133387416497863240722877568212039858434078749910646910772109847332889773831884843783061143376067782846294944241434821702045265399054756532484009071384929135707387515494917331264761474679873517150631210475403692747035226019725407099271793393216689638640137380473221171114071023215014298211679433776168148101609633719234277447730404767924635492497841703787339946657440556067285464995756556304082568292070030802416108696497492634406057305265494990636586610549092549928054063755272246906809206307788178217340781034719940611043665261779938962312698320910596513103736281620759698619674147652446622553368199008801485399955595564082530949048539134482481544581753728233851592268795774404273319862861217048400428035398310520003081215538759778507283655892637685951691351092329898021082408221729275110878935214841287428289949251243948717722403081903637406770706297324638903612140799199541786372804910573457971639789118076281139661607586556253266905484462022956120834433870133054046554489758519798955335810911023335513598397621055106837229417600458040919199939886722687053958035564266282500873954061617889449537084123578770043062260624184652186093967129349923976171627564733374931410286776516492770128674415616304305985262754794955598823030333142337069167215369408216517812329300428160319959003091521735294994249215271330176868644376520448993568794833109665383136267521693283729787930840579105242123806953196875311301515117540347213717785616691986422252794496217055320193865954695170520860545075841624700862898345937149786567787094567288883512731043903299024770918181069194879541348620848221955812620503975836363920754914085819574784031944862333533725697498981143933505968240877402395707623520095859724927466166107848667905443792212952022487125050511977878986531606898588367435678114742830756142211119822411100736468335562538334972523447787165393276055846011753337748640322412113449374587627296958017413652756332307599941833814809880579161911205840132089349483232176174477724403015891765215765415787186346562696099815676978050215763228394546555296585678416157122212671526646677794595852652176264076929302131447256779013717820322773433450814366585933247177148323345132778725352995573508621170663207369106635939489267000047862829192399423167637917638268803183640801097212743031599876739393564366651264773475926157325850475773338524089841143252996707949038546350234765605644695074383741518255524140131314332608304154986438415882671842718161748065169309997624162909268886769942946750598143640868014744558549475618790385349933669693328756896491169628532121585945165070937535082229362664662485456212197045857562738280063004552962759633198223413556974800577839716784223544903569746666995220917160678325544206477719977888771084281903765207698427575394014572987678657144265840943775722744861242163718066532742789673965290171439858702674454835654745646154735468648280680709392747620697346404577816718300948062846012795499180596128194351094632317185718410714052102322977953119945525567328945377504085619935109859303420963994813074227473917176678896735565758834402104174210506061063660403261197624460034013466391206620985288874556577530881047047689808031052808612031019498674210183606038109135760233603727164106218274574601002125675378072844038170566050053132696564841811637566417617710892151296071679017790646599359129667837412725083853712411063611072477190263774604936573892215711988545576980893741292210823605021307014917108769615408120639400348275608550653796866109007076958933550439735329231033752513527519765314343929839460276462687522665197301764381028075589018492935735406672689226853956304793395358398429061526751797616082502607667923882273171548626485427323709968141481281564677183177967374808954263921561351667791961561770486648316474597428796267573126510358001011733476488354856852091354318135689183768413583710768183867017205939608423085461422948100392889980080953702001419772567991437958672144522378291524192780423640819461556991609985777180403769724254167389650892135727275733909588773054356929532109556875537641627007647494880940182860642199813470560401456648049280787692355074425427937580298788605006120428404244160624257601646284309556737191864538285653907685315436743505202182636785505612445819328716062600756130034491596722987702171391015911417312380769245629760218792170970649266892194137887037230095014263259587961711378034544744789635258132668124248786893401908605347917736968582481899192944066634040964410959970008418069977493621170988564091164412633031238876933320846546542683725241103025698050251561467910524040748622034900862464405580912549547791114299718471631136149213064797485680769330315507582772731208570047513356204257373499301662396531238108067141731269938516587558018161077539021529284405264539239964474616900458024042834284333191620311404297747724273764146875925848945148092790064744844517167862090959472368434766150945312418014625311522195742304590940729391603747808786805708328636153168863015363447741772598442846864950484437389027969510156953019440506605611137614714108639175463963627013604251802237795199603652186197258564269638052244668046867198325613172638280442482467432665863663778442540635167762294902379185072616555297886205275046352067117833719001642572006616026737493209675549071171248703727944734042080008338677059483277658237017589168978492346687040400115347798243294621786462137660851777606735645279586215240947631065519583918681895427694453687530398453572925104428116149818280126049439013203749714761842719540020417752037778583237994701555836685125613844754007444449895906534303632106350211374595298566658417257877026367217423560462920817331805807680078534317767352673385199927959643809277846334598552987120179914696403963881287675738699086188943461934595705718901887709789313068297257510436754767181036321509003223209686782250696980098390473352506175063964310942124738276848082151505779226764120787017000497887921997069112306790864244061150275390059798084584759092735387607268091525739659236316081739859020959084135999329282103926012282349217745446543218670616458006659690067118278358221353316404232760676742660918405385923204187989622545170441651306767735284383724202550088344715605766613034646087235185755496657070860343511710650707620115929207818241395311935914353504607786563945070626511848273724981723050372493479104689612955332589019863422293665406521467948662293727031131489342814821180105490593792954081937122048152112878739564518647718843417498004095414880418464106420190933834599548393488597500530001792247870637157064832943561735203119640876652193268294672319428080009935697767515341156711320192452592533138481008352385296198583412446207948494321369642985866337270940902677015795812596107367716498397472626479408485481599630366274028195820013627425618557997888451761028907471955746486411675896557938376978274171417223959372337314523714514601629962873095985075024658174485420420780931250333736701157932197326868155729588595963310640835012303322324062731176654225998432474694545225752247071468680453471238052083385025701419099210410792381576694205934615761349083188939488589326405874882123068847453922604207747705957412045545533346025800626878000219167845308374157492527656484245264053310873403067627503831534576011794303602837669729682753401918982015784328069042041757148110664861763011570662039229139158492294950014616536048901077371014033989887503082544033204947082999818292705029524044806542821671609230985206335172112802600405594525669876469052269903011702886660803578068377689628911787719454404806629060883789130675314722816908405801010376723108554448524414128448802623044854369585568298721674837562570313274968168266327291501185158592084614356434833280530404557580523569970141632201696892074932951141691079708602719026054073825272303351898760014534566753264599455276107076620678608540360691528953252954268508821454778843452321446636690161532214719635809964133104432905469522143030140168248201983044520122202520598074689401853232765049405589881016330213073285226416995699752084411185394769380433308256562919468787703166520626204556454516803899337705706868113905706139440871587626538020352741908644639859772397013156312565166126948150563463878680747501016438364532519461414915429375758347257694088942680435799642901382781911249414063859305879778506939420402757726902978740389684732357761736770491874228251359990590701247151035960551052108115004078844038799227464588023020823191500071054376042486511852155524280397348534913878088311976635163206801226113970500683146587108074727705158674332359574701047946617210389522680363590009981190057879324467495898014300918862917831496125465048659721875230374692801144503861037474454094523195717391686574031836291837465013953797986734073197368185807654526719196208266667350014710873076931097209427331599334537061654906658161981812838128953838229633059405600019114479663039070389198573447519899517528232150212898203810436548963385165139476465928474637743471308732829213187993860615266948271761957271549417288502458413519205092951680159066041688958661670031724181361965161117101677835593239804546869789579425688513784232752472719556200009890550696945615288967332526505952136255461134324554762929761659288552110636285383337240530561201002002698618451010383552412314939620975678923801729394435313531896610564340822832967534704792122176054197061937245355364755112707278754307023894179033383901003301264036247993000069521101601744539792253990583031591602935748484063717977950975575629009230818270341791112610909011285361689636054283231911726861846094739876033597166342520297776766640606510413762257141175235087639241895183165380057958762855018107546627221984382828075849622119852993255201782837109020966244382387746899758086213802757929067585292556566112517692063884733323560289293135172948835157346032652482069843852460306375842334701029232340242745744586184167996621103551017615273300779832984685493544638522630522127442376950114012112318465246181875498625715456864840913823288655535965360027185095648715969466119954442451678773502662833312776370432945777605076265955023245886885153484206445830910872350183022915019434043131523430694891779270601453901956276547149248518752163598655515234103408422120413136438649154608099729389761103314255774183821460374305515530714932564267079020716382151666144700159107638556756930755849741328250847960825156719506549414316002928742277841248788959290746933966984114305326706404565819574413830060963482721755656001754343974488027271481044681609752260161604212179722539335267830635719503093780034529697767879490965125310522156428902393888853685987628073491070810807056721327222149824732075484395733283719112091488790245912222685128743357613135664408283911584670799360002640979300572283534431454332925080509817380901067927749321591566635766287522754790695607474331108568127588215706557440977710223094649735597042886034011999582805647540917295716746273919208471256995530496647292110311124480291159422729143675007381606800852875642139208413121290295069396940165177606330269047843542873801759350621226984720882716823523108024269415691266642001264045645777072666416374614700840320066799020104255834007870247263341618260727403145396533033968205492249050558799799501865323944720668813627904850320699374280664193328312585115205812443039642845649939080694471264377340634502343489669945314147635858960560172787938420439853964504284761983172240636186059754252819944863252171305229709190289378858769589961754325904072920142022565031231283366230883206498776654705005967125016477409468847792731169612433251396762434934171666775791754738768085913788807215842781148647513459559661831951529300988075041718034623663395125699093874311824561746065697499707282686874263703746400228844299080600169678803047987222297021232964067569309948860909080349525267127146730598372344883365903429835310339950569031218706848934425310781827959394837179612075622346209372439008058455051974438274837308722336624576055781047737385618381799053006408764549821042446371879207255558201445320112802793701076878103788873684157264448194019300768294044506699006731770208247120112795199901380341396980092692203657700828557616232198429216411213680281762873108487161723045282597133480656592545938212134954740635731505190684466961127846933975465025566811842743401187474958904660799786452776917032914629961235973406721281448089035234677360574982558126188756812371756825144487961860920271065046729375587304520768304124149980389527356144138617204044488811615198037835030568645906439542167010919795074577106960854763433897394524099886800079338742575061860951322847148699015697377127689615275295545088518026254000740498659020495322348416830587498906904501941446537724935363796935429354902885423572669163806383720058270178393113924653778889614124759948001346467946890578085775040733401243026627948174152058843306290346714096514005424942506555442028773826728726010885300987135426177704149727577183389448434809536958428552235624323780862554126127605584091519066258252856713701988206393546067191713997766182229988157660441825258994048678231841103143181383663035394430568864703884648050219601713539165745420195292001972117802678531006982340912572309886643087691124975311587126883505689458641924329517845812499684309406347635535049332214320008848321282124377485854106339545243018654937010521563355468484804653682643656812521523559481176874746458551699930300390773205713419109625520501102516737775282276800922485180155129674611167413779180270790684700421078094131592751769751805325524732534825560539051106957678195838150987164851961276860457620850976567316200402941307467641182566075748827276247725272277877356548113302512970026860848869645881440100713483076568512254676089437355432011723197328225572720650006668944340023831527890543327219323605715225646591717821917869038091365090552381537267365791629874969621877798573999124005943016085054084240736293191162341012893772741482436023218215258026522677776018053338699785715192318743718198884333746196356851014151007552403353544154017743649390764177452554826667188295783208580552552861501075747632454748724103106247961893791351323794990176362973427917514423419611479094042278194587207717359003973344898000157023085377904779907345304526061364915055246539652414088848381518255665091878115950602710045144162576595121175632988939960934236510467168706177436615238384583721100841554417308678796631004669651318909344341884522945971723337108236413523696183649934483956833464234334260332197671347418402429067195849907392740478282185186467481177944869611962111363683371756160567738522207053198092204373351400884582648259637668470472721884036533654662817150348724388976489271833375921274104135103568199981577861439703742322194394751384839875535462249542998503725104165533284294388329506063906677567566292385702450268278878825367469015514301849287475858354309726852092296690102854898472238592029887241981212081988552718138823480230096445591021496512329414546652984204949370984454954836682695928880258246308108543768786501149075752254685147944611882227774595633024380904457789252921630737307913446879686766810682509719387341765670019831020397025912589862573029304973512381960222737939157222691133405001483844069023639214560751339304938891371028122746724342943918442564759573975275940764472740957634828667806439613732548211163483050165638560109711323197282766594626252498186046815732827414220685149613906821353182009549270184823292174984684346427921708743418602386702307343854315675144461380656936538081477446008857943446552243188632743114117851791018680680420092070452636000385741650964488857549768710361427658262734865709541925368533023287695017996786160871811508557570372729467359779230991612559748237584610283850360593866159189223959721019900916818496109278807122814355478823593104048114094444366993298251676519226231601095400174681000647013625109991787729597849709851806965829797074771286790800700461457467421880207461516458804508451357280632989539989675532421381420972336859295368202427616551223704132984757756333520699585540782731272603125400814637570037518028906199279856949691723808166453894383785479668797557870446001953168249782182521626742846850467575170461023171599063998052969179057427717031581259349089567131214976882519853404596547871122972164495941178582273247974854008703225016680008484728568916041525460771213312496209572147681733433863835166958377363006039483305195133548794360166567595572083527920395847963791828293686770699718648502949530572051562502500884236309559785061766416995934524513077361359838066231056298594993289626440028285568092549247244472091594411486516184905614328519879497977282516630287737763851696962041542018283241141040245460160083894574591486728168927376920636974679271598226695055588833550898260402830708538142673840566256632656654024081511553790910810157549486773504192610530103093831931361172081918226729979265991439120489778655190984178456405463902732025013227440210139573065659931858175429073132327556734797776831603386726029911660893418418749440644412876969427571311598968023011079070416859658644630874690930867788555311310503623508995041177169787715012772077894498818519922415216591533862695511569116202041662976131642467912246777050899471476295703372123416999927602439699963674926079827243153980467088658773269005981401569619082584300073121660779735169638437374004970236494511290034531326508113706419217090803235400829122662979598996241429336197848255876401047453665613213102043854384384370742667998064788753035544392400775524810333546387041294764802125148490923287214669908120392272129184511165768983232693828228709754605955638448708755631314206928613784748393738279299304370793234739096020216299058275242183547012666639346916646491807714662212544460475740109078290609836030851158384373497048145140620970568829440584840055802880392234334129899694819948286610040992812593437458076040181646670238533347245773868783694602754560973686163682864071204938120583998940482568613284803614606426661637675879198057850711332262679455200733180073882952758475183699182719921246250090271327530059589081546719833395541246530014088032734312402437437355474938558903728816008308441061678099673224394746063834155526966543767394045081890543998864449968790207465555630389843091323504927017295908339876525925510435197458703853532391997298020846487369948005138532336058139387373940491253788384187636334342910359862698865758936205464285121896620305742547462422237318347653145710881491975558747310968316689099400854115240925761053564411036370587757545479134085752223276427633843051757459551902192245629941754268967950489454658160226514733778415778662161451860443005671128697433110304152046212108532362424064792169440471745909579345667824858454780404871835079502618786452703062841407678776838441114177457521120215139626594097091193169991694265557735275070244403350135148551812965437239802268915702950049409665809424486779537649700691725301666361280986141299910774879151512377359975046881515123782674776086462293088897699015061413676440085279533065905672562889466454044195637044148535617514839458244083870733055681135940479649052905589135309796994415288435357305868236072185419474424343400336294229926598527716421317068542114960076898072419882819849534307051692642233414271725635259385440995714697521883628160328221953024757442527026137637125559465688138695575532474631435363380971628002560009876480931267603573876061563256361576275201780691889020018966571086907843849577377669347429203994665298867961978303654058018550599392385192510187359229313990434633824426507994673812924493002060329909470557929525198833135077103381075917642019242387129252863911978877376346858179520171659332314167614239279503605709471109966485531141179205246655697289528037684995227965844409028048842461205280222509845520376646083024234732852997311370806174847374401499589255140584525407412664712409499371321807781921899595213211498514218951149510694651637920140289711893427636336136245387139327383961938016934094432169443995562970644734156808578706316383998109854056801225453715667486588697848129916303612855368733356689162977261545392977158033521888424004845298950895683442397250466333724683652499983580303168473816406978693329834655604610878161861038742955175654532980289883879519784165432226789357563556571342032075851722373891617394111811124236098754699724872362443457609789617413846825671921903358636640517579801028346192930526686794318679223717532214748934528068080046266527211610622137256292297862007142270556716981570422491362176407207099034058344558442500886867806567316493336680852811537965355953848965047468721740197921403980359377026379509422591383909450716350912428030388778807936550219872595469000594331800901605160832670235147435699688769874023420230492059339238714927270475693565755848035800899281275598779950660288255177867521794743951924388522602106667973849906710123388075821302861937534468794514753527187369682343589752283197812019064404573876478933683986317733013820494531874866979675148830009236735343212336387161126762348547164469056928069751703155368170532317912556479805805408409478349485346484021103692176183008361767459922631108948268549272996429674375422560901627559869427103058798397817647613304403049619873266847715905856880189824584418838421168948586657204803744852746684617102589841576675302048383206329140111354911458290307423873335102072397490085474310362147866376945689502075813509113405167068082750008350351887845393705641887780788451566333449129208930707450894029131605590209565340528536625141867152439805197370229920897200911281699315714364115155107004358635000469048042354476514431389817715675481644587862459072581379192428063926458589764948884182490105038234624936995074384688933322838322206296898639508229092422531781975966400717513284707679904321891821668041331473578204135827007909419807676502715537508588815890243388854189422352829632328063541040850240759735011637826875047952834589284911453891503469501784995413784863190470590038102841786144605460328603297455908771526633343033330625955460215455463555481091110608639230378032410051865860179025420041700598913862561386163251103229464151973069927451344669783279590017442009653349763674224422938509876555118935485190563535392050916149453609066333910173895996118652155851129748328620631952285197123812879728194676178684513696792791547773666178331528393953990907474854844007670290146439313880023095728951906244597708846713229723664944548978196687929048007339438731798191095353728046686843632638348447043672660595462541142778771289400937573494272227656810668643517165160622075346345971997280378200876056459139677751814191619722654276062801253971860202152203787234056880490302048423413244165332849453826885009726054835029468052000323456179115660597902816262581204752813296196212903803593702032210846463624682317758465509751758747486630022876753558076753940493870110206776197871585601887374625731052923978518025150028207656426433877287392856205619950040823134686186300454647934359692140160368705972228034879204314514870139483698907217755839860907675447179959018699439196288039997330978228252323956236512350151803953671817699050317906647372516572493105649547927666748058044516075638151196861513841062073240829430523373373413178587644027887777349114877158527243206655317206074574020832638071838888267114189192757054374299066179275092906311387649606176740482883636159935293979285454124933653921632481664756170557577284906457830279017475493987903752369185975290750663710032883706870785970610795695828942140538408370467972589760101372758205438840606074690595805705041869349143384831537002107614794382290770878269303482263308318434402079346816070970394808912865277806184028822947258401954774971952383595664235440516373233056371752633565737845196471067195200071841235215990686234777729989029755290491782451012538506706772641703365997599924170866937827963861102802137716756884577924316640341909364364199681496661702290278356610016549169804605420013465795531418615315530270094889068577746122474172296591287841867774808476796620423062515316553788909688719277880431521070850657968102749954237702119530618756589684355777823901861869000337892672116759145450210620852312940347031578270184769782479503366715589880651365053340554389308432095719467293886782868583620664723885036058014853089216226770264652416113798388688779042305204972758007940445604410295713094071807172239523976027146196056798618483362275080552156146548568979833829540197339631350047626081176772183315779591188466823361473768807017510776624461883090725251629960788515557378667921332531022564670989296956300509480751112432249359974587369440538858877565269252148529161498306303426568110949346191157915467998825343366241825733478778234410750642434566133346754803792921533790565694408145791426343010485086484319502256416265038938328826250528212510793247854175736489688971242684001380108003397125682262466288325490905975082545435202868027375252415162707054119373401688622857544661682530465302651163537783897930457817699175957017587874749738605935543888497083623024042685327195076551729695473283262258459729346238461682660896097893946012559033871077000616639992780113435569497168864863563038312803555093152021554183694889514554784521782425385264549205768767825100493295390338336252921891316372137963457908368899687338670538863872382486403673559887068632598368259428113266026581423872970825888028959753238223862126388933725410014099779197817194776573716731059682339966621114337261201785816096825430167295639559941310409596111305719437064131828867666361200176940638547849354739371896502068505378543373764007886428834002147488039690851814014578584082609680392857037802265236182975662657679708240905380748459689326342304915937291853758426877910358857046551769687635335178336350739833748634334224013442885634628158988185336009049731252694152012468742050482847837715118829686292594405704379486058410188902867476559368885946580085787150736022242708694678204245365987298333608623502150330566097967035591395427450752775454507887930731494527033261128468698596554016499467987394030597778252216600543796474972245613831139006433198592548048177794345551662179623968160498539794943614749018760450240071715003293931202211753705009533453189220425583974351233164909235515069410372229556261632280752067971138359915716830058792906834628037615103266222987571015256190313478925993287913121189233380150053620034626275243845049338697893375874889051270428013925550105545467074064365836844789360507112464084713227749436989513340946778473645774533331264328398153749744429072273044981090721928628668629212049106118459447081848099354293673999934336799915745073338747588951724044925670527625562439776376519326343463135431122976137439447841962441552276258375545662582642383140673889830598811706582844159531043292709264840707082856563245670499093264873707374626587452977381131576685461646704252842065906081268677268045110620394174413901259780543381498597916957698251796561605481731020904432198943735070100308251231155903221874363241391993526829250364617394635022572954859996485332603664242874145185834177714957858452740166032149339584002943122990320388531212335073953960438880402428604114388579197846361837713605994447994213713487084405444214982868444348768614388584400133230082846120905229190809911762550874678049816094636471336390449156558752140778397290735112529061309820687541910275291131725144724780401459827148147138910520517015264001890386834113309720248431578467064883853957470797099194725511932291741128942178439997548479972840882957841117255962247033201787121394301338047210575613772809547693100478056298380420012327606811192613222746027628493710901379028459549393983650383097232557571133261490993705068398832223902257312332044119430569054417822047424080688950005396256621772558619692135500088428725519187752758990499243700238359278157546704153240621445288631265324294335177198330662280593838691505169841583625169478432910807154153077962725948329708174361216138618254372138284981894547490701013366189265932498604668476704314867964199489139663353065964438102397251744200173282614694816604619106068159803964269835879031755437750020719325729827601702928439730147420748358626536462590419928887959884361259464210157490621385857650653741680336943168816955107223107978757369840915509732302565349552993913803137659426820742848471646786280488095447172634136417912471770520486329340013965312319168680544300234975180633603155082162022995084306696320812104899845720183056615872894852459543025489140534277684932398069159911882156484908065443735839476674566847909726901074459954466216084701561790756146689431963934097949827430696912154184321458852683595680575629742599336206278600595018305389525726220501803105808518613333245191439446472650471289339131873438338244273267739343718941115504585049210032074055755990648226596947420136391803210880314479768901145723238396392220113117126202051867339673818494162551132952237714189528196543022332516276450230285106712847617924504637094193655618286180628187918277329125041064413207800086244608434470968283687300107358979502129991511505469466760514374693880906452101790564934077006785727099322005618272409046917815116149964286402736874864743830352417548344696295066065696535536462467374779236051233728481109512042300153523666388597902376890882969217606929162587875795675710584539096434330208777785041086534413928668659889422120238457594320312420161873312414277899373655188870509769554073278012808512455416059933284459587691773948987113861945191547909521819651309914073054976439910336957963618956479640284883398487808405162464783184994764106641325309270886213583669248289813839216331535408978084577292578788500101264883218274713742780030255379184897812221406995991707679095757117217271395512422220418763817636831296036570919467942584236634401756639601405703214382720932019475172397714154256487250428211247006066571096557829380109364096118917998467707164784608112802983238950062909057157743753033347922506849529961524229069089519411310700660515242270191945902861879874783821034644923812310772493416079241655674241678976063141341267241716977126432042450848992081335972686249480560048477877654045708418883678573753285615757738788870230997964882237172664339256286156391185715514921156063046390117962349314036965369209103555005219304041091243583999232465941901178213101316798668644195394019398037447006151139398436298205635084393760905992645511017076057917777808336836503748326339900496717836320208619339371853734303441799503531501258653113214141800438531351628621406164372151814348192198127479768255945990025142391663797244999447568652578728564399414444503966569313517822413968771745357467064170676052743602401601746392105300167555471310085398620459284151173737431544529712672050787124287862115463696460170052858843912949445412430367992605961090423343070928277916612821310787958564146302148658069890797963904580417734126815772205441768539250895005083648279040884033175144845348845325709979372626349884651553573605554755722966714355591075683398029892959743968112190834984250895288133307075160778681030263117373925038304150695486223389486787923400840848422481368648854884957612849410105302442439758433617038127262834418421953757228601641320434974151822000669427976160315021282331313237490267147718746273706307885080488988540658287013536800430677966571441555005134122498377901816128652989274799948213957714440736961486497492349161103324041287661737112143145861559041072213519314510094109627228830649996169789710053196581930536320227064314135403621057409077612248628005816031583998919467883186761606134523291968798048008991185360258116203191720346983075781191973481665176752560471902327865747078241250516722997658551548235017920693745451038166002788855444661058783149619532520501910113325235728279197631315494996285241097407110426197046937274018662362130269659635900120908323447772373744299089454912751655050200905018757979010933048918432872705921692680302353728600487835866844740676975079175098731696559123344607754758784279304561087646042973137665140316680506550576133103688033488724916588949128823727538513503740147390083946939344099946142250071729655544048354626657019345569040634480345641150383866625074036230463786975338258770811073841874918168155805688140143663351742887232459384825189981885454350715424638401864328390117978198639420012142083084784100561548512312886618339997243674085272210011836761630583887670181896759933679165689188331126000989944594720334460454098940554962872675912371184186576260273835050030903178954279140960853420999190543673959330254090827328813559598721787470688829295336375817584151549802087975871631438154291785706377730920192478144752445744929535808523910151742833092177378044760761641892858714181765765292119248352146868911311988420556586957604346300792118404297039992988690992209840935793213003015708878647281951936262713755349540911720542379042798583774559837110329677993681748321983276099891097575709172233188923749869059493975013234611414133218396847057071544205067077510446116120540325413574299711806046550752072279041654330146606678774791423556575315985879459189545317766481321571641252581774886755105508934986740028601399515770032244598773008117759038122174454783659872827972170374555858243693589984972624336702658682134438718660089778120894646827796184565042917388206115442764994399572218402740460183320306771063266037029363466519638983719929166672364690139738939592273210131702003109835950600819987561095027293876531892024320564255038402794373901573561745809073779165843089149651397465910017667810502874817027484179070148616797804099846379391770187536063625898987045615502947687509923645963002372938108110096049316160570654885831663069935959197829171224940860264209175115074670457639345581959528022410144104527840752137595677419566423158228947269011879851856807512693756954640200556492583575088119787745059320340500270563637958129048531723442773095780211957914989285053970540209322490021567815762406096137463342942566419486436477245159305593318953041585589363270818815312630209105086954783244140037017355299790561893394445707432983022586273796707587986400898425765590865546000890188118589489687227637564912246810212248994513218312887644956361549970752970600042454093994275461380000791494992594370780004389431402608813723024096177635909528362942312856767347846449812576824460339560277331620343481782835871187175398159357299865398139810250365267325089704060144306098525541082523962961314296098670154042647603440359101018572101252572494391226415708426497697588609159645764773258991587660483858003460985884354453701515819265804823702528300582889976975758847945851323915138781605874647501166270980744411318980740615049241050379100304370392322501555145409769035392543474342862083330077528837001356985579599171139977747609719656291907954995631563522943416254366362103566632137962528104059920024655729007870777350847304218920218179382421880731927314658527167243449495542157058459368166124573485224820764427910381172938792859742012352285345615386884520712948498598061809653297240042410496207237788057477750521076197774145399118483379039995962376225094682085771774906864015423142393487648066197802619851079552479299328581116396628239325838293921997654632054846021251932814508921579323892108439947813153113850821599443482652357895909079852424366727757603770265643947651438247813691767960531163996079335230898867506929571757978091639022625454307158239386498599253968281803709239077696271860524545016250841381804148661437190426379279480880418882728992550937598860762038207637824323201830310937718855633035343440390931362277891296173546986795210703609599813590418067383582571170021896814007859218161030405968638594711084756233438576149247487339387085636880653215198077969778842212206809279594004756325900970558349418565614891737183981887434041133446488273759041235357930577316321576391630366225598941687502714681859860719475823420267180087084099852983444192367241860337301751167687365866198410202261986927426111112059302664245094227467055224932104280072253183192573366494247792639381227941138156784434341650954156268156962090319007565821766314746849460018708480363880911503362216497839665225869484175564143424370271040594338595161881447704546629017338320585415924183829355918390304578070052196743615258900309644610723197231832032291065324118658961148900342498549573370560401523733381083727732097295864000379916803972524193058079738742090755378464130222474451843337424843055242173786134717854749445673864998914484259527178444758832528643778573300299361074293400571666386385213940948967920433623495590099311794574105015414291073477810745442035101226947862531632033415363460358565786783231669460449949741987888855141122268851868352162141595499947161860545892530185709259261060655414472667553835560732557874520656980047870119667860345770769912019740233509840166380466663906583719607996488656614077827213246765063584021953059400691840425587227731658776244437484273329556041837302972472433264830979617048358655408878339082755319963171991377246301419991415088553494207930146601029663925304170730656037953264392284424507907074572263579273760287254315379679946483970005573409374021183183091242746627901447249438945354266712326066017260644238191623529136244544373567095515801580823396801647763824485032978836575319062102132784212844907877571028168091610455322460391347803172831361756124057328625047804828963781537993301819816213777906900047956416465822556078511954804921797063062022327077172487032018012805039004417151740015969987411222010029906511185676184463900597993582404203573815250491277011880036363394234596774887883159162387809948013102820845970406664058272664161654097685725988841581414023564053516192445532579650179632802162504930389705162075762575096966094089963837255209484166055292477374644867643799452263856438467961539957655152229210018277393272249506459381745204865206555001625575674521620695346309377861049360176243288247059632213666682435900001654026005879031265468919508028873084146570466923855515938118810272748595249933502198914412255237449866260262215933123777942677809396786368628595478794271308892214771989186875401111238783274562306888908107980426122086809559802402273737854452507450044581856031600486889846496538526092970706865360736272382696654054750452475507461788035106440331151068618279161142529025041789153207313064913334939556276582855261761685365128525575204339339599707156973725763648803687489253748091833533111104950481570654997707730245206386216307185372311857212622416111670528275768865499242392460388900157160369970353945179299537419269772379576407245361803097503907557425783579768882207045586936994769597031917803532140420078478132273784379463077510743603932679333833198935815568269767413807937725564305956471620387116357631139846181416226011444741576400397821373973071944015812284096090836590568309598075939988187330543583993027108211757128351078854672873334057346671984955236465954648190702550888559766812583566505896877921128452213976417897007769279773072686107800756046976285214023465379116653031443620682522756011415193273900714806076862496782040863562435818950013751748905686997210540882233417489849384803535795026763342099525924968590107818457772196722336558142942568197208912711584811283947129849335624593433342946576848548559077438031538002593877530049921616347622821200599418908804730688196904123254142624587660485874901770310957968486431790921628907787947356556823364919446455972652333282993165384631279529921603778281833267685568727652501234414452241746571996291513491420912388127056869242469878380251873582177083008823580528510327697133680960673398913621059065053945329539633672847175971995857437387544056038441938289960364118986336063840529317379034825532758472361291993363390213795115122421343921199400159008939673694399541037596780625280474026304655767103093093321900291969746791746420312858869796508851139974813831450389931401728501986257416336331951757502895155372054413491162505969308400923356874480526557714464460104591978910193577843462193058236901746482255925960035386609969069104813147934447599303153797515508004445546249965520410916424648748349738776591198212959989855933328017702653818967095892920281437574855507026673645189064709523740170827257449857391736294568997905833882208340834028897429955618749977803527996559163707386556865517409663654822860567978161938922205686251671172893589748344866030127264017030704322345394446349500545916268229201164257574890268720462475215600700637818419516656133688333327183492877217218495445566859024226964332233135126796590611924145443781347027320171139469589533016465255935085799820743607590718347220487791804200858744806359837667919451471807952659344289507334352773022085050255401729142565714401813701061510856560506644882154045736125482129662638418417280969321997025075670793968332081144284589007661097374691653715796759849317414359527922030270432769617090832629736944547716047137920555966161682148748959462850846325555755689395793670196722603651309321536880540179553728481086949829244660190719203510366475907110146450573272597014028693188681102486006797835793299197213230837076018785322530243219001577807084938119329154834941151635599524921450379242826573113163523517381654823630384310528684761634900266929962386535304914012511578310712678786573157308787880931035557773183909507758946616931678124136342808670918939805462780178000129750050004159372596938580180236564621860317717189385532570108800811867283181749191387529254473503367880321235304262901508062674824210884758824333920642191913795978163011442354427774403035212226325284358778546396550469954344831645121240749903886224286944372229901325213845041841994342045956794489729240649044487789647916349125970411200873722629106692674378492377631523413213008792519151073924369483533241265722742127849266592380580224055012947345092927036252098390562171287554967799769093781218880185523683791113067963218939074808291651107814675791305205095256683382596504736383864020613771732514133793404322286850634180478975908426218074287722020746984043813346393732823839068343452715571698960828587354888103363478127530601339772904298399921391353686125275291043167811444388775361875898671021841424292716621735346119907984676300677735630800267591652515818382639267456233917207131813185032436643395196258965833147236683037588594432117625382820908584205293758329315527164595499881171250134785653121838170347831100687613086988148359240155048541843461781773643250638059118294964873676618317471787379233502916169922733794894036195223963580552116011045278305699635706578674726687909238973768758169523283219726280261512600080897039461933495998996592807850566740110827102018796169007818028652897862893547538215235283038408550648897546028244603183633336732415024212838217216088398979257209197021587860256676218849546673819809846733245056920560204450071118169210818687087838227115512066307380666121871342133016167496997125974925747650073472682855805592908300634922810036639596874928002754392169724123106910881882782596903099783010902250123880899831775799013534444075498367645853352808854247599235774134542582753553054430045096086772832941102884052286352068282874279172687949450896840051031983799940947786921073675657430457105950484857819616699861679781748156136416668377653302416104489054395527154345971860021692193014703731916981689598870902129154688589019788760702503189253130515866769020760799720445381637269087367571045970328824225212486104019919399786281523906024013752465682696407436053643690901107250486630293477342896991184708027162316583281750728257977399218148743949094861731876876256360241055270379992871663066710305690412111455092932426758562381028550520969682837787797816092454605248100521588584560965020348369137337432483507510660179808617773200254999276298250152062483598106129323001441719211762647076164409445213127696680903979605441907232588754351276228158714823470134589814360746577050149766752601574251141878568325826861861383477324671452947933456721133187597949048814395317469064500861668789566801264227167365828166963852382796513341583802280945304241045000162767222877720758603947196604553281071560487046291002519690104341923179169464259465740907453646463815489373478859981678839640133564717244144291331516388050608493433995856897249081020692359689308613407763425111836714537355031815177697363591211935155200190287107036653779380426805601353135894425855992016493537013631212015145473746115623340217774503488909211823890137719379584902407387142573157042116319809869171896873294645773351580469672916434679921697300244543668530478209902900996725485801601792076922435561256013536300015849820111043849207073246057634951417523636803983299874709727619125988641598454527854430567678291757021558756888094576049758244355638922355844338264198055463298007452024245221323807023797676003690299195069360022658901998173261210003399933025344622212637122435158956604217718673772534259596131938297899879396427133041274841997160166577227355086568287329569458711310082535834610929447919598999779734286964826165148327508528401999330195954048984033449149798862860541130868719302467700925702391169573552856634036049128692100942441409493700141131505971427253387207266348645863920804169860133341627654571232163040751036063714338526585467582821275693612636059871786569077782604463955413050449917337314643453172193814793278484587380081149570660103063452860199716152601468552960788634671328785910016296183416547215336095625316702842663010221424934822629746210742191010742820978109362700873494881794652867203166695149660413392385188128928121659862633822037291156420640485275276187046231787962776135774217454509380444069314583743031891774877633066840794981135675073972344326330324603219516857666481387745086456732575516474258923551920870259883197688483186171636140518902928010695435218390951528119969304489002078693065015412702827821933388232407249956832602693779508869316505684818533938571719271564148309019106451702430136909692508207367677801151386024976514437453815349480372681926912654319205207541914118173292296442972766185843401655387237799491979491205072620748088378099507633766032111339706564570972363330478838999103071261048730907531826472730589194284548701682665473377424371124936713083533904075261601280795584780252746908085336632271147165951742779577671432506072662882040294661086920636824822277944758158241583699876778771354265246722461436209955674002215252618839611341263581628146791861006558142033769238333701222587797020842831616112542641500421275764019078456094060205782068396556680585452038563472781998349341999839914308714372682920642057053125735741411812948845296272943284776648609207424716981351457183484201829390316782051923640436492158812489006053837951189489842532206716278567977983556080351861134363833290722337001819518902173902651653253068379230545081082556883043171763763067284549823678020608685275895423377705102849459575411651997592063902448414747708020525499998075337293558915768767414140599569892176463860653998704005234758744063672609005883062359945945579798975149635264441703585113289396432861456210032721854558429367139346087253853840017047697100553802324051030474984553323728058319032095801239590117180171523476986136742423162650834601262584614520811253315961942313670229015028023777535921835997314420861275318103616327996076764186983075904260624421501415289850225620571516705688729959160447315815029920774023551429056091131708418536763751588444935099740865058287148011609258266263764302697679753482866568223261849438931895894311972982057613830128469199181706334557196571193494315352613113883710151974840135205477761819490890344764902801328145080761002792081541512020139519278863815211907813609168584157863414087153614573204398697817650192463339340988411859830641482000858685807541185311817951924294131543926465438512856511721703071624758801482286339280557346893534955172166708576895969139532678923250370661510544758658272606048763251948698677366630807822926230876197365255761619056757249696921999237531638863517960041228146938475449911720918392017433918258735963862573691442537122487571704176866580317252577171802987645678783976884450484792368789508616734087857761832400115361579981036014090141536682220927771320276564253862567192605654025082506007409377566294776871536277211200279120907451905513685432244111502332300000101245717685854183519226087619318596381012435327803442643072712869112449261300735760615269624730514237883387623622042383088177881899843705480828758303034312859355216940266022999392325027003623910515262334276514161086402443163770642744330437804571029624818231706098815584477446248421323627835681574400494635717550964804992733433402443527790266369496457092806257761519922955924250637028924160327307284619048126259529369278619515319540551513972210325598677863207801661545853647541886674619363378888399841546170012058593694118067247690439428431139738729804765591392870549672783576266817653933905462070949387351800233555580020816118269241460569044856219191829723085870863247205284242402999148240750492001441632418325184615961593210380009375792474469537601511607137854892821713951402146261550126588166365770644229039825910084265519053167279286694443306681697208467926730027103161705097879525594030903219805065650365969127540769703771574955176089744890305081641370607151186346394333937870308690270038161452275548940734338130096680796165824400436350847965360127228675246866699060391595584958598355398651572868785564566328131623182234099841177259977498720090917109263935560897160303532992173337466600765832118090170457981143738925953201719467599135706455536815662089199398577152540893910504104816237902895735466255912502613515367149316929844155888628769850487393093730177858893825279773679890036997372459268675984583428606138251798077763827617158476370895991308800032415488632331618913449543544546866525269415552072900803894611133097789453152134227722446204075437597369046924621355382215276263584062724045914488315243977697903849706845563331748998544056342327198435980683714533840639534054810186253173030176946354215107553821225490732090665086021373969970798486498510760399511241221615405667716960409992735622192034999513351625606452500343193604639227394393482305401259918975037216437222159453583890837895630048991686564564551509638688211894767884268041422529871230486496928467915622913082027434343485947223635337663808382885594508846581020379078264323440968134877641198807439914579323765318508920434656866704458784379575991087788342894171559963069883647558480964776643188795523805268394909750190550588150018589544218406425647097179106903559406690670389242046988731451099730517523523170356600920481883201292320793892251821062235661957611103208716199041592655902523536242003715923955572567375927364401163991130961897878460789120277629611374953411718492208396661571746953174445612870949916079929723239901427587561111266879178292734544412454230472851738500168207476318777693525891607745775767958162637185425616190288780188228786253140532969729962047275165596662885153510585323049746925834648921088638817007954470656727941727342067323652016031566806425161311527029017608809350337215046342508674021614586156143460043354848527601115951240790897682171584257986411831380259751778655948918504869762826845402228445144410668841811666067361641735316606933962847835507636061392291770043028773241261918985591741077352904076289149421708458653351457238131790653314164090013008556175803820844088785934934526260288371580127476022188226524645989174774018276326087112423139725028278135560764039722747530371627783279012386903179875815130466826983391281642235785096011862317650596567901028358591982896233898368527923811836679441555626581169233115145338800414456353938817061105257278564236516147923687588319642678914911765384834666075070567929675048107806051615112114472999144316361911182738741697419281537420176826844307214713290213469580530420838019357955791546922288825987004735031048593667243699251320338847194604936217871223627019848135748227314003921123408137196532254963254510836980416240359790610357323595409090978090065245450144740839098442175670740186251856441022873755738833253721587410722826429390437602965813005264130704530605551107477210544448385796841718315031134636185829148829410489961283607499218901316181661783682586225774344987667179645240500964649564146398616938385402373560036333313356252868472570446596964275927873389108426652197206732042098288006211157478235288526486093319832066490016778812635675430045508795446884362819406507701003729849319149689472856162332325865746061584888906003038626657415446860980374517993101875674400083441625875991950301404127594339847636643271941705304163577515553203477021637588059714182690547490954114066318314005732648656385162161445727751337985525385008307988163014230250940166201742358552970132355328739289172268292198945529569543771089521804947207729486071593886284322874939112810810073605105894952343508694128063428422351848768610356439293878040506077507524129698879123699899794823681319726972461973764227800888339063775638263999422329210917270195536227385754603927098187137990504649744819495333299812984561437899334560830210662489217847463784942657810195615711863082986425684616980160659912392296742613293500821067160099291436231454293433526387008178152897294744003129111162077478420583599562489334948762797355311671829994589879284810608342667937382394076529509999448721999409106257281332844210162357569065508549579179013027697787036861142699984456906321712675822676136126209786032655758301799636495098978934995213361070951995618440279988974339630347032352828228014432220896447678544383651980235897285754011588841882678636083384317000123008962462193445746245094492798809480908836977529805103634230063750754623282801396517811500544685901168334457285623962171461427219963526208774150290572762846274687303975183821380142041091803776142212779581323816112075970505825192660334869497099473331740445391247268943376746036229553501508835704949905247497210544087401238485046037632374496458714045492668318899225434029234621000255223828414711370110129632342174660310398292883171381606400694427082424084555887496784450080820640168096982534768769496916536173897621197858519838719550539039644065322419619975935811914755385303427784747390597913717218176784007032976651711361034393066530218224810944581037214653443007460495159187771488798633476529505940938371602467860989976090094756629136817982125877754947769502595665747340226271643133235876200598961524818270141933570426442264246852550397555526225375875535018966568926458551129608512891179305714549216114395142474300346892588997962681320563948135631508284512121717870746007328775529899659067273590519734640935485589920583960251951381267106907783941351643532945316683214657471310154935407306538348798900123615130318151886618982740015437250054299895235471929213893557007835416431080991159225507935764032478611125187865155114656534914476971349420709425086620985100144159031543245052902482468458823306776865537253565672077240415973702919492164018025214280489059732470050466788778698734794893222811447071898589136471295556045423042021167350863029623577292055198812209179832662469675920734477792477794122943426234826942908270940391319401342035546602544146112747583267911852748970245823862161313095999661570958302758779489070333600315641890418194554247510706597840586880718063875959882538858464260892633094724446415359803370633904424443690233140460471656703108182526561477909748297580546014531739325055710230339917068278598459338044106088593508087985654369385455619043821554261027059676795750030873281459769925389607079045143270236410131838786868254225612594878474427072241226070067300180767560015879399743803996334167570633473518850440854156265841271593300075079697936587761963054268012296381100779172590803392723245092215689865374603996544885807289471927095032618773974775951860636589354731634745822139250526933716744605231707143485482377161132294845881326049829781660891239713404504939237712432200565380871097920307740288438738238445395948666440786732385616541118880431773902147455187318224869223490301100970625966494861006436502072957380973552648160952509660866841232793654440350281396246212632856751101665113332362185942370821874677250080401582892882127836609975209486542983694218788577575296230642992314339652114100567658243758777968300131953465794243741025153277254383849363688621577631653828620124116835887584077157301621371690770035585234950536777102371330808531032187962230625477049385390903616100575155069885953215839615203896672675162272876060821727280269386986197629358189088108017933018017501760766634809314922096777018865989007100859870356519213014592656982876751569982843420615128516970647798075795881710204346423411591543170347968666904510354594247544253533010250627036340969834740642545878115356360646581213197620602485159279369117879627064123210809324376610949916873504159425971284058394905447258300745724062181938348928163225446647535481806792235103908413945228402264876165957632265600952941127912585766869194808465323744232502211621679556055893393094672642325067382695452214429466290056121429102591388679813664220466299524208984505623092370298408992781028901096868107516533047475357662008748236678702455422510826071992218303999994293447682549052410342297815168358302936430373621516387827695119652595523701669551114952821396504754995972275381497615801568317350984277391598377026749792646146465325020839431443659477414787345965506335895205510793004366636174165528789188446302282380889149855600539191105760244539930261246897736885647936943635301608930340606810820200324038084027184399988559327872678274765512785678450271471626306276186783280111995992857084904137655066446985317394691413099582597501869988397957141218175175677006360510402264299165460073415044177768241283420725556414048042232243556125650848921466850926796149609204165677867435512372732319736442854301166359227820087194798603445639290780743128250445904350823252990579651550115540039654089607744081415377996336893391688916399942832564944006390570693873693577574108634742898484321694385572822958680026965566190765786774629608272906371687359097577243881364842349570643830620476191172427502504073344544248876464067853569185055250876163171907745157722733935919311802812149326425404724823814347525412403061029925972280570429797110904748061495698952867013199214574783569014606787912930997560007676446834369746539437872044411663411591229400045206186333435982338844427671120353984530191338531219574793644633298990784690651750543758435040312895690170715864278051481904524200385962727953533379677474612521013371404739048835067122916305773065147037085569103999114075389817093778951518623271141890235569023069009468753109633834704341547413053799729712795124232333942959375748036022477993115985176981178040155647988067413629581763829665334603070435342397551535704833718789232856073217899892581315283012886296831327012857524209423236124990414478206801999949820572409874829573329000356998810628328696341009929960544655669505432909434796769497341480054089467936730401698563557802136088864288216572025809835844920556842177280411695062105746247406286503916780353668291327124506601757373556390040293901263761037588241467550136116190355385492629939706575901032646219819405590038479925453449672247688376198663344604896218108848634724794139399839508630583270062149654713912825944336900217031684978175059376159085303786438902631095896128282037406441725845209380669933223427118634816399409004011299987249861690954715476338364603938694924843916666600254706037422113171041548736318494748866567411989048488694809024042038864549522586124135569905390155730446243591441909821094933463536161207925411997238615100835968952246221121955660672835657137171900885116594490656680726050548381078271540009232390514723429975830331963654702971809103574747940758895832673335795797292534866422499130318634586667152734971701348887454942343707091246328652962506960658894268876914129002892971023436185220578757854181930259485560948085440516112951423164313868566241260379934975874796586423179161476227327298579691691718995775505709984753732714094156035148104378079317817941728995392402882548038486359273149782203068300690751672991513787217280847778075062861417338837757119074582102807357173436048456653737057846946076033836892192950944095321908759361888973425200661620514742465813769624447548205636456824903772458306854650821551959873949876043290074734298821835082820410208573837500059087459796612525674376708210854305003893705378772925849255820204356005703211443200707067792874783953110228601996915056535156806029563512388163000985750363620124693819944204068314473905693389656115901431234468980426031765453309180108279665272066268644915917837975745737255804886396910568701655211328893684245004805394447158851656438627456314237764012980867803523373834880712054909388031426427716026445787768586171269745310102486511260777682522670535965923125951344885678695062916559619759270921268180968986495650161189636372271111650771797783080428356901487372999855902513621372710540146267255276746389504675055152210737281828409769575052412739594572328633751358016728977378288591360690981547434707986446823332591205309050611319234427168571944278101018165820966691474890803139041283611439204695799658388482878750199258550733311330966177353299233320900879891057747071344806854832167997687645602606277364223725568160835935934437240020039272064235790372125187826973727436323922846778152403072869609279586299521511875730451419456138364039426450456255606348629479975529678271672701396101718175480897824864018382204316804896563612562780297879793158048339571872850167563143849761033896445876667838864668715270597096293428036197076862924525641159027989498558611271119060564433430655591082634207144229048210068801174826262491655537801735741267485160645092048081092456701627560293658923655426075147417235864059700181884612139371368367191547544152709119555144981728996521907087695553031585103434945489926398710048442844531372276479046007025904092231283338670117380830128655146918191359668965485446921865474498464670433439461883403748672134376029194875546595814683386429603314516176830832966985700904594560571460836891064145643907243789835016738324276115968747346398442137164421337082175401760164703210529659343550755890845309873963110338987917996893536765816786171598866078148689513802602465387497161095806120607142565886974806990499138788486319536622780549891239105356507588586665064871257658332030299822129282487567982435388083620174623380811109511976900710506663344570176340836088559966829889427026091227092804208200024495578066524187366762609882925917018831580378911457995234045147504549930966001467055215808019879749063288823945542361034333583982995263974924711753152369253457203084651449249311558926552448894909432996022208898612091800425219420698569597144660417101095885001152149724505602936822598086545722055003016655226434822750131341221374732287191147060905378608159912772791915120995375390818801965147828675417449238618747405266371301420922165879530151187073641711829262494546856166153538920564568989506472207199911660691901095096731562331764639747868550161643440609696884817562222214597713789131138370247982497949223599646030294312863389273447152956387607065393161425021635271477810937729672550367809675603237260408956000840930735653065906577360444878617626386598155100455827642816806454412322208501748274101850072406764652083906488031844189751737520689395918330369171273993231572703637129923809255850233090408095566259323852135320279788751201476216977643122328180648819492089115995306954216699612333620224066151988448615915496353882497111427714591138578143925806053402614109148798391356345517852725402990085052141751392070517424970977259639502880605038373775813618754127154462518265816949290268861375533985366393770862158337450821974159800010104045212635647684861743689936134966931171763414358430932011554323016827978416346302074710235274116406265179782603533537321952406571633789129598422440186284649706451317484146940455157695801757751129148171491442803907659682307517946451754661846839783446320335597796095102280621400491482899682842334794205766073576996586319417926123896150197331784605208545740371192823607638402271849965104912012605549677639759962487837567152491464941156038562670025015283998467517540584951163252947719296380017596261462236509843647539371120970258894404002625813515076864051998212357242901512133199708225056161906802860962781584664837248117696322397327544860601246314390548195660004264937249650945758318237996079930406915596149675644217755346196960913836618499711797094974263844992863987328637323036323514518217134043870230618392645330377838621358159868539586773018602927612673362428962043437578744692465840776927462013885349263221337752807278343806398361613987384438893759162619015520921648594934690156982224942972040618921842106135959818643779799143341085305425368076138405410054026521686540970732343425007661527754857122622799539041371994094146339414027815424981448992208600896519030381727977677124581980528154605108490140338598669057184170176186695884769291172994947975641431557770690448244070132525179998853212198149878120844477696745891718422982855607102699815631386541411719720952265224344439684393682179967986690240798944609395803386738690782313923245701037717933664931040154313106769678254603418995980054768137521532492428908408616176428393037758973691729305203334457785018472684513356564366636937108010452983562870033003748480163555161911440344030822984536736846482902523798203625104450543779424998183389000776992650300746721561021562700939228359802570784799819561305240598003779127941813895164529460523296577032125140316778386317883634939735900323266377315997039278662601403851339718542191430170681132837286080359233357846030495931899581304711976907155318948128240966468626378417872666142577474251657339407530342200988904970002689100178988431137022793036546778208334024714247131932096822386895163655584144813794441756715684848379920624128771679535695275312355148655828171770687862357962034183146520411612155458998387561295659509205039732455448361972231505296312174159352956713798890869557573087368530698434075918015563843463802723325687595815823365464056572206368489549705326625958847896299588486074904598561234499590113553222908449906933861440312333431866938708419091027473081723989652823379821226765765533128359143608381640594528715711115341334379277068811308980625003944816844606298443801829861956238121254804803966819274947796185565823531281976375144936340385092434039628215541393643885530322853147810131747861085708355580820470468881647591077113505451438439590593867839856172816751613012156614462922250082639220162790162086272240222095826897843571527987644148314388698960410952676475782513222621133771912685845330925986715041170912288941438954114316953180853594041893551117249238621565516285111243795739508074928214372715719760088420144858984230156723585348613471423029645969004750036154307737557768001590099709610821138635509874205607267160439613564805498183179055170421953044649252565672027753383663362369486662796022663618447433050962701667699776781820419076655173138512198183512491966852685263973595577492815152571607817521609107755771255601582277597385869790085797853215625472661454054536605165974539334908322646395538902388639506083478006448318163637009212704569734370507624974290739285712574903867350933056633936570404891413042070619792287372667710480328952270111484283327968716403207299464571101501256818776434746466617311552300183454276840918380790449916234087596907624208243618397282555271284921137876431419997360525097374893607501760576773608598696116575738829914145658785299433439015950538816856008433891049749906922641004399669299113659238245309549583488070548592953277462885170130740120051946513820073969187497830372610897189597048799613574321519444865481069706413400336440870489037808053097399086401759677834605037259584812702705386754545139746661174515032280854678376569026450144486085562774559724734968516256571798761292448381324564335893856767742921836010123968521001557954489518772359144151566758726335966058687716615321423245351982970017461164164005888534599631275710054002628226751816621299062155973751313078316823237137119445892011107868485470213322112451737667437594755832571327776826502931509079221134339727390905193666374130398043151554801110693570351480624425303984821498602648241344950952787310276564523777525594976453780563075543599289584651689547322680209341737241875369541458745329528948749065823571902933266047260364894290057687188025372323841474406642370365269523111752155021138301479205584706626932430516593479721831174312408561947353893031643109878568173948976748695748813284380728917326451705204336865180160622163608028534595164485791329517719513032984237684944526077636966616618780684077541320165324796232114791589559900488154719695561775286589552938101665168730341151597274373633396478819625100038345211629568715193486343615114307360985765902931666527376183612920457979556375925314059344991591113339579676726294467671747838001364009192346001759989059654324669944897383286428827075685750708065259105641808711022950137010294209419750652803400244284465575980420195299527036454351445785461985076837247215840566266042612496211789549956275984376543500386084644159279463530991243788790293516326931222042921496898276323957522924165189567968007860373312711135462431450326289456505701917444996040235820649812256798465935698323713982880352338755694573311696150338804925415763684420301755683949341156371769286646700787453680728562207430476592549422685666420472266579256525678429416587773052662702376389084662272353746695309656984250398909734042837663988917743245310316681542652491699861605310258965603620431662491264526431415459454203234740910609335185092177839484292815096639970878849782160595672867334794824400005374432918640474165898211223387417322666399885211190721237402450613481497231690224297969073947988431245627531221211630764296102050096134099158643580875161429731594043640642766068114059308765287046598798597841908045421055288004165020317669815513100583642238777873956832397659211259865228030831274809115852115988500912192969835326540377930277242689271378569998419806976368457527149955651978130748140961472560573111640291964689758197798097700959323872264239946949215984547088214579941590931066345143031858138080465272051988809673285329970605731283664016700639513664741341462611873130402237018329844529047603029948886070810414183431674908648394126119875226894272639956023615545646241560671712215890441654153168115123800550479767442245571856695988493952274544438698112440905223337888533448862924143212441468213248997027744076658034030991734304664762887152649319842915664594187958342803338689925159405654628067165937409679727294518393144492975458598051034771072940043875246111908872638819699205483836035867121547704468277383965023327681500667968333424074868730513303281395578288994457352680734473798043191945387815502865244287679832924870041722196665020296773425689463552938857666339154099509511460820551254197903637713170880203136740582148678584009063607362324470058202527867211184986422973364423173572483544483025016587462453668588552475532059026300322519063416148706359828528255924980261249332337899531250403406060825158013261773029819697706550855255608748774878384804330823824990335304745511307253344666160057555890889443916079737308765366336817771618505973711091674028128592808091628272093661079710451065690096260953346419042340570106960659820072039268567202613386271372137332319035544956105408395334547769215405740654846621016703677758014412450107224946061587692961314151470895590644926791895899983834497271713921061825507328893080395598455713439744065326093265261528017433558666915701702778418042685373258507409448711015265167417851720197517763502674589516070581306263286880846134762508760346182779097535090386269942180447481732056007756927249764002783803204512641136811755491458113079566019657197840761628988213031535259827558095264229837569031977821932164983491394056263822971890017285319809400080819972111957761071159023465747156254164301454571836526789968206248860258419952442141117119815503700055853461435176503614194494499828859582231873554212928908120082782039820752260754333133291422223212905957932245311258669641965454473633870372539551449621259901687578918050718997797201099600838091079864763359938129664608845091343648378334864122641311740435660803636516686798227419671188093012350138799730611178642663681906988464827785096392142233609327551993454510233710436290477144693077545990809743080188405361747389625727396374311378465948686941308618951072310214417146094704706684617472545398741446120117988967719669352432535737995625511984625554987808225430842243280599086451144450318211085064263987059207048280907150716518950427554627440403595868240368394769368803929470231327159327083550530040105275456211108947077755828290145800104761994896531863176821760052946186686608819271421236961921580022019735120638111627704191286165641112716340486095930534424465812109097743822506738198298483712052599774565741100379220531901656342536771879365330441204797433282887352516293552776647996078983178101750072690134016150213825027871413031792441560939949162606515910588247527731447855145393294924016086987871777281436286284300094868256967274968219763709775085023795358181082380598172284766649449444737930167893757185623707539118203792448861749901625732395565550991916879252551571434748996400237898792290152669365924580975103161929778586620997224642561284866440181167851226426852809110975830780771483563450788106246647492639801199802177523417669929535196894905050611974771464572712935312556781132434870616651042451485508834401322199949997701662129301312399717267908555748531986771024406881373383154187574746685154303967953125072511893410785313040370991836789135291911023914736835886389640367990512856011524565518818421518002887977612558410711880380011192458981887504590915812245773186591772760722505021469355117455488762570666400868754120159255602212892120387888411829908910863183837761022380460083469786660660131675569867430446607164537855358738862836939356579407189369014213790303836470483977344824899733914977540066061805097150818722307991454645070387532461808292168810234801504309401716351069670906768514140399832960845398343821492175291275149795315888899130399903373391614589863552448381476119067633358629427980845217058129481314926603664643169690755165115376813289149251296062677044157971506926662329415009095601635260553514616280060551052251736552021706128473053161647158647199599091302273947464952489232859672141189948741458774972423590735726377957511300997888458841025626232937755967879435915247402316098960107711672366888904369837688356415763509765993599808792048121401745485239594733664354463781510641671008951321329503940669871136825359143362424626175380971026362851958866227189800084880643418051892035095754223532164328182462715330501205774817701708838189751601808219777113408402705764432804590769967875333924173218654521088176760370334955222099774988785507805200257537117661440314105562904146047822682237069607716231802220916812067087616706021033187442220008727603760512113012554473860690936730461957822298081992358333509342786819789148513427521589071851294011287396163922119102292670248545611391462526204163075899487075215935809880337718195943398177339889733631197382176128244283426977182149843968522095833519212468601581240251246325594417955824755155947250355686492903221768228907511409810140177267717825932328174905589186085578384108348352348861296092518907308442410249865109316854480599352219539259402336443683281144852300424690508024254056121543715605579829225304020403091602048874927093029692828647691328162059039005058667090981250511710354392799581107888399111847707360068910698578094889835266830949063259534752230464332049741393683019373125174479065944783213250238191873312646426897273862460410264646684048377389153938855264855408785494672152036033773445828090242579724005941450805527034342818851303495791027161451344427271143139483609026607574833871220554592140716209345957515362239606431175452658716046319619480759982738539624968943664357884972760274534455938082172188705010347150919226201624669057716332927181352570133129093808700237371545936050145079752480411457481167481362707409752824645440761901843702480366930076272871134168826397189304075529258731437392190576710859828643832226989942940302240212437843766285202504514450722478213995562826614589514269430806410714670024671696155797649561433007266762671611948593774192093723074282772432914252066641246362279250389580181854150998883706497211702103321953647431528253918909013102691021196908339521812692003186107390982966440180756821936090061582483826950523717361073254591539481162361475444714129591303843067617294211152826318361532203345622876349371865011839789926019006666778315704451130148314439417762902967468669022143582992012823131414988616584577663694545957574986619893235010126006320337351127850570618454589287007431561341102827655283461319845447674206519567287586189278318750291028569774415378303288837959951362838802652286705489650947516983298682534472059534508799810693142230422596867445713676029902856029534385634686633812005346547986318320750910684617098317376132015800828694432782549197289596117366173581325783528822776733346298322549805987249244298849936355311672783674387658819746692770838589564553634131682768381546263097612147574505451010595452512597212796787334792215888169947277345231840847082342629510081847772513948410668960862725562752228474836142843983371617633400809009868109658889442307057421477418684381317259870500517454544835316479060829995108450753474640434118988717211767503080677755244771706810612717157974487563106908818537303901490161330021590203200037877427975963239183336737032840512661336684307459206609782180270557704960043113150301379173820598164841246800035567027969664836376419580216944055810318973197598002092552305235278760627178633880203170015881668119762209168121530530735980190089897032482523498649593794478335596958715539547401424570384297353985695132228754091394651897843951425407035383020580124272786807504825643824506179535753633540827462558325727662577318062763637277544198145758405540877886578516281997685064065900957136464631788552739622425480512999736892627324136045924842569927479206053789928160409436002712866031410853876400806119715734511321047718242730821478387938679981687492069401005614290699547196269382157939051164079371232270647280924048973842908791428894699353200543818325604880132979707584047179772446003126927132867441150020785874279365628910197579981068221464680994257308971550892017377029878837052367140837942818530888003146170488261651977592339129942777062837217312637038737710255058533968448128145192160478344580662498086749567672360359328759177351745686792941185411069601798613978353612283912826779241853310180921234918709627305234921718420740167086121724713975200523440937745535248039373277692230534723288200240086333231925765636134756783285109436702942845224869526490889936890136071384344560642829200407327473983329094227839077903840581131278992065754853731982645670258213536238432360972727475825733914799267036804349757468318411964266291981772390456956486516836328952232837878212806048115554812582458634772873655868786228801395294008743890771371795508466664314626106401484149528173300921663838020367059923969482079724512029685238422908763938820293281333025289967457403834598925119023860747376093081896408588844927562344460026600870350605803151635656825107383613031556539345635553185746634651620143374559618205286611126220736207020247640966682508203154731201524352671292357662590235860254673883643579954128541468979363644289578694866934000322334251858718396175151580062238857471107934201152376436453991594596243952969036689217446170016283116019024229145118256303897971460927888666215523975474097044778754368774612573262742068660698344444720886182714270369773825655914261762706146427221092793270363340484107669376694625239164193463544931439924130467736318701770462061426245845218879050320770975794038570636276052086189884461330162593775000712378412248463902847524014353168682622091934783212918322837352179570303800700016133372438164652246182168126274427863540515131380186030139591114789743870446836710016337007155367274828530765015649888109349485296785281713650118656023344279658105589566382839192553866176384210998303455850985841849014644883935464019724409094201044531527649620763031669521568363305588603284295201035685292225102116535547648385704534739920804328422758207912234494612673605247839406707113816413022713531966309971130513932516860928096545756858455862620308875575650101566560795192268180197888892084567694222671583881868840199174567214236135927519782222433426831938719375032654060626239058230323766725447377432295934492530370616677852998506152072836824009142900180769170426272846163493005116095097535427615270553147294822725963198477430636470954171829770961884597756366031825752039275463663577724763510679054130686613346726806238261491494909103666970464325631297850399095348656723918156970754097683761606729838096421200821369596623229302184097501574011949351517945299505554008005970495152869076471835205272711437535574759531938968696883362286077822380427756080793677529117185557651668742548459360389815156386939702767645772644116145719178915410445680394751253674606824998224639990546411865398772603593714160187163679076839931053335318375409245670435451797869561253994552863016716508045762510729530158897760753175363744847080997508857680972769829367696543795897226358688214553765974765157823685516170025529060381646086923832940106635430389920926875483369695888503297917518435145120144133725906283564566855049980664847174997033321339292195309286468862871772727366355285605234348443522543819421458699488144058863054136780168776068700830655470910073423426083242330184239291570308381873805409344570543088194527213056645014349522756402987777112851225035217950946003336596272061154402834396930425734804535931471056142891863657198164289129676457562736456231501418322821124227732749026606275696494185381969485810347672780400110042404864840651269089364079956335357677243207443334556754485826832602128650243246690067129027344099525771184636524107032727442120155064616403261535961220928568632935719496336641259617471430453270641674624176720737940736249332011483743231592022445596783003923096808900199994871338019268358935287005498258039101782214374220823627881933426895776603942702464887201612368019152561158673690268643744722865049619626683929317703940697808084884201072252251717496219646581176065046678538801342030580425831004961708590835836132271351283034764881824106988645271297766531196553278719201720209321396815570414561826100776489497036306308725999483619911644322599099339358994044199303689670203639864229746350434097735237840512506318890314790369020104730562635970258489974476174520091588566226913025971365925476709546766549207273000874391066772401710731164738050966299892071209738104725638197244846825928473539041273033500774292546226301455953753637648859743324282142757022890486439394904467716439679194710551460394182968587541808257147737956054757545598122029113283561495015079013005673614524606139372948487400016364141605515146870353150135723846724508682063397078331526328866027585686204684400534709359166774321885070945186250280687446891842330252764401872072783282479462702298234791747377533701473637732203628659220334369069396302187181105138747273213551055714675646085020982904690631780744610544977979961830681875507865074008412892490414592924263278384854560145358890912163514813668164489185354729492955086838884665799500940898198182813938959452687382293863736027221964514705529357963825957983129378446071450376982498361419409835809921771699070662647831662846709017952218995257082593902809596311593508177876544627389248152251800643349190406605260765030450581055001908522016780753215112606147044452008980470626104690425996510601251540870154737581829807137846434553852968330277160956311907340891287072179788529379933378158655283580353411745656693405054302751160275532489511236326451646482400742661067959077771106530502955630636293819066425747854116458834952716689276324675138036038696741831355078539451414852838398109963271698502739763982145700528355158047193082113094703349741385744285551184689970655021238104781284663346656264432496398992415660598802074128799285404615571479310825557382843094011961756504042530846738677792127511130567747535993504207615103412863864943558614673964957116997371248159133782582003805977613623320271245800710986721988897950773929336717767308300124245215728830259836565068352462671124256897445579006976218026792197999259571551281887627402327681890801466251281156657036448381760708707682622966993580701191170192831995617205956903054718294441895115020034872385280833282529275517937045179204727275737942360688951220484611382882348814275023108051860630126387422415079318060797869529422967253764800976006014058332307905191012491953069072726473206364450526572150712004364626703852827004970977757776694057279007281028679820919327972909924344497078428212293251467273837814353896306388357134562390250030501107646098832819531495641486589338200688221945011188185797234461805318038705237373627683643033197014002351086156815765555915468674479514671950590434812507322164349112526215229319236635217403674835634860288925720317364646847298669194402524043258431138085298446037189420887498814015536879749120475166611995006664319924271002641942937654726779774724653579909846616528152310883783629398382353184600185126770280872000492082022674081744023153861493079039837035931350408726560513870627276104721234421561509264118370054233729067798936741342151829701757126037511949532428312508407803961282402021694761398410677158322298931658004206761733725834316499883833944863238557972473295741017524258886667749852395694861959543861972993467656793827106787712824310589475943870347854307721176495109655553306595040260147479702634949260967598870204636707571900594731168530542778077395440855949288262700776796928288743445697983068174492966291231048738986119485793553701579891105445662869479481330178927576982437848455013278877266164523691096722464278159374042579073057232251499284728417752189665420443837342934448542048578585828983280802391720583254655783074348268815790808715257251696792613186182464556364948582702649089466832705470381671080662806196206946788732155814841514179063114347311515112516375257108475193797868938287316582270647501677466255971745197536133735092081979680373618703376361734061312399108628847215851960877232579406241910727523712423746288953014162663684624515739896230314939496333013377206606675428466500292300618498168278460308515920763249399397131319605527982740008253297186904143137799010058388922168831572638477011637428482876721907307638589568176352052434383569191071479598506962048788521901411381976619071151155575068490142185189922001105930063928787046648994311431135181522148851710091113772046170119913103905361303077925119411042310492246544828729494706296826256854155776462851219233850825388430144104677143438745092231368463215358974164247965888318719693742119364448901837858731563316753556006178523734884791488693127565701702254921911806876349643975145721161644346070410867105603387304257285155345154581741485044804168184946838054434391556296104361953043124110182705223273752275442409286144804400975765357020022570182158278270845003598705540422116768245964749033358153486704222311406984229694436018826236688549546905340436346561061795291774687941842615460591877081345374372499902040367342822864351853211955604171025007810549220744526942619578965567553448140008984247979569518879570549280293900213879050499022277730327911949662221582971189331354460490264515115735288142883835025945840227105185844624765976828281709478319093995603352723896840776279972817528515858368914016768822333208405733107547179844130489848244911579672862909328967963494948180231853832723868545689572166447466777039876322415862746355950055011182427608738574953950918785193728578438594477066795895650848169599823305210157567909656099061164653691443473548412199549819317482530232277102524266801437484837861776304241277436483528232544987424885609140936558539258169792347408103729915051571798932618791786897055147035929136888386891302631813571227406958052213334897021038313256878449529048112531019752142722491137572313757823346015809618385577496544526228423566131878621848484815074523115971334741247077388250421862519367062889246075658811018553927124698773844046081658691478656557483921919139474244638531323574353989557835087925868793097599414268802998816194469373827810014096355981846817368667274824227925033318044987070920930445674668113077083351669941867845695836326768452914384726684371034116581343494579357699507350973381326415405671024956037781413089687869667554279307189075871277883543024644104946971176403329255756227939416078501485654731457441691081346851683307659932344119835435556358640247740766588544653801324762651707060098937227411568926147138844685595030595129770579859502851511757973326675475616288173128681985949126707130579911160689897603825587304633860832871909037514625070517969394184262447578817349728807820335472222326328849711946355368717807869913883249693160265685209296138756454201060469315229616166922040890944505810605903058810243229479791456356226415172571118314723156496424125708350841115040618624988788516477699961710680129607290898388720667845101206884903153325005875804400835864597681627234182241346475979284396215104045346133660078108631549368864904622290134129226565981033831319097454844747897841678835580854460207963433814928185124262816986278281158236341963328680814667267942948890710820673495282795054611449627864617706921427760272378137489787391022598314362445693328001388432982984842774320524970568080165464158201719280262038332845079116864295384611594190055521882937182452006108164947170125741971744953233518191790520555716961389246165030901077677368032630561702380615431577294203311379828671640239305947028614971915582180491037702760302345951544327587235122076971651726872167210213631748108494466319889895388848144185218840581134923809671478348071231989419702247684854253192357595570650997438492421311526372997922595957436515079337272875828076264788427090758884735550122377164283222988139911093581116802708219212251588397307731947833623470335403677450093796165529852005961478590974237762326247267859558001466718967512795640946041553047343144679413639660770552388474915987023359042066938737720725306844257200272624318788393608892540838426382157147751640173186875603529362500982828868769220528981903489693430846099019934517089411433651837688209231256470086318006111213023286213858413333610507726525308466630374515152664061097497675458495250399546825193076195037696694295359623042545516794467583681331687141040353670444648043788821125887337080402884070156670242182123386654472353154320582878646112417190509773349130131201106904544500973321997216501900339060294305302114727515763671800451734879135443291953674707547020961160198865252927007443538847854100657857066536595710257808151487161200896054886425885363997486265062536344674965134245983406255488667185752323199794365449996717641169238205272768996573126834905798234170595603487768761633775207088713298086355942832670475250588993435302921005475256838369765392091916727391289479752006940487803577764290339584155056057775538015295108183139642599490375348018171223424140534148130181142558662450928468677964260910417316539336298446748959791210785764859966053852800769933172470485645871425622279582497000986386822982447199213009151165693623298343973029657229103907390634471833810286101299836154668712483411960346759200339705355155690700743175147823149947947006374608385353409266412039433681036119762902246270011483116612922532523358125330936461612990542505015566485725107072063933707576206697931413597388016534146731358840962478233423337045515527510806459114303698200576119673024566012457989360679931561340578690525667886475939145528896100171566647990844054761610451787805311945626816653321063896069940035903075362426426156881442148821850773468011728910577187437477557965440848281872623399027905813832239045475322193353229985104274761449784247271307874864693924985607079120768076084143635038172308696270781896773367773872279407410852483863837149258328789005991470167631137234632131799400215142367118678202510874841911031086180816478525134053454355716783758311077168165551865993938020894908511454179249270522114335923003692775026812265231907942958446011198515053065720188069427036702250757999620853389102097464609542804184428828957861883569735966796343821298683616134348560443101808647502852238997871304694705358505362075046131634453712842624621791930995705364789435800584521386473355499309907838868375397330098125461792116366492911524154871178154870266770069275931381449999193959407961099563916509667468995345572908596248161950624221701890724772336625263658547777176863563705315466182575289255941396064090397340253489119809396001652972901568885555785941630783104180855252328438252044561042493164735810133807149026726109358313912740429029920775923616763926816992750864876058817626897766359124142893375770152109525933889563312912938847780343585913857551689385689296597305906116323165385475389918342664643719473087923063494127140483357491063370979036283845178553956839287258501574904050327146706336825659271843344138602572852484478201394540069437579258015153254133876107568811775984053259376809433079863854443241257706792417792267729189376619840122171584491161206814693801390013527871745812614742303950753846770139741269084009841558648892526509866469263517610042325164474134302253086821971573097071507526436156855482681866862273207297505475089864580789434294202928285702440027420858110915192191183803300041030651299095905550971122451532943836343896987295020752967445894582032986327584732451772970057774319589338853673850930550103023478569048430640792205872386768260292178142390296123664370101862695060074083374373632636046100315537146294665010063594616702829307740399517185986454032649561212463090257198138872276799672028459780079471261697225898925869010778408999497597577033613992280980552484067011173892995350002201297071867505266821459193054118731094169754419869557248244426627225662752316684764212457846743472802586382751810137535725734089607460085508114509975441686811681160933498682944355882531752187209419742479697600031683662351789390480186861296825492728372375456428696197733765117182233933807521851685772834849349597673244160077629685462296577891679603747729718985100187705353110671395163329243607950820011149316322255636847134308018288616773844085007899850788398497903016175495013027608524371298021606645142318700695159094597330330052485940140564555903683030105604489272549989485706568952456999163698741957250499612829136945938851873343699707094358838367197473204099963182814090984852599500071083177301663574878759903566195611585420430016865384030196511467984555940749879048023967425405270881087304496279886932166363724141376017003758527987864299883592496762818401538250644832494616011775110991908875989809377099716373970806228834072971076871706441578004100336788138438456454324042714825110958764583842338956343268231297738273102777946339075945633413271926739181475917495689662517254811034542151581885736800082029419535793669939596108278176567067009443093347746474620994289660641197246794433724324442406741029262778791459194284841945330616571861638439178631711648080414714806955298818503971451481048284658393226222605195056210224204377930007243053507539211576634908526496131005490205614460989914421988874241476040412233262959968246484896103176818372202059309891392347428107309090361926619375423376046558478079498452916738394007250596850887738528602574716250931004917261202027956076755519446650963090819049434386157392089837829721196351774393103439085310853267075817971250926182699128822199792624515825299836092634728176398414929607771414621666922236828012061382570999505577027881114553003706255850219280541929810779600411895354783373607770366282795767966730364657081855068566049745274234160636834072639675605623014437271434774781063404258755205741813627624969723423720707737783955879313656706040152243706147593430387518648926860350831425348202207407141694309984568356471672686176302650608101712513201183348977526323459307767417158954857731861410251348495866248930229347403182267559435293503072859745341474253561531679573769162460863552678067963062147762059444223310465208548885039238818788786232705252733501204091924602276013944615047461072424241496520514246399212203090061897437710464269398086964955528962507016473749423439876937962943936715043047245749054158248000089957527379560776654089745666986874592516810132721501153797684573240541726610813864313957765419804232028777782386996790659405376562395186600471420544751295232749003732874544128806555644343985322382173288276568924604104474776531392783430129508420873793770482633259813033620397177127588117298535141211556574897465512338199406469805364500087026810796072448330355170426956831910088221385830086368400322966786023669927591015999993935488952422916784291502286402523804643048354835099979648516358348200395207865870527587565064854687164598143066859322717604413219010843841469852104476393265305901214010408897588084709861251205990378936437215012716440227692266956488064158275958261631742799010795284094517124332236501326405100275459647552179019984262988175224950699255890114539872025635467184801841630791379673866606504561807507444045861230540627104467943221692058123339372685417240085004385417471998528639852035704704583391687722794534839363499132408135571321717885613216275379045195463009268915095696109833050301813613114890812856309785245020860804011445898950586643035290617522741804708383238240011511890917039288814455175862846822917958401032122573406215020181252782033332322984956093034661009875065298666322578219208126078324392073288206866974666883205966411681100081013733233122590914582002116141422807918944648995963915058302401896845946083445596949213930633199334778857710270113840285716416386996679691073609676470226536520610199489386767172797008289674136307166362109773834513192830233085492654608222718561480126457361883523106975868654631376901872146458186516604055293434527456414200691907818367803474897120352797773147343313644831100932784971943257998326568868705076865155404068404807536853769886894451130480054469661645122886200587868743223988796100193912201007828614109492296125926213823618367706211888343851575907489025270864434988423010685699986074212370705827377605318876351579283852758422091009110809147141312686132440631722981263381031297219792071714046409813676840285870063504436443813490561556070453872420275917929058592256899470868924170917706639721148035797081437591583682133945179713708855209439139152129856727104263701283910580173824031247839177926645089158563793531308969883630929770001022172469054350410495819291377210416136670339350279013989951602446770006498996845303382711766699685282215713068918782075728146961030565146129666681463392017218425871000623801693333845427131455403428600210774628995928693260784367574084992484913406340775579709532649102751377156482459134828822516810365098142785876284719659170927205879873926947111629570685490583671476642232408082020932220410235603287628718087422394976762756167698262630663132643707351970950652522293090924870397651623294801271888999591482024810582123098461073664297729002672002150293162687079489577052235905848484890179460111157130759683465714880049617717259719329929582981162535631932582025692373324675537080497916072526148582980295785933650559510854767020577014021757517126506898201378163906614094109089717559074317301771865954122352971742019958004917679623019120426071969925232580159450415345375326259488160132310357185534816479383186694459240476847934774105516938124931228999252694238700032460459167358535867476622747445644036425631051697477554022979657907667313578150001792777251946581360667004571031439131294704340580538455165934680891172459806566345439865608672778558421287794987611365668272462165109402500150018973745442045160105011657575908929090916345558004206923350949493340033821164075503909962797994452013182174546248743502809839640172889290471037883372646825651668003267258625557929926615611636046525413699508804761928222189450542991836027113284570929487782115532826418859636021822458426044924407612577023759849590057054150490009222320069703657833611126098670533846029436130083693249926423487776632819034195056662444368673629461297487281105668381159483661162047857490971653675351402947804914610214539652040598135301565136856942911034761471593751597769363219523725846398591846944495460738144953230175470863374421461218633980881845118126444943804005730187916294320301682475077989369869387618119940863571199054251543908457307488826785648903592747232273611668396246241242579217027896952631333783683408307333083347457189573822212963118421655622154159706266643586748469461550185547262773528272397873334971425267910029114251626764515496140126880236752893426769170824336041885327146627601497000935129194269088851873369957453308850028209760615534053660515902027630093596748086655603280619958384234039229919047894831869403650889766134729311334003808426065223188323859716179987900961184735199023072326866399412397291380929942827135111895916390552977725732664835484014466769762273040516258953935770204852892124043108318626362665229377599388621859532677345436217061767414661605074883571315118060889017330123854207000822620164358483653499093029227426383960207872559310995034565908469598170404646544074505275883606831705362698652400921506203163004040496232055799486085639241091691175065611704143590753378667898096593137277585840206655799838848245355726763176217650272942522357713723141765591383647389018411080912084277584023107855721670775451727075613287273747567058972986198376013552311783115936606790157601114892437455608065682877175958349671314125501354719670834053181624315361081140972870482193036581648817734608952042071010454828679928015523753554726795253127085043260516459659123953005900630519589203642034941252161388711812775950787369212944070300458829973141337851109035693830170317760866699867541402473117121906253299704564914628996188695792190209370145490705726379466321120300185582330368772574518677177052114931262164537640054533746101179537291210264267167199428277486123182751340829781627683909947665842156561262234766127547394551642923240175994772124043499222036329199119864812987710901941249502079356502415740623514862250523986828280519878520548334964676088983676204948497482009968777690733051499052713306244621154432910681423552535020559271835432184425156528453697430323661987605318676204864988939985775172853639952198043767850528768349793721698719348207830343972404214105363843887125991712281497597744725750385595584747484865040252961964895875219590675699886560033378596443162199439295429773842580830321662106326985071505018267159212878064817262741211044012961880565344784662068205599309238277970333400568792182537796404737189739058511991019109531028034949394233880846049426215042901411686247920219222853067738516854737631089453162568640745271026651801807501603988667549848296602244529462614956601647474509012981271123275689673450900354542235371572192394267551416182028350859578889266871059124512500542241870928269501130726299388703277578892623815229809102011649827124991993213685860490325441182679386515170026086454871376974494163533985658393268652226905526630025911712406284543752087422436392496234480263441275421947381640542434175681994625234439651077015234472666838547226483539165785567063118819502038873450697981187815363051705897993949527767456813671571385026378057166149815876769538843192297470388972805105785285092560232571035237706826049191765045730151908852726369729912671025210389548147267384731969159153853058464056897379226299129176279460511336194924378148156930669268625005162097399822578363368804574082140563595018841517108041172767691990664134172397868991525447943249822803496926684970713806021633493418768933148931944412955851398699578410959394717254574375894777851614377665681534915376983237680318757298115932902325188754782089140279975132114565952624778850782895482816506455883506521623690244318779837524616119545723478872428198428016174655130814918046023617770693205108204281468263756126497876864598428322497475456749619946484643253541817741493459053026955649016238214855668368103377086071557781212071648449158544499904040377624090348493895246687008988548055293006081586100900964786815501501657283668408768460267827458111987527676656287120988977574468423965305039224052641591254306081260426045262675926577100907359666209188134569408798759477998375716594145929756519003989150681765871121454262990507256838473502464913829034562851791595379888093263640656011817578692834403428560757106764366560390079288849584992332062025313108555255682892193611328229833168439989136980980892654969873717649384122689446905760357883137523575996655028614043915932685905330276854591281175942294418214113768887382702767708132494315541462351856314449797823718522609649128758575701130665319112200798853744428495523066697329732780299730803799795113199288417877496762335400722358850498833968675463495373854616717533766784906020507570609134474331938635218248432692514972598833171825203599523708944456384297477970301768750699197276812477501418898257263604914887832115490716591466026581322130624545623210972969597452035565997759685629356711959957872869214455606193668093247500081840296155172467333286447187437118645862511192606989601171505665591440960460865034337127808629210307483467970344771339116236730680488277059944876431507629681424331988508962871175275362500938633818411448800880368149280495926757169971731126189221918111749123209940665522026212328512463763279968355420499561930396539838708757732890845723268614291964069061285945802162328465078217020716499554089387312731999676587527374488431151687550550838300075876749903860039372195932754688425758081329003316931435061732020980669253402542590224806362791899999526521040437266748487606344356191989073857433435193642172728815087554090393812810068680524776879159828756055371789444906752656790520856183566058707516302302706300599674012496504968745461035905451090350887924932410456710871691373447887541244229957345622049233224831155132880722773339025373859238484549672599592483217117691761868075766933207746358694950328594437039820001542590472409411836442834613895189058916893387271375003593782945986410151058905643507087043757618777742265832413450340754397914296357954123699246487082394828352307564198907503111020570371998933158565638844761764445137030647273198651129010937843775420213633679822356145321340719940387210458831352601889550754241917023995224149461917131183256075250613671442386342557155610265673956480065152253838714932804276051304415001091829269867446665221308682412545748571266848116970277812149289411821365810901763012715688536146835097043215033497661381732607352397098095107010186495280420792536223396834222740650704965984624293469849107437596581336188827289568550042280109695883145733233431065386869621648146793367706809476265024505730545209400791737596885451448015203424271536730199605295522800628653568222231900724798640607235058954215555520403587215105352574393465626982467024833114707324486288200450361037006905575105512161915729414592458863129493115058007863871972956473380626512552532655915595209821780044261239313975671787592654860950410566977623854918288450562702136246281083745336288498886562704766424997924510987239742207551833134776207188729186019593758676496766722845073181249930101965310465316152819724370816493901250848749556366650007688724172706730082185603348860015965984354217257259474898290648544898741596055122322804204138060463733719256789829388276932520110522908059913671060360891170633113591127179566609647759320849219215669507240978184686571138383245481811410017805869849182710304011744869864335610903531785291153726620385794069444504300556114922434859468574055918686034789078852259051420302968087018967164863962671201950446792972314871808496244138702490411113523556292636418630538023206006025559822248828884663749865208130852541622932225224407816441685910927802621056738664601223728569975487685248962481961815255094342002045693579582170706810718789694889159901858836695109657722120787237890945492747704899674105977989327569800229327136716815858888503076202811006225780098533696089528604359956348582660387153899183934526252783948825768764232878498741923126962739866675387078201761408047176695447009914251377080705135489737316524877672093821008252173367548246547347442555580250303989064247301419340177440499242369391780656160663505661197707692280528074160050234034468606284825044521092529253493698746776533882248630091501862041564286963573723354970040053470895644442077845955145659101770783028267579272870195703517907257821391914238058640420831034326110937277199590782398870775603453356697307085304460182949059962014640370875620273009132614095428548733273308321610789921575781620257534146903706543001768252130695724956728856452290929988556827659775057778792137742829908262183247041860308651383851923755733686218656941010057201044994894649264806133859912319141242447684274866947443433206691099278075091804403263753007910425726736841448398267782539944963568612017071814919996321783125755032875016983354994747851587866109438958345835972417259944258286701431440510775091016768016510669485037804719303003516322582530311376621778497123012755911750117906988218993248613995826034976023638846537330326983781383084638033843622778744446064468526995870824048320489078002028635109119850014800257616516611816460404406553461004792989343644716576321750929647811565797411654632132225359990467316172114950751181257400010687256916789138574619096676012215415051342357429007617018266625744683001243131746597869627276929012096687778859568196272705618580753142007645743267794350645699939192554972181636640746014552189957615006078076894937301938555885553058123633268394010741889987807516525708660143339727220274274532134751169334706232652843508910925202283744346876942100309606301253987861865666312747044404887211827932645631975332078734307679550096640995869256312814887386736250598868030365934636630468705608517331768649030394648917479204101697654328922060891343412368322988586777875770294786006554696025289630418075415453720923457602191640228270344129371667369390257376060489813027768362398450966219156349953028020367689742573138217106219279686779381476479936347599012878404936862275875824458643263996632155772491785788657780259055150251511409828131685108553317528143169049345466592255495238301272487225552924900430344493911584755087704145104978256734372401728632382391991809380915769843541492784155566060064546506636908887793290507326400572358267252289654605915248830625309621654618516874254397761729089796867117756166827870917555705063835241155215837472691275412970109783856725424992162350314638306439210961138171262229005952857494048383589029180052990827762964240715625054638379735661747086771405782128098582662218398678520962229803445926841343670452860191916043149391036376477607242219543019322943469510782667566296123254551982914837668887814992630539188831595172356694348304197623776693197916190241308211738444451331663368029885840953695408805973665652721999997699034554117217008694984571988526027741264619845254674301872919151128135458533880510314875136373470223815370702956609355087425814597163818324414051492619065457676019814292457547922028149171082632980459408762279101714818140257694658540060108843245940619635764280821976607744617009666913390517733147449998249808141797240157271402252774938698866844311854849182612408523971610583892263264818949860151709023163903628432289902082497333276440766511583665470424748237037732456104903119063935560423726724669629233174880344039933062594449320305155332460846155541168859286117268897913759545982134542958514846459486173070858623490570399841926343714003289751347170697223625812066273731049484034996719197217487305330843890627206009039632497233114075703906547406251562207120837243605893318197817034950574705787766450393791460473188822761086063665870429841713523852990958013694792806381782575324264939259284783207866706149321640951889714994940143324260597798100609685369418878143194377909377403859494193878917785891779916551376462825872553777198303571212751702199505751862016997022000258979241610788840642843049505450543132847686126857381366750988529041558619365105125258411254569253923248120038530188138466836445528206310160279299599252304804710124630538807600401952938601293999575477944649253602261390529274689657814185177957172451762491858913043927343104122858265762473317576998620020631519058265325677333834422288376346384446252847083887283904159619163027936055704587020604222152543783059960315796531646480518598649093753445513295353407296972067795844845662391132016627576514181879814716718622501422871568762392411685019839786349003063298414439596753986983925288730894008532747531437769389797517131745953824875295952708621614373793028698534091793604337108965828895076899528964538556128834897282730042490913309267314811983161430215661261464378974336608597022902592694944094324534375964584999229709987639438420245978986732509797974132392713879958153842681999975759733554720394969098105385213660466196746839915367287331940208044163367456928570331441287367916713481160696107683554652660564362388423452206099910075334926455750322628031257846556772656390389509346179435790275376060558176474180830988659473981452109595035901733505305747081120560686455850884408590151084821542312483569954199224013597354529314465143580738972857776487230788423225723168306108585351806900019926718864029216272943404506205410024278599618142340701033526202435041414115030317813072620723364084937055123523625071089717466284700616592917115176509859330801768792900017948145380397284729498219455479571506378000608346117753342939033281206700800116696847827741053578885329082516809253561070446951743537023341194533431463080487597541542936300754805323588581028955982821588214912013526558661159566000782460228023445293352996383241152280661686464971258277884359152798150516868023016979850096775195466732510796386068210320574508381974671101331038780734822131798685306498950216558554067152399101753960203076169508325081118216729344646581496902856060417611665978087082121449693173579564301865268358467839675052409896929619869739613869961264147050293640129868050734624822157648136409225195354909948616898789353584767411862907604370765894513899425157304661249693434346101515008779499476492221083624156846132147851680715483479793982828812265659095832719973540434355813069130384054988960642993687706538551548966473924703521985410364791446389387787792190234376300015134159222476925461589870409223724419300723842062042940820593310884687958567913139396809852495306071506236027792419390872980173154826387435378453774569848022496145726269804195323038635308976468168684156832728983220898960728908261540371173373497255344362320698415478710737359511966714216451282001785102589085991725415249871686404612104264609279758307420522317187218444998502785527150643401823379769622801713972245504968747176006125667785549070187454648583966847554664199248759268010145965353064309663342506846657415916816423436373332434085625980688096208512295250658472364872529074605054438440561427706733128785291419627445079745689475950982598253717391460851995535185893427589101303088983296933753722988280828647376917387996428993921757034585503650555256449880925580323471552009467720115222894375415472503841392854368785089006021558556783484446065702678721178235649962293602956976237358691798843042406800175429514331995944515288221433372407708927005386962987313231832677157457886204792087629270145789838732190691448336225655585201127816065510767558383229213189453487595127447521619592460844959671454540913038949180586321690286014164100299425966742685394316758165263999289574630133398062372402318208674374149637043581458763771361542084017354729089552819959810636450281395720674803154076558586882139975202614965797623867011255182174969865138959417373766357706805596930651855905996137188932906573894351422233404077674477207635886696616623730065011044825720108358500528355639327780078033678089594670473687995980860110981053977150296749088663876599072812559657782713436031166230003773258432914605406809169818354402582860399526101065298244915408407923579785820505260382565396547873557874542778030863745375420318590410611660118228943934122900846689160015626982460695257511395137526663778170893170007332564150613684355059310668065355865388431186081862133591012335659190414183022747805631245783341311262051779168480321563022799838488930777207786605294575183699989820780943321819107016981931153771925167224558088429860296375192763927137408455058065407364044281728481718176250021957049894400828196400336343502465314825380566863462153512634946182552275173331127476536194295564290162460755678634857116168028374953020180061549408215122749722801677960448266056117658395952946947804460495002440880839079688125090009374604034087363487498631229813711207268817996334611851041708134266755072391512190705822307265896886360000048624297910475495530584946579522450414182574243883863767921716706584350418516508909762342011909407464720771216556793679894852778963940621607730953998519005564380214140894953673845735894859100223697028984179641281953064854288222427102443782233819464441105166874544022558520662865263729660694625745549263726175417092977960358812115826676193553420653056768408181107552973666236292158846033771909638531420012108225713785193001884281272957642140731183018113168470139606905392210636400929207376351225858983686800021619288190812430283309832511137172974409574003659441287318483767457113433158142982262459105752878538194315415201238349392983006608161825973805332023831784947105788055519347647063783681737380501707397556637602135081537704090277583634088024878192750433109363974726892485866977536200262465385066510762303712650591650904859123685573879318781833430076394937962658774791359095263907655015140239140901064615744231603552669829397093749844711448299518830978433106984417138368517761956631882354753362553028995935147762562577742486982316967763545464902684915005350923381762600988655175424416867068928393181606323649506427659562214967435542854145435014213423306161192770089457767740980422811365126324461453208069346827395934441326367053278215663436944969224026553992423378351658999679244089293834784525370328502440470205182005289282133485908625948661094486708292561144602923921698587491112099496822417339923822444714352468268775544001467922974962548804342313115937641965953281500373852188252174414250593284860368411747974098449957838314280929082791004932044581126565081366697515414925579793003610077617315938889590845500046749854469140197501452674753935613010026849843875987527935025798087950478584363125065617494000691200745749774642843491710580947174184880051612453140840647840598638150350215765016242259865686252057792877899216326741356716788306652089185051783053387244275773950201332222056874345935926656533255450326721030410448801727809895616188663304755033161053998407276677153422928457240566454479166318995353699615767895030317013723994385935256149728689400203900168344226548976223783544518104284121267718596518902611830116602542138562085159720602746709012384810725375748743277489361399868598860783419043550354950952937516405931195840622034920263861391144031583155002146958110968331416727218630641960416368706615763563229658235282450604975593778089333470738880539994459473321413120841098457262325576321456117475862693433256300371750731369236371834816930696090134163257322124262065022383055660191438405009824440821435233628947408972201838778504953498038085551678618643991742813644089154220186758212238399041401720743268551684047340832655374134006050010822733919477127233569373050908342851167042014670216155943980261715916184869899340661454240598206523589280660491693642159306319527156849974119951952183044828440518672520189993739449767720345307019895899016976513078145294406689524825317127750863624767081167669433614149119238741455643281417959991748819997871249739164791936278729974568690335088686066621282804724127170037391323755768094957574620438090814018643194454334351020910569237458591844415451088068692919935968940020173762566223738891267629938203329242545986958011025097533577188775147080970428651704186245652668657007748518925721460016548704616164171683094766497740849927391456104701566603290932497205827193709959908841644697345497921965411149954958768421553028012588053083531050303756969077576344555898366790048864017073256369037355439713962765041698370796962414145985014788496134869139767168658808873625244469363110814098974830051376442487741382224585618255885129267085430813501764768473958190378811377938998663690191559456206384361043888998948820911494217439629694044409042751453298191178105928872437252322866093916024265110715102082966805085792234791735960727047286759614675728112222873018955006374349235182113752660694773349851041145945078615695081880346699078469689707378496378441780278759304967962592597803441686753703430255100370587286869546526808706927751731681942826294712383356785913902613738669899374418311659489261033536231861771621069093084281277835404138915716548387117043253939267998199112557072369912308698867659011219837740189921370770954384455155037980797209405338118961980229264809688862955351305965837865256587613788466397447291818699530104379539192278919381856570280962912432681292604604741824308058683804812309415069293587141274424502003344291014363830023630528375701470016907362039392061826290601143010252269119462192840286287293849187830514390406927800610027562934793095432654841540316000072210607359812398374526355307618308636379210395596192961813913983929037336271342299994846171652359376078585826178270169757534193320802838799843761696407862208317248838134318316874989971133367771373583286522277472135942867714861277506135497126953819084068725728478612073902613996021136542323968190590367144697796579150744473256906317417186582982212742549455072947111731756298374656281519196153858221759165931775406859143129681515597674920031471205904500339513310375930898911098140140423796954232051473154143036020586788196688784640174774292801414681779380146641765840725094470467601264536313276826628093627334654861406380696024494588922268051078467127251860853447442933876689090647982530570854169262479673327762813680997458719589665880079972988947832018555197642978851606448159857500850826496849657079715624352477392259815588464938202718427698042498513744524550836981835765836780956424251580691518001194055868533373465622284170778269423372397630325455560420460001377427155186518860043505936103935751988024631980372640265430555821600539722449030699964312528553820051261936412523653790204815627094465579411942904413966329006191496146613608580815769429705053562388836040632414072656495827458364743737975447628545562586313032465265235145511653218333397011544471623202508507068440002652747206761071524968459568204902799571819804549609553485592073283687316526394831516152161129536440218482233697826296874929003156463534784526348813589750849840109091142704971320308939266139924523783169017476125056643101803601065185367008267017873412059701771740318356761822422129613697591375403117126076451190231172305817646806280915338817641509171709135489361324867687839486018916790829054583856147446453080132327126976477080721407782766039399322989065840129426247865275496184017546910486154144968876412173821116948262520284774726276492663829888591123358969751221401423286588104671555786584451457101724312426890803889234192029323287411007343303376082224133954701969860413481282868169294976140696761483239873997437189325837768376138723348681374685049918077696760720285090825755356779720345030847306935196042987447905288039018795213897292931187631963175530149892336376839412070615096458267850193591899132227981797726456664338838258041789744613187465219789431305814314263371452199411020336750134703071463074839480641229360687587371604613541585793294361765912803492530075790678182518677066309319703891037883189745075866911544918501341800088213067904804067061229307485471749422450683710289807193090894831429327654688727688518956186586311283168437294099743269567987222295162150830823016643658631949382624895416054785256126331583900982605748999043857612085110455318600536985156378117205598989627347227823934568365051328012091040376399987823466323692840742913176977607764842248742738721139321246834879365408007783409230032021114047477020066556895191487021299274314068962189160048280605174903529710933673256187145231348144259983055991165834173476253904393594754678389480402353661489994812908894899507677110088082082299240541976646656233508116827446531162619711274919172703235684603457578520995291496428829850678168544682590415407092908022293151720544484103113745990107340570894052437266998537382647319909494285555597203618828191949229963792947522775966967180334256432845626258959877782818340014316182570936376911893317285074183836038865797559557295232920181620445595199409623066912739855161549084522826231097809907430427264347112612572597612786877611742639633598643489913195440884486465544081946584186505804595770682906049356273729922155305045590137918715991544838897869003080417908600440277775464102443592824886279128865756011954987270112168756221607328291544270055811644175597819175394635813027259583451357209902836816149824190107223778702006498009593665890160406555550883851881163057466535680662948119840129605228177442707130627986942517853465468718509783308006182163744830869922440003920673360381380618981264916873746504718195897677836088333651798599945394144377834353186506319010476142056657706852657864566450732143293259017152257762412719414562315323467682384286080259148218400308364925328765965337586798776347049798599204630665297037891761124440199878289763067801356906461845265795950690298501521584572477103307876605370108085615727114439011936625813950692161837513625962505105371826230000821604558095818273095769605854756349096366425861909528183678155323490627769611422571304166873279841237133537666713418044804792923997698341531023875504558053376057814727371140506440878878457575286254561892526013113597788056486047702276679411287925710178645814032191344985455628048725456049317500917707165130576589178740381204262057757354826797816522055274951169276213429909254522127050440520495863745916174101257234381071551400857074445599776291440379972364258011565596736387294275931802457426382714682735179570512813009965783780894812541208964960651289205055023579266295897995830757419072004253879794671761884946810719417746569423824171243603503771486411626391048776143408684426672295560447932656772626307342858856906328426701521596028687137172142021996004733730540393874400762592661668442820268912781446714632146093493779349516196307681186804372165137630463813256936832306838602994335562945599070133773237388632634515001798614105580429395379468180387156293449059763334026686691843577441858747966593138805499516329243761637635932566073552597203381498505681285076684737169206791491491753431460421047061739668799784327164817594081483509389831401438816188887587440800745190890729273732933370574629016791038200505452221990639449730510627154875906316297680898410521504983054816690564280756379422477800947109712795724594043748720523216860854249491453773861906155478228045263025077550539662282430286237366310028825882339812666336801187605582163785941977524880275121393576880925279684999497762354312347787235962253356948207889452798728074810933333806109545903344495059932143470896343631741882294028641846562931541563071130177153057526485832700041183335948951444441770217286631912270536360665044039084320620731826825609465506632040666918149863136500266396456752622713961971860611753622127104358614945311444848741885346986088108806134073628562531184346675509846376653777870205035030734806035521724779784469402599327537397998690628106549774328471937783171289009097925223693908659258540189807234301777283073866108761564146226758588949006348815645898306355923745158370607998514537613381846619909093234607872501654982502408548125753095721175093860812282572045961919627762286763397613597186207898648765954720672256728329862279169694236983375664152693076190717490655257081287289170044057892001299379389141622595580995350054848198533462047760856550192795040216821602665856653089536393286037201558074849371894750528890540405125052540333559122788000184265455730269524356620460117060066836229436802914332165562289933931174798838002633378392486235395176336077487987783553284114852729015339406676012606581308162461204269741126230449908879990514793238339240144159150850032317698612250162890535176786965557686264050756676918298692481313761364692973732751442845593904347883951051011640382132898568686648141423013474696323842076410227360029528989624883797585071039066862118318679739982871889351373268365982151332957099301134204126820796676026411582054901363416154658359688259956471210650979818251890606084550533964542036319322230459379176992167931239730167388339938027516088093131646966995076392536148507487170339150567575942384898906601107843433872029240957863258110379187713668015090841728409517005045651303173259160878431998679025501358639061159698790802911092603709192008696008753603258979240004870357955993638256261656232419288996056721817056838180282910159634015293748164646724192690031332130560730735867499392990169651383994082943030300318879284079485070435310800776075518370931665463924233629769024169889924490577916415614806119936768266505838770485048658474100649775667450644320460955376919933961012295351109616984345205876443305148637594549956875935167156759956751408064848352629735259097590218193836691567656827888935718080218445060584989684511605683677435738990793459111001548421027637319839414861464423864153175730644657022846380032297945663365722966198965119654203993295244833181331505310294973427104932234978293482577758914532544056656512434198377797526333623024005943560675129721994180535683594805704779076873399467595579300689795555774523984663782500953596990382665666171591575358080027153271577920780803100538127772000230332109185535090565245767539112637600821746621340289179390763703649024484425470754908846747466584465747446625052014121818734797453688809676659060860757116854949301557038583660838838053340204312104431437705220155878264631884260367656383831354496235699779557192655542275156493853748100478528066619368917519999028280090671247030298382604435832334769689908441119903227158502970980416600562246450600442217432631947980173469741992493881811781503202442230246682405063308035010485855147542658740971942181223241714043021976280106299273117204048090716678681445869518990368317483130163263660743217974801602616565613681992628766239349072935406302131581521765947353078522976217762322453133085115678069832347687769760602577215469825670112831186847808301466847872742513445923629776221126534972023798941138435471506131436800933725798550137805683507733698288877444859730203383561787696086940423708686537272822954005557165044730570257877659843590477327228201607385321081109353066069493146658487206304863374940500401683812001591997996788323470273233730677584850843552558853168992598143976410925251571649839499367619492355985703742260668921698001999495169899487430440353406012840361343918275443469855437038873343882879004459245948632982965165008920947299607191545698107831103422913600195767523796078119284468966061999033236599766927051500769124844598300507016492823956997892100462006120206209825231194074926966299365802940496826023587542226715305520811537609072071227632763583951379415515768953432674597163258661556428208375864637432805732302058870299604359992842016466003150010134756004196911852942582370824531119596448271752614223819328865803572457202460017671630744356703548524486295585979239709382153477726923935630952156692618138866196123135892203582248323030950560954955026327707805818861399035846997652608881226277084260110518867182531480292746232750605810948599818019991967399596968775434992112703620457729060185196810138415332863190331725107023127073068368940608811296232877817513505356353494196910358966459737325855764361946793757047513016578163671539532678193577557620167379514452446522312603786982096347997022212448139429341281627416125622170109628874289136102862490187722875651484231192228876968360303159486905851161566024875865625208203134401911622273740569347848757378983699850343059992346985545935357595855706126901318012484189673872811742895934956792984074627618471570941014925805861814127948195117291522926362148458220664311819287262669735461936435245570219086947277866429269286896983848689992564925220046358414258258956794462839665354450849943282939457915999133748492993855908385107260756197004680506770551018393137180937148079364412751552640465775459097418454499854039585121750464819073108364073402034263214038353836899047969133419394994002104699902101257720958522309492034719602693000438716052754548106101167692983180530521330608940842802412340626156602138726760754996886729670167571886828920657515080108047293797038034061368203765622032920351036243235277426374265259397825866145099044409753928768141884209472807510407669767196546782223644486058891795930603629930895621219604364755587406407520578472121913797608556504290607946652744232304832500618530577545612677309495446925292512407287329236768818747081085592231879123468367975752517518591952298701597757836197736926850298886376656298577342598195492678538801758385004298195836798828573849041028999116646246659610519508640261444524594175893562580283106750883583480813988807760048384915359735328418306578944039191196952247500393233944569632456586296789114330589269541434622192256301340350586557544208473421298596661693869280009299236002667498990231727643519175933102134228026081190335072425335602901262230310703374421286812752088113735569985255717605485273556424665725482656312287495576096592019656389464311704974852621144773646319047613304363836237018085311816635781943472626846276964330816728511344270482724888560009320815131668431081897574478278879993313165368896720993752419866746616799781595290795217408450687566424134612852550227647667939483278113866852591839951340443476456187557436058396548286265169711414082787352494822090334063979739270538851900791632290388282842587298565890814357711749547771013660552220505927062386879001507388950709672029909495555065276905555485547938473926507593606381365804793822464848644898792204703667233142192731364194849492106956742643220157995113609893586921985809071586775061664094474104982397252880725255355626768819543415662667343116163033158147949077381928261810816798504031819954480376185649831577255826943906126846687437691377745055813850526773815062881756003456899506071283021582012356454171812539522732128214081296499618757915732521108835869393439110140880213172699869457439604723398456435617038119605364031940932788570957665738221110081139515949983431515845575585947055689589224176965611884228534404051226172853668581008940683981847178714119970158908978929348615848024177020509404704208437342128880018677068368324840043909056467703693448127866233103210093347081338325773116206222820995696281104082586779510211043511397826468402072111033042266265483791078751367818886676441667445728119827138326718648506023194033523533586987235221135830404889956055305709831711390656791841384647356776170202399518661533133926820810767566134638707813074960045500777345559366135906691254952815952808381302848282135891604815335468909387800072932394391238176998290787298549788312497270717670320741666165987257826307279533610871392363950960590728172569639917961270262250878226489727579756405369575484509943117082414566915928297488090085728544819755301225496662408436909393629071065120772686633986709565802197347165328351521076874424959469526192607682644456115825822043801901605912294614782677844360577174427551944492164894114884159517983845192668581631157392720481683962447831300158407181768102894621527389503986721252274996636695107409463142080092766992527795728557636712292373091244965433704938772677973475040424232696702090963150964503579065519315311509885188756268961846982187761523922217483830394938051166806810941393545404994315500590763787861115161015109553538277883589461996024741934347647082614714277689341109902049870056899176677750438419315735962321989674647090912383647533349130733969817498299113533500432927479066924062907631033613049058602273189487082625341792843542049119267987534693854039974436462788008905714047764511856856363767758786709552475092909933204891410375190226675803170118216876043637300708857406929545227718370994188856411347082242743471932531611647051366932941973975414888012965123313241238136928756727238087537980115573314064967414510052840007992996918453445135027067219998020990335561951062857906571906534768856252373541853238050365864143307363917725242969249974735920685529891328056635871629956943069221025510301549288880378724905005156697442105888662774875158460197530247004405034294530418057215565614099368594576047411364789208936442198059386287511637174742442793174421535983212202208209659929934803087437739571950379284770563019995370865874322559520719943615237259202466111835036897883722199129587042752186462284766573230419742603926265615950860424808990664757260349075463012712968768900604561512559005257339135294340711325554950257525311569297042082440267106106843506268582843334029448161083896884379211812936489570814924473294638860088536944553463644097877957094683984679047300612866615092336583383949868961175067641007839297860927937241214557311734984227810848725360129278390653852785985643244551886387496863831967893014893556995140745571922216431053327877791949747167865019548597988212435937448680138876677674223291709775494595666269022903778308711680871774822927673998319201322458149088743653371104063144283047950394930213857589417604373180412758854854467025361586237754333480543266300385439031674412227066639244341634067191980624613796669970642934329088733938691015759798220816013397113001045488456969699996604053208045632768258711967510126387751259112070296927560635095002192233593735779753846648459052467033223170352770312778994393319615958421490074059864089193302217641085069139427825153321713748752580710185000166095481605097159042950911260139300068964233714722059696294587785705786804957365360060275208629548168231684735195623324533356716329794975136490639787505846911508245258650770106155633400626594770482918125089366431554916908213990816371680229304352116003415292836679516038271919113399902753269846442679353405278137956649007696158705496505615667066667458421372058361548249664407875290938045139453264772013485117649929447015767783225206667740205620638690866482366611958650508027354570411594688802149044758896440623151819138946042334371218551237222244326759145078188797120311492384114738538144437210130636271534439045795501681159839846585793831866399550764506014077522105803724706067609051051231751658897870996571710984296394695582902787100633819094986213116192532677103483528417041657975183898668849858061615834526076215185822594989665575479701254222152220847160350722426542721017828634576605503360308839116985090838942225590834583254302224969485098398176392862496738042829067571076970878807784685259796551893748143480203324900518638292973410221136677872338220867931965793215573292755520017786228156161532968854452396648591066181158353902213143069995703903915550833971095738340436677715066380296227633994621085865194835970055891173038582571327839578825387735516682840831222137129545797438905328851494750162899871429135838522087709209717612721832336097468183235065345947433075280089101505660142728127463989265973777607692459104956498288697310947354822378046325493423193427619454540840690976141796205340794436885083645363522387924079634217694535234849949214939695827934926975241974625560770721487421103358390824731383299593503199183641111938663359020077564980361259810867429459194404821844096352553697471258919255023652692991175292938299057205200678894896680624767355225781801396709806353315963664795366225012622964729767768120474852340407767617740540562844889627877241521361026519621229945258732069254135021866785876952604700426804826901932013294316949605476631915443143561766739601829724652082230386601424719138273087269444092484679072218963136262719758702755150400971728989188963222062677733907510816100172613393522075306920227658822927932382291356555531869057314292851320606343451554312241288039061938973331341294098830685112186374422304954216161371117829653354656301364657237940093874015430894019373526487627023993214982378280548242051858143971319937051827714707130359458945386123618908205856710362400242042145273139007284845449359395041345002561106946019664445335707480145853955292248697577310658478118281182340488211417063533426637319523667231827155902778687853769932652352063224128708042897466954179059377324553597807453269431077332168011123529731649184213735019138045916824625614791731343757869142946952443446930280065830484147657498851581954663462519238768885152762789541246307034756879028797621630349224974121148308775605446523866222308438941750086581236723161394412368996871646363749837772548390226486781376172908725049011090341517945601264861926083584360218115754870667841074032537346386858613418854251950882535896038201293199825572684653348141061448596881999583064506094651734444234058064370937790844925028162132908594560307209347277320512473242382736025131917833108834235410726423827982067799186132252259555476977511708937712125657143374068336505547963992094575981959653964843027070668884389875221608540998516116209379469483209032647241782993406503084583759759828790635631752888612264453898442396950877300653088069404239490650127745699123340153152243043067510568265701066362477991088779208740810252951660536300474170540086180638351352927128839559824844883307748469827581034445146066602049436691156868982829519194464713347085828739225066783339211814006804894811456317772622329671384471693902644472627402812610682145332294249615094431229843264550835985095335317809223956356669380488001680334241204017148470969942298826516557027397047796821031494326313492842287438485905943640663195445223612209595642996271593708257540192663222887746221461368669006332731601262164427088261360064182645859711297015441504984032970826399009832081195987834468421255425738662430095992725620047892509775202562510074442017820080226357444981823129543920860259158481434394396665162345284793475487059011977682694920142708482980774143146267912928662361385895337314598713970979552565011970369535132933798515341051460935932347610220960277670405943041674746336833241956919952177059179046671336301331024057053599674508863087483187984077297872006206309067923675390689337930784056414638610021517913762586232078500282207662926265512437095084212103674782679131478198225345586857598203587763376092729654311223584243951978106964102789789572930990014915698096674390438149427322664871170909871545089873164549295519347871694956118220127560008307891203042901604779240285380099854208930221189852065985267295381057256999934057614557298101296595700398679557227764147393093473695187094624120461988982247393213493739613738690391072764376976879939783907874950188984609755562208846733623864231578707475898453642922376749417230761378824861680656383260356557105534730280180817027805574661340924143809970641410305435730500368766755295226564517867148504540596063483373724367404939872978388371292919899380627392775505126262925231602274613354201861136614801392828095490104343538711446812869162643647929375984966747635730131989117796333316133055657523619682101711451300848003122214169494670936222046410662017868051356342768627481499778275187925718246542646864478545757886431773931818370687101983124198951482705662758343442441944035374126214779168268837875935680049330495131860460768336902870372204079663814763037642808707010495727446699451482025970410936625093704722942711739495032552899824696755550778786714752861593365157506167242969794236549059906801406919299490024232541743551262238551473194808345639346227208100008997249829632539499795615941958294396331723189410626761154652116178506091454050263412910163828109562183136302338769207253587364005647853511861356666163741939745993930791833351101409797155588300698456981833345860080844553245751520088805081415475758781773815988982997624602038285305742030299226188058220916014518643525204001799635386956285682664765862866238291425835849538168425137361862299330487813177077564895955625489392588555590610986566005499850182362695807966774182581956579282327570607724932312574987735554392707187169068131387906731001687360742481644553277833836621276902468861801491117945975941347364262517978848310630619378658414316386265732839041608747321688188874638244870524758306325435497725666713412716135913469265481936274592624865735411943840102238327581914564565610748939646449273116330841542369016295391285783763641116631888771867686246434441472635008837998600476445732115751398536136272712749951379039204776727380195654081343073895130670882434661938354327629353664085500009130115414323806499624820788320123491215935073851274341451081127575359046522805189935658546543309448198074433996287249729440359973722290545063547453439023066461804456134438492151100344491909499475245022911728214308244322339476955563698389642127969169902459873408834944075712137478865631164900476210717419156576191899395597841683225430252019830474911082541897241814893726886813432865898626302711329541389881007611614618198648309094136190192545519048955026151218736072999713333434204376093666274867860928592770896079188970769598461764408393045283566419917185717471198236308118788087812155205358349001732798803750042699528771690787510398134737186684768094780881454868337215560948035050291525352460418536958850787798035944797190481880512369536646725801635510807385187102397253748984225425338331756653255023002165380676545588968862254415058811263398294659426983179551037255170475667260293906309752571864093093014074550925448525897888679004868184862842201476015262534834496643549493079374771328607575742059056817412396930315621887547893314217599264782809352542201542308594602360145200637118974879806696104181570392724847839422317321975529658641916674218303737485645294796322434220544654868459833830260061610535161024968626206101251132325475553150861741394666644910089444443176759140878188240181674274552069388727098017902752296265779482605547476732763420119521605757393454453271224330289190609042982734835551390640105487497638654297940965887591879152519781982238561228182996023923816952412377021109027782747349042636291467566880906859234147949941692671306071223689722963402015426242673102965156639016319373071212406261975102851436274566925759851843868853885519414276768160337258433672961485077454319883484788325000821501056126144146362392532386834757835821587102816763551464465749176793787344399113135773836665745839876235937764269714273312494447170712806040778335575481846802940371224052886634943684289083800921770703372326792703477420653917707224024679077176106019645405503476142292065614440824103840564177328610222515637282268404347869558585354301025487276177671191474277061928113756205887472811454109678424722011832572371568231171193576498916120975383629539703187967401074357052669248180463122286018036278622184863003696173831336320072914563488225257936263636715700651912561634363121687136941687852434993089717677121704612938708060250246109109505068090963301462518488651362893198466514410661543938132799998019934894963673198575100147485382975204699192222221292619564017729712575755410084604478241985145612582037928266627253031941215147199105054756708231197575793276917188356099312403223987167822996712796722511111722126400975279126210141534887800824038038139238207456740903557972777508199416462760705176715901990417365160893481226976618284619733456910542815603845078433317882034652368375203154417824033147804869614711755634914475794088336615516599243132091907556087503687406809102485105101117939631656071814323959037811108604925117664220596827088632330675566799987367091155451534207873630428992646163734663674036627412261208487738313823470170805726920543037411328339023003962508047009773755440746075906773780391348602456272953498595218689641262339119753796423333402133891705231896341269858509342861807196239723306730471122610820229635678054566175756425156572245962261759369206304987835187669672726470601769339752579841119481839435080896845138094662085796822961798053329747614586588599595141158892828973810055079932414916539188174824051860723487016842701300894828174338727259678319131852873340735892262626927762163254813151519295529778998552300396691631738927747583936933374346296962943957930179989307930169667487797749441241394107540428600788890468284677722799505850703414175071892108980067022051244328680183676956408069567054819414374301953395247268819552719907160370169877400462956329813175732161611852346788505552822450847012635418864509035942523106003961084046511791990533924993118570254940539252941202325434642996746899495585388828976015841385110258768409825708976806547614324088428000048669015712822040192546504065005244610639012684146833412550746996507875932214652140905689388155491531935354901990928215265615247388272442178271514467939417762626309523663150849589419363244045209840901428365741522575817159562086651307266073415126789516355872990256505693096838514057307037136187827468329703247480189256249574239985971394615181658745438705877089989787657288501535543720803820278468115148290335534380982789546056295474900504227633375213455672278900208737033752208453001520205105416890500110144883607517150665969427762478926534860676999253895043387352688487783353608696407771026804677656863397630384448048171888679904002072853716431975014418454014108828766490962570053636434269750807046683101308887059896044041599140142367384546571004813163388236784398317163323774077008774384728239653002072593821792052270235371296249427957920246555845938615269321686136516375404067947061515586330331444821648378030434744246574936321619035575518765211438660209892569756425619288264948053233032068924527879266675066723461358102774460666380239070667134851941784074865066099072979258236817897978520142362692767428115011521325234716701831378179950142699411754114182586536667243006739701744799702883996161970377596667814564083169232844429523753188315169908471351680216018291222824608354491622752620996527226094853700427686200436581802149198379682254505575460856212093141530533159465333751755878135315468425470291508105075022701252131341294860154829145917113328224893937488717176472952066489992759302750864559203852216614333801668770947928532465243277982533165961482300944816189738529362627116009464712176358751124935880936268826897951669854418510658738129133120564729810982290662952231060760804926274130965368238423427371319303322975864296728436985577444272254001579631915696143870665317318251091266618541415902599918888232928111446457438261180277177272396570239412921503771426291030028958413896789572963743997866078636524739842850282789903265074761686067816711750955269772314912042060101251306787792941694535623925181460333109133905273374460992341150479378696998639257193982890190141811187937986026734072406641115877329577825217244221586908268789964195726904051287448673963824148965021876858124956983612323318956744314057071084031177432662939233190250307385156287320974126551978455584578560387400429797412316228385509404477578988600975568701738045117001450811581777766451146687708382335312484445135037076449036708457492027668313029435703853830907217754629515588074165472879766914900666435812243793245418279474172680049411913173755746975775821604199659638463149588316468405499056304198874977564460770736062495822093729473034420681886087145901958371509383200952583900279990412522971032449387240884340899753752233437314659537844620872016701171350498147618688504268166431998709098472033062976338196441598610853006464458259673177502997728843786682450244294522653113235913298078214620776232376892430766338512299595403198350502276181584612243789852905582085424949014865137190152622507088971858096426224752780151127123439425916501277955421880228265230630927377377367823323919483638549322574146311437829772634863474272419067827514750521258088063469981714339217682086697599043120727837786906444188994209697956656598247005387417783147718462178713464667749092655640549743654515316443233302852769257411833708138845811549545329998198947790259891351345656684240906481232368790297969185423998111739259190836919693853792014891788664532951368325595523319792466830966476921279264156397284028442267321775165666318364138075070738687627881541217183659443178700987392649289129278188085330102222074459418510498257992590460432188418491830768109653572183169040596621095281537164792395534976344053734172317094541781861319897411041117325725033688514265603534532923623978542964995357334383302752630998328535027408503801315897591779574713145299701643153736980408523920623560640933373693391599669236201255483055434208268063070051669244869704380415076077432265647489261497063616696741604872995073371223068519457029172922199399574326181428704314168050902756795507142473184332903346792815723018427345064098810480455029654380878231041110841052004448276122690626576444795003669478782226240629936902811298016984873580051923858744359662231838245690590324271803947713354886423154744363007148030267992169840550372636736286582936377764339515658940244963006276905787337163635303888142756659609559366294522512371751380726312705873850171832425864014011952324554259839166227653496789283651496793230710406716209019061936722119083616190104908981202132574468047390785572820270240168369840971208937746391132035928248099282964463876164601889871113649431680244223728770321974106241322003294544826099054926207367335464175721597378966099996019072397356055083627420651644889167525902065619688735596019515059004972990513158426648835563106288247618206055967322972202588805069248611343096586505997596708072168905173252659477145319288503366986974938163466503681827875463548066323862904563223086733539663307193988166374335828632540872880946963910387961596533097994592065550901212543432579333459849260657943363202416673025330176731157027590773391185198681415383248205088311271861311964783997867408559652514396431318636858160362040710732234994420964513203927731392771440649221879735655971133927708496954091452192841503155663542257057255955253669028977795287938848121678747747621278986671259867211781888980477506582836199650214156592478987451186043477610739631051477796742566757084949350851034859702298274098896790142955961070653416465897490163053920845584508626369639030506209644227095107921303255685760448127015678874607289108029715757455057129728777396325900159317809604158995691327259835825789787765059743751479258732454834728324315187816630987194974182022492190148262506954646393077456838477381440135111476359549838768009146336620504538808781558418558930240778366002901374119419058805417318813281273679628738698887783327022406532215097134028005042807506777818112881663699131714232061627085330911701342700548350433262184200734074165492993512689415411081430223445206466261979393946485597240052208192333812929008307458259694385948715746618491659094218176714191990340072210701270218865802605939448695988815791493268288930239502527566755796540480774995502532469258976778929707464353207387750145718062935085958784159847499578520167716546698287137859584953259974820634391454629391175604641531121745940318176864967265888961630457254402666785221773262927565953044877989839603473570506314211097680241121171024249662757679386235090139801835630554170854800489593749795103984379067423849612037371005655335006657570194271937833866801206511640336626448501839212833385786125745882736633992014999465912930763827046898632593740128617030493839925047125895048232427690293206729504877486308162073018093073242292981569873594398948535679274738159436076791231764268264568124017847625518932949924859912145206384197549027585464942466753042643746308413727840940701974138451214135543124271003325453279973264358920828076183637666583434964003742636768929702389450783529797125507480415788778347703336972352319185179976193967235738524847065826453466706281989941488418867118145176091711935283165752552029883500931190400225486033164743550916504909409663775276088215140545354356559710493188072506401176492794319362374784648105730731212962075705456370107426396811761169036986219293848972269051588849639877333124092919985467460833996679068483829823278585974164612567262145813254701153075042404369364962180369164652008400974875681588354528894690060823589834307736621981993006460821983491728574166679363267100398564992070475040244809099475401374026613496515127356293676168585234404155103762571351381816397944728203779776794769998051538621554710682817942726874643515984164447963132218442322648731961082459591081740792794510624244231602097290020052791716903057398056231076931283921124551239872148939660601071623496401493233574283682064061907216744895002112357401755899153326296150106098230546372631062113688644696312339957909987696989578333442259326460872980123360793292861995310729363250182470835663985987562659536142620838600870551805926614466539554946880198669541590182897852705949180487239528868320942181876002260401412067202059473987626811381041888990243936306079662440808949020473427096647143624972410379214505197773630170917344547959229645170453105621941633125630565829550673210544767740001583607053489056242705496062937057511313754084264396212121196653011933151318507692494105463425289704193790355943316528556693959659562533791640426698250871022034912292623464292432081957850165532773909529843523450492268984765287600249013493796759631770893272644833542797390399144926869417850873451066189746265702211497959057994929469462673145412788514613352474853868066540765619696090521735002111283902825750473698417146957576565471833412249244093903687041537515920802284706204378366263415436521416660294295436244516844011722068036908533642775722372311830276910630920081617778908755994938328556179481467676685228665460751075107778873056204708754754203544451690323153509379800608525830416227855363834835572036735036240380656877205000570795961558530205876641675977148956657087205837852608379978242133294972733614488977305257267810767386440609545310042432607877325225319814756394713266533448011758635883296491386464184112178145047307779449173131971527410857107240123712075878381485687474460227040758723720170405542476453411162641916331683524452505865580370452737729408208653361671562188692558887235767228063573044075207366093319560257474983505006573357659815834435316928872767987588715053370125225281413661556461071085425686422609877737890978921137730439895351419366254801452293076539204611323406030200638315457129720077724548075971542222172961808582461477909118334892143029929451953873572355690836555095034292050581646485477570866223879826293909770467823538122143787865062423988493721909780595767294857427413032819980242931188040866454374281895366365119641386361208691919470669871198911327369002105793765536360437320119091866056975508273053004459871903105195197170134888395517091161026307103743093923373999820266481657657282905358042843893240906555749284806111622238693256982468117379912871759409897231567778890899653801455636664777001084660920685029449756034726003427131533477909456476676208243630900328901749865102520871090093845940654245116158832691035380069758335253507245879736458038647041671222262074521635774563684760983964652505586234156732682355011806885538835380757287317565727869124127681477525997002527300389179359690303819760685796432206068066872540893517483898261491386329623059229933633795455485227677591515392196134767417281970433602250126890219960192640220714789764638770184421774015186367387058088211722896733407175635193171984659937468865065355670770024816606973148783631247528914328177836670035702829649685697103874329914117556196281375319855383519839411108141126109535410320782135696352080804866059764850934219101681363677925712911417396083714921654511066932294085843658286789571435663092204588412473164318673848151415542481532525693158677397537568169361006147338042445159967513618805380709754685449687944700662787416547621785827239488696874783181557427687308071751484296879042094023390961986654895608146649986062215678773025032826891252886311113882312277290018580031555997089317187642202612443977196523701387398164907967650676370191502360452251773957922386645876074668236825681370207251941692732313271835483509183016026841880773087583894214969358850796755648011210869244765182617404472861782795025889603220188011459566231360419827603403708859206708406783260313346452604343155046445196841912095650669845827010949719648571972238238481002860003865449421717334591284844660734540451504968243070443404685973966206410828346087882992576235490455731459469449830357830117048916161006360738317518050501148788857986006520880695975710657645438625322744630135447374681424813207650585344877454451815221062480330417098134953694289736119767066459026543763108693744523062394838470614219253491479653743603402074389983257279971595902453728360351915973471861725149483465856329108408487570059276530582025013960992732503304725231178706467355547872713804701175764504302722475585034912943527579156999445455636052509317996274723665147413980568799621908143926483465145535999236069323722530535946595048798989852652009090469588201094697154078535009858310574725759325887921949323194911618134072802664353856849919811836066592009680853891077739852062880312010534591559717360017187697106464842754394576176984636496622032346742727686984687376523279499493838838150438041130188824525098145939214801329905671293970632056955950477218507799015705537016313624274742818179344651081767673445718432460714588851538651156573958118710523983363553839903131692962036055203743725578549484250365168439441074204021493628808274564552230331555784813976295808658120937957681191306395239024296841233471415626740486329073731782423280444220556345586338495442655587686955156257476074860432154170471522725407544852683185832768934815980339209165072178912596055897865656619380076984404215712915938241896092556010535805144026507237643326848567760706968464299658520482548764887307714416958158490251128159210890109372947776255597195710106007975667985712742547436680178689735135214033599531088967041763315610025285362837610116910554031046411823235104806227071424678832375739798445677611984234635514372158535347101213281073375742196178310763514044879240818467144474172716270426272643780815889593794439488201453086688415489202932516252900971352919892257024701545536507044702662251995702635371423825394275864252455880462263310193682764167701675813395399108306586233967653617905826656171120928561223531370295343759451218378470979906982366496262683504150363696384167516685482865114522190583293119405044694871817298357203467808282385364635271448021942042256526112366804375324802759944073892480248402019602775568797084856073567878627271926331653559031628012167729282875474812358077600492697937510357005992092074307867809517900159992572852042225369381678400381057756247047002088028474636654276958330534579810026648474311449624463182916792019610296516064169335655082110098805572346663873957550939075690512614414938866253416516815589396803535843670239660807011368605688747949004595422863648056959694038582791592968930371852025337023044503046028315750093318656681866225574760062834720932939657298217122797787582205612254395983328446411271365854512844529436861182006769017969975038160983281496433689074838800863758977911611152056826982375357425946672460688122835933285030719884578515514191605258677228513547091945733945099978662504212355774031304009426744954186190799515347623415966459495623068391249506467410258951909057309323107555728571671136151819064168887146803927189080571668987205181680420062672088650996014423125699011809086438861439239903856246727300660633166506567814015986561197540726104673029917288415065620472926026604255692152018984762210746495036812324891902269992529578119520373282341448132029295559144559370076116045493547324164644870577574746573081835087006164511029203937259926077986466602568951161085488269091372411932779958354025282939261165231866069249165845651065748122696497718310159459388881261880626267601424444429601427211417603095897521077564974365995269696561521577640365616180168132443969813411095952439954073319129088694011621914989103713493987348882160609391908268618447855748376137807156702925206777027015293287243181094336385061712166435304182463818494832057985999181409660430257752845850814010589522595428596680206438278514363870434893602847514093617850347996578396189692661830865548193415398756108611635559837649476922653496927726218010099367446469370659791986196894224276883883696752044352496271400092957049029158180236859248912813928949521345263697058852417704324139577373979682173330098570615020246474848309653188836147849484693706826199639534253395799962300910423382833235779925214474940687776390856205128746950238185686157432703832407293739202717101013307974831751629786002647883538879600549722438656705123480725012924611255516302362462412133681648448250636556377292595824348000222015606314554977141837798082296654159044219345221687014270114969259014265492600144033783847968710649634480638270142109591032907892138298618445876034404362677803619906877167701819524093759827294739413438024073268617408623453220367731783904265012818676774110077231901534494484200204215712205824792027700945030530497769411480068281761352305558201683164598499087030815746241127883782584717141840840079444885435228901475914792040325932647912513327041249905506651122382198041099347419166121976295314434274703571996256140135039413259218128116735707742645206478039786932173256529429413988639834063027477678141350662677714985866769431276019181400103818836654564742598817045709722817090752995248711553901097282473598263251799151085919883808214239333917075385944523842894524206170020691671625169637517567126151434529464531738490767125637026308786710034983874297787969824165143724273873134083893000545511574871452986362240123915307980560799165761991696969600505640562173217293111278046577120519519362091440865214689846047861021368554239328404457659368777606882671693331113112181401612020783599297059921470935563637547297421428222001900787252605380479731812071399505608405501241030564767458583284265745530909381219542983576589936631239141363303690480894520543125435715257495705929562335258077885315741422363542628505419850785970701915034947913247764201000397753495673011599336645658846379253168109289517615488791226490324852772661901696854356364064727006342607338595649374853898066443872827059507346396934953994966371976110436077004701907545386341482150582971308930624904254146813742775871312306126466114834042113028339125584304218390824531986842635036793116202410514323712972807835097531096082630509833109495629198821951369546005078884019756476790442489537139906816281363505988468448514459683664432614354247289055803306312279139578737521195757423081215031493469281013471966691688703922615156678500921608308408069765440470636525504338842723268618577861929185830861706289834460035719776188613445629945828285127112077419164688106303740884605283195577173094141634538488613727303118696266042391441535379267219709620875969756243157761310345107518989945985898049363364284069701267993998076239290435817129781150678454627368771461296817856190944951436902818619953284084533882734109946642582650808810300199443150221594385966091134721777139261895038863054089428090903902107525083409310154540323312288196979854579653064469204899793226824415144265412018902178472795941758982360801191382726757076442498216040191859913875363586964109379688443484874714472704215091054103649441154116577175028964103330949505479238936439539726122613849880009630154942846007223632410363203438664174404070875997776450846195594350007405418081385608878307682687962137736594175636892372264709461339463357867376346577210065386778469397280196918613288586535330546007097657068865351771014821798029338126689185146961173414343126526453756507186149508212384424880399086538766599336735035508562338506256820990944814404736224623945474367875590642817303031651523802100602164799146304213848748222882263265397083162688914197169045164004119906436840162701966332212129568545116596647941289620115132127564977816582125648766825877763867958782594874092497226134955121537462072634430544253268025493541070175299581224558259941216409140755927916408682502891137083751813448305155334973014650291090947430506854524541321458884050123589864603652615163707060171744367895713822231821466736977056712814498112685404422682302955232209977473249259483817930346833484288356951038799638328297870525443125032461005069156936015811883504868031373544581226893658436940106617935777791526501665922226041953226895872520173316533481443346031851742774270162129911702335687563153439033334748903072959076333723408256914049670977816465489748585289600154084086455672724434542434492999091896774303885433633967498873154847666681571106794082901197525993043040066008466316149102137294002969612835552658615931096735181102708782328338150068201344961533283458424063148652853720754794768086492814088840362148638845319748464244153379446613061075393630058529434421928635948958718650757454553890292079907030409977128952523324801140595905636548365223242323557705037965703729421919246778629132373873957885941131424913338665219059353259910576142778059198091321535834425802380636518768419635879249905587566543891029796012035722873604095552034527595950796541638599625327806457648087870509596645912457530891022055834902393955389056885334960589821130503179344400866726735344910207697182231388723778702873892219094464157653648595422228605175403947001524494829454897883940929751173752200806623946098331186811005757868190832813467946957519593759217130584001463638662894761700334393032735787143174554251292189828254484958699103355757591993264917177312676991028316577142682636342090498556544377259908787694631154853104970583827102423718586855375768984899484561911517164315576897524033361568165174679439711523552490475805481186416488297924200708108614442458149145149336542176563002157406760237671265247644498667106109825167977324314304844922134482569737111433673164519450840313893746760571874235763189491793793997360830057116840000537343823893613855757446644093167588807035295144715240779082121602357467675405284005890891684101280315736667530863513081632843772599797652554838271344105780868167097998160768047254434417968631397909599340342222296971212042938582007525467283037962614506199584375539167759639318331778842481556589175262989405503108495186241736957022577363282090323866598815970706680264510759696369275651345348691598347328230405476584383164991872424432557384142578497391838925680790986680910004292416204365208101525096754516041454109883084990612835290483128065246546604794593593274392690427783105417197006166476745423141680573914980301912406782755538735417537495785852899068663773930357761572078784446480022745795939571624450013583375130329160651396826037120479555572671986928551679949953730218858241696356797791382863002368652516789554926317881088025422350643554368285851804933058522716964957862894640101456639527711731950656301768460193405771615226567152465088116404391223877892458161102961037159708059412334745396477118093682684719689346284293350891813740585777274850383656897617282880121365808388332911419278907798595706565020858975946116083925621014334013197037794324468875584602738061116006933730398044173277005398839026084529370606069865443532840209479463748520671226787508505358674381384748281297205092665517408863887071288536355176262342878052955523945527406191751540119676314186884195576815158437422315367227498732806124257487334823575476437210682154528121295644482804348559721517886738405982343498024835892186859127689194665215335248293042851253359713332417088311270576155308478897664239740597526851446621416348587052296147575640247407981751167216395014509975521292569876885999833101731300692491531106514133441558215144144353921624482837643725000396421747918815060248964800880706035792749602957597387190387730184071763503266876607896191237091583529390052307410007962136432489562313012254661009571930581502278576314761024556870416700657155786133157049488735075937662361827958846085247082496438232912251942464259119227257945523135506456683082750744424036797393043880325460194941732680313324231551409359991285428106451600945759321541046815035120295293917977109662926368581106433609469824653185008853359460518448322012360745111362853453516921204431999690549075462043655588895386626379991693191966886954223045123692844195544322136978191725355726170128032618106370208761190619157992986323992567403599620765587414082811548414293961507138504201108435564556078728763433939810412193167053290067216758706660353775137830637932411238075453997940351862558674241580546388016755983172950050262691995436026691620222092815183908715136149553362978251116277743024565462422528003877637871570054528074685620718339097626805831022331425679805457564958583735410335021598740890577501236152772858320663084886099205390114864478192736314022806555913376525102715518598527778707363020906275439485384109064503198010272410336440640340863223146897032668810693469314515366455797873623471493716491268860749832975040259901794814108522140921778674998858297072250482604151259664078860499711608753146938940724443888802690979667334328404290628208147484900590870622964116467041681130773132908019356929959955978022307993629449213669888992710120961789859321331794935894955361839413799283622542704870374574492486782963638398188188178918052236737299998212034373621774698165099401071396875997819066247603179532475641996536485456041248561957978415363041200866409638195658435376544919948287781580233505073579467316893408461982542121418371941836516319564921319493066587471526222254928330847684870248228261162838544388622979035180787471627361201742437714309091853911506276390885936729785028887489791591145590547105411757558524951028301776641815702687186965698473612995669315805228472029845090978650328369084171922199908097726522352130725218108815418109360436312669917887531913638086830640289197476122937270880005540399596770620577682408216980931989853591417460767292822954931078641075581957532600712365842247160953798923218024228480471935344942983516683665994095236670195915083346041228239906964934105025918618304689702461724439238121679353345942515187999137044854404146891342923986970594655108925739396581280525415207269910150458920631016641073454053121482475673165473179111926002897522455418676072645333005303619986791037298633645943892479538115656726833460747673183443432468723784162468213222611597045388579225083817440635776770582104339951567876306944218691302809924280485474570404678338329017192098884266946557408543479345593412110124859652042876493515415269558184711769722271398763183021588506024965802912869032329296868585033353015152956725514506353759736612933576425092955588902006872275811710983181189247281858532865514148612595616235292037493283794268064964075752776918611006478841664493647395354672342638947346591320213353881603201496129961400537249784680219094251944694546664475416106919849902609851086986407346408905046987667998619093320631271089764063403790514705621110809711016638038196652936824857020444955223434765054272712266899489085665072595642920368565660489460956750935501988430232007746447681982017440688168567600431103872788324854594192490548017437655392009189227403766836101900631079280271458755995507071094790548638407337064549307720621068215761413893694601576138213999381548012848040801354491109846505834228283439601435081499392113679016007870143073016274579426359746121820658574227516142944880501200694831893926518693155823423069143162772259917262640711794154836146726732417401381135948756008733571316280773169591783090124731857284647534007344350899610358951580992267708290054423208089215077763491376116988598912309466000392926388938418874981577579146932010772311164095398387807255635638349311768069320851365526507673024074016152149239747416199977180170146147992910991747690429028211053891444096090592202256888281076822836102539378337636716736931159339343949545963831429189149513931794031041158829283861279308894833022172187557607088805221985069740177488255993311940002933150917847716203802143663424068931591500334967470458256804827977691135878937040688679509762665204367027528426674363504211536600556987327849326849459683941668741077060427352793626441079278372885185193679517182746784111360207417695769280785518906724562809956297867114742283490267161740337712001352947743791804709198583649914693421993317053020458326925914436674603199329343934855472720484227868489112598400728872745284592084113469575116218381904020581110273065190315373468081338288686605774033226151827077011779959535977775570625833127537754223328479379945464364972465257249144207750588380274109770701929089140551216959034376641417948858466130755271291072297233147861738638240307399108134357788712929423446170044235885112049413217125026972210260020434768525860387129593055601533354391509773480511915295083995136971865412932045224751414069193768210345141354536706636367325220414994964931865728891973574306266738324662737324231483119343133131704660751234163813980767790116634282141981250198891863009674702308377066812244685050376399846272486845709992888029740403693979596163247407817604168507961262779409045578261330636343498872405560544993198239929233265908710541016826974389734449740446770096056363983462135011386947414466417219855437076385845403185499292544787928768238486088489014574759507718934736696542064093531820730945788061159041151199975849678420631843591274538067961150267869166211745103585977285374819065229820028235228504555634727646266572993019157086457388187168279960740123663663231241153425812297568010117331367947754167546587202711784470232761625237140152509155499731747485991189015456519899625773117259910738376770531143146257345934138039929556769145478915345065875427784608827844925021307769068794948823757333512081671457093368088666248907674628706279202341211653373161649977919377614536765238417418092621821503597752773781887373342282508011695387071590420574019324392518820405017038965251933647981634023711701417349244317016613450785041072078295355597906600554045591670908719683084475078902953423955260488741063562969227464665698896871715194243260193717092314639029203477399230108752574334421462407739637445690241793895751975161939889683285169331882629928646704394554152987570331951807197058834520929320411180813175475202950608299125895869157676636603520828307700345519079339489325852935894359420651655253965300496051441082013355133682155479918557939326938735513197729194724916040472231149022651460389662945079508000282452210796058667465990970225515053061303535355578753951740034939109637971480524108081084130735265597173055609148168090547851326299057626465975073007332725769748819682567653396705118796139075942310857501247378809627040909422251802627331867869084453839886630257229491299061157070747452383930808123461364836067084162816686421176341264363727900229535152025599059638199330549725610125474826007549271495774933599995376114873294186848296492168049736651296742599396242356326397969382033076964677710482659924981578622210277263605623133668274736526880156636346117873298952997552410903820125489470209476651742090440050014612242822101054313253072623213040378496969547780469179354978115645691952383087304464363738654910432307405788550702339724792637406326462628816077307972690157702894491525734860074339668421060702320475362900168951443004497694807455805844760586520997951798797445809481515913733644867981379334045604613082272843141245089413641583404413190585906392383582897894762774345802431888292725032180541843138291441567850354209681186550651510665779910219017229806441194318437141063609643284334979798240741644001554235612010917626988637419644657136810299510431521678366537724879188686724122265629316642214285633852440237129698745364498772169820770583595219720047366348363212396706571696414971302055865718079839920305599872741179171196925983284993410673741046907578326403348449976231663960462072347673183378755900209251199453914243128373580156878447303275077209573837081313006871372129966436305008005142591619376771435617879063552973968171218211106905386538288791375167288825898282049485558041315831280101542611752318699760663472473635813624615446083375386125000052733959873384600639616843600132931460205678770323336117773828529508976785423680639370309293814540005622074690523043697922850147837679731752284359090181097879749867820337624420989165267644734368999316030885636984807552744093907764617474728078335838673565382137201099976319564149046816274461241240877047129173262054353474135031902871538173980901818906403458590286833024270708329253363592640968725218251112029413548593238979505180680076462002158212734186093106113703682125643238700423293394912384256511492870225954075483138649258832939176938392024732805152747147436402527725667384038137806768407946494911030288666858982453347244044727328261485743332002231457624479211041463485610288569397305044113925395624903628039650609518289908853101902340648223501889575130842267730185598861295614320000619711241933159039139257139908583932399350360645274392299606828103400286120507017213493867326499788718631993324569004987026797252275988942741884401127150957156845606936312334544763600326553231951905546268770916132262638283717859966858872785304208739693018501495470550572566949061393162597649138791714068828149796682120279282506055577107744732405842965168574107822396456016431275710989753570075030987280420829493054500456639242084216981560635954620889405423151620292190302781782368863971475513003152582670032038582790972590941373012457865658632586101024324520473817463968872298466434317935804876242209624262813247655916277465036192706364261152407390150027535894860362497162775887817191590333248564977791517706793245764952281090672795684046158073973406323627288104131839749657954016435703865869018355670342182648887142672762194563727805780516940334637664097173243945990594703816138004339574697554723076524334124352973503693562990137941402750937697138982617668952972418608208490646071016379752538919411088891521211203218026671811772052504509265930819712408189470992539441435236930183189181331915022259543729888279630521115321977497427079851464931277858533424453994602415389791423292035389344285529287955833565210861092831261985766004680451297145962706508681366580222697398834743029995994564913069249707517175509435671468244317622558828229240429669361549583411716165119892043925813056429493136403509959105832308331448604494161831338470553286964145430392850490875214683374915256513723990349341915108467479965858983919192850104745061820337030331868179067645131751666859260224016350527166815690843572364346101005011319393237379223300550861860232754095865297223153673179243171379015384726520418144141113984997273197049680534781531419218236898877531781374600246110879177009236549808877236511568836984268861911389867931270880845208264968198428116477991806900994985183054394771209237668870283741411290167572065451838675080870417383269836074414524689645071583052536563532374370842207273549037615930700019726989369049841970918675660187796968446626685158534342880953725084249717356218562565007233525956720877364071416379451583934726042355230574265990744430195590708583393044978471656419519238523006152395434725741306500664640933475874382701705055660142854804011672173385375925217862547484275304325658228864960525800946067201185596695845590440523662571318379839106377319112000158516957340912340401236764225269167717115599872018519911288357007347699572135770229079668643181233807473440884436723789384782981262810780846868025323254060327277124780428299371267017951793079562055421344972325810464810817117138355253665554558217518724527727297643235353379688379728289014243740786392844119569935652721540215299652777190745779877242868090677017085647479808080024060664331154740379524130728640362292546001537387142723544083290253318538966051961262285687591122007158542854397638273316163681056974007888538253002506119735401952338391926529123325165108980940590911474706521598891712648909165262700508844801190321005360920126897937070138661432378193195729265347253799915437868025336106775624818725186306607178941568441384415669768310270301606962930666550763277771992488458431176423225607580848989070825321920689362029966342515667875956750268975388536281052980934942402764192313622362102082343598366385394020417702962476633523199032528935884673473125851085390172989989902221488053296307818919149650896776893910496540233206246627014809248228856799411684377671955766166736131510819735617060060975049040716304997864341600163237608945578026507618873841488833986256821645332025312918487498500182361803659402934105135913519374975718041396008918019324178683224498961587585311293074387646084968213881460566712335752519814655922593177675857208517842611540123917621737145816493387859936697315945203319682454236966187695721585936384901741467296531258596034999628409013212848543517820980187412315452349834285932167541149028118207172366930269794396956921435929161640023702465985584544019405719854415663365124740269538007559436097485531454589557893583648048205185591043096303436155782134098748856359570164958101653970908411850772070539547058073667257203072547426113387699163367678928382352847204278153105082979250503411740894573124856364486826723755160114029385535174266062915902043166018719009895657942805075824109995632596872467429949127675814185327449173058357610287281785337133806932091808575066989199302211320678545701710768369837519288158058420101911417628828989173105523186053988411370289844154045696670101975342196778150086132533092148594183321389539900670881872543735331814323817196144312133566012555334621715959249208590731609047739143956139764995201101523086563402737697432388299177141067315685569407073869705666411056119320040209496904818020880216304212719388949273309685190591863370366597446967195708353875914060916292514554656425582835393731814077144995715972080743299364388988148738714410161189764004893329930086148769661114038482185534686077232456993349373988572231595268467867580075605176406039744013655492183503105586535429045336349864654315420946865847393857288344723645941213420767446657413355322918111838549997031789000129581883595298416922355300093012936537320210809161494896336065160770775935182117063437620121944830835907292301937740538645902685551459234106495819211775009626707529011184886501701056260159734047390846911723619435486711513485257203410354365171244600395056907119142075117142205379243330437750779397874717895617728562578074623138905310983323944629517530335953614954356909025363609956831902644230152359338999330185071058737069216852947961443165504467200985812850536316437673731184504201967809303549069008050496494756828051801480989344588647726370719161874332446853715126677507427603388865011013059327267513310691617893230911206779334383549934143462439109472630460750518819445530249168978582452053510982014892149820610641030183328605688078306561591504208300614788597038097219019664477612079234806256165906821698547869406015790630736694962773349357868779786869406356720984419036193158537237128055750354999111448090492702535890936581628903462337099337539528409080006890186481784398768230423031190198442313773206563294297658653229902630141772127459396589279969439387280194280035348039330056681034588818787509586438598208964680160050507585558907849187747542872064161067819873614166625976784313106977447262461821310541257505824383834533137170015971676018259912445123787277266810331925823537311690922358875626733943397739417791367268255369297576204545767394065281885239689216496777858717901348997220486859287159930911688177307121548794787565023575526093002623672195304908919237376814661833262756030126541924877002538281371168296566683428469820745465648357030920518532896901054715544377956156099057712088560335725523062299002257433660940709880029450767343517884566467540366329968863484961153365904131142914002657756737063578560418445455223235350180211545569196651591343336648090516849222882859002193743270355298525749183953356758202499370358557273082891056765189970112165904400333980653467889280842179460379896063990538889411290513715840929796186661894692756800059580282522764875565635314365781487502072499750616745208121297718027109535002242667292707532250446963766653256112689649897483466251948014566999517559017029654324240508668139011706372292042526628645801479038209940351667185128789298236177383923747790713965843312927593308316797027930809310634370862120298239090299092158432082365959892798748864624190086814459074518259706656206728568439951835645710066883342466317784245610927865419927227385171637315385152957452540516000167385457366264307578311110261800414833496283537320601036239659143350507680108648039858969041342396282350424747213015439046526929964606675487936643021671948183942852080905716684473907523209026534840826178178000065082141018344818596774338661422937493850165421540783469179145170091360657533146475876521316393776231676754991579655269152835553025158454964070610213513364821884460409441978031240230712185733915847122519594694800734780540510289610391013441915896496895352326545453416479926643980930739649325622953613720361364092611319495865218258106842565144666528541024179404069304302610693010204936101237892326293442224751001123541153367737099215889980004358839676746488013490429755049748664956231614701644104414581150479782926881981562348928099921400469565654660755778847174911516761840143729135894817275469838751541642309654407267184210925137472248104740168612897316142674321323923680634560786020277858631867339606754374299138006451637662926530017662286293706374434316333424363065042250081121806903754331849586585785429822084718448257121104463705392227811146932352313858358489238105022391762206748492801494334521248745024807166824837336022937108548368141865732780803114318121361161194704064339831374135613556400642106446902669517136415029101916547561079049335648160299486476365065023915784147627169818762779027285457342579473424430930515932619785051883564179670580763015267403091679873435416336245746919056591083184463096038714813234137981144494503341905767769337551398941539376763879822225145120262877556043433817159505641210524335839269551827464697580969391848773272525420122056028685454384228995199073158023155941929274375495922894552565015231855211072712093034247790215466503140662547821680724242009689587739470451750688326297959949285365548375534740915023604931053133649215258797276953015397404156518410588578674375935985622400335164438596736012576473831971259500378186629186189856894264997190703501956220015529714816210444541967334845330850606523651370791424586431777961451847390941457350904220917251366163525860138999624240744743963308320326845899075582773571650724620420574886758309128570740528569979599563786537445246184182589601655772345201052570363269551951704301523269502285768242128443518179624719774565046808901161257084124228424716053125492450629747885645633123277971761951314481820729302547845394138853844898473597234828226841606196491327332726571361491784187269436278204952857148932454176187477732957597890777686837306437668928914643221119107711209557745372079068389126542797719365807382687799475354912642189813006501930280821445462306894252220967266864498544675965163562671263773652374621735885195237405079252943718159369664784832150598586695725921294148223107166803889056085653227140342101001409950094583448007004711076095313576186560512196757229646341277068740700008150946434876353212112648045562867096499658998085829610683531008970779879195344720880626927257025396169252776529683294591675205114683377230959638733579092033449764977718908995703866095608365194963782151337821979294895764566285306537450309069717004212462805233771501844908205508341292843437017488954270684945460725556822474261279838900003689152257852995151905794424382652695947514236745813434143977013270810326461419458683239231778039555854141108006642962682242835933369813113865725222172548622943314325621548009205387916865898009289286819716557028954052576075403526020712937162705378821031739797011645589558959243149006064457636909409587083379845348620258766222385048907216557375854810723195567108680054783395650652808397306819681391594223591056867010210061292770750257509395358991177875530064501402092485523788680041205790913263201327001001674196765673534408458739939984059676605406556061841051133256889841473123433324333011548827746912077597882796088162877142347832277186646701167426579108459370852391871126373476689292496144762288269437555114168057057011401231591151490135209534918331750054566947874727533711420144908077221970292202364085632232249232839297012964571945532786123702004358357652915008970298864496206552548799572328613583157531884477802145250618546258061536523304374858386612912810752414016895288055088260614990248251214974904792756925374437607410844559119527963579715785349127449966916609269676338617365472970400144906230820504870538796051016564253101978244708275098927493829205345305283199078223610136451010856279238916097880187398909849695533782670206291706732564629954294002922742646242149958994638953457464473096591452635364993131690903012797256069403241872655630480853478563775921773620925139877945568618543237615535237479318617724482472658226650455315495179913112470991828556888297040688322617644889679588670610663526563737549174630313605990529119925530624411822544450932241913857583059899285560334313805399283523229907236276805471672850808996967592589319409640619906700364611917781114447276189378909793670857077791982657093698637822174248757070830611787809873563223837245167259499920116962373188555346686138382069909614261339156379180908228466700979164406500063768817054757880516720186581291717375865657964437171959187423765846560521990573592044436262186472697839173659306657266322775968180067671243727363799377987906127285937265759963137477460216501261655212853864838647850274817238182027004913732386590180963366082617124505768030616051144184144481062818383964058821976080319851218351563029286537973735953108461165819169864316227051109514283489011797558594323123644450872524144388453451643180413929485062195692884789836986196874595394026150142714242416246088610140028976453663875338261163813658453816030020737351246205114432440283769908610514869096016135113791960386285186818385673311032713359259046878200220841084535055805373099104410710088752884629647333425572558107622749997883338982655419868906720545086334499183184925776311030499587479807952075992287257725224541680349136928299282923267421769912164675616839877894460685981394115234489611552174141108856659984088554495459346933271244509683136290437296465042278741389713495353197608989325431845023879862363093775513202091090183744477608984641306569553605768862236385644964092027394278127423103096201799794901933092951536660900440959760083377587024664520578467432029047676228797792009225902854532753835425664433246863648373380803699432256464178724952431014983946346406191345269499160519649227285603397191328940626447343866237713979184989030435896761926234022156064566280415355154295176022322495045017390245482907903348573980899036439609513373487176291453450877476368442986088702235027057801815733137703552368459252284012397905404193782064485258239424927448787591581310611759308613625589256300105288417581907508383531007372258320951003672966806642372415433713297303373098112345610178896764443295842199354049620725748243776050726528900973799663382788075080828802613884665747660907736107319711995378115236288070244510524098428982380139988071901773600921938534863988353294224341880902792025904015813522056591090542287134324333171249412123791924371827411824387102432253565161419654885919681909872194579902535619948724787849857692399242714576198997170393962680826900464208961472474044991210644973300761922368439457055448890680844532729550671502203745849697809552245687718952793367434404621107222696768807508641529632626329933932935813888848617253113194046330692661349596036369938720260414003008087512953140115675317983480114845743709824347284455599339256509414292223652925177728818074633248195478328085738240309286574198859423869268227575233785040955977310549442378164087191739888103713416901618105947232323428952049868554289419459967224649765634925493203368524584562317348679932100930283648274625274388629577417744632138721237065220867314311686526348535900845896993467830552766515199322218378854742255715964685421089848896005504325882758066838519040854341142559723848056108994377938234673249542072490007226794952190116699251356581559074414364197822951287077041790087914692827305037151066171471022505764319292423632996958886532592144609146075313890888256561184037212847032588563466280484414433500130872653613771803689008104420242696802872196463154772190307027618636823407200531917341373387553076419804674961850633156358582903577245450030588026980569979077112136481482854378605236497047074883906484636739737472705243955405678803350724302809078890970155750450528346251464494471874245038855587907846280095695476200262369725890782126420974906363991592035738088194084791039201953297287597727945374759957726316189915830136532453361138896213942653268679806570234382836332720951340414325196392945247193614505595837181720530706010450584574040421072895612318572672825440812916781682089640032040988081276837508236989565498344647245673976245147562125673530936890580567674505306323598739063164483159763121966030250161502444784085855100605251689463312134638346297093052902059782294761539590982499998106683893894830350953030745584775869936678430332273847206626539397001924218091009046327128889623479656828795804103258030047616446404845180666914279608077014308584997184520856624503946753318764599306085488103422640769575980117299230488843228599660496439416299726293906401403398468140120127483228990900481401645183756630132176120843491962785682839833674581901868457228433023016019575577749340079093894105980254079034136402826889615782508002764014750346515255344287262934570909741406357702242372868026433886764359343125174222551625627342701218566141858979610999002126386090075291299879286413915868991592373825122373083298489801173695677188113958959969082689817501274023256475742420735095832616353899923150515831847677396097727853657841017827748893695942920654017701152837560126868436943067714005672613491809030605629221806320155897353471356271566504756919449764295773461136861139661003411913771220001046007139898635217962341720207196474112016814853104920505389612555361524199607864670495807205389986858004314364096570147319951728115647470838057301849603472453017952633742430953314752563040777171471384523161727666719886715615423365166642816994407621099529676909243604171766731773818300665926981958679241816215265886514961206265303053191363350334190333047984553603411237424317041429976158279306100448740602120780312309526985286603257113926761841618410735497331036453584468828388161800376778325419797068379446061185456772528863303195717187794380043686381191596161018826490306651243102596175838766125873332417918015558503547528735582275190748167558835004614939005638582022370551622075571801094430053690108734794667736967283775388558553348630810584299059491082623397246138926446739151828133324833893380550151051620386720225978181405067641342406882667889059438527377245586833523340489672225651280255807617140612341548837431229939075384215933533515277483440719873405831296522423963255178416997053062677745219067261520900804733939253350953497643007401428655069797501936081661730903179207475121934519988509023759503083207526233145562351696722296475999292525735158638845934461978415113541446602466666484212872871806768839604387693742071841575527567894092899289165811145121352855656172139349570179484586980832168558126551130239255858225908111709880823620482514531718261742475886845833143482232739720492641636037300155455893852836838245484854778441772231877934656538125210654154835740768061779131168262135308133288395408381106030707020340630286291638891877056847936217790956348007829090864723328982714565626748111002283342551085834478199253266312252444189246913646482607568909961385834978955559187462518708339423807538104870294867713121868089966679048279831879291648725438608116422341065488908481018959421854223165267258007620604231676434723820478585374258385810474670743630518980845479923330319987886458408517778521436657048779583611730739888734649523916259063869450542920803123207638728851483090080722619012664146601914328010985804368726245503411303929234080214956580070233129355652915169659332041694289312839328830407220115578879017820273321941068084014144477357794403354350803871065959227914756653463353412165019909069276811659147433484632004671157991287478320274929962547197827203560509735970747992131742874409773466197191160763580753792335686341845150862261100242030862656820005286010959865049416975218972673665977985398909844054791589784653959888980014246299704115512737756217063179685033435079933998535324249594060865918934073066635817139218827750441391683164749067879076340947870815476804742361462161392064042110743905062229460775860772534802103791217067435289284480498603853825291795479068948801858935133678715105331457484576803638013759139660457502943756899973522047820510830136593141319898835401606867029448095718736311455085715096435925124669238669548662342239291593661652023245242456970299273701825529353289414971905344762721276733456584511540539748983110825016692702084320547369786329150557269704588534963431503192138844493017766242363021626087374568778101055019577307693228155908501965957708295123939429783379511603817801827666054315379572468358392898400032689639634767117424637258043103458344070811590067285704042477929142225461141464044803217534022448345198385570832327827584900771979505566122318918300782018022800799419477673599718162232222364800994579589477885704700626238869532807870336671009809235558292039999925369907454335053376138404739194566410108193158295097818897361236241486549993741672166411235107215739829022015070273786130943815205859317739704774358299079105467487751899604910695555031017095616605728472832450193342109502126914513611088928673857584544167092023006923870410945176156203383321008444172215448488442321905898858633119360652726294229952874312890507637101124358014319925590011165407741607767576207552192170642637721362886702542317215123637885074529077436750496005599259475141361264128405656048235170700792651374490193311863993763470626109141320340854385845321433499034985755426513311031182291005326653477348841515615956445952901595068838541874866687013938226691245786773888735382209125194355090759081919687119337396459222822181994589998237823710204686526779648919577690724406325245038473782597182408264652452878192065357686031446777912161010125325578227436420362168939442800138129093249010562805796257697637804981325577930154893409548618319621007888500284267826059963543414482940688301289399425756220316994555398167107278102477740616884025266809993844832084646043420474924806299177796481697208036432398705771237482130972937660560318578853999236594466963391196707302140152595655365777828217548867577173520910824227288025230393680141944563767602355286828819648894957116640446762260195674552394697003938642249973763515656595940885091876589985553738651135558364419915183347412853060857881615421995479765167361413509540949450993060273121769506342535118234324550386194846950914114213339808166257491707468430996399410044509615824671543993636775144979329615319149570130702171270814828988210045604841123382776507744788598007021736716793736142680597713195685039144462102755864184090566082762533867654838965459073532879028372138002017327410092712267599567008341371775574159371535037498985633936197379299214606907161546749547544024185089722419785777936967227762928470913846515313034962519512546738182282614405803241391239781450139110932615255602685564063734215008017982076152965938832617848235831483063770521107711040826066989438829334464992063485192660916442176182548456252457123640290681901321569396406000878858042690210973476059899052799848123335422258285957113046145481357373559097263849870909986045042640200333353799563973069392463194014828704748371030216190500271949689085547983394977279713648693639012167190814246208004204888473993034268407090533351319969330929238378829774418107887109904269689840096056887896519144330927234458920495827934768167946227383638688727279169432504319911244142612233615180615014389746491361637909592665296065000131041366162169246862312047500091278692863158777844964320473975565462786800911126067765708171067033396410929449354927202878243552954120465959780852743518912559642125667230670411559586096860374568489542336725974810443158673105642480062625116772979970012956906860016555811768068063136658507587555231624581606181236643097621420701174272593188396135192878914679781029398995087275346283619317247898232775530798204310288838420351725344891329682496769620788737162828866116542673674159509985521417395523829231307474963911427028416258470082469276187873783315472134556614637676031970304026693816375588654524798174105874018718301211738964601060563848431149014456441731786312760772182025637790763580163891519534022209163074225500315692472971973043889949436815885801078326823247836602923358924881884304008842650676446972472337764492452073653255244780070486871998054234255591608717492284045169040454251073813273660818561424739748843118824311474094027428779732969529771962543502063853362628529862499435630554028407810896535001708314103015269220737482461618354370666660361089295792292700886768602589160374505051475002591046718786712426338190178441665136902764953317581534806962513853127833602502754916216151240471468430452479578438228174644191073025420524789293055984414660854917132918669659276364304017549859010047949915205692229532742990431431989180783429972860656425883741901082203391702727364217836178614102701781819995941336888711015690646139628447936363399392374257715678001499712897231547679440748289781637165052470375183946283458895325285069279931752090606436236694364070870316300012783022115066623152316836406052101500303000873601949044110884154240384138639116766649795561803024492146047884819372833932277529716286956154503824752006695125306703518030523626992585842565718752529946080941177212221245461224312539505727240392533843655304218452971557325203483700359479488049296027212080124678112281884416460751942314403493067979552872799103086612914613510481863994796659525731184990945989158263385338419241767880513835498531082433948319848354443043683821923553332280626699498891967378591692961796534768397217635698617420649796069109631046043870380912531149348634616914865862391039681488084645137098386528102894748815330321207006966393221143978347663446822178054123926852006856776401893412945681792722427892605679560871918992116161553738279318735628937897627663542767464914433675374745327316556687963125695486634021829029820699870638867156332305976636439661199530478625427327410676173992783249637824571923768732360935277836437127742295476483289281382320766144697642175095650381504504760306889782360209006894718158882306906316226200559828571727071781364251985880267801011317912314401772299537541864433655575634450610567159347742704696194994171308390760304940090557665526339928453325220694999739652785387350421752654856746833533484096493422191071157329009159002559826762110630928246919708171027358965635604752070152826021804210789981504284953295883919324432483201671522995314534973346393708523345578115052260054080300935542226633605639308627401207899129232078415832079876405357879607515794348308833433134176293427807141311084377170722108796838555890970340163215954069745114490177416675253631849908446990860636755087409319519581490538600185335816218452201143370530115313782435508648667218992993802260558463523874574584720346291072526303842477019491421910021337272773289207055408049199241381381872665623730784975191692578449420676360812464870654377621742548556540801684754587185096630190350164782522452679637826071717825797728893723915103553007251804995911569340002157251217826639236864453020729562489860302600044062992692013070947175237333947750042007303374556673400862107846747355717394793190537036188271558823942442251480813839853870984862286590909478648144574248391865227849448919554692349596620102423078874098498633944249856841859293468211740924512110698605877666177906542084456635533870191484376794956949618420708562761739062416012863631430595140704564807173464793718166506641293402747956649549129813339595488502663601642937705639843707494092880478293969589381531944237150757232085436729369022868494363609885458679595269528840002721170245411277789316196779252504131231709660331940569302547187816062499004770380908534998524305774341387231195370239091668026367530796534125258276973505176222378941200939815841642772748104457760762528166953323564064126114557383636292618726996170666240641842738051371250335018226059399457324972121720550840924668705779055767673110669411161472386324091959276156292140044336801912847908560632417436922410296353763951273449341961701330461056595097410232211149203495123022287522956138857367961791479403312654147633536253465233652652779559768918593024080486343106720549884543639913136334374679770233273602393520545285559678389856388352312417614630350783958454829506030224007850190439349676930944295391384230876911522967506656715269742769146518055968187861309195970575180532147829788710509843884926302610597139963279135679861343406911611714628558978153745034463197951834022349181828590835835902425891942415729285647171458774433743407540607701820167165448213944021787461761581901323882716709178409356503155926350864767896692918073671023304104650790793846782154728824721729008651658042373912625422412090807250066357535468773462087946391386367852923693929984111243664657910384871910257484214639784733444437476479230951842964758551731282384013086717568671668313099081342039144224829096271186244013319157619678825763065676664388015813855807803960873907657358390410050808202850638202915002009194109423867109228353907957741882338127457204086138125387007646989226542774091646652149684835827828639273250623362819349527266143765410278007707588217814400509502799440782393692646467481885710332683771022914868097425378145872998859481895368376578713677856293089261708150016339506596739388881549586915933682451186152249922443851974494241951262680624123221818841286782962505435420044880483284587278054525783079798843201473766123590883995526083145221203212467975407546489205485410780999393885758690699172752757836260636060383454782691393269379549504517528270784349168234517271928024198817431592993740079545338589604068411416022246356248138331206548996140370349433198583729698400308344796973850567748223279923092011958081853793933979236344816985582720062681880136408185010353266102637575426706148897540894872906177450149066978603581402542943228457630348485610726055776881995379248930339519359304688538429034624760653806227453565687112816802148251570635682588061056055359613851792947200309472917537146277867638350211529354724617131763883777950300002454019771624968995109887364782914816850324073917808235229832775180370535848465256884460406915284173574265166354880149676523802259011503361995810774344160268594603885392619440087141752122248910339374801373750642143848431503474922898517076662295899156885663989285546071469086701565616214868297600186145760416988141218941977771235896333566955752472472259674376335649781276440875310189458042437856168358457437976507771578018372853697193218711470838116046724332089647496421179438345289681774313123184371502312741027558544090456278609299595262488692172335316086625428481165424081190456863849635258600641573065962049500959964621154526897258092713237188523883237173168113624511432950066744909325231194472611924346955571768468545473201795733674706236851378409335959725466528303615942693261535858919852051584737140501254608628689156337894026411209748878391362606352044792957200690182569113767353430270853275585059095360128105036264773170641378907050718038190998661508906040558250236830466610280167782915055470122304038208976149909981905393022137494662332160372433867403877031444066218793319845378302532579426409697462226342185774855801700783648852514634571302710231610839333871038466513570269460261670140405249050039089917117176349571314219589641599027309245432955750839343027107663632851463486449269989423179415764715562551609942707271684664261796815794506008794165234701797183554224579858664662177376410303768893736216626839387046666253314257511525764603583348470011189154272826135950125675888416974660696376612793892101856439020437748217875999550472006819101636721017482330482298217455521115862188033326710376619682699838378881471569586933753875333378330653053095482872095666994337958793080778193542839458649937640253916626557882679698731242802811618162525538725042584726172703955120676001983579931878130005365734986686700542470866215338595718115817868472818409373183140990270981224994096807742004462699847777078910678411750932302869520143621095007666856214886630671352877009504590860655705895501792723791726183486740208130108856667074088081331630042908861750318467391513072048484112718641794335646806736712973375240771509278212997291454514128947137176903591053646822618048070794799847605479118534194835125375224623815067503955013935568444992749948888843294780824689521560208338934086770001443017297281252540417374340923634988528495737109079070649299227142111193287185002658146082522356442380711725734929708399604986968682330720909472871426435306120898573790237912805653831184444094425408002440870551040422134595995236800748093602028828012642934018761879098843538936719580971917240427085301210035648083979335764559325244280835688040850675852718121779401474057662946450402862786301027423192715685130946458180865894594043960305123376770013620194030817930174951945373790618265593085797532503050718309277969531493066776207553349595540045338590577137128709831030821031885032347720221635461896576620760751140069572107692793856870552475496391031044210407575363287457231575703056839108172233382593673257443997615174414071841274605577897266436082928612669625878292704622817098193073577622533465336367864074462742694865490469654557911733337896945322550476083533220627091282184272960423803762868773062680798800502445389554422454908980366688922199385377025246336296306777442193356326191473543188669059367086825928953114983984550299300674001389407962551930716699765359858275380710436252120605650574261118984181390546281033483007321871568786009239255053466515179701964702530580282592502395717772248636498374579271137207523365834559126595964149029053093207178900820405019255640748516076195307649067139518983931049657423730634365959146190736140891808837144418788967902768717312927492998322050899828219505281774472644650617198194037820326392832759169760045155079185412175832676693744852056742651313721060001249013264029635776428313166822726822584705650891164943620314039514330954443982883482709087776360824170635803986400328010283151892634644311924403346684888702581509182462906020144735472898768347449235683326693898718734262676068188925144387362497327970495846219997996352099398259938201730991999020082165742832251329014796730732735706167147908406372515274786324156484509391517508650714345692983138299316422244572188844874320754583454324177875562046656707645320755599377017175677450028572866753420516445800202289747832602433474730422979898323433346055267625485049934807433538918104098904992652710957353083769449392531329686533392960764075254163722491416026275767257565018673774254918523625622972753888808351719706203666294285741178067556255213426357349563185961013564463532279569117354451375665064913447618797699513509631092441271811662122087447929559783083687772085819792391634228619339967621020311358160600234430406742166218997295185890003288913362203237348920245710471056319372842572571615919242847436070171166660688484693742449127171049340032128828614603689950569305453821937641366051934507661693558241985183044767665914939289327343562917573108855488703119099436497115639341267515003248657565554414903300391348184861307209219581706185744248589093691520839500090178298210072382277100788934344939146373624330710741578267992556780255779168069914492359188622063026310989290134200963100542481265448245899035946945808200034705707948108067403084119970967570119814056802460430376520139018143822422171809247513006394233899046050010879915578161894085340341087424355528223180131477599473695218988186943823861820639078019996832288415027355905093445866930460698065341226998977250712298895619224410426399350853656512831484913008787963635398082461569522513771532385090266887526912733609295806570467737981799605761033923302106206957275240021042816714292227693926025217782390674002321990445771855770548257803564269626377067457437218390425421313072540492210594959244026481252288444515051056531806272388522784626638046394163919878344219058318297604042065755359370254787712048623938417905304832708835039969526098021592324881111426175198593033033177211148936500867869301146241137795746220078441884760808942166370654042345000957175197778273257497186259976675830280041035216349506552924061884651681558157435732492689097963995868827562241281309162792156076649455056558025092736625485302508453987243062366600422808947467602960075625321628606218723608322231355496338828948495094838894039008226245304760345053944140063054272148456379840269640256913809665080764765285007333621657762343052409108844116282267434641883311301942571491014596406770944482968987737581052743499393862901236594297446116281284991200712276855061092597251153246278017420579915477100576144564962777638365294409575262088557417241623573338708937195007785768497047170114470069044418488374605778327445932114171389817168367749234071244640812063304415052169056154601169842244026428046728545622588567000901264011653073419588362066147751952842363811878329212676923065923279543144796579389487475741029285422601586401920156387399921035867843223208989516282615953318941699603541657650029944691993364430180763165425638109586116341061214443425728496878836358367179584628472418448375478562132714886538639808330482829093127571341238251959128029087543471547168132727243111479885583442259825428824956089401795159257359287749542476362136826726938061057337088478720581630596407631309164932800664867770811360301273568217446924898014072327372290425025511222659962422769476517278123359652248160854790513972432797644889125772190858985798298735988338622249636894654378672305718672529389996731191394383605025482583998728382076499071379018705158115219197694115746232038370234184385328388998052133287579020484989692077991494023639497980740568675718888588321180388833265483566924961895008633026228189051498936363743167277113059639839501929459635993752486782642165352089222886719497028671576400090876096891672519865468277101433355454380775365108278151260168030068934716567706395537486551384842522142452911206604943863738766401573288903895804700994347517292947742930004879257370906871113248133763482114969933604633540071813436095922361739991181937184706030998646671448374188356519007682772896646597107839761227588450972236926167237370944818645895346891059886106558489618505846345511606397933127521590608406837937026132476071087184476824585948468392593520488367021978898663098069891324983910031170073383683593446216198150292151180562209931037565984078503380990383850218850791455306924439074207944879467857342174186642663231122729692236825638201933261779659594355930711409706136106356778852431174373538010205830039913623636308729177141452581611698003298097723776546674829392086701244256853000334336243104568627959647791228344026857526877357940415041629095332170112347339378689522207431851127426576175086811129053393619655675405654759289607032320395397718214569332253280636642315106686970432385474213510144412156368821696748423625845717780079129860471441084746895525231750022986439630240750608929007897467662742726690041585443106260652864540947799437058080174815313123882741565846993946838186201314199055450852272812534600450493735491791436340308604642764452082790492150767786842061587610432392299800747091499990383521261907229829628385366928676862960661267611492116188724858113846281449241350678400507384132894643756369650633727381548111269530372125600292802324592349496538588547547514356811466640213634405855238530679097357175119340708385738484492288677222798983434718864939499935465166026505782568199583950151880197169974539883991068155411454330206337393524776979609925237971847638828841164097093781535832355449799473273525855373700227222482569527610813342021099370700004326583045792974240793828908079263234140794948364273666061415944226762649931319023591618972718663538243277059850043355436328700036848837670248434990299863565797730128175552442675095139598638797255984414256644342938167403030880318009617297895110154597063490608977699004096105549848392162190256448707263116694062042640764362763035657927592141586027889147622680903246869230142107309055149326495325149227823146933048535894434163413280803774043333496770859120689026165996352594745028677178216558149639008554666936446067017514120507449060871251610816598159435072619554789659050250301332707415336707703431398682000816069855136707490472509760707186591472675874872259625106853162844594449649674974270997227520438975670780340928911744958152259045258005696113441252229230905161986707367760400424513320573177065286861260627367691692076313044378059479966876266003064476415881470923067035178362871577469768535539347110569088513244201458513712779978413060697539543114249186401346806902632196941440979069179898557434850586899228628695079847247200128142873948773279232817321235970531117774375369256423914129346501125016784899493222611986083324687699335990631627888983057172957488766915083805914897005266246492335827477373087471599435067156744187941570992171319644118765065054531771941527700711702471710208428974709546440400239939980930506630744138285529137675941890875130506616294719840982714528695929678437057322148172366156164030821142017294081618660529653054969861221708689806018983509911952054066200578461092205832156530026166753646542898314859388513847659164605266414894247560242117824899246986987541580719345229119025546054837595846614050681861592866136861661502031958867665878289444645704638503017687904382247513229835715263862011940204135871419207519518727982357964201562324099966373047168897854712408675232232296645959144651934645017703616776943064152856445850530625263113520166442558164992988994766286881394292621540000316233571741027842684856372985830456352782986537023317217128191836467613904434364784094489927143949683906210033909602094542364588786889088063775273225446211677959554732936241084279034028589060537128797449728940015694329769862595537227765516634802525873487101804747829437920385462466920679209157409522708478929206308286922097777499339302771599924694553059846936627868355328781795512523681551666352768133874328842095364543658384448359834386607982054797792659436155097920760167972513943239701661236853528363362909715863696012287594039655472583396542909711241650821343793386879562075212565847533267366621879296030673516713696080370189344955970632548455255809239740580559034167423831788137740939093051553496374494508234987264811123212796930599409733016156971987349067718031528335332526034137558689898619925681669654961771903304057940797981738926604651595701718316053578598977733907416301081237239284045112004308195713853595647398010744666380519973336434546364113118050151220274299684646448914712508932001801248732508536007769442591495036529575922530745270620254186082241352384728927642921881305563399485184947537120118147278129269985998403335512566171231478194469398361021253087450800311934855938064652440476842845691162209714318717545755811673977724699075526285111208289224107462934149636933736607239329012666306091870924161401580828583282813425643302885250480156401653682991748894663091877829779583866885597856794638387208367565670486777405334522141765143120913072938175735515282811956331402961187182072577798264764509921052724045656473053477772714857960789877682564197584475012926061601851687288228696105164275454497079804780381303307637394899045569911840106602208430553590973581687971922288578862063143517020343721996391420217753130718331899605552267387388335340078573877614787969913635606331195146796845088019565890780990717284543077259220151472192935763547484560849773786036156540521716061205337998749076082760225206452155093014649463769145593667301962629587727401013635127865418932149645255832886753239909022154782223205099046590116434906344071670564407161558587864210556672189583151978005408619989506818462577925986640722381276527939111073884205225572878419551802438704205962615612189427729085793792124453967956409679074631287958131372606136015285109987998262743093141077351210337302849247357944434526549035421455170246992952571464371976638335339989389122424632901850598455780741063246091613275667353036328898259665453047797286341697711359613007232371768826937674722024648483115769970618225562129198701933333325331101704078436821580688103962228141430280249131994569315223292745733414041464420396500761077130254735226597686699769263595385339580732830002424203268766357019150937005793339921319714714904877166640475387483004523912618849653862150094248717916422352541233838493934890223133090262001676492705170721525526216682906189346250338474873079841402585403756437592710575356467853787518299281174797939363750134452633929649013356512996558130728012854785202973675533779255285040695003864539140112627492883728201731237162664839864738111264109085776786346909154399537635030969856283846373860209916131270117536967198544607531535935942019930455681578217810642663166632525836759408663194516957622471649589427681304632217503029887167866265341762436755725162137934800724590412157743620663664126999070518391740129928913090013568756142031167685361830705106401267927302085652980738371134851256602239942211665802807879627498120151646001437182002438340078697822166170719786273889722354444733275352684383382254493337070690490947079327069565768722021165048294619245099899005846031999918508872879606187088294232824934391542676993330831720102801983927859957890276297621907696648524761044760724677036974952288130496669632630475389773669796650707160703998514607732018438268613108088502803750391689761734898218165845692530797324945982075932335916645433224114695172797609393905883063893304471035252078404132212143050413524844284573595265569968878887898940814022406581094884850036550585541953918221303040579398992293841645165966472953824139419527208547623967143777057411705557722697231327056024021352226059684189586749654192822378788418041936852434810875543714503556051297002403859034469840891502276143238145156551200552203364464921523007066481909442178088897487044063718034038452646198640040642787361619896288110740588355436986511790310742433070886138885930092405933766655837495043227638516609599146450753282367689447201154693990988876667936196837897955369847410883447690580938137675321873914061962556778166550947364998164166621358705085977804447415753409422929828599322489143759391162340878734191812737465392852590674523170224376293391509816005143944438630662230209515644771657063270772242357753391748893299437624296015752516855421857542702596031396255636264880340675304841456095362385901919469268760730062950016175004404142437952760588725386973447754691046043427630842176376814644739487636530331791269740240522247865603233786797130096339469064680839263412626254327935116009593287662795760413051368906310986971646618305511645054046011443577460762988870693501202789195875177201536790007266654716399712880150832229012506414402030121686463999532759815710811468530435781487907055532618943364748808288583934651085092542005251895628882577491134810738105035107420144575358428574889594757148432659825527731159229255510592837733591278766634014739067525078353646854306407110982917715084491333122993479779032915049896000001129535873311387341495749780757105322891331195121225042299859178254388521795622085532651583535901690396823666214487377900837771288206092291575909527098781239626710707859858791509873539102017567899633144495710795076676104503651079403111702620607080183058875052664959246694068322988274090175979536949753825274306093078809623022676255395342968034965504558174560604457914518273138138746153450170650696233885271524539716024363679994942811592504180890628723844892945786812703611088983109932103168664377135977761846550814772977993057178434870853951900723476223813725774807677482722881515408671329885581731038913543366068149080165726384990340609904635148937414437809873502664695410708690128405690605109645910231658314997774806500250584784103305896766418773819912249981301299445676739375449866679381449295656007015268020964640975072897760601800007173894553223713824674400383770405494215528386052696796621357091125013908102960978658300169341913210230296974778239282135021431898886035707835479850548927277880013289671584016163633824861649909830747192220457471519960189138346388935499421138286795977036317906381627052149030552659081192927792895155837211566236604029477550060055965084485390905511266764921348349541212268053762457338754577416236947828846835896721010908141085491253720996762420853401205412222497276556872841735114856634212818319346111854707202572713479317347895974235432155686445501749186250347617731565944072472697415887709210163769824642204633806016662377652286669511149278067312668431723555525491755231937460448506475614930578329903381182688691456555830577261727604946323652861707886925917208925474545987110775329298026574718562969159301689025953470284090783170801310282129303610853894337182624910336644178481349825369108542872420701303486923098345482734943433328380745647575823514114783830326974734425133006944480037720263999156632833939496968750272749589271411763550773832753773456930249568747837042967559392421828923700777404604975057687292568711519548246217772934017185582662762138204637857624071651959119194706054106401990613089607539907739370995031540330164821348791974751641980773653465120574163462008535926525961299540256519402528478769115009443685496998363041984291457776697642824817888200432757902846168019653382028830845211243114345260890803698304838109462784402515499105872765708532714474469666758785836478448802799120810917485962590850410171711197574144723761565166253562760462867045721978917255783820776324233277115727217345844179519264267242539192227251824351276282279261618923898015391810401384563720466974242235338171492045226590841988413996142491439029568997220643039567234193883344365216577290068496413559315756640995355102167077869477820323909928908209363609272133612790642502406913260538357499003022496537934216234757202930416931739731432828666550030852287985470582532871031721772095830963681279905546670398463430879247193274960313732860856810895499135487728389427779302344813324217812348041577001390430156801115387541942886325659276984064468039383010008863522599590914983178140884970124810485826427605256918888203940222230542322128977756358501054187546092789094142751170480109107612042800104591781964524187117593716486565783484113368015063225123045422820605979076651515836289591286862371585467400105004145025898626658998821951327830572088588036470487299136945460240973631086464417408852754767098969945869678551286567623125156825511413447821934899045678658995262847848037877937601584913464709325990495748363769382159133772762543513798414467711455236349433092119882766248108949620205579469020705693187466439121316384952760157526898927339902652305657728538915062291845861492520372289410239456309782120437382662416732960328137699162871113915555803448439512337287827929318801003284456965050523215888448718611962439777112228844835340212379264243496523602601928874593449209718800226616452843783265399398806176334990331122479297039759571718046618961857310285182799474656972800675552766128680155054993807427386587404062045702241335095499746849209420572355395706860186791850876381971598570795500031111167715767791406746561732674526893003915547075377344531183405009336160302505669577779051440505091518316377485037098485914153499349487712195960279676427345517520166433171134713438859156261848924793761557449552246123035440254380426197508669691942607784996100920056426647365359151427019059985490910780275890598794111232076915098917895453986905238146937743311876313964670830708512490928575303096406787349126372387991044914962324290032351125265105242856285858050299674187921731142164211750474109371025102451807849378548289038128632680162092509057030360097445068035444902810599997700619369163635600607914702663788987246121260412213478589991255269159389475436905523939672279570530121380751756434026203878245809883339985149793879403248562941983621871890066433374524742766355986291182685334469239477534668936711444949405158195645798927151134970709941253933739220750525064241037666090533430124925603373695159825097378724767880538754278767376097370716184881084192804046489493170459084172972949970837338444785354922764321534055747301500217186365117196888928788340607242954547198953516274795563414170203832658628473525810356286655620178452656810468562922181844707046956928780958765562090015340932029626264244269977475291749393006558710542708033860422301044690764480191757657989595827863136245431291028273775445011874425644617268421045450743979009005481118974235527756603712379476805309507894402780223790666129074156831937782887390656014821339237348426256322282579476631842776606888713518486106445342240397873763323333909233750769169953343340274264085429966493731714847350072094371190334376551108666097910576688116586299318379720341077206613396257621672831860040229361520167105887316180452615523660583175814814887406589964476104539877426225201898422435992463534506996822444275958723625924245403203707135741131572145625104698801946813364368801523190395279995944407999113411659277843257768195022291814933964047437322071835465341496719108253846893061041346977943843513063157966784760246684116422325110955058206732148740671532820685213433309440032499815206366486973708673707073268957339935720363355718763411865871663789852881540608222748731393237744296213854385907184584926316750300478654862367103996694636618827920287874148097212647483997088834086708274460911167101891058678591431413256502988917819970937802431710269666074899991558539805322657193192990632730344429341368248514728257107630833428019879039823311594109891629380671742111472362870383954344035281101992355536843250425908952388718652771154859970246014735429661757723860494849704087778802481642906784936985372725185998837958023524775066662411039631086816550227185915337156112262558552478152527770014085396452162021363278394205887105446150254677542335640171996572605610566662698930699973926241829760983350678704792383897344383714340806769746623223112463500862349623835794433454399606315775117835075241958278627665079512788927069612349597083644171945198106447373901343791563633738356158257071181873018183406170677363110604748446393360386286505557014446108523336370654056313376828535960251203330706636345272925897752681986484284677365459543386855052539380019557694535655456105252124637808026493864315552837396076260068661685710256263343723702292049418591144670881983988142505333664516147986035093890624059446591900829300713142741626501870544102134359673374883063428621745944472503762359028929891479223752351628061460591252339694242768715620747173540424462712219041353622237458817671117372023918670726243752834006445629528175437581542929101700736001996025584567487168160801980198540845483090877826491704407807357942140878840369327607529530726480891723300902657038919964936614985130238010664112601405400072852705809215021993837251681250830493337069223115363116249659153032064586228167184546129989501838432744898845230850232877407597973512446190852100946951915977441636081795638542380694126156320659316966401559999906396414173290805826380308943343105638040255764465342321294673841836984479924401770491595969790489829267758964944319373585462510644157043550115162051996168365079938969638868262905598152171225543808589165984489090227109930464345488194208249128024816299866652608257030914339048216497225061428807072606727062247915861016871742033231267606310255903051371205761444508708756546696869879941987355149096957908533469818586540277668830188704093226944603214361083290898812792777782170307784124186094927506501162816959276217321302642944493478516928893358420969594476544582184403368163443544219013367936901138739352364746418201919873179872407192732926819253657029893125260473529756903676805877895660919769566379513505402403707594834281848260097584086264730775100140342884807566575400770276042490394216829846492469710519390291821717455107185519754873921628002439974964913516212028868789184657988000123719971517200976717809996625836425229383643052994809426948736547114174295021676186608197582579448302671024258520812438956809424561970023185309619675601875599891835363393967101412942801717458295081486718476502769347072476581470764828342089485234567337431207915034015084372443889163877919685022559880008544655689376740401111729427062251119099141020248491337929539696991196734279725473237431858981934290728370306457680691687538902170519130280975202644965288583153124716626832352613559583956809399264666648364490153869147123344158902303682677174573642475641793356005105425270226646722575420874526495130392541858506556932307413194856147510106768252944930652833448239245795083725821739650815923700985773507352268057640861713712635589262035804950304311493086693347609500870816877205024374637495889638221341856508258829627932760258138988030290647207823914103158536888974057093109250834686119018190487573932210637819839732273568114881534034058148303220319598291828457000154951731740525009439400910808367967650763158649624727735414669764065152709054792504031738962260018280292973212796349650613098057039574785396868121596125070589398081964532896713156409987097959751108531439819999888341657853712606942410969052072590331410210390952231838881838464645003467307174849865852172844692506788502332221277696219342562219791910397858364619210063587735229194386860214448529809045456785422963554920929935706198786187944200994947397360733018024024093730477003517313324890894076746435370762903364525828665920376505851857039821603475003666088882964329767356910133868067161123244404430799250695922459084397717163047336800086498706599106885041218048589773769875991095868123563740141927996870972286762201421748670882368251947072964668829431128182685128088179450730816856728146113665410197259910241177545422153113554097183497946970081773614676543401486257510025806138934463906634340244656467251878915738299786142455178000946742424101167664106386351055331385746603875415513643957839794277544735603304067917195994195418425066430654978938731731256439093423630641778059553418751670466605406413356342497896335340160364536403849255868223015699715223962632019943127161059285463194318281616178553664085959477584108386076737739082541312516766828622489539648812920558570982994197715603390147205802777513949024525449503582128983797413535861814903837400574304973649584820828260223434680454531297462149411060992578021901007873282057992088808659335670797799126000026336480497538226505591928976858863151957791173911553687180945153336521569126865280195013721312933925783071229014281774469394842965333695131954148324836642160285445251701264844130340250495834157483521683286442911387306775890864535377103578665614831731311257845184130648525537269214387152206029013274154874601095185092803364269363664922032568194969744254445246983295348874188938142684523063696052106941330051234200386317765125679979425387332283834782491386887374639988336833566109247417777329551748550803649934923105455178042960431981482651728165531544559261705322772768887550128751862366585216004148426652736755265495831629584669154030375702426596054716760219695084865571726224598297132690830733741093909836543595394995703541344610266234268905221654542016577010461807607134313152720215172188099521345157511056272977130908290717666262188962239096438221634070149621953904256020742092929250788491672209107913861058584362941565864837677485493862616057975782985810018224023018456955901253948504222816734059734701463631464113237889441071224626971574190068609482444259951769165250183445231654271802023003578888014087535209288981311877874835417308646832072666592682925691748900020797457733695125122406673180381398565447544614936443514994225310338021237681033740771364579595695196215229993189748791892468733617882943852998869177837572405878559986756415878669579015003726983567750019155715910873105792824435075930084015504920515819829837257078520869454243009974401550295688649011302365441811498746723907435244978088781098240606112540240042842336093318287691955532194900799270924475633149182429147517962904689164367625124312317437087575220253328133726911370033713445202923124995699607019406298653284923781865814572981638345808450473217958818682786659127706710740532811254382082137917986577058757389084023744806729455769539607705981684182490160227226914582190222674557231054464756200630496631568774953083925926115251369578846216762272481781687893245250813322961648806859229792722122919828581899983638961278731733360342773398502833602232912193279355348116942690234642146977426345230555618465629502424629529735041710609896894384031697120078701187223052398696442994064401254707855606522238777503488469730090621257064265715246280816114377421599343993146531159129607116116341701450141911355215770458013096828473408665847136185413581706188268350081132855498629135384837347696317158942422075216457096002557047986612062763335127886720909015470447189462418142408270924440371447733080041079125928542559066400726674899810030048890685030121875838345232804979970434440219691802576039278688283763503742126802185606693100356697628367391880645564746993064408574782306597827262286285207804906499192756335994358283093706911780243994380852819420474968417997356796052983332438043312549486742936858012502606424102251349870926144823494567785440281521264153207107752556875481870675583749548421984664999409116912316708760802680819181082712907632246826779856097432535810240322154195046870342203435455354960170645714016582334102719948799869274621689665562728282771324291788530187504449057308467535676131196112355812830689234866444499178647448973544916197441456715910696424443864665423663665892897374956428050216667716540738916780344088228265175988972647564881250413240228632467025968126030580929239791641400140339968642277937319124050542366988064985327414691539544861517849201384418355130377313615928474413985288624083145697176659561367229877485547469822468772331071204243858088999499371279671441195153867440965894198649961295914489006272663141074586343609150650511820881281552394258382443401184241491215096379230435015656219642545005831698386652971746707649961003092891400345247317195164340555065977594548348994129022246147400470504656624495799380663357743355693186720885960430766173170573350498570938065742864097726520323670041766487607730249285697889631825771348672516266991111862932460772100773753748354789517264863091003513670717857836565515609145738687917315962449215969534942766817002542162138336594362011153109049938462089338005794620534983816108702678769614287884996046523399427950353235520726322055604308893036061134951822051049309026693257171643332811506702428623152108148960384749931552496852180371044670325975185680717602046641832564406043891284736752108284314946642152141609760912007500804021283454747827005042297198295249125516289665652295090559252687065221198004684942236337133565178546694987875470260615692496196889140897909738650282561969622765877086331989656798908225245185360158353642519910402037894273353066122700958549640762391742842138126436175393562265611608819878144442597208543583614692286985119254516821151719267109369145122615282315217162817338491879438529168774240106962042527702144004733697634382424258740018211088311959924446228615736697822317729228033010316416057082780308544400259741752507487510477293400094568371661793554895772931176362874862090151621631146020888759141121520861643050730418782832362804935799538635649918471973663590283387769313707332630678671297013743029427827290511495984777887574989331518909813026526983605246796849862794080047606630914056371615351879542417845523027948698910004244689676571782692614912171711051096631373522150823861066758263598108691336456374706352698786440725811665908263169836867701298116131394857619312498218322693927440082026781989468426714665704399739170913530151893484616636973252938282966850278606334652136192797670397321834991411724203448103116908807528297447350647955479280339855093442640287672502911430323119175028287256837803376919648895372692336379517675930808401425203209355400918434749174596438024841295613910213080974736379291354416964188550018193694248403101290334529201799135254989722553054330838785108639450884189358920781778091035821147661948488216763662697722561497104756688943428956951741434116525348999394739203150592975160958696269484054396586175043215208713380475690513253143844740485896489014920847453291467950620720871876307219528288353533000244980234408437124472393101101662006960648312382802396997423304934938235806654089657246870286971968954843302416273054858589740995184102864987732013231519828874066707142000652182574457881079487372692705957302323101253196592436713603240192981058506907271144100661903839380198786871798630216853623113499186383783441249199718866008419729363691963255200241774358681398728895050703486291089313358603280789849634691805879337219870322407069663206254744703726880089582293050754507678096726380596553912720515493443500973639230305368087121860076652362960511294188401947360000116294787429332811900009467999973836578722823903764963252737770025411453240798873257058926383873180110853346404374191901209503283434473789819408129146619015492294042999836485912171043226952152484131314905230735985139086280033546312920429916608864052947407337296832256706211223035260265236129711468395515781962544151515412134352507787696101909082839094766907538416882808516422890280189504737260835893127329174948977278863661340014781167332574171552568262621598804375784432139183332499506495574299930734320330980136611986685651258288351471423018237244365476767248237163790438706885574536022349256394013379009912935656941573162603145631158879314353285068718664507107458533496638968683982357379977102362467834343675546903399862867865259628792172029320880461798092403194561889130594212421239995201855315274799275746576332248587656223486087032029736110030547268148510444889414520483792006329763057100398142519725578763809082662157625693487078408153662604331879600623702318716704365095404712414043299720227622773843866682556648707290871328891054523617212071433721150967585828080351388486356509086874774333065120611475526706956600957581296216189490112969375605140818009070354035314533476362823837554593044736351538365155383463651568547729418288679653138960122146682199627456375752597687554792723412140325406302138439085448437435437460886877825819316876775818445638736673445353838700614081499580757152927935046513619391828849429989395934098713369391941182163820276388668246053626372788582979585915979252406300133780785002396424738718000995661011907377704356591336461879247969345364677869675428560203605253121830283024133076924762718842321866968146134828270081606607856538660526614309650476515084427789263918841245677736761368740133457610497172363282351588300618200789912579082646848998474023810614297738928182113601546143455931300286048457544790321224481898241336211872255429158473652874660482626929589309126519398944582706209450257525941382551567737445341979278638290427416954917781101033849888577748493775856572267658442843369882968160384692024606317210719362913259294388457473124119370540247048471153925419698008038503041592205504220602064506088033260590935213439506320576045542894539962650598038066153273150366867000720826003140143157852364286379041712957403894495672450575242109135313283665497857356142186252819701213989294978418676908915467244068914103586088430506038680243570888273860297059198638244137537922297175342774337881414647027420300435418912197806993883373752364989939856550367819844277863774381423099103845188624973235466104224692371999135406315667659797375857832062250894976428845007596874226892858256187905830883483281207624211561650948401078271341446167787938714580712064472287118682173066141153741376837274984246954240042655574473809904981576868113061610480634738097117930658371246856965897213014075520498699611472319653087251257215690339301673121202402116373584125333827779165673089798573905655352268118607754463968032939141785913715705990327805287901880950175869193393828560108996965761225318437885559037313144073761573534056190181741821732894509292520473401409716952388776172253996294363874741528088343531926576590122417503557209540008147693168942551192846896488281267903663581165495282239901410899041095437430988236321555179851035731425982595978146025445566323558595015762355902871598002176315717800708968602950807205453582436907123362644186466527183601958307510067169662329542536064810585541641742181263514108054788483818350095588020748582124486343420598077946712972821997848434783155437932488554305986250170988411530035772815779956577881005427091189916398559958920679190685210260763611486237887268178954428890745645878160485324749206474786285377037749273697339235403454541516085845448013085649139725089344746212228812746745462539968087130517846772369261150216372305440003563021660672747412019819429420880266603728223888004303319386077398703437779152700541689939902541454253376261049735713309027283919450761150070276294186057550928292143862335211891832018920594903661111393512830059327393761892659819147459255287310051002924402642188154145654100651594026578003732265182545379772945487235867941487690784683805153512444315012374021711234270301796595567423807112825458759840721223638191220430340288518909968819483613077744422156073438805485842422665098220780436896647381235167782114046789097348180199168291908279675778349592974233208863778405368223287824921706432078972337029442646605807480075665914479929365709803435262615173076432449712503890052201809997626505389299546678135233743072751428215481023111671428894372310122190245017548998021536224828922783740671404633225037956441640392326578069666003668778008749136314533388947187425386466873428695726357316875832595341779553199166767325329825450183821158599052071374994179560609991720937624531378347498304696120620887495014854343182900152512701131415595431396799747085124606830543623017173315125431960962633961434659595129474464224338088754911845851617288030845763815563170662541115437368269399819993582723563568358688642240435097182726809742894244628007250384362586563827529644666736399837998549914732668102121584001987604052090347151218021414393231055609885966765176359289784052691779324434653720426683572019127910309450052450922452536367820266707735288788832665537806679887396110388014095199636635198067592057735165138729424565063674110240620621610014047092044247575329651307783591936419634268948225668414629033383302710131131056632269954978765891742658809455783382883618385863060360173100324386295529527036614205608934440211726462708180985100797216823316895925906767171010707175842022925396781833526998940773391874890143499548099590207518090091894826193524480635577469086080587692665874763762936728770180803777135193919449388511599225886043904932360190406604730837307792683748182479550874030034996791182700385894179114218409541764624415448835170291699376723440585674977160801448080956943265950187295979291966187778300705195058942428955224125378246737309707661243681122753270060814493171669476130893323433866291099695997675677387024956091546826367384473617912093131814824889859848123930820004892190428744734298161358865930250386200711691619018082342823163786435217824528785758606143367989566044279873716125415048347488912299441248718885717044453557373223686314928830929460767365132100777366405035380476548243782736106216920180164791896009290296100642704567702454207440658362386555455101293248720768316730590260257795068991694754350765095395238157113219253425693524031722867630716953484210034056911557383874756565860024348464507726686296799733479023233944265953154456762918859121521711424599098154037222478744836551617885042556209322125287368382749370897872349863833083848854524468350655869599479916303577968506475812248995687744216518390220020048478029450913246343160484805150634079282283123971795946142508372841152554756885775687421685822923124402956934280750396892264296343489999761131865423965922661326093487368682566424926241292687257644615642747642191399360061653897261166936017736490473248164988570560309508986691443562664541991881094318191690503013842982648380221055592268335713800148067655481726977799499656118382437728948417792426878677962298590975329544568266465356616422535312861306909219739941681788259742495174644380977335883452995291011388877873997413744487828190035915301419408989686651746589455325882084133769686407403396649564506084653221724688270178004287894621798396483901316966996204709564559123819265496977786814443068155171134030306131405133927621938896276692053082923375320422270645004784960763150200218202624199619426212402052443691563254200056364313170918107863731613389034197285614226328368712911721021541212445360706839945711914286651267603647836757144013240257024036159917512865714291608522060000876667369086589089033096694655178354277942009822233596029226411330745883108339688890041999393295565973019734704222755362370672026866995923025586485374222224946830063864799111513074472733094718524400728760887243624691403093568717908239087309565499161357111004268035331814581770217888941839758728430513119278725192894587284839866247233064565775232753566932404046979786831817061701483124510022780360722369814139581926292286727067539565951267305975782076855123141562416210318106704486346103117137613082668708726358728919025399083191402695840562538337080781995608427227809833947113933934419209636479512411171597935852084243592777049188349558668044595654831266191342858655403614385690821506860748619708682594266153391409216514977055240349369210341109257748593087548548939129029291624468218643425915535801052158791389662245144135387156259458332691249177645555589270130560252806975587314007610880643425078090707259157329732095653320092094637071169751658222331381200778976305845579854858539187767484523594030474411520185239239877288689054992295327099681530442601544516677534873598645999618594178013702980841770112295707314092039323016904270165687198948527677208768527206443106563632958346073897672324374177313658566329731836574625409179194595730023623801446330661729294763466405882213088726783075415815095983363873720986018341031492158091719222110886385638963966368675162241361438779982785369392788346787031566476510645366736073607403028344428970171432523090355607108197864612844993631925306196015050207601122931272846651448557436462366091905694239703057821087651883665276986532438419400667262322649978880788977527589875646035094822926123346772551558963255160736584172815577221517026989285018454623879353674102868568560514073065988813508916660398704886940667487593988087752612554925514002346978452241130201348823963294763863900002567353834257757013725096981874203624505380622651700581856089028333050224542102705577613547803286074336697288263278675232861380138033648222119114322548672226471602464946167616690205967892739760175558787132318568981005806916979920723438256888407744667636828659721697897386511594779279713512425940853978931781266526479280522870678555940319987575718378964945057746826440351432063526428266703480126404122457598560718164762593387596181079147422976274992075500396125642806849062643681895042434281473742284254765186487427884625366099825159416296916606693362663393554709714130462597053076284515075036176339170261712748604711565139695907689619124704134995661690886915620615827970916019007097493994305101697024316224903936209311801780142126554541931206774928847356842744616858522998552653255134661581196086430598141745357746867071805347949407435840622067311970643217772565831332723708833081149722970770535924034264685821209843137233679180146073461583433887030552610232849241392920671234555677420966600030436080056350157170271848232207348418537149570866585423919556212130178348941788600464482544173569179718585820474885902914408914933771491293559226660147050840160161332275001684560021507288647501772340378913513242345305963580712957362336468377831323394380017437938928889003975810112599172144916632693731056199692954178510332539845063660339569431689129841978277110131276477188102974668009752998769996143004721518386997942580745181592309021281185803099555239435868186041990954070588467495156704810423166461802474305078216225895316214502929463810044559116902378221565268643972118975776800597044649742492090962687645753409593287606600281204452606874087735568220034112314739753582560656638755869341328011394707073110695742704843667417024661223591590855834589999241304097331416723708630133846913989994805546816970608040925653225636389404330099552946211418149025812838122894616171689298658231493112171797862926596873669629141541887992024352817696674686802174765136661972310506517051390793240928488297328850741635915312945587380808512020150326442336723159858456895584732067225121336723547020687502519744931356691720681014678114917384100820991240359802468937251950682329889883824981429074503656552464800445740755785076198509298645464956596210206594226555661539519561037727184340642295519826033795134491820233346487286893366833542075595901635106981347638829578066751639024554748273540203883522783089421180014308547836127479254726663555011235982859875025366094334242495718754860783599581262079073826931844889414384589248763942763435105777456656842598000813978653233769953889513776150923212814570799257525843588753569133702135222655634120710076568261929641819286947215170542976261005337654438122108132826510958728651539456103861674507487701877712383614240322668100425855074546199060187571862077542307567834573257022969388313429184016043319086351224017562022827952167454991306753461976242731503414065468492559735506955696774094479977666007979367322989957709849219521718072905234830180717497976922251915012501942558768596182012947730946705289241093645364669994060329238108949465126526676708153380669490834962373853865218389916259136789852528529169402356477118313840890703730959270913114168529312885820584558280653642469687278671391199227864175393642538626949449603924835373316163245918621045874366229727233652428535624450017269317884686207449934597314778565762947422249492703959580365032337119554493900528685650135513487045347776896007170226489269815600652857767249627867148296693179413526487201282578243871826648271330858540859815210682530495702571157967369567404317938725149764359990272358338337391238954160152728460568146508637125394450513632432511866721627406264457705483439607245794247709388836744494478426936407653284314010176186012822766504732627619649340985096510125781847508799139200390319851647531057335631889396982418708059655820335694571127590818688853386038387310799070281568142910256435541602629893713601458933838856339366658363975154000921014844131785108364034265466293180644334827061049451616548954005437016512511478280592643959891414191023201772934278126141492984994397502242655930515805457114147267802127978420709226848957387631008906559724228434651040171185435882154390963648237048917068834992341886622884654757312211517450176296412399656720083087753136245222915978642909066786622061339224209674670644247358076105374760282795371599434687115953262856298627405009403358202170952207863146482888347538793486862482556753101636553466798271477589291564384465331591659434975889320112832958872622985873213855786324837613261955203169756778939683747163537124521299516241039475696485399793813665159536841937634118457360731789780711146892182454112738568122164443495178745259589092214806454751785801034189036362382968350282165778403799911287696530821376410277942919145427113092334841783327826549310524036998948320312900019789084346378662380988936160114554081111295199060445722081702899175119403115732545125400507580289083282583723807543367348373745739505292363748846758181876879974413304675472349390909365489518261852236288511823002417211493030993641881754114015229771750081939014488624324077439257429041061288829190771220360077579794358243118529887669332446438326204879875357438276654778308670328176203792208960286712614360700719764989074675655406548030907063574461280534164812271549722587363374745934619686359024279806307296019167237586505219670120829995998476624963919606759035395922434404189698936260663227061688367154156566480911327387535004406509086802400521982498522624618990011701551789388390471404530266596177608077014670165240513914210281929150043926187786828996309254860386148291097112174887809731073314774731130724370772037702139778186248464854283173468847133942048806480630152373126622504634481835734009277522788305937900926089209286205015661056245340897516239949887433658684662875009921753137759955046816435763646454691913525479477333668579347124298442508317511862972060754444692093055806611120098859026559460918847929699952255248058021827904527160672923703661361316509238516251114043483539815630566461098542355104487132948698447728384648717765719897486813364290499384174330921064964705237185463542114592238699759522080163313842781535843008112699813643278942410099785197135987951154571015076457689684226049189945440155851573794655278835757153587155860606667284534334998941625573332518357579720423497963270733617549543502140273761517619541405615368050689569804400373229172873012159184573462123232585611473194383290031774716272099156109573747314158311080368255050709453756693426239582308137909894870745166998756542063156265918053690307925057158745743760895026948962000340863843798138601634048470897310899206569077963790614606513370719902888318468459017646084887747066535921674043653310636933858918625395675730374573443448511973699040681172346373929699990804120059150930504190075321381795213466717973123766580008994759225535970288762474393299105979502770839810443406241570794960774809755419285099898981622634390132396796877064115952364718103544275788592395223722491940628248386255369030490359646028409536967901388740341632089068001011503497133629320453310510168076783731203552570560381696816982674266445548273084302770410979449723465388741841517936164961413134105801099197791192933106391830810192719812746928114942370092468550986411265080836450671588144107442968157100314767056264067380500309745426700795374006052369551780672911412537317613954357514281534962079640236288739271863591174755061497119113841665833110840133153523458650770742428923342627370125484233644700865061607903758454698552814104729397170927420809248665590023208424688592480197628673716823712113590091723326322112269962135670512097273809571875967453344283098008548011803519384732627459499668972610316233170994076898397843390283379285096638596499070679173073817290345079130238314830943180628954076004153532941968970154305471107334626845295602742181831656300891968520118108507961990050462399505870387466059619789688274619881670211981793152535057508626088935644860028641859085016574494876731422425275163966291114690397210843877731232513060868291322110856939061234078767968706778655943179814433713513255837909020444645680418255196462671761269163896626210875588939308099322908265115859259511682587960734908394469276096512458101678105903831784844248726808064794303958135540946438485958644757340432353862554694442928113486481205337218462539634550974768058586135567679681241944622373053521475149123846478531564569042747047762918062522301608709078122885265868249588981132463567900903863543394920839854613428535165916684351696256250955716082251506113065755354051697138081719992706686140031964440077345390867775749916143861527196888930895321861358079600491136636153433468676663802066234153857027215015190482134008897363917982542885510474525517253379753952848265007838420882462416705160918549723634297480188091103045605957601230304072064841009642772788820391492904293836738895881399548922700170087274456640434497268206378761594867080738602465670814864859814766408057817503350112134805224204717098452660000615953336386299428724528238892419694074453656829225864216557416696353750571594718248391679174718153290549030151064533016346404028804009516827006032468740494286745534524692110799526477333865456526611058236437248471619755980836358121365389111744788933359407739983194772151706899108205732078009226423389043353585813703882424820941094025821254034091085713970389121120604693619779121258830016409767267719713013893646439231715653528048615438382688026796196168927368876058577355836692723586581453266475185738267639346755499965605809621591556620876856996197014069711395608884730659401237193047323265019886989199640043999325764947113379972698389012825188769042363873948627708933001945864628941519335175934523546071716404160976254238632551626934660975786841313947536255567098867974362128945585429138316640475792239667608336588808067427620061951977298464637005784088692804169606349740458889251789753459433419167870315189618652582453120451279331926987703438141293629471053460523396182964060911910977864743541982843575338400021796645674363077853503957501571791426123751771734387703984780848235006589083542891424063046142523847799668368392874323221316419626703303436916603480970078097677493552640844814793559255707015387834162829221615627200253448660618982874778759510838544412992999082936354313415271805933576431687425463947151247203936876308208369049261701938660250843039034346105579469828948953998317373101326988761683567112205267495961458438062588303965818363468578855667461853134355969223698124002703437849208164684899772925960322841147092543607772623835931909506455277468542841330264885735044702528874588055220730551663122278325329175055870826005235739233312017830019144238446459426643522038554163178028558861033063051863531109627925376679889222659809989748283085788894708156898195307284349126848578245986975450693757326088206568259788871172553546268598093258918127809846458781528383888864868544724699312984301320671718996895721257401760484470526423098652176933474508601408161823561797252714317583145088500293894318807430489867092210126034936543241451115605179040178441647493489631228505549987156760493105631585589649039663138271883453229807229185959085887398494411128016536204845692276325277894269869896687148017637030253171112697967371125945630801048334249031889086712304943643850304265336574556918104677504696598662324232773802697397828021307137979155758447913303003808237959516917827703208834832005640926600978022641412934989938557807738662235737264131703200547218654341480036070955718095504769708658385878395562862014156151605441301010811357845857043227478200038712699071496872299871967226742523213547893161502952890487054691598003571398519829446773528588791329683672522949679388286590721705521525145788099205749608454581840778869011446152926309098440629522061007946304699871210312713342098797221728190971902707300255226407992996573071895165043215491120361335970238446759794723062489947792011067192488474745287599733426364238337031335031723248102906504547150203638056742117186090998536252535941643257463727328126280096652438533989575281438383729940930854351280911880721843746835156200841806034270649009883916989921523434606811521832696640405777193064788759053619207809897189990927359331616737517438641036373937990019959569100554638556352410045608485903982592647864693779555443375614801827395803616179583924062006015086189351456788251543650257415800083526453792544130295175948660369469954999020925837465185881883486461524147475071001530123574019176200113781877360879389110691910789094690391084731613329741859345782280095834894882480177860637872351581168279883203798118152583193917249772933634311389151668990560965028820703043866050425215038612178149252735454434813806332635289416274139112330110951971275666394169258886037504633884840682436007424712418192936588478460074732089489627418785281407113417685912609102600979167930768438312070086755972274594206952687001493240539757791475749335869101376463702070578876192283943359301340202211619599683622488716990803110331516662348933797686249853910815538776083582919185168197102689604458753416986757151911918911513496218149479020880361222164587395312502513777190392767848891204305931830145118872692519813468947482380678372901663087341916758431541100057474766321921822255101731335448005424524475583578645591870511626279378737331554613792187109726044995497318506758009306430032643587113253860834640401259892943790042936940130469563395777902378050493482133079302572332392698054560612881673000578652251992544946887726644368440450060157287582837741645021785738749142399846043194278751188001804297483666041704065608944661050983859386116868044894928221391812774510980408445514645914287651484377092225246796713042828806485141454434008369688232773555030942503048659389098798394951316221095949665808159077131432511623465763805942955401539976509015766175292658194288806929561028727276351480810074275721186120855036185317040196446504217770865796063471931327390622270567239889163231009311424931126403803870066781838309072286825958889665399271475185059087850428806727532814134772784338805232899122108238198322490910938852101449988944166098220286644408532825165873922628780668261039039439634044848122282509147923277559045767982808356673227219266851415435599833986545786172831304946551584704359300287901715478026313010801426548306366487430332505896049991371089644872148232145140540842752277743469391649463262514113353742173500952404387029418536382806575362919526071166899067252137252826032834156978824134673923017720410438478003060381274809828265036668842037089552580882178688782689775323249506609426413894515529750036185527181946743083073852513268225729892687281195805827974427196465769021305509030450314531147051082325146109196922939113576460057159073860157909070380066753110649806299174978227914246074116441221306311873058537616551706640927346014127869881233710974288022908690594886724427325281367399340891223856324812676080022099133236485771170306451855368491168335077085065695030832837079765381206199668910955469529287810650770818047059181295053210129799866202617148667904739747565504876965991816910031147804808196774627332920612932218685530325347249073298017724349513417280134001851160384784788431410614338967231676911669352951215057952349675701059652142468551587118543411037449397033815809151677428455638805162549571507189240508823198549769203620612246563723255075881345703758721722839086853677941412675542381315081439385490490738013720214139820194321635894281225174770631480393049184843372506904607732871369130201231501612985937339353534479476935225942986822435962581729988892032852496836701235552236393209726966178999994048222256142815429990346181975489276047559677707745869940124060549393129383360165522667753261100221278279644264406643391378555292026255869909321112671585200358673589868777698293104496154233827602759368025741152335001122504287728451940692976000110310609236999721947164319206743981452653971752128071139152583708887495855870231121500435742917645343139613451155239276970229469001895565483028349269252286006630080612617158355568041477870650491001787539400474771928326576288765626214758024854484163101202053569916119596043287740225040394151822007671073819896135740584864808957436674605482809822511825094069563626305061285825918018965544294338721764643401345710320896627130365178571779171053640363585466138086743441218194257423809793396214283679585327766146696671516234974059908620767837767304097245039907068777932040857063833083538553249410677230617938743897403637382330092579757624985572615500795673187035098836913086545197255769358307079593849208856912429190497608675842398606360513810194519544653458414158759592749875995889289087064625070314067720807939070119216360217129322537942648109811472319170121298113972061538553448960894049607761300100013715269132587793787698188004944470875961850357994578299124159007479428352559085280277047263394171947938313539375656271840911813344862528397057835571996134803018392613990085294803725411854731774043026254579524634163894940300628709469883887654793011916838667825105008387585830215438614834369779490291327830277539897910684813570265464706583822970328890065191925224283562711229176567397866923688570501036583065544739727100875669226055737026573633260707435770182317940995068740821118734922858670667200122346155185827449081585510507813605415784387231727952448598649662717540947055201995984844011788478744676928730087112516645778581801466433317702403844845268248491920810942689930688288192882687725023337124924549426969601685379345972943784701578634047295619904815734615722937822307538261232208115142392533234446203461102568941706547131276258862218312233611129076232586085445078236023289339879913179244222169285031858358827305347264688344458929194089415312548208404580152953558910905486083443015840603244221284859788983063406443484677814727472194888563499951135920869771197787991588573918052537688942838471712521005310541854089270512464805409198544728486731613583682665280317782487040285268887382380476398117768018923826065521336349628390560864567280825315751339920716613107484030765996048409564052595845545001823372559245817101711693269872481223038502065943488456780502743048087823077197604583841543696958904397419768898429196047017599236833075899831507192708429430206981784953822489579406614695511891851829626404802286143085658917052578293542511929343412840725676419076224717798185038049697442766202061829156730911145851850926250720555393992154202354879729787913030934471516096775925743382387717528299229253466407895465496915156317407284027618339271791031570934414689023478998101990180403671878030737696198557579720694995379239279021043024250607958753911245103788011158697313505664974264265721805044285422284865769423977625442789412663849236209669846330577264699974547928830550663163883988065485692068862604460312381190106548366123033969892679295901212888588472815459012136373917622563469578629307313933937822133339204276479441852933571396252177587203552427399423515677736720539899717581419343278026123699115387492458154433244791291471100781961948490397459061454363131433995046503130251692501147448013375120961705630675832626371096620348463398715855168933561337810383418533316536833936702824154799725799092431776985526968568329711801842223299922642629457449395310401611618567249895208109782022825581874428691136249449604743643083146157634262618625750092994639386531405817216492696568291580477273744398264206927086012083529409565276297047337081528987460514812311946039239717393681504167694760385431101214654255566302793444289094320826894975273598995608117232947814683668586041580879544967521352363417795688556831776515123979577794129985549455510480757317005255104581558336401635651029176041153546260014746044651053558878594950805441823928065926010013785888732391198253298747401832753534758198159112294577565912843849380976060041175671544594111745832038924668726516950706970754706363397021368808454918591747812529782834487660803828817421237541684730025600514278593083263251398159048127748543095865402841106751833424471226925033320040777816459224771038546702135578155751493735331384055140373936622438364229798402568397028537102992006108509295952517041518044435867053407961461992891823253046245770585792670087927547670365385114724178666120451834608062579473486790770848438459132424077912814071100037364887264029057444528859523921844124331071613829650330289159316064445349069859024205663024298732991019092417062915462371277764206545301042959572444155212337298464935010016991924260068947605728185565730262310994089539294733050427613159999809086506329072999364244357448355556161473317890345416045832541994402974850712157757951675352467565898045188514067790152578347464450291702854538786168442888205916024657015547139470339387266469304445902537923358784864836473990457426500199300643994083477611954312913085699062661821518274669825834676285824588832062950128117049444451359146046411746947298484227983967657220266706953435789724357352277120345504946625229712556736905109474043317960760386000356760556488381950636140771288928922578207467117569640900124724479974850307440833295660262188670372269750929324245202599362325469041057618784627084826441722470991829649494333429876955069423301990695789651556620423628937719022560512951287645104399701114928840788039040250808634634653696200576117373365787637738383468659637764986287473515370364998574782504012893345761478268769850089008348955686868045067278983439511127590230259152895624619646249478446120323253823380916854735401926033536789073888811964735028966368348541469611499656425445395141313981563051233583745547868151898544658758194767552356309751765028900998958823393976926126991529799166286235882819136793796759747110723754014318871159387235921334324346336424308710007285168679270481431498622924275078407864840185396722729377761667958052252411750652795381455161166225471340002244332540669741378191900516326470253846528303888797217040774627892846819315610674778432878842889191816427677588861026515966308671484330288127634461638057917001102337331159680567621050978986738190060910731685970058842387459922508148571428127389549266117362489787392113134201506516846860274509932849557322522993909933248182345313867745611277636718513152112534227224777572422295058484674414477705535713458282301888684537130224912787380936819085244779078261853342820729056436442846610512175874122722509506520305684825029067255133738497064713053073111662972205337484210013298891549850637668715959639984808370968530419837698893503362615456754167495378635874625549588527508120178538374118476277942454304340124941986847375519695609039950959543748794045973957492929329435110662702943746350067683012497547074879328688672363656060933212507387740303198722233271682617128111433124991554060924459607976727670909063325153224670529196933139487871676269226993976125709005972920781452035556757892475457112540975887381466147893430832254550006119852613249489511842373415874663132985520779046932775419477652175976323718488856794852479010756457993340300984704360059486444629141018200080300627668605648082906650906294306495854353938722466876491688486444551590636832121912884060327529516644531359446269601873114393918391454170258267447342370473778065504111093529430805539401879443409302454851764327853433400640749543095013365375115309212879183365013720500782946185335053721515281944423661401470080621693028850048829120876137532437573399720500815541905576439281341338671695568109875110623951564518770982447234517115916657579267205039082992090899788328684594401824636526926964147877252953837448606818263077128152230815031931895072373410625922461167810312966203993243594847812476770957856388303642252947296876648394013841393052495512478536612003168514409433982405605216194097691572188882102942791024446089989295529969189116740969757517187122286183442843572468912323492408861999826156155423672541218431434641116811163465919762156067131094505036826427998366046390827966304181551431152960281672516127938294711377311579528144123830183622143334035544967958293976178736301915070079983224643102773766986723953890322439107156941621872949526167254558658696702702894468491854470877177016435921483147953275700159895362322243293086611960030023466246134496197263028468075264525627508135343337350342878480258559868027352490429779333016647193061794809445833179143164685378653487755445655436972596199594267152103816076562243687471178645826049507672981662602880381949752502624235717755917867270124740774423162241064827575256036823300537936072728253159206190208508124454865310057296907580185112097926929195828002814562948136677913397352931968196779708447890743605705564888398884360203946461011008187003913531764764877603730011823536419205420253541574939890326854308971517150378826802515768202408497132272443056331721201656879043174307957518674100394011107730791760389353876342598244095423429561661711912691917239396265852897859115066139484374392270275675304985638361914582877792079322739078657126962568380608925405357921341055041221472303574771784428652866360663360710978915582191040438943493264862313693945497143124252684530383586490926372951985246674229818391693890683140130366031160625103371796183058900437234990187022724030801670295109946311200142792647958535780655574683723260058349266854026961175766033394017036651779319703827708861801135870716812293283453704030740703739606145638833058191037166333652690595557027112743570076739430598398016837298970874162937939259103529841749438861304306997751435567283772668534755553939979496304057374014210172643301080716566876770818734028851006808580575901060618341851657888054486732639746047602884301299843629100433032975852433889165332391193295447195127784834835950785735202178657695345066866244082921527019358404051600958939362098083331972606015391046840331535168083188346407863513743727058792720438971461507880750997941523543929358040502741897499341235110657214359567815554702616864495388750326138172668683993730202867721424591737181635572246428345579586237296051643392690235887975292602821898532168375161525820367351776881638426100976568951010103329939712653178368528049917394422954714176047889768656607921017820640994054518582941000409362331550854100292459578472830736246193283808777401705611593531375041867782702136029746188356512511659486622848694676798382439008362573773282360337963421459343002865544620265982228284380343016818362931045862355100367977148544119008102556533106817687932152851036196073313617705232655781640861062625339315276613383667507364360972617229348829070314424912416221532835096730611024600633898487573478668476181227881485826422887645160832753469199873459054416905016784183198312876077721522685897248158598461827059652923708504931928947025936615590360937268791298775966681273072298198308440486576904370927358603696155303408763729944947934577202002796452885458172833438538026773857831393204668994851596739418591010262957807551755135860702249649886970902604862344810782230769237476675587416964426133197185394734722069161935387142687424010503411407236950140046475435912047283173355704730717945776649579928224233294371275805768099911536240362518594857029965319798324551388913627854370591964437253705851780895344431366984012692249194869014531077846915741419732901310572625926302657299590165685181299986777963020271071361514938468971844656981009246594285413222526352213450339445964206714849128934441018131185576315699362889383232541235756185783174068652089201693152477300818605708134424036645162674746144629025116970238412140547771590310923549074571620768322938219792451494083369476333012827575877579277262761753288500591327153007983340768680555291715236518777261486939611019967433859786391262828738815192797044518162348388008845529528784045299423069132564998511135795704860944858759149477571319498882687477185530147445380049190676270005112601211349173030675841917836167486090968550464681714871758357057307697099486961403929829196594257253138304797442710165333432604060778112264683628899336390517592283333206383238063742369768538573656578314397418174695003524163213800737720282570127309660561096544015264525711176961951568753728965097775056261685195509097091561450631253273586825237962862442038818210543635968507584471020564132112993156933917515317026593100378399663207922591280521309820399326603607212106005317405751628957178456853527355379743226883650737103752273223587440126348592016371004168418577392951848338917143836391234398350685723172267925889618538203240274115168317554691797503463029447901954831583397781174610041966725359951125351435032657285138185238067561885556729283741667845667824406266323363473060164868411634401961730379627051814139992627610369531741988527071614744857729527471172994514105130176235122050566136509978067688510600470169428859460031863641897929727604359249599337917042541028752112181499725372013930129895460685381989771808163761663996313220530086696518342792387564683186562861036469732369384798384033480325603731402117947840130083207602595557663731630291251869181032721441434614183358816965127289986919092005118820450794775795245191373609404593857276291715529427570011979707468390496768949585132086067793376047845765811454023111541429793186890310564242343036091756149660704996246947104286210770203077774915351199095202418470454577039534626757548794873847306408112219071168779259633056271752886625728935640513359367456711328310675108854107489525897151919460002033467042851153999796560810909552354033452166173510178168348053844757377423466586488548432750324439633076480197748766442878258593848495202460736931841082894563350526125679512345786273239805111241170612673629192104706139986928476527903219207286606931872282620948021867805309474617929916730213826768626378494095664344570165122151876425905303481725701584236109331429723550348273554272143187386260878576659442714375173682142013967559347608073654342515253060291089965425677449465984076058174715869654186221443550871224621306095694441221678941225208786717484023173088809107940830214735102211438606645345490017173743327791050583545233483936156481192277237522518058413723885586521774279157516188927583324137975362056594131506449208155364416248020616457944007222643845437171498805998257222427422853271844909260458568793666856235752428259242312574754776416408592627455459927549534646111440682413957314216711092273200257694443612694658051800731422616640839717929614193174525821200521627527666232479127911748494254753708241561596431562122766444741117472424249251285481088371956355880091177559080423861945611152124206064477965334776200952602827624796480386062278739756305030612190991613240811027732379810365276723257331701021088463737063754059885472197108869219813777846977917216916250883471460392902022133975633214801830114929298506772134549831003055378547639562823836731073250324628268206011334890697629019287619262873348907729587654599299904673953023598802682433849383420793732126466490032185934054567422610299130630791322038005531911070467305926271593101945943200465071198284880838353934380452047510989777995539147929991457388305735714704861940218924239062760232436338918715999061403564214516091890392006346093911844754644650745833900880527909580772765483932012135931151676135954867674178391921044353661138601745571169195496189489599635223371614814562138284276475032651778392223977703361840985002734984265514021227599242747412493786338402099521123693930713083581492547995318710227812979820257038361258884318077894871440428493481300292652026251994539724365016888408934565118102003551458080366363933868829573224190974676610209732644575612460866138072889705554165423068447830252447094626061805204737397189578063524861088811365020763140891996460225826904375207241264369863504384731725856979134061757124537623138444604528757525540538619774213277211521642272940493586805935753431919583064484534464864503212645212560959099001221273092719885193756413246860300244351915314675294730031287095088665682154605737563789961407464119795281753863754208469672529472472941571406821859000913485590828505127999329428753117333503303417815260502648712368424011101189854336415563614479528325599189751920090923734193545596222282451270455418572369899245687628482404840439691416156898941450642096396913631343267126755160923583851231272134370863358439140027708386163796966890479069736860160273211142012777536644923824879545768934463479456467769350676745057415963196868866297558999968916513040060435798020955883851054604099417543657384904559159323402469280113510216264902348739877231977890205541440204481583261507492113848973207659885466551877360469781452200786233595078593516123630743645322999865647741261415041609718377230418165319792151513407248254667024458768785876111460330282352050303610909047041193286639106934545117985561744623075245628476327892529539786251197188555817278383330399901927124979804186822240172536007112588387459103419316721164987367284084259060297852766186367493587231681061674110776632257968617301396191273551857912836722749763036785568153937560556512685698094462193647506174432059359267298675632092345017101063661678975179847744329490771694610310916674326838987351985761397303764790027478301390955698008135780540777187730784182567387696530353489259482268159140046830543084363061229277984990763433869125185800223437443705543462185716940910167719165053517915705370160190709025163864899035881189529876450442614904627831055448411179413205676698328611718621141351406860141939663588372518834579313743347182190207196048019128950455864262606396567753820761092903221670795627725623697805120465535963110056847062778850634531738895003547220143058676417825117929881684091066569557258603494412452504093301876882064368972742463565399049343150172471605963983722350270295158872209145832823951395353767341799227401887828713746079345679707888259383192533499965375414770665579332787986623929184886724176602602730184814409457908715279237463795545643998054402284304210960246365372736697248479424864310787104994067574072121905670124709271141895038883928833364385566285295900876970720740965205738034472921351960452999481481080264036449685981680737150707311133109957082453968849563699922874791601144631067559245338909790276469473396401707586942799315553186070204930261290565655466853884452334167755628797451758423759783044559668129551446311315242084997719905834373497917498644874775420440922381793414735221062191701808985134039423173412579050509847008470057150358363232940611179031356582136699475172135000766389572784275956206710769469639894380818890265204012206529962754352626463851194902602626554532565336608725913493870535656749122398914320520340495897399849380724008693935733997804048505644308462498908384564392125768216441948752895926390207383672673046719104704951833385966620471245636735813047343430659764296127530584578184936373983095220177309209301089558025925909576439416001912659635433489267292181234483817574045086658564783441808716907807140597722550740938659503625332665185822665498180789632125624893006815293754605235111223818449785197757016061519420856749136626238102138836668387132655142312186996684747162803238495937878005432885036101075228900085991477943157626780865743776346113795330137465371355794718824487290662339406247925525631204067290891601039532000089676623503766265728942211654574225553209899853783934066961145190963806686102600656748517497077546758024410315404873958198934312247832474736195573598207304751168645023703125805398457981017069556674156809865842917921319150009264878610645617328331271622017466907899701742710808509986695706832790481126464737742061720398337994300594684300779329606313620334942786027681006186534879822764824560562415076284324973741405386722864972041335372276006197986732685111580912202417279641858281134631409443979468246558290251883038032127597961739555855744818422249461167757822022761119782685289672887314600919279694365417708107810695752012712475691426478724770292253645889963561874240650313592814308945731821618545512510726346774990819500493322049775009895858567899244772648400381696800299076955188822397795022260365270144168935959500261337637340667298518246690128443093783192926736149521066992513151273126608702890332046870799682291149470451071191330634260359795246886235987706169026534734151163781363829394605635706104404392788453047063726056480255349138778282759821019074508454626202921277539302626122022694903449806024840203925064114368469071802580454943299324787309081492746540426825430819149308232880421484916818979501072444093008564499217434962496179675306921451118071352834250398061288615900100142620777551094975702858751554427523469694578848455699983461815211676318680023805459980420810207282176024050041951769931197104145668980748382766313422655282365588101835462972602411080655489274599268900343464278308113615837137689422654401467330806047409846263342838009199010331230706865942994158675797305145323143344467051485753314762595784595764820977873316998894574069042479851477320856186159872378484677222481367192984156324076775904051382796061537679389477585752906903822267875257613044251973170820159936484523961901022775957492334317835920100285578013009465036164570125260446003192978958646864422186221393724331608894700058759024362610130932797488856873449275909966492849453604989045133185635399890588537666950624736459193932038642161626491955679229347192259669026988390517625621000061295452955553347829444440415237580779089825563023743589621754173489222440685468016727128055346181890059832101466345632421305184940597272156980386782027610438515110094976323236798541992357300090566113152302701702380189268317976185882369439884691554565738874219844018203439056122564941521662634560081765463693795293579134714653277247340802921312617995466126866614966089175117072994591668225920717467251331751794270368674820955244688451503494824121048033067510504476911016167702731050594494818099604386959969012178014372971795657773902264711450813604553444855580226692749418055926955810777239775571182522739701065857737861959831950132918553579017291515028437729118503638116283011910093594139623132266619942869503911254587364563337806277320250223317397250452131445009410227172241603478657048446286503268389757265389276967135338169224721967769756963096393132622462946446786342917752816537042238627887515263642313491982961051922301959123600221674546989869489498889972777160946686111766853708696322652535229670697508827776876177512090628220230453233372153729080407514109004756708723146799405288246742030285881855855034589962450609205261288902614097200095846847158571845612357197925000926642963079817704887699619919341025301699266303664926740595451054272481666846583462408956649095016084125134712251178218839380681922109102066337926294474048931336389160692271449290823847390837754111016238290164451305960934812085875197454279336786841312506470835654489148500218529348019234409808875361451604933763573355777962641066518217535900272503584184716552736021759698264481268211829168171743620173606710975907142710252270851196550650136869935343658576933807714841685685327865561254265047726247805804393572029139441476170209012175526536632802359288930183172101902751662535704293908644124570836769097800600491066256051831801707046216737737271519868806386889376188468435381209976556046004085139106410015710041366249731388021341637708831281340121311468077624243054067927115168910031429079996366230535517776985867281986026060161422640003183542734883688515050790870677378612702221186430755951685556950062258071076491370977396744213637290322061817042169964627430878993096690911140175775794611089180791410669179642247857069849493741083496626172219270619067063213971611264717522370613221562050318118801346666761842791454780242091026242566393041854796675662450200211433169616010150430731387606475334656716970334347807203584418717894209705589004229983222159028142004587277664316899537999197242273756863760826670745332201257878567705913824834241048739428748906877375638909790912669619317907284749467445818880443606598112129268164824931797607598770034967461865759673788164626371479760104143463254296857342765720226830366719843452428165449498582059257611544143651151313523427672525721393062865386185637176435077058407218600598716006638976216465552150780389688013779109909095077295854232068220103131437357649976921121027925180495450915357597455591294489408979303887299716989915222743949163183210235592988601665687882221088604659349593493884236641219598471726856895393902259617415589929762204004419090272367022566067044490004560932957964191278103003057040932158195166626768269073519190958192229962100565628215940335219050354654345331312537690206508132484143072540884587703971171469048606958376332453486017536020265009040431231325680646521098942608871369498362660178260221773337216320811164451959758299877499150187015858091109229266438092021743302903138519122925579293909441630715969590314704677169122818153417808605040357917321780403341147477259496851462388181673494482217117386869048914269502458008850319142814375292945304942935438908208791688174520782910070093173799114140801718013129300910653794875150828823482041316969514472637932792859908345680677827671719653713306899607326472790861003146511458411136130447789997420445810787660649221664877657991971062372061932356309903955133337716484654659779548995433771316030297401118582975921208835260805310911317840880222530285686356041455577215796011568542828875449881307332924310802550768675052988087161026672016180690758666796433669411016988962541190946136158410373289471060223621789443593970186349127842634702413667140074147345712914014724782469120266779205048746491875251887789779917586168664417121538021083004953148930854024318553488786077691024788981931955005214288833117683967526426065535589600015397786609327390082179255441160005873782363299420466054195046518641755749096408086775343507475434254944645873390430792433666674103031476375776413977666743008475698908572485077428677137562756336325488754996486570690196876971633324724162486034112202383591469165226478885900639912626340599440905896572831554750311215352128135931060167643071691385919379901581071635911636779826033428786554882471687523589751525608348412828859403983678701511253688293494258624273670358199382110702661538607299750708643009433795479636325865744842515061049788229485848957458705525839756503509684527362789643598208657810855709833319029988100947244753098940779416316679423638747418168562903571112482206866667213353374383526931843565695024855031433435399172040484242197769448720884914832082718431949183167574110307323254070086258283638631663391234274782038393722945777535053978227647914429366901144913221589290564658936506541479005936067331904423172654887487893160922968870914512698525112308910593622018816370623915912906673276852426251939350489853019189832615842360760533012443737971938437739470642526163357416438734585334130323285320298080197212305890785792940483454173146067580078698273173279194360496857671167512296462234379196817048410363380796861347110073732058471392008298217125206875336280346542358835276466795998004488391259187761852369008161956173091007047588499249269848099974984649421738537258390400907736686780183319544818233088423337734931048787247730229683524573849202370756703928775560716632332411911271925400611760208152902824541471610788582597712772293240032964348791837533528831413729963547496524646987179781938930876261139365419323122760488788380867348480731145267428287932885273801693097781950833692969192110925917658668014993410666851964636586725508704231464247430667316608340268646590067963724545088771811690241240477036983218187425990528695457965157633457818680625046231287217996015785733497916526103953857927659205436334814465537710772796157086428098121820543100932680580142712700395084634110028168111640261009360146899251831666442777684554447594452489688628900364778359387111798715343971798771990095940884647648376161347114284615657932378718281986409962855215193713224183879245011599873844626871402299990004529589076582209665751009145957581712609218082489881707459973526241500484935413461006491412207145195976810380545398003066716789309473946860806719262743311960641821571919691681020786414446328182893247820195443319050792555167060385681773893110207535007387395467263541136921671330785395841500162886489929511755993202803518033858352246387271686803240539480748076166311093375455223364940650893522419311486573325913759933460523109264117005622694630673116584862597328430792370995781049049837182909216167184834097227344484467346906267155450381415135696534880142207662959886890245050468530149446601407588390989141625505204080816795046992418727597937295966766279815155224928574560602273900019280898951294231647591583634293701161126267412120967563558153391962383890032118428589897728803169659097255804339803343695394009162467184542075242705986186645011483305128518398460750255061505095207487041654624713821645191925918337670609559178769041690201244446029907827299631851446652254978546130878501286314760695161594123674815327424688829349781725311728527049072966570608735575295617464455270030040811299437226797969894554177011586214676597526939288725295176651493343839644310800681311873013829727032812168388871867247788326785824557157459539928334919473641882796324228200291119048281496565968877159703586838058720005298665425540582839827221074304449655816754326058059524074671508140731691502969953323486846640643655523266073070841216846485764986165684825475981675564046651008674941318587286352654928507003969976415044232232425119409399772204389881631878235978319857102169666826620911590616416848762010441971212222698169516336732398265388179615718031846568602102455218742779604140453218755115141962667867918598324355612908370991626069052401226684466604175386840653418691819560605714672493566607661996738197636222262191201518456721748975543689343450664076661767044090743801641151514279791468098708484307804368450257303289514436121291375115036983581625457621959003252657950760025869385927830059354876638589192076288411235996293243187448571769050017269869338612054449028712997974771946439566754150012249218335327786230925461771002335149916153838613266190599053772686217690874344602654687601912308157071740634544132099131703965489714965177104677491094129722750205543161052877204706172188683764864070959582009598861620334653064754905197860990873720059327171120442406256359356071337701094297871352799618901374151700231740074732756967056224208010715417796394769266572569447420206280139298739745013409879346312172536263927645037444928659312424242336975335603733090154720582490730457740421053105260844632983051689694795879830376027454306059871743397465041266797484302770890359407063281387511825591287115081658368158492912873175273487339784886037192818776167447383265514366893803418108344080177306995525204589717083251531582634023112469524993700590439766185282494279550526903466324452955376329227331657456478153091474594370014226645319208502608685355794518571617745130217083686457746665287553810899634762249183601376446982059944848836617074506038802241065272639016210505554632559056984645565394905774716299812442052327248464709432389011809122191825038249910192171613376372636538799960026445225631576234085592691609761638126080490981411336017589829083194077729649356575372690651577946045323547431359333549998808492889319285559203510965434532658635806618816935852626779774195810303224657210724430421191860590013627207374276186028058122282308854316306585950930655461025218621224719630123913698405194727542320298122199592420510763912998845703836566424049476215045294450720791250792845022179322392678200819586339834400718961015379760324960075625501215908763363449752199689027499346970512169870269309971614147472302893896691759084808409203402120735416457740535649925493285959138176340319105375943254416920104086157804884738618622809462773084566447815632090634693412343155465698118634776922016676948515391038492668514292154775136518514521572669633248625734280684765665188313199859537564169482593402689324734906924469281781045737913758707749198036837770686537845609393620575721156485588334907840654704652074386681660735926778715232783474546717231409842278959099133619003019842312866281456669356800893545091953891658549003264438144165072932149891807101065622347045049981570509663243687538661482186447763595287820488749750832036361407381390481268618831656670263151915104340429615209003333095805029249504076335839052858421252163666807584463310030864347547116451902159302867629736627150254549338806908436585657130503161664691879671388168034199879369420456636809580995304954058777687841366132851486255301663787765628883935532619880407660572322551886911543049630270646435312202868409987044218752410275071153346794738253847554533982899369704762062131149499915203026726089122668901735201349219668666204428860125594138152797765348268062770121821524918881959674412104884978344855497255651170071786132300169265600588692882221294176686033942782709970036544387765566415922192011522659903682108358149975860069045467413991408022640075439084002648944067972438241886972830438768385935321355332563051058521584241448259391633835199724824137062726205875045545468894376630725297077368338665981051354940544824540259389177466286781480388619552201046702192444700496203431720316385849501146277717990262094877417488450786530564059148303317594685775266149067933672440523401882733371597196369061631972989036032228424968470547974074186229492975375866919626067267784867302710749985751937831193782998207757504246167112683107040144664586883903050222065821859854746624965752955051144398900316755808871034518064624511897023154075056753526171429652371572300394528354691644569926759169974155040089040770470492949726401946643517221324487688492991823669426082450489420636879414346487946255777954163554807648232738642116693978221259552402816288614636474981033840475850277965876462499572146067863467989235671927477353069220559633131482124300649904197152598264846085135590613508836644734014896541644551048705057181756409300402091972075485204273488398044009406755828706707591623126359161512679972058021519067272859986803784213964259562263978996630123520100448796121248910260107758135957867587684604281142092475344732453200871918544724806641445633514309017630693783635204256871386585366127034318205749368130251211680116936264119382132596891146708312302940740469172254165779651352770043055720425499973856383925485555652519755633272510820922453587037979200545612600629674136233001899216877624214009652243846911415052953845537395942611487340669078353905381669028274266362516445319064826322984985259651196386689133141029845381747395822709276304222422089317073703930063028101532555743156725795652947328437247973731600958758923824588859504217819137631198199927023989566552631361479142645692274517298492405274521784971010456943084740486658465010758062036683973226253213888563828637301400809052610772253120348932169083420568332066514782732016632433530462570700376321986055158483914118945980522158851030420950719108866293561152493286433977424279475998273576866716484099079503820132900458810694436850960183815324967131577376758726371919329356585840493947490512052701109319432520540227211211027149760729558806991677234869934785669601208046284251391711922447175034071720320646858429400436724192524261464156666531210746847951031501997192518301688291928724598714901218978560164073920896719988377344802730688086451611371540744052484069540644611451234883954484947095802562724534066341911980649511019950718518336365374182170644616234828787901396770123914657959315702813265603936270189284035110846761642902120946422165382622298401473132021984916429584775753021271365670220597867343060204421166980895582589661991254149861566700733237847545188000083492705325347957189944092198852818008940151156307454923090465581802710949711737591142635140158505631956576098081744854954943197285274397857792665382989770866091654535502117382121081296468210125232680259435476592876240911833381575909074102182084283884342407319125939867150212545755333205390742048737667370152830213980654376974034563666057582940026125323765288802541537399237444206310802057098508715135150555985220148550785376264239036254158368190187353647981281473863615382429243159648481307095723976529610662340932538266675571336496204179724314031381124561398337579619725191947702783682499853384523152010249069792335925372583020358763668586792746035500204060759658678353903438513791987955815040188667716542855071250445339931764563657417228263906362908668481029207093645550539987691756740696841507448380086656533757848391318526915336628027018535398799685790482797399449323840531118662632833133418320795470629111113322986687547469760407748075285549935736282399472595571869242796373342367100925080658829262472111940521295003590181039469220976434633159753771897907824015029851387563585662605349029814369632038865766639315052150166192809859960421193984926561953781645527937457135426306967003821101087544372024067173716492993761307106648355673688588488677123983169628041213596048154129105031751055581277027119183985820941202731481747651990730171708506734299449459467412750938881188291683041782738814670686747674309101322266307278628747299269600513519683667800664801226004126351006335267651190033299320803620570280785282067849694420136835448757859852452256958551635648977848958863157944846106414255694259117446539098079177527328016945996832815011169675298419207997806184606389324693437048470995506763174835488358611019849237044636129130356311408993889296936828942757917505121152940756757377593810601587402636988134996845492303015220595685275713343132153718059308183118141258887044195287925581092285142416410663235741294799553081560579360143568934227498962503054868576057404583381121028026773569055620849325205908772450408416293667458205206705521263719640841972046076926800354250241181736476061529015059218357262381219653598347593470049553163255169724828482344996731752869511494344799846931699457054295940905175943954982962014154526929587989389907228395004902408863327689036479015019071844703999641683222153343876638065759432120772603308578705337775174352371211433898383837958227437763617735023441480487043169778978472670416216515109434706282632831687800528018063050439698434933474517116071618715344831881798733452498482044820378916575912802608637343187789162153084213665880149543526793467531472398086168347940347066038092761485349480875289772387595892733877581338665264956430703693832262478335474864855939922579902820455531197613133381455016632120449280440736886329756906446397440968133987825657028857767839513599124073287502318791683528591062432301976598640787747683262842862395836263801272724052400558280866004723557052329123038170465470117088026413684288051738432610509486914999558623215950256680972128348007933425955174281041697511699847125566253271648770845329916522285221671491304824283979793259793648229312226108178281348006366242867714238414787767658882495735992661966226238172252468448212416110243853064037427928163163394198339329481342747600437859524601117442013387024481994959188608353732843239622205477636048480145915319877493458562264138023390483436480189997565923648633897439165882432440352130700746103812304227991711055273276280361797980323829263563608859214531422420046404699057141103105090808366767425532602009489559477617030411654551372288975532702756684740171088262463460374981984358144192505823514070862320483068740450730813225727762580235907285921404431843307305831127387443369994628251511784138527751226077177043665496916397738758864197205922325457885072023628196290573965566170540254894801592015692499335689025883838535367693259805583744312467796875543584360600366113104630639501585148801563941371710939930534804032703590359623196420582333138583213947566031759565390195949584620724963438275989644809665002248140929088998843470582010988591498830278007467725324824744992569923444388580573939298056626714699481953719122652830071695257261872724446853783166888986337022335367876775389309406414974576074756815274216466031708150409310967749785201008968165319217591637806661053640692534903985734509062131323145045422336976883015672883655250176087049121944078574803303461795612962693244727562705305411654283727263914014966296673012757111031077220712070047757546144970288501527584562355771472917299610749979575365269853135993092477838843225665487731578739231461200009859192423035625677387309114663589800927754695485478508608937560952409049246895289274859525943743430944900791857670694436724856333955300146029513462754038878233494771258767763322977654318676614296564693032850483779381909132696780732477369684825773659258233516958008787757553957585095186446339981148237247825426526150172906230812927918737165518784329387762472309532966123984420878795287880764237100900749167306415845864272809283981881917019352533243146661794005486732009283340741095163140662788044742632219298003824334234715194518354364591438906441224757978516628839474736629905860354115389052115666353718192850078142282791401618974402187393805489675782703886339410398851655514264887407657569810151970073727872770085166384090669207146234126443794550060315946944945318125001408562174041651898282780113157178984608304868855050105643553220724834568674386757357065133431779372115867138585550623860639087813149305802714431302001652510295700575979084290022829283790038708754260141767429118701386120446589103526158749343409520525689438280445260700597342948894778720946703204136095236049625026596673267967023325446759644353221948280489436530246466992655535550316453999047090015801934317072447119536779635689767645726005686655886810248486805324893296848577959799562191261598895468452107780051839466153035460074902253200052387817918495318065751766382363321830769616067418341165370212444260135851834651333485152187181905925032981291774788490923454766437545863712143235618606146201221326678374777702222279595823733095549552770644206865691715522937259883303273595781180808778078241191192245384718800726840791831422372715769408017787893534061020914768801275283054989056811553731338644721661169783816133053352882023652876857026039241534011607832218648949482151112326764305087145037496445978348974047720002888902379837745813673326061339823714041842310441376138730864922115500559106769446469675649787707377076692956929803142986698697084489871838110118067184519284235474604307924218997652632768007631216319228121047362431282747259872359226102942712800647382597118746362519891528182396768851447386077995274142415504938734298064922269736962895368690885559473250163242012343194366004015810800310917917089488682482683099802447632823083074266651386175707363730114136192050040234446234629856957015363466728870634721331404054487498890677960450916618655301677735541817597676853290001491646987864546687504370308019325418117157911525739115582731047818530090166207227276048255067233812295968542195943691375780118772408764688587140025641054678167636239506619523397034507730999610156426272676075751988013847497038096940791940972792276259059723206848850887568883189525314653331134013289526633604900574817717998607430222150146610381291294634320548442997886549458337365549772724551576438004585107337647429155168922902790661607177565474488807614130221359114386255873777901826949813049928437542461446728866667996943610430718318661876910380231730996324648165528396164889226224934724834732745786239754740535005115136826159380229706533229874962540903687229754394032487400213404807231743013727781097219029173475545359869932086316210960877752767752263538887384803217041588177247756041304238779587599383629451281071095401239485760415798733684484235475427716237552583641140647826812073490059780800768603703402556593156092193633949765762301716029473700575862990299560980310625170569284341470483578521963161376447901407963221948607993705706706328856137206334704069332085189988193279776527466736321831627090067182798983041583210854474438816188343776028343709763733847434057467226337585445314133293222293927313119900574583290345372580587126260905094887940326046639356784583553875245714537131721570745764618058317751738045211687518039598165986403757507456097168717551705420305634902423336392262505044307624078695829025534062343960301490214775955001464811913130720192306626045288281372219604126873344995546113418063660090785561287132479239907973216603211641320913554441080240385352536078980449510775812351536693166802537965921635616899059923036461622367644308516749242923052369138318477092475802854302939904281795291931689515876466397888980029035996776777921514866201673386450903966429088894720126784806281045147535182505969182916881896021993558505483421938326538133373587444784114030608512326043595073432956242459479404709881892341482455019106666688352811132924157804908523944693633647373221445507351610577194469937826777360667507612126742599638799567803301887209064106172304543821230039732714679774291929900213509828308167242445928740930789638892638231501804287888537542637082618824935043735950207935054295419518222286014568336345692686296071354342043014231623639354109059418692643110624284859856393047647191622532374035491610312292275360522827479605478203257378834635025920767829745093256654949938698402002512044594992308876150922228098621065551825014312983323869150815614921749851887737022697854153683435822405327871428385836438882098482557963208782697478090452795968879807505886284533127430756442516919930253913383261156365245924152292480030115154345552975627591413146145563810146603221933399035400228842087819455213433297925942306933959402283486344611944756508125482677147581393383793811398823239531882753405674689363588518804084051436301886397468623080447686342878169185783371754129556388372535914076140119225536569658130457946855883519431896375510850638145749945532368115833815464902219159786660087124495997784712569545809651556895968705886579175482505602693806460849741411342012104824951921850092901303400199229897038630754094678145656155256129541637934160879661908797400385051640917634799972462437460735870594144375308048094082973161932119307070481347190857101278655271967005693842278798650624323437960365276416054501612847936602874391645161626864217116268765632618365857457927177314664193731950078281838501850275179635024847378785447158529872523124784563199914120727710417838950021848552522853228608163862513468055774037782970932442632629045506681974647944974311942125805457864618769064354919158544884278299316012926529979924739522638173246735544605243929112318695193437552268786903140737457054576886332773278871251981051127367055609178311230860039886938123533424630264483724508721849152819004335369931751845919094771012635767267664722324035734540029288981814153447707203450503932928875496700504854781631829163171606010922006306302420452933094590172105169587863884794175664162685549921625510074676209363824165774391106279125433009158171990977720824526480148405569680152704677260666775925422349693427697640347927009023688711681882573581677412612735719788239458021590035446387935841578732908062398501539488627028546788090384244424048118555839085647626524707103383224438518364459910451986945551508720314297047538772883014627977626149613054539024054138309806600045190649838850632455253100273173314254922918905624515662948334581348723598029931212747149046370791793168856096225253432728372682098724789664781664735766065031994286736058998203867428828426677563982396998735567215812722656823185132885120788378082609208916946841395843295637602358836117056985659010269196064421036840727931676220952791651300300092368727657315692164713861972070853542058064236235304530400717272386353623943991903222873065890958283713930005234912534070149848612429853991054792032364482302421825789862118867557000513924166222661404616465213403472966914165873417831995422553294744214046035612927425138481893017988433345580040276759891691082923449350806425801683701314368268853974839845844760210869615585637192579120841944565058690206866507730374927594033553515874367519089885180099890250940841331952636489723130009747595644850947027385972263927270701341012533705795953477889088536551422326714653403604799752721460373993195354186558259903720454547501555050305991019706620825144568647062456020757371177644916283396845073313868665454849205194840284269041357069829615984016234660713231834727718342347107392177796565092528474173596874705416095915182865841274546281462907478629279030354265441242417037922872412060968450518159458814984860709675826287347046447184667011265443438462372435887364771275131369146710636049337552438617747456133077759328701494097634829605818548492651242471767325887767035322501699847378207375061506260776506624224142714058403344982719207470756418536522535918389619850865994838297274100270982384480635829005738151313188870681968335307259000040265704140535383199423871069369669360980506912062901948827272019363812221503655854466825948775990536766851458543838609690054167088969632896782785633563597115415938596630664589736531374721736521665222183268267196508482226067587549330233913637320721086036537637721960813675126984797011886343699072460747952260955949559805958222439777873768676910375418189200958753330905238773873055970843415386926570536761587169932175312516587369917330303522462468213099120083586685083772325544884978604660101016766012934574076180142852001364061060242026953706825323319069686878039653471123648260097013759482759583057273357890091403766767795650746858625312887784280994192005754206841287325804087637802413354459322041659858193787326898530913927848043064485432817697507236075954736925111049496726313571803019529571827242096545947662740460716593476082213203420529512040032918983134314647522204518963479789870160984637395790724401650352081832631155622301427113762984891395335104063890113837733180323239266749344098701043466198392024657224329474382123371645565611705013084100574894203753189745192921005303596025847235315110759953431891171125310653414568270858451742186786498783030627511300858572697846960106495802917619710904203010417830985427816688595409015878765640719090338938633088507816672441834392660102418126391266029989408357820412562822030413774664935118092116375465433595858115960620935206747732456695608069690262560052038515973300878055701094444500129178604799083652013652055873952938498760751995572654062153698315590461527474006642402582057892676037970287917871939464424278510401772526783600584750444426299381600503923797183586397546073513685573141682028401201527081079512683597541452721844993377504319324271312724167780570740707811237806914665121859395362285426609311536803251220479247456546329544210694348809256048230498806984311912807649530969936172287461500692146086937041910863435209176433152144437094895411166117269449118634450429420133750892321964324869025688857257354696921350590060028807581431139180515032951343760786541159362105321172370716886426887534842518265780132608159009399158600220433552408865739122660946839268654229724167621632268676585923450991420247151171781720163860382883400650672655857956989970603905750935766314524570733253043456080467646853548294533730892668337735684884742943831885275582796230252714837739695418771177020604797485787937193020442706827798097391680256737248470438874983985280168911143506559033264398343251246290656803273925347960763131709025884145140285201044465872165544257450446428517297757535485478847720498468677598393646084723662107509777786597120075471201492461220257193189381473453903111395035879834817827756413338414467790412637006858024537495282270683551435342404930596584059716412519249249796190787593335346127932266653659353789824985146346804415818644280136395433680828200859088577711700363956100417139453647411655054920305181601635946996820700237542712902675838266167223068095472794537160994165178080537285845684037380280975283232649255413127932122210410786250324610939948722534828991192473900263063947461361069341263647948200957921518949323122714441718259417376928532843010435735352325842052200057245764273798711452981031152321461801654052568936756821741689500641980022731771746610507907803325362743330888169886681984316328551840759923342757317355288518226334148353691897573803213011022361578648891967006306477794433939194907436353322917821510185028517396491513265055952741586097839645286117047636239742103989787073907035893466862265732283680138844177815335637480116813007421090155008461055075392527540398784384396833792323075495109482205755781958895172726974941837414078485586145037009885746809024648027084222716051281509511390550561776166365905312930758599752932519660884711425674448525055388626687652401917496093743035203755520157708899674628089399177248095995087785087820078003061907386094046431550919723506760736162757992555344129152395899080951855138078428134587848036596964160887716855265497452742836490100013382967876299760724509025719112622325241662358835399407335151247196273664300653630659254385161925798767595973254947616894252475140228386678140678732561484593905757905943803215491441275536119143525295267080217224346859039385314930587860996603291954756045173951196386885750794751517296635291968568325729147126305876209072633868552341862109473544336100316978171532473425043137768727176051073112512219246957709024957162027143392499102769862632593376904164007737080559690117502834210017304525557137100074095238409403395145221194898840670516690031490088453115307493090458613428879292308733433430977595604964380733081731110619862641904276417778409963241719195827309855286649635916104326759791039029994687472748901065630796440023029133297469933665037880139783713924652220025366521522544643722367673567797378658581719230236289706051553991228394080430584580932814548819031619531577516077746320530553877848399173938091088126629161923494942971248494390190599581634776538530175193213480207387365309915486276860448513631161438448217879338081785997325726267375606556682343000838028166785668684820561304842915053771424370995929128016606244079038459409384720351959247117833575719772660212938518570572428203947604238831893224438394855401351827620512947526178902175767342016636835092874757203938368037141954469577981897410512363952828487063749266151290658499173105224648351619561433300582857784776165547865621729591130254845784184162476625729506362250342044195926258966337825553958374416375829851958169823598640676718843985446050869704487233997202042786261576866190095001511519048376762804334175074208992656285884518799370673788710467993387212316264190357290259623829755649846481596415560011667273731700973918109584646187978257090734499390563603777237987024505950264418514444632635076146196122198672269736267570780518058343106285077298113253005033399578750703871905545159667889685337831973676131834717387295308337202245922119496547040520371035421692324942313598428147837013633893927326664521750961204034492712232800908163704682539958875320799706365561800404646867825936290783053272402568265385441874477323850217846101764781229496649438918842728083293695597486588969235277983227376660452332151980084045444802528565403890946455146923808469660011664919013666645407924449107962639190914446787581389672194038154679558769986074793412346188109740673901436316322719518708965481807377035807238936696552077605427212031110634014510611107786197982914935060270045936735970833506813131387372053756315370760034275229314457356804021036735215079224043851826760502435804920120605196866476656902434007189885408679193797124207819950302892457238369598067348198667837170693231364174069287175824449401305929060154147744331249115276099101048011001538805412843701883525189020696216650038311189646753574690725860164944891776924910825041468720278008055922774109474709736691845617930662733722376048504152602147931410264756827330257406882963898257692696187347121447430772401924757907600308758848604556513833048208529852499415950734812757088326616603936118355353284870084093181328088139066866001477840008015237980357321944028782540035948385951108126845107400729351239934319370960924204107025713414612719697103298246557842723913070623705090892829069638369425009533449683441490850990205670306643267386869306879135296603329162449486318925318910135336163097187310611323156865268613044929662690930586704469684294789295516349874773874450483657799911324359046326644975989685685539351518054870702829271413841386599009785894877486380172903279619082428907067863773965187639216299341606577055331824335263849180997901252068835074784778019267875808822983939205615359932911565366439731892241681564388147898713671564213612014871237083614013389374509962381915134430820881306163039402627611442517021427783249085380963021754381756254902164924311869241309502534117923163786248544466297739624185765506417901833236715026328660399079204421376042812979272517262046181612248712415092927526955367457137142918222214795004150873652510321527544935059012483894794505060350455325858190387547693521022552514952264992451404241987610549133565999024587267194525814334252069022307413711037938695563473163054233572816750325572367248084745728839958864075720531284370232602510675634235855201580145419747335742113983291478333993863425104944483146075395488914849139484569044381095036534779222357403217641045577141749266525106919487974129000574662427470062392532578969382479278060736985858544194919341141370054919967620275663019742796519420550631647580878247985025834770767106502212554914964741275662630642630660865212875852183434052966286702658484882349294170722791634421899779392369163843261714853190211267409526379231199301557929509732687506146170707427691051288734061260573562076567903224391087606218748159881821852046219202835903281447216196750918043368822866053597380837427861072074721449048091641593558831165849661174506538117946069302464072000960783957926845481876948935667878140670680947252390551406452691918767658112047853167825064057961471338079385311413375824573958216147415833805888074539009437548426487570701683650584139176716323579107941873406836636881965904690590354123352955719094493344178775910287842221563110524750237997436928318104814625881772306799172154850201298196091633632918555265717153700575163140535546542672348653596398796605671573656493630531671773752687539983674694121065835945175507632144787242892481646809586528752848158853631111064269982441037748255828528612936008337917230540686869227703088810342011293295045383569695418714829352797803461455674854478197403351734588212618146422915997814496579617348336792153790120385068603556510278856194676425601992693879487893718294826324856341712175866203495016981302069663158602240630374876907313643071043012948772437700348478737711763637546514673845971706664931068458853927445634007373548209759494598384740504624752351679876594030304652483598860764837617535579572792240680796625600804167236909510597938431438452999558623827959433118578009486430195969853696390948606530572497509488458905097806899985522920388241510459551204409722784832253045969081878306066909349638665825597585844975532011352923650700913906575625908034120842694755384835423728980372866001617400533893238933007689117423308163738341073123606225272531278741113271235206417550779007468182741409256516155260115590401893739276571266694741045794594045450247141019027242451764711921325316503596833234984589203915912853236147307585721183918829008582216153291813355693607530324090593871533722605635970626322195999159567477523687881910848385454132754029428728488981364058820733892468413541614836530679404835545709523977479893454865919328790034704235821761731877881285862276332086243518814241967757286604446068118554896152731426935168653001450074078578125591624051442468006654352752956015813354105545230953300213097416902304747048233185238511740316457006088004278631068894546931499910037797155552663412819325034442974239504757985127627901280611321539305631395620921478440943780020083793755479324880925472721608564170604787796229370270495647329265786044262408024671393013890550668352551177502196317621862096222905050872047985084179108319852783254870393881275848639195116805175612875743463725431835794198019522453624777564991802308963592890355776332359061096482972220258230354093892271803517771973715679083132626584518436002068286605692466846351458618003480610033755595944484563630306446831441035121624068646052048161994191379850583589036777636755445145962290544576419176938083133702697220622199861060476077077840734781954463601454525588467202107233377393164001616268123309523989352396155779943746884508905867655307431095234705462085415102197125339989909972500423980503720732069434872142469330596877034486524429016669670522826733703430015193399018207666385651757639480426801384024789351250891367216460263031579079405622620543414582585806607400672101977442911155629167754075033842606825607468449118841063810362179438911394048299986322503706948479040264235853013558152800090125450887586020402918701702667781783048680325365242307618858155798951832204603635947397471248350740518196631670804399891843384749279332111232335483985204677888807837874900499244010317891896522768302351398593226976606335200792665358496084956019029980255543478071475586891850139646242854608189613298197858045946705525241744126774452536349121751339653389881930941835470765428574129534095838811555059218517302879078187708747856994163503440730966955372855687732713197369902048916023648662122694256377106284010526800318001391033745542095664970753038919582492594237535802671865908000669192853718281854544972109187657623181835475930574829049958243978629262876885865293877560159346848116332477820587792688919763711316271115760957402940782831187282950032519458960404424197742216736245722536270274289416164730313375805309223117254674807051386774105075669460074947755199515293002900191003962763111327963080249467087906578179901312245831269734760850683970972543607812258946197279373943941633566085746562448024743341431129852269617286061168469510353473970138274439125877838244242036981536619444062660821955943993683128035073944993611014807671560464840380473624357684576327043242238224482248666720581642309801745349034907578365072850514998777632029353488796781782057651477998478612142868628895795129579990256026870879399345318286441477578277401683713909070335604231763213340380878242941562154378579181245508631907709946445603530994190294324509046541747348517478778601624865026242974752383745532512685399009264534960523776966409440872489010336725666204161645134769241900022246450749889908464535310410163532923424702695294267372373450851859802946694237794596512568805870723502580313630894993199158604067848631917132016470090995879213542456756958445431376772956169815361398794010768379809993668048194448726503178112453768231572238354543593562512307891394139496295853657271034591544569603931032815013566828181649805819875277739754728423946912460275836212916451506953038595322092799794545398123705404630589116324463588283838258326974992172113993401145347874829718086026487688290928680282250836004332158533471168347723916050602319873633911340315064352067406626675428416816037648666307476000568254209362308454160401818492315810604800852310127384283998437985562813345623809614431638169024824758251935307862577141309921176885162357215562407573127510808468654411113984552732095089021062016737256679158319647420183782627585609913555734592484824529000666932727811054732651206223901961997185623635101405041722404545953265466727281263082461072510712210333100932044676522728131684377776731702654063505369102381461977871824116217986203099831716275860989394648165489542797059579334642900203779597579158075941926628603614883790225890738256344047638573434695145059331044260709375101798160215567699454164564300647027529446422160987998930333568040459237092499374191471341415213183636969984135207034917999511793849509581552463791703883655037476239914696381716055126588251026317342448381774844446902739671200125143196248729784027679086854201170112914856062361518926464732609188109668218265656948901788007015038546928228682501647505893030481848452825488205925373265535267312795604615939871319798170192517739416882206764743792223859190923699193124115071251089438324054694446510136868684667054435767084025536301414533121642888840685442432796614720438357500529871414948586725888990951488279624357243679979030953644101578734294667998536478285575747810130207204904152026730437017411728716395922241261284509693185846367692726480152975082513510397676838057207598799717453338028833498961915221818959128721815582757170041400590836043828326505971371727030764163368154719061082914906623151970813912208576478201499831991885618414480088923842856653682204866926606131162297905135791741769854554465265908109366419217423228349375800707793464535901435135755697303665174826546960601196748403873922284369574429745835005400707025275464493210402155461952823718257655083307984149186257783430417438994748319870916222741733422818763665547589269269502156500820392840168236653827746778880192291726235380029531788571665065544633024359026202017206899023780501377165349220164677208603812572376714437888803211782967477321861189666057278035146534273360570524399391944866590545936929549113912822793926419819098993785424648985380446333270837359717849598667406914546840960133615641579943342023186838383377961389430684991330866528991656531593381163790089424918023521270701647980141420995621726422074066959982062040290114319912267948161716994742212859622221784333223066792358847804420238787532519448844300736893495498761314058329523241729932965884334036122099850467225171966660028985513713961519014094448037711529128727289644200853506373279117028565903121481547348307470285474206459340032913979832202249637364092468783306138799231479689977502798178485103039429877400425785369535611865112075463120664849005378973957640973701245904148906967824819895990615056483234444115316241988108825104191191463969745026002645161845787339488347591374578262945675337351375403793744222128986639203075589514523574981603605884742319968820442728140689421620227080969216798406902762440255401240945831981096061794589077522204729671970180112486370229979976138620989922327948217433642216349555651108710990700497272645223416808897557975518647770016900483785478741972795210708616654212440030087632147482019050959079072727319941263242709459544853444416661868866480069906146766394723833329834918317805427579272677405018301667828269777785933893546426537115183472590890258140141239476636955886738218015345018027766308335603187756063659186524369212772207042663404242913050884314289009066511050853820161234020044611951299528989410554133263480665287226089402561339165644211806827402498362447347812028643305768393844885831457024626004009307328015165467527907529002595496164444649312166966553466614849877663283316675195109340291798662893150539257320421060978488001980500425161347078449700922646658700803084082445332880698814301986271308317348702543033315299615362611916334701334168377872416604102198459647011664086932282900035299661765591694241407360112869025940258195807060135328285519465894956682947935372016871817263162399461623954769002830691432846112772850592178936178578859014793494542129643499675337844682495711454265128112350982040581581331408266959952592573183329038788249449852458780956616471600282217669456267945776345088581569809869343610507768833197595946386020774733112546969802702103688128335718545810758852134087561745478384092335501291408355960346964287574027298718264596755608455011694202189642829618650091818195220904738323194706165376943262493735866581980355307900187270229575337385372462013723778685276570472098491265152920770492958383998196793582542137715275419354187326394779198023802482275638852512742423037301086122903416735494282373002160008243757451538944818548789369990024961595090932700899217056449783569670845498258340616628060913837065647910811335219341928671197482704744827433811958500031901945429172558530567767426787061378081667282257207453508637090965673374559563857618408918077936162388941438699845116322113062410798685211862551875735375080852974905838315198461272725701091633366756618877202402673926042292007849985315168144712174279416199971651421648766692997223744446124038501879410159577861028935666567632480227831977539752866654121878749495040660160699792607763800693963901317817558965933199652352532729325261975522589310694294951215797878771782233767654750744200733919968786635612304684148827916989119438622879078558338544333166384628266890601632705410437359405512418912223053640755998196894345925011256159860196911131239438912311291020532559743288113910366183431597914102277557191462101355615857833615374276996912356872429909804760561658845469364851494089188091149280034671802088471497890805586170366787032930752153334476833592166737309701897661512084305775637806427220313688830900214500961702856562781733214529209180497892206790420774087306582290531611654127204941353142688150574316336744207236252828949252673130947756521940578002062848630462690638739340919953079428833721170032428540495438107791226393865618349518264432063765173849779505959464465322455021573113936190441688414457136373707662376888810378862037868008714598518884406927565287563380973957932226043752226877488380398431080325385263558050829267420598767818590933705214187193941354609110527312396293982258208392384900783553509556260246802128905550131373183083938374898474332524001595952864863810584465583266873864755047050538394075975840432493346152843567645934413711823020567812967056436656509430401305348478762560046252964411126926748632535463599783027258914099436980818642358901358532818923738055411671443869568837676146717563154732575085219952115633256997987859601633012163385480199151526575113287498810090487927387367242152978978396761741910234257448070224766703486648432147388854241391398591221180488675456757142018953606004042519871055093931738719949181957855058636082243915251388016559812689745730416154220577573420269970712421411349258732064191171708588082973431569540527607484962235192147339327920877307884748134054445920050797564228160522526848882768499352581624793184633920202825518763198134827509834933299831962474426124751122371794722437218473595952125275649504578910755732619913729258719033490973139598600715428625128574466411213043569087008855059075173696546341522401666654750212490913802113740403325531384621704763633247316162906790446424519686653839640026228517893151941911219592563746756014589816609228288600097358952905880912466945491033324628606841707800576270193345213683103912664292342768756628592212384240092387997082614652666143229746747435049389173090496001620560915292297305449837661726190427880116256566291974683846013591049656212473655947643812101721722749328998319539504353183302148698070056598573263595375477011798562070093495723991075027329577232104403290211650543908406750513600929453401029847990113449782502055840021845832746689296551095843313337667671931428972723163538959016934222940000821315860562899278668019550404646028434899540398328607944161108607197740650235080336907945985990696356782105977520327589310156253625024698420389234930180339333211812201887420332399389391928840828110915154824818982002667741732039581746075090861753445517026953107400045762733458422848719096447060027963851778133218113194050105423591876806638061562488285475688415254689636033336816345555969991516671753789316740300955942460104527306571154359298720113636294118848066896163686494974925314203339049374748988862994351418688344542785292711935698315771889739703586483360196174588127240135994905664302816777022556044457934339774097452553054754561731410095035984159691057734164740442501617747443987526721942362600014918629419938744865910745539195894366583885985829177700910372397981310919619801888514781989123969263269445171472498464801049481959109856158671145779732185051813414135853615920812136226906190874400754762871684640802478914566499466904988393345255787303242695584568332974682172474061583643025526123097236392826589873413797979929721356676757120254280148296809635707478066487220035966918035913289035600297422897257492502987740213368008980000792198559664997838965573654273355680043259747666856056742897800139668774853256621201229162933964574749718948719583695240268741353470577893565781037419921572976255280985000558737555500083326155461437786724374244558468486990079713336826284551311635822080817134917131447740100627141881692280534635053482566033124192463367886714044058596246258874825389416917082691208772272008497516615566426701405902742049981872557693716750831216399643643842745602415514930331861348391165347408025321588235987449508277244644912469833056556341043531714593322237832544582707625328398099833990528760076737068790406280182271317114337525652328526704472773625019035021638361538938299968867358082502551133600258072312619015508384350011063958744728050350356368182450391157795122808792753714899542689452549237481779273451020753573427046848079012603192212194252878008387513200491979344592100094052278711571484663267994456199925510873609641983873341986221543022179664899190162560835354399296425523413100092015254806566089446071609002949197342224806260378169207899219342822903554770153267076774379458696160065103741293478896420448493752835189609748432542288556221705933945256363149947315217736513689503215519921422481552694669340354328974162423876439426896479718445003297171963136954198138737644814093482716611706864805442114361849894700733091185393606465410454201849470644729666859627025894276038179802631683462368108751693810976458886360970637235901240133335985888994194769654265882698903121465347758056261928343504987732721012915235642360205715999551782610040592071391309187994662417620112708463571301407882612980539215987487970628047946955548812597407210270839559477941909886138453405405809288888959138827576029363939049849943558130541966646866950778280824322946149018922121024241024053378171183540584158789219324020819367786237523995538807391645736058029430135954915601715952992628567653011370553265529034386284498278100280645307575126199934242693395728858483790246265649022069517173201998481040408994613857848110405294316117593689752402620542965630962459464770710980218342913881959658562069706699255429073866437976660573086185705348814328653781434159890250164428729900791000491943538589732579459373909433177557731691890824059431251711746338304345790544534117315205003635516431656264375378469280878861334425812872195342374260138085975004650685067850647216768792080164866164820301044069911322457673457795208791611629181735677110762077737259788070547741515802506098462807572897623440322559712600598188626918262553459313526403480033234370409007340754190199230635466929006282713553591268603999644786815813441340395964994229244406807492270601033359940263158012967888889886263083036861722003513703188410524480326493192659550002694117652935534099773079874205746138761819128272996881058018489536197793955783422734779751961994389038293845366842965212101912407518542343186373332830511964511746372962878559222861628504737462597990547188984816546509258648254178094012235574839073706771898802291065620367164613958749662306653366621799555575161776806631860509859486642289400923005005031580270721784322554196047228832387179094523339277811670459657551987884408546918416420569731854109949509393526657331264472619066731321224567221837810337990591481233966081344455785933792652239263942740764616480370929140476709531033420300040876584756886941449523942411055171677983751338135824404402329923005196889415430914970693185425297966241470037929576270813780823545523950669971499127111832420917790529321284575198311613420730088580248655317484023655304249977007759416405026282933583278851827477336969431018550356506936263579052996943583746423172583240925599605998471582249382454915727697330714829641343405784832223912140803078210540938159810971891991129959624335580736668437579372262167233503253497280953291859823129406886348317103754350406062008137817058547867292054854275191982010324154139806339576749732683817781863080028746303495006136671078653416413666280751322202383800055900723662227691915568833331606747047093322828470645005180450841196572684740434551663957933737594760718625158599525839373553633400336960727031938204954248739982113628910642687829823962523179879453308403455341697004158079363141773777757875737982139078666546228481941885923252294289633084740507027996133050338329619833085962270473054148135942972565266402328321095775615992730329075904566636052698212654793529467104664337181180511039398252820906504299269339890623069680967797528989811380508522805510158006914191167223840349645956447492815265421367214907888815118349132673804686245904244033035876839505423249579094088779722265332571104845078302104843006594134682071982557246640916131141127367147192065964714617522555802914240896350483111958080418851771984899840946079687862509255425521832184231331984547153301575449299918834950384615099900711615816373642620418978118186862401216600995016084396495279453084567125927503515892222802772593553167249750251538755005835459528110079822405942619887881187321640476472991534250655654929130307804237151324828953892992636447488976252204439257894100774329501754734926435063362344579836388238691696599908987832521362997336459078116570295353410463478781757309685613960698219499954965532465790345631054131939540579120058624289906009643595615439987706390390421320534939613176094576338543967084842345526851178161803991949854068758483216876450476170090012358536960491587108363024977688545227281630737478539303044984110511391774654381068205531914182715579618109538576512125920295907539486274895801210844201842819952354856236734083678641355254930201470891920296058850129254709157857197382312366393256506425211623985703073777979509786982499181583545718522053807715322616857290625761289934110067488907215246730242643772583906890526354197271786710930017809642003547602047156243322304459423210827382079313241236711633818104335069217141645121085922171158159649289695380317974114716771316241483788802015102867707164206892375780663242066780100741915896752678277392526021341868071333683145005303600333009753161111960329093145472926350377106272349675600939783965080660953440493240877138396605402679602604768363351440104831917795391157151402596286829025749734915093564340667444355546225751245032481210443816895703870907992565037448936144315186239851126028385080196318544922011752769519862760827036554218284026533070218879902750030014051520748905299755806869370799453375177576784307174405947979428773058980112065135387857467286273079093292322656515969633941472915749571838095122155768137080298901151163385446298796752327193740623345851355842351253158465894255656370760200987744527778259280907018827092296217652354820782779754414534159735770323638225700948664285162872422959240421471963252014248335054628284372145418739969036180897351311666425933186501947292122310641249379898370017887165244446921641174993024633212951361624134166296009539521821776473623818415673403234834859062522061554186986396612215602623003317203511022307746753270147214333855307880908517064998848148492789843488496982855322832655627217824971751707480976422629452420839909997176183153918081645597167724484993778009810468810630038278220002756123840566359580790832409233216586449831825163125831190697191651401078507485026855816375510226254584330942345174272054117419092981764489207412198019442239054355597301519920761763246897160457232810000021083491193720247518069049725624735172001030724330248004518890455226062942090433888008328061342998726827356847334488293779749387165303845452724744850885244771164561170939807135839654686749869445344152542910650579209526387859301065065653514280490264083728088010487713241936641007292523063312610836454277992680421769388520099687454145783937183515264054332496342326260281804090040907664629269507203286160084943790924936964341284794579668403126038738398529386868517058512459463604510871624310746233940041321555095630373175165417334091909742664868029802450605843280783303634000809400176639080233854979965244920410021680973406399951379133163563683679294196366430184400968900883464022158096002118589565732772382992588989371504799724206922722725934244568767782542001374112265296088594939470587472951881460729604863842339214719690145763462435376632419452101606357715771034464211669538375202943752379353039048124654376545469813183138765736048326120451973715720328232283952162236106841763544363453559184970879041179953062271860989556734259427341828735994246500140590168833952217753852183636511241027495167598599093153656771610259354102112930808867284626595285756892659221111991586939159382111716329439054159199407652681262459328299707552828551782404261348272162401755777828914550963074576241618404466173840858185736543363182635872528089904374607787813539366082117170046839755469686300935151840635641887105037236978511007884750382428032853081899634672480583914222332847693649285250874826645662163559485316933053514661477060190337984819152636877636662503411925974901182156299955394877514766228198581667490483983618174320374860293155409980193037825876022574738815874039553775579706098411917422487540358559096228242987047298359314231920071500255485578874920740440968662814049659145557200377725306757835946175121238953381488788341865182605101923233088712955721768648752559565464576440711756290959815485507923721107289534443981261288280818541835984694644309754459227557852152216245081601560390976267267211780240848854797096831003218927568215230864074691127553319725593122700905423508799336812438548595603593166467782973729536146497576016609957104732652959296479003115447421152797492411279897886454150202417187791368561393258601916620651757351099559866746267513384756801422021505971444021832074657530180342118137036092193964714032302827369626012585371103670572317491070242008686802325826136680922320884753690232923069222727895366787909452806815803104370590752418703400890869116125519064781866344385141678573752405311341621740703811979045902239817631216765736616186254321063100193923897590562652194134636421195293212564776903025120483306392236978954109826006882311758994023668780217672025210361904460467664699011986136761205019616447255599539883719837167554488520943891580616770714532469922043632554374134421177482653566714945522169516081114619411861692730552758607320048835859197439757028026571305622494867958437008386601714487285561470661843075174140162461914729612623972911949956997457484646791570869605842888522224148549971434418589988075176401201771958849991591655225480273212202253935820547254817930757488023308176935711988974264512292611335858259980152295136246627020699613362719394822790843358056245744993426940467970477275231444637512897687155497807462082748678331123156436907322852016968305882022273906324465564897531676377968956132579420173687975998026420765328222004175189611578379191976354885253558511134418297679592154067311258776395141683126470749716661208432362083327314660393022751450758366946476704719633709082406006126212129398013693074684227119834744796353358459227487561270652545740396104879055826350596678339822923958777633428412186956798723784288951581459130531988996966302997895160138193255455151599547784847268965068067254280025261630821784238045463689964067149659040116775340599029853336077016715359036058363096454480502961797967295056431807797673783099840476632783680654004542760879374830873733275286567745896150643179168225047851391485929825607200048021045799123961602052505109010374979122795296884408938605141597427891117255677595036184184898520800203359736018969036212022501322151552509746013754304442511027136649549340653219243759244480081611483630733034635373762480430240888663926199027289504823903054692026532399609670135288853433099569316817841383257759780953955317138406888562479263340437833031314681762154631293003715205976944213036384226478361594244028232950628064262892401213293778536007699801674268204500566393508319816578039825570602806021717163456974847641639423367997130337056151322226465151601163835655876046078100905176740022246971107075358528461993486066844315959520598104563231665719181787260286693098476143795417015223131961282320632654999046798690104112441643583423607970005038256567943629026893458157607658885528131781561819477291280408776579583460593216242323015011213374373967935954138366477618786800351623134729884459193644711458136913771413191667854280770574345746634798442734123415711699940012135948550501171578795411727504744253406361008103689489525754154746980347454970297981252868863173493026840188622233582671668294102014296435956800866676199274057836832965255136775626982808399527961613654704866910614496036217803323053795029558023169084428961919493939878178597083580006993158922819495717103907567144217805227172865619234287898739664858219407688708214307943546648967122793706547929174841722804929451562102257964351950179955159656562092997429456884569532851482831510804649331470054957675659724676777557471917874216175612936923344239754890615654484164529022568526759186373183612581811327071462641375945272405300118366868802768428674103477143479587241789615879581089912448612900398667397164590821108593021515622650781462351250876576322985970828641475745427950453291949918576766081709308602802164578212663878602675820555285180218996816668669347704829272023530048383380504577535681654448946428999826349618587539317053792266745885386452980741131280605113236405907998225054566191693728210338908556482052850449138649450763828809678804943612863546401007660846961527548987300446026616565329918745139090978720394503289733526075688618106823310941354536807337769420380020048331011276072574743935233799745704235293792102454496364136528903186394816989624823808218889679031557661676996030437485362117982435367927873509830939167128334033137839168166223584677946662669482935970321118347297800212619772920443268126388106798318854498074071733655242719566959683661832194467267106142281654711621125194696300629570127025765469813463760392148411960802470299363406593019288935858060530345074275901924469318380361253027546655889069908956130393767297020401437849101747129589545568200479568475597852866164063836003354275052107279822275884294997554297490347211399622478176633798528857669025553058433052941061850981481405201617337103148264683645109962216408212982228262202340035381850998032062452030510941031141941106679398774108747648884906028402449332669491077550817373459688768021051014066498347004399315069225738209790614296245443064355176814884322910165484494065532366085502156960087925648525588459639157137743295709801092101043872716292219437871845024621237799288332130930489797515049475227419191682941434027876383984485734664774230101694847038284360034091792157191090724080601488030057499563990469787722707676064248487483611047242999940843208944599577383860960324873277358139417399231394614887137410881768583447169111851356320662519891127605552966207953402659347398412195435201635038134625968573778266047167040831303068949980260792171714705098603844589731068602437255282445597407257267192027667315755571706622245219392718045061590001064475998997544536100513923819961733842750828078606871935244795876661215185084701415450135006202925028558203089410304216862189801255870428072304412908710948787472697230354158739055194912373987383983316146361331149498497662150967748034768323732051639077755089550809811706944605907955352025633400267707232716375675473791967781881025905263538413327005815720198369345111104620470173759123793909909958564188178500237215086385051677080733859312477733410787355560773085931125959242300720822045054740734663084798647826984540316271293599815972780583040447236712629400101495242217730768614640689142202171090940296154941523366352553100515273272481685363991277176512161485893323407525875673025025968438699622284623486362256255521875269687708712720808736804802944542728663629719392209501560069832603460640095595921791123009951665434321721602367076950778046345870242226698714863202140070752313096649938290932443483268459256165332980488100595754854828273580417015740587279227153853101883011170410548231493153808784199277364788800171438605598046756017075469085297967505534384439992238747451685164486078611885380969656596159127657650627835572012468718399258710629251773351652784265559669945168160623842189148283097384963969060755344529906722637135246148772702517197386415679624890720710926600512597898995145980438183969472217016208514938267430929162935891033483415595862561881871494368121746825975585530688472658688026784338711535384926117439303183469068194782179412295238715960130616381313331924364219097621021439642059771643047457221660520102264713078128339050113343316040804387193208049910996287308407160148026487892060965648563481436063782207750808960088206555458859905306845959276710648390633727964719602249550835855623194931281510381054909101226785571085953497527599811434629764671924737169539555421189387740807020147005849835930666681269823528328815976204967748409904245584199737996284323149061853884083593477240460352035130135020188214173983876934348844817369423766659844990232834603972449078452173028527609717507433329566091056443410795729819031277520401926395103012421142438644062850756115737405740105549954796699269116090123230925763312837908252269910946231666256614328637711903901766376210287682983499649898436769298993516636881960385379495545931511022279544548180582593822373181236430344310379572837803883068910980289126212868684196508573787804780968201492281101709141878153437084317240961386876270512094827004712991072172009413739309656632134302041103678703623312822408166820842430579480857449202517686978837075936583564488969789668613783896012896279477673982495554131413626146198877785167192537945027125280530758330695684357178873313819068864632080827286555413294309019496678695667482621266761829913005607570970783545019798032302170592424162733874647001485283270158830186485587373583698199815734511406301967555499263359791943649452199049362827765732639945685070806244870310630029227081573927268838801824044441694298129283294800421616734953407721402224114089604170316026827315130820264056008886979041669833698369887905279133197486097706907403577442358551150471569701979028154362862368633590758029932943504223576184810338554421328120600531632456458854086586145986849133018637147996749876107349149748365005994852509452218656614571381560727289397277859085080717043189276688608564966877392637543493632058900469989565803545364046406398843666497688321020636076583155262078765263889924055410468857762818135851347013660463626127726860340978234849485627657253150670521198076310012757291900101461539843868409427304639024906979382092224415168498835293358279787224204445759430342918654437784443605603814841054519929867095331061082275821957667296749118802664271677200863240809440701512979711704777729379386256143021441876618692250351202384127572582510379071095621423289583081773882633658955598910332010448454000504284398017714279751614186818815488384420472710789987871770966694398000739319186909278839574170341727313335530285455102047083370517818527707330419472024507175009679235325439778933751977436872288622609617400070267881014009104981370727334160953966454610643841351985717564531880798011506870899519471836381732939338887660805330655555925306158454536787848681355359654744786104805359500056185737673081337733232228170162752859473714308887681662139819118116559887327362571399582043370397028507721577432554708537603622951337052809992717972532945661113312877016726546587214467026022433910887211224780591101274759507379571823070946436542072750213988284559532968420882656026021145820387198887180491056377023132012430043409700708906770353898664153970727451210733582779023220503766517852696725760558451090720033140088166547376217586286180168541802753634730265268532524936542248234128322682463759245066537338926247495076294383293912736608037732436003113786469614118477986392278670733521411400834342131336865569235512653004395358696450328759688754126668428943004247370643877632232413403720973917787755089742615719177109244962194766041888776424000202704341583748483582823013917443238130030684822922432736727486863714526983119390803467149135491204569643206440348398361215440252292332658069588084022048273051276372400312391500179952592511743400440788087030473402389183419298944258836924396286636728440814766993205460669831662447681079633446260846065817323815097964439652044209737833276196373365164281426010820999710517580156442002946111376576146709678350150567729205822127754286257830264157897452601344135355663110427483423298275360863948395966181859014597382583851797833568192320713082417505941371371960286153150008151832479277546466491278411027982792566807461221186479994546221688255885399106556562503276378846103171575290381735939552263958623695485166484186965451971535964721084087659784657940066877292236148640825149684512625386285523542244126373327345769769100081533904280084117522761424705960288228494889691057119479297117397455769571232469836933610516029970588704555679994846872590868210499253056897861272035022765362408571715751049730435576245603999321813910212203239454761758237287437581819239488397079196125129949363357180581161016405867155869787144576569911985505344499179974815498527890903054898784737881299428811626921235042469484536794137985449094636195360249266952166696199079187134858590766645265058738517413140307963691776571039915831576275203256698833800287574537317622311671515489918064239723083836891854439841230791498954235677750109839612281311797778127920667935380032076277798118030182567044657985973852238303749101334210416834073207846716237280467690185138663365772588345727907884897322619394018521049575202834721082702647570753006539533456841467957888062072342325033672782553924371415684437002217305479713517970095101834998968515581246995316898240292704033941466005929470072335977337336948947317004399300362566196542747881685622562210472106362200281431817570200292815189276689536628338201141615407654095984758430517698336208654448125727049277673673283671561796552970009400096974698441548045947853988817851479091216036825490099893640641459306215386408379482878569661881455525553239212954737961478652674837001235410085698688552107626163813849118831823297022396774839176380614772898451928203985533521752334384814290651664869404554046699686305926121362064978728144265454917334936603758554817943116075242705427680675131946738367123663796144184653405976847113142474327678806759336026045796442519123414208065407994940502579771315874655868019093933364007061084223268288631671159202362275705173194853249867013970591587571731604085256148954996797991724329372573970643500696195737110054362078523131776879320965436986654094477341048707685838140371044728627187420012234395374625594641856502202762480459223574422045296445029458252096198030700275400777535932799383174459279785273429054563590088307688063220342390710611300908159585931642982718854959391883540236671012015482398663645945707131179665184875721124823085209569397160651180408513542157039926935417416777319834362942293762892948480363261996804632691565565073080694058585071116164914086574604932743748759721456077415159068539483597379430495929104694699034171232302956801496267254982001468628804808808446027045625172549130948309606254324038129887072797567510308835409138095146790564296066404277101206110363485727538477264471749078897873277414158501026651126677272969532108485727239486167215271908944956102297824939068695089931811335091680791125049995401987716021996113769353832190326153109105790359734310175814404131835889309511511651463869683723143720653319070863987983312193325434110458783073030109643360915984715918697251203350169884941979741857704894943446807195924188423168555088003541242853524624698343564434209789518144344859416149865726462479620089833861089015503282264467259460122479650387280315453739723558685017020826459463788301441156232038558075546474736360108920586127654987630401457815366122557589955151944144294373800593145633737114306557882440429987768456257390229055350535604477595752021715946167373216519037307971871579182414099016814676968257193893492790529471118759973553171792470120999309235331635537039457979084219938486707944034647097259763946485762960725202281423451235490110194982932718942452265177600767962246669329918136961797861907198185297814690835491742705226499596261923729072895392797275815451627639555169562199377241235262873488927466720182919617027543254344413406080724613032999984137807086172188412728074074929285377366645605382964458091273204374586131741982326641034437438268739332316731649763486482688036961894608480234608467158687461573595596414036216824461918293389966278746753912366007847602211403527455071251928389612335094703968103543434598719655696432175345167850857923318999149561125774645748825168907636675329673364916482065564169693480750935032918003048569879211211100262607386339164772922357150202669103482915428596361009721886970475846236734568248555084680867008248260561718446679165129108956877560865641006824931795090166743843591646872714703153783344387794389971934795759462445130262398716006559328700464282443274686841270345864646829010005996957433391429171432995561994657715544696931135626443532564902491333093672873853105830033384567910833146894526698741994760474045675656188881543388618160679189403514021017987335544973229083863953261103732574047962716677018734007902685308768459449100962690340467301925256395193823543368271281081706222730288434503770754671644343623684461369355207472089422639813773677522607636603950317504439549529492729345208200362177261200255889217930878614617723313002835756579985264222130728900995111023123089393517905822448270955362136729484953439680387091394016604182965765822811868095793758763299823793328558015726056802001116503884231201394711442039655555651034234518762605269171451590547797849107073730961490587866820861714773905833069378879671249114657194970907253922551789247853883476419622353510259714001728829277314350756089783670420073811212828369580014215941722584839766397750546324806032654228245143718584802767379693636233787275619081625830925453531654947336961805554934793142218154796252303774260388283268139103757197393693917414631801087578332299404186552476294339338231502831067994057323386775405344670696772180649864040984202885956611148546091932837280286114846653655434302706483662603587383925797495926830188127691500397411633973708874299291005466253344160886148775837657621367168627841061822226680095705831019798859003173013089566397733370120259632100193401357755412152750373487307463690522058030811382071607914744341310482082660853538700447523658900750548520523251434606749088286143958453185999134838192088105341160704845747002851192392396600049212083579706947703654411196526658421122954297983238396368083538814886696180585046290217946800670614584150761142660502184843899659150725209685499854565215159391846063290213213273087558087158772815811582769853510212852438146300379282207679392515077659484845793220596247214950232755719478874100493811132958543308394619063990355419157297017937049220988333853399893606473240295951702901651999875232766480522322043758220935251873957006502850790665763962956748329797191937853014299917981180329645302947403401912466518463875825442348097837685890482608122812172370169133544754092291448962563681928557786289712137078905313575566574501330370740203328565960772126071089437157230849915258346602928626522978531339387651603721472527754704965525449602739552760656069679902121596449285624476035072085206630954670928881882977325465642015845707459720712345840233410932277533968046223638375910500773240538687601579054815024471237054270381860845714884442233303640013813513683820861752370135318579056863919126845099347218248595565042605277832910330925100924637116230407707142163869066664888271328986496092624227273777256639000054004016228002587343911140672024108601617787729019642131448338717112556515397438687498862507334300725608521921786740049458608161759000777585673588702953326532252158420545695236018180027881260393391299346004916147423091232443973061464589104657113573583535861457729521134614107645503552367717167486025218650221191575830805083962901601499535375383965512453648447628042203593033783995641728459701401446473900149432430495901415358505242967243083363658485261953621946319707935386621458237996667952256066858534225401589907495610302527778156590911523565680410822443254002142934022795762470035443424907412057901951085311778664452198761981740870281865949774296169206007092107362151163427278556701171841607479680519846936799648123795408835517014833116528927840668202488943116544182456112487325406704390971185149409035951822326785173127839098488201449393812753129404576181071436365870310438359388157815398910759535755604948159021078257504627698285609681389650815883369767975205751418875557725335284823645489791225033855568144361157576313419261807260541950200189837352254830102625169605111699306029264859734320214039054066091378964200114201742818049839497006777297237446023524430903566734105037508904733675379858929086985777536078290827283451727376401518327609717633782499814812218477104422200946664562000509513548337501392462726010431212153507977951990048328613079468254699187949065321493510307677957639135729924413299660714468191135992905749567611216944881246841650100109575866500360789086844789767003355817539292958801662314672977505601925925112670916386829913295804508032822079116514421698807004130129123869502445638233387801315990470489216670435826763931743745633232552214795200727226957750694771658410707327192703841560398509410088638912489104617263050612592821542396626242501311171152054883638503476068601405829704621351404456762951308160462023851189035394371026865030807709460233689076427177942724902075806128150891109789149612711982745023789451401995100727100775368559725876348768420397169153865843660719181470367901206628426619499326539686016892469317713014219738374219599782311793694905993153298714812517189437453538374632291382728951303259618574834195652786685159818961060784574223964294530504807559690823340352078692595774189100901565646583986623159918243476738456491835606790630849629925033325657832766540507620075881689425225581645042294131057270827485050872713560258440524001571155371775131608465269831741941550140491400087447607876591183726336712038998295109797782530775465539559359449702178871381401542406232018147769205019860004526140673624947323939477676167092841712263395794408689583147144640475173576772193706077276430502323883678147438888320879436574077963101828946611250334073153963442266366434123169491087576115507114359116265547406348309541976613710231711346909619718850988352788569344106579184395788915103412368782961868052470132964118555831149520230744772018356151353917121918996263767567837081211620997978431519936209690960502502570006103783172143446812388778549617426617923896962824129859346629296666668801380602502666183118565919282118128845373640013440528035840759545190862576318694550655259526351378984659396164554373602614766695156588054338976156095763266229161990693366695021344827744648535346846538165463287437765555794042948584890386135164663778982030554181763262726301695760431420035047807526977155204965831859832113413960262988245234620701068260793671423287378412502043693534925691085014918809871820027320929493266087085690257529224797291287096582106306049131425254937276602709999561254941516964408109725568806420112421092378616722966170831358544090207229442050904988601913757337292368681829806192455014711001756639023232124807859876005490191893032164422873533939172953003698212079664638545556821628383303980700903753663752338446558515761749572412525731166390031077627780136693152906617784693656550288347902895238024743909603590591467340970273219801535526770956437999660646035333390280875614820487536146444855174559979279994619499677769063567766336803751927734889970912582301960984403021275073969978168964825047381899484204428283301609238645260996644398185481538729276879473740145183477735520833643961750464244623962440408905275750893255917062819350856309148205208983364983754967457124136352292863853005201858750665227067290900904753582375108129460219702158967689178348363705635501919605539099295479789994957340592916452263997785647105412866584028196928067306226946492207230083996187644526970720656305422788075658763320611410869660642980885394956188200265291166876730634816811719040473990129092176977798079045458557167122989043659493319191138905664824387207203240711085174468536940786542888511303654056905938849523833221872105893552368452812762763636163191189907755455292539650212028560913858391418295093465503450538409624652597849928659718176300841163588174657918288114678085092922067545012984006004037694717951456372669272185781291842241566367434580566459675408653713350367975881310932422207449979396657743369328278122114991955161655430176587846000046897185830394203624708237648058489861713860014806091242627379864485737558965345778925373749338743811262567769354365729348197716618189008134214690104529729940506044560465831973359020913149990772500205403971861291940370573354468549628696750667735982289583238142723003908213894947527616379359764396788399098087909083759450299998751567883839965582112392218712594604545293935633627526589370258214807068904900517161780643055052143711411705011213086768032227629832984165768585291377044679578386506239763049629208961686421135207841096763911429356714493655797337814829585518731766509882194103758738609537887689861507314881028921759156213814382414986544240152494278269488213991472456367920532856031704593942422097540026684617237600976752419959127552279344537316925247597332247966329866189344081591119675217491108965550493268046105407739701990873769344070709162631939111020724393916853402219412259502452501852863205734457534397591949771682227859007439077920957327708626347034815834501640454054006329528389808280219310500986404466461567508975577504141873210939124407795977411622597703524442134672900013791245498491723729863360685326186897321686861354504813361293507142836035400999821634071003713825828045491862489080964029458669498873186879065916717585547916043899080794804795702398767446427016432495566353377769551252782502155527155573061328644333503087581082937471178920182305030096298209686808067585079740886956101700430585009627411044617616099414403417434593498904482841208118733376237807177463454872335157442088460661638593119304541873574691214822346752532393633298578320556077185117173922071987565015032524589374261025316558335660817716480557628577458237315271825660472193251735456276538122234662077154528963740677241482559645377540633142618007570177230285465708387259888761778535595965251933827048089956911172217178811974018170931879030573161959807495196033505748397224436072763547973509594281998004287667707629047743283339522395890766522450408239904038570604434767722652484884472733020929757615218895964621485439940331411067808204579528105421877181290624368833923960240128017891049084366068777676476596656322317951687863291277827572353844872941578125575026660618896042275714416579287491284780959077577549303008349383129776245985623971416623327837984503562727992579749043422952675434923608219580130749074393347767803205189627024359815650023933218368503685939192136486737884026284812417476384712744248641241311613980468909254502072377999747214465731227554309957920933425289161242083707551518523296812592827358313759506369226086871800545524821224143698332187822854445975636137680299229438268081790303768762160992165023589718152934385794022319830152589582222203273945597920865218836515923122618040041017383183421574243809666462244950584393005295126560216608271544382565712117570726038487551868364631235565785488245966775467028254554497986485383910774171663605894600333104904643139378267696798965782363933083836125891563082835780419421557688899885793476141310822680879300510347070914373202887179781631383934617895991116891660163523431017343358102093667480195215119659485977193048398688308853252843079342146454139520273273788736118156681924922751507633786241429242268219217641262165302156948968532034790483696487737098058782984180131920275628403567487873593658687986402225401852433817545554428132138707142627888104869532767195906035067965286776211565275499386434175100260052148364554349937633416876739362530722262336780829178761957732324450807969567141479110039500266253827958764219021435596232043133518166849554973458573916888570549361526082733695850651040042918033775467190247986833338239528833686129807417791627402524570074563755386185266152892546295075255297223408407296622486885705285067403057072392669429887399241615929682945093254851748958443875173155955047931974089829848408535825502307136359963357358232717896303371528985220359498278037914282380646251028483681361347590670730416176529840318217010736127433290353720990007507624445826145409752671746456928149510546264643273891945664489987445622928870635323114796957937184683018788719764419112461035114295903077554258089695483656107097778865734943270801973365828024910340999172825890232729079338545674392928836179529066113256422583123700647382828564375229444388691338340772162094160271067658944308647799637692593450467158642694945675505291606346826061323362850052982414557711923233792099727933712109794995616868947828937660974965667408013723679432084807963437138616712016267613444935152814126566361266054289196910519794198453130396867043030708636636307610717643171771572842919728965605723929884650346433068809863961221580312724413370179937644507918891072492443603881219964200745325288153172413652345004030811137426083645560948043754851238546419956190686089287648379125943507572591181653578269696800779732133547679168566561774603552367304542225671437572368976484764789264830694532388112189170927546862970942513365787619293952155138827409793904498188423965327391693540691364049990858281485901397731896369097773120514414460629688598289565927669814135686803546776467528095475007366926685907802206213222089464169911608238955253888390265359580910274986630159462764248845895322454631671866588865233826311593327201523600626389835000586112310299483557931533070851600226645179783560885850011616501024062886211151169373764783055403445687734968076022194947314844541817891088979339251369477975984029564436534623181859957851063353903580571317961467937060964298419697334248850445945677140559847826119055448411761675725437010865893739934184807127415834443465994694720671802645266163317801643769762920921939953634305976134017923292910865467315850410290826578537209213681282932930404893097474474610831525488206782786550060902478781592230828004257939142637955479834546964954495165169965832656843750761469371191502037638677398850371970729336063647326797221445796365660073523824192705218091407037516979069369109753308738647151187498461139096874526221503760183807019747018439796720820001397494227019002011912602853812373167913088134915925698807001970518698457272187683235649615892118914766132347215656901364497075190988691393632310034974604093121493689059969781375132052938837260085791249903244103821551755930964474241154309209740463653331451266238237447053300484772805278008262262765487241054473124599874711135203237908614306804096105344387379714281862167464004924939692506600011784904800495099376405397326174083069182724530484891924173716538391894438648433280973835652890680335389614076491419351277181343309910324348676312699749307363206372406003897952807321312286852300127606356286405471628148209128206436100517745434354940919433637709747879508740296048703488775852730274125722229306378932111213832112516776213830466850429917069906656354830242784423604627165231965257831824500104800674153328703270815463546927045696411814434912940003530201863122506120247796575008199943487648217751864737088760463478070456912647945650363934617553660429489195386995282559827412364772168872471562712343870676258398324751272416055456717012460450209959679401266343586184319053343782601420792319225184436625669729925285007953772200594019441674385846416118080320621854321249246022154287407330361743920693736967008866263441347400288750321929005412355539283090825099073915505842636803205895090977969640928650795149440158473101137176963628752983057058954071008912138492171341982725939899638808456226735722078713880119586178095125954509908591297695796087879926749815065316543818294887336449676003584804444554407101063103473008490406667615975219257020278233147281447233860681993124901165998105390123045678852489631703009633903388296625179203584256087390385737503600150966969554573893160646556978497377240444022007208924469505893076261009058386828283748788612082389404731200500304888623814155584990676129047824461151855812128500648665144991343382350445275429109783984554212413933762139002466872794673968705087475617962420744413263033890610964874062383518626407358333756934887597829594902698225684809919512263850310021221967915239460968266901890888297882929441526095112899238716962277875177719185992162638204712625131691425024340408609726455168111556037982873858818326398872533525689184929788658873791269587200018791351146005313388521889347204824246596236148366729268486125458907199103457546663174643137022615429038502736915387257645148940164548850427554873727791239498425057861529157244146254952639626375282508109431611730992288923067463113463211412365214524081867497123382658107758923900770892387860195481563287704123232757016319174130074278707818226172402742187714362602090860504018221449461284896959377119443115676667898277436468609730024268570264980051043723211604255396997324344066387219716243271639106550341811110825703632453944781543495117820302820438574794614392772234414417981969166380389825571907400763643607427549596845237498689515732702586107863000919974492761415404146414212526931677151915757083027176702689829599283784921090014725424840564303160540087799278190581222407653185462532220867870853783604506427281435522746508596916080763740286895706483408205256421530338747680974210589039937611558303134520265303705802078864275447276842456329856462375876064168846604298600718763169338062741427133076012745731482319922551376038880050175664256609249758472011080301344098525685729353540228769120398149603252145504373045583615209192697280185829744896818766048500317761351217224539384884185119833514073236460047614003474884658783019596502708362124376561827941102609260037844581491831079052690691753971398724048411662238794161642347967118739968075397326733911227508397507282493295789335308641576991683990863319393745049700930746253092490729726105825276868370953012443042963411933367986950197207262618758382452559112695336227323404399634915587539437726948881321056631758130798555755769535958597504760341228610264945226214399947595970168245152299859778461610165718525751115292289098030395611296856760449631025188086946879488877873826654076441228639398933076454334489712768289914328384980353463092398109216801485927289346120704391647869813732853975710270853667421237745480562911350855070259148011419216819386272185523064033023789351371041591855660356004215206053151277817593910537017332795062756109008437700213223782573337070689848435888299247055066741068054568645844720169853349937541397784691961963189390023010154925820876905392828387849898648483521420597511549310416989112128668668106595015803073576552859580479017393619607414111763754828722089551675062192108036157339873404337030993802530196223166428995108967623994891261748040568818063017393828910794467505629510109537401282948296798510853018429422090021488730755072443349835848093322144450252816604051827477934563134080409648266205292322606766397770619994474792366703174614731177296043365405796299369586289420143525544930413469358152488780020545947203064184941827494170399345476643528318516269823061600996846788759350820233774737766577712788294007830660368829693687296810397117907216057247817667696937302555045403613732488556168675488923563801311594720719799174533744137995058594203852801207371296485826071482991887221910026297493714517431295650922231086614927367892152054987752742098208219276694217059053057011012464709937450693872125908218102587272354222034789630988218408773276956286793830787836860373595852288868148629641397636035156818607543485250343512298497412901698503230764906256015864871502405263612239603134840302707950335444687938802788831729987576525423150778658964133016658865220280896987745648203125381512569991851495893127118865162004599152473074407283140496311070262909429956961821203599232643715504121827051314010539733194209789549984565956536358161973313381282254995117037484053647099501980342191267539970824204298152992362513014570533297480085550304100030326954691063051102194689826226373798364274904909177039755874260202003070477381205911232950122872285925153525929279829255484977172399663483866923747377375286815300356044166237852338481670361147533986670193157451769899996145347853960962787654086959806643352095324065378259870158445718300924897385738139258071835987778621131573276190173232306248746657789802213507500876878850287390021144258751578769275005491526775789419222361313424396687882144882085509693323060944762737008991195326097536511429568874359895878244946792317298249650595945021099482767581267952172551811425326812668631906089179406576707608977887466744758866005064307813928632337185222356068431412052525291033969027725623168117701768662750616935902139698234440306268980943508330160470669792708233883749702204953794483370767290723526410264564161643664148038566340046132918328962390288086072084640561989578611251733252185620492768588812042487563167729004820180671271667423448634847598645373052886097571603516953356596210766536454674158761697365543136955537413964102216965615053259915318545053227951149850023342334248691252122123946735013857202859945414280862484032612860577904055696204420179424488476227656785313446551110808020991222887452470506190787065093365477884078417242299206400370881976715115242573896078853247651465738805507724953507205093509980367448421601140748260168341746242465790391872168176182731203467327088163436681861344500871596073911407210822398464292292169814093162369084763818225545711308700569603243124606739624679822270017750468943528835424447615298916052552522889076608206242350362519497994416302796257587116995372771488291530096144153727416762348624226337024507284308317699019535228409083636143553856501286626183091599590261302979825757684608456575568299481502067763059909138406425413966882620144652471405490947231433572742346686289362504772851072746474046251082622869411605474287059262036935073769349326890857601543117669861316869125490780060009896630238822550753867909932464103305095139015017978564644364902133484513613265401117442636817017345753701466784062630035363248521556744052036117436784318723939394156112881679591548231473370259390243240950573294584419174119987645821890729227644063914651424763895749801259698437691796170691689917096982627173890452999634468035543763094960114012525230567117192840020937902201309269114343236544475944752571204320628547047208486599012497100979210922898317018432270762938153175332860311048908238849486944456546558217595052811003806973897695678906532757773649664126469578763528892396702466349190203522929487742754738474435827626815583268251398910400388355128519124549121582610290718766894054255881697450695085035827509445927490323571567512190258545916458100866302216152620558823573175452732484725393481653706116199769386172840497162297278827605830976540060827785799409287296072226138181537111560394104525274433839334177635053066960174931147960722053192110432172494872007462605996130844663241707426595311930545779036076092168943431308688017038021740160134228178199072188077012086424562109765960108676712488006460570257610775722471529627560240710892862945393338525879774009484586393141221621093969597858408239777225545996158898149072965078874085164541331328559361731214120238909730342863182357117421283171424742496416970434241603841477040503729455952383924840656156684055884661278328823845337251841995456369273533775040314226870587095745230588109441303278531612155941472273087536245468628909763282291063783574477991231756298339667521699647883502288283508419617061660206126476935735106484518197720046221833589307872183808121409278369627321740024600915582594097709025664330001999264054094649667502467089555160333615788181830843986567098629424811832210160165431860633362024673234659915385698672024633454092038981918009505973165578887347406048273740843584339533199329159964646649146969577516321366905262091760483766522277685988316939221491014633019095578513984145442561026024756341325016967499803922165940863623248751448392439432417101729999887630264600089275257221067359488721183513980757626944735012282434091761930347716582888350766997315173984811539773909371868685217310499337814906477368643334141958789950066064937571219579848769120626071216702317740510843791190507281659730696809834816633015380702139133364587352747789551782362158429549709050914353684051344467964068784843892556801908897387854402297817092485565544766099238880282027637896322541578566540552887066130821615642442042531130886328793754095068177202891931469756385575381015056082172962882716524398940949893545567346680796042184366111792468852492074081151789490340829294305909979044335807620614333658265479914166829846533931406746187823838389049571996788226944623076257159177260648202795341094395893370622942247277106088186680179731260306851792121409004078126811510390454742610424202744387452502325449363420209122357509695095162127773324855982671785029554022101444538652688245375133868283266520891473300275388298332964474932018904687205364136410981844676575243203811326730276616542482362566845430730002549723580817253109148919587897315781435082240983206445069661081866282804169034764320342309974209377599821630899969940132009962056078677589064342179470468201004008324348142455935932729591703433026261394669367925296493658828012200932933905856628768504963730484466905562929472549904308885596136857812376865878496744542700802371032759023319874194494437594094824927726998952567698140774010728891936081127562801004565205068550941042553082304827541294892370625873428796470535709369607690866543660848409055328068801207545944934679150511195680028482072733062541358827691648797484333177447671146961499376343880635487790754895166379452140954661965260153886985206083008778888834904954163212969660944847457783833041935162522236784217634175521357223955637502512927486518583873782868219496662827949206454545083073526433762427603332916297242809894827937953737326832030400315277567392457405983633634482667169189525974840443881694427470524421655396052733143546576887181257523132138890253014073193350853364077215912538256277447049612505430011265009613325483907469843647406582995622308945372532541542208268228015752758363002280109180422913495154461224374077655296595005932709304540350439865776652800088488177461135233403467560819503632939585916486382896361334735725140466339687905674786586637344005245241954478117968320417740241913284730699762013476689060095799118039003002347415234444848547020380268643896448499512960107024446249610078803422715355116177010054289900001414097052432691620414218159256633686852454596039788458266207456936655805284825398870953914196727682817106176666145847964674794267390602092919760541364918126029940767894828306993236803084889961912728478101596395344744711611779098544314625815433414935580341280661569038029240733069333461959187735186226161303829767566843753564620811259605218112959499377624962103200694233359927890837984152515527492657505638458585230313240014708489899695332895809428048384583313660118393912342299746299835453245698562566676282931361524158596780544614927391000142273015137017247197941837328794417827002110679309263808774002245427034499585542238710817583932914112017923722021301859922851293459227354049187613325100193088907605554789849660022553694512588181623459071196775011763077702968981120032572749196286970919583262212114355071354523403437238636588823564432464880239724179864468178377256415192721274903161283257524587912470919544895323704522361718370866908024276989557279549401488684146132932098171958059648052277099014366330579243541321073728008008086542860504217573617289234984812587868479576989884560547094951039282140068481799902871639938526991501524110144267126498786384131129916706901464408893801871852451962791972125047102509182236741405781139453582096241786517401746821536962528512270886737337020818316989243319273729540056822802010824506871981334368424179865192431652296037788904614254640506629640734972998135963150959026797350468004320241067915401183241679855068421877780279908970824334074732896698237799232608645461666357580390631382241740425142302336087019376546931662389819213159125485027687061838161951534713882358262581571709421479606711288396861225036664305347204958439388339180021174217211778458036161875265947897636605297040376421722922723847184131342024399896163361342807612497500051724631967609083073893329618602784623693156014182088798421068660731904070115610006727660648292144311021251645586650171763293909035329064479588537207997374575350207893870711957322242127017136187143612259323300388204794900431606445235890451763027391333016720378484916179411237191920696740380796363368171226471973544721899605543888748509689213295726007267051788055797127526527882654016404884336685761674392507161777245474011774827491054020567911971276845432584681883381072265970568830865153888511876372088410633933220619860588099549889401768664647572061289581432861861624884965570849678396906706280080069406815506483213908194876241126022351898910374955986338357864084478556584228016964301463657910827150049090493410712128760155289064533735818799556500582506520029855774061430292419744730081081973787574715529197464327134116361600593468669640766246362214690148399717477874159232301848007325952698781495400380440576977530303318516446078717025448255225202141867304423903495312406594947836383700337876072489753752024492094273950514489861226624781619131308317662611716870574521073916856259111728625669653026352726000880809211216016263284322152582508534936749033475396308157643679152594037241696267841654510171765462702884403702561695668339175614326526102395217425939818417884751788324355668400726407783096275136548564211391658230647205860630832688581818994343914008671272980259154505879250034211143705078166070208309938488790434320562148652285769389528026268302062338427392582905834499648966019433723097769299439318009317162360678022089376247528704716415466004284420214203625984611587262964570079388332147295362316049580392785795344494678540065776078601005114038496883110061496486523234631835615191840883350467186946007705219599190508203454156249426770312168060978124047769932969702512402813670051662994202542410809550564066075122170564685079944785958259060460521478807049464551991400052700800899444581749593630404717390154840191500849651595149680004978931165506083679438169111375537215104732515086402621557789467315334549064126924492048611243891253560388372222010027710033074595792209600599297349418603716089854802448316050342745885817495777084742349025752562261700602869835887979599550984761203021425459739222213914409892648640345315023789470669214690289071567559030996926799891910198589143609713267394450882058398447279597495891585759028958554068114226303725092094059147870191865705899346785777316312167669810800736215663377089662983950428130211680696231099031137641027894622947914670547100428818303864408920632707276421846324709416604679628113819217934784935485834749924442433706017101100558025478253502205627151691311507564613136579753049992774121922857320561538379874085384470876846249946583186802210306911365512172898818750200088322080314141263885519971185574014320999053168432209646627025694452128052540475168012851084905573030399978541511560327297511035649026417028764587320166668587597769153082086423042402525572468688923248300538976588530318753728356161609822578369736305618459380028019309830231502248730275719858284619069584648268527703592931703650182455469953177064757496793605956892552664605650987459642838527814150102827582830731114415456946980633261320532072015610179298113785622418205858264611658546369795960637760846043126068813480326267300005208215375290051638801631530649055683641892090572537212266803267404962276704472466534768714638305344227498445405705232201512011027783170359160642949285162634095768211471375211597372542457669227703730016075873421200957784807411789806920914447042539486675309739216798796721380627474105666332168569274632683662085663556541241652509605290752467467173358618890346729810859911928637095753076651698415305911928723375213592700502391839307314658951334549604223409210958926381981416402949041906926979845925155546355914738233900615357940058844452745482136695707867164972829098507029713028504498117246480544454589694080401131211443816159498428085706624786999974854729876074218646113285783204798293421095964119680679011659031985595029766407825260653531933906025701531894717051904065898472668172587286971037921492154488527587360589049712598512650112798399981250254622268100812226400165640669033549118442211237484637618948907651369912493676418905520123935020376983841444639923303378711742446107197348474059310320950259011553879297177955498201541606883800544820829022855470680039396303859143915754420284230391503270850337293734278095406565116328510412573504101336297213626110461224414389626305600403843619327839190704298724569826498547675337774423004588013391907247851051445532309282511561231759999447021266381601874817052127862753802747181414504761018534909994724731895580445616189363663390280643509345400532480342405983329128740356833142178415036157671052217422953999142637707701465544370711848736383031768328753456564780881975310938706219690399238956184228237377635528956778571998426246631776739518607779914910135693581224106624011331182141479785618323188267911028861043767835484097264774809448138885754706064806125900850461575821597137643321424187757895106255001864035330718122926406627711521646728759989074010868174199198137997701604743848905573242586523282547699262879179802661530084615938359208516603526369212966187208048979428274903614481529456802480629352848603111438425297908405419587047707966658122991375155056238295994985884191904909435250524906300604594141237517451570756980647116903744521719596554001441404296767256472881065881685910303168713515541597936008637446972576045490116364327809869456763700386533840836127920830539324949627073837081832952300066300184629105573649339802827512623635639028402894271388667898576291328462724876777121137769716910347179527061043527917966925629308923103220350507829431684405911504485516886091622522352025187460242174436364269572010499283221335417244445359918420276093681520736826757785035845596274359824497380282603779288736433802032262167635666576207879303369445686480525833466874706893422371485062388982102341219497188458192575743271415242999328672732231657129924565622581566834057307021080462824506438548484154862245643728969461657147229994671506709312194919220995508549591376613032728248797923620424335283971577234004988913424556458753725556508227354860294579607153049003190732120968023031257970686486203734330786026788711823118416957052766277689150679917999788069690729755040040511087319327014469902799140083644014461323936793067724065660479545285865583159070878029942051082704054096968179740431858653864252540849602989058526308492723894120563464154263005023232679876935967634537457014686444330741278165560216445804266292452806940586057662365584763537359191636040818540478235608585070564491757354482626632358615953945249681241258810096374904356020783703912880572109426551001500698711471420791518342823153307618083654611781522084547291586838745696042385452616798480930323626164542421487956588814970073780540440727690966812304693262343967720887463808924186377178501087295967243853536356685372438043681046048710322446071875504893964576290759498906251615690844610911205867149183232332916151713516296589947341373837985873401365999790020477695495306028362515508990485615028611304011619581331816267809181905616648064089608129771250249616641424720522236691004400902017811942758495619967613934230484887702993221508482008378790466245509099532720134659553935060978008181021674325944968862253134603452428249651129410990036635234558050022975037403144272721391898291609402118350748441425340422894627447328915300074312876154574269635222790774315016348015814263244565118041461917594870980493663110939375538569695846149193728101689590275365895637360842772497902817825786450973297225499492194005777540949726553382196541168357459115030898214147834641797432282585282893358033320350907567670659296195632891888323649899381635713313377509911799965116550060776427763558489459354058238402584396017253065153025238292358293389586800338409786656926335932384893247513643408585177140469367862971372373056579844523734352223869877205109425029294413729835967280409445823981624160163033857315492928674517417210432033867581973939954931837889086323255516778417156967383026253336830658287750854816068041663255764691013824540500414121795546288885511223505003562815951720621925217190564761604462813433884895736939198166070990883975197844335561047722866595387127648149411328613776738017366055170682145428495230732166465063579947202050591478929783949836699152958768202327871951699853954516661359747054884676945544598488847318385945891342362981396638613825662157869576354921808001484540114700860390296858735176424013593866724244281999085690275463515574518512801312661646244133352121284804965877350689347447798535590140267048974902489454671389248663694005762128822536355618954247445844153795597308990395056723888638923424987389976675263860985613597790542028884101502588297139082973643713734610303674733323252730448043348079645620543898464633785518615346746140684801298459451923408654856422134923547257061284246633039444569685380555558300681733490509762559209552857354862737720749242276369521820505107159905179764906113015287246100560097666409892832878131981814468570577452208617645210328888725358532883453411867332882774137697969041809113825827907870004890240970853108016056163484766413028571248872519955130644902900009951813544072486783299997649845879298271389483797441427407089293084025297422704703174182683402315445852676111525041318172297280724870094881010054656966135102500340123650873030990847106372493932734901377950146153194531826091838478424231458345468919172938092703155597003891956783710768747313188344401955722005413838819776431171422145911913180922585422588248057405515787323479611690095547926499697657590865062920397031461104580603240772791297664090424115689339972552733257436754454433552875099487424773031943150745193928489187012707504756793927815042385187877518365475088840710229428824970426259800602337064269618847262445268761034012686477866914214000690956065531597355467969342110067593128230037449947663277467229242225355998209945692177965170280958669425048222908552417130548455330924537761455557407785245138633373975003987209118098275571036998503383803357981687669054326777698367811886349500859257748526115096866524442369640799482571609154381287860254916016319990388938141087138225936544547825730510676426023682195473973248530079204463788512464216578879110131509727467407660142426859159782633233187728535902787010772278362093782671657215001409265796255586364509931519775717749715803403243555872828704630478635853151999508241709229394439154756181800393599430259754091518392463683679915282588175601689698995164288567581593733835140252305225892055728617832001072400140545342049386252503715672578023212001650357956856709173494055871627231742518359152481667288223342919586303396666409029521757429563628067498580704491967470085083250264216395151940371069905158726736904005559890032859432527101100540248204963330465513041705495303081713674568967981522328236561740577876639621924498980951988151690247126078865976564853213549195733460709793814229579127804271319225476426962896396718890883593618030058543910259526136731772196314416774920990046906754745726997870319503798248489801478449651581985137369131229051915927069300408553769879482758804694473451719626430368474477030568612260974801656998482933707144147196093527738016247724545232985049238099135054631607960204396433800764821529391657901477099358039879449058372975776513565971996150068725095696862139313907786819630017364317125327465586623241437430727020960257326713128051829825331261128577178243612304432794636311115804063128734508178541232526907821720774783226728757973183888438005999199571263650374261377722386147146816262656194866933872244412229201461128150672757061330649558211485003725099378508532257854073859878849871731871732849805837646977855335753400140659072776337980409970012256501558821904152450851539987626773451908232986742207836892397004827790238964198827809965574776021115612741489464763400958895661956757136604075834353253750700733487727517600666917540464562845764998191616396134843759407548289077016079441560696402974528753558602522692213815854417833599831825375840862516124338350527465996036013036956992225015738393735292316742843343780635509556126843744565076194231051509465753799501246667602394972782875948642382918383117138396824538553936378755567591577324055367939150583154353790539087219121998257535664381183536013379568692356862624971065471830532100874542479195081647195184818292243157408638416291278764170761784025914563963629126027044748901743032361424282573235568225720447991876869196280001144047783983310971815928951954976367884696107863060563775580560590958863731309599078889609026299850424636239657980440357178930271001342196309860622539891315582150005332574530747018689231440341137775751579133204912886577117516495829900612341527857709174081069004828333931694667520212408930498892421033363301873480991178358825926342573586369236778319302498470475067632564687010702060612959575689083595885809486710821724828375903204356109413202552712324864162398789118975901643510244383746306568265970373132115676459050063789738700670905918923944369826860749885607163031178470721360057193050982778784294852177521726978728992997279013415549792246903396090892344701752307800835763393483676168065023407410706408943803649608180305905270896344547443710755906211680624945218464238993563596768632587279651484017764770253679818644051939184670223815724325601012847009185649379015853044948130605032133647371016174771616758379362193354896137574726475420771607835970607379112803688676719154926304347757188189511036196178370843478820349846215356107036770261252613305078668418521450542237672806031635245362261420932688179909925100213568303175764840166876370207268669728232584861442001892064160069584510659972199047051577263745739564850148200887824172843210278445953480541418135166875163263712382785817943784581054179831092419356447981419777190592324351362819796673760940420969318708165092050485602856207980073402766876936837046957245765261469077749137557096481805376356381461682104681235301768802791498247507366626972303959632339792078234225785784842528564142888045793118455625768685959085526182028667889199513228083489422259517394996913734849945753088264020679539744024960942835437813689342971279860583825341775701244946450397119911744533714575293985097548645350559215844142323719784295155621075719458139363820693657286768103567270869399060847259895077877553202828834994825276973349859761076508376255472814582888302151537124876807560723275350787999275894069711450397075026443827637278297926405197121669112386972618091939295211767859734148247461458017881841289959806728604081675375387988778118198518923712887244466491346249857559938326985997916490179229312382294357116737111372918606540701795938372985821516121677037651460117227709668063616935722305790911324251373925998221619292039101512020341675100651582955891545227666006524719299615256115591331237934201109550800018851616986086264071696735104613155244055517919251195161416674584262264805909224633452271200333989328346145476609928037422192204106261680934487136368950760738366333118893750304963772418426730131373153057860070510908981823511851114199759019727180368048831782804897633713106548754425910097743922102249326465814505574204852436902219241418148799304234369382267563445445782154960467546599077744852338814237618609887379587367727654456154965757112308914834547296627545430919167537596899161646610582189119562235638193557466828239785232367043589401816880668052870105585157066199626967432926231535420496415277733092158817206357269618122970986221355413097286854698233030762075703149200048934023511718531491727260316602094495169534591890120294165872361443481770197074954283338822882100672690749017150204860134001687702953744631652079657577056563133735544236517483551966202909287112266769380064510421476318071360018569241636511324718549864280498404095732160229880818510940703602785617794180496156636325568396393860735408244963201155464794831503151466898601860052550054930146157524505118553944096660875960339165053194121570615025071444497695931665130722870644020061082177084115866013968852017214924522405623297991424365508498361113121056747875491582745176143928990414829831803081974979557024916924339084373688465828247634917195861185028322903799718173686496182260222077416863514373003369446545863928153407095824359882402820489672061196220741258151510000047720266386645333778947783155379505347202995274695125700579147714800739692980892968900181152646364430451459711275091190535750831715822855962102799205137746855653401729254991743455987676528629094443514623454988152517041635084271036268871286562526944021539935402905817934960776689151494810372475148572336058561586758934984120068562423949722942442127293838125247527327614631319604133322456946372187462039359954185463798950243027832144110395006872747325277676857538853719899495150878961817954229946861597586701478587404178315396962641220737116471044926785477982336987866918150416333866816500190059707212908282211169998439529274861375774200896584136386597212790614168530021997230150616416133236122573404958068923656544812286527645472981064435636894956013622492226254094098547365133107249948074822350745957656281819891782625906406723860624682611224771206902041331142181053047058615963727139982673491525348352677635350200267347542667927116452660482191326466325013076558788518100926533683818904768028339761500868467010017814971667652025607053145389330678787741179029805345344753393903104708652629306740070719381605770864379851374462487497042985211654993482770875056270891126541703441553182228651341605172291791939763052850363509474172050429230899994103480389951618605781753152383189715196874707318491832539406104145752353088878401164548870925342895785120617240383207739452330944142151454655195302370664039127712489968171339218464952469817474262285373062314855457538174980758182634307003523606527871536537823460686527221196060617656837929261833480993405573616084984458948095849465733055683752938058288800707786895306446749207763238414564215200198100773382755610556399909323394470853603692654953048569780199472053858888189834607677400652978726328753679658902523945538319219662153574223321502696083861885589979940933482739194048222048715568942812188326230444597509263473633835688099310849231949639119888066354096145124764164940386923164746071053406410901940837783117280322232995558872457163358373133747377246138912204334672292237145491828381998067794030646404930010189217826330205984607663170552092921155928481392323902352997800241195588488484772037326590869055402920788112755702166002376459061606117326507418475593947542795060818313935168226927502048936259969178073415503872227796292083156296093786048844623553038686322741726579936573210077514017090816910725741894698714230948121662264743259054944681704449405724566120581351226538861357800354992616804046590841283317553702269149929683761121381407582861509104610148161220077075567814984014238678119161524835252127195526890159154057787472021610910839337362413445032463167555964267142073458261705075129417620224831830963008633516735629560651423906959835917212743196137737199955814572438861192953209353595442841302919476952823458374134373046441009159097107853759395610342376453895360429309621979088698862387397060570392912305326578045620389700929499020924181612523928944034450398891344977825648239976821340963198607890647011570596703510115443616355319391382036546507275500914034761772616809194039602401469381123852694078586162901189195643572439698149745000319551965632588443937320639774204033218843330056070486708327974594226538433434237517956519228119943740831377912203576029392517641266695634958423469714269529587984843604116037802826776742572768260046143010717693796599664237202469599614583303717103703306019226742122237683186071971465856399354921516744285623295572796063634284421694728749820686241987663876372231619686241143967905703508632781068113168854962061289918045567599538002957742323430312287971706188137271783472390208288103754100102581798139858057952728800251254927840885914405293036724636292619460261066014488594050322891804722634142550002103751526214840281598605746731377078659780785112235380262430749112416048389401960059542564493738696173676277495751412143043324451882572220318588084518324946671238137953223076032877925931683086962971254459769244158020294636152787745063730605830205707603637251515073693227983255351552623817531220530507760891072840373485200700475677414281266392137517262017308071633966303907862289218025106318171370400779353316308389766770342747959484732685843803394213137043186610643184233975733635032500106234937216678272172127456101088045387749283817858879573534915061144548050396805114172854471142224513614418182699161626669922903556813986794674938160079065347750549057406637187412658743975164546312581518716376471052030532668110468744607620461151103048555956509909570322047645721220594279965651813639956184211749365932147418918722702753034230248458124622437721383956429255090177268962093900015390842188523953196558932955574227868642823252406801572490764460945451839484687799661993463934127520968242277795886597246612379114264615893365140360604109441645556411756765842808840946595451170769954736357725178086675282589059018815582955031693386054334865745703303985045792356531098353178996741053134032300723884525236637812421989183557465842276745234274120762651750564569722456934383823869172526673270513526937000174007580615812460706089700944691215268721343638418382231157533016745046146630491815923593207763958592517350164016660448677383676504362727770724029233372386056041398896770008843051780844362534352645433798628197650228712929754094485418288824523715829522050042632982164925265446275257584987164183032116392552655783598380323457919018518395050744426154853070806088607576706290925694878678706635564111766423157492297661521484327243537136312073065586290796066830988294542190926723638460003874243536912550080791955492144206094408147002027506400608363858464510480933410667382489436910202099533727201901883408293895552124755814733378747167116999221191641215913345057241396802247834623836465228599625978378793929301439532117793359321954698680166096123371164755356285418943376161837106674790407548525195534730233333961876016698002713302349753989799463294840697462893031443073889571024034324845270253181513574674336362781894768447179203551758855789977385731549282425207018900189269269698808266231829845076152045272883448549719537449469872707077644965598364442743527667954938189452498945824509068077993034451037906483771654480291483963899149468328723548413359435737311086188865747366025412604927354778819623777175900880041198716007566166240776086035116074773950762025424154707239653344690187456155421672362977239452162503647019350295440204808986619118399438685360533352984375051148863743405679283690737543729577381160933268531999449968120362978978068584422602125857398479821651225996326676044514396098887148212777146316120721971170274231090679794551522248762765427179737416243038760083772159499350722587023884901492372830750056023289153374976747074342647512747363790206414971212517673149553759930245501332468567361715299200343228974235879494830963651597314061946892263946224328248778846728981707079158742446943897452375278232255257160840263773613076511406344115027277937644896748898146142639963251423977291252680707162568624318896887504833845024558301547614784930391816584063247418829728059536455540646748836854227139241593479264963946801347927965471332455272035437428486009692631417960684529740505400064550495625835385544454206166033655295368625971463333258219332371254027570564653638744771243820108955550543414062821212439239253556852360281402882226917079114958800545038392794162411351201107917947308168130344865329630928071346486180430180984344080567338151403378281578438133219262416221255032931498680232645794705488173980769966147598191244765083865071226586510733906799210931431033941915555547778461855997288117523484134368059787627041745341008064041858731101886906297735666490832421910506934791859933974178153683587484022023934717216822131484422965305899943664019903647216399787945522833385958797137345759631694950907238531986495260056658441457797546298119589039571812622429356307558172672133402850801642060635842654007893085545282758919359565611010211954719245748829165999125871871673705810781313759848031822813411143167931642760003281062882617383752433874497555483604119229437051326613138702993852957144643074298464987935811616260882657259116792632375295430180834547530337973649193936970706847737389473029024196994993905288533459171500056674957747676764968798059548237593978365178760320691840015481982285977393308816455486076237429539215507948689102191787699515069361198779514838136444153485274386878420824703635811716512836187511734548028268028512590580400896665059374654154200558242291007548416367884116605216186673335653830918702593131879561174318566792798613392337958069265408635181594140587920731676527587340405568335253625490096276712402985995499507824651026781807621521670839855483356368403672807388798447124881305138698214606946085527437517667542328347487120613402127056006426323906554137799903256965153462169391732480694890787425322677294174691546432857478035830148004154545848881795438779751425093375977043608036596524650409705422119482025991918099166760226152644090794606206364602602672555951888473899051995169404907920743160133945602388152195282789747884045049016943271924503128297442613032929866124374039182004575538707979402010830819455166673138190386052829645941932337615662394854732983642746184174361396586606008176210435555508930306812212320782569835888557970042986740661051090517660790146118141165137170257612619525854681762500891682194017805443827556673005875530086251742859209525850196630581423890271834035342000801897386071778804755365804581791647434002564185677637532745651276923409501871905406868331475956930100671019016264378311971527343934570491521050487325373003196808483364999713875527810078953086525276260653669082390254945188399749571061155767691365050215243766182083108495369672231939606317896409823869960914365660301203132424555028891148812798020889468836653135552992505500970594673999030762388898126560953271663019816713100333075782755676113629705278348577231795515407002493131259882434733979315235031133434372006429926460916732879846447476197557139851223221639928379679730789426912340571206232825473820465253417574617952071652342109550962352055735350757573165731948035720619061328547045618905266686897238046021412032293847013552960479184321605124563082109846003694135801936869181877310394115506441429078662293780626138402406101143323868410587601928027879996115087943100634463688254185951861370437822767009985130711384354824858274583209402847236181280933428272072797475671388179095788245198185688322457995628481116971891009289201341277094380313535870779930545861015389168760590202977254326407144429482717334955391055809248470134631489107632420130489094231106031830586866649188376463009875934072339591875218289055315477215063571679404948546706944994074254453237816144561470841567674591842949351296357372970766725916890185639706144467964447274758219670423901592640350736402618847359943221776332181667817127992338125013061500921236585852161067266733402001458592147269349931022474556437780007912134104420520126116633127354718858695684403699471048181753259738350971922980242540649058458753673052447623627003302190656927796729827981180395667842876503298253881034127527639179777966441485657619029518766496990805135556291779799234656437361277197394622450742019502564585424418470918663251861288470405515188034355679617066083812428158261144680167074989486811287089250239534872235509859165700544921774516909532756845522232246107319635125790726463889604653515469981900976984401718557376425058451926227077703035873711382532747225549915617900561449295452120020834312257062769516029635061617496513503738571267535114724463062785703497007400287547052820255199745855647838131858683895654683690047228947623145924719646999893966193415852068703692798280107822047221453329599137162810714047095852144178010569093508746609872087672682902456339696260922007445540002384253430287395889666580879875642772985718226468271955070533552851344498672822405350610867744013240685496234773609215301557156243216952271473456859271348362434264023163600026117239363315281703196121577656041905322720314582478791273444329648704365946982598019742461035140744981568401358758933682887048091575359783297864909545680875208093520698963984420772217410722459510493304123569241546072331195101446745373384506165893854034056564175475117480427005679904360868011634227582915751277504324443971209936340746890792233012645882031909115566467038901822582187936789940009252722993180869945652289100954701369139445295837161332247419967619649260636860391547133406156921320313875778707440025893489667607975747741079739240325626522354679763442514724520601499033108882784597721375228719572983488182912968728995526157514480860418366595613911546485703264432627125667657372634987319286868698901167168933151230169066992483017604291925467977948720030765676788655920607960411261097963972802506192734798580283164986416620668496753463674442584525608252426032235327309152405810860843870540709457524719267998512914033684968381849152556686697523262136785150851467114527130518456647258941628712633519107975917003269397166439481211513165820099905730534725058633031618310673872310098999275171206722177754895958804212462914214090316834932035112591094246526535555464948103614594974832334887312988266484351398741019605855544981657783488089530578198463083496319698063985392125153185972205365942147909223592947610228584268513896965473945860439547489545029255125264432528469764931488071668770240841145146186185467006405742577493827732264399337279074447791489536039809761593197447437054214767808947038264103675739667217303155881742484773789038812712576142404560511610573052098109623021477445654045685528312067581721881051014771908284061525724251910162904188057727736500229082242889674068384430895961380517379656942046350844469245514967812040091383123257955705963673076155380947125025368734481616423842240538320621691608116847074562129771312956378916896341651780718292763426221754231187570624352881438158189740518726760583368533661913569236969452793761915004033339578734886619861479957463330948652743032424269195149891989145401324350764729349458604519666864561621614354033299795309853582068031713024584177671237402087883002980259809967941570584701667782230316644838212634669923758973089465942526230892800979755472681167160344671927351837133694500523280120467720196479261406920683103119325616681543428541826787289746228380098468474954796757755233173267458814853373631113322964731280534883996222189819081116944759378228322028972577440478764794913005079542753026883181627192451049188291958353174758174185941489501112370045498605168942835623118439572999773378686246314473677791013741077458161441921404065130106076202756496268292308605586174062380221026444216741029517994781148817217083235231138068432268939650076042609882774294844758605719266699098502625857329243561098082509083772706320762551554475402360084917996157229608390351449383689711102224374378463470255364693034425375311910212890753978327671884246623994786211024812222719440977138541319188199822433063768110311726357715027457690831903121276485250107271726633740608446220520890164978579067740505445298946103247560953572595614034648661359444562545375951095191975691457802309193546773750856944618644534707115454924810682579246000063696343580708732389131929402261382844469560490881196048720926781961442734375751009021865769226204045825695086619972308065469150904136704824433206968051031865594446582932980657301406780166468774078262782540419399262042360423380610338668041918491543019636787487952961654989929513917431067217822946279796825332655724309986404934768237828590069366447169253649504795291665767960412716163834362147284259812505257132398610823067963325327028024722236721738461020098194425793544115295427363884633483483366030983741204958702912792629457594940097807861047469387289725697046071402211340654087569019915739980357735288059253032151259497963502806052473809328251768331131050798928618972686637395300885580575111857537203745469729495132029173509767235425781827750469148479773046167082353011779235512250680351173150908304604915757416742939310576971850176839823466239181334918707810008086691195075579806580329794726670243127856023690993573893389917445066328108703316877753434740544936248902086948206038741923648547284399720049248486760539381922481445478301139502129451853407894178675978614361669137952108393610001476230960153209374470596738546422513624878308156488371983671448985520347183110919225916158558974748931345287624820430667558785122186917854405467292534340030835618022723913542299563015699181058283144958204495098971411295053574763748291075311874117982968500297772853856163102682607441512762992233062342277696442847116740472043839365883027044498409510218874773195637511021508018913504240882176638506876861542791287140188895145343218506309808507837924765303094253891076692712791771671072498871403633766732993072757538913902851034401855690945610062314674624766153558799276845316447754158273259049332041683118257757959804316503481098363125661365267050438552638508486543029908296610218902375127852964264680602529219812078418967041477049022946053790462456612564039230644834928205544943925813966009988093165769261504827118912401103712753510243737579395063661984445841690688992523484973018044691106598515956424515534690489295985591407415319540828241038023451935741786600756654311854093917849495183484139101237522144843680601165603576318364416775207323615177812623566117156088088118956284842680914414484696014443164564433465708603053138382104979865163872053642995741581823394117989922182253656389597841294795388865516348129213780813260357269404572725818775106533916336126158727460429338860380187830484738767382298911412848863036054409250907729084191595820382014243186625154632609909657076495914649402992160807401258481219428438494508591080593549506180548639664574216025902886863221030641670574032201955250660336805861620606645212982887738533498880318828622505742534981288411738754949003160493244539663770360216083370994810225746803431480010906747936550316349089532594997221670949930687968774603216748382999237908849967257472446907067941410679076776640244647116786658951774349788238635391862265086778446684219173343578004942451250852048551392645975660662455854402853574366212054411522480386361049252712786221112900302817035590648465059825182269318058195625483970412421021708314797864790550607872586132043690941709674469958956884767069586108975544240542816961973402327183140807151680831627734860203783399614180619489644739072759260124347921440851556453084168202122449984076934079266001999695270749690205488371931016653116074242178510766537406946944362924699289440134943565379213977889140527727947115996182528090942135062017569733433788770245076830240246547422794563666551325748871346858485241026356413264538827352707540199049813603247907638499187847898767980728020304985339948682380127833958351386107150504881164610335233457997884743981722475956116917294706183797820655935046153622871530161284268173717953720672770830952642646573484566514600792139083714428374688040043132022885556092312698749371861157672891381535633131150042156025451748619466258378307307016071667154954759560883025411046556112714917037700490130172154284856205339528766256269538394179208146485039571416585111480651295347601945094972441142868992428788260300396584770678394657428231616854932197474107031983686744398288986885842848265322099553926502899741983406817130584377591444056237064170412059543078945573515194035500616768524404067425937692495973278974117059619524528586814143707224848196715570304356236088489701765574807475859409667547792041745474518503794631308548361502349010824371801290021119204857139651840433003649611701373929427798891964143506475512047327334058296735162435163786330143554599826158625257514457796383059339941569158541545444350382163537287006232302681607309632452493464778951606871097962674916834426554753263544082284099939348935483623823991695934209146745935743901406441202373501552769092909404496319961045361159522052618398661061847316800899096697898927726626015500917647870945859907353866870973495678614943694910791832082861854637252651881135894628377957495345260783061883377967885803030346557028760992831104918861942239850329431841288414161426136298995459160009474680852075678859851925777786075250351910823459786015120058887111695617774030081056474135298892211376990000817167845372997235673880541876054860103502295793468596897378306799322268560943532676533570302130795997016671709085034637752345504681212091534611530204877383555286300768002477595073803742527575787449407503375939436665272005407997926237167268328773791023689750560236837582363117067719921758405682009466044907923902064768079329558807770929347113414720277494991633715078237246475316011613969679507218851908853047373775072271227098565001241265925048491656511859340828925675721219043005854814326748879364522683155553296266138867331970146854144199799568180121787318770571990816024139445009191900524565945973221161694163749686530057329183629819406773337197248299436819796095717255169209405485934933471580377974674929454940254834238322769653619696142066300137145856526024050278360715065716452797629901859950170256967095843578547101841294434137311781768413303827493666640702096112823806628107415059999227291340639794229915394925211172841304107364653550367913106084257701323749311723369021956097290525126398409957511002730722471740416381483727012022381864553575016948116345513128970438324654054703208726796242658647040855244126300362998356886622903495875968847049551319084690447817937852196659796228986738157873011468058373256719937280343357992886174297512228963930137800692925312959103663711781790284880464055367772051132428515067540716776554380630262244188771781079310528071546340379451740912961358259192824769114627741898062758611166842675006286401833831672210773856159626823343966050333047080351533954536755463485016429983039176441089359395205281514550200412006243702853066886351240962674874496739674640941341260385599241701911514891618441278494596122273971440125208569789889267568552059992999494335011968850998315293659288740845083291350762198889094864190252130306016466306906717009059666337433638331334367889922488417123392582189813609241136659228525244147756812243741579173348185435654948291583994374889896299701619372716920550138540757127949889666592868578122939497738927853227594700105809071705558307688802935684835384849676211102801702999332262801576290182660838639735274812729181512504570048585629331299036117676752976027797128412014356653134483049619092903340725223492573461879140590070107350244621532899069916265995300775378132090560868875861305878774287230120605265307235966731269606793185460114683429128654836211594312630492538589970323751077991337517216936989197225166411392108482914659586654477881591779712429753277778527136186291184984999658298610729315319630814052343890469314857176752673774314130151548553073002297173310119913241594061871731512659394834576940674180690241802824459322749872051867091697884805351044830319549383844974385196842795600547965268199341792594242264674746131107174248417611846995809516053791998691641590800929752716282472057995676472633164799119273042196659998443628445330856027420566009052345245268689256674640060470644533055899840847315620912312206687581855645038123356697951034067401059166543008811182564849048110745558191462870754606642639767054280224840562098352764253349936754666568171652938503365482937624753636126031674720616648929573807879092088083334246433327499953036132673252254711567774889225306109326485474902414099013313194255416624353923238953334437972606915403419413867300265538298805513030644918487141953981238627198452969658563710757939175084647821795623671560341936807910136262350786859763249627243562673892710703220228561879997322008746879480180808815559922730363246536595409441547603630178402018337356733647959140285713546970551699145563596863986556822424420163186104497369269454498321730231125432412066157630913280030804594160943296249709668552341398337925111303275851143243776106621450782238376171333027539751973326606740747333490045552457577539330784152959455994406085754053922834524160899495794832898025145340579548084611214131019077144464431864233843096668936732946304891439595621032753870282293456356849543829956893793656850212159118191890704588456306157941842023107101710410305480185923285481486263627669410852042310464086005254070718105309168648642272718142033535816826401143087469664340693681615860605058978997909815991348006205883009922226574035899327652821850827007176140928625504789943671543273655040065909632563876103728617488722564790925585762455156782865656029449217381370740686198296056073081320844257890650574161446246683776431485095807905434678658867318599414902744261567478753385562884987392665340900207445149278612580574356471173828742162619913794734306059149003120857888770840550468847818040615275846136516630683111497546960309336823290916163940076896438909612491906986904809623020895439760111314980247368418718617252577149764488114184322337521807781995937885748875962955743265447376219922475103669860488405776872176727854965012897523698938206216918401277747883534472821957693824136836838516748458090961046488401524466690707267111817923181011700565339447490019885296233108626137947898477188263314505857899434766731311870037727823107685447357649356676533245253187738608324180500158980231018030036862086766751371528611229278747629646551961990414577258138804178886239661309924899568372293463169760546044973265440915398048280211285353499737881673323019621781914914063855889705883142149832093533859014722270756022907599987862391291677166741960385628395444409576747056116054906783279833828069175014694452066401490075466083956189943105027816743758278493774748351797395390446361170731396951707172187902112029774283708600003692094282612317829718890837835594503768655286178437242152274080894680146659895408267228694339971658979395376342924775734526860136287272212531260886444430739172199120750721421181381126349646707801560576073421171475879204477209817297154116643270597236597141616662586317136052358578015512542885972727762274678701728616846698956004076748832982505153479137352494160834281047435377881183508046827653856795326132543792881462865281964272652371253730702702775399219911784630158486668174593400530978577517671518977245856819949299115463185161526022110558711392333309374835785577941087816984203516174796228297644871485683437027128695208858596548879764566081326160025719132050333833164591736787445863997387265164321676330566919176529189310625713406250608918628298019691999159026719317344738463187878316093143160613985357784938030648222267379296682759386388781585989381250522365428891670621707514628635282686192341727785273160174434125439791274379719510967655187768080367438678905422100303455058966112560056565763264640408530574717483713504879294240984566150487548185023438645466330375373444285235472225663880467773673071273862287984267331776394686254284225081802897950213584410635867476896913944980440082705358280189388434922283702283633800912362056368411027614678417359124045529209056409605374043912569239734258436169315228376982241901863422311048899495764712234868188917316467162279242771007431101336945794896122129516365623472879707368898299593829462204029935933256148123246790895475499740745859645701100186849139954176902920952567381315525075420804762110446854896278214644819784838837749796357012367684336230716899624685795310493794792038034917702783144702613663520881899856984549713597030630280643196096488992484259287755960685864929239002076728504551614506243604337981533082303150308698921993413809770356852031866290865527799833889102724574527120940048374507267240088644213837642028154607755195062636496857309796120891325617742702681998038953274646608315534715000087505801669383538298994840534666042726855999941419991760960584734455943090410252012540676522668602482622985282986516347139296348872661593040894720687661418557893852880935940729520833687259912346027446199625703154380324941730030262764201901847954384619884728289040631906874010660667460764057561011578528186377088791888890123934612193544681438609954386375392242317678224773234812327649168096370591848898765736340815111623157788135464265235109041331041207234609592171745422093521779616158500241914426761155102798004143846084162642805148576100018824640191974498048164630090476489001176343067002929856562497858203051439939227055106187073812743289006782863301248070850443954952798488992078538052900797087792132853345455148859562229610892119717157303869847201812610997213333663245304564666210564859855543519836290735820680970884385619230512388907146436407496122789920865869821468857135086826112997428835735917439267137225436138686194185504235865264746710282824058540520191523009953575282598733883415855539656482739931969157880642817719196100091085784624256599667232140612152805954004329335735171221786779661944255961954989314644548424026018908182257945362668422721627108687808042765670354235799136594375088029202646202323277489607308647359393488922794228345403491643141891228742658356356538963302062476019657904567251169784439762643114956681549055051729981036413069691548436318376377268921455992635858151493293099767157209110997296539539007539236140065588646033440631215197570716532705052714542654772151010595939758673380234372059941147866684324303098652839918119993735573511130320016158190716427359241662885639636958586318751874471309119477131854029180291548191213344019242696852056543945167519652078123005315550712072036397854240385651838332388450985923790682941232341577540298633199550168950136947212156838757021930206471217050221185523753987882208864929389254499172082331553595980807204823436626741973925300925808262457499083457198444590733214507693440273849670900792976186471231916301282487694303864340930469024317100682279778983548801441047486327277122330395826600660663815844401290896794400757222252650212351189364429355771507761280155013409329107373466506778866865017253891695943964662072201831009152086903948865643967644961720884338068892086224161235319083900999026541397434458420175560532244029815750509966732643813597012982217988909426201733659859997563836920387572169545142076657753265828308557720291148507347351613439415663284585207918166676840364781370349400587298812660785391097334564673889381180504106321430452292537473789951030550222751130979898718082068100447785174091755746236386943522181186281475040874044312901156897227987518320677026851243974988189914970500788628560271702040528101654789961197514187639807931282149674308914023737611237382432675556688650534725567442769888289578913003567249138942984287894177237717410691957865880590917037662965836136311942880916569812947004275337464899750154869012753161525531346205159040427116816325871780847498201974486816381033848865810029726146793100034944336924093719496070789926203515118458740957987568639283395326221972110146988244454102797606929388385600468850113827415749930717579979862241198329485944519540570976579239868637101481477040794392106115280740202129097593847491674711627458633578882404633802312911192473931012553869657861563208637936238889030893786628841546650110260441021945234366998056030211542876064846904539653239451875965057574156130721719118769677599757165010879870260274750772706843675958866155597878475734506099061357817223910037116056640777096895359788761332027214590904547454835396393542690038761464381587388254043364543096707141187710621802146205015406915014664656518847240978250737754458314154991555411415906539511457033971453561736822818389376307021627369016549412621997962358962208063160741754855835414276590028827434208580882637101212784706107347884785462761326721794654911013284653376431561059426742468569835828576135988564111374405513314707891897143541058814283169076959999764775938648590141842867607077062719726987962832900707707910860655298165824762400701503508577417648928316639475216939442172188740993828947623518268617378535975358907387508251462653252341463145521163239873699339980871941693514919561642825947035626593888138107718751751725212009602084325834329871343515683630730307159543270954817215964918635993639459412236275336433861516736058012189169956878976731584773552983442205764275676764506407101397746040199509985848394821986558009896245162227349332737659413470672656308054819322710343427310220709853739020574296236392175495008608120056729860338240255032210993137361091135049404864374534916035853094021371401391184509288251258587618655818187262017195548737784238218587563382068729989977885735883431083441506297570912543348281168844109416834442683232024566109338878460465264836014276741345984592034001675708984752740157416896247143181614710278803329168776253588765539516930793919958818517218033885746206420814745237045571526734809047101944630379302555290761658022514342889037636905604811344329852232084227844020788084325124040315003395235599040450782217957114338121054197599127452636204984425871686101114555153364366864208875818623339768156263466331250110848544397702248137397425117853062945046874433128091811118063386850341243194328573791575597749256882963986824553479734942369365428549791611979104509934600430938625385887848621589753746196097300258672308795561210654043015325393697973144770152607012592464813287354617412247694266284321813245332147777038062782689804395437551918268199362135179185514693548077872110739802085253402157126758590433278517177220643281231836053449285507057600401827796539270956418552406512005278843330952674157725047715735539627627012596037977458381237621998206276858673425864671458248885765101493139459941350590195312682204330189404717728090968780710493324268307527358694025218314798825550681505635093413155215181610025920133837427135541223461886815882580956747320012871909078014521175425992087231388236187646181300600826837495547335432479327217664469234476169558546487481607673269502902042431094630986981106451117131890522267845286312224901978939045816159662208872635839128360137143337679880008552936439360412703270765380097821344911839109631679646248017537841212452230654898817551510297676104945476614674047992832143431901146272678915777482385390325827449193775061341057643055595261860511337680365826047669063555491860252632044989498500937185246539115197306775226383499149383756850939443103484306931464156909363389393010533246232095723118177645120343947057859313024319769894833433251101417776267792418176652851902630296420246245906348878028240105254209437758918967551235564630042021865147963998770191686886992676564874344039343412056085495956217480490967086251025036951421890597299234751419794621046070854348026543991050009104248965166691123824169113186234581329501946107887121406736092430184814918567844587307250598695793014678352968874487743021711906801414636034138004282366243497111442655137566696478047074451443208129269809709564867720541266365375048487175482215600508256686430628709686832985807509686923500751017297100170321417638562966096502988853289074451123607081666476309871034326315899479405345767759015041165753489065121115106541721680981447938644032996843393822948221247324669686656376929748986989653392862509428376908936979446210210617182956030872560856105134454206848575270599237974740174772897061206826313349886350701412649923371935786997560147450347750525789454661763532489951045076154913871454734445859375232585426820053920801613560506699212648055049208730754631052475375151846467346759649691980877692761144907428132145637625159465297686499129721716661674163864796594285888189985657599621718600612012096980258685089039464445814190239894240241411916556371341389088806574348259048528838834536940472926062894510356795378212110233531594774140067285575082877690031321342286047327809671680047627989856623583218504809647686132761847260924226533364689288554969022074250461333535089652344374120791408281332657367757889020130494842025300634374475148177662048820179994913117871952429329017658937381176570993032255960194643989771708364537820574299078782358447229746415699483712489826960481927009321060106773590578770852690293156503011617738444200668160877671543237925074381604799343396311082550990100545075171606957952678836520262625073055627799448395030604464454964907487941568318202078011400037551234325060519390864359540493520439461994765567767801040190781036940358529171598186932377766833979630319487013684260393711628533874371164459045653416669723700211969203611857978708503078602648072299057678531354844859708803444629941010691587679295511929384891089806448102047314458481049104488834395373753623447048305337578279083761141048352685992194214314321473961341064994502737695582339538035401301271888870269443706062328707898160420454480775374386514022874564121497622243073724547897966309594849617439776621927607662435759490205513688689830287645390065545941063908269488737072441687706078646237723408810273469030218127978723160770906902643416954676247509477835951374440121803778277540611469395611068622944043930084625297659724557336610327813515108151553463688742100078462488959750614420234989730088593003936073221851001691848661638727859957334956518012608131843150842575713128323937617430500464911268612066651837152242122890775460905316192516503555341160178137390810905445835315536555915738932180110611987533451622001625665208346192073032222843641910130967792698021432892239843450136593747983695383925138525090621268689684804567029131824435979926102601234177640703686112597487742505706367232259652692386901130151597753605074795673104639290522041852748635055126034260936805879022895028770887192450499067022984424378769814698129559861367996836734110015133505942495553851587117677740400871869163615595852313501866429780057877278426300399499424124869111116310903031568321360951789188437297257665289656997085507821159180236450846659766559130296722556397882781060271139704106827137402677003316451538992298180485688832181685808769316563455393989260488456362221460695324065997720760515146183892657415148060457913587088655945925658978876125421039609833712170488935928664230328848682732261247584114443148247102549428511720325653363591628949502154904740608224097165463700856961590498750115545275805569537287869471275049123482083442844234537401486546269073464472928106906746597606978176189416048551425534513032812425437342229790630761630859581423045477970563828051298977399133446949422227185064066577153355262168846652033607588733578043379765360281423833965230913856138229355422895797270666515647219201164914962432981242467477880242441514813197199651731667521596221170038390530279947805530105580055547144254522591836392364905550330593881383424805567653740882452212141575555381305814641457646549480626252989946911664874516594890239289214246918461646398999052369664460838221643609980385758073091375092089275964789166362083794177914507810631434726291656972988896170707471531780275459624161733235322567088063981262907032191482025506351307445350633163947696686368249856589788325684836140989789961341150840158097675765508926699586453244666641281008185785344365554361447363396350816069548920752628829942690784354796455023954732505348791554084236050798370487835867685858366101940717713314928947581390141683638054617046392058151970884680771554186864743322428702210314403479820649689936815506248195968300743731627219140221120037435817829244232005246272355699848225585888945438776820919392093717371530436398559708136507874011976001010694406591408997384050393408300340778125960737596005057270035313377578536678422244282281717617390132923443320561211898668228152758519405134817251033298737752503567592424007740495071100310753038801570606344890783991852994696741422882868496744408837352435304064029121094110563363832472429653006905921225090566031274968112245955422006475800667031207376184727666614611559971613849858120923168931836920746222143119889034196592590000127585029736294303501107428975180120461557042328691307452235861568704766943629635685564334949007165138552718076102552012546495748725280144381484226417538502827380648858057768055412435606043631625571118080452456189440451634359243182205152099285907585236683816172656261144652003694751909394560431715301504299219515770003742424801060702097862114543012100520797878969953801317074696623826801494319134251547124578752114889904075363571309891011386430387864501639750947601777691045422325535110423501238061215675183006531410810730478036432026050053740448099122242301791951894461884263433242265990179272775341114270566330600228619138421951845653533090303657029780356678820553130896671549228215675358491551239429787645461794261836704045738406895916586960924987012039399764647009561297106091703277910935351403879525367417079115589290692992093950562241901926881266994031771034894969699017294453237857859605761478958925802489022056360228585954480421539939057211576714931331982389853800204128067945866921618149332871491701972763196857661947815433638259849420826548150026447712676058255191069635891518920111146540520805227367445167702800826019166617620523215098105158710858948796601927094519388580671980425417046579000495071589701971412252366956330255365075927529302596476446709162199506857225771068223120335371854889919152439605637247826082145073212717265395331246114048118471646250462948486808059128237895079041005878265592815973985859122295069497870087625362383935870370419537960820498944259672244366199851658968552463333069897001610111100264870026901528361334359317557973520420609882593974383887760613923858478435312314065095331760703498209332370825307306922855392288809202260941091021292918307820432789417937188041867638648094576532291051303178815247748901745588461957547481524797247740409465158694912390577671183958276617859979967490257749662498231964496112603130685402194984851530332686913009199886883528919289804544103515233037002925438960478512119354194836430605385844337699869685357782257485382239040399798435780621254772848419944776257105638637859225098632006589325192432670580042248416156671175620047245780656699821886595950251252073012516261694402392350420307751004652260388499617853167817669104913460409097743821104330421889305587130920712728266952933778029018972828012197079011093238086156022819348352177901898805838898276975898613691906364961218066748779591474196969860956799018012572704578018834397036881365042459425376165660846139324421257033021137197115830673841562400613554730119476579422040080914736924253944015651917382196879000674141457308404772029146024732840112224382063491896548346316546444084399435926908699137320003691030886171983734456353192549565699437839286067692662645424306746395701603952260760197862821252192560000348732630775535971471273933775531568053749053951448830143596177805021223096416593434513894092648221433256089709019493259385267796765707377874476256410950489566075463637734677567030923948483570426545635680932365546722689203052955412059824336430728646282620069195138812350324945812236254482012727485968401770409957776760033956627837480800277663228230151835948388367700927467510738161985291269663368846576043649031923753226609956533355271801021069830817908618301681369444976168196326410498809269928310784393618661551989973506080665871773480046018123893385508150642062350799288280864863247608369379735780133615572368501160247215733101399499982165776439200931555402138585761283541957074225659583273133974200212770620676374535620809780614023709913832847052112678881527134274952603347694377025579471188358001449817768732775867223860139648501695542333283992704173867184586649135204662786466233295419968600720707718722514300597301914002991909064751054123004775270545298052974837270654311591332556028604398596325147667118455279298008265114493499685982183251832912642075162324108950798042099970728779709027142323224061666522728586308997190464812428773923852985457588819427786785106320341403841024308931649625940390165540688904780706352510782759060601864971791529862932699502356119596295688797468340050239493081016633880502291756556983735858988983240228397522464946639678385374626686875049622402748336218608853878592755260901583928523294382080061585926791077871873675462620637473049348367281605520397247636705764016045979052308662209360812763537120852836843508878786715341675968871509663979453269283178194280229382085924448320038579673795414890554853514624789605061175588413954645682431031056283284704655740245307692521902709138584979458733619141603771355085632086026235467252713963430200131537822768710565373462937208095468341390570026749246567336911626121816699952575492578492178807807751832444086026858344421087590388114809123033008415926808685588947848494407940359274277958763714653976137136215121704502734665897595139769680582072154614733840940776989879094255154861584601755597080942939884646945361125298212101533233626591529768929892656242552212430026548605390953146437977358056324354120018887490357919406057127379620303091489032450213549833372200345505765411941748921839331983408593939043324092955357112883614092100997624174460530695459541832031171064285639996873588010889959834060155604467359744299585610319909073231799552539847986933498145216123411842242401058238750494008912495011599497144809255755619671088616981813231437240360248169388529157812932851725012838897780418450345930701208572261031039547150119948719639132466792883664039654901157869512302007764187303330524696654018930701646639490783499101279346560543578398647713395904630890102332362791938567626764882101269635438686445781584248933850515456320996259127613012898759404472125167602459334465130650150318672721703985745310935312901702709238607798870666404348666556983445764124390059690171704629849766070717119863226949448764033652043216584323941451333728331689859267731878634027460301231806132567941036792345925245562530694560914717390741099373661312773221950340231280374110670808198468440702621357865882240571670957666349976909879642374000493700203883512255952791164116751781807194018020974509872853461154625103347218422606398909814317772243225347642103640558081941130265902175353977367213317994517572461592707792355512471539199061543051820903266821064033410844198072479886006624107715560643780150846349960178643948991367665807828689816114262639359694743639146744228259881122676067672143801256960669648946836672198882868361282876233183334471488490804477266741320042382607685734419730072940700536750174628017140561841816262753750281064161328817227878732712374405203223926128999872985712914897503623492572211659686927937203145101298554597372995236468825052327093872672891256692117857453214683010621057610495623243274250528263005808984167951733968205526432612311262098601711023596129556209788981260835859479400876031512220190513734103301303160680272239103630533077365685916980096355449881729297775110022111112225523902590699268598499260114849341046482977908905472650059570830585865451967996840616127709218887489687734961974799017359405448796754948133174230450154064413214629609987092884061561309270811039158492214203226847025228976943766192312559360554562280312088707212736073534872761846416783966651489443759713533884493348816908533732395894157981639696220643348532561646727745952057406000167553015668295853179237252189129312887032885836337602739159959153487837235163163908483701357206314177215922339196352209809569411330988151545535893892091629218571358656561968629824972865418146628718844007944805944614142927300105738500479747532238432994266773713756504396321342261841669888453056962250233775913483205274394055500838716083270983610367470371263303908479138669916667715023022001576158403773740150318442690704071635973744564035054650014962472114992128855639251068142451578069215553796251541795688658063988914030440334116571280775569137131256352642414691866649296339033505706539332313958766388351496339726930853224502808976435415516618766071543049064200278483360657385901067512405714234849199487460738657334502404271276898823030262377683116771560097999165914122431566861593712220442120846290221941953831197726760277547696612477616390808603985291202570795725007835477470884222205066202129847697594289843618178698352847885642764516040484655967481569549850187543755950831028516852077204364010839807357821413559640310633038294736720267017436288541804514932503507490029359576230797875143589866222785793906612927216212598989368765762441263934196092073832958918872906740044171654755520217684175008946479286577361167947461617319187400302679890557084466985214934338726635590478145700047349655813731435056242885201071053676743189679267796941871712030430665878338717860589130586164364965501683372747516097651717733223482422998378614990566987618023648456744598173471345476987421314372519681889630976001521641447083519926771327290681931007769210786590939253127883941872424764106184634676509557772449277841980034552011989127477463922648772075308739886157594851801038344751258314449925275499715892350512058483494943474616301719810329188460500850304390447011101408994226857598024431890959724747422564401987825101566839456276506287434808057081567621937395339326457674631273163029804794192972518073286243163848376160432859317689894493357819993094257881488508633150379728054386330781416503008623365515998585339201557794590836799380326202202975679497116487916339101219034508044694286789365514728355830216591272094433380721054130437455495107481299853656393515464333262832968942031967299178283322418557997719629437753689099596060970773929634559949493027097483286696249767562788812103965856308817167517466167319682514778347461936333973757622645513298626294869618517346087808404666026573509970176642666491127690830489165599198552081067599416206430806181941263144250032109426734187676141805085127440731496292230549015416345767321270907144030852366383473470553723594977351287786065994549160215410864774305688185678210726035227602069061903538786316518772859582165998452583674156855810768520406034791123670061954259283787920470612182252170300557460269970500229351854502486036964996983371831358835196420506763388130468279555106757325967605261937185815879267622883884311910948251401184417858739229663473318404522680721376212522193351336475732750268863097822481378452876450343964369465218386600240251080710567368510542436035028454113147378401739948186918562387042929195580952392071769121822550940915706313446766206886489776671610864879893736216644900613648604862329263436197291482058641015133174092634663124387408755722247227237640514211794193770663491207681193335178149821532108413979512866867808556946947581230383541174004006790400785853452143202269948700908690641442785957636344765922865285590765032522823958734990591069398977903130074017332615243017172485185626965886777496584895355106766960330855980764029082017602318492288527249558849058708645472475232180246707674334227919829315927443023022182056769011512287348145419733454969112501432714074314118376322648354832725543171267474274945471018561557462470477399026300108564302609440651191919032788507338669327576153113241849932401326035943447302061196581410313020181847706296474188470167735116462087441905406772082954217362439764618387581851863350860299758736600790065341101686314017591135133351677213311916403288564850875252619979277450743033541704126097019535491305787507408043044162528451609595598384129835271409686595733083417000351107218860343518123425043150340611501459767277403798651449681712740455355382918936654494815865115580041480591433665306609270195776483750543102104669881356235952182534652271413206171556644045273071054687296569705995127392635728413070806103152127069432570252061439355304166037631823886929279040611516244900697176152881380164435969380134221598958326830130425507808461919307249509091766069853259400159563192591704931026143746710961327738109331354186768422474084827663821146620839822331284674614424964793410609584106524160042392827387433554932572104434892943511970238491986233323051423793081801250749417340919165430150656403144987527092297592064881873035571256008885140997101038753902071366841576845582884934681381239289834090443913845378067961361238019811958513863432771685828065004438007746841150094533320864179756167800084936894794197237008167046303580902330579418119217918321607631375347538583281353644928662026168678340682737086229038647411443023803294777648769257423605354772866883075494967932213181124188003841617302540406993881875750406673945176082173133738656069551537556585356803735809353695442127849964856051196869417134077754363292612220221042166387150389464742290433035138484473608052907098279331623487102991480873801774818794322697364850194317960571974936745259417588109952986615476347907612520924337921755643546442037832195256193504878260032785598264702344442380497117264741931548556776163059797906842844830424883488441412443218724388251282530216827766037975809419611617694754595967194178712625767800223591874958024668030074512580708125888690960521222508137396312706355526245202486651566695832764807280484987107089526474294054947842433655545901055714244107130501605536493815443263582845708753465286304354767972877787411330875420976559559947060918072674927198222056485174964072968828612478850910788208258028662271596218605898289838212582683559101960196681015067525882554309384768096413276582988527240959756176330308959224419940602313741604930799514417337003109872376215041565398450240895565626594315852039796858566351605724546741140650423604967773114452894453453171927505309012105560155279413154671660726893883654254207491225850839436455142932215342001184039873623781262442514291693087130034987375401724692570988248739627022561124920437563705665379253779966328720799566167417526007191369278370890300456577270334206157881276392751356443166625255899364908648822955661787844931057515166517805659845616715712599867727733466686338838245752654967229336862432271075777730591313224160081221912317406729267278865857097107156297574450158839257779933690125050864071961390295006780320865034946255943670510451538812505326997687391617702036456952787786746626531991082598025569815086261863526016101241150049548739610177192865868413152904171691108420852900596120300322652671361073952779236797637118914859618491933223493316042397216879605599827223675676805869038674309460765035753487384751576430553043516618067662921084364495508892128299043015084295412284071281230369571927188352195002813578724327344528516467410440020281408338857962651057122517508253281239500657994101909670064428541517232522382704554576327139704228341073109571190477566574166012182138032266363058743901456893251866300094614599656743987970160895413012336081600005414616844726831398151019580467857011773461722721625134173831212207548930727557592244436271344711415908363664513175007364166716711923159404645948637157718292362931095719087301657486491833144212062670263618320388666646748738969596798844222526868555129831587452030778280451780339638315656447889742507481753720371350935737096283230245743026944057923023711222862147985052838220357607848163836504974561991589010536209012740865241309324193854707626682030820809098038431889347753222324268863738296680615007280213251586777291642029595596352381731482226880953273853720371986924262815466940756196531712251279290311001546673398923674870928785096318526439606046771848685386788890950825862997101480094556556402742711397354017483135802511196435650305380446719022432572012291891655073988308661102274434428134881386642988558374658812400548523436167350036235529995824697008562118947102493773283875870912016818323696033320813041712999823898275046189607208341449056359616019427760490715586215111445268123951790826964340030054731453839807423327803212931544602408553033257249375423204759183491906166931745888211451221170527087921714747541373245368384630753783255351523971482993441234477035607384321993489055462324341052019532853230763034690221946729510359541462548440405499197125384670420838613118741222127488411588606552231872904468425400703698805765977121273432965538704447561509490458894311075461622181562259835913399127480851689401511568718534855903636954953900710909642447531450172906252475835290733686097406696454379258449686040029149716678723991632999842280684611914780649080426444051223576678788611029610490380677432813536840197312065921035893738269326174603805773967127654013996531660663598997415710853270597038631849532555095420075337533725120095781768191277747478396353604956556032907787316919664317237247855086883831315534617747774713166185553335578115511949025677364627085292149998274200628857351194995583382740792841482712955931060239557254410349241219458276457847357296177772590787206380559209405245437186897868831492650472001201933417044189776058433551485338299442001866855055530690119642335488047830887328248652297478449921040244008299538993368245427705518479403228580635877671714222019967722971950656516804980201579302447333341552293534901946066715271353650054926687825482685831847778139737832347911545212631147659118647871090658816602428292603367999035613353451853306684550006052764278309289690154479527772877809335390308134749805733830771186881195732971458079334716749085310286755582911430731887389194721037289169900566135288198288441542791290568566695612822188231921873921100288406173872469474822409458890529678736115713712214514487578446176495745180900466853930230110778331981081118824631205750856601717864114549453889225986114334664300348695089451447942870454703086741394276748808211218336955404707481288321668460622365306239615708762974281215281241606369233126449127065607279811508074264024291547843356538969470626310220751410692959644812008285658965762609432233738252287038827244127338763911947423322624441220070144898090225516659270064735597398101186072246461189857743914537600455819940224804308150517072561244475085456332541670846837202770711446887213217872270311172398979309778832921759670815472565147790388117225230357124233732924182923500790651284155292125866006774080399920124829711647820861726594292270387968445409236282752424533939296554265040034538274793065823366520814496444991410301058130563769979944931637771605765562453911813024164476884455188776256124416480712350509295124931041961673246149151923250952222722889273987393728790999002740966951055158014011653253871718843582940639792279636784143214104045815441525230831564125835245520557816203058262303699932989906894586199491005244888379283876608039657910564659624567187527322111761847148551400144983147370582266827020532890507970752718978482429791908187343261737939827481257582801873886177922672629931527367056161748028715759275745890757501047519743321552523730890454827595349974899667596647314620493006197957301955056911680835957209659232414963808209441286899369736108180434372179706939552724148254011790068503445084092781960404160473234963092801228195483297328491027958370212789199635090198849624963818342847681301927469225471486635798220695147571855958726863577547746300524857176917068641018805660975173034862980380289963636758462772948734274624121195642030061712458421267947551549681678414869490812975487667665434061970018928100282593997160231343435004681942903761995506075424298927702443702753449314552644983085401618164901898707910601784771320159173580876571665684291304094612669151929039701654655324655209744103105209072872995236589219816170720191707686062488832985247857532271809821193357319778426606993169055237442157964580023589891058524222513449559627867214797474296859510083092483310148974359954296231013389750806430216139006892811347670819636548357427726634886834547345143754376019461019209483773578519426670037207475967811536826197438685110156771757445554272982384083699505054500303798586049629210720119793319116959643172798144189247344687281555176137830297446114898471096150408019852469532306436654616441207418000837783207642043572896010751333191857714484834540906741142813649349061343242863366916223268819587898235542176008725455089266858105486806831291188562626288381615018452477565023124607458302382397265539099146513243254041238829119124316424167851773462523271815377737013163505986277328112634040297700073294743821660330152689706699625730069090573435370077948399410781726259595190980866485631395902762600593635864345369308647426195628025898717764314801462544112463505983533637363122683133773529292242279258303245128549795526016208852195430440735381286629696080457870379568323843221439843723854858441413275309723953954031565099667051216964474451689272516431844963025006095449732717898237862889947139710508620710939114136555095653110090495642361677074727160739062982969126435111024627056908428050374234251164664136412864300779264524144636002994363515414828332208478618897660515483203381341939679039233116883207253934802922786978801648709025994157932208332846517687946493746394923593316345619561106208384022779998703997486244764312933098137426010661874530453110652435367649603671420905861819540552572511349215090965966069425114610650783086874906245333595803961982108253022872197510056871713175912377120176959394576414937204779167315843696686170113488939052780075592710151564188752320147326513340650300013798007004823338388012225871243487875879306500306145477182876564041209333786474940250287645358437224476887683406693938823076321323868677505705491913881050783093742420118098876240986227838349006589096616456053411781009708742065259013387074343955261888797042378650165479149752055567984014476466218859019672909129234242231212035894204430966428299015358365262138114024841150966547139802713801499514090570994930099747048085157081465506305230954185958506519445765204654431649345990239406362593082045929789603126251938467611309462929360415492757207551665179296417591735442440189930926806440032346087422270684879132499715881220534569216636198474668240329131284175806312368621229357471130906029719041202024607468694488331683382687635546262591913096762005696864815135207796289541212201836954602822592969818095896873786467378677113463919569168272319574230153119901179437700443490010965567182758601255153619964016390337428307318375730846776433768033552633481107317650880900362621019759222331814977518565496892324967756886042900634982252675487156516998935470793267684168839746430310935327552095790489619797278169036045175200679784604900537154124984994283074368624975154059247470078207484821917732959139641302906647427355867643427844850568063131811432624275573882866256515591545931492604795479644541562502134367492751316498696087851591028138383596825329145000222175557269772334640573408587500832207762579738595003412218443444252778741119971278387933155732124629000240225459966873530855339767576481836471465874055681347388866226922223555787698631335896617369841587706323005241153241687152971744475843684878341518791185991478580994658503634562427404838641305830657517540514209929289847891167702956008520053399405417076762635023091467593352551343765624717963497942879339464817536455536453755343308835492124627387054158365345609372434437668907558472945767354267756458846642787751056451054061140602580492108621368366658074069382647420520239104218029180377749216866097907862976853218688327543941147238247810247103386283350758938205845781452519558250205543573987487124297041562606172900739542310332936184481343636894971494950382436909079515966834482724572739654246563742374826745356989170008128838014812455595967828793501762548800960261842309335783025473034002416585106744608976751322393761283334270716472445854362336641876047170978086988484725277038422307144071323873575371287123388008554893493039494581666103119397378355236270953418760476696272756541552451345798405980378275424712784517192015885767586846785159380908071410744951751057618400355013614367244540153087610029551359525993767795662984594649589715919627739843476217814033071848491402398238667672133214295604783092242262085486339908615442235824243624046841061832489216980877958234302267383415583179510675630540315760707198051604556402399619936103179225367699688628096525715850687564894227074226614311242553461145519298682415854950933852291714661039155132004990505009229552717841797680111887674620791957927666450881972928466837170471558460866293682343187541291053304683088253359373411054305242053483609200808385107315179283550688197982062470344340916221459395656220488312686006267069936993813273442089717557292552237237917429952189591834914204018386817514981735904255074813985739081765635456232229644620971727372599563562011051839419943961798000104148042472253065393663341174682802829679349848741337591231183506361660929648554036309670589417602347793868496107283300466585671303895655709444420012443897316142605495872375444627462437355954801547976616423416444950255022886585767256818064724799697585723059805570464877431617947746521058315660474127172633973346757964477924337341828394715281179094181525112976092293064502520226764954710898641321777402426287574021150813224354037453206075246180916863112601011553109785437741977439281730978523193330489142966041566212809039565642513986924965832724955952596596037901978622272013247660356969847056399454828850974082183701789721696886875096359493106521966896562340102899742159802397048583898328738324607145347511756367003876037111708035018205463762853243804408870435093056221697517552387587102086934412282637110284579285333260096176579560249764158207670035745715765120860337696115116650562012639180065471645069681809829393781044707539154516979060460755925265232504664943270231790537945262274796348002344380886013319553595810281911783551451257046553099867581342455429697794704895792476671458791621931811020784558507201464997396342170865847721791801206220880166674581607502220043188761897043307560024255031476624443651841059694410226959861177094391357286443573658464570173057650177483907822813628180813171133061533204924813302235504252967144174482396043713583688254635610711013727433258256714771144348994283684821462340848911060812334987691699025850243819698671480548569511993006363675726061836892042779950663026527452712423103376077569473433123710979354309962965832632797083892192261750811890243990003898138756452627577963596523151116507255962164495708420700393455629654160223854920449598198568391987042076276099404707731164071057379086131308265529597666558835716897301447355606830512004580834117310183289275135872236450218827434461880356248764442297935125066945081645244594257628426515034489686452003716096689300534254578180175755896906967681474678185207511301187939085858656907218317081256759913613234320581259941533406564984106368934785955901784553164238290677497237875750592720983018909321229969911159267715037397613690836976048295890741381134360911461755240467265977654828153312876107541815386533981728755544933250825766797261418511823026307490403957557722378581714164747972380278398715787779708511953837720183247953039519361334923965046105287728043763168392177345159853284789707437992110062092403227509082585401267828523461070072868371546108771066490686916498761984971778442501555143358856025160561104282927175029515320864190408490336716273826436987858290045831486906179120626398708031566390158141449685256302957360326903484544345629561837390339549671294476460029697271592306464570044933024839700385105560064388128516616868162193464763079696119731165187806730807576962227483332972208476268164224907508298594823485291774595818621760266091405201759410712205092349967696561734498253291726262936848456020144702081659594808528223257151322593934097900020944795126527546452451869056904368656294357944680449711243391295281423068203384485389582093457059340392524990912585771486076585799784584661517528515083643876926494346069409372219317042663503281199953238869251646299839580176807519904145356427544507015150719522658108214089254257804203885477852652411392177221350363232274742371814426215859645765562713230484204691562018982668421686097832731043063613991851324581334018840311245561833494379446738487678234487623574268486642096740525359167142190705221258827350437551930723870384396387254595827723520354528907714913686524678018361380151129240955704681984218862611009901913760356096379232459020256564922328514750800197015644339796987479083992179414437494096483310775114204863940572388697095590716068116713181489020773351049287160116591634725392328794864081114433608175699493083051822740393162240326392075608964092109856055355150516566043582499781928097771754810256191389676870839923407890436002644595593414748010378659491288354698428806723503782246675660242638338618631016944995373972025321810280260815118357459855425549755148355389734898386799773091922593549109350654820196372219919835705060739860264090945973454265129509408255266331915238020835089605611304300708639542741362096537131114548128984569753963383279991565865857965330258742524071430257015464356731171661848227585895368977498863702200737564710092846692807826417930645763765348334892378083415233259381114095286327532308759918756840719736040908290176843989195188873759249010125599913744750117326921032931275950572914989003576880313214150547693161886050240556379802618479951264402398922587221838545584690148530053051861634930364925457762838373643471229914276901566425906846969786320851067164570980338918153757238551269518257690859366982187399026832648596466819303752386274292154512469515598918413477493354116216506925512334337992741886566325172725913512561047407950494756126364112907952331615646314849675365058187359244897955043736170676056457303069566382205718520481572479291907903475170152624010402738551817127170525448541417937186276745924994603712338677340854056678601768242185577213879445865236672392402446385256770696341344307966860693627527707635528333839334175693391878049634993191052421464140429452024081082624454543886211383310492414409845813022035202502999982824904159536133398471444110893357466852360589591108067846180702886648013913954177086720148753323212541387703970892369812575052983589214295452694202614790164009418747165329748070900736321342548313960297576872079824391375258810462831226118450425395954570314957458554860751874959009956018032609760806176070694770042939645772634244717560856127803064720473534005896380991772526635354903957226379254380789684823574903061129190275012895611595111113807696879662731259192349207952433342630594316837437571419993447736911769234062671549262994051299426086132232920528709475127821523514859888243904067690880280990587540390033036730077324772724514616652427856073276337904765517867816334234571617103358796641722094897583584345864242653436614962307922835998343507492919752386883517177349308390050136318478810125366101401311297592529749723026545807543675558215533906133998391428325793454414908454602452890201357375825865434528061884131382463689166761482732978692645380927132166411630972716450208457479935738659660002864411986934620091593765798459405623690454851049174054502317911762860989687091751244170880612930349439930200819041639913997525958977267909777788521119205582529106895709599289846200074452855777990558620363965832307924031720147794221073697608108499258889241282071073813016025681534706260422696871335115297089278821784525388846065724923839703617780408358003280609452658843302227445533852604048819074931959224365626400862276129223591756877030988139204211443608373683128625455889340119009190697547322737703872217732212342038081270028372610205899913365212603025816117086664859770124074111889802619700323436407820559891986400066538659786774381947794802630171402188668697802167978065469985608002310469125062414205322102246490350419976464929503730290653460320964083657113985121007998432199533241894555330993128978538584544615969319212324155922452103520120862057528123826768863746139050615728087560985062833263769476969498034681202163365681245916908944227481036214071186840253537261997375954837735091213038091032543847866049358410552742997865435176449627844954471197989391342137972146117330151710148860561541445816146837040491162179470865087487628931020777158372980232659028742460774233810590749320559330532036767015744774343119123861385937972206146830454976642932908121105643987715294026628650483612878444211159739892516464837577117573594131833501958942145353902479239126034464662545063487396514439495016004080083012157808136622867097377650109545077042223520360388373263687148468576366221390622539009236694894420358136550389321119154665202180725781586993216446893422622157437084905677645699920021195586853662705072852714831482104735600665823686191764511263776288711342681748441627699222514819641545792390570882064235321449929734485905826795538758914498354338078192169537903251444134255518090246044357149789656449196686948366535644580473480407029297902144365184257615910517394443745487808329708551775627531559486564796629961663593794434615190384483184427727518559083103516302934056980797883820343693832483111704135039738511113301764761050325609296845541837166102700561286808171772422396342284137200781337331940696934552967740781867122833779057186472032309598492034048969249825138029348300146897189093074145243902246390704445677263151125492394233985128196032415470832713170788608411759065008734404185334801887318722892477713315306987962691049124778440115647523397611710649208451954649938495315890590431379588733436360703452384923132459280349100819445285357941980283896220261373448971018601563713651710419548906287850014001603381379251485715589201443159762843863633822127227758090651946140067686188436446889092666596063688078185679613080547495620653714008826963884006951208416068259498788455495967904249661491604209605964587078268705057146377640624739094518645106521366431655315573568988634059111474596490636762195473101498465859649321522698823064878308657561684030256804060490096832510708801088336564722528084093001442805893931263212192550955232867656778681220951084229838137672658887075742656811812782179685105717197692768372339244132091326154207995310979158706426419652180494992045523008836231821744023639644604680847497097455358996942469499238606370320399609727064537040428905013347587525194131341767839704008306252393844122480805817899594018867184239228459186037086861425265878132906596910084988728555704350051616366759991116630387148261237401529126109688688928147160783300066428529668228239198632887198820686868288915512399612421662468886148978947769820314175470930398058345493695612552677957159495711430482083195097361059688982466053611825631612709972953349204524820832487434895155747386805729219019957848431210186721833303975573573298382890272246626731309276006631867805652566661774531675092805372053555671081075441980271710248128030071931579774352631243665999296758105969304594130947321555175251553222906217761239968641199416271367342203891726404651272408461846075184059064984579432000741928858117247752429645316670666787874697761929848820305572471894546081788160946815171570667194211190922104390465541043466263490462949418639485386003981096751193538545784907806330982715231272409036248483139273271442577241720099094762482117081804729432174655053398760223273343787161098252368406352901785413615777467315793247407214854738610308082511251414472007733132062793279821419116145537554155420648229211451497501276235999559096717497232225207395969437114891027457403058106284152565727767077752843386487203680181849519106545505714895505887655186843416113121200095787464642685526577591420880683390903427512563404382920453920623134862733656544005997857065318258276841563046052595956926620159865540814098106572524565242358251103175846158031893195056555301185903195041621520834286766246213002756592707311372765279000513607339395954292560384652704378322046915717473140277487214215868975336946514073859431146825241656176345565172099518564435523272512602925264226381268421641897455519178948237776767532626842187243518623623076890860364279762823270834126409922286670573493612464676175297827149227825987931742505415464010733418543263345382912791089862544066302475807459503386449890730592071077859661770641285498315350591608501218298168746579671072198380594366465632251505931512507791320695459891719634240384744842751094408321690820981476286498424031478111004726363926085386997235938145356937772389503243115221159097588965314796857608186144905681514188277964107939368064559730991139658591148180415079816627335431911360416670040995200471806429370876108005659003880435376074537066487509345053859523715810321039698665120350884927770046783629035207258340725264545193957188720756238487317013614377238516623681164054114786909214149445971758664337661223605191108321656221304682308045409614305915372669252823070879507027213325730411497264797001264940487319645369968046116932698553542342092966224925462904199555324262449312778484036181452238676570616164856527864648253861434442046975384925565738987360192629078519749654126205865490088143517128171074104440299369449375840311952789710749961461527287866626600796103670374749645189408569234238872821753862976008620727426884806806375026307359214360325922206362724351173651874038169747080471069922059826484795065624942304690746044079381894711746016408072824594836216837470720591347743123870354908778354915955817004426023134382028845253145456636709600617878728096906435051130607045927916890949480821796588089698678786479670138018029276617065098293087034728413931293733561588161692772626126992278074382454162992632067639001122045118329870435910732867334237567550175599474879998734652381088195079466001555932630770900550524166006581430615961395841490436807831941107541167939007037675329992167773757814579499762683951870197030914727527598855038606906468770913767685998738242971252179144515321504147508441201060337548274772670874417372220994284622902125017432777183294179909001932009226394374672689483256874822815610672657493163494969506559039782675904424022416865263973073202507397507782072477639394200741039692419472823699882052653715484368450888222490699149652690691407291472348808270563532811958356556737992962539674483156329727468717565729705114460340713315311347505163781459494060933947961122058458759170622279301935941087337412901813716376823797111883498346773076180606630914212749545267334762140891063760291638201017009800354806729139165178287616201006226139003032381154947944549710564783483827791730402446203241715976144329848718672919379687471814001059190063786752945988154255441621966469950606826568371348630336883755674680105235975558549862665109853970513108468467169556931542910003484844404374315954101374601460829318986285649362924885874983884855080095261133314823928157095292508517367390092424475067497909763493305547597297957368907984194064734239071923699026459087751763800941037682054928223005904880435458589086101222616722397923995777751611259403364935875160832185700988652683877272986231644710918835455026197638380635825658911972674495613102585905938282706287574208647234920664490773453504591297499390533159366324603083309771852027448941872403487761641742665491734197418540660393752263865013445724502719939415525870340386673583591915098775346454242115279766143131503425478298526537958881709461733177394452696129839728559201867404025587949621233529448677954933479859747859864289615464951797367761360535693368219868027918809736186391492866185825658974976050461472216659436732733372274149033303187220227836874568326699611470976496694323156985243097865530466549080261145719733011998857421301634895627279047368975183892941996186687107765829252581567105978729217291507105285407581461899260728466670136339928686505508994661606856046550033195532639700424648685763037102778862793204581675551098125060947184045675474590328686233702094170692789292673474025211302542133499818076009456104495469901230589921894877971136819591483666821980368066602204715468743074091310365753959209237124573509954014977519079961565514821555330232751483539480098884725326724034670779663313987887392736352215082145504832159422157110422569809159103348562442370689667615560157196681691308713354365259676038684547515702484482328375927777297805734974555104106881875201069718328963210872504406735226627804330630333869702173719942757613117908533515179882029971157412494696587072817881260727514980166086541278452413838823748781799597124119963070492492900025890176561331346844706992344909955457113062896351449443093205792702903942061286161196583446900560453770010332616331164129446999914396690603776901498129829463508137014711076236881433878956343057357403064338388472179496038249370799462348539655138068085141284191736485835715491788831523307052869951999039317857053662832797898461408669201414441047719469576894414269806873713247380212528208304328755337776728082731555173924423191746677958884199185650350158447722045092178884444306237367535954301345374437817941682510453240760152460103963725859040460015832775415256223335762800806297172443733905869509280888358597957797008546128673079972104062184575030318226165719945693091571315311272321807814679986603628639395508879975434688960137731505654883898551301749004848274980381996475073226280011452453553157718147264299186064915120533350245588597722740774331096855554290953297169860556084558574362203440083856057678668313714875228800247443419942030907497109158269180367073687664143436331418833250757543729179636456461902620153580547940245743930140377571264931361221350790935264216527586865542301924675957226318762872448994387817037856911715656530011189934996588084678145161942116860372004073290782840630848867886901016670825662095561375703924416808549439185761397806801127151704416855347007378646413750577129249169038128969096563912575195801279878881406437462326449028632128190948653800171850297872459488424581991055607524738975794793993716596372169291411579257658844886208145998164543307047119870276707975862147912088016607081287920913878775016328705806894209611974392858907284468620298583780035829964767660900697381075170028048115555568349849624711229630360921114213584483873088097516440442267769061030191708463431834387233640817763498880704966785895021184010246091242347365752940987015500068005083435369537153696351900401231749910187847784052280359822427278609549704580700668422470742902079534457832720419992920454569413416906799629924528170045271947381284513444802769788638221179828212730977783476782021497129740217622837503253395278873327225723686881415239482989236213953577081092940176652729131355023018451453913933205829774087668014804471108607308721496666124769132608223346978109550039980694162953135583590180249371489300177407265600923555832425741269240531964702750747848131613639474657456902562629449410479119575335427287974759324191722169117233258744458042758386338440182741480800646831522018762775900351076288525240573160056123434622001316052948864720930545508269523082131711367906751715448452787875558846663779145445190458875798896125207830512204734768175319099743130318595021077102805304404258758224365728062798897906425701778818283963382778554795037672417322729982382423498300321071838851594852543378340338562302829354019409805296573328241918420510041795600598055390171639406240806157484128175448306062484964733688289722206388653490692429637214056097473841707993778029056754381311231610803243591796145861919370714002130564460683015786716369044768381953655163823361350374240684924461294191667709257830708977848033709085771999626766471791626678183477795111961803617476319344006230800126848889763462393179962095951606582537426336943842415241726075159674242392690821877112393410006689560223620863816669215034509793868176782372705107289758927750687591856257182340782416229995194972585607503316515872690414489651750339418363203708267490163623554977123834488811886061073834126546150751960971058268512245005662554353925078867812760782305395604631140147057463202870403763907682915415210828371683554673202818511973221320672702957088483901108425408855176376606244970389100059039900964443454032642857343905368392004994856748288188433161606290341271021051675087285331157177295285941107547928542958046328744967127904148783188354188990336832697715486988621461415144231121230154362049081366545299066218888114679844265492963284055112639694411169802985531552516628515913667013471883650802134810014237474789599125425570835331317900635599851622978707029272956650174074617255071758772310359156763420314531508538020514494707583905263295614617132912078992380579689717003858005588219451723979865607063274365319699742106115422091862000055213351379469575813886442713897075115978942400822051012813951692584686505297993304105285713181943902887677076724813028557846809754424509287061469754379127673565428139365759694920757858502548433218190191560281440008594547590106186793852008161932937370628323850479307176121995653843057898167362262996041204437800839603385196326187285887933002946261382672442492878822523015275477968166080481861054539256307088559750444306600573925773343029793481952310407398492839867736179819608559361607438860071505884756731620748167397940784635899036678540274166203032033637781272246297133408259239088974397903594892715554770867185294794016068171390743347587253781695131226113435557720300643319253056088103560465026910453848180685510552165517354603673217667775540356329022620354419078549597663047245867700139554455819569613997591302003440864782639834740760890870071408883720617647307110073639245762117124845493765481828393397924452707667427340999781878388643934274956854618359307616141078496906931835080664428606800087640715454412254884626556991879504889133362161735529544817851395391575126686189742680529867031518074817255925796519482857411247361422718057827554740588609798362143072665700601110834567988276624132121642098168342316088131986189568123812315401135188037742635878541958209199748032674868849182559612873491550652949153652987894131903762267818391306840131836843266451156509976643415752510658008953459860273169521886796972756685294022928434588945275112833816578593938406465676608662255686045907680977182626853998989101375269154553135511569392709289019879899713426667546312786637798384099573202550808471406247763707005812989492063683036008778679201857723236215249878041876265720316712201375308395518201595744746528043366113264038340179184792559777309043597587526912621007349110739885715065773167957393434053112656134339936486603667356890713602291571307690020799180183148325704975310356374818876479893772830752952045075041423190372711338979652139612209466565850246986403403169279135196209329838621111531161429887401916574634987966886246491576590273790998041778436302526413056234953630469635337668741583407900582442169763045677070218225917331799235628241480005473533444081113272705040001206992580708379225477410414751480049676817794385176066082557117286843229187622149161098364137078192076243390082288287151665798473131142324075492688939473831739132265344216441700694415877118672333063649267671639435263470097368493998233587433427497217747736539281694635172044448721068269709467326842552027360405050373331071870245410281583825726725684225121288023027161473715202324008078127623934298082168754797248680768637973471974627235805977598068900510568530198300306057779185759366056385720712699210684006004567950412292623673289047354011734628519630210366158911280506725608764112355739291636969669385850680580122980618322159806459633041122738574339545686737400519235861132148789329448707668047766326721704298655513274396384980120258990664895133353587021761417799974823708570197772843537490362626283838512109378903319517741400094383343523944818098985624892652294806425416411004563438893112172300817658084287668624229932812929236693998680651226579320461347932699068986586147716680388094449305933894393075234307162152575121909116933298431250448071675856279240990138661538210219850100442924777889522825209197626490363162809533455423601095622934919879565936585905182562557024500258620743578917145982847257959865078551214098629558074221054095862054770490466726734815837623873244187607355601863955987067421498519095411762850190606268533425220560366585569282261753585202767103445665033463677940868070338981292037175726128622891380286920534526157812801940569380655430423677320443468607387464029016848550467294389409035626372797184965875770579342505216039272630521188142991338977160424417989125210320975611277103004779142691382679876597158120727326830460947240659833949067557244330885986370267074112739796739965479914182515465398906604010955157398675353510517088596719076125146039390675616525952322054364161413950015002702468256311895072602517670552223837493629033854665681949097507444812433792207073347373020878194794389924688846399103392864733269065844044330103923280125403258020271006155707525254541014930997897338641221495526609957575565786087430591486476179583671591307954156211251577458594631577428241865909534954846302865224632825674715711322266677651977724116744156271308476850261584782904187326808582193136518337959693820474479470593693157770293921948859689758832252583227739204687855908167884322969220609663300827561712673192832643425854941786709416344749784410455119118957312559267785888392229080833123656658829199795706939004253869800927269472036877942411572952058111106595119482173895789143245405062739948853097261825462260008498930838433109198845201747416946553941737408311955028264941134385333655232932869706213782601261369256244239210441999004987392583422534537251810985774470665935681098294839600000465140703682205274169331007321172482584738628891704140030914023984329503979664985642357375829862808645898472663106065833237765019246367326420444383346043849193643534757211766933691209402420252144506289533482555789091150537497066554136020484356272936020678897448333172807291529240355669331824273053515940671372944907773300051943391767199987414168598413757764828101696528125765095992215665363544504782012100241390654120796646840705712185926814987193260806451835968258639974520885432263504868726045456749395604959011980552599937134083536049195428454332735899429270208018670200225288534924732462613452711747611027029582047548784657855509490775017682870149873209513163962273181900733595311251174878149243087687009666155189487740731442685963289604257202229648756730428143223418339486644342139730865135479441276277289986513780531766063815974991970593491286967475604456895552695185236450950342273663538575354190984099101479072613155581425271900341251725344341300090964552359195089303173494777877884397033249244255466641945491688599405382313019508500583468432824066689574624147881110609625185423450261649755865965490715938888454489878300332395398822812223388350302498583402557594075994651885712489934236262935040266750812470411925519803900204706291146759237205199374901249596601736872187640484013269662627533087646343327121217522177683228904593720210966774932893375663364987700807962891914114238265587266872390842301793700980668886709532741688732027245149757196600976628843991890982017638917502308280768448198181662131454503964250631850115318140696133630920587258838625325907884235087821344183096282781532704059022285732177317650864088201787646642869084683115027123883221910293531345353331437174564568047325918253042308106113771000008057019875367525276133564482793279074850145869922376780198467881620396750974315311104339348884535982942933143304828245387630155790041156959871097153846613159256337844690441015102511427415011395957974413884441554041674663102960166721087354655805997478811362347879356760455479622307609673404150838564357564380411141553669582341073371642419757814254081032046306688936581751936163279312431641898388635692503784655071655105790811443589162569681547749617119628126402870771147667421033306136314033941267259922277181672834193874219139584779127199320985862136953635417203979001700208551113206486336015554800028173535356442411731796957644176119878640386786954455221842259925977175767671629244875325091949076446318971102098774773696294435449677260973230107508015027629409943486695586061593584735031283587617882236872247554721459386831414692097434036625610150395851602876793188979873088086441540892774629529440145319875542964652763504372193674921112194926260473600320534564111520491813793619184047416935288507857831043130476089161792720119911229562521549038703314542039710173334192521345230161592391715032929869446274043707456143314074964261399065837414364146495723779862868200429953467494278062709254697481699859657931300533802614066124289997764523613443721082998604462368411985664979599941314581419476141425621884670368709858768485592431664890634007584113295651122128410052698144638987965185647057786062056836227364894994774840103501557711664596995674923936329837035568694902646991174688230665987701259609872525782265287582887683726695541466954033583014786844212464482480600045852165113029706213298994846921428862755227797490046027979443916701817793547010349628584450061056407370321120766104942798706011051631641674988727837906242428702013216631011606051127972464740913074691357749645961636188966569685861095333318251246528645241578148246565553996569024655660542117067800725862349829459198268156412990327062708004812656486285795439454212645542963547801327413721337135695169016637447818376832882030733780283217840754381112309389494532596577056657381500549592611192859739380426732167246904791744429487887954841856297110928279124455728734443927973562150335934411916114903238389209114040792612711829544833111520774065788769858616250064513786906321609603655641074441449298271026646451930421721365750183865658048670342253888526099413097302770598759507580301076668638219830567457186043431546830298446717970748686818265430097576464259449664716324615298288578543672847286212143998203456805911782491212220863302467033444355961958317449157622650246177884133339558976490855289774371845109454281379228843990084736865711777131629539680463488668521546940747950210951660117206571442800657610690779614913489641656021483071344074395772894823364284571423163489460211457552751231600963693831915390072669328952419679827740750878616516244805983156519053738477350903694552878045821777399624663165767919772829211193972293244977856743592120303682813630478490165994687195380648896405662731313952232889847516181995440204247560312007092558289040049348948972994630146032095168428162794379427195423689078448600603981116177540900723644963482517559007037746892341810826038546770205079880564846971856785526372708510415352954491164054802742146233400829313105882042544177952514914241322819147235809478542833848729774316290294580103501107160853230265914228632980657312032387061630921963313522751755575001608445709243326683562054225056315484872165399488616645606795928642297442643099266735650189729814061762289230434347230098950635221716853033748755832532746770618365671638711178811832950899484735706188839843911827854172193580990497154676477346357050996803539463551226949706501226856768027653990654238863052731403444670877335411775613142486047120943045190481528230868805673740505824831646661146367091429961259529088935546983358337629879399886470591029678388904775230230938752010490312226903693295898592315752318539684080777105540334814607990603719455827126502955601334550941511958254013291964154745751396634239674581695517251697520217016406296260696112293804851458904066094222132077089244975000528540165827385006397965651522246785476242401503956432694844842910724958963528045753440223738086189145006589221106365925289568051388965823862256326039832907402947088797426341945795465209935498617856395040323140438111699455261617282910432815193981800976513783890635808091671602095829133440716175323860047503043712041584044830392035654826382748089721747865496194449751835656703935759872423965266369683921500992939754195567607175588937178113745641627098733456582245617791272348527421023469263885562492741097298286952056740067908403477091913208966284144367573353292665218623132671864408879284442117579156192718498691254149530127857498548807058572971164537245740521453974604450906436540009801786473641578695397329732572048389174827079309036506198167210436914570817186519644624038056822231235500476860217739373318167691891380011412471033084471923707636958994002937622882853854459592745949261503605561495292812417790406940093550337843928625001774279528897960551332755844513384328760566238624136710659072823807238164252511464522671787228458903652784605232187299496461256960694708669123806371696996262396958592561532412081656249369679465777977610612309583060774395098049261202774224052193287378984601739263649873344772510615003917151601870118334873686176277076832276035278048468010481871556231562313450971491496617952210998324920045569817497882694658446838570789125565887007612184149773734447662080548023683573749319515371278258026079978246916218050535655793696046311519281997493349845779115274755021956794775803674831291302145320438427005927807755490542673944885057037638900848727819996846176630880919121455241606601676102705375336781812510322509629122434443139424220154100275798966747896266376404764840842225345310447898746482964815738682557011382547983302571965411989174726309416910435618189756583828540789962333556634767447972816252653417868831160431913135283983046355151145755098926920408939490815045843030830588100725187099868548878309742597825575195242576712528954410246808473071408292996295880693959995156487630282188140552664237189619156540638451908113418134912424537943005792385148198359454377794635408320961443240989222514358583409571469043484934463449455748559081940251667086458938889952977071120102016334071544672784769141543915855328316777481607849145844487295109292953392810795655282044654968637497165947636162961554556011502066522756556364613009939712640108249475851346430175055605809772121123897932670363438304659383705426242727234014212574971623189551970650099389130570167314046515206797542794705598864796921296229758383380408650194979075391389577115649388210788265135482755549502118536059369807785173473604246950952695469268289520377468102609179753481615332440642037081411209834283776298162874358816820195553681298260565254242170928781287497667775831559296624791269941015754409874435864591198835962899988570581235765950531567371753628480235199693912209764039568893230993634300511526061045125950491567046146776772361140776602670297831542170772421197336320812941109964643590022186032732799066420984826633957646016514958372973324320092572554748198859801716703493814943298688486627452645122283886781266454253655172259412490537601956000753883286468669545986171165050887014543341704860534315996529315821247614030440504932319997119389780815889420027026945062815282968817712776056772591964142261034731927854785710846894433170116325854880262882668413072242055307358644518394270537719935658950528638060189663769707150058509657108060424045793224951874047217699171350324129429183158657122280544863919159419363302225632132154414716553122363885258680543719267608526106663922922672602750968939358592489398504903303508800860471813868989539547814487033590436184222143345686011685861401164749084846721596450898597069628912895707921905565593938333468898447599978142799054926035315137729596046902881157669254461296374961866015660026838468759929777789496709784439418827074865529340073375712792577776756528631992471036034702914317975198900405449600034481848281778346476295850275926383582936291448544147004790630782086417211052829462896621565064267296822857645892556501921384382419120866922718174948341398908333374162243248095581828456896290500210081312657735818437696257463035706190410204376536659497555822756010844877219162034777479807703397620821908383980498821314514451302793039270282025972621546187869690479383666704140303742908895271510888058683626361517517470553938317363652079141966594113947369167593559970350261621733635709843938026889279981747285147309975578574731810441590272638281817364096696565898397592143037413192155861476465864064560185843590726813583071993790246769854145922396919301030910389068159571518013251614394817252361849195999725317712509535497775309834273569356996290306104454014935700265009554031213647776570609578302040477940994555687807380846657061587900984468977460073534349356938477773423059264156812738271225536301635224866971367238210703305586276903445793629748425357166790502942141353663515501394222451923277427041984127142790538227359637556155247416255887428510261684614126593535919665642792428296707821317195337895632678227472682110075690688669049201277642936295762744347204616042821582974486090225850453173942515188389610624320296407576900471217819735563444162852103907691109301630977696159681204700728529638848720993724899123665966551109725255256652124541979298857276379521597749207626374704555571640844090314962120292020195897013800221027292034777021052922514107088230979355186528017596613307603122194534478718274659836551797593589566185988139525488270382975589226267689979838064021193962470470059405716235776945558229096597820874012735014272588234134599277915653141331508433118495282198418379871942343620514684970039049766955287041377742048429545812324891460248644124995652535833413242998712186555292184629462426061644157628698431316412071890508778278940479980151401021079549687274230940273421403515486954380226781984261438080794444006135972582533931500418243522814596877279403564987529510985784787295567224504793243803458349357800705288884503187613714960028059407697745736977170373585839956867127149383837724834867329506758198080972254966019103897490914084055033791017308969790768380813271974869442346915335456989352615770370485968028388117890403262738877232601774683847647020166714690177162389593879623476095851886661142181748533555322250093262531538828597327785030432537983085878917535517358798119957933989507180088136401163040669813908596670810299168620940133982638182761563152385619131638745665624820439088144434418560799734188259116603064855586643075130366758441279392862563125273816717994999947944695037455665712916914567367252570254967940287549808628334624084476538264411075695767176192934273598130462574925283978462907862703645857875043160514884812550260630685333674497483635883013696577611741765349995955545239163035584832127180269174026833556321946101196751731576887401175643582497487281251387108437970938833929280912685714747063765340383007873564760159636374535931001786870609915320908408292484488660562321831856759764812208884977661828801279656947307589555361346886727108597729522997718450162052440991652832621799528823886222844415994762900409761164381645436957957541690541367268776073249093806168893042025461629625082431186492412179106346255887875270797137049825934934936229937689908747962677731882129613013465305699939098655890774549864295857193443882152882248389040070075428523439349401516993505403783103486681513410607743473209880288982804149341995606767722365491990670037737534605983612931596211277868739528584952100491532680113970764494539635323883786724613410256411794991753592220327375729514826353198347647584549830825977115148346389580904881271126667443532761857244441203513011690501669930501977183978642722194057881363659608936256380259815303651054195176085510042403426308322304800993698779243918296814417961926668152361424371449119863583049922985476715427640533109734839933335433396839936497511970137923717305941306034482595926877006466921801022380014251255612996417589617165179439039590251914488082762142236636111306459229138091358682087489413389001906631560187070195749079273446412941503223978975914060843738180856465968569745833401354343374973010975166812834612100133778006750269310784877944888065853803314468754464050172648768234792124032558096569848467850128002361067411651556802408979147381799020542226027966471218967735690622546380483367164276447622338857612021346359014353053978894056487454240392167121312545969169157521024327557639906700679174986786735581277438338374762174735997356809266085325975756231744518838808724032787560807324256974517626136629064449797869329268744108261967465849442555625917925080597821251942395528024051218935197209034748190947284169462901795179938205685491474167032981047653577847739747304303368427001562640965162507359251055138992720777522981698632034678098528815879041462420470423488314537959814702188779965967808161456866476643368706259437414410262552409181609342917921472111915656854823690867134625715721361627133907281032193410019044293091850843773440839618225740474391640284381840330711148522780392344379834291942929334195014697808785232441403068463535553362709067771851211464876772172856934944394727676976654102723619194643742152825798202151815875746251296710768960450875004812312160030980220668627702216942067007886324293061807957827472027065596655514310356530104361348767184805750681887852796401181983164910688300916660933842267617468419963711072178642226843090451387324037296896942176203633992471582085363238455860888522395229357142032182990591278452084213072158043792948404707144383749484341433791263711358145360317373200805217661521550343223890556619503026316291469130767093276773339526212615364598047391216798134353865693487600337867946393036700017166589194957626877422287606436360852545301537303357870926494434917817060776670515213217184971132815426926689876592359838584761822613488754316022422110674309881078637083434078144256158784329070996902617984816276085433855595059054132625244135684800021005475695697352069602585949235085966274612903437163508498210213864558255052814760509315133828158852637488016000439607228339805353446940698801003115706359610464492990495116124230952978282957024297566801489057261126331307876643554678588449004043644197663848652791955053117618068456677309118887797760529661032016451534065153691401096711027392725004195454086700724044023304680799096096680026000374646766601151480676747353782572304034247381325708715940039159511154481304524101921425814999910311943776310312760456906212516271424559059757497353928765160176547216136510324747502727400304326940661792369431473027120529254659355110341449628847167445850446759774318534703788444766018755794790886851403286342452195939284862635638535016245686381273726729481781397870528257340630412530085210719523107228925221766827383539282337987898276734786021811762735751870798581955038674806753103137506748152012659648816964182609506624906762226350412995360418238582335937438942674325918574231023786969406803865764693059386463332712386275280440634880779043783652940733694228875853276099833633766384735152481263737743409793655296175816785204612423944321266333445525255607475514966463305840889457983162023588007085845974581598674882788847220305962402507610434358402901699338875036757179997269313106841947061298247528243712083212036601093613046877756415910310739832232754490871639669090594186087895323726421355298441603177986703787045307276993529063884751779811459290376498626321269035469005472702593889280709568216177191587788523631493807097377697101130093105488063577575509621061701635404633420094998022400050914024668283504742040675790720725411255854041204909014027067719495573135220543902438250053758442089173510527897942406531428144689338419874358485707557905447362987813692593844549307134423974148613803754869688554520442557762698650298992525350657991626308191412782919028529328095620657238526540023897720014895087526306858738096714369924743748959982098807135654186994824097023746032879314308228491936199130318161172247541780725551104619235223037128223378538059326810387857737607903824225679267526437889809633420946037020572837139746539541189396774554167253073885048986474449322576489773301513815944613924624025228617603191085661902868501098880479316953265862968221008872298644692507097003358838912072535589135252624916456662395304137381114943325503528916145371299711651323699936059649918212389657287762631730504792303512396686553180196558649000426671943759458905712361776251862518917850552373720206930428684189405709802289263765226250275314740333931673499014919337102914083800457930545533639709127306158861939287464531979023245158991223430197612794230828808900158366256270907011045512039413787400857571296351215443501283396532006518884461986758818833133678641288787345298455873972882695135282376951062430492030430843418396827004058645857035192306366930339571408653663030590629505951219877856218004943366147691989596265576468979235575071587732891125979155534363160466801011175089022978187508198907160364066765903970817712138010407659589772495698422520589488380235245644249222528400268308661117262229567058986183422615193838530007190044427604468112607897766987007626928647361851749500969759600839729275109241569156079605805107645317474661701805608015901855837207272947666583443083894015846142803914440936291207198541457827684058307535547320438084583996812247239726903722745201882397588627688443222905395940976362879999068481612187536601722207853370933963119005079929031285273278302078098502369732247993716954862804592589853653165259839025450578197143577910215986127905192279999849127613650494113155320737302211617504243643650649772290509537103830878738209236754116645440031046436003135230405638743395973414517780843712683077113509086968288860769697931454351200312014416995859113445931152373976699149179354268210750429231971855991810626933713209464702278137083020513782970294947870309659871430035515876711308039818382181288493249067874008391472381684752786788140068373285533164338224113240772563120424272075633720624464628712393566390159084048753552896844011967885187828414677074952351465558536932303754628737994319486785703169517051393718404388110852888956106463499573124827093996824205927003347356954949549915592683226363392064155533378370254817921920408485260641922392884760660195619075211442591651130541675807607215162578019599255573684220703536893884421929792126544470227851500477667887411831122824723694396657004835828840248048875839069199694803324530914443218458172994860986362724277560469919248061958459708639491566262263819820911560343547566742304671061898729665623893204558516344034655626393978320168600363255066289931220213536739509339134887489150235085901554023333687310539912745509214322480456386863665902083660164665894187860522696055276767279316161687732970475933240916837270746907201437393649493607916299712403966546114617530636393002531840716009302210705793674854392369702911886436730837980446022224413050262973207646293742495243646897915277723060529795009493458000664026394626743048185246275178691573327159304626764870004106874734651262592061687742747192501708659512196633508580185915680301364393630747966148522822007693809440889150211919363296588051808701653852150260439342914206506632565313840668281410922620803846353009969968630085772560845929497178780357545084657343002846922455035974673898768080363567762694815797205857623610542068201133169938654666152594209792167422138477563372253967004257777478713151027152563847692188515836391455810864141980943636970158285851641533167626939511131701390490317889097990599212165389526799663704782461122077516673056839186770991822621738604024263840250200326272741527578372657781520806997583278735847498193415528807490735392299593534645556332339610757418941985125616294100608564004674527111210566931683376854273738358860162792190586157826188472367714463797570456578239475051702836334062456098055710096712243742664721050759206513362181103882633907754972495077186979685426508834134824469893279815439691547689592829345444742825376078158937775036836381155705727663190284405853215762995552518984934124842907601127041277964623856291098855788037966240037057442977664776148450097628857621101046634267130711646676595099370379644859161702536585862827832392651639234231620113132367878220458230593129899809745619103645698329091511066238308099580588568186526508178590280337961273290207483902807235762708409560819743973769334129170600399506129411034598934398911942921460901749480385880000974676957894665263974313441244875739375685381356154645376355222385344755851365943664266216812947615120112517966787292721572716596303353147597707796668867643292152990842518328185294022277254793560683376777276680702430737516952061660550683478947443318858004098127880417054264070435771870962179207849200570691270747808320512095280306464808701504934875233225641171670349495917784368738141177045972289185418696277146283559885748671815805007169153052372444280661064231026891140536723805617331305021700278992369826640122995953701798740490192817167623682024897177208424037448372404922768745142620251385756104388720515340811572941429458654678514310610906337920665077661832353650058892285209671745738513705104976100547056029742780784154298568573951126086711705770391905774038993871438397726167917410881543239996717724518551843608438143471105408474803010460578386313147842495935461703824584863643096367816418916658471873526482640657038428245031961564649406263840085518716216723585630790222226519045508583127930117606402023923899935313811343043289331715810305015412058172389814564782050340900727091410208500207491267529705718454549479383054344876240952493203237260879496005388853052960529330219263754741384296782544139440902602519117587551587961055075713525929239891107969768783980310638684542158795600532072346163986521661030923950236903341850592240941708329131228770525770744130685136103587975942127138344720644757414137078524664221728549858192635436271089971640772069555357781386351320813715301431786493888317228571468416810800582085230573846935366726427830072693482333900920729391905628154419618583498982517236601135572348611488952641452652785306155811169183002025248573201681032041276762384481387261213014218899977339771168563346561881837736589134486446217567059852264235190390129060579952036146056971541952370049334503131094557751889963066268792871414712223974286777541175540211606185532545686881535699249272970133293466350213115096408421816399730598952596961211103100533022487959908456335687211699370728247342069125842428075787282749077814932030640085404471599466285035621609117185811030393473598218638560627653667422453142720914604213363271812873044334351008772599745623345922386904129976905128086361158512490563589765674744093163519065342031783616549076860487160427308886994383150920894322044333301499712534087169057411938042254092825969799134160411666554631052701077444734270338574217665243110390275501404253202701774292261999682048943163832275946691045091135843745839967154000006385235768304066594764906222921975094642303402814493493478326313982622403622674295090269311030478043789952849362273541861405448056817810326834910623812486498706323491710961599041305205114579554997524401968853926039990752682296589353126459674582758951723226448107999577221642386874180346059624200185413509403238388730004256562697152116573882662972594884177749233018117433921906261796163231518923495667648764582979552873695924918272566993514911664531858087904067990352384957536716435557246277296654126740647688916149903662834750202894656907535012917282886128934933423110235027542761549603973405405929015236403660183612533142057519863763962466831901284253373018383991329428345933829903853358232946238031391544590370623998207171179844087140410987598701158977844255294651329797623460194239824995625233439682189992591705109939486031800673784937710105240921478680491711482967481765029429079025875224662586942283401620655826069213739957755644775837212513596043381602590176898097208571140481572615822272722244356380690743765242927589523020865696218186218383647483165161373647019143769319571569312118675426107451840830456833604284261859482512810711659773834348973627725496784291322358404823275506938878525106773415430343319472234363225844857813615685366634853172596083122841325430690560744854020968542945074815916221488203200504040808006375765673866735989804472507242650159059143977740196204351917730958780647182741329295777980653391308026327773267093589747379182703448737149136517990761372090623797701842166977690064759527638894938016674709616485928744821460878208105879202574486978417011409845471210773936793716559588603438176153040507477558585533210979701706090396505280922262001592191497276631634059317112015997492091099422715211651450301536534287356798215227698232381482549139844614771137076632325254248649645265852670449332932436984533797043978629783894887340496956165850114774150983628746899037781669477837190764717507562491320811533471932384406793511122457726503567094515375304892423354082263275791290984761559312419349592967540995917977420503050520107282034832397522518901828551720433240960934338416181189301612659270860304928726135542258237409624945869593839399300728225704035876597409796400379637443115000053304835686523823617597846144443126899452603674856127649418306930921476077010180687760671115483589049741475549039723408452448690634693497537296491053919782017567030316180857054451424394093666720095637876310026585222009183835130782761685012132734076818627968367373875161344083019743643447708096661026891987854218375901848550364994871011108126197174008270212901634969920111133113555406877429905076279387393485742689217062476375752496720367238439940749760287954986155941738975496151614253923845049230092514171764329960812281360309990864358702560992368520746802781685556266055829492571750391627574481048402314886904327428654053770177635510490485261227444284425280230389429446878172948033351681078954508065148356113178852576445266862041430316175159054412489352122866124922780263916054827889292171078686865530009823812648951453736567072235389338701095682921098009376078264239478510371802924243654917642304277320686261619101207194847700273855533556779026138755365991878551478404543753344727331444128222931811664540937578068456315571727967202046388075582143570818319726568706925503935344405658895668553616578564934829920972727972141563492201764818136404929004870826262344604619888376711744406313336138108196280651254578396481870302473341267858228659843387083615476154718622593462928473170627852172871754355609352031621299599521521774133004183670170026419811177348623801813046565482204682850720100985410520462954877955715955737835364285862995408290792124315303846480583368761607427576829396050125003564957905390131919723068871042776157307209151535379124820837582054872534907241949758377245995190883990739996104538029614019491225761248398985978866183002234106007737311913381581016154417391628554624749907764384586408155842340853662772606204106027888813257389311991904739580438320840481636735317762361191706560187551405271324345749585655900221302464304399746997063899778495951707636462137238480093883961615256560332845025291895770435153945434750838473036103289918212805149423371476082828649007164026968017783569974379154969853715303972011524270909182601508066534380028838135809509231668086007424319171218718467780681059769417502163776209961979554565401938352494055213951906579142778908421573726728450325929826012105004798711235568130209941559075921933373998521361562958563683974704486182481520941945660338461489535925456531142363448059444437880807381766220891120315109914804176306997466883164943652590414863951135788517736369362690559391225890637011872475546518422986746061107241435761395709582220120548765886334997030193346160880277249520725241173285988306368592183817021726548909723794503819487743248956419155134093603348543260276097933090392419266697185114886294738231456839927800945645908436326888500160159398101462910726514537043011531500911884679356930041782586627114337145135291046721515759691726846154600457619308765723475333721451778706153930095367430172801515482799030282678273300205341240272823847093291627464951124093559122099039479771175995718290877877846555658935970872210560565001794480727375252826875970786654794969107368215835326402709540078773886645473872671611318366554125270774802629653228705131778977246480289657550811242116164599594013350311615371138789452070108633605930116823144410144475400258498312335958633867633191044505728704383429295267172759594511690287578039926393505557625569889424675430565288082317087905665708432779169582481326576844989385160464761139894166452764498107598971168449606954222425349459912201614129877398555345207033789897051763696928835422364928776171225582505873350800105230209241116505818184210635736438284601100870847475174236719735765702990925818873324336021847101952386622164204056672521772610422809458329271700128090063499797544984990632382864249060443290738955936546050467238053800465778141922473714600919394457303692260081716104305715978668842740037217718280670619683288210063042870867840236323455999691639911677860878978440578769993844893572956727714277986797987795574591640579874162292389510924565600116085369099682429781004058716427425493420076044953118979781549933516195059244823061907118006105285551258235905404365398155653619649873333760223509019983264508356457410674825214560316321768214217150083032746138209587216878753854509164591016803709774614883897461195673970012922069881521598278052048641714214820817367517245772377595022090687306844196776184888693066171391344666216799301585482647419242411587093626009798211047152183128256920022630329571537748212490767936903062853234290509811219433521838327033216523348346757403375206186852133602889679296987420757062054776679891217716857887854413934779024691483363228130245841644955739164803698128767737103261121090718325412080920660602723579566927492989625931841131186655476426536925973403328702055291534919862001603174518415413120655007679461240782105812578644246712569380562048287668307827946383402993570957878461195029533708005046569981148874548196906674644520591078593833840119440796811410293488264094741047454945014755858318947461865883085599293036111032007179155373398676423202438949784221453243951812642086704562036819403720816340871837794675559047376151394447623305404033797750465448786026143282589675717213317131411750659922481241582772369032003893889253155988671954377844961700172089688229788689130356557366182955153868604338610612549187807290504025368025748666153643289094594713457518753597063688744942356580413281656527026598812781036038145017624022623781755296617190196071091279054316470967271499982062648663224675090093210315635375585552714256177765684455012910806285799236106871538791644732382745488379386280789383953033418747637040077342977310890319002018531484228670833181170011716202483383482722585302206508832323657353485137458273854008005052832926095030352421293114124322369375863018199772715515908230563822937818673118502924419302572744958042389937826468876453327647995982232759523985370188433574283878058724796080519988563559040131979775129206427194877558369574592470311108021590727834272563736771772402794865898982923288414196161509247176460965465294446882982719545936667775454644769116972120406420350113570814642019537536389778376071397003458420573894300492995146667790813189780156256988335057497838935769403780947008008915793874350229669271662891357990536772943825580098671966506688015829408818399186390535393455120368762725865832212695150091414338904312406171001216888307245616787876823594766458286230411677128681867847393462512691314953449343586037187347497970926024130287587327949685894682123427613332981619014587089916737042320104679835372485078256374556811212176932756084324934791331411818163030715825176574610126313650716940617765293185949684642464821379161415304995736575180113379225674949197438511191957367356148007665548283731426347083566676258291487195852411793445165421987702858765471938533651771316057140120214951484497126789703218461003600654197680020726137613478685310272033089838730159429796961363559810026895272079649643288891945301740292147324219582288906759030389425623225009692120516273794725141554633201183523247978067087713763610455536177293018657438024932175862442139979368445245769214730039528464684227052060285364015158491330613864881058460474360221433789140856442021438667011506428445397954047762476544856565621101797977792567861805100379802758626068201911757058839783038941507541161121185547370590988485236769027225899155782315070252527576709871241088023098444992469617585733498219216194753484281400966291726597805660590550143708687740533661698868020129232788241613960545887979490991342904546646913897486105373542477227482648873312021288132120044972882851099454539582495363575328237872494321668951802337500417992528161333050547976329410141709393869184534318986898819166463649795333159155901729360162474459992942748163705166946376663848362401029682000311218728864114185480880523345169758322264773757297655095885445424715036419123673155592164065538196189268712015146202384230380510479558554775333343803451822115469585361558798243611453099872442024919332889852099824299158891939781537733893530010337346569717963980097570151746169463571483649869000391413473276265083014586112172703874616041932225948825470812202903092498249588305861757917280999842954923850563098971676453721437709425688388295042671606415836467100229808815368887226305521282324286596620971890501647816919117068198132995506577958688725638239615707672858266855509521198549255681369985168301021701055771670491725439666510984270680524641110377784043965916677080581842412963535323433117948885344691078737180792117794271947159044334734673642096643628835014633335663191915092236877740692996845086087767957325039385019234303245658368982019703403173347638285852978142807106789283159367315756417589896454291998643804423532547786209204553834465524021524036566806966092361536190624816450338752039946197336811632912463432185034329829299340489682431088686320989004866350724247169296310332408892884616621070845922394967902657763337442218078921762080201667107804192423486177158848668381306223426115955340357601578281808798710787708070408866016096462629056380507048753854656453668769211195631266445335172543387971213573072063092826192973485454213122960213326645429445309747901695435409771631740709067574945537087793823283341852115833337530787230492138427426709461299421050086003638575823123412703022620690939624507765163849346983724661965404827539939058896601143551523727946661516280018577575539096988280037048723579105497802516234697186824860203804003980474218615686777087086859808815549321528713791381912839246724313546393454617653151295564505550782639371203971071298414017107258653682056699814710080491735957996543655132810692100359835920550183846325062520601625956760687661923346312592660556674442080571465552250496539068107225239727048247106992101781476915908132536476401057119323292179062659650102168717481497840672660056369940917571329222544827081256819462221800563253902408297050211666814230205438878863765857723547249678981193204614104357249022858248655366569633203721543812834321366003518859221539808974722531788342136260281728061858326864426611289972006682224271961704978142530715391257694695330474915044860969132285231485633624973770117598002640092682563591709992796328275291112606535626895369128251348526230440316499573451259329888829161607821564071836441882480249231503110127944313140324715124296683647030823449326005482578263144112871700448707811146688901053498002623691895818465501230065252611155518993534777397037376295016988873761489418343840684276495222424130110963213309452579604555661284465195435457376371491035800574833949198271385226273680336531820016037668953214319623766489095652581055702756450225346411274701253606196242356129640574665563141363645014863532591759563564267435227573608304508516391792066621924124525102842225155700109553564997492452811865874116154310930325171055896389531966964656483106780523015215029789300121481112069256291712450685533470210254562212601172543979615921332804453332049289479382610167546262414533811089451865680754015250214836078379814219935665319841775873577910386574317500240465049406426357419358381628314824848127185459497057583077540857766546895773168154237079563513639330345065056089838637059368439598517374185237160725746235595946301728073508499744513372585266743608690770070035939588892631743942435120634905050457032902987108239487512577716810891767165432684625986335003137706309379451600457068517933263393115731797890036509412414762208264475115235501049266664755723137686920960395112345419791459129641487573795931319988698239538767974818562441940978087602821422157682491053271060777761869217290947917655200850581167452860242962674983674928056454967573960537865526471202852342604866712687040598546662283522245860548059587247726287408166393585769381283371516032620042081260414622379318670131105122141728693269930665302963143775241417309725798127337483721086001310790223711141810094941950143851637732108329367618613209812013262559960232355054852405859854932095982697196493145784426202372567929783033688708323726593785388668258734355925214898181006433415098890438880391485421341962618129169852632407118642667860197676171008711633844620769208177282839443537601493332137227790074623137475582592501224563520996318047788641966489902595859145496159713507097415713525090496261893231049039010884087707329544728485627515332472303522305778810595256199584683256183545261767776628776891882707550010745480652374602265958423118683671273033723126571380866865671327912316613766365546832958847392624735299148855320795733257636009998217918142743144808031058835611398375802106630093496527278550340911625357961134859785398326030461075253711857737748767517789853136403944859861326766511215405845177330744334989836136047961895569553604079464528000993212491649381806626625848033788012343926813311977868793590547349165475524860366489964527618339617466397693065341056376043061601209650012943936108944221395333165057982383790576475567792436013477028126019150515989540835349309260967235760303277843607759445003812581788263782702516152302622717352315526794106477032247978621392261450748673637659893067130838616848484576122618190927485696044411540435776278545104214241986913953062335543074746992999933154028079808369884548855656072038794381024966220099023344498110057684598508746772696828623630262084440303143574827847240611947467027065344691977132800052477526224290287761468077807104039252884155369588947471054614096192867583657858021270986913933331688698969973067507386744387523388092740355789926465153876110536148762508534810710378354165907587023462952678838312116479874749456148037441591135326161924602724747029006738276624192889924366810886169478390859576542176627959773421642431047318597160710365628595343654376646514817391174603117965485442145729007898106779686362194949096363803115104648363866299642913872731785324683480169294390461401107082364808345898644602144697510895097508342623883516588273123355214077671665674921453277473338381538838643498845314270093741027294466884433750272839105320154963124338067077395882179318751880515848532955260273891069795897371208200768727127565338202881347259430271436221420547824088025979045539858819347808984114151063893876169049990861761567563993467056535683268491094143170691423328916513895505555315313439427034212076994293516720806508897523148559400552524811415163151898933480120347443892609731615360568258120244643101230916964742854082921583332774623640470012189943518775656004128759645018736334762698164766864083513157227075395253019804675790149172096732732952399506033224905272571780470155573929461978818733770468693525684617258489225993300443603913478464015413855508202015249525784416209641831006543633316034198357637084813622853774786064330299090077374377682797149533452998060382958872040213432453902932652842617108861581860575659335819625081982774533022115517239843962550607754437388543945055968195726158878947884325497575154440787575921890876215211840702229081337789527908060469914047677583788135260911141934041821040560875660721637981437494574437862144814224623742374662061871684663872960312150723690139750242643101918967325434882137620749508277984719823038779495237290314297694505154196183582410140223389025496543303359702516709287887464230329135081751014432402741673209050573545176769848503219877479170164539443198796724257224231384327628116399544601526168741893441774065933400149938259241537304760141292485371946772143482433605612888206041179049584758329413256433989982955203404441865519104994337548545922261260522538930005046496092951175280848970676800951550423235009003972378554671071255774441970455516278887959377399709103907928959495988861821303610808343163008764609606169646182737830372561922183406985052873616433047198959596920994276333324895299767684099022108141257594261191194216250941646474716138357009592851016592556017861627547273565200156245808573845296311990998673501745461243573977846934557192081959360671214502529050091267885214151398505114232026120990857450265567957465053549493122132006317577341347497872215026221618924575924240276614084510977005889498947302266579527576738401804873327118277402769541778207110301587256591458901394357851524198558999205258299133118091878413758178072154129949684635188475327251069627967774563450090930268556865994863713662657851112859533669874021306503731444335961330057771335946222872625443654825274882067614652715062834832110819800556285180146689952114275100734180229617984880472874623267844676606262047696320896724914534074518657620322650861831214293322033286066030195822881800607533239746386381993266240884288157067985796935452157858891243710800589740725930750760421939330783201124092583174067305798128788008789785094296187639038848532344367741806528560021198668067141724539811126678724037884707185133296689202697494788787970997670185611588617115813269898901963964973863012837688715032866933359360651116456364405733408129774138217038284201232780471426624474809980124830583628767862558737107735914866943590346252454938666829147458864988112102959565878654960657334941147326139883315541728189818367589834567995856875125918210961895087928711128634224238228971862255366075479248965619997309283129138223081221404150845524039457657219633946235927109369522622633494407890093504391092320217329288057527627871976527120720016579350863629250014680127275905188801390596340333607047232461417609884013000356255303169331199449757293369486816608600400342235058935764289921081047546453850333754350403550433806638346201466500580817059586299675460494190404554355660248048211343733455524929089773388585303666107776194197666194887604404374641897755577789332814982210323386881220419056926437262546842267115064635090651551207830667250636824138467904945241881954499848075968680827411861858367979084807767448178948505836646550946523907475208079641927687783860598317751404044232567532856079822516247504890711028417042389687595600355709940493238044913820297523458845692667936911878464564617616008313850085167532221778352814040631077177805243044107288818819337344690556474243136131848418860273895926188434543443337174289460976238225325667784666545733975436294233839550267352497593071906293046713830273869077190826774759227475263744274552254622159411375505132415796763274719344113857584611574544752091417298260738961603557437123182345367553671208463938174129806927925865038204155936749305418105345699631495918417243052459109193198126503268001919375436176288891962105599957057710792144934645677637033211931670953341190497295923990477505260353772311625179927012261225903695920443622556499709160373220062739986667530535003951922529023170756641948405341355363922030465709695025570233986215369782249337470761760888313507855805680168211581115525088239269664631490764998363653388913682023015365170819570326351810862741242007137650761224607400325449162562053609808806106248939611216298983048823816924014973228704515519436793143363184009536338057330909020797333546455064242533788080583418739993434234934791399289469453017350227320474658975385289861149241686614891039371240705689619394667827661992470647233359247504790944328111042793688175161217538500485003271421951704340976993876208289196789778625072247873432545650409264515021362045515432122987909570797472893346639351393774258560156841550137107267959785956558661173132900946310441310743027331912171456445525988738700976145364973600494085070276984185855812142762280401292178661663914460459477080538313015475996570529621992252234326157159775629898127588915301774754544290692428583491867074096877429823442093914038410238451010367101942530265946852109986628994956113730838281020113323396513624726978120306381637989005537076549569314507894569274193822730367062429588187918117690174666855904481714813948677025947759783939622232952164269412167238689744888202362041363355009768673806094799107617853372031835310071644089012711190465780308210760433215319635843151984589248478967585226110049723577526021750618944898023528566423049369428255368716439448086202913415089506231488777324881123893512227806296177964736900887012358540714783350807165673947935107015671091580942441160925654418657892106701825394276755258766605614352407876759700153345475698954651025534119120004639315471550534499577083835205517953245304292029519750354220172821197598916563134156811247296982934990930345619464763547058842865172144629793750790362205817655026410468755913493651528076662396827595881604308170202816433197591297145049933184583250446342670111433320419877784237718134781436123262924876414664856940013009828116396084204231084785445295606327301234921938804981292407724124985132036753117821017777045392073594246349155580377415930180605034252385970411045813276965728984754916191743922749093654700146635702673617365789533916949644206145273205733759618906760621270430888129521017993671279173595350137811755047262498523538119009831787582099311006175449140747554539929421552341077002247479627529151591738858103073292376450172184062334672797003848045509004485587380886944268788620852909262019291376822452240178070457558742006449685607508525890742901366399309081039840766679319696624814191870296125715952213883749052237562910646829172150325978806216737437004176115209078865033186696499329440411234570003122032204914248329614626917773132853916494975875576536648451459815324291451220094373319364825783697923184487425632428380293895286284494881608604278294204798918200448730693364272808860313074829776651243045843980059099638667319334995154959443399227592106154562073045544330351319498396025542246804796814241838982576170005926924799052866781154213588920482131018714524321644696335293714880349550424714091992373637397346849439395290820203744359399383114483034909060400791050009153303657161238200590219898314346178757367743005194598294617419294803465550242511997026444890761300336191161697725085038018496253378348525017276135137096490330577250508491929055015122031227623310340319816570711274651069950256037040514814231842070566815987917713356908912136699004604986595019505275467985257311296856157065010859015628530866802031474729420295108795919666849715415390457770432785921998634891014565742290327584250183623977531697212562827077804928412492211568272277553326616700818645305905633919852006721690764081575045774021410415716866803987417571642140375987012973826569012024008781693625690691643274337981489910693453741017164827047427576159053748866184203944732583715585082118311495320880876037450317737091781391801498955791147184390425758495771762792505706819714924494920450156011308507393408134993437166138659888490387277394816869605748955283553953547388445769875653383479730057539435154345020285698380421394961754167085633772705755543134726352566426558483813770322389456163209601181031715672588394256745110148107947915971385433791007081375913552855732032730505918838608781405495182000964277185669766456492813576476944563089103763055101698836001002793655426736446424907960258430797887000666678225893225455419586619788647804432504613660983116433563988268851731971236390824860577064377423377482217766734708759034758826936168955647696120574875584194447414727387822878341824895000485656402657661909223552163423459702773085673682447178070401025792093927055099617453663356824964120727393745225697308982388956614581214939304764226068651201365696408163951805122022896795093237812426207476362042618238558963459622661292763733812282822580215795528777824789390543691579484981901880687229801327310924464045069006198131786131243379578528101591379590595622236893862512939242619817373308019274962972108627519867266594603206497043091702377873224146124570965517286142751926078926894542284441351698394777086174786985629972584216439048885647105304067874787352995781711670831711351750552486698090336052988505350777013689738266592272880453906692554537200364106049293748929318189260960882047470846131361839222334901284182287230473228446251219574039615826384716844370931999614460009316380369322975480813034719613554290624068645982326252007485503452069821632157042670289483206426883010655779332776637304995370375463311720742739952221669180740097573692991157338304481665439071258267530919314067671086875930482665757044648872813081673175474628988351353676428509868109344595702242009632925083728576757813150683224714708062535505948765837427815384428444798975887810850136101970053634143230235963290538236277045654609889330480095943403087920278977685925903580002288435785209858313686185149700107748254214616142792967986206132715079365905062757906284913128790469012933197835669823409425601706567247628375934977437592735086089471357567204335531505073832214926473776044364504091802622094455266939577092594910808154522981782478441843199626414420992312542612909140271943398365185399958252724468041946335531762364437233375513230745700676005731549599255540141537254128675241649988895692000180873177677662458749131298228187256610889043888352840501360926713168607340803504162320232658897246277832021298809662343687701780204717809522719364272919177946343778719488907642767563157136418485674536332541501127766495346527049975225397847350244792470427899455574465895245401817439162263874937807758121551335328429909334711945040665573548517404457821520381655633931337892398887863011519553684949749729064945471654643987640836833602268337650395549392243865385188177415428463121346860775748563239347257704402560167592007185586416558118014965347492837282577106093519174019313125285132138976173247735645509445835358639288218195324905337142022383188134224567790330436317565207418348024429720737347589656072164881856753547543661248643966031633305376582711811656017507453641665073464123427818183853684550801227482314435648062224090595494792159655826607515090700858141349542696487874030269190455188631813083145444846765579888615486521555490920056097850549112009870997425647712130762279821434422884013499475161338077833241558271599171925704411854014270122105372599437743105846242738052965801441106730172362156388473960708916134832923709318933564542951256120028803068845134859506426675954903848503561789633444137839388134060517405213871159145477421427893833561523259268583139175564232281830137929193053338286554812274925763054639999937948004795101833120761295739499054705625630632051787218507214790482433241399522143442375170630331054866987251501006797276737621966549116391665767859776850475445173639052026556276950966890251314630162517865483256530934612920568623979409866175197070324929830823888383682128650909251995135544161937794340691040461021253103974077796049365137251237729649352985292434129902001989100845165955568971593295241949086453072058604814163593655491606083008060669205050757593437780231465055859850372172177464281170056302567180751882785559097690188960431833836035726959304425501182138407830085908543979759201348430936614384709468738040593746112982672375302499210065529356245260750372140535049160355941557109019478310348410822819049464062818636189166786513805968389184205434400565887698580137890742106240744845798804238341782957984960501402664196626534670753236089037417674273326650086313663608479301083689206337829764675129612706261661162112339636004290737830362463433371184950964734859554095239393746926536463176623295538412955372783260233106565402576556895858068748702485326438577882666421940683529191083268850502789861157587103603142069630805720905027335266799306103807172913797474423425365240928679654276570919235149998047954533603216128879312151348641979578287057721448027740299819058995410967282177756155906580066444560199218606138883430564061767588700703514024929736599603411703809659622461961022522134793089612411318026526180612693441530705186640466588555810362907401756353250912898674676953916675451879854070776916532464160443525463948780103295666724002526038909784636562745565074743985420096368320075070016401833151383678481419630117363010637384373683842386021197433159256062185652108360518786888247325247952543905121076992923935443548171478655064619866996112659782793773122941821355239140058591568236318812594496774528930119528531628902185234252097429265747182269690671036778743736884760735182503417674356179846190083862512651787646664207326980534257470072685492848596185915361896409516433873553868218154802594594275168851961866134104287068633497429838515384242793772573327484996632123330111854349365277936364817715003760072599128031494014562923755024538650954814105098255660725174535059947221954880100931805777006951830099428006232408944429557603522582283521778285141421929502651097261691155432406543720604744099079433970843439301884788384587022942220145709741560388801814159021731721818671377758267346793912937513757721624101366439053888419802394855483741094849840799432876689559422203450062598252264856228360851206771522217045677837453732912056426784041416045093568250921932612222486003752816888147396310409971049979459032050438392924921068460849158494749936089694112735972466594941924288093613437107048286741429253208029844646582364664047334931114046132707913856197784338721781484371219903937980174310285780628688373945436266384573176062326345827210655065215676517992188685624187945413893110518800955814200409237892010838158140199914565890497803231382020366622124255498188564408275226773114861860499180542440235910526093939911060186699126494987284122388534792718769983974195556526429205762921165789399523265905824634991510785477538218664507156882395384872254684289204540890578747965977432574729080691153346042909354462421051872907171897977427388491579954060675969478992279646093930333859252360934823848815026301486362281012469616445930349055092867209667782583091709840836845412805964593554639420147582345286659412392243730061679596363319900676318210460741494822030631335535103724454158194354476009957224556312497487634992194652616848746223338039880295871909614489990125125093610930782473459672938687095332661277974039129012078120562348092281479878558113957328676175700334213148161267984054053033261105173678044418301498256015225898191150789893319897682545597938958122677821391701257339760112297404165181924487729761308167220330359024226192185172147804538655827514453691238462716590183128850713010144080107164919207913615023072417146380292087270993317028770251856705381316589401649574075217046004637400161314893163931333770456172202984068614486703437258349104512734674012408456759869912609083782563452149548858508948648106512644023451671997083360378557174608552417131376056148801525280244928394868909498652499577858338538330460774726473787332487699293817963582427592268814283358395108413186212833046605576328019358178337938991394449302877339654805210552731731638054024811254725904593541612426371881874236017785747080990051956870470381219878630812616869516039291127344326405714640622737370558007175320870849820780249600189182132480653932145305400906315356566640234040932510355958751873756882927647572413609063414093622167591434299536786780249969791392247818123265946467719225850744218613516252086694370107346591978376957468453158534365256444293496676993900088540654728511332708656739571286469004148879535462957141460878550383939001161721611597390963779899986073197016413695286444818977014377176962976267724809279502577938116403626081187496627245506687567862135293407739127446758203031700870859190267270388138904841603968610157667007109800889856703574554624523058860624421969566691436057369683428413450742249211654931163676275529998842390457494915048097514741099199855651041982902311056355187954622686500428073951086322771284384211951722073226220054015462180688014396139463537792985398689402230886059107157029854439399479049916653777113274665339741827431975233514421513319708279470562819376517267825835693512412303578285725514159687649812346829473239567261532354845070088364534252238536960737277880622243395176079866272668074964510120783305592481761037863107427405131254492303581839303561773405594231863898467490938178873063905326246240614459013834845917618952146824133562248068168524258615465889490157120983390835650599357348076546205135293263060588197746288872107150229715424593982091825363008133985527284963026185714618872096363817963801057752529499118785564384382472701107004197208897688501172630557092744486774244983986907797471320858845689960815507541225658898602813702725274545087384068427967306673145230611990074967885571744744570841766576536900055411062043765964937964748257361122746166195927307735897592044040006921248687377187416404905228609595849580880087956108805157933841539485909384501855730493036045134121251586466209137176427493022112430794755452265816048982762689876985499199147404346107888479588464411066910779949805196859442600681022119253471903337115680134341145673881031106546805561420697282709775451006883623628934212209447640607817703358513637247421838827003450049040879171262442625325761208933779893991784141002126007741739802270106826889788552270391398472025994579528387416962605179187241288939448424205530209289521809401519267600504352511840518011726238171466870178802117504246583574281862352767198710509119792236916780118378385376214205564856798142264714155878714159461745187949961348812591538603169968880203072950898321029614583491950822992068263771204389657672028778286093814873156076851347599583507313304252857518489764438378329695148664404396629233065834396628097894621279463657008216306776196234560274036571969322973706184527287749360277731292681244277125524594619032125592312899304490713230759382857776993444260981044467894275910943735243443354125705549394842880434597087427297556715623903393711634603916147214448846916138865066638884889071438928829976699432861518835321292282311515542148765287318968009958414989847297389676860852273520227194143585791219908375462444957052899488805469514653944377925044853573968790486958174567813350720588793587590408452207532123105772751057783036077188291564795880368196239043796977781464082436857752282125132422616437424561511922960993938076602572422504336121097099807801902081844328319897641034402218070891942697280562840528053483004044972661608712217720936221673896933879853616559142276605731379374375970854347551768590304425656097035325480970855949991251255443365804315143051711472079427160478857484968595459970382412760113974259146662496916712176728501622768678100385230319568020723929503314636005402826011899207146520460387421106692645640194249991605250685220266949485224509878113702155400247721160339341498415741392531387280198018434251674641631538422509938384546303742752648365786822370513147358290476882430241749448792567164254823321126842744571072889568149654396356946999249101165979984071599282755542605209750772719269140230800475810282859693634776252416913098767736382979649612919199463357040031337060276798516614802715862347249102563720040562619953524619581739707885460376560904784617833591704408666554702634751672526877273507644264306513184599929258460263784344393975883503477327173055213194577715005515379098486143029637836534312770976707074795573183597083458768138679582400193450268856904093260553628318725456019827092542471798305742880985516243298526095674221355338082542793258034297937191771987194551338085224370392234215291844646102874240795011386590232155389657420739003175473964690116599438185455719724526730235842097652947736264456704651142995912032552363375903400441709239887772858282675170755762910512071997098621289842158714625275280357588074004044072311217152494073182950658187581147061092575671626038672535644416190073024541659806557860415167578995404604817064402174293008461348169919089898169482911347030522950561275743768713182608445043127216393571263529294207709169810923781684484482812843551839225017408815176817897181992270925760919890366409933779869668332395430921477211157222450696749023982834564577793181088064911198696447015095917859576846279346915605604744974853996200824300223369476701611855666224177754436081494265724965559043948788531274187817311612328671999245440014473386755291853779372858062865148355262751944076715090379738299636235251462450608226753601240277677441649487898238330602647059962399905759939456259312726349439164102374304122084833829279595713704867610512222034968562761447017878992982595198682910714827876868236906029959146834136731443514532197766679716291098375110813243412082986917445954756066313809718864745726153856407368459176160485708608508601710734885359663542386335336290035941170277526903464533508939060434375380202927375951760599279495888790768081952075862143489786046475640915010709880505112289997387171478853356139524119812524255484713270196664604805471092702577620014569017085372434419174804506892947323362821835919924666190846554101444972777956613523944863136073943191975959500345499242148871882430301063247067432444260482863442590871127408860772654224648093219951438226742692887681002580535831380061947649586557621070987403530100945905802575053924952410305605844732144481199519107372907504939533412462966124860230996061670482671110045952262683276469422354072921821844128539329383837791850887026361957235452914474963295118252048528975914426610841609335630393822053294620717998399556341543739434021275160587811022231376189942634056044930467441218827149298281052638012473140621130779949933914685328085236759468907384172511580656951733838740311994006998961462293745415553983483602176046351320982742191734787520057908398710997901606800306441866700501383449064943519688022138973773119537011674179776630578812412871981459527119137224700090800337171143534805118317074851300729587791768978007102593493229888986999097399116266644162107642728724151294418578699126646650078336079256580870069775986664883419908376853811210896154628540603337396879105370445278613664118795527826396471764207156083159940283616119027182617767545801141439040583784800101795575504298141370131194312244120315019472879275172267245821132548533459052295040115493715975347103150980713760552078739374262355528053012119285485410827175691304861959058220732825444159599660187867403259696419711754581998770499405283116987885155208250854879829966967473044123085689671318709079931862157356788007644720284085001089339937302540641540702221002789019959510945551595556342566722391884120326215587162228595271420372531775698764010536239258247363803093527015788886932714566799335833207290957795765689404981201233835607443362703342830087422020067672558987870333941885547602034309983473214907273757130214986816371737181260299045785320031084003887853977196570805395917807345778848325230206410012242971194838491688585824576961891432299013153127122646098640770517597371668616326369017711899255149984348749503070352201168990084552486927101628949885231193800504534969913065370784127455157141480175184818502728636939009225906032590033428958696558339740075220647866653051199050069619618050413571910895147842415573017730107790438588424717557078064676149158458575003702355624886250540642443053209602872805179947463478353455971952510909318961786202507873608718091198938988118827488615065643195198876051199198029379151189104089748870155488507081672469709564781051625667132144385013215447691514440594796845233067800243652435035900306994558078870682118704142175252058052731907893151420181650602559900044609420633194630638667650558487163528292805034201893521331325674637085532356261811662457541075939015661510717616118823633122870295143277343061499263618334112882670498258239199247001162022822329723701714119644080206416905219789436522923164092607379280550080761092770670595631084667954748471242608699743448987066575586721310251076467590977451853322610575646401598465523651694869050333642749676844559281173881830178000279855063585836872688991378214091407727409253091495262844229409830409510762757699641283086635666122025126172830973587329293004516064084151647222277807901425704178638990993033697635220135115422427488024755481447334022880387538371163937134779065256846024280791209207472195188394617640122749378468268877137457265853245823698854321060755131810153475773490795070630315228716124689733306405888511402229240464946261630923122450551183328744033935706558596145319775517346608679256774698995529417928781411771799739179214743574637038795370471994321287054415833085389234511032272628143182664618465609452301967494385972303936206606831788892841046225896109415558437179642615502717100866361170671180836680055325654168445900536206536239295421197813834999234657107722676992222325415281628554413494795045679393568070402652509338708891176964131885409770430204108013984598652301595268636514182058702332254101927035279266893195273352269148918849989156773414084803284357651121507152425620371073027962592415894162706776207444263668686806515641768557523169812386587288084521627987544817974424126740879937490885511908406575185568814875353140713128782671123758713140527431416527938250323944908292373176135915509878077806695932411721031407196143411297251932719724741545325492108069203808031246961144831973020158821455900887259099166988664433854164541187766081440641380756340256842546582414514387360200744720028977880774572846256459137707493101004454303639070139161671534246946383485580238069568241757370954458620101487060925088083689476501070261980081508649753807806081905627919544178956302132944310845357082771140772241193315663343411830056557992928273772878378366677279887682656306383948731595914236169656441676891750062714226049107980328534574749664078336812126227162824884652359582649838226534756174726994601567233685564425862689442535890110551413172859642530872551684379520750357262288805162708641891351274272295049329071476027550339210466643009159087600910459720413345361678122825397599898645637296002675520193585921755116375213409321762286831184798525956506102307676295506822238746132426707208184965414910145149788685581727325280833505036030770630388713423738351661523495750311305811364450607698002046833160969386535436462176330878428981289325463467068336002970803763046422604700771326370776957835012029341870592376470008578887579311013186819065819995675522251313173612182566403551252054941206373609402457632089925627753183988782389150457195113518812316921245952239656447319074995851659079318009603044926474400188846862270742295000985631985441924720786603612201307051716117415789744340713701066116399047638610121191660934893577575488468306408741528036045761964058042437480701762045886989362908443226444799085820666975732467426116164642823701561216262548226560602060126193537788757572505288286422022965993626793236231757928181422382950295483361658499099937037165057970028970159109394475815063892185555241072501473369355429138477656438279917493700390617794843540792727988443973336133429139189999171353933951199756343004800635346300914751672700803291406584421116569523932143400579146889348178385812383643994951105192197105080888080077301643899133079034085822065714035170224770816010158752544960391295092516395620638948443284462002043098135263175913739313227253659999791780866784869984096852425831175598868583709919699225030596127622658279022487278303125726782365159483937756928521004843970123505122810355781326028174937329809571824826331691173716012150525009037454608198763699716503088764082924622798911246345878737683184566755434600785827355636038183034097871991899227694143169925665995452636942143595536053871633104924275484712412701706665896885706364224712508494360394364833299576278650109321033871610881374430748711064312462857708850845726050858371027183641821812050969195844746029206569965816110895637578990458743314244929775034457821293740683985447827964355904253204394323741777153842457010777785959749993467713128323157403134059753889856019266718963496296616581908335642389733938840512385905503169739234963618919568438448208736382842063059314981483066732892313297690674567187520150437462385864509342544205601342188115572926669145850700850313242109670289088642345753972947807464051528035251912114360969814594737259088971501066267532111458127523685311206192581013633878220978644444093437197024565580029000677927715863211083509294635394672999665095816604877281983088693061686015717590274925129022007543795293107642764897180933236809590812801876641341416535532960612756671052538688213820342960690922705512577974464604840625032675097202884733421872665682632174388500533350515916362104165750594079816508002551444948737651294542439444448715323570906593940894509042164460218876914345568626229679999769250298436659817750245017420482072684260138586731125969699364126352183146849126073057503492300831928570177334003830836721964697746802123788397612865945965407465462381969510894522977269881868743816834096000597037097707065753103903082771089477646720467287596009770299705866649494696009169261116434340572400037456019048900659458779021139614205006352380381458594894236805192870424207307706442514809905258248138238438138795808989078740789803372102302134356929268052159567631675321163992020873254911438444004132512100050531651870618496555055793480774379317765016032093442737289939492749766224037803535787516290992958873372934119059325573959331961591486348928406197709220256005610549135966061290340203183413607102842422168548848675909886333149239081182786478377318368190019426852801372191263820932811456000296821317669848882657937856905854937826731909163380247267370523886511628896233471041862009778454571047455671565148227799990320164267594680187247187604619467790015157671357562467189465803654944839074297800257578587464872355560453586252289145668208028401538349329185900244001031333895672280753667906772422086901067603187916564360840397481694097588875288881172373322634633233580056407635798692210970874695059215064491397219386031331863743355066294060977134673494739127455170334114189277874829287843053050514740729275623387729419950801995299435532240788121646751902945525732502504671820986879581907723016002656644207286596331855043874323938594873454716844200420119348604909828661881506810285940738156352835639773525369193909927048868415229306907130392668118034137679892632295755561343045384699186079805366411773205955785308481737987569010572945089388071917797526163849206562458708433197720671514336182146601662933170607256469935902786479046522972863114314409547607428446942909489766457795467313029639111956640512408711733971990314189352292974326424656329842505222140488923858104729284292650265910454315350328923784121821146087856575901857109198277623347436105135538537293148438978565558707959390008964331548656579762146261260675611038787739952521936872659998581433364376330791886308575155680452311077716829699421515131835974401257558793499951809288687965299755283168415276629257856652026513617964144167265822987607606483341263889329567424956115521374131372985153286517047204877188400263542878960984067907369474609053145904596949359860992048773570210898836099174571566414992050967633218552614697448019409617819125640144213746068219514646223104742772351584854228344199449247858938341369295501996261468140690275846810459778140921831702952982594745925248574972824566388713749927594239281236641179630581478926669733945077603860998185118890593284864359437229890543665358444744365137600442018925690835331413417964601799653821079984852628121035409671286691978461651650364345806740118348133248159818121917899821064850509856121669305815893128851132684349263836720827754691945596029919853825170781723458074298302416876197806810571277744345552167264060102363736344615471422453534671906936131111012974413053860559833999190639241882910567670933744549766822129041399126261889868662631402505699448569995095295644154507035284082010142980143763353269774224888012882112060387224294788795849013599292570490410416301593157991640160797126381677704707177069314396079540126161389701552839619671304341373679115599986772900681040406502565033571475809170413254344043397299677934132528719616735278055273589364283220102639211693713548413691533093521365694268422831689413427115453863013842269873580783250627507951697125144093224198683574369060944878474814016361939635035126901224398391856923975933591537043933291078353974666072328163606996351533123649361311175367616966132953641195973946949866425503088978855242560901467727492147022730789222327452066737509506653499224758283611541282953971656165556114048687848096179390006576190375080352438416782507771004487696622287955175915470417443202541851703667492132739626572166843640818633864687616538240625401308527310140329585362329298700229489235057623021387377189429146326333068632291315459696498786525499650902476801133383394452372623216933366114427316868159419143668228058981906613657811442721024550165047870664607372150597816385891808429147537408539146849226587231607343747212461349314388582957254789402144938990785956713796294237431196132649393402640718700994679949887571482397232764635891333809521810397108918406671771972219704405347868852740137530702141663732226529138486099160872303964318913349660978631372392904137216358256603797525203889287518900712007368193705312159988225313539008213325520832254554136083858229181207567616636571086132832455820589313970591880854725921869231684203557167605623272597304528529178671823153404585129522960018789906877996362391307869328766269385613982850240018016816461056289998780083076185945184585519762526550676768189624080313780894718174148871127625480087675534989270020669394732145081114686999148470444497213971482781654963835454897069390013777902418640345688458481176667579991716525130140299138477645845698209455382210228498134261792744519956139928377640254384125017740632569226605638778625813666755069425364182975034788347732629636852386135970727387940584134141927373024980473066132497895639318017861761310057426270495459958602614842866899196649663441046332300913410645954467417702340558990466025906965264047938239461995653723859462676894274146465113390191235034125397769638429017783434698687226982065312629150843586679459586701152351796671483480668390379134512420647317950039884728763402826651073008306076189559258882245987049051585058573700227397533718134331928317098469851819149294195213178892497391751151830560262313042097163319626357052542056594351164593263840186456215405723831384225108745099530358437574038673866518274357129325175787139115174966210265467963003060969323374373955801877486352177790440350143437427113642435358166520030609615676631579040695411915731710974272759438579550603147240380297286976470655651327964297055437165603771785938615518755138159330638146052240522561783887567762834924309390595304318057708935985530519346673564826202087462339482369601866626490352251579579185605295303054661947732625939930660746444028293024953107064108159750739692515522086072825799548595297325361073509453872128067201875517805130493064107716173969125546636982202826002340918342248387138018623148774265584503295935170087025518246791598349268603204892674782963274265436457396937618949550121085716116637159009700539875880802847035724081940844928510313895315742541466348089675672524056977340857088295145809344060296217702068538537262536430115042007518150326167883310218352800254558703279715207320207377743552769334700863041946846444290128936503544822506337822985663731037237670072359964601055404331409938851656746180640600938488899794713097277355520344519398018569709019657494510714281382920965047199870687775079762040657029616921131460321068915749111645644747239850148967195986462657347777214414975872546754045537921024705683284000255502675179930604647265351271531638986331487303420300202095279767090994625225214462404612623084932089607144155071088346583584474472676285145814096104012501013012864578266645600360155548411008008842732541882525891713364304986334182719119118270457582398404862934617856582012693272444514943641246971198354265127440527882538323086900447136774822540540788549916788608808570452210296918648998179049340461289409047686879968381461812903424967697638046402436083635970923134036946332021616437199255243070281082496383210076966672632591030650820403568340732388429122998341183142561443576310827295554534656573169657615986492053729312385521511619943924597712971640449317801575908776086634002604710746151429465229655719634325526311602532533202120959263237147060266732778445947535985964968359801273642107977532004076222849183126708279592948601690905121341933705165069311443146558536528756759255887066063646767384348368555275044254009880468672852145096864589572858185868312933615682612160368672294285129102651638485431792800415768673837006606587895491248350044737311471812797465804283150220744472640750755170577838900397474055049101022988704635244034881576357517694047541774792690971290021381534820724023835390712967238433975648602632024223005613033712495291241043560775314598694914825097473329519860471301267180430628146808260252844888121901416694537372429680408002692255373647974654347057090612665478938989114255397033152350361850879273917401806611583901445392917887957353756246437138706800076009639618623947043776637644479398721583385272403451179432776975634940329511126924563966716907301805688379519737899422646656123953466780792767892792854731037518264682216520511599903131982073447917533496304167297291930083887674116328060555120499879008512521095564295778055127111954921452138324779527731454832810451729333273377123326324255365676890735986405230972574820016536892743623285944282400828103079063949056830606076049672393113521425867272339470338759105525964626985591396705554185297657533873387281367191506843511983212311677047741562154734599683654082585152917975719667655268499420426428793489486680832385434223430171509294356171602048898052003895764561087496202449519489630857725011532281723615176541043441819194256066933700064564739721553576279247769309004907147237146209552726258544210467283298464805586182798507536081334311653071770493287806737580900290884978229533841237791611237671257569456389111705649497058804256716127381174198381615609119316587607609980753859136213392322750207124260490572673797585528643571787583922369742372895256345569781714038943952350046212858594986178384189850812190242871595395973618350131044189286415082589569963511467675421259871345364368492912392169985269830809306426688386872363392023531300844697375258941075151153172913564946792410580113013429975740082293935295973153168714361392961920883462946244218554898281996794177988756002516758563219640849934344898719048328633194547075674560482080986427829585557031540020385437878007561452106036551191253353861759187258339935793526388841491000379103497490880033481988266942716051893109202506539375426375103146996773212593927433570117738410232705495402665746357798638944599335368125329906283400272649146257631107018453142829756827367171832265644541528660134559822978384485911060171581157091055202341665570707792809905559312392406927549879919383577206440054878597906562965402995541979032062178623162428453211296732019042475020026668559834697004989366364590372023227059201260835999838059834326191028218242864829441446617601859161062610917951926993860709801363530788806895115182641664164795269239548704463218156871863144127127764094795494598410777137260231380127652137183871420006265712724434779336015066697940743988191150258287984197566704912761934424743612808643369544160511758364333012164327923385146303615832417830205176969133792287021554181314142452136235599720038152404333177573691748886126158272352621088607284314381516243256971941792125052303688567151149188134428036828759536757081986152061963462916722673948440832540069254829230454475474190682307362951194574162660448071220784062336580267387401323831548167193306476953799863149104169475430649602149863023928217405629654707689244585385368870636543073604022173966711036582860359771507800636630831518385094326926468542509516666790632928674920190491523930845453654244482558020054925284678846359639166064767054360790344022740912650469601509301661594762961312203082608216275423970791678056208364778275936119736512446767366605365354952832454498973455439761063321159647556896523932786503723750372231748520159385042488609654010432860732352043745154427063126520350217854902881422658520096580657024442570063450246600731508613973910346791873228312345896895040255943118320347218181982181734910464868375331534888381563331297385213961997399784592247133477784647561740487090268506760273605619280153545043907727994767080534828398194924379569950136848528966868845601494568074605028444822036477377278771405459394753483180929233552014308112099857838807326301108207194894881167855285170114506568455557270583950171072526084034239483945198515227170807065828298342822285577846587208192719818364862541498000473289361374410486605517446442278399668589881512774679655425744227058285724058915990439232524376186880791217566406212062323422746819475565176986736371428578225718255477925621975408240722270478050423181442452522889843965720289826005971637147756750301965975208707979141891060530706313820282415293815099097487364219217933976644075227192383903352603310557872554141318763167384972584835892690497407368009960354379634424438349178963281912618621463272242699019896582413208140807458207658555440408408004870627924880422343822952264614522452045869082424836678295881124368867275649857100698676155478705951440090875018807498725306554525738162617020939944474232049762374426056231651606126102603254596094468855053314747837737411508159458808021122459607021574642555513229651841450233496611884446482827303807248163549970569297192094754877554263870429134781750226391031406973728718545380062405869787460873315472641754416588899360787757331016866440137550135454679945774357313188625241871943814694983042490961088179816506827928643164527030100558572698452664239943538429087331101366726853148304664135944254011762210584701386959451892665989830996757402750823273323478841283104974955943353570430154991397026091748417437254857106653681696617011948558904614071775083563284462561849677876659690505671527785710497729099697636182734263065418452849455489657216973559408226956336271171654103079466963015552323502773296204179651363085575351621147145820797619462886913488661991973497409991066951074869185574408994113205392110311576582782293245682045184681684266544081115992084871906873132287609993781696895262452891000971553190478069562482769629392276303966834593745906927488492764987629843887906428706507262236073278599340538359910511367841895335383331331755469668150115631445772543951716010908084895515654624596018537458207725345484550670981625934418304155049704376760583931505602560956334850941826067045049083143753823200892097364779031440961305877916163661695023551903105722930615642408936951307394423423915539006374204004105783718747366383924207448801909345767220435043414180464998778238428667708269364603170411373428730120211499365616985957271127007466734081070879953080000707324108620090717847401435969969910960623166233208422117800614224102167077547442421010670626586297867341227373956953873241722142654690284479572384100321466064298112602106095572757957113367074069223695800011687758754789117065827948191547472462807710658252766374337295090184533073605387708158884335998370573231299951471302300265064735396316756213983552963270912140884215556692545592330267547220287928149029031194344934775753815236207429455100208446167923201824890320902963787079576698172390677170041425426000954457747562226838682573836907618496901028757447926650050244744779420181336988437547595123468535791614772192294378487961270930699851128940634116096733373256792876909606098996560695411912404333521978494693176056726544549749576309874724799302082751502804505789148180597635917226103121084737464394893615467356654936358174920071101188802378610837483626360645666039082243209861472760190176871085900420198385382046211194750398847615565661599181051245234262966614589133042901168312913114539884411295051831437212208720349120434854490797369036729824837190384741768728764829984903985889843698948641760250302104245986136311784071740732940158617128066317113370777830388898312772885928239060866671406891079033211174464398521137718109287207547430906362516607739206802050844280357265931472579839391100445111596360933434307894425396643950754437370447156197953578415395918958235198369221730353415466965291625692948367414213431917281130502453851140545353034342129986980438726741268078093589880332691414710383825531113919498960266481066619286730839946277593769450987522655169409552416542353441777570975272151107398273978922575210014912365473224242610786703649990138084287188052421255673467868139795522506883683715448290260381928182723178092942237345466218624134367566568523413945621466194812884239723297830798546958704160549074965683498450931777832558511095348865377655731387147483487098590390543127765075050839318439848496527197626357521181917378259135668277232365813885743646696290789199717516818189462980757613014962242533272194493248620093032992808174523908926167512592944702839072327987185520634743807433173573913816477248061286176158060513374681567722885792759541784991677450189074290040487601372764133859905064825348708805735425276276335977259561571677363451300917579193600275006648903329850507935364945300676663700770830788577763378344966775086204276645958762221588592917459845389079925367876079895229451296931248022367507835099489254742074270572883655023597173042198953785630396577022294870918019624508101353291592985936822653017344505449628208528360920590072687958497869958561600758257658141574877747065697058184874848875995219785713565385964843592788879604553277478664776534884046076452176648626580119471569468622582298341732418877614397209093537780135570212987633246609015699503226848399080066362890021589415374533595865521641652174022835588606804582867321459957094418533703483562892829048035749493701665861930051466579170057214573716336708805223423719515802041266342181074007686606795429583549250343182261336068505271190551647678077171232029130033521450941317248390475789267869079682881391470660941531485649451637154061266738624510018795448524716547632812157995346321925900074255950247033311790412567721756359053062577611381636885716974247934642332498805940076538098901438165135206645793568455223721086949557352445138453956508897070130498431548044912501919419079714220380588554875466386969675925401019658245874202115879723448073770843041026015775025791531065240426248759564746790808642958332445339541311326319835256065791308711049740210045420087869367731946143224194750222737832462639540618888911561713172165247242126316576648160786717666476798367180001260543589889076442058707265171124278318344808362835681792385194356753096928630929741997985059154648792682350682238908759333491592844599321610838100321388126728124937068614955113754028994576059321174612955446536258386759497799918089133647145425438171122129779665041183788480319799663580463622906571546867137279293523628582119837990733968908802890624105832352133471254851313961867182791690474650782721659382357377363721844708888641063253000763129311250318982227474189700740830332559466836997407947775327377658714406681577958681977177636332018177553511745400766063176500247869929539665178704731518583883569674181972514410644067434526612660870513354835845074049792822127183092098126669136070782894150626331089385360883769103678251739124395435841196132674375855944343312523095016514871612163347985622622065493155437726147083605515010168542021196824647935232545243750958664413817201637440536277637204641410985130143332732683448900787259727216839584875659810414301858814778084689744053224771372476172548119661838104158321847940684078927887302096501792181324117183299333521782042691710591411242812080151436473830542226348297688766792690784414827737510999200618137209555568456259123086884038477651677802838035216624580213958519754079333437692265826615376953831123483066252737532712191350482538297234155835414374875884977154214923341409800901147277549968937003022864544061767463476597889218335669795156386472005084241299132156391036411155002892256748102760777448006137726022691333122068963164082650890069500616504639731230738406911161638448021619240506208754496161785408096079706896287207092998101241710107528259561213754086837113945939210184438312957876979377337792133238732257430366204591208899537485489059386559003938351436837902429266681739934405721295672312304017658782011109933111468577468075575439283599396485740318707258881923247417510765856070409459314955179834708486307391255296510358025829638188171094056317046917118330241451316478349102837050681904992537248362407448265656833895700738022443321480694422261947735764395223049130945749363238862241189762349902056695127592783440209052306402930105795240638076972332179511312873494112809994695261680700808746592095195457656132199667097399096597963413946458223063851832081222042287032833486306348694455477924520509005202262399845498617096797578362451987363338042252119028852895980805773836823412128495748557873613897497488033533918545481622965254372089406053134609184852452809175731491560562477667349518877313319209051941316248619686924182531340139801526669998673610052423621003029855859958319794840698357578319216883082975478748274570152889954314030524770202988289772527377801289263081994704905542236346152242730730705289080888957298868303620342373484997357504253841218295196920519933689661700373211578714404721842142108591578145887470960584554178654011350244521764572382746917067356563639832358126944642163465977829556193899067517311160206311828439860914343748790176946200230202806418919513733651922509628257218776891758462529312101614761887326791542292529317776546038003154039768443758760929476692964772022957832362113857842340470521608080981096741315497486629382787105976104322856472796626503194056699395117370874963792860869540915630926951660992628800482099464836644487327224425390721773834758777751327814498172751291623268182078934720219520472406441774638063926603129448514156145040184333771031397452988114155664422974097269881202428101717576211560327634630374082389377868600289669346061986984035775268458881557447464739746818515782838687742097221661213300792161821475744784532431052433273417443858336659134735065246760295767057699552928965203494458310458904935302535064079243659137986568826491181167203612418107674284846312901812387696644644602467824982662803260528192485664104346324270256226433972070010742967434865988179694629990238691450479154116606657545853319308719138640488127232918019964316365293535523742170762808859749730872953200635737950081496191590401758848259616808024576008761554345437489073125678007696892592306041876994341704721658035829382590252777940390597012950788787351559084712882005241207744034535547208812831522062362610317659215845930729590742073848241495630734377232330408961831730988953994747202695860914618193992156190499149722528704843617612819333520699000173042431938213938298842740227107854584632624753976008040845339644306084708189921435325088745911971166156103197848190602634676924292102610059498168857191448891536328772139701121521253496050467548501478741357896553260574869911235681601927283926592962029744614519466121211977298329996294842827988116751927324669168087785748987052554395005059961272981695654592205649908322781032935424385288193499870537984809783220984248071345596987304962797316437617425946445962317374136000421060412325302974523440180358745164167324849835182133480401373911576898757934565935710754034914660335791667531153311469433492934424467824535233983459864449553768937241740810486003029802325469049732916146661312349057064411691850106615821918160104138498103970731400000470504511375948449879936315118572622012647796472739001487284766020708568642740413412897558135597090174079413967053042505785465432307843095744198229556395292552453154494887972601616668692150004399639969009101121165630149561050695636826598717080845993541821641105532435723135838977749654765869379434034402758722928765878758839164261450260912088680336278177788479575160922394758391511575555472045943133386640859629552384531392102469377690901137367993396775556830885773575917291770905384811898002651803492289792384691334226877078392040421035351807630367333991583718188490673624053557840673768784362001844034608545813104369633492716492811561973353999938916812956017417598354029829763128507849728169094756302226403167409690836807282543826612857669240605349110001067217849938027601308158739697971119927739366321190525648009141576971991960114209026809600391757059540117864675686044892980758538404310517726991980027314926675214111751006506497902896966342501567030165098644178221297710717803390665145740789575564249955431346150590921421971446402327932277124900367917804212139673288817044879028935023394212538851625976805815264962499679743828689378127323887207839929321432933148967514841869164368647647671354118387978964430174051912009840705066617928221941647888227323998608873246293003436504164567847204159029844649319193154063644618947231403591370007129711727193611273696298305135299929314354839222120620649698400254776494041589609041685329601874354546231620407222975638648218942154237229593278893251576105818137266044457446933250782091869061211161946749434566160160921931320221817770766200577113304025281262105333132817289363915947051241887902507105493754620132555361631964188435045768889992839685258049657778826763890504711472119606737592341736059499307710838871150931887439552688855508319784545270898021002941771761966935430283945952292034334047203231379314727135328240124802824753580319914396948361808306899950934730696054456646715603650539286892768608040539733983138606563847905282658255361445806510892959737062925956616902269330800300723247733735700465005327531284283622635031139137048895089357345443182618854820605434926553221704137846004746490452303841718770910039307018509253734893456352851980337862458276182622968202338468863448754620179144136776249774734389604655834455032188312662984329166522810044389072467077600718037606253141597386013893627518761985771387275583664705096385960969674158435516525901455835435203102408430395589548386255209294266419233063175906780329554009418112058061108552588537106979625329079228807249868510050951576898701509925547013592804103249738847522165198420018813667256096792430068562729482065353211821091877798948638344795468293984716259675330186578785701629810457585266682371271084684518191521605123177909783451489739957672503589577001186506505389934878069099590039386109706642566110409291697424641233653506897119316503938316784910238812805270469733187749906022601706995234485848410759678502782181182768144487006459726455205254934047642942456444464757405228892128294894794777338496714729981720332518691618722404883897686172936120389514095502148064261984548399341463066492071270522369195344306831170601826994964253044901571522494851793917853668995813860113719422111947551789141083116114369402184633745495798258924525342118160593344136312900222447465881034238000493853740986646112850984464306627496635955010004570900035422798169136555418729921151973971145438981227223102547868084112337383391484161471657457531853725546891514035548046029579349040927887070640484639681157380900216703389328163197813263750111623259874429358560876467418177273515546691830163200393907315871257969691729965899072727521571203541884123442218020856155151312372192658554524111779179707074905348608004833977819533893031982298605821686917550746074821668542861277983038968534602217677749473099805092486550891138452672526569335870924622838328300789660444005991826733056518053638177119448359463769251634292979726472753413570718656447323308658238758336259388990981827560093628201581007701591457537614205554550198753417628395029073447920979331022614049222513492079703154482595321087033260710646015564097241755966906134338891429296884532705439810741679866035514520786298465257878816908111819830285812408246830449465058165674300679200132994363400351832708333111920819629878587214108939363646531484025741061877992695642335550988681680725068713577863970740454624056981650744765757005926779292554778977734494000761415915218608121915308269544336337816747482276705789164945442868553428075306976455983201095200062250043041060266448685200204595530693766019938466373751515319070209875967135948160818165623078386744182138403573016632584170172748730370385304961734853447829844445384618762301418246700372100684398811070922647781821258042721906583481304888827520096037232581810127721263711003506216808177828633872476612431718195097814869573389556751920582890870811681487010876594446125676803927855908557517064506241324682150879694909158494117665084477089540956734108351689171957510404292025940265107777488182424770725182801341859162125926850474663012643960521839833666387275098037769640215360815881361171724632295117526643857702677655129531719030834024084338153652376773576422499283470732001551230005918560267184812046832270905129506428126772122693408154865500845509625461163921043097008881061337027909864593778115931179910910433748904859631703268962055749876484195629816727317608391005208538271066378850716535216478933744857745935929330349330057976924821016710245568533607202760912147035036840547713576069327814494448066567789775247270133925032257487670812833860727444702533363617034121543855303312632820705123832440285865771932152461905522930422948297044255936052216503219376676779422163607962549403299215908444890574480430945157651225503047919896490949468332606935832481981353411315990460369442736164530132892934401384642213337013520826912827783078777694047103715565064746137971363291160289962309454069788671083664764650462922119218607314577252258963660480785992842460434113112696375343868578192513314966387004183175432099639869739214121787317446186760029778119875364101368708075331622188393541544979725548887222256424832676150545533088879380937795353116653783696284086003403801089961512204080716881519189603898496724070330287973034181432540954206392535648767359728323365989124508223500684837789254792809388125090995564842466642529410711941649086463079259781751332671828022724387279214780227161607400794796830902590306672737274782628730285886918163937686204909725977200111162400769393760255847092571853411737040018568916264812732904506303217705230229372825199511614492323751901155471389746267170293877359350092592322378407748269829698564256365085666238914140729846586618143236141055958529936162775163204227009571625901053338362622191086098111738531897704063164250010532076202233456795799659496596915828018837353926737835665168652230314890268128166391326702378001643865646408134517706325750575197079300086399518473486898131273981851984966898819675159090814434325029477621303044491769732405828021877091974890680436095052762256357501557470230872416837409421374377582313521333305230952194674442145414410769239072139613870239066128074237078740973810100247540775319015984286440800361515149033747975652029190426185213449709909978156732737979584516286158915483362088488532382916472135885194895126329876995673059870384140890764654545242760901442991425610670797991762423606011049718928999370511971668860182531050761347278244558134808420729925751013961926226666266066198810132014639256697915810862087415468524618493121264340345498816177282880112840548442955750770251914321448735441183332426165608095878830794234545385118064002059618772818714216874523506510164988939620559626184774327231158126526847424289719020082647447446892420660755006438311358724243143675283829700346712388344086130895946039735592827548807797767638357797744033774609912519555242145401174929827648515027823012841981279776981003345142624808211806534317330769494005505091174045443123712943695561489032990749501629929509099334525488175618875091363166316869156705684053757211641549530845945208263030009970821595607397101039622087293184951703508691055263431333236138760185214060421693707402512000917214761790477719012599893404571736568842331201564189231472993994700895464163934258661972592084682785732396477348888156165188021371388256668478199451058373409674949881576224456176947137543929499816597816287562754002293626971359573634351336298310462939512810832650845982026790803507815534016319931903037123738120228505884148751674922366144130520269271020023082410686154903248210871574265255746457442056218486595443481834189911044808056077793219009863643748931190596107933000479234935237732287639025052375986380395830189224717599120910909599554794411961305364473274207055557943604842281986034156694634959250280310179821691856344421075239613000022325224516806075975491037226429315205623328615442245625234307759443136841550639665148106549371003008746015224600488197438309295343161285810306227335916722049832295660884537892192272351602600643719118103941776245191045910376309826736675600870901300872523994967756162351669559849988758194069194514397021224004718889197358567898461047588284881619361787649764417322499397337222530715467804259220957580383009902032726312796666027443154283718843390864027848138396213373692696930061466449459775374022372107213000411484728218739218305559731437465455677940993862476081441279917286293343220587035349055924397202054907897909474213390435337063942522470482547306755283596426785739932350846837206564744287306553893893705178760935360702357661005624831281557010051906007090797360746936930423533551753236296761105919869691946556213335626900030819429777709834732474907651180264050479954605798357179068609733537297928946486566712276639643230325096663169799088698943870759413616514002492746560030204924051299511335212304969203294369121443273358687293767612111057923378939776950993390362574860486842805173008837395786124965157528960157435515275937784061852129592718156534394982871589126362315083358340325106076228523033757117977766244244898936259754553500143352343589897418653845418843571897051384123657416784305512057394677130095003995054191305109990459501357851765153797626432027047450730604041855119892174083596235039321368694744600867028445814695510004010434894230863635424413328326983087404218126844783402242473856714739865293763760455376482520902862127017522169873947075762917037664719259512843363683794451495799638309801605618256692776033530076913713509967970881129517553947022932409461356734186631133814042228520224121628941244255198864445005200607735036745792856649202225661646297439591467091134379831365641895699588023746335947622683266260217523718869362425847721959845831173945396970794333440492435853764583092386942011731087337164549470127882858421461772504546455071234687064905890255293147584608578537727047138139739521635525210661115822406301478603524680536949741282887229440280919747851799637357367327967312333877422356246976212709214239585520217514668776248028756482586197464535323563522516102583174600283861734632516570493165874308571440984797551070103815123775286886959899849451206768113165347783918458965459856566947880949023677370168965093100743466090423480337229202444253318156504450703523319212024080658365033834673005572369996027983348637421659514381247711299056792169312892454881836566497146033476110973710305858478212605678581816342669354588177455360388841817580480188909377306496098783878473925370444766629061790424953004781475368946814157224020166310879926862762176598316025762043555787510889111739904439513216578433592538485588308416488472805918966555218611934630026092183949078949593207011833572255994652059408843463416670762596817812475929820639348276921732753121307410590534792975928114600897250262182391418799958257912137315082618531902553144793805247396226516259245313346025447130704161309348435025647811003107871914318108263047149606762208589706567669520368011396201091007692901144168486154685876698590107318320765457986551059261686555040099465768165766008333840203655749394714689116675275877280209554829398704731445025039923420130090522342139971864001264868898321904400988564418041469181194831307646995249425486382357724827222449389819262496888280116917645038785528896824011022926292106934050980244541938548435884616722616162347574445005626186627633421482190076997733806272666460390655966275447236581463455421562640619303294508848132234227726420661446288048710374880924346941023820869882543754275215244383260848134347845597053607090357782628198936700419755758587194395966305217048404827377698425533791848511652460365616325711502089227042145301606993947956924485265569932060430694156843650572380268579367320420109323341497277172033977280835204712872612118675112438987000760858027232708317532072071131817782646157710082952697586859910235694632049590402420781516824462192533553039910497642936141491265492722278753288145032542771146448334120328261262859802673649214002541235749791025678340077984849437160970187096356339112457274254504549203047561155915754787028549509268108745885548606149303844288917313853255173831024807609509083897417136294551683933091545087069856398028135742775217676900466156266965693676756084017996988006738384387711860992131051858302702316882448831814145194105178807817467823013795031704045075087899008693118433679257467645906348706169049012222452141336879692329108032731038463606296695973831892965656304027535787598035609389082366004962223029835215497905595894297693938343669910254902899323996844550390269116227438733863051674346751279086920756010890007046135477456958015837530022074598165686334128711470711407962383432391308380719330050111960709698385868093541853567335328028367215715197249020546054700319349929731412693882871656602700274217014797217282448896829036136675146436799997193653093233366124752015151563510922583414374570787879219389450711816911309888660973267651172723323203550031355790098182616986198982622899719456056179445658075271804276473460369976078435029201545530231895037195713413122754190645885173540956333668481334244581698597684789531688641960376846877628000010668871294273092187453027664601194335097516152241297590871660100681516545262989839693521001724696310829301396867979685328693833753799028739310216659459654664959655722355565952437285422286093861207989166693284065741844716674231810769925336385339363102846663122680379100612280348285930258182534519633560472287119044044442322172038255975073605475481964782780890977749175336943497900472469959277424240657910104093755710033042166504674008707198697419337473627527029177522868712578985519198202182629268146758487672643642138841044558871695606180439019876476627783474466718359706198633205827483131520358042261871510994791546704381963378442429735123925695622427848025691928182736398710693227559911319008414134587075659378645029532751066423094536562763486353327096148268802739244354246793518380193475298412509515601008659370214359107980444422997875684132881804826556755190105094508669336356490274012070981549276988135781070115328049002555053376057454880411101199534138193683181690524144195138247989203856876516863963358217567442656186821174007321884132696491448916892748800662107530387625644293896889161617788337620971464774711711710425576297934165663234480130531314475928780394834475722618336994495886464607213620397099470584965344826752233222355663165174681508430585944005371514448531805431928822132655271708227849255841175085111952566477685322554685997936789120182711451132086713585734339217270526200637376015998882637924959550634041886159716453994373286831727886693122302939211348136543669760802204636832643340983429803940514615396524558288083262894321213669875658800139592814396495426893047163892702775338981957868960055315734653603820743101991224736601216812559294171724538520824849906918220561727952881205152592649847445141989653308571792830299604236166856434116739368998672171561277675800532233147338182142242503463374839660121522575044877934232939067356798459618394217602841362226640090310058927520342433406385997880828158594271281714290065102167966430126014008734271308950655163364950048037411752703047284792051318228261991430214664841016721126905277130675665486112330328256940745203136087705810010192362776779955544751018825263723037906787386103183853864895214498417610602819336278936093483085200777278198594857434987337133476790619197382814815170155900190688885221424779236164993074581167125406243689281013081489926496060070838440115684038371899882552307762101327349132743819700154049321007400035944573102256104341589548591878376404502633665626775799083737193152135108397039194030484873556781820747711637004729651775270814068418363386055440978273357806100616969460552295775333321974842727225235721642402941209568450094054695923734919008183373294115246544974446714330127028549651250181239268483424366970202693700593796845452988404477453819383300340740071521705799930795636294059288797242859751775022043829809573015581610452766538995523926943519782087208332716743092801316029698133614491843700505587099123130763226994679250043143062807841368026384421633822571678409554249823201264194014935474175170815979256734107864558543392173327849664227584318625877410107119001876916176541899172422526961388552025419359428746175475547558141167622633586511290960795863077334941274100798558045482743311224103064217300621392546889284829798055073970289279080933099006887628201486650847195777494855431121689617147963539221305445469847298438230679088713648866337928062460469098676555466871074685884346371828020732583026530861832533803337668145417823510624611962344406648149576300539992832784788158995154513745747481186482658981039678634452079620938223569377957811908400942763527420410150228226817972469575700477584953446846764984083926754343089791656287483642736384280786798930426343046874251549689249433883877981681517952721363208233607253819374069648886012173323253582147410004801967773806690658926205318233444002881587960985694613832260276716169086922860870149366576669138132925781629278580387082064125734426208754242058908508510569949875137254546435413603336940532348236250459023708792822824118433126479119343618208090115300602531965138740671996000376627734900831230518120095832631981753366588178278165461938188447578122782835835440133917211396585789035449452948761297417764679275210955964791252247976314049065306471597162401988122713155140898958963178284057707349395766471488995695018796406500600926032102298126300190400391310007233370697895918213694386848087416310745294805986718642193770224333571542592516993772893310629681606216280075239310945597849533431950445038588141588143049966573085525577794611459572726311097428937646146836413829318615293791917644636567556900835141552210141367851051836066720121548819189231145134386562095168116984094095256107326714439473335740638780428285454532114309018818970199184745990142371614047013148955474536938017005543432245915028682446022923681916944054771480745412919150044531842915711157183158753221536616023219683814110485800149010242328948296621255402786154237961829386642641321227944726830251096175476093318622627135893280433369005465615244087906772717921626655323362053761957894637807925173253983121527116868670513500345651327575128148136753052983099935105996340024044145274046417315730542017544218857741907158549061321009543416743878679251009713821932700895074857628717527269000434783355450029047321580907773325240406479233007286870464093693699021287670850426256031742753789035634138921419158094169903614212140079594097524235878362065369236746136072601306771881174115296438674047820959983580946378638633727629798510072027051935520531516875836658019844249181344973104937493244753998944876902973224927859142976438338629848616945944694388816316763380420697543917959664014572337737365192027989084180272694718291494037582693657834146334823172056450271539720098856338158101235590482618143697680494443610304998743377590056061646741595072595342096876940653828948710625363337360318793687781732758288419449717771902390293371208821617643722448088683990137703587908961025518640815467290394363054824542173235767136054330935804091863008472748802974508355982711116242365536249419116403706832046437672658071350513468854044564465799164343312030818251532131172701856456931099653053313877819674073699193271998925264248384251515277986646096229939693043529986694198842951389261194318527607373514217069276500212828539100929988943899908594907724371073700775988187995371742690043188344877802420233783464583480732076791973047741928041503708501955378728637223403150325748039682387500353363199368956729858588971259365850806125901236373054310401757178086268687436126039476397185009428016673294428900673623782050854307844938766300299326873765178477967510883004361394710151538015684124224327217370410235680088490503126510447621897011827553253881712602340065657760759439927815089526623529889877951608959580067219319952468213302005340402257259452349320903277266607145693984843942485223841392796110587317495796816208416533211664858234097817630242159281346540721159920832026227809601339469144982882261221611342828908606182940907420844680897954402706320936315632252537841903390911628405879551543519921066898256806174346607812451464811617154253454204310875367026268439048143364739777937638176525646601718488804125807558348203956504588695812732073659726180909983437453892744559085554403814596070588838378055461272036153164056376768084125106501924921050013948275288323913070667108980525147609303845892913024439621190509656017673326848890169048086173010672722154578162305001090356265379599469990391707188795583979087367623823742326545759148049848689229230804201887454471751776122724313695383630274663005926456115227871248508562246341876438033035294324392291766895455460774519120937384803040335531809458687174828050480750256288872186588703018769690116903463994492857686686649290453110031533774848233659509989594774805297586885733522495386517042743356731865214228983509438683417984200303118072002111969972620218606647232722277771657797587238695057829870797224464980640065293242648667009253871955669018043136252610244507588040482485835594060131976694371471534783483899282464775402618959007457663299221266603565911380530289726235725749266373856937766276416247404711854815711561094121212539564644797442894533245676429716051126787250740704997703758897444936527245166591705873118810901407626575183356202855912894714225297056328908738609864498731137626512491071709674119849269423074065782330757060289047408724734247143566533404231795752124104740762316802152224037178109608088989143794429169830424070250425013253829231379870225639245781270549298419430815561979280445803077092155634385933021997199211689198074582354151505022720487112766708970906581768961365691107609443948842748430987030830269568444959099769622411049960446127133512970689167946478497132902234322719293072672058034022307366475038095308660540342802729171292851964810700605154002362607587385340722975579774052373438436182025671539642329378343025507907278880884687446047580740858404371816769365639434816180323968691610371136213046618206740350099810148837487300416109440463158432887652901291788418527151564307366784653719923950954191503494136676392299031488438653109476324749728010527355816520916023674354992382467113928183505523658463251065768440150553511698602624749574551503429528008974466129921006358240305966516090565157056994754038755127770021177320005833088361768348370552139613346183221865908523035721763056674020287299105332246654087803803249897917265371853596980579626097615680689199968739841225187485991225778943630054738998522424045646193668909715502889513749006857382704799670156767511613157972567647418327879578695727505690575487345003572166253026841845434668253071375341622931159876416419276698856275322435047702064257500856012734890379702843571302440148861373674777547505266673847806032232005709329776529238421038306302239081552309882175273430817097556522993557121586043180596731082318897746946427549955524029826069582890434371085200740452732607130394282741608010394760591314774975638602206293641527106118336655668596263490963166979240863300824413135777729816201189342457207497087308451976474844686072019215636004006525355847762291274260511680707636956927263449997887332238201324865013571443747458892183938800296613518897093130736944381231884664519549244480051519926765248625199701818649490538118209755809915732405824373371878659961013794649165897722241327802912702929985750811490658068779588743732109708709351564701720396974658553493178144614360010414254272684412204178700609807722119510119078398962406309989423854592756831630458856845043420081609783547938797524205988728803559290229811919516595561844864217581923129716191686284875886412797131102359405141276993437793453610964435433529827658336933463736761689020771363438300147519986621606371105763858213521917759270276336105472595757925179223157307763810199773694586097303450676588509750951564594608217647421306667134627547763636659615169905201663228353779614377670861281602157320760089802456806444967765344160277457862656190888411803747082718857999590762374150458727029658503563693853104956343914484238302264599913875479002249054468233311311917149302177409369430415662347341510649239233587541509769145806405057179724104078402743296807427282343404312747607019911869402929007133000287478745957808071843619090098310400320428591562387201577551081096705646392499687305627621870074021898140371832663079108572084897093968169586022615606295874445512601922718053888381579346829103348192689962495283630579999801877236685227786936246426365611895282134474175856719642716921694726726312494236343146216659166704474013139288734033909711310632994604198644314548323225139658373286668497250161371225346528048246361067101557603860016084814304197540138023084156687184877144262204660640630017025320760851223584755989338246320320890543370313342017866983286750803010846612490598828867476065744453661931755450869177395256182209258944046341353350170238202610019870390565489231129033733300805016339015053739592763982400502078831445534838301588331808428337850582773087570470434068358220868460044376636508555871356704594849713910822663582912796988303168671254419404499046610755029936008294767366211473932103279094000863343010903807230512146297650667940268945707667856588766169680107506034355672084124135696158231356321240290667388337873520857924703033120925582391904883849595976893510621781407888563348245748676337145075331655865705741163811559093632261570060210385921928859747382554171868322053312083823433737833832015935275938503813646059531829409266190585371107891617014454225247251812501343169420966850547716659816105682654801388887394733159726069326700154928710844485929113925219151706235554388557281000057367251179846996128688542698394945265905206567424906649885961605250518449465775639011042419746159142135572422786925949158334410960082981260571967332243990338896259433932129767711243257771774389136790089232306542776235477357722647640012076185644625332657983591310003731311994814774972305070814013600109941343651356221387403335331058471951417470780266171088045944734864004719861302242112786208838274688987992981456674984073258165190043160936368492646891354759337913711996425563421302186127343201773501508129825591630142765065420052663710813045318027921283379308666954468957477163858887693269604035869600972833030777904664541170724814615818238794322309163189533490410700889039174568468048447177884753954189199384683982949700121655100495200002281208723342585043054869574027800709451962572410648695857001687658521468829600502827079337010277918107632402014033567791349763558742696628128527134351523492617266449238510009254014242228816589132280322864307220749748100115063588937212286598857375032819990041301893577732498692973990317850087159192227253191642105115826157813346014895939476121713484609994171998194074975056287340009258834343496932385685568842294257546052385567898123222511877964676146023221340927175759388080640124725928246523165329636833581383752308891869922127793757654863987112391738545092950103330169836308720026206357231936659451498178741391372733596539893431508507282642591443636811341956835545113342043045624848926256954555038321363489513959860760591761462872090375952140241328684911568765570877542784812699318700011716358732741809199612453556669336473848621079153666696464568858479377302711184771366833088610938278886518933073118267758470963840689044807179060949081274974699230370467057183534561328291237855979108097751646117462478708153626918564382055063595350112904155322446254305560087584325939013101454382996510606627115963859676216394331502329564045505809897130804602238572606035226276524746255694300103228028557565454589072050850644647040686194395226256217574175760920695115616417191817613562894977889877529711304674124678144335608980125369243365411335774143187771266488100361573473151701713183856063141534820584478961756548629774953637955746893701302865027243368397179556084292124214896023075742532522637903710334005614323696441970113010374376680497134390507438362548767566085213348634590272561399180867955849147157884687486662509190393632527946548230260774620541334922783623277830151810837340680368852026145261427594258045042301854490314492426542334757883028486442784564947357345650558257917898889956304335413207841294735972456154812652781944937496756082787238051621294357444747992247065267339885243930523627922454341683425619887353129685475459323252917348975077214475371192488057196582448822825152610101590413905389286216090283706820142849452295584022401599565465418085957511771620176791209702093180228324610998092842048469262286443269884519677705168852375139925268425865480940296913467244812624680987204044872363403728340407025379956537586779667014787266426717722840430093252435800120874739786411583068733175646567413102579868488476946278463351716420900088323171139527352872124684090104698606387177306254269278510671384003339338381011018203619268437191057506592072338139224664405264734378210833918202752892909917681365942215897570995047882684875534828854963159057971497724423198271464391628557153658148753164035234582998066433383205981585966323308918656112702534473015577090642222050595905962774235554363237131211608039551803325632563325735204706903048707667961521343073232353679363219670939835155743968918933138984085145834083398840918177095716444436551078823310656200262931046670453239147609881031475050894195744305195512326324863748007365284923497233008771988912876537249587539519406931212821838715523509381944610415821835577550820584841702450677227701021159109500234183799831547359932891657823564577758838529320241499771274805469161930943372170623151318532713778222053861727179515833232742629800521112425728866807982100159570518662333924491985905621577924083921817982679811361579265434414701645020844807413023570851443424553070355845102857716193297277012871762017988205334280278212657499562431458102312786145442438082338932838433902483071997070420320236893462713233980134400784433645652638621313287587504226591869769677083048873172106556360198160285169651941822070459349193479752129208129550374624589753727400661486365285716391226771133385046527199001169521648765676321116277849652951325207460774114417425209391761732376882776188045779503208275488104008228823380297149502291082799846661016874493164125155621647982328925312225698603945080796140281575675164310556392018948066063984661870500078585883225106895843746599389352635599420728885712368091241378287360923641597958501657367396622767042004729705628957311346334253569072359643401425470713833826464943602481244627069140329095482201654417402458336322117481383527067568724801036924859900664098777947630908345921196365098262253115789459389202245318354645248890982742057169981357462464720770888358222639039511886504559030454469485298221442941454769419397516524262519562028074248675988029349654480990728257550211321560499349157635056493288686016867398041891206146880692711001775882876553399886528629097739803178295106281952382948867164197074327982505000097952060616590395336284068115429317831682791208552476430411060741789137046622286545987191083667751382948249103919096089276764282734319422788425451914602379715610548462037446964889252116953636397883491364422158967863734018924988172220945553834872136966991409650216809551043217477756354769950555156667014760028827339345509800813724821303887468129609951768705951769492914501420631890992757419155403250081440154450232136485844592089110843330205569279441118504693312028368946842591998453422626807813193371279200183512306625842915391612682259862789984699946217275086794976865720366886289412663013512538821697892536801706854029367695390075756551373464180191390510794550572121359321643264105798416450913623954340461864508514554363576114677961342690120265940883675506666602029347982729303710131052521473370750280308820131412723102024536001647738358703121368953404808283717818211260785906808590955023968084364880443726547538583046772319096811517767925891664470167544389937019393405906539785734298818075936057736538658639426424562696173320569298233287553182108738058538552707043874736996406154547073015239512110961629526218163838064689427327862689927309140613588078811513000437964952539314156451949447136214854210975382438440841676107960882077311165370228630803440965069413746279125714530549189564724590828892542797371832981092477233357811333371146282056358057092532493060556001887290633308829868081611738563545202021036770264701455710507100667853690931956891173587547457683654354206056483817517840171310282055131797717932900253477124973546875978707737920985388644830973239878138486696555095645529736301900863152061640200067359123521634088689987645792003290301605583854400798747508108045475093301071355867830691266162362057022574016613923453972178329715581891232818824174978627982737995554498218116561811583330927925697914870222228373528760893698364683918152841109669566267902715662227369880709476685889596423654139121134115253122007109575852269947396713481148274528169528340777690670620674089399481058034995079842053441064726733862998592031891182471493513896677199492036911761095216001408652862637472995979685583946896756366592330066313567733675628445269648555150797328859901440049946594710963263094088051015022405801523419760086077430117442195165850253455432350700422967125768951493936800965290315387162712234571142679219560394557858594125088519782097717243262624904349679033525750952008734254413539290662293298234568042006562947912480710549957878716020039022567566256841427685539870930748730230269630897877393428785990455154640492979771650860185809485646468931160748664699898334403001663221540510566922018981275436510107940394028157718624079082953158704003431283676412029641184831371627960799864756824866580913696097648748095166760812031248303298207866148065920385175480448600755009235010226928483447587532250059452063181738365666398055809372810049747841154955059750528197305265181342199241673349019020234402996313739695958479975036385878100249589918346045297779408705952808044773820537127388672790841597519033036310920013836587046518229933187229769065403316185844315849133792919917693418175711484215873216241525477708227183419086954372401004683756569618847354139690174148188776411591901020611933160953933052394790097819294703504392289661419655997237366494442531379156000424752137499204700378972049228075963686628640031467714937857344530371840129936637134569782188484908617723795886009212456670960230691962810939037189121830683443119978110789600493261525564426476751907086382435880697278789311890844001144489596440235127236877520528449717441994189999041916020451550845716145669151515558754654670659117971405884663844195848645531351362892784528568751786010806606715780253069917140447564146452969822517530062716512695314046887993284281134627327259067335909803843584826722505937673428787671905916178909836746767493874200402448625606367128244971233824775239817860778600291991387349714171095044770375803384249740960589977981930374882599226914598563956056691089961936255202417439257133079150804342766106732043717217348838099958630163699464869605341923664236083474843532436754851543942808448892220981385278828375352776068222950493047708584503184699725883581452355830517779699562825302719003492017852239360147463652634102914545314378731327315824510872854805690339359506361044526706515199350707049937195899643866091723850391439660260050643613915602521467740094110913796301420692271943714846119781338057371844080492690190670266345374229002357805921831215738261352716043306621063129634208539665197809503622197856300101246814676432212768610036830326408870673236817225338352583068802612250405401113925841933260774565309450215849936235935657304485602884776930466962819185639229026816400993599431655461836540201464428121775333973214319502221421824159507552739557204254886422004911106600432300406714928373398100842172231232673413147838832591207067898308917849061959742396610533268644168759293323155542634329429854390203808794060635196354457758039243818849614315790666822662739557208529591726891140452810085334516470377727689606958310600474051797805959600033587547890340594926496225740314001940462165827788042572333738149489465652081608490904885008327587560601957785072484759631490264263653560888301878441070628705279123640653250285123734349836979572071936674303732625587647453041403086075790078790267943303467627547157198444372001324128694825517560471902062259377289847380120375420049518947883775493927095188773233405523155106648493422235789666840539976496989112331231325931734185693451718563027171709510040168551556646602015985729912349416153586783435742037460791254790195299396570568582130141226934699317504373159259195094990919713077879035222158503502982594677322268882922921454907441350246461684402798513060040183316517574044828033007452032169359063152139276053344645702249222253420920505846134770854289739742418764635782449960103373950733413784535928965960509813328435933037067477568672029359784543086434190569712495377722520918370898265028914660593495165743500550147204307530701078493405223193571391599333861312222159032235563831954325384475206204735813067144094643785017380946781671602351469977899233725970224985988803079619429028795731107837435126434464606975923109110712927493344347742284902872531989952896222712835234123113036934204005350138378941478655533153082339392424418898368253755202220712458817000826067548666489756368854427380664272580207041585576765127631465581846992382480238014591574525490606594537579400362949707174954533821774965506719544186240833006499310202593952801538262044033227283816961348365513371844390358370001184829630591599270062093047565069196348487848080332997049331595255749982272617449083052638817901875281600063545581877206551845623996661715561816911094882178605773683696299921136350785533003639404030645767480838503333039614505956320004976681064335428179218998217570320174443915301257244922071366400256176855751058747635355984993538667702158610433416437177945874096289123070074926307166608283267254854451346077979828082510830810674235175751531362510453268122864955871884156281231445298842339432311855358748328736254880167506508282592854085109949194698739438137570190664385676666469412085465679736534213238624493500027058228539127949438189419774069980341139565972848787360302073170396585171719292242035464660375343226855387402111250087645845487516508368658606300639546227434138203514471049183238652979857191345804285245801071890610822695141417758050238102285935374139556990464859177884892554255763756073229604343420313051046318188380949148488284165669908969696587115848482133798109662824953071084341633738446611554197664708805872512275102793936746250688015253055905528253256489903496172541809478452590778887522210911500320228466397669617886651695984655537444995724888932859405392506439534938386763268564225845642021471191898891152910472580918053337990504327019116702003662115752732386795225943227495111973466042229766489588960619225871190080997746049555548957480691153376657338550810482328362395949751817735410553933648813666555945981985386708190985602511437706511216741815044323992396875420248111164511836669442205008228704564736782936441082079489238695342455927202051688105254225915780030446442095705285562116959708391276227606297392432569982260297749556618606267888923961302145914026145430117046676858593106090302359261703044213203600970456581903284182399155149252592515046338188024527062852911155302600046756895620753616722954606470664750156062284902808744597250174794193089400978376796295902289464828036205811369963673973569827998757437133900257097556488205051327247589727393239802689839707887533379318645609904439037608815074941591226225664854319996769772844065960160301701398968636507051970367317541600334996659201873860455715878444503178262152343451460951633754675779194769762234194777018256783606192029934556436718836246835084486977647448702729058197829835973335651238247457197857183714938731356509579572556763194051074803708167711341768591805075391186669525178119601259661228286176633540752943967922301651616313994237034257975430527113705994704539636047198849539328085219090313076111272846939574842805695391196001603578283448626140826520200132981361881611224551175341967939631945341248624144662967658768626257935645366604760908206716150608636644983093101890385122501631764121627539173759534852989665641742372656492719737391511589560508864818315127857374397218668162046303739276967749363237715754121720026852260328463011353506340127820383158457547533581273317545232734914142840986503765961441574803716269546760752543958197806908515752163247872101218103869943231018716443610016142116165937931290826790906408897916178863590367942243986293663404221479721442453908663883471741461967259795792554861423024703776130007192954904658797721125999697449163394531985393934255132311900026824777367144527295184025130204265400007533673311243703797512459471300839583140199027352884215846587403323792848744169086978402578011615631111188443394340103328287790274078266954115620379879925110410697164359597030621087124731194103052727857723631805328859256946258530685877538381056214147982732072711370793462042849099719510784881542376746426509221871698347962566883613013657227232339708717589396872032235266517784525428584103233005683763833863813155127218976270596610667013030650336738789584275001626291884814489160142799745033715247375278838272079978354955775499589670133372221640269526510898519034261193459492986631901036063265104326729381754390197296306749975565036886297823102475272330968732461803283317653985760894573566798461088168963624380921400324443133661545336929770950106847520904759890224859786348461373261717513863383025803000978695277864409538695681544185945693781757277247584072558378832176416476430942990358758818203237954789407103310261954496877477722938455512815515165049186623668608280832074708754355069042901197240516588489975725780755507860497657234816881515662574337888412416334503707100937091610994328477734560842492061025108269460064416511416182397068010446083392592495454677858001855081968203523338105855302981248918024995307407413877068543242489507456393842021785070084598462263617807871428760398457389404231383849674691805512508944575610016287408675001686978326729076235652222033458146813184845047390644140308591400885257212845008355933458266279901396032155730053698761003368458299997150038644476332963363531507085045532337286941599075250762652913796623297481859120484621587563640413683976042983254241073950060703002343911450180581421037072442212827371117830148646955781862701028401030082839836117993259966251329517150652906961476329194159813774774708856365946584677740831390510857637909455645963319133435594527773799703256350851230997995996162590898557530966123618537021735204503805548962857713520082802169496274789378320201674663650701004488178950105001578797785747020051072001924337918057968354681290368137355701382030088644470288573778666266338358207346680630998174866616080718957513353975829533374634052400222044080418040116664047821467474106275093024236433201277190881647443060205699152484273902833156969461291035527460536075503278221762110358947941262181658639621138690732121674989842728462886678648954366635100267700317445468157939342837599996313180935249356335459931379495033586836693385992183803045235746313902084100640600431267689833092192549345793475806764169750665276265473296792925088677146094338564278464917277378570770172216205740118057290715690881052192467118754776666989025924326037247234014357415345981299370655283929879639874634566039015284771953008316097028924655392170043345249574014495017497017816466027457066026955123111797495352903004835317312883245189999228434848663940597839567544018650909402302982302993856119863785363989244659441143936812406874832961084774428357243965819887017538996660941292444012822246043067734030173016831002710610947005373787942634487203730956559354431959325828154054292905749722152410247384344069576497043469925894069284611198551858799030174249104658625897408317765221992072822900508019242232621302808280437128375381107211106157852363501262223442861849798397575663506369423318708514169997311309113900228141589212758026101387904271268018225528931580597144278684876553803480407237853494869958554179924236422241354773507795580469260452012225670512278921791463152678346404919816136777769767706196887340422096567380622839186187646828409532585962825007721955786011742146907699172101387010553173725631483277486999253627617681986701250793962030035909792716716514571240815805984700685900787340234777872560652560553246092877528987584912697792323948612180061766131494870166669042537646952237960374096706760535092393929357650975226280752857446256626316601756815678174275092621524336781414293194594467187542082665212470988342054140823320961694949695166520372177199120208585317624430491575060301527636118992098570285417821762897383772826925536147711733029620422203311057512406581203726246066115449482594548822197999091004012115959362909839047643645080553670875196743066295200839829066667152130851012931454063745728791606175675463771832241698135601020560199667191583314893320148534406884004727992687104081788360298617263502088480611915366106515702351441097800080959329374509456872687236159406819458169835361181248987889627976256020707328989080505686555673260588114491529860125263280456692707763380802225931223735328718232445132042951026866193165554599980948422480032317530587427049796102620185857898098623896691503835913458015232907739688507036985183769249487979443923044558976064691127868154918686180192982345774735499753744029765561185569910913466305944904190170682224474607679073407220627471386701310180004751163501560517416169621121598796325604306189731564694571308549812059345726209188498361490025066451467285091486807888912096979709971949786944161383505314687249924960284621496271256732692997905793086522295372882525997911656667568947147096066506995560982019877310629610133925225807220477994738662878586591348147297305281164227505418108070935370313984764735760561346277303778076383158124709331799231967447626715772843783510458487846783432161105235506988111336009430800910513897393378374792747560140922129884136363905599834378068050688163736517582015501190731455021002997954013352670635041904798807950963984219082698401214061250665021677025398633047631689167106044950217644630805056993838968444213333230493990286712319965534517596110618787609649658271569492400090081242841708235229505304275581849913430278389952338794179091854337708477212502711680037668520731217260865165552107416930027775606858464380452942255997684512556243569564346018827753036023924860351278428276074385919633997641535028994896328672085316642474246585331823461189666231028109779265420360272231958207221201301211381726029858296366361912651518789836020634108360731647417741546904792773471159783248423052069961869953726637408208545052543191766302189862551539691266286718248458926106905491590294618055283254889420973506973060389260417944400980131326962221878899051110992711751486965602879386170684524312806590085917487442749788285415359785635467370289815260698226255407998889904001665130642373694393763752278058341501687686042667837369649339971438956334860173323307269467082687824015652742403040697231159517063726991810458556840690175020211590510417123748095648433742483781860268953890420192777942384331564397234934735723247474449893589280377500151685682298095145458127212971132938352168638946735299671724952445712531981842174071790907598183669412867338417006464630085448880896727549969313049802165637829645978012121425984492042168326624686120597835100699307197404139588635230420885847827607369171568746480352321028203072567329776194947190197602983385879967472223460145303489425821168249367201217354394454198425241370635101005442173840553647762938658897842178986333628440796583699400794488858827260224495211181883202278767250899181934127303083541987475951306435862283392275829536828638231990571279838967727223995298822097003763992746954584385337510886664098861029139254785759977878807922220714155291883618753944278424094205716611834083759796526009293405601647362636635537661945968214238170473004250399660915333732812699058745042099432319449267864154621440091395850474785133272008151273420219323269521393756532967497583603031361800757052440575785757917649352548334792275225785522810198919507726365140651751268194769335189143497893628948705175781174248932898237936508413588198294027945868654038808242657285165165104193380427788177108371270327784295042073242563317265575736240528578262250210272046634313676329169656209829652749404632080641200717700057767119708767968520146488455230214605383042171646646182425443761155179538651766991843514682570205682519999122476609218439230768835163588344828205665530560821563755892189145632773564505943397219656423364404276263201321625410969392773848145575174965872175417444792097523039579689421299242973732698068036771338798253759727923739768721521430392074096419216245854063311854810302695076630243154339677919681076514776604868705750898309959367696485918385490549588011708007687210357839345507680750479707629903887714096983110906279085810694268157490068700403998990574037262356473109792107335225269340282710355179779604345879417114581347723661599417403962737196007489221195943713104079225655981423508421377025487227428209501076991344937510947834031579922615134783212105125010044749206130744359734643966805707415482725688001337500507060708174533892300915804407981239276459153741605017051983517800842914798271582857290721777072481923982619849389305268501773023159985118395705436385887162704884253852717475218572935570034318976452970592537043743984535064497498297191467588453163289170566627889823425368035985028618940313311906293761188288757789989388780071226349883728950788861450180819722704715347929812219167273782773926178611906477352444494955698897958181403700713441902664093454887012927466828554069679935308987872254439911856489816100180035930944438961881000358796163690269365328202851309389687178460669230595898493468057122436116730039840162841668115564563370475052358969151704571082931126371514860313154420033391790276602330120941036960664181022381086679960914325806395538308855726300511470353364511872276315800054338919602685000795862780213437574328287828127458136157476249019265286066174713314484445153763382700696953453031513681327542779702488007002712226097800226971999460849554730385412983351103011990557152000778376218355172920412303254771868471731712383210881829551896162093301891973781488975733260350386311960521488028563644534487253740548312804207830453521060832527483753158376707147216835211697058825996859198447175382064506062629124040633962094218809829133135842440032260760072221457872518913952525878215032978271180910300864353430825953610439199919170721908336029619963701512246837990118064099217240684101693888899496365072502430161979394694175129073399742778939741319737040777101029709446569466631606874286834470518619175233468904220778832319459791305338160206703932854311467829294936428465017276796316667607467746984718271621805326611221118053834283930599329378841075803386264857093057032131379756030261065608002317259092263464243810824104197041879030063545111424093587857068163730385491693192473506135961998011290316857522105743402579029232833538947901354277032553854318741267956685475232398798054697409100387158625531639792267050439325394563053753467045451763934223364119872172370703325816641368788153164192891248793257802507991702168171546280379078870246512269642097616754380322874417335595951107187411825337561775524017345736732780256694540992215047224454742551807276659807566387667599082662499880363775706063351475466230493048687296038332477307933867345218443182988513683791345579060153416035796713222383523730068094600170668642295887071812523047539497768325705594737840500113097195191695594046835745021270765241994529178029443469409859222398705825778865972727588282574398031964706512581589334488762606252701785680623376766607589573737752748233717923611288251635063943091419328107107917408741162699053839964675725156316174843887284979751905571655744082600107302803744116912623990844934987476540290327152483631875197619281693767069170739041677254947826233530922322968372791045127803904667665462412509515911609575322906145827985182749216460701435553206202880701960342750509852940297299881249566849410768066610050521116512344484830427353905926057442095136147640523640407708091017648887757083178090822321331949096097108231487532011132404173200809746336009208130079660352625901201618341476340936958540591533696683715042859785588811459796943484137528356530838418567370971523245133431649067353674351658646937538837362574071409805919361178049919316292344576729634909814827660200800200849320834211678700503271655870985430210767154353430043551717686604498112236336220460285571928041770434851841715843880483583240498661616729103058391404969505889231390047873500705253939679520958707609915866381004360583237566128737897017766878952095146577750626495487318695155309225298444569447566964543910576775014159956767230713269746193893895771764804917131908076693538859068326215012440283311459270477927555561476436979584628767898590824444448851424482561073158498664436214067634813432032608242594050465291291646535825636574506829570738951619836796705044163160802476177320236782669038634701109494779190596127531159647538682123491799623485838693511399137283838994327265891395103264067725477013216618312943734969654038323399604779306485514677492012247595113957129201867682734809109795482445432261298051319570898454215996058138166537537590471043707543767430398504280546064161050511514700867868579597551356515811629915778374841197729349404583158477040495572283750995318044078503020376199083139735552400884100336606825849405324043232737262148480407530867500698795756153954100135970707006510002909450753299453436377777128774886408786529865548583253614985440992059751304001288482740996316613097451513409231072151064447236991892545245832123703309116633327443499217753859871030274791070696046037681518897028122985278412547175431769599864325206399220836366313682417378866473480721885929174857216533799836130218632408145212697653025022470366239756064947234014316064292030457639161809118686842974634763002447156266087488977145748424632419932816241073603034575847948079394853623798304317180642111929148229260158732827949781970286768845825047486518907002234750917282104506411130383009997812751071127917249568313927943084939689538144254527111147960095643490576137239207131938606730935125534517141000697158192050464915067685429627771399340153097501520353021986345054434230501120916629116777157701846806113787031197920349576495103509200090015702492599189891029759216205813336656678625634717607550768889259117226202627958464159069366906054871472251695155156887013416687588239520772835830692267498493231502619701372990739273896171747980083886211536644916869650724630510595103991320723327822532563356032193455572954332903808735055343045644418611270147403820152637477835168597152993316605311748532349039627950262642061179026102554123376412360403945574860488756087139067961431901272112592128051246147617869268386387601575200686029829405555105594113365088367183002432861997569572151173531430301373369876776197583019934581355362653396141799475940498287064916917375851337900001611771158516496508290686765116907269078509611947842666483032942758884025402945990522117094679270229328761140219425272872300467632379403170887321352335831204755207924940052094056628740670535535633571375835680698079686700692288600620701867151257672423828548326775337754234865963868328227812808555909272856718074872111127853584060440524350560497956336151402730941084417289425313178189696195753803613244462165094504216369403364989182248898173005947391080179646802401998878849691662160330548358120131335848666655868186471503620221877363235070861147686044461489990085633829668496981014549572583391566379834948835778042016727879675477967327520428979154237484509959637346716378442124796272565645223517108235892521850997573675611500286928293338681009465747479725698183294403594751505953798484990403073941485812711106635718479559893597364941844309231125223563545150975733330249828886307469094234690728338932699724029832318623122608926800104073673219789769207421161805388743203291195775331081088616100397550759559449542836754101697030131687888388346261707755313964368808647727050319453937741798854551816706695433576762685989205966695052645789588236689138744134415586460262717120445571037623432736843525464502476691035478704896021027057536757869736844750458214596431229552119592068903620730663582250890924960139943255650757493627188083967373038383235761328536828619870959935512685098250239081290570989378979066914707908392229713363104736215772937626285679374422560812448603855580263710705226572500480396462220940517386012169051807461682744490136908376743485905219356208601437528122829558127113640411179041881453164757170660775321358158572010580579028205675604714840332093910887536526660217301200127576337334371386355215540258713613920310870727319153505735825570608489727549802902607576062592130355236322802719299883758584452795775458984377964908744771700924345088284142487723609760920290483855250985899087128148557758526553566439396437449557356576471463380996610541511752414467280417197203012523198901783211414114442834874803995113890194408609024078549485561339907067155393011152649105745642958154424428971031240967626935401074442859401352444642444316653584522340644379020931397780509972452900995640565761872414227122826490242279793697739323281113811253558977389412795763576183038643249356898980627502521378658464014878640243764997676510229367179912630752080428556624046459659418008652993729035389454283555067182825064915294412988222134741597288082272544170998930876663455104855235711279291010097489687446173773852156817792736719339907393186793901922601591781050837667030211027865454718263064240747511080168266093487149682237208147006341645848800997444638928965146262066284354181042205180598049612744702383213803400984510854276449953865498386845320664268306839993302892779365862099803847895191377530993962627312421658453318962842902951434802104811539835279613419503800668740656275875819037023917873887760345915791969724346579523860892401943097269018745650935646790740429273647388694275920446895436765354836025066813612080438081534321062975366792389524681033036596510002648827629749256524250487658085922595463312739414666326357095592513622246198941019430243828770518495730220905873512322507127766559748039682258235201818018205734112815892214236251053197566407054321563905264693545832435596622020756283174867302506265465323738571544926467736709604621422252663121976847456262115295728906196694564138886019262947067682163966504497238122153954377043645035245196899079544989077645076753873063358306211063492072801189633440725131048825283164107370059962210600286295970631437402497040351246100929327325181141692870871745573964811449207712754146534448736948627355056491109744594703982950698782197218519896138141323328125625412181158784831418930668050937908795626825852548600716305724701544155656166702029353095338377250099121234731670925144439275042811666219022840142249538108430917211864987895959750562653443372866542643962014471074474970470119055811288408367624773949164219146460761493816023519006653207335801779626849334317041466088656267623977641322189991720276296899287142188752908167457305836301158968546119399554220844838700439493343616639718206524210227566515704330755943389251038944294852337935028525890959615296371845718540681056597329179477219787091875369863163941133285322516971504726410379138627163635891129007451583279763358911938840598077599832568033108838538025634939710732815753169970765814597644972863469744903787508673302570972563719100909389355182412065967295517979333744938014689559477913799419108316947770971411408078697746125499840780940372781736919930005136663710534759270873237133290055887941639179184162455602926723933118511827262555530903077813081432523277702071939667144169196617746394217723410195911326034566667913357251683040822252472819189767790283771061308761325223763782336650746459904207395790348326133211124214875672502902085199406383555304754454104233710568474041144823275287400036896240062884940782480149092787635711099050844545427584538630208127235008230118428637616362169895662731267693334100806696969266984446866001261672678553055386923345075906812923613372519768481725637532014040118824353106469728697108154276164941241638269296013144404104286825924849978071302782238057285480667988666176811687637487252572578547950870543681728711196543507458745657953149408336987161026334843354630621462714322017800033599861041247667325415442961418272546243093505123593652219380480908971385093694320945775637200035265675512880213274761420167399607833725455287408227442081672180294552373740385198299259861337648818917862898091562841776617616362720410652536777765395194662897938234860622437506658570963365349706037228513278719373685419582605706347984463704270882022792784409342128601495877333638643222827642079750036443731355406219731048178237508149680463993883061147664931004854491521323208145614785457439118031498834509313050821508602161352079550845315679255093753644077925919879740185761309723328892888781927819607971871390899019731178345740147209694455629874645314467913105175277785356657175435692244002418107421143331674418320889699874064112065684037605062962053604587677353051182936266591457897795659879133104426757626424980661372732476247630480206409346091149402531747172382679966181864685715438179865431001472287880799242138046430381758377349183786657465125272503227090981889677327597217182948028001651997938407023169615538555462686907401667547046576914001055028268043548974779673286634972313924915935924108106709362427852573617250894352320255503809730221996805471257421144048626504948614198943614093114615372436693600233891840895400308935643466769796851508141191957910255444278737133582393229952678356918696445180139182906241978115484560025953629232572906911918269994351072497339070158939597512134993092656186777346239209482234449145887974624783865762267215515956476477632796288524442312865317459089552906668571952354253725687394388556289342536407308920102082451298423915765262802135174800592335867577244611283419311535597762880156951115738380166724304493732738788290773204883661372689635454393859128874871585173993025158879288131494637181659207881904982055387590435438889503106422038075789098404388339558719398126224518245862882218662468669238767440734005579016102152875077114403730784335145174522367153270740413412132202641565896353097112961669043868242596701293562025138139146167462877617761368370090216079150145595117824284760654372025958045897671840582812700918800055839353725258778469000415365893933558735378513996700078449722177714161734938004336779155917251541244328927886353599671758087893923209780759126051320888206210131709684638202477938189274694706428788173082206533943316556357813876126165713238731979517624716391638635985732296069229696197829502556198737711625002949353784050969012341029122011151748024535992977050826829346098554061265653700181940227235501368213266389978255310259216704080132842034592092474741190356164516711978911134908661666273310920748720061540976129492428897561360565340827521397123315736625544447678022501174731729611696234481221026816085457409372512816576417039308757888271284198913351472670309903645499740505403640854514067085336174321495123798560419733934335861698323102226245961040643643312048825536073072748603064321148430702156253659418895383625234842059801220948206137138421126702117037188616113678540385417956231354718544568933127154094714951478400977496625791297932623502686980323907469134782874552580953843290615937624480717472942458288066931139355035087719740344049667200992229910343269764040596772823522453159519494591113025701188461283314363782740231385829999462199793941989964870567669498195417918810477230865357594269097844821580884158154085058226964953247952530088546688242320469012064730781274962498805179783907341882958253190057597664408027773533524271925228377422188209580909981615680015323423319564391211492511984323755265250547791831302272469821808875927621755872164875494230104905706502112123681609813471955992587611050719447838832297857850950456519809760069236144097634966929798027411846059881557027932492048549311594801812487131308838246850150127285402760776028666126107823453172938182403228166951196150998876093505932888497449232579081208412836692914517656485533529913296150117929654542431954294107669034649846875098764329704850687978934731548172324421020208035214556929969334954811473811687860734301179025934490910258466610984444008738585399624276634431664103902338735580089180243955055513045155418678412933806321516612200717892510822083555228014349329342438369410923693791847891704770878510707511325668438335797774736839843463783554973208190276805661457850484981955161563341563510463138193901980418387086121091132628838109123429125088569908376433480140470250024510028831771794142753336449154586349315549117957835405159422882255254950848035527398320634548362304668489306602424358784271272094791584546670801751252560288823723695129082922535914199044724290036709341066175318976161136929700572904885471351395722727409847230187409075068585570000838913425236931740129500217823530526721188936203120840310357977357807254619856478226605405645879743340246484594403048842817363641827924322982263007394246627094196576663640565269914868159916333944788411925200976693648028524068637001126641695263660136939844948470797119656097647896644484767039032115333429132654107391455907437502803880659882030228110538213223332609762026459686824632180353965257836630908455589013285346699485558877745004137474303333286297018516457643196882615456868898196909271338161655423499009544945549795223865058231300158826428274771505578337504377935969301710545626944868617061234065247352290486121047749555559097092467826402655993162923300259438397163662821322423263631036561613570329265845261749564884836753320672538000184246601052761547987929720801202221933894080918551478081486806864456325951827088882866717570744941542319959171248082400339503710253733986708331918084998138057650199104535569172746710473878417157819228498405900994799895941765736336260772400995997703069062100262890656900305997831695402523332281572530637995367732283043860982855905839888254840702139854415243874217918256665023611395474611093450918086146184433609271590057350889471413548982533238369986589973815356886104247796342995915516736640589929013375503611967937184100182074659137198403570904008004860209947500632496911004813158181520355738460070722414748982995793239273313500678632424901798883488082793912980882876145795605307917683128125548221886949827027546054544105295648493829145496490981379518472219740322651667617668808196567853817375895886841595020425019991341234463363643926218689510889619320952403520490108478138764131352968403249816762369805674486213945383962496051783251079665834918742053899650926737197655452008003138323685399992297945113203146966181981834705613264006014369432465537011467096105919492602991175081785047373498735698294859372383926231340446922765371293301415578074148346952746887566367451693477434075385826255797159828064398317437750219784176075375754380239281295917680698240696021527684702015531643488842064124686512816210239927070400736552664035373626532781690874391070134844189785120974159898509845549722801513663239727619012996991145720334247575505851849360835468216175608122093341095285485608329478208275604654568763436609202888631456972625471988436932840855967216354487977537513174577456301593306873102370092645987842454209834366645660706395393480906377495365014881239162552904763786657532270974441546818722276986033834132640315508105058993968127296231070474515372865972130323335103455349007242236415318258971890371487793160582022215493836760885882937906986276719256579616147922146218387148303731904696235533852831565336643514341432778333326476895546681073518736284838609322289240803517820652314898432723672178618160250463444485876287973659687846586754888552738284384718359024379958148385842269568105815139098201642181472102028354362089719008939965695870589785354864519867416055231400879694664336128128423677505064298079358449697400451938444201050952983519133239398268305981471717138579578656408569035115139614994531468895262260815025695584474887689392195759423984453029138489971977542944193000858390530041622640954680911839202371351542889513135766290062437067740490646731416138707341064549703069653616718751652603297734463185884370165299725480544301194233934597824526796211482588669457176710882482079226675516842986304026614340049895025089257213500713967648625044240969348271096369499794515151834196328183804984792902646664256583854372411928374700233555138484948860927226807626653738035414544810807810408277020871972356541425867588007023179783306475234929934848263205588443373033587209415568915866198892500410704063695218088203030212830775855837243830893559990892612660304429782757080603706216641603933846979465800541497134018450222038738727336346939016094151480970675010280841042465328480093791256237129445075810376662292595958472344763848044877509467910702205052035921635921095574036624330187743947994572527503536781106945089514978984709823094671349496223449828819662967195194526680245356750663533350346090835967150829699602886982924826351592238170716116219186905763835483761928093840824811536342616931961422562313615545235996818553810565288111752069801394354458146152813359163047679593405470517299085175862689293847982567683635350813334681738173648815724426249276644806800755256727269604526600008519860449217214416129599497103559263036882218231586058634927480520183596612152483877622127152528328118582837367798241211879421563786909305667761762709468749958063846664635666351642478645167875385792372445069067608415837690483738890185064671080960833143767832144002232727594608440873241371312352063244496378457680267516909546547404195601451332167067401932435301325057986419846751950154525041278326753085048008534353754577870804006867564582500139363206117843872281606367784166870432854610042099275175623202151313203318477396476841478294393211894733301544273695891326491754700230449189606377204776725113382991190047839983459348287811793544911713129247527571289798614621006509804239302794764184111250390074579932414032128711775815620886703755300249050189480005595814777871776815883129783005823394951059147990075185070101871914549301498586266830489143374501985060898828722939076605281888337694032850119662206106980360160434332116723961965413561561641940820750375887937930511135353143313296035450626373822376493606592622727667851948251700356723108391191070555611537408742729231677049280827912740748875050475162591267960037364938936346185607989470850769566648959892537387014679044631880738761721702485793422608114571419838637845070689410105296255788212418401443567789252509326506551518742550734204645613338338742648821446318900912093573623089181987717062926779046451013093411277956634213004464083065910671898786677722287654908119049130093139762670488855010349848294761220110642379698885362641871594199983144542657532590344457484693722338623494110644249810992347855554085085282782897871054525496056701499752116221576323222345118348873941864533816236508095454263386515726083792745731960990544553723327598030192021306960541038428528399578736444258615404631513657988533126113671738762871443253558817176619181704506977645822918863645865174987745639041095520356871153474929192345884804865502732031324889060692753199478870991503474932808128344475043593634092412713711483447435891747158315666220968755867657278262556964188832819927946353460749755983511476939639714643324469813319114164772042667150676219205226224340241163349648666195299569072793379638554178913827913470441470845998923458456697452803506366524913548809079218706544341983563337739390560774660285578452539314894823395885142934973594428420849030490558474257024626775338303769342920141343625435562180936371759588664856824883735181141914725600951434065004402555651930358252095113358153179259325837342942842464086287525490788974129024892981735704069277908728627221242692953261460482139248274550738368916520598373938445344181412344510407669510951158508897796186512336297125631699193624795150968600121713059938408052432497444260015015064904735026748852224965282398736294755515578980480294670835798802402829175328617536025768126382247964109391011010032087686176810400835083359137827566909448963168029857717113364205895531780902981113409300663140898144647842809762933579031051485715787767114353897830951716581008540759199029004051392702431914604411984755225930984893017382297076146708854629968335751552154218591440634063685258881654295391220789976853716269068405858732567158599118925208489807588476984640989973977597566349361402698185473558072219034573194444931184633040801231141378698324362610531014161739896732470389764584371795466790127098426063567667988018914556685767127389222764516033914909858720530890599077894695059886215322903996496593768864221740885136145167432754864882738955379018213887550180683329260163115043059342542205539362841743107247383912574974101458147646279617033252465335902088883845997031528572002389784151864712973374692359303630877516619701273165092505475095661327236120665400433013160186044283956372136325457217184345752372466199460205593520886175240424125274262231204483636141176097354684463470127900753924613545768299603255029145810213199865416332288838236792639705509664764773283963461159103187383923282511147719243372251806106691691963353027312854880084982859646946312652517373081153258046381025133373478290976968946482901231857903719122379309496896379380337591498407129365849802785768947091300000558732218888322285965991370455428618524371593750433139972588723431231121234688744017706652229766988397521219018440694241568153019267801230369071495150783261408640124727208454189832452257995087662931628402430897956594296238000800759558686617863166622251775172022714837388751516777265749882257051644146805749571517445806094570619546171187601312408829721758220429019221079516986208817222636651326926271204984717453131029766498796058411539133556369890146061739541491772568311003514607991595072963704639597955486501525443633021869855010636551083618411233180504159713568658287150749203778182290781498348028910628735534204434897379533060422039660448091209959766380964765257758617849756542815125965789915022905285212388017983769517778660168336788377913612371856715514425925954522064953509477888480834311896846828579006371355435923833966530505098533244223130535295331548588813348549720114976992354268526504985841226046007996157549015948603397048947064828417044017941049273783783078994748560035843153414415802818800635697608420505214112251702103500438533849525012716514408320086062556796027331465132648541827607522837818677344997749566690147369678578434057835161935472348754007833514012996217388230901501242142732152737387444286853000260118081140888627293005651728386157243267049824845019283368685535982022132281588270833224389680434619585755772045559346053354168217070652208417985602305259057338017532090710283828710673557164933658821879125377618550339357681033206967697875263382616554566388858848368787947416410698328498332602488673238335778275297265584061973040875333280987628633359504424361709472273113671755550905115468502713970087193077413250105332128267366488924381823050303284118841601154653745908469213143093082509459505851226907324855901548799907689931418141145825952442804414799993880766487976735971644513942506561526513075834129998657928350961306210836816809817264711610324793017780606151196906864070284922051764616470715597140086605193632537461434102444023491687752930066538649848785044182480306996208093707995411457175513295346514710121238147549555363496700214483463831886680626265159738294368397610565010156201120614895529082879195367669727731524396487552178612013083605290265268490641813108359968230581129162597322360161083594153732580515875879065067680536796778402731959538014492789158600491786423428015202549497015888972947315776404665443449183805805666161360568313133360989859302325476546220922731080997027208075796554022763539738975486308199714453489835432069437547131336702909775148752662671158619501702033044505236418241854298587091651274900466774252192112434192718872258331392846040166014773046365229101998168122150788490194929165271922576285818760017730690448935436451655726645403885595789752992512818052982286346657471047592758033337726491323423742378796777452260601037000074027089164640922953795939844371334206140636255676645513344801113030857328135673662836374687318132671141274932692819619808566102351938671458522068040650634789140418928001525954815179748600939410561828705406075241759803356715211385930902511172583677849641290631122901838438663059729237628396216857302208337095036378139923492158844567206515912498643691936841296243230990131617478826743724025696325521413501131521521969416040943538166238713485056213660553413196888771225010853633366356968381717212674888217546158572041724986085854953849738556245058775019307362674455929772578808161969389493779984680046140263309149140854650466262430057441653317340077837483444578431591984616062663125666713033064021995453186357580537673753132365175734700711080666503440982919945486488812312497488479307838502384204466592772817251212193701409016928114938933758327567653420862643999436398292006768241104793658738116078687717294745463024290103971949834021518776230651902953076894537263637165192541162905794171302687870828963717056443753244471910025638956567527435142452642893086565259882139736991041803851800720463967406821814450729994789099990285140480729477388097897071852216624342442976241531050082449293393016312195572114765010274015369153905779364968896168841679022132349627308492972051575716687138093727627097188834696334783354135084230152910904470115916840786002296700247114507759898289881200711849829107894249371478928001669077683357972387115786083545934972627189978482839838192615410522867539258365863245376737664049375478630988154847661398792428234531570055153838897961495123605612858645131677040132926524010825267432130220389408861107743975425113768342783270177217773704511605579341427846798327322567882817603686630533878421104452501518345004098491848610612055434849731466769798994978113342767921328726034536232410191542550941318981846967595999810290484447823433112735068459973235083109067201450446843503136839054141848491769291831623370283320133554922757399588336039979942531502711483241536313493404726102586527534811334225656947012419426426125164205064556202526786323893084991324908045866305616289442459820618344463914026045553924446986342551881583306263197618623571396831735462496350718270833879188032333353340710807743025833302506207590614609233852938046846708142434285578072923133117754839431129331580179464235629685693885701858736840507910056570264543390070500502747028622865332423472534825586300224721543043840732251806238430713382979132917919005239157600769268799978417913300436804928826758127076057052905859454571848033295388056086464275410515683886455593946976562914847986670142351244969633504545066198118030183589541755809102146892128693701597302133895427937823253557902845330166139215009057705919699013304503524110385951849669356901447458580524445008422567628039829409690538861123377006125454312494360671561579531474147183871428722963915710512256342183554664552446696725282405456901148929665563211138451278010280852173537398024743548307764854015576557183408032877110404113235661974355103224376907884737073947437572489312330279632418137907444787561585917216626910208272117058667559881653717672943862514377360032763203407958827844062881948939678907874811155090042017759249516144669376663458857960402149938238140437842078121901474637470879986096823330920882376840719642909681909708457015701776228367951685431923445438042181414107253704266161916315466911758888902424383544419069785714478875870626343408653026487244777122035522304841882326578270760673611193797692001442833459014047526334036254645447277657317984591744927415057896387222547049852207610528254349218347071013298758952756382336613204470115369053307812859806894890218894968579907679147073623454620732340164023369676421236343743432136867482306096223822936423841052392333957484642273685516665480943404326349288150060799124607829438325851283599621559723305363778653424049304809572216663912194253759920120015187319841158846325573054192814161818349398855926225185252101348543293917690643526887251309069122166743901696665590243033985561330346548842187114436349568384047661107443400304787402166260600619931725724896582343566951213050046977936910799920730720691973217053794263664385004040668726440102793947071082652930212172670380547717298521127671560470364123475957775184555257681648106816220002977891819527244195093930082930842796054113242434540751178180858311248409746383751119452175097409286485948561051970494039950055733586473213360056102142052488409219108953848751112984544857041136032304102512114346570277281363723264932734011237237071344601747254314762495590604918491610800853093152739511727466276017901998561202244304028322796620384286077307544937382834364089170102490524671226299834752632491455053836598161275742100685181247867976676393516311797451851528912803055489831217597674017336141278962884487540571821820662395270340388123226402839668843592209027945424211338569466898078239567982284817864360448502923737990236375588805066602834576844070538845310196614539071537657173940953320895384710927114834388348482285482030396993735118313583122437432389177124352272032737604655720549958709533751929719531293820169910040499541038951428629426932907801140826950533245672090299277098585611609697039513522149459545392025395875221033086531182010678038713088417705225313083772201725425466668141518617687038246801666801656911187129783211248571643368999119319034544387451644785905235965926805430064423868583683969257186978600149908103419654550426480797573455268202020336833803594016301359965364031345056197197128895909217882405198417433616866653801114445246179426671417269640564738569992736294648000103193254889282764500661357961295146348475168111902890849466388269208719433705592537373374299810310376936790500834445868717324291383864385331337516308611735533394469582320398935242144797723873205890031607052648069148164567636447699255440044425960097546084694414314445311914365090970048012795528173029885830409080904529501270037506581628579077370016404718605193416610642103843939165569535161862437146978472814599981268753017029135466494481632376767602381478746766786958173955523738236406920775267410160032174285951898383404615685237000369980419223073995350799194255141450785117399655067188159202885589865029266574829654051910168496148179509851376021190936888731781786900892018390011702758001123372561437627951398533427965671126182537449756917165229264023839491201433472515261947403963244771797386003161758946135655156068711382682931593008268816535081669521861408330047020539833848471845010078754129342709975025532902830721119405497421432032510607151651724692911111672490887528971407937723494087378025569576039814814326957978340930900233475089426679693939915366877588192318123364321937967133017459549098921214226852115444225860286114432188720919012418527252605951499276199321423271765992603490985236765489574802586943933366225821792962615755171079129757314094490389551885584774329056820695853358691243485463735823956339866571580978413016077659714374654460599499027660479092408595011529600900620078188697365889929592558319037308473363589844327766122940997237752906281537586652947376745750492084715574546017607291745227106427307531324248812019102490332212616317244848349604861904529853947964704290051237117913844361371077393948632805881167130591031933119689086957830307595410712330020442106537039684579770016000639608911484235441929501335549154522022389642587029953173855074664900892031431924724254091965465988112766484576047499494738028477850993791148031119379412248448952071894045296408581155268008779395629977903550039112829280136158179302454600789422870322744650579098136357811474927925340334542580780035674517519951543505796061056569604529617174560826917884323938386654180491057401455151644666868328735221684652959904176207002335470531489313481366968331493097151601039393290373058852858258828808419328953878938101557346250171230997867604222644925030071240868828529731432518961525083417134081522792390331234965361834677961474417749477372166609643289529163245687854172266470233675666195583197515144419293978577683902109213613225350291388178826029248436616642944452719383235578052530547609303249274224845248227534355480004954685085125086684473577260194641803580772726791084683658864854956442926338811920901527836263842987027539426903962623561410138987590077042858448773531228843380420299522637384737775844717015831457450249812336456213489480247678143018712380554301930596570952289934636859530615385569251395918329658491667719659412431235844035607010139136650522610024250840088846272280730479792073253032138540941125009908308729638007893836492699578829201528681931634814807728281330584332670532737924349624671589682695458810751576444571515633075038043305823859623411363619932363702612168814145074266401115462763908575891900824439158889126416268323706338541749408984871944468939068452751574290295175896379466396839404593252416724950079445562291559390359198105247234749384710143642254296874827016673022905601512337392190961291854093728199195952295713886880756140903145677725629973726305264898284569752196914415562513120266413445178792386719694077234835579845875692260635073242031860945824809644512671366649775204595340445035396313758741882837007606446071982733839617216888557100455028253379534073356322133648488765550434691775312658538330808960880868983661329416588621992993714640197040095076269811300209349292367761333486690488655916790031263722378596319394429360225941476822651881933750442392093662797484181358216147496018568105305725382868431718909049285739339263259039818200173622301195331897914470447633644160174008509500843061481755981201563012820476546202091882977253671100526759259459394346646146800097545474081585676502086285323237861479741579407370262609405826522886571564833762184440834778962291979784389579652847687257456853268394518196863457665921923281515659628800625355705258205945589847838859210097749832908663522302030055370073275819881245256880082625406022925973454837954776316698171988732620429618852972819717201848049175493096026552163764407411548498235198388801428662595121267851302677492889815209970519876701823227618436337165245174993941883532813827416955184860085253566191102170909925515827264780132097989891436857301211715806979172131383330807427219891581370694416139852294077450111327355888795589099997764850325936365936810909918569837075606739335276999761614990877760734475670070204350138173009692354008267635228638567104054101017507327591840684972737863852667660198077186905875395763959703679116364872214746809396417367276378551311363549732254027731396345294485808028071140149933487755864201023162276179567601720565864588381154739401887398323256055027344347737919294599634378847795492199859149952561041626130645915966056196410639753772833661349107737068528983964773137546430494629090976277294245410110806877133301874257554694948244425425781309355828557156806599307564289913582691741717194018517377766424294724082940780201126152756206674859020976745556893824813963913115542907944004497123723025814644102667757147802487259284676607325182770501768922144638133998430119455075078365335525381009795452424240476254115266635910748174689768843181236096340881523240021941595287152212019203561137712314929406853999969407987958332431537652451567554861577916905055638078577221302075039070302242954367138108749679821671711244638492592192917762603869064686189698620045918359604546885358135477710462404944996455651152855543384799330060290242042039636714336188213632249728904894055763292088450908184134420544632299400427751430241962472011886700604548004011933122775366943989992681943657838211114532341798229325019193163797749099340019559569010708946186468517354841453732546138461797241574566606528151923789115710244310792319890175428213387367764507574669694714842146069375649838916809619912536178853381820065872490730846065806428229330416524425535020223674161189296449573961767284626248400274915398200899809366747786043475608792957879668452768740352443534463948174047566554795788810690377347330995937795219740222939582564208216572484489274613400346889721843450073630228773602193580027471140903635070760303215452727759236465764615803815880201317307616918633052689165934282722819032249152715096487203852462344960227611978324655969610198828925433987300100945132031884195616106161110750597515702111728525235595709199504143088063676397303312151107054350280652160038569580780629525917904911218784203315343522904285032019013889218101295184703678986247295875230160846697065651108167419368910396943205962832779797483460278309803092060084711519517423028036634481714759437417925006822428609488145556426098048058835856418371173344578147205004015757669395936789762298064546160911046830292661788325410615509499022558072620314322342870812467540625352837463925995987806005635861153556242165513646732947229345451095637205755898208348818156929177788483893417339983626479394839480411022872780315313068440356079034983458879698031935605942342175347993364746160425529832976300919025604070274088124827644045766603127733490822203795438249916808436083453349711816607020977530947508948033212790949028181125787300852097806063201757640176562725625817523231096492694266016237224128237184015317109051232252082185448101324666125288588014181572787492283872081900544726836501850755656106058960908117227163996235342005258518358445997223748712904342828798291619717557944905854154851125780986329108249656473040970922003813713336667880006665476016660668709530245099798129312482162372643442646750681282000442203747599984617858971734567171100318351214390284471597130537509222625293625793852331079787616537182135186414335746110537599124198724564862986387927421359216407123390593730027605876756003445575507387349095890860790229851874332206729796976083928157509551202041596325310639541750844029246266016591510993838538274026938368943573151863962295015011485542373281467312022032453973601115178858777269461645968549069577213967731999168229263186504493722779704678083160917402742589752804864623600692481638787008713128710672906185930789839714505564552033966598395033583225308360776690063847753769381231581387021333180809047018638043265104195965933387232539649288917944814991071075057209809165074076477255223517403006731005903436693205209994669100116507187796464679773991377420113294802731824142839908003690814114980967354335168510177129456367544847690028640542428583098528729567187679760541625648265849135585366897896317893401950029530430661847505512242974359571575836327776483994625790381555939139544217032185306529464888391863841485618122573513070034272196533204983785489041178593454070758856187402904336720812236164711719004387816193603081591715374210068223377456878430686697881894304885327590863542242933016225351253430394221179219309400217416960560915351561935791765636240301282914713888830235936597520295156270350179747516790289864917437384898910297840894232775699031719899997403427773425744789906183035273976637504680508169418759582042423102449221134410850544161656603351563005905914647276683553460694410364430904429544059025820292007228060154311537248868219492975352441105379896815208319039617246358009189028343120264864813456266206811982774269777455204506090968914433660301123795519208925465524250911047690706543192382234331271769260050985414649573988919367745927298539483464742667800002849917972450461580525733971435232737944617387885621536488403467615088448650854803729225861224445744546981165169184564445629397205334657502691430232832815615282948961808628569152904483480162992165912472910754042019095879763206632245048627318135479545013632999464137935768610054714278450425163372764355184165692511821857319549747507169532530476443818090397855881935776668540522375169028298791349236318148326352764309058877365220926310486591102266882724063999390995964300568406989517409939153067223222350281789024436788192420961316839082464001278117594017079633777881478415775970685164563710490678564342619501165498858014119222657146762403825074411159411466084139045852867667690360164041835584614633339047263661625011013418041216928602547066082550758143390856901276422248001336655926896019932408221550873846285709522704800291953833277384274591263435366019520087771993008347142996405797364124971679160986410229369398278166281202347108145112653146324132451382524686369201024370849522222059931422000781630089902803871987818965601151866271928020455787667081575152793879472067491227120998426857938105132589504217975444766197880363300725819817445869984703039235776218692305816634215900373982490610084536265488448999706247991729050664101867390124099559772313443816964957860118441642417310173748456073745784195160341571083175473525366750486820511475036822247264750915744215922811486413084635474678250924838614302369304755085457034479173372393259382492927072696959829487406206155206060340612126990838813942149310991876228217485037828488569358389068988007789847232456832280436628714764224799305901689283792566412702972642330253855739646849254968549290001552999763314414960730382751012639767673871359758520080756941464923972509341767298033633392073840513750961223552788289048593982644323282040852492766038406015675190082585037795631096272226127030415892470228556483519219122202910995876169638730482685119820463076946342149661539077566362304621645152142183509489590758369856544304664155990896716598549131686639236267930113623500940246259283153694603376026317271083349354948373348880385582584912565742732591224347577832290432676446854527904225988544669623093907730385213537894715800211076590320819001521453122910032152000634196585254499282477897155345386349266600633021142122348439747858904339070494216493214018789042214312664265483812509987016050264044162671007354119850473249454840733111499329391926356239119707226395484641805180911322509831192917761412790249991252326472562956492650235579338386690339022272656405584974243843370493350939590023215023837727222398100091937426923805470619023163906103347763792219573387704151448169067268439488425972915532717546404158021621421200697545251522400095364029943194730082861572506273872961202921427075886957565582572221237919138989021852850572896184788705645809606299134040782499213282350809021414805703834312552184888588897089682237673226191785869343828910896014179134446175858101031703622423033513439575152484258174549096187065364533744636851420932444041370821591831366816334587072877151561529091875627467492715498194136107683235715816100642846942148032983363192372910395212990448522479600793503976947412712287594617572369954691506722381394609668453396667101132303116356383527027255702532114605420956862978145167541469149552518993997518447441917902517283006154955976283224526099037066606380262218102703577438290751534337448445633079921875934718208013571095676960613030130582412997680455401890808843113622371168641547861622369336234678263317869554342779878844930503061401604604098639511348536313836607542888382123704219239502619878736212629269258098354971823694152192544945948706283599402636251161738984346087294103961724950067216059355279241094222588453776258357534747884235883618300831145933061478613636894945293953270216832117432184177481822094381844200732300682026395810845346973306250602061786795975081332547722088771381328006969028051409256897590889517422621781124302169720553329529132005938293228188347432478867327238592538791095395303768985813892195309608187782990398731274528351577905302806857838088954284314597566536896187932961812352592457905396803876908588518465448213202419736071302589686073980859847454445128415646733696232388303857192189519829048486112051293518589671739548046340963726289811372563342570671552204513648903626153912324293338326232058753598518006294832695907328530727940862294766552894405881501258421192176320862768704587042406254757569784080283621453394950953896533312755814312525881538836393406537093565258813139532583879728123399727236312016460192016947512666885632322185961263221708451992188540019588644348984937308299363962665939580017872142012738117733033221730215917017592349024815401419834568444621784911730095536339540927711212689111561149832207123011905290752394263802654087972704028230456848448034868571118778510289321291571157840576793104652310157794045330235938526578303132586852712590422531008319772550150073633891348977354367764643971340525912664213831547606395611017249079780732754585379692072150386473336816467678425718693874799044847311895610461421081678654376928653546659055657129594095259272174758776105874727221512189036681922865685969314859318548321877796218030527237458409890659829969389699551605592658325886120265670918815364931034817992339045562155755121487522904091829180804711098205639235856144760392264822528515981379355465804149214580924781037082326841974292659135410671413212982219416004171804134793526987405715757804089079453880366954154293815577200864339356857847398048727984787439529999241903091508259772661681674492865871814705152359026989974120086479232157118471031462081725163691921731210879126097244521570099389491271093716202413439307359738240705866521290705946826438106865246801682943269005303665743641196751034334283981226046997184660244717759994295866304654395985962349676814459361098681780584040101250093156568118149887785156765264634336192429622523040470864845681827201536466890444624136172704799756154105202475615694748206803812152928731730856076519204450855186726955970155247422406888859043437856703147127229154036750223104088752040341930018007579469794470250859447523403870141115783088789809217565078566953227081019906499853044346217117951231657664510067462416419576986373163743716208440690006378165202960679659006440911147302404141351890997074271781313758813166054224946424029244845428467484829589533768798044400101836796053638759931999814466266699361285853986258302165502013665054842873611589405621543586163164705356901882047572024779234186952002580760128571305571100781658410090732748627877839710714824538385122996204802232368535356444123960616628849126325387592272863967689376447460033623638762847546493597737182993071215535731829480177351274645372459467970355973234130347282292605070703878681506078836256445077767906748092511769915515793594667482257103557400279862461134586678609140177991638518317747988951965229743323844506583760455206166286260304135629016334021971320139580853684200562699431061958374365819098228045444089656852393666527320204782506211327325787267687197819809780476393690669655999034174644024587502681166482293083769527338913433399489484291000383213190241024777459720951207509169042707075823935191188424391996562960123944002279403329599465904000635578497938978006739414998174858906595587431514935569572306951552713650117486363510381568946112665155038928716139252372688801787944648582113958723101462427303536944657609805184534676967022586528268843254200933242145525578688893796241475038411887250460500095723812060416739957485111235196825846325999970899031412108761490006465513362364118183148696735983072848030986133487294467813786098796325126662192475664303727350101720472702963517002262501477770075927403208942095985025431772187185436111677099473363170537715657042404668476950829865312653140439218243114990891007447507423347944721667048507930250449221187585045475342031313326163744118847899064712088055936484946737836319055186026498021432793716826792626216440466015207357989978468063983855069577728465783809669663084639836163255457288524811592209488664624817623402239176062801496843671579283624535666636373983659953701305249145848470234874413597531319393550365735745146875330526179170284258989225316681580744353189684578217727630032733637689040823861210012050918783085759128998433302124944411094062236120295685034850206400353651725291944553898314294132020546946824451949032991376551325604685783466576283413606546249568414752373736517894075813368992605636692243534384778043486388584512960296353517649220789571943986941181083389237359579976219332699767037958973179537298804424148467228872028851245939222661748571710073232242694217711667205592517289020790023031541677837797847750659199106208521918359443717201559582575404214392340153290498063693572476652084796613971044174310200516088636003729319526974998016588021802626557604099211923827786620042000044235486236179448658966591708745553867166540148299796038236245444183972476440264782135380206694080596573673484481591468021268175423588954899370207607450025369951560044826433065774093716019580201286005965837627612293724168706519932324521629471969925839282767822657492902056171480178452835190168492615207534143678863085013916987338975564203484395844761485233064805178226050669506188042875142889147656554567197213058732038141578576539923348696109771515319621339556629665615134310729763304314876078083343547342539324811968833354592430371940728760791352453371722324129940663638824195216778252044100423964021113019457997349711401113772745946525113458030698694342166706733480258683213726603719013091514129061167980288239423779951287377619863464170553148307322783629284208982445933418152081302081563493089081050007885822628219063358670699225188051082121647354818217870437685324677415852663342645263241265639244065984632867362709649167275152874300621084809628846402550587676775410724609197710547195724840014784582702858032990781402505403319139729504267460446044742465420617797104566609607081295189232309690536184145097869440675689672208485987716480910677063170606524935089786496828159442250962303184748388945803363856357461285528994516476974273671798150446435436085034765602808627903704882733484550623941932457819198485995988727737895364453661117297834177445064515905781297098752134742234239906522884739665188743995107531742547195532997379033927566581728867565803696940336486638169836889202365052963122837492196071259738674460646049166555411982414038916234818979632115731263665994566801111238353619908361843568092641635902108102653421898195378509313503928520308233368261591984237050568916646044198474280429586048121279393259588812447367202282148728935370166569443288521462432945314028993177676849672186853084433510544055733068346783250537670384895184682173300215418006989700493653118451663671581880766093152286715752086535153016310456661877111474638722960448853416733029648304131836165096891876079824948231266641575403685786904286221581006947018375147294523652331389337415751336567601824754852445488630237777427365078033037456896919340371423824462931795177118674325903679214074224382495460790211808283193860124298974368111417742322547980664900297035852026798190075227028036158224693641162848423817829135312919911979685333553812620278345515365434668765039600748615882225936969979865601223479364049841771447336682815378904742166543975701298030047359805816826140716561615152877420012953047939076763804678014510046750908419251415535245207796353111139833318486435814919235427864435121657823253541568103224872119198561742908647489465179721228845708323253497900851341177386421753560230195649158256182471985453296736188950346607377323613550188618705961867302453203130520994900958776340634182611540125372475675237932646935306505623320509452575220130377578013114346711518850149335131665884739656253907541282343865345242965458930093295273744391964556736443520266830656706856689832233154899728032334614469958232652774048186877546402802496468269949600081292440201136131112838747536418487469261086267612639376989791691384531327197724394076453293229181834980568380611199756718852038921585347809602714145458290896204672611116990536278601012618569425962431035826173700688019084165490188960036033677211505065051282816548309642399487846963381039505977104349210986081807673868577785435658797090488700184619673510239235698069492811930804189303520538670232691634436545386488252423929574949801822588997872701424789999405637596484515834298121426141481801647206051730588303992241636970261579054304037666957442803629904302081948714471594134864400506554295813421153118232374787472301888676409960265450712185015392732915856253220893847418564182600484241975130193555137363226535747182399296984598047864534420876388924423854962451823483862360722837467750179918527310771640029865624299570406934969720830599231510227384370261526906532344579308188393875306480371974601238976978909214672826190910315356903313029659037757838136762588948482726499078312072736201385640544161570414098972929903791302428145943660194415494141873564072087237446369264327652132670387793412493741379227582376551374539926834513414033426643514377026823783241818158028588890585405539211898638588200866754126004676828629466528988220930513560051655800253297221215837040195548889120250052906918058494244549437410242672185380901861258425368965261704537828055370467841415484016034272621718081248186467200121546728030790047056202692810180121170125889930815780362157284277832944576103989138232409133304655966025437092627941718596513120552612012924135201217701421390270144947344727973231025280099423397981673580692596388948982914437241964807242393810866617505628029670268074886313743869853332567494305484684068300247323434149820172733425095920826783489591163321454386545352580793634999496260060116425038016350910536718337068130842846271791181129985743532849927750781142751041694230780355913916494682673120070756956808607630665742433807203563842902186754412930394725283839875126805566820029290527469247703468697553351845680688027399852433058120999742376965686898787016941067970819782823438632664956982327004060161927073592550102706533342437710721742391459779235623623943071332748647717579529389230650070891223153641262519598951151174160302817890942387027257499587749899506841576928241069106850715978532878066687737603765551782861999917754713539733366229956026334343858349472343606275853317284545283855694556911111835515392595603653101347547291099770765945345208918459444067193228476723973765251947882496089958645620426680263874067434863751646136531348337958861938724127617502197148807500117845212196894762485877051062697175953859701898375831627254949210055179820085897636490777251128294119652710052642691178001198793364408707693786130120672589971418043009348233405096711794093846672631012909620394497874397435479904816501903271119904970466061682344476115836718445926283951115787529069731385806474162120984482273527348881908189491144327761002293147975910492296525181495498342750231377263473441365441317702960816739225272903869986903002073127832240623085238843466561647028796910085752395349343903313916422888743231301516351518792635224100304734116664308900280761837789848925819515378328664166935399681433285575299369386342833707153697766130820040002244186020577055017705717719970186896559539322709923400716736518151941191069484701351027762512581496521404372706758574905841350646125414612201443927696044216401554874923159373030866881662407122158683343990496509776978605058986558405903634199196356694432452900250504330641316995285861598803259788647632962301721718843002740913458203595273550177326285250704630454829309953948955400185542170043539395036357080784778874336902553500289432972100930803935881955020969810238654680948736633535255513988944472666908697590942385972779266935971421047171643173153171422361441678529241502581466458827405158564712332842491138335502361832153664009338241588255412556297589082394047860023323428551315231739326031230196264763693389300392013296845090617092749004268240444598872088999869605142950163741913753148646026727580954921251421917424676938580515279406427786786566601612268354152264892428180082913204240242030269141842360438341426514846857516233432470953406573716670394957831835703175869393281088104794271193222157594033272519528254277003995598940791826456050427785672313984497764680491547871126252705974694350730803316882407899083738029042991133953992177174124143988051392050821427197015237133592637132452047895169365656580656219810271374607177078540218490916221780582451076911333120591796516988917053157230515972656555729428921539108354639444667430241866255687664012410672689291607463346295461656347623311897306536544811394325771096336066754165463492813972871220753167296342248412309244317682608451366673902867397046268721315034556923864931171194064146560271360037328824863529629423531646723800117341458806454349936631960038270435919801915567051365726611992846428511902940774790802905374920565582376514209819561896639370142069552420841020425947485006895721446739964841328598986332019872317631632739666678699684618375979715304829251219140872736608106856714264453126026132392275576788216567329821628691573365754154457609099298235806557602621203844119546240773693772774666338027269333162412653067199609370902981901734222729966838080950884317555231951990106196753849902230136497523154235181094871027198380301818078777779093705863457959438774323023881329354008207269757968025915016896848242165212474393646016647022317409488179563506430267225791880730755750482568993784879193493059159173525807027480680180413030657790166909568096023265971934861308442658045279339397056265465152513195394361583291943169091648680614200317057422036265799995327674571609930877081365810517916712545166239371392626170645058663008940625387230098142603471650740097248344941216461993085405197445976395309544744782451975881666763411081700811027956585878575759637386177515785371158191475894117922831844680719150588265953325781687015929221838384749619308668365805655151990914530710874053572265176233705601869489804624339897777413434760522749011268439369280210644502575757787229888370403263916814883532292164646784680767820378209201598538845209389269725162683384123917651841805799837130308461839443205144514145310115201559764329196719468653950004158955470301198993419497962740456388926539572866661312681967506024081884282975539702869500729023602194037092401323592932831100253999263889732407853332322721541120467566734120491883848325188586534001031198645099568731900617364198085609907075286366152030698064219049442059091191490907201865576122704047271730917201078048097560878963710361734845227250992598625194724968283131805681097249642622683223214154451754920858184704793812650170658007645973320014656990121421537528528596687837743118888691934729266220877031421480121268833066671847537743137049079620681359631657751117256127496065003594160200397287560302173577184199074689718894270997956173808797714839772607349141207597338919615921734049422250200405194300901155272119938798094870002401772067337311715540556437292296762098141664731989600959003274513711836087440774935782059515234341309825469756931596833377454394447775297618617243109969624846123975516418794789462876719038779330309546899559043055209909217456797398463120764987706409550366621083989660361969364007538798420954327661064496786052900459826486367790377994425628387502582549186240704747749363333486672596419002580520856757174148144772151206607185535848444949398634038069593276860996087734987083825581774879350284353949243806181523514020063920797265533628951494794224247827760135488107135903674850815327850571170592544275341759350172967702449769678668481137039575977397471890623824870692059510256947465148373591256277030028204816496996135281366863744398290702497629255349087425058050544409943580595461518796856787669332778368504319107984480939777263431175985012064362326151792108496114017071588152798801700632941319512251487512113547831633485358210266615007992152753131807598417101219132248404076152011065577182089686389630283044524763638790918374717703482910636163388779958201935375671343342088083855844132377684444585401674506944678583991713132174675021584953710115341599258738045059730856385381460545892520883763748740334289085661834521507045696964956510647696867120902868535299214874008126764262636956413312145894600962284557919441415990720222989129463472785978364137311945623368453268420487085587820825424550668601753442019465217388821633558792314931077812609241348112272226278449734922081350281194154120255900007091252153176424684661817840761356492403706261610611528005932144896989398233361272336358565285124592220073978552137156881739988311968673325934129155561228895298059490130598788978511410330804206336677162414866242514303918989841561966032314439290309592364659000792647235735838422456524002597393301932989933436452648179294176998081955773698727160925539540787486635050204075585515047070198990536616583670450257409900966352332830470811008385503915136986397808572723644303059461770505777067978665540684202747440695690304436829072015096852290586313069175270442247622765893272841693034632423765131309157703776410010106997790486912573873210047193261324012932846305075872416332342330233285208392853429213173150397665332424478085129109903064066038700765008167700627626367233971744914645013626638428171579479260964607221162130784577075795482502089268195368648496183731233431161212963984168452743082168018819327924510678045470740891471975695381706440418338994960150985911136490288671369239356450530691604588868806985157610535470563313859140205602171879367654650447155258202586139072220205383373501455797048144560132329133213033550891673656243722488845297641069359940759683777464784367810371992040903567303937336645499335330379712524345734391913626988547098442873051830663719454439854120317182032188778219840781654538537207726698604449974158307819918579198239264007100374719397756195194661371994557907526425571883876770311098544651693051751812592618140541506470733484739703382795841350195231884642811937200004567577829447126307863894666973516158056101884207098961272178611390223572885860783486201077231622456542111696854265897130150004348659057114787139782437451327474437013323247762790414056970944272465847126865690267934364433145216178303044843253514343406758293308753161042526682535546279571738721269498910452685365433665463037548391189310024830615424682181793716267286829233753917557973187374219132947393400559620826895788445253921556598614456110473583439901075486953596667205226045806573446529854029370271086921894565138112777271119653950303343824172862792709774344565977713206423242106525714746161595699107299783669603631814397602524115942392196805629088546952601156056330617285908155533119186213617581210821748752437584363255383246636055043853573297686852066938805283920937322493318334148489649132263625913952269415636480797295165346302654471598048026193345848135283106696605866268165876310615640385686331209975089264792287058656248693344986185747160958946586387614774529210637610206356810544048208958788631383896970868415868764727028800617888885159494670992859072807840995975020013506558950617218838648375165440654537480852484917722831822138255026795801873184992183959251576476281681339899084970518454255355183416319365149500346925104421150540873440822027467437899316566721677841027522847680119813234391170461108596742449920785472950499897942400068519043236931413508063391768416599737796866637893827259725172132233565957307686588363237389265529414284097293709958833117941554741514036500325347171573818127974780279295319012827758109377765142837067028371935717999487497338127213504435863154435385729075438435582403041420957318910800650853710887411615715278614796217109627691283581388165114934909621851076372041265792857195227628931683662342885149809995990637851538402994245611298661040071568824778186289503740908141948525774176445970468428698742313848827082200334046173623285491290763614415144802554955211858401146023282136456556612172238853689054876301333434062724463384214036930779134689385653355641482496081068878823347958331405695661907777559799227074690616607365944042207512868070011513137906745000480537945303219297156622593641201026474687113919031927467478899895672193262204091227513740118137624450251455734077815991988746373604103300742799596913697515559360545744625198754114462675553859219620683147863976879767290707169191636082453822643643865944113609505025276773882881307476193129672663533774680313402658622481505924071899260163179566970220396872825333399039188242635461279567003090019062085289193727457615378204660268602412275722095342676189887780936030144607411701240121867445686340721510374290402832239052607018058084129420066252067216006955599840240474671731958762886710077612011635845804020698846464562400118347571163215021419040636120430935051780014058348444227311084282643703283289175035186032019000171555309430415839794362776891917490164376810554626751651424943735019519373610541108159358280557635790243586995184757695404525011557058348550337230511526920878822720814216322597285668708396189646701238491623110049502693749976589740014122050077313178567004059735460739265264618633633647079211473643687244340820991788202118425464439662611258433008023622854919761148172204154475343735559930112359114477534534184018176530423455982989171251339554745355198126313198878075089709919499434277802163341600036161315365935874291785274977360426565912839385364603085083498226390717691295002620368982091979688388199435672038435264049969447085444746257095334442996345263844128726243651369862834907907432309748687380378364736200358231243014091519234625313967413436562817440583941009940678431404251572904228733527284403721363912034219666128247909004133394862182614843800292408513383191473324402379586026197496439091412000298099124399490736507419462157773779343846340756757761754206351936241053000628272970380381539098654642683083324103062176734139781675550991104494330778254923880346719418228756034410784523377511861200947117768249455047875419845502509216619657523950230497051020368414153461060475783330410102094920103408983723840213349211793346807524491699219434443896289484024113242412888050923702185281578143813541491184168667417555560050376315567070406634385336711079938280416473919586164123629835914980465538031365982483803668486589778917282036948278309897579339189977685037643212718483842890090700778003782266471918724155847066245131538576467374532984752037890397425758801356903420962377310195296060032413033410328129124509836448644330051420151639969897007780872153495062162295394970695737397141799762577552737598888330114273706948027302579674657554599308611267492626207653007600478774637259380799137455351110338243340886183175420454084234195708118256704407670785984451130576083089358095815305569391247887262383520158421765627787158474853921670617730587829513867614438431332089691266477103491386228188686533640776463461429997706290694545569967663501103602004120938535133971050930552822008266074524378760663014986641355666091351924479378289350121235741170493723585379996097212680851643269793204219088961431521556752760393932830858624556212491090635372441301811838425133676798233551750555252553797214610621351660225657772024912648724241726969020117122588335635811681284447213610752487077464493394810108742889203447865212085309146304881634675326132362475760414863526842639222013634162563979417867697906682067453352211870059809606465259617493236854079197542987510263108402914347025329793671313640138195683375218403609914900985492973922902926337382426472518723137669695101224673728848556702671757660663272637049756921462380357347087652053332417310580720279489494142615917038225332273110760504354233387629177575971810875284423750106893468113146420215863197123573642072010775838027556746017249430522436029092562226547955483823780376831319753511543545625266404500884678774430869351750128720375842022518294829911254634761222113390172306717675982531841635507745889910944478066165826111544441177593257180999374887146647149953081823341665104136017435192373312053095955280636053046684158347313696744980107346573051477156571449146704647362011099294149294749570149082831807748984341619858978665784215313386716215366717821193227284971096833987210346706382731399499070144152898274478157831397260724438251272143419612752613331522168727755307631522616159853931237977293589034046395572419621770235222742875796671865468064284781783591363870820345754253058904002545996338820772205396546937722920203308005278571161367024514145687125021937111162058982582522045494940746775160754526109371664457180067904096683590891818189218402651938629194142173646087575930186302182124827208070951190607858194910825708296135621715993382379925767066533704974413597190315009495154375055114743205014165140600050502210143091110677649634059454630332480569088528781681930422879653285521429521872193449341926665006313439296222939054123040732257586844623354949697409529642483363089059879682521874582097007144933352953264360158916949078040269932232960020409318689378766426968922322976953263594769104417501313396279303421022091636433623930979546226415815302777421499902671852777908877054219392679629819884007927927530540346975986710271283802256115586360308605258145582716472618399387895754173047582640019630673027708074684860114591962453917252364288516851758495463010966315334601262517777755740304283297410869973243260508302312862200697279613396437407179623294387233800768262533812860106362279741393022713933178228378730088751593820094151362089302301004744770764069224666610866522442256310517103059451599666828050154533749190769246909172364991739244407201564153528086483840730101845429702952502379587169806159782289587328698682871434381615696104690506411878271000660767238478680355429419936635615900202296980163020488705477187995215471999057862481769452260633019765553013103429097479691031763209051250079013320070533469132529937534815407860431835324711256249361273358823411463380555322280178626892026584956237866162197956906003177263329083515601579516490703135590617298566853443785730283296174459766830557332692180328772426022409841225517324677094399552916861184998503245838458254994986160572727315980615844922734427152111001384005460483928001355268624702665413205664649574173511881912520296661343034184577923493360898897386124016849992276671561964348758553820293465212533317885910870699983356720928672000706317792053385742176968909843063115298573962142140848350050402886872336704437158149499183700516385484557704271206424823542208325314943267528162526028533521563302178831978138107154032167072166547891679339388970367113663065114336480839109679638168922068884641371689633678334239755487508982329145365602032241896405339187243382719059480909378175366724012434332528310879854680556501542132035755810082792538431491817107973437390659038670363653392020515141106989556758356716996122450048256605414735446834834895117706163081159869164829028389712024749589720498030154425289403958207265089383149976305548531029698560101065355003115283967180177581184321271255146304496538989994693158177963284804456588735714619080607004765295725897654119766309583710661403322140202659195929905320573983754947917660466970536413779375696285365857053576812795717874054350469119758878931224447119608235691043001431262875963206859818873951518395592399216126593140899666797633092991893313472910436647327093286517949620246967870690560578575519248476075875657727557345322076363687378230505188332463920084061310176060801764791241630515952051093870508737537882834214877938711855963297690676981517790207593874110504068950063988285020331934543014197108177498884837365246996501441786569487601238499276112173867767386241230969296888711535097930092272929550435541513723805989624947622575477991657649029083952262312297756512100489200488027316744456666608389642219864090352049978924682347159597959767333329512711032962880305226903769511708393983291444624244909397967071204445725440108982996869877831063376188177101238277413201178704166614894989799957997596236189190727432101594429893340324739564200387561736490654716277057015877831601286835198244099134984325217776348529270718336234372073732703676673041019314241448863768516367057008967230645185662243926045583100814064620446188159965554905262473488607565717798985672835290098700047341794448098474437711076233706218566717204372790789201065483838709047562214157859580743900581630132886003706952308081673084271215082223086551714946726709735901543701388006307822948571971958139400128773005510949362376015306322437594279119534190945475061763995062199634936482507391383889274082499433071795437679066495702157836693728662358754698751562869733708322442241852515915930773090026435464355145868035175607421496764374833045449921674652516961452602939870840074746540159460380202560371213778250258465732128383514454104219873978927636225861674877397762035015231740777538273828279996837918857047018975821937492365154324732243612797709701014476531629953293958442300446318054256721850309888942182056998748058731645197626984568885089143152416421497823346692756714967696337502713963390201428633199909795910351040381776792465985270411911822531411679418527605037181678556654014441872092860616691463179951634145030433983874431903533814648951318035428896926915380110004266294457130067373360092137617123247615461340690029764330178548640631284587775836751789345137026496357606992246637495749622279135725047417922002845125236275152618089172114124700689906350866450999140760013342331857190770089782881587893278134389497599247811068070839914555869338081103597953686826199988311166052522581805141146862662714655020887151921179069101653547650043171710087163413083519213691851784571171609143140524833916277968890472729506994764277782986492887207652064808047992386213132798765520447348141815003534998114099124102900374758663733067674757666441730918909570996638255049778608531767302125747802564218308431483977759736472962074759976447664394243157729290957749374844645422465443005332795180145914519150359410875679796039744758026498363568754274034947940317234631973189152381561972373517285554906669317729497697269447885833423258152812777839843042424983466831558249953141239636723242365305649666864400891970134646993825390080338637995456923160238289775465898728186855548096114152182915458848003145398510924622824835853319121700197257735237999880943781140636564005466473640186608676202493819251373472055962457476046403255424592496557624143003989702989334456970173993950277814986891302527298589494652697510095188338912615957910921611869265531266194927584093778278872062137293497567549263824647649838560258905569709987212973972678289855574054911334846193421091138416106781132877549213271278989180357763356268169816605656279818600392054667622861269533716577638260079285594560064353845333932941005421704542489683189188604040144462291312838172909813632243062397859942087008754997812258673531044880496832339841226363031800892925406545926844900078137324344464719623202908087018931494420859604339627887733840035610025176657753860576823268552836428540812458481216634865491178084366058244630472613390601928640041878683356638106316251873509371424411048798649712209679781188605082302060442099996635257891352603887671748381858456681705483070109430421428368944216910382379092390220350573548527113918981740975335723764676590925010743853207064030069066617769234961335323023104171329858563447018509261118271569992571820062540216479633653220434458918169191874136536955611981258925026626135828383802896323800165435447376669469630770504378331080841743751990229592269256856675856375981429096789266197665033012133498555876544158098725938328595831703843122156614919859555484365555115769255620839394318417328528635681339096719378354600988270865483776625847145068110654138008100068437406213718702761034002847226486394454311432909978722567349226223897342043247224751910146357701127390777735602171986797858782457974244624995480421271458309693137810064707940543158412189562740058087044396447478734986663029084318008288746960816189542224227481073680678020076953497450430356772327989327310880703801755280944895866569228906019388769194958235406294317980390875160722726990933686430508098619899341832491784779559686372648554783151744425995006179112086274797831208801944246318257507852745383550257311924119973994839377330641331649892741432021614808138760594146864989039885132555058443743290264829550296324615113722246717453482048513249470467232808565374440303779168166968414131430105337004870324594368120926410796787418573654194144037095299886898463827887466170442907054308273202571715199080835719352165260759102163045245459078509468412655366758868868106973165945883089028999733160573755459281560863344141419626950920413380687346962018924866579396989040489116210922854387460441024808314425379312689888939331558192701040521236903753596386256260231677713730828303470654581960279124041257632082600192779082313864935127402533981921311412011031400070667578290311008455021143147436949595434214283698452020726800325068618080075645667994371804663921390449375075623807549023210676764449643538718849729642536748369677748859362480988662643834937741416605934927714630427961169540458014365361398916247356691809046018567407719495826719963708837650705256820658475568772956192569072226447518974740142701186346698476543643097755594894979940418004919808473300163553402548820970864848511403437093011396806375597110799350670127461104395163260434347721736819691865938380806727239241297871606514994166657404010122093326474656438892109925229033268783775204126749100404059052989057969916794012519804793419698378432578794984689837929084662361294931111267623801209374078349480086306536714670998813126608931499329377363704094153112112688110493877293257364719917350720750881269799397351373587440419160295358531078035978476118447208611844776299529774095947086260129950913842253020705814843399053991482361348832312429845241992759356380382551460587076593598953430230598692012187404642088429350122633265525988160205146890215060979044915904443388561963466370344871759553725574723564470080981811017834757532128039033147834896468448975310977114742376125065771975385272960119533212340467440197104264187713769306209906531230534605806017363907828733317924647057794907831510223564352513676867189375847608219618619170192606244581835216083602194330634331709834289851732955558127378535790478981495464942111246242506865865770503040985594761391357576819910183618180148895853082143019933526042202739984264370163007283133258959676275018147800692532689623691821978372001460113954741534432780748102924032366891879129792657440923477889040095980395668772922714299047195968739386958952964908790275167384792802359364236851637621711136659028289183559228626932852257659516842429328037154352331084069041107912406610222846357947971235845021537755240883927787080454633511827838138083089702784417658932327445319464851784231795407429249489419956631531782512218684369581775576116040163712356478566492736011006506901108263181920951284945741098828995605262482545096796114768285607417446789306393162689718428195251121716401323284636189870395683788135657893548938249972135286344755739027539239234383655717924459544026704696427976077239389686073007437322125406320760327681464604257717398810933201058027570822528499692184923423343674580044513276738739833535152869666894154423497087549844346689742546192966946347248806304857950782938304444028150810832389212535250800959240487943629350997055669859587508790741443058317097757107596038105492177449443655991209242378437113566996381869670710322061305063049233316566042341882787593743193172355465105723635105320872661807462576390359209571521038834242471746366008305275838830744233320551150790874632625346066067562816642829494387410161357846727397521574442401734698963379596283428550641698885575715861684511501608213646410214351637825227927581741296647242593020190983683727256765710492905128897609568393475625743753541635770939063456483324268771148202736936037019477254564901312849947817251316916247794268224844403786807757343982582832709954080127917285632265149181484799870995904545070303951141648008458195342195222787994191747957822774136395974780322967352097060147825597389746846855046942512391460356887969967553576354148208782208992288645142801808156211022666995194960573067812289549923465769168046261305710115779907149763344187553836140792808698554947809574651647803168983065254003278375006776037753099677864413887500433075364142669172963603175044457044563489429912177553304636250355093845217427115811938444143760736402248399561504127831554961094973997017588772141298765107518464281873916064147211095446147606657761459527820783130648314694517291360896512751611195368100591120056539709958475671748783204639279171060675342840562400320310914009383816729940787606673955297321357049881251814041779010254112268722073002445736415886894495482189805604338115176275069270053244376884259175538483387794439389728878761968792090879965608112409174989458948619960699140726619189724804510429736398923421675260237269659467402949689085633821211714579381256718565214888887033557176376322561637655034379293134700490504974989935665965985718692475603397005063095834090605970834885690102177157445101680318820892814311644208818648112095091466406101016811075049792511346948420603824727063699197667724015865956877545046934920697812554222710639645957552115487843793142964343157282098747456382842300517672036423948821807172493524620533797816501696257787253164242711528751140027351188772689176829142124124361816360830775894303345650877228373424664304718843640109619580321301716497382465727662085594742729528517198195592841344298488959625656479856041589720782337445855481424583865146024515689945913022099073531556217007160189845291076487421482168987323339401250152450688675519388681755225623384357888854082193632096365950514608554462500071597291488426791999379373054245334611222155702202611154329124818416372347468042497833802850130914865555106085022146337946759251794529655988203212510799235907545505954648164520748244345125000011649541378778366235523867145835400874572132258949324409219339251065927305246537179524107041425851461190192134534494009227205540088360190071331873469687321451931556498092858359871772525700244537279427219793528893180238518520886880848585332894857141638346832837736899666887303342383641896383030435833857969115475857565612170291575292233873099822873756829115557244937475609873393862478571981377977230739930041342466875739670777842202857423380548233230005490510075392244082152440144884544260028674169580850162911541638033199213612040519787965036955717634482244822331858584684182049544128887578713614007735956332742332198102888763840739716361992384581303147214255011651528563101862270868191165677791351128254651804067717292937205559998798760606648449355467817388122660193304706459181447358453227757902597304654352407333154690936152601157630902062336378946441556070965040813377174366929535178896735970185048861773668672231470957708222450672840367735815913004109515740371281638863598107961529106137284801546631740722733080153141124647893438550676539236153246756227974970118837053631611607298065577220927370173358661975081573590617137553852181942814659978606921469307690954667480515599867031341744159540201037948037827575068267462418023142550955966160292457258864255940143178557909997095149019215705230773787125791607729805740005959070032771560424688686881669308989339268561482958640018616259469945623688840659910668121457044533182316057192750238577894961988884270519544043882069332939241777287023203914372390048630442354744526347334485192282333069181965007641162823023902166884668340363302550819111070218644042390016045487432496705153333462374958607510148325527315135861268354206186475230247997374080542311685348504114902417205330524833092562632638672813446876799821588420323290408470253973378794695268182610769573558094573597746649841402069176206668184262771917465612841084733193881225861608201455952568053005075106565126035854196562743672125976614490934208012427967512600002683044857730706511562182472659145805964325327889677751923395975191845794931972059363318335750484706635420604736557508000466254604795080027381682201614350285893796217868322200528973324773344129681879361593410083788507505011795402430723174075791529929740633637035480898097718783470808296969241949027933723299963967124302989624053685919600997152888409547682708279580539560536598818739643694221032714421865086732983148345793650221007338845375182691486293628547470623828487756755481506766390961365211658980400597909177283726368705275601435597068893615997793723347138418170107932397504898939011076026141254962909893269117018892570371402536012908995380521625889992581878421097828151506008094986512280281023151210158427291381004410876589625412144244710943717814178773401420458822978385306843319927221484436709817956740227182490789256012274395078259094942572104709880639055202788103935147590971781046988973275240520420078463907376249232956744384005373994373220706411681752479820837257366804577743121097203841461135631742739992138784252029337404807336377635373343196113293094435551273064002447622198388778382555375256644481611716531933638648069902739603243815946426320533309321944229140471668270733976536314838773471207126631900499052082589875454173754217693255307174388399058552541778506041651639252843134546435100620564965106463652586474554821496640925027852955470206408706496965356480922195274816179571412023696299188597565055354393316474629755373225742941926212347867089446371142347007746036581252445166498167009569321907271478553028472602904905492673732800819527930392407644417102132203330433324398894856390803297440396491707263257489595767022175523971870021005665594199190881001055187508876042254947283913809239160250525116905392972601200272904013455319472718195777160451972698464050550049566135611636976365800122176202439321245147248624067103950640520750329269020504604357184356331070896314951707957966206913452219924249478146488502421072575119215172178275196624674361403503413467927279273355875707899953975012945184178883718089400979056815774890997838030807617122313382120892012485427798299222343473279748721425486893065952819369911912619319259003622661763324702436234219923692332742839583299731877794295438565527787690639716692277699841291142630901864507014592416487363595550782926018103351043871657105161506808283908024440712297390176228672539718292691520023818753305774346277050617000018989823414830101488258262389038846899392137388686516294569726178586830471499869253601181656734500089071129806874425232879219068282636388528783413571279102785991918153204007478082030361996517351228461778888168700955119454220838959923161984537306636759792913395158319445717677939056272654576276213898110513088981771129882605566737759910263114930687077081260022639798226113780290049959477003850422166932145357252576609899981406601719309696248269081655421120226707037346747277940382857460224725863385200502381814679861727885610290274827365341168430852822860209182326484789910736066870280772631994651705874329176350853374364258902724360216801632612049122113617845032548835273028672753035514534697290103445618469461773660108624490462822510065929504615377110342031489279123586864641740192433167587720871378660663263295620525389462872277729029953774477012118349750718483522954864918624641553577350222425696839469852354191036589582466700282184771476719752995903449074914542666879339034448784449071077624827952243597976389615978194011183870295742380805469864448318976654077390520684624915446711581723602079710007093997614055869745280832964405984455958880731748955767722409328288351854516415124822603365597134910113758154555310609758744588220078779868608126817092119745294858396914047217894138720178856579148247898567666992099338691260863434845505192874850513856646498331489379336971748555455739364430156162814360191315809059716654777724117949723800495859465236699777573580763894597196699726284114824822406438812818678079224108863166079413212506882190776973574187926133088854091891797544168701016658297772392614406824247956056812029957444712017175009628620500927727398190641103138116793335345332178916023919467993205886891823192830717205611477730552746536708382085182461262965813837704093807197390393468983000719074133643915115951688166099562443107765963601515335958967779963840086559400449372911613497395078389722013203549410220493951469485592761338994205286097196117141262274671959377862548545083460625500521825526666121744405076228426484513404389446627721337655887582296305454090851257346727983943435031624996441613743639111406835593826181775960845147873353039970904941010493513610962469757574775285755403852417479355891723394172018959850819157720002591327178673724215695092038685248730942535384758044924497002987948018116520818867287554840483667903727888121139392971114667719741198272722188919711488097674395832618923355149298266320027728882685813177348676478183983119813380867541231868729402268273242208594916685832805096822282415033501291800205723100341713443381454241754277106499509698347940696932984862859262129462487267266296801513285951862652289727612938771021216778836676265741254128864422104883031024243722957939785196507111405291265873067901010330521699665295178939168908741179688287441410097508953982622693229353968909469079394822639624194426831214666907514919862993790100174805560213172747496520423296901117918077458262043189077788731683721905353842964451573298877677659468567880721056651602399437167429090220552685597550265017576043403963935587871590406104594660939181387790147560671257157857311527483145593128584283106161103165028305561900185420651962944811351772539168676106314344976961146903171424985899172919279108747113345863195346616899185993695081070880862538453072378611456141717601526918030224570037847169240237978640293794076445463503493349341180676332636516993074645518014583441389795498376270706161047731984022525364481137044018965360623289410968424641696425024724807823793395478820664997864607890834872915871440795510157320770867605136474898867025450242229162619051108791965838792452080277484967440187295220888184032140530281513251308919273743635834303164561054095021172076437330286747315242981049938332445156947250974373008865548659760537709849110387227106508942565680516351604065537401284680121893282353542774748285217738220618540201592240240081394096493446045725409250040376572880516321671585686696986089438054160633835407427686236537653418395710099335146122531703132140089454389527044264019066542606464324475907592795679193517923243063564500412565167733754090255466518361000037204014054288707589970532392314370089868044036437881268504809799444610173957862059593921365858487690413234863483307926589654065906453002138983769196997663262079095218601163499159090487253535748782176888448941211588679693640959610711180280991820210214366556066898775647542043800560057951426793158823968650103322692344775414187918807451335131827205741826020640015281402297133992323015529641101916955502811144361374632040786437288639303003259810378209709964217342550752940593976694238885400705335966479343655067109475925319824765461675544364394297643588965685915879314847932051765625810704284340745144370352277470642712039997677539159398600397696633697746457436315697558040567444609117665268173265728824236656941835683950335068322313567814034323155476898244307847555206945245958137613061355640606001253136628814417011029251507694942162298934786321586365219714270051991935239998500076652163034207442331036370893509081466158838881833868374987215953505213319803581075389305741759007357203032501702819439212980452337990761531780974796838521388757026394221489726007544568495377320653269040045063989490779044006110897424219003563588273186479006044847452256789234229742115529851907398057797584148424898261798156604028344455544101591292127100823350949364702163991349874355298872442698544496149419874210662544214889683674162650989487456216312921656652581847146278484248648323750254165820143251017046921476292202262797836690480959829240438264253976825604963453609704743404085467808492765585226747086475750722156101747191502613824417072300436389893064979529581827754261007803136072749734914729664051491609950591879852370140880319536690491918276229261716735634039317081597403397902038011104452084992530586985632807999307830130118335274316477619849746346081312335473393553823683887892454560741855013400002316235261121397828493232858764906819406124853334486911545146678853794486845886080554206849703514319560164035075976388765143622100847373974063944987379371359354662023765898940717126105018648510224894983337532076276242819016236241667199789741021308338219929144672793382615053302326186502184748367281352175849206773505635683168882138682970217201536587732823133024346268441700727571856121040763864444188756498283083846880279931107600768016638364281637934103959964658668261085031003063074713575944149451626457658623577549108151422130667083071443490789019974507035847860609354204919259307461037123838660310376551404649937447292545763967636186719752158390137676939073915364342020658835390320736914752889267537839769304271555988339326857696887539084560645697356069658465848174211218307928397637601163466496164031019825279893828937087231660265422063843379609735026400535069003472292550797337199106196237035891506319494990072304132309393047090221986070572797957607717496551705247956377698259796158445598973011471355866638094008290028429887756055415704698870427706929270268622098595684484134382405436504888038620643332654700685053274516024706271442314882547474393417998864986100479762063944987396115537855198379627689534440073223422106827539688769766220888718581665088345798684947468103897289937206944008068972254529487480890174793021300044715257844252308945669522207534597534065701490596661113486712424730141126802933782051149690234067163838548181804693031756855699487703495904688414840731093050591306441284954649004783388019053906515593984964770832793510253734703807930908395800142436162943649811525779468745315229616638797254160147077272155701540348574111249047357686812980232130605749520794661850151792898701681436451129620548503517577366622819415441238739246220462420789395537224580912498596003344045565425714935437672118445234645364008758985109686779706356047140671656467385988192002739804517070967988340772857808076977774764296011676039727913310352508960820785719013891747031706715237053416520060573358629946563305319511044093850616326915018216977938913997436553344286050533411953249280762310367307795093343391270351977744870858302502271371531815939450523318096676999020884719481431070832482593734628346835235097466250339509457428891024308354404144557530429788205479387577898852030797381064478271499702981046242212159678890729318447796149471127465383551154885389495440620898476029352569892581567915153994004253513381539320325744191609059409942176348365374156940979638592243561442836583449689170981627024812583027973983520122384701613429970773075125881011335485227045964968929596176085474996181333360329022292733729368198936048733985035030711299137849640082943939336086721845535244173047830360101530971132409859424691331187341820886009674554247517538405408767599029239620496828067225723799517325333740249526511767509953864730618333375606981901582542729669635341140976621228807352217254773831026443362680292687924659931238000161763273066731006800761519983576077358300474875973584782070869727340508764934564503905473951478420946344995065751009067358167363662565193117598491220127291495601987015803973501366712433396976530254703363680280791096487952116025128038928981748787400054554308860784025184929694845183339002680206475687308586499269681469706573281809560401822645408688035291173202969192259237279982896342404026141220435528757460202528926920374056744601836086903527448005284992020155789112235170959862741677012402798554615344029079303439604037434881540577994315111682095402923802530240701040651081817730180176066785559677862818782041715389911723041910845550067820724522383231899098385352928214722948303662784019959948904573554804042136684770975747544379390417841878123990975066293612674352314438248601242565335269910731718323149788598285652200779678982652218577369388683788579004776410294983186411779139590335000305633243735127920516343802510937709291707177070152145858078269621825917276758228431784280636239384224365688853143471936522553478607745256113719471691524830475689138052080076206772646499032173112603153090333052631395732849874916327147077383618023483731283088153101484100002916148987621250397503245170312440587233242557693454461847698750124134004049987300045931689557148740896376621637245700113016462439166163860113447783823351402602518720699067547840082280930332848787659879852768491874076547012139042912308437956997215593599289668975592580726465454744672234751381241156605338310385917655268894512112755911115228580984707287040030052706822552295371040393261480940160236745778608719392730089957924707301976651443196002921988309777713967069011494268194189814222175847257424993965482022329625240312657148823916642085063419067220617100231548118099141602574857941467532529817564806584004947965698272865688396870302206802217009878772075222380347067418832893686911070197892249559262103267854021931708970499756782965068939116824891468403574613929592621252412978661612468745571096398024007627194814150699947696762766637545916938294990538760762131786666815688242746121673075721151059617608140897149306674579797253104630356256085645149456909019180904668117691696889900963844468630195425017190834267438042569417543552360559949717594144198802958690051136423399970148904309187250748477959550441976562396035077102568289230494024103570205916915898282002243254106787427026349814575685295392137104193273939745563226254986555760042739149664541956608449063955898260719340853615885993864530303798555100158785186838695743537216193231739647921833793340821919082240515007824773846334681409589660384478702754423374046193144060614971155047519807432118522267217512891124863095446391900719564572758523522353983474208960220615354654249942783425568972887776260078186298502880435195788118370447892645404182189212629587287630537110796749941451098072195868673468736868134875101212465242143420234314426936727916398372788292525691891520190261416205755196138640143708427979931181573406533173852763384725961171391576707850688950179334578527554418063838731553180512340336847962451361246522397857509832708081545842833217850666741256396808394724022936894389389074698271922125297167103822554541449318536311475533151427652639950970258450872143403141852396459713114238400350766125760081425741144574606690364881839701963835649245949656526440723587878139806897274453241904831773984055458289124968771836873491551461531351731584855872002183405863798713789626309005143941504167028364734966412096239649971975296550209937401089827726564538437053148821992887805699045016817698629711914659055811479382756935657272041980299165449613040520338239848865916718706675908668812685421706414515878913766792497758358563840224265183938829750534415144591430596767678592470591166806900399062619256039982324417040985105511096744582134562283507685698589270330753305630607220519113870999967440248320147581767305717066984891835946330723509435905917579168191231242977169431398504459784857551543505377248371516128481171114171309808083305887238373500251478543737447541575485079710947297813196689297872070549240010990337447702237640753225809602923034974952069692688153545561858069869120499370372653500685109797933420126213551850090672216908172242849275608527774537555897663399861028818007978679077080737051897912794818281761198332386228272730610481583564625028097375903405873359778675248333443316111890593043093834035066200238899997957099896988561103634510704484538052671364686672918947128635951448612538241896473291198606197047608911980083765495497277679128193734998145741064484046988396730766799988220972573702553019505095298508001395128468935078352577831141720189008166017126443207648436185359161353609701131543701737879015419360232976002968349640982399025108673074988093879456996608460850458885689572643423329229336005502042233967471805681406067446793377726137643241083613620732065725291266657261524362246335356326647316490432573666535279977978717424563438505436144676066892332931427028902627972432462729032900172079134269602785711188563637716325772896278804856177024071385477208815350129392314153037683258745063615998225197710599744190258955223690795640258052801574874189960264254682433366542189985973513550984956098361044133091574768064083574582120184929129666898784994505714735914103406824148565474584141312116533591779757129904918049905671417682673644700142566983970617877958500842507258725658716322782653651489359042267566107005958075801787565095541554920343453451095608084938328485494344858562515714727523314479689498214535282037129784382723065710343947730036433621036833031023767693043814537298945878674568069066733696938537341977915481556341585195319515679412943862006172707645662504953292826282299382402301069079354072274792278921438325841006116934383927195933035533232303758843576093699947122319342583232657841688446391946639154245591629056705485348136838985659583523049879490753897921868582776638707447154673553658330672296075229983670510693022678700245140198018754186003932323485297359639955859219872939538850739088164609303743217858870066708073039434940436962100868813603657695928862697620486177792533955693560741588371542394392972917638669139848911247701333253289508628236645943367128566936862388068300443831174724983954486620513132682411311842085037598836924307842547643370903817134226963067414436214388926251400301334874449788555980995617969924838936428280355859552827089725952054808306818361249491402828882036917383105781689113218096521079176731851368221692162166359031180430056081938776709256089239042631953840956071860426883412853115725436536269286731205480909910246474577516072726771717368509485411542893899717989523017120429530220942158665045093109891782798563398664613237737937157676992685530886819189247984059721683327111770068033890419362022431836711775721186114174025637040390982888225547436282027981332733802366419039666097925404944876624925805108487838036418143754304649199622024472650995969057100419593594894292745210764928626253512399250161742781234532380919944385498612229669337801366581798590290463830814514169790473777156693595370342659598395466495642486905232754977063107418555533797941528661234453191492264529642230627019704436409344714162097972457731280992996287964133410640310988681276296054241717590259658395555611770757799693399851918355991021452346583691411248083302259731611503017959126997687131078709497163877192318111656739810351455464830959629680981051868872752529758349342464528640729454135797004390949772248620132850969971382034214225527315288284637347946748056922233527971306887144703242801217949445157029816572784265983247433626317064513933696230693584541875242031528907830955239842699668664308094703286419887186352290413431335127307015809422147189844826612511216732541774010601616519389769167940062232592575620218752467141658076465423001665956129054604374989293422300058796334840450392099194216318136736888015640896040539834646356816095426429230286895286765955968303161735400742478454818266534180224384995214194686124046303592955836333382105606525115548166852399035440699514103007617271723124057833549855302682436711903300128305727970532011108004496469761401663831252693911553200416604409328813807176585150791113153336595294133449322969930458315257856633767677085842061314303757639048578083214896805873476349705886956587522774273740690828726919410967051469909353008600738469024311932275837729962322652160909264108835282621641192551782681549546507234728328292609160410898110845684996440473011566025602556059541255394107574351140556156496193187933442857680330062968782575249348084862162741968147927073568053214830320576255407251428709745761689738764142440827354363341147374509956995570591675196452601833949815417016578700815628868271094268291617092609472328897575567344908698858909747923155754900037049375864258332883979306222025797406398934352751228768659051555798188007486743328874307205109535837775816123943452243339930568169930471604754860258122854149910264816943973186417360642438846416304994286387971924255824811717794344569544769860272494016315624760496227266584259903437573746473932844886163650230062333130781469334107997849543782614931056500702668382729109134063988359748949264992668226786350426273484470438875357870895644837405344466604857347672101384183787488690855909392082479156352568116780039358246828239238031515021831344373281515537948079687811721261694330475795738922281251941192072538936701817273276697670083809449098244515862512374946039037479394585764503372528351448944107112952016807256951009065126155816179365786073867105475825804621726633017383053685562797809204738970930828318895342975372393431104100285281748130946121625140390052350321746622193304767072078541918987403815085128331726708466104249272568214016467350369958554231527859128391238439704482167326150900458998276193065286249962225209599776422941130514573812106855678576105640123345095594979521408134356449372915261636520156619786479750776301372784580377433431631188545516020074830192234173696968983298298622544961157464386081158991859400245465660973477460726155691357796500440184023028871333077223768063912597862565213479768273543915965747795461677310320089982806426770200307304918827867145119341500528533741621339860295778926739119299171152464931245823784340640234196394386657109780132171975852311636821681985934545017236687776135371363726860717697513306516042493768763365026279146249695356063313622273982042188348375540149733107852198357923007802949960438518194951704510017705446750561459661420961242920629238566659009144726783095829095936751423469120197104383356766499598366044887935342129298613614978496811602550225386764869206629060047624188326039494273110456524525672970573516046535028713894914833950379107095514061829817222374539288669400427587087498720300144905696777940981211097191410203184338785359600191301171111509210460874754907533726046536787089971113519746226285131218917218148126261828875076940450796849249170203314113749573097656215706482876159605956887499116170389045961104812972292692680299515547522659258579951073823450112562777610408171115236635600905930151833463586599462862435652365333560482224625370870234167365904832985625997359802858802684831861668053092062530188754157580740344099915834485255867575620689025478583207500294191632079019175600052700670247064882913904204072097758600710086480152635490067942858746434471089533511184611369663518490099348059891433744493609915964683144255252056951883948549342631646514187610986095288001589569764234667850084392189091530691506029147212588194172070853495341409543807790701885027921230077536576086619032690231047723367056291311832679544693036301847690374754058487772338633031428544249190724188453630487482916173980161457164173882284624002484722615781789632547257527827055010620779693002251376893206324902365952908017188628815218279769133311377815221422407114629561493573538209633339377802562374435918116850872518898994853868809790252249990715933330890816506952872790534958053688968203468367950749630203771977133777407837598418852157390160236609325264180274563704405534535493761690489507174069233155981041956844208455453731921786581526359292821066448590628250762777724170656944938344108452945083019219005155520368931487310845327960989626444649146892733159774077212627230479227961966707306048784856538663576923829451041230040923957874260408040166548048865033705659850293669441026961238212484395245851245769968348661433213889903697827176404635282752255554859452255491426956251522482745574466388718576704674280108494306784393762251996804588665780262731130667342493514745275309804717777532305537076555545816746103474915220849044882851482796567040526233133416298978468441785375151734136330729249676407134522970386407604988423960633865696785969762292581596308445878903844391888460496342112005841464594450653321844198715713480982424077239890827220134892272542100881671167628400383292615259564366077792194819200227057513378681237479768275963502925350614213827077146773116882297487437620743571651079475223090357179421688609859324117995015466909917197357946331024386190308888813492531253785813658805174435482594440336720453678187835128137379959221991304666174777630237691500910493135762140803634526914342228321600597517373413670272814889541436333567947388335646898503254754524726696841390384072006265945658011918625242487719509455805994798889956794720636234949023231574178769050586740014986409415408120258790718057557035447231120009626074635318289887607996730295278132507975883596116109574904522090802969815784908361271568236707868787857301657333083789480322445657827444880708751919953560758839004361753498288615193855843918888176662899934265803522754033582195052097310384610361357952292336369754448884141748970394298416829801610139528773321024974885230119585388905245136492411610883868339397012182818091222071547061664922544129948948105206458044013090077527542814920010258301165004963387689136014649587133117567060429704520424289182223556896332772730313134791987943064150034339316332164730580182701969458607354448344665544512029155440315514206316345403479626997164481521354228258347529510404026977131797096904993291776774381390459574274186846907081974041663697427202620822851132462472321680422678029807232034302247139485660695670436932159380243324543121218110050772487836657524392204036157633830696230038957369385754880143016458804085428174150974947299402506643733890345316921724065340193408947622184272020268357205483631720608478325630519016302546403961292727100562695758323080781097735983455985745422737995848560017629409829648355989726234398545367350361718869622422129453680752555458176587211793909431851687364083456170187738227435900191246504435963388828305448766669303834838629801075560299154159809576887007388045313112059281677752110281108016393887449002823843892158928664807633863723654516821123751222803413131406750223120319973350489972976661511836591342347559489565211313440886484689712978199974937412324592663936503024571624158479035580965964930241408967448428801234655824781630713796975022087236823670312514299230821592601873642217798878384446225666941395996298422590208744870673879686823451130344662260663345532840895508576470134727482943973052225712432831870653677525255057260928977453324585597267975161898397357926349807624962320012527767823870829733697778437482679066132584030365350613563988069290836897347282481766988874490846649388524829527139755171362654412760353352501682479108842037589265426739096027737857838469981425201433512096600031808841122409903065468357609384547418316670213429564880806677765336312817953440424533404216128310719366609582300915461323616500969874748741119180599889171646673875017337716387494115773755121997156488353899474716514240906012417927260280157340989092936306630951950985649074482579147680820189131875049683530329527462143261768270959806524371159883775491932018315185497248939186941077082796528603204357532119815591709730061987159800848761264215997220833158460277507685071854204519761119855726220230810600249017412122089489364922799614377637020807436774980860612622252021502842440200040944439684600574086171764734172552784128980218534320022188642673427512086107797679785161304807212868717329093223314649107539462575781417169304952882306702483784278937595659647136432838354240566647664928640105845071281718661042531913557483891434110773920465442768820688464448664954140942737223800466638258303847759237803779163634400930390686346339384730912679472953045844001140335702268096356768120955480786087324691364246553949417061792234535443869462133031854861460501995032941616133613251012696549718797426072262344145265544912868474450667389307150379352930719208648234762166236571751027038579753359703464572061010959948450664559973517216161771260948109543310641822808354735120478804538001722031024009697420488664084657433282574538005753352849496610853611435070463650848509897797007832533004316406346698510432696475141190427632142076094965852008392591514166080481359152566136354091289220929070785725175416121200848724300072233057963867085479172863368717908677139825705059882118735127877356579608170246848918700660661637908612628349341376560495747425206922029807490295571350798208081887783741082870513454817404110650441482780320400095775174679215132376465555122776139991994517966458758564200969845216598502445181892043543367429018557836341747997988338092162591676638572155309713228388085145103172862252663031192063167011464008856404037910275148403196066482809618087979847503943630422318884388975537315263910817415816135279481867922404825437712682975979663819313669672645687943635744674064015878205129833890047373996900400861267808303220024278196793366572088337940546144069381578515675664207318118267472752030734963986529692986211957222823591871051375970117624252644129006118914917708450987007752877041107191285513400871610725864466233723114487562128687175543132260211893944780048290815028499171531193285165628280033127569737630370064535022396167284716878694775402000577585577153949437368619907478536994228840534181679903436157485998117668835414403013640022784283096851626561045911314540429854893483849217633874167909367228588321553838057148204123636040945331771930715635733120193440959416431907385228321555613219923824341689099941971004172441217151873763275782183043484017700894829088071291082359363135732066974137164542628621852082889046286368859912742863812907356261541969048532080096555998108918490387539164543282399130515795033040481617626089759247463681440704598109723491022081229547357423137163982363454644090907269997811649632698907984890478702613736060715485080666503081581344897267826228165967597062980922044186877111025571295612686807980175821579326431420305548459411803035868395704935793314314489635549758291700564626699298678841640352257689677030281524532939674523773923816015095724338556063994203431618062579730456620918378663481100949509096056130296677733323096071331621279503880361346002496329267217048285043753249659879673603758740754243996626887045844523172436855829524525794683468427405687790395284536794367997099427173769228781926769420091230457606468643921844360218788096672219385688067060955977738120526708855510586348056207166789979082418878032778266186176827473238929682846720993878148001829471085412257468419166396518119869991593881911728626139440453829910817780000815495255223888099349593540927404695224334659677939844185895058410162549115405095518387597565545181990142606689258991694803546881800058318357036520058428398338228175298878150709572281907993921260958688530341193867606632891215254320311150719999880704869241721213171645706016672741420432831875556731292590989530433792296383707349952366296410038223542669503853273915433733890351519465837790248553953681249305574315040605235631099277856902218420489350696227813355746875189757195002952036696788093977075328890549907100468090117467189966256554049463729612336860191265946663547187084006450431210604895177428089441110352506705407427644315489562320337602520358774619374929462969964311951422239578148755849725438562654070862945315529620164141022285419605846896445331819716278642296226265788315964260564226844520004015561404970626660440878571035957426638139776179088743146179510371482455876423512743894762440923798018189867708718113794606986329361454947150681814670742662542485624713003806657317484745997863294299577684283879997179648731898244393035479878830814356814940631454242810596844170262600874988746342206751218017374384965756262897197665170807527130112222544777719000089325870411478053870774371346822955014306255317400767675918066459248597072912404531611394672959268877853152100236702854346765563915497702154660739174773893151403307606706230390203127649541550978807791112158857054751161462498867035835507114949602667591382083276690979618401187720749926060642113054276177854579242345355623087042087912030384984945301412697776515759260044202700763019641702487207705202105483274708559127463366639990182400216788667195458547869655247254528856170693848104336535479635750083916648699116603941652724881869395779099441384901207658243767874327116537976351061318018240926840591361589321361599589355188419796061821200545914098872754356539841724743758611352302426953261249512929318924870984846650324070375609979893418023298545553357707407378802562765757474139575397722627346964555057948607640030886960221243982849236789034628890626178692789207828608972790239858850966760790974343459066188833735205803459379177484055798961404820789097064415862014334914753260732644590548829123006165202209454925749932864922713514892077152176592532855692193535704092588725019886801559042899885135938219375953384690340797887840216571065817089884318464287143617422068791921367385415577956527355034776952185056609519578232051490420008747974139533115089727221086086382824689596267247763930408214195611131109198515827599860471042350349857388935651455207907095208242820029382313244095136791928712941077380682315489525696652753462101973605225954018179996243517273086633005889384499697365841676931912543081819644059738334979757439535437654557530354900475763843544830791781425782014476789686433868145445151116051142559893843197093262841346468687631547705028222315114621581828466194348197064024197902031155165467165582384433564860583760696928479574422232680447372264922788831214819869453144269373734406210914262029646350427911385963479126844659510151630543910587083258808469054070291639668154665940900394800944321947004733334520843696221647531356993649673366189983911098168104374404062455563174070313312148997844769043399343762254170332398086826356891521721423524998000894717705948206230433410803736617340773609949464907373501768801543604752588849392737784316628094784462979256882814788962653690891602917583986012526551318643808387837934428789731486829760590455457544607000983184390279215073316360996636196032165122026635608144965494804928862735178105205421973684111742325665660958466191459062771308667915668501289546327200926356512271268961637784079354503023246305412058770643750695056655469041797805068421683660344916499197508120909376758609412037227810747606894880569760872870931319491958686063439733860263458335063776181734356474518906775935983229306880571294696772327146840104786363293884097333181326721156043128311536923123734106907477450931811690946991035990119986592333084045162096472469770000423016876560297932695074332490403418209117843009730584998191095913161508954495846619011611245243366077120819889995274838245682792645480138535796208398354388836668405966283646674050997481137856449783003085109964098366335869622608841669634067502340313529621810712807570811554472528049336678275789753649983044973555083085076302407890774047645382219357126867957117873822031145355005069173718959021889426012376649257695818962323923335937527038962914250312844117371564909274023281686003009413034291293415098566531005066147441177226785333552576653381474393706392909839092753834978608685103804121867090096630117012310067948429279643020130914185452864637560215800632638699810529292754668525183476501786893445940875292948467655400706439703929537311456385853635112308093003273482099435744198558212437132476081105951256643015434859950832288643959592953123017815687137632307869728788085790842634150647376195172445493928834381196755920395152823604007798681917327283549435335024192115373031021721661709650056346932502096234944989725348412341621970360141292854317679431787919494459612820382611984405212170996349492086015230473036912644163742311022286407178900016258462793449336715985811114815603305866350183125959292338459392776331114175932434827822806726177903013022591980804510024508795097828789072318906282369855874382228492836151077809868365087445567497326592325707284336228004470404594375488773725323728681988136357492763059629743860487930831797517819852914823238276019910155462288801017082568815836415101104093287540552907838059670628531869438123437361115918908532954233075473731214832839353315128329254535581280529186251914282111822230340752712692835123484226904366952667482429640158942399040190230556077702331795162806352617655317081908012299189971440634339074163961788490154512833091313697886612873655901821296631943341714723411278564356548736955442204064915822310502448698581882454520991861072448051932037580294895866245754509018763774042058261658614225900856633304114404516413070863778981309018382329695825723059568936181317696861745924675915565746695364014740440818144073692214257985404568745111831575987550048923262941310693660288446852284216583904455255906117379722051635092485322850623572339335335060538348569191082940418622174946236170204457198679308731905426969439712413032526011549497011661959150860929831499847505985699586036962170233983560208999685246939925385742092415317802200412047449674061014748920828738644592044246541302660819573523853927472088665037120960808377797882526193459338204383774887279189575654177695337964919433676295207019155201761727157808403407586321685527327043362375973339996159913442340756116212845486226816954806384167086190801685281685073385373843963230544232229516698453066450925830186901958627963696423747623119627998843838366883854243813573710763637029227916447564981444018932490706976232765504464858789266697388540047507161992379324462251216728168126655754383374484715929714709083512276803669000643745994733762435572250553610597394904863762605073306241065123926188300073960509883593922314974460332788307990139223790372002726765595029315560093767139369103887041140967379068907666835975516602630968557403250688198561287779657265066207721510885676375882175186401764596092457716267779366528340325594300836968686294776681720602718203670722199441282151676158874764370101869798153114837890620757804399028920717844565261323078279191564299141550006808792495325818265297471161649917346057092067032105247448941908290588972101675318456319284735570390867448979079932221585082512951014744769415149795907265753039184802604276548271296541210307688502167686996602524980084486720878468963211552273570267321897130522888519882044385921577039982053774633211197704520660374032309440754301719294081529060621189173430930183121907275983122367488296016420596381643045097087021318636678189241687478189799334280251884640805537204494785007436975392814352176304981892871800155093621077655922924835946508983431436089688333568326383765014547591472465070621751563332933695125423322622614372925519109395614684851632214855066324549985536974639393880212181817970757817903379835469525057707220886734740207355918648174727013845128606566619933541297967312312736517650248141458936852927042326289320741413184227617609008140305087645725665274453212807913280038708239784540039011349135801501867874754586398745735322837980936544850160966559786079314174184835693277341815105839175081779455065476298292476109568587534104023142754807278377747033464335785658203639428183135741835032831742404367511221292024189850445158671778900649234694879864771298871677882455359941336062518746317243266505175380507046342477389866775405493773539505997781081803892892656608951918209200918888176038864622978708404308283538727850198603728902424687785287559211825137331559543021814142210110657658173301688161302020292372773373586837223471507452420538619418443893357309055999269965196335049589666405596289076535517760923303299947437801168991632442405299316460095758102854032868140484828818699252146747490506824250170940426446139368857030004844409844653930156113058107623427477027745899011659217061934988563530746872263268438674508391243640580863060690561718426951516358845911776865769794845283451916194271377895627713380049175960800155674513869306640178614516667337942870812967576102279461400066088556566834569634939894030084905352417488105049635211386252028188036495561498913205407649472112621832121742174290478708443049358394619823885161137316402292765640874911336071058810253666346265937919216595595153013698920613499117006443704392717653192200426799976771945254748401545374802341939970392014887718283580503899830686653701813782940842196479552559552449813645557966512260769399971821461249886327564289699248580832929867416741850417195587217964802740610794965627896294634616617865048546645929343570619032950222185636038717249240214786494678472500901455993082712320769076931211281362650771004657970866228326912203112832301577349628332589935696085652373387241446893224988088919535517462587823492825124897755834263239127371666407928629054718097256633598454722850657733597876002547348849651785164884785467488104719422345326445194157474942902904514334383403432557652849866658328728724512860822224751385464630582026721457349496733199821089307548613067467384951977404353822819997699952307500817304543863597619216062135399853856381456048470319398707517386566148653966169934917447891298898785384994436724285541917181853883739281665522182472538561084553537706816068208306112583685524280766845966207592489862101066555374467139369545850001897065675147388318975615144888573099228378894939916419542949563972386652468046963902135196535286198643991395959780976348224685020998259098301079832175038509210959768794930477686084154757953136644539395848926305221839595372144597584993780979329174740825603827494469466533037280286689422301132643791957817682832867585493394024911072676694179994182281792270482718092054923774122053050537844202910399977099914935652115731010071496950288266575940687067082024241082591494812174628933663329124275529242493748365554736253638671323366888192710495466203685702137407642324052626398150537510409074606263326336686036037815952890506858292272499213501147039640457763365314486578787655344055638318596480679867273261015735594582125924123375376742550423454689562972312255181253037008499893182030395835000647712975318972042455506189260157628205370567493257781602167836635524948501152300423371657031468812482468142037994735168228673410248715054447925555249549653662779015684693906641507035872387060559909021501394514838501888543738537747532874927349229796594640943292249483412244515922447867709908935025568222839166970233408146140983228863382780036515891830924440395264716759796070837584744309010721850154499864572927844368430060859109575469804782681176186336178005816728284075519120063970391676701920482804218938760297930605908423894987300083281084340303450480139317070881549070760438628404150997609838652171612769045542382165826964770099262552670657576116665164164937050495732482599809463814860846921161844962222695318525550155701872192866206624463840553005601432651190517889891878272684253746766242195952881848117767617933938002747083761268111471670076466341304257268905943716370424968359649340809828775014342597834218017878571605543058742304980965814841011230567604765735000541521823096058339639245032372217860184373244066062095625691897870987112393327899836126450295736645967890970333398278879308717240619936333195172294602122530958147761857201995605679502048974758229667245449844893838075412016596825929543345959444662159812514836075384378511412625697451829275756190052656662832533329479730752126137545404359315285968734492733286980914378169405348849049653910189338062410905373291440954962164355374113435253328868693283397914122916628707736364046225492582329675740782487554307288631306645387021798248994356412253760183268810380305616289790947600611464250588375075508629625588945418365607132126911694430281533845730911995823928495028571108818619406692250371086064824149521970538808486624881634684743809196592081540384703438382083113341298991339805549794599327529372242364094448330849974607391490770585252301720560312624740793307836101169247384073367728699791031329262677404234580767742471070949027497245569310192634025175277611470088696344301639133805806042748620672036006955669234642454908099927473664850882404253486058466685830676153109433565915675265516675191325149580843035853517525509095295659602568313514141571819808908114387663770804974895952487013372911039671702501195933663651848202989804925612765788188846065031901837392966495364298676223928620967545576580834732548275939469866515990337826097682812357538439104245279572380086845251946343460204715983485687672199402664858546152864648593177111441675025167560199076809795856537390190586709060688770891218165846518423825267267079225082908996667782086415763015634377382961432141834160370149380125061566170463780063915597900034104108951856274080795916888001076338894242430668199205286489863726533014330654927009476116011129235448997329069584787875483123764113201161333356559038993818852535565505281283892600670026212063873703287686766865641513817750592012436434956752016523952420258756818111921073780238996704610805078807990732725017436130845242232772968399973348763596594774504689396739747776052821923107822618154643163425785500300381210265208620368965698618477387147853503073042957294535079917854917723260688616954077915642188044707413800946781823837486417495176856345390255352371964988671141200625875858983168306089497850834541174892103447108793679031497990892386895051662645368059333618975109314229352709272105680875913781158348033476196727769495036979071300552665103448499009405122747172606996197884056249002934138608096543631641905973801441767711794291554428635789923455500273980239054702913625185809890347363872494918603262681634270827383028147493071116287042161711982807786609371024431918289866262397664539606122863649848339629851396222778519270861259506102508780651745806964977500806214576057662131785126893962248689044752691828372932433090511673510622679511758346979199617821861571486142773858042121076022662192319264832769599276079833782280871147689294665443684660481299657842482404294495483719148421228821632974623822347467163169336530170344360423345920165235334414156348989631026189275334026969907854477880298156566510110356780061311514842817478166065360570857675850229777270955924549723600560189429257056474452290357496842762723683275385983850852508443452893703331865032271924158513900166391103590003655126225820806385811894964599923250042511097326516155562116385273755691209794139665154544607140050837565115587110424117925171656060643548249826491868821582338147417821837579654016275991850600570832953810507469416716421318095482039443468072603634602263756120820900581704106573295072657694383973776709781331946085737807210089132281372528634015623007566840834152617564352324762579999957077873269263352995186592349421462239729388040408369713545248292881022610207402745837505187832872049251038158504688435485911452738194244382881155442256850232524636513906291647881401451776467436300049135860612089272692392940259934378550013959106267133670378871093341798330452369576326843351148111342087679072968856954487655360145318492686374190815292386244790277279940430306442072976590181371711958004505291305623591485784934098777301024859042056614260475071088890767268300067457656683123899590065851934191156461379992353507720928748214152239977708802684124081439633474406276679216503542662462174607199282140797022038747409088148990258051447557679849929895577032941315466839587032410844709728335329543678370940793553761028785696837302454832413852326893069421765476584243073216155513942907979957921806071520666957177760520512822792095615595654448440287375525911543836606584239548443884798911155886267866260943416936331277056810651060712712767660272931990948953419004384439416443541224960591709917889660402036747175447819292730420083484170452460845850687017443576990019449313576921032043044470867611823918229900876161796287361061206904567384106153128605930961494058864186619373810790950913500270059079410544224299594229418171317245767302326472141226735763159354756710274179343012021396696414272321622923656432240675904363535057251981506851569166890758920795156208273885270753985368637450682815075958902351209802337163330900329601515247380566846818808610482103218188798107392509564659740334633899310952720640343223281390109205174584978520095961060881598878824062981785838703285819174296340926108996508852079968423362532781740197827034751467225761568760697822894211972806980293300193633134029588212082046488731960734986552237996761700811322292350690053648593246335095940312372262885158385460572186348920880157074913421990265435840343280909130993573297484216095864742319030943754758388801992549271779941266892159777919105897000844560583665804145112421166825255007015191571833716614441579881614322637067633078308114408558187491237172939513654851508289329530096177311181935705494967729087624525926413653965480117340498275885142219441207557601429534518168636786336625427812361279628869466805536827206143416735511312821973481348330920947816995255367362329967195023831032136664703017274552725446680851649401368220815781206951811600847359902180839109577674653070511778480168618008036010042545258298828187907329153077863797603842832558361380970918130223938346065059939251030636961761304250677665826773789462130306672225851945037641101919104290727026060169893328527915240738179401184551574283254087294288036049185998319182408595768853849713635722688319880210335780825034252480322686511620740405881450138917453273406075089012905505073812004419943055835440278256244887526279932372009085500907418811222931938755609917633737675949788623932336052789618366625931418723582984890095545544999505740712257808533468424940238860408558604613996391992813561930336643623107996780385577756357139563252709535596723244715242667295014340080949369555750440584872351959636686081743561333700100344723463106553221966757807496056515599656829855551291575062818713753614966705048703712180125820652169992112758043522499648608047981532394465804771183405335167574929441863911421516818046328179573411963333894900433032486781920272333699026459498767209949939893257633897922895742097469471005907112535696629818846869086815666497591662296455100010801431927740423070696713130456945971173748709560782991480159404484138075557582250044898701507931541304360058390054384205610761009113748110318251801604478303554917412785975230696543135756739658902513301920001722181738292155936390810047751485125182041603364703886804926978486319360512171350330092876320164852721949877687867072169489743867142861723557478419865746218977190715582559382332892840941353246527676622204676374725982205605484311159712772666108211189844582741372502420852771548693732138215478360125876864444276646517967612132393606799056640489953593233903756334958723710850108190232481967316285614256412544774418497680365839723835115339949698446693107275646060530099065157064530467674674908151420973110718816974782715921492270465291555579735404655089030700927002539629727013950685408764279078347366148345824090868698647061031232208534025629310546053369497583824146658268929082414381141139986026656441181641105249123611787820099900367614513602027320519735799277570209417298203623583475510759113430751527860646874963413913645627807801041181643646321979595914884431705451915127408297879654645432561435565635387899556243760275628179470998842340553889186848021042316493752434812962389296580938524039593788333978154564190128085753605126959763965945031088449167574039942292817346739031051085649360167105126132503543418151632097912883756860787387548265460457630086712723226896338792677080325793745875481888411311783492411908289082436445940354058811630499039197649554538350876636767332622368987310786572050067953337462646212588581919283654736713428460016853254008480696241387676368497597605879256787146267398798794863811453017882609248245625816726363051639711038327300188164865243286405514658708006231541663683759040965385772481182476210730134531120429754854121337042511279446831835868076278229360803639413372238984673082582670914218684298676102928488762644611247340988093669683792807982192666194356003759049423311189733153587361758454046992422547290958339311710904634974657691499973264867867467859304998186206032691766136032205911844354484578923291598429072485945799677365994554117825782228718201129729513500702956751645677941350287889587790401020467118927180917446961830838072022625684941213078479028829214451679991763076474847685009897528512205020168372449487534337596274691196269402110441447221255818986156940457883352850976346006922859485828153003225757583453379216097628816349862426013870123390535531372118240488390317259129568178449439172551209499471412264060411501280316929982501606672345386119706099511016036081951070231544192448784374048368436278833701938839058886592065033749057006155855766442515581919182022959789244427692042598010875104299830910038978015316441151368106274614019020801048601737849333972410272681873286023272024037677296384670921031455469222096538326294509188400223838045172721557828671424076795676288241695889658356068972401044846186330771857578484583354539622535717162082477721599875484193799169615322351112021284535794680330019898581428417493021760999378058502258159105583078570755050616977039346900132951669171255883151365171749043382480111123443537750848316156730866079958122851504367038369445260800179217832202506788683859126290445481902313641366569908140963820801702722043456120259866123797341238449924248799130217346906191891539635271936620618800093106655271879380908148194655335633141333764224571875371449621130341216352336488258697103110353104401690573139779832778847206190234362441036987986932081231547594637170708775125904340371763023690730713663482443999356993621111967828705764254612429841975172319760495186109439318371552715550552300237820182822593457542630299571931494029656692315241192990286262114128185563722978334803372337186800224311551372438076625138922728231396728280915527668520183695965487342665498610420730429549765179198098534688064969340471840035660582027957900158445725932573681443567922329640604641743039182093372264535706555213910745937460183777347355974692587923235400071497935519489593633070421215278209316060726990685550812396615684895916023077816927556215126661129597660972598330961491218540497379597917457927759500030431348355118760509340087532417048681130128298666438580094170189033755739380646114471156271926731941948838904213247046707773844762213342923630779272019887395237562342326122269052570025287733262310592364706661604599642144468174967112417197718148890608737193234278988482623426562713249128595634346590519042589864117188685164760198096890231225986133123858643328073789805561768642014701595042951385652082518454708583835850039824740804191295740270582451460299448586086487863764997319926984851277381350127463087936033435430645165103054176133641823359775020758908265700513248249930605920654433874794557883883153419222482514717866464308901194783188264154039130960582840759640216369936560301411017803019409831538660612650489658670387324842963942548457364771314186165786100497837496617210108573708840630518999689954288818680925887058209735839423213257200732695845074929581871316902200713582749603244668129389530974101209385027297066994988733377543375793734847733495739522852819972238590612504022020927757525242960078009383102553251912425866654131516293720492089847865736459455696860234247303587422104606551550322596627284786859458999504969526109373645550717050468980500227907372454755347307150374294018572228412189081530347840471486865152311264562772277641468390378895799065846151713260465580810361957694241829588847127046734226140191266616979856463041626874571368849018428950815783976633398088220493752158256281747379641561169793741650359722377914272096733984393353627360069448640570234233031073086849202328509199686538434692718442628051057484047708680232991859431273429697342061808045762016915607143953154652464929398612655579482368644482522451261250561917695008257624398383982995431363039651186402141156008336310403894176721047355303630728983344785391351559593149096827240142438514935712687466686064344005329234421073201317225688130836167985225699090617356577413066158524850188643506753956591421146189392190312805940183033940924093104560650652713927147875045383750729523008733522023643561498609453053619031944806212376468254622067975876100412532100871384846711212426748475162571838213749902251132874151328993122402779344044508795688488234170019929987664921057886364580759939011082816360241228424945329984471179333497853607458397642814951569383586796308651362203525157430903419739258737943562075723217199324970047958716186029546122483596616285202526053033761355913960179266024813628210875218761694678668211922438829376262872974539028876314233816039976717479521784838251086040623044225391426718977074396669178831671327716108973344362816238355194373777437981780720999999653863718837281320385548378500146069160587464569151717852207554985943825564323648291976351693255791201648427886237796339556770687613969559437512270267458565615380594233190067470307100465173900999535014489190071431775581204228498430692107228388068099127591146943659164558867215166141062063080148265777992676004168412321304093857021428735414784478780505076488852575546268134948953983712841097803862870849796707472551150226750974664051190829873733621700529369344137120379700049753616735276485111666021715233979179077441647303568166790656168284894947136632489893745672427203414949239560212318618780582244668335887599329996262912261705122424093037368430986658543322783260350884060478126317969852802364170517737334261350509797309359992887554360036375057431119094810343977161869761233073530526544176636349115677722431858088232289288377026570051030512742833053193057111192205381162491584423126393689777115147141688356467624277786426531636073848314554920930669487944650201137087857812176518227855640145148154441356100218559993115406508414569066741340194603145066550266110849356997658262252808597268381965327713842602061230977913371293768705357131172939699711821500374571549404766945515521527802815987255993095867459276674412989614602034360815006877392189168998726780046733462628534349607816254965578992434172941455521073517715981810276431056851784520019176326247740416271226507561655654326435075862130724644325242549999788054943531424385063341372046301811261711733753582993176061660676914216087267595825773455348335535822064467594976287190244019267604724974777777568443675122542552442849456183854647951283182050738147276417078896714005043791469037299121417584860155819293894596183432542647087950019909561466990309043435943943969394497642770201578537736334870389365010891221667433811305065111527714123426868896377286714668706812591854761308250736823450686271207769192651893894668133265609268340267957142717118095603921639375374463887330589718578391063559536051561929208991158257336415734756891866497706391026158659177087322044503284187922634533109890496359139744158675113082448825682312369552765299734172981972525482749417798652581364833787796344545464564296548339613657744377278700052997698447032801029439400492992019086655305401599887733407995364770683372676049160529915451510617994046346614030689790439704254136114921513720377329378647937258446675061272124350609947217941750184363625545966969112453625105062655454291213233310122484445484361845935843619619106793446374170396648905408208778919251224723464002807239900002136740101231936907426224564392486168295894206887217900048746517350533880448846749940151815989884379960566542471351869529951459688127698025040663245039820858406563552999100880638721880773797408768632111879068299076279777176963913337975937489222206654233435650006208535237092299990929140334146813336579903502151592036226275981538049006981849629768336037312049143934035865863047909868113560900890448438900848045775406075329394099464459005790624462557659527129772218183425423175085334683760978953603326746906524059024860810601712987595170252275919915488459853427371448959909561899581485898346041240119679252599500485543073465506965283643143347392677563296000514271632525066602340687536132972602990385346003095677374864459173605900208129613990189272394391974919495141242324860528525552384984682670407685525298393017581024725668230523925701217894926690456685235102260998092045650606571114323627961846160303543145251703826947660784710473201342933593382136900305993332981056822740571991682716022013760061010616188778198540020972116100393597836145294537656630828908129043861041956879622394243082286869442947414261778027289894673490983763513090327497401321713682276045733131005718579889633984422253137900323888954696953466774037293756871992122216696452500371565923549673366836417815598785957243788095665943721051836928439460097742628152749013462441451829260402370097028288083325513486640278469856136881563764471208094208339457361415550895481909527030259722960429790681243958923241740198955810557017098937716564026835710362752921365384602001255030858437371447684656848416501004529615474184736321290464005373901718390516839606602465935800868175107972944692969883291608172348539182342301409257062706747426210125382417329126669009391492968933906174423926590239551518458703510670939850823369763139752788833677471231448495436084875747738306986162619816243288793676238333972699357727266338224390904855639098146048282929268150667172542625324075840315887587828770069977377206876925937718772232988158138948487166088194212267466869026402648542297256966954584244963087913248258405526368826959640704048343484192299731770910502808865639954385123155967652198771673951760164569475684509685965599952901931300913046609509976537625657828702051157640274551844226005084508088559090409070884642846430723730991464668827335805076013542382947756844690505566860326699645485708842564587515119754529528204627959093982385040308199826234747987541773121433171047618855972295093480162226265954855701262819334758802356165403788067719577903893717948524241254783796401771468941345147049706292649617724788262835595291093083753305214181093375987632679330992550342247182783944545858886451694486557083285502763080994551973406826809997285698776588563931895228717861761484054176695032295322312428510583026917975763230008413391052765065252223947972323732984241611213906647996353811070422998521277016687154768234426275557724329871875323952944530470460318550603212776641931285154152052017894135070407266885772296885972055623356176087621526716165774354122305141937928016479650402612102876784200284824550662764396477852626149374250285930115869932883811838891207376494429178123898209553647458093824654395030019677230174281559334537398203609788787942615228524728682170319234365796413776060663932136427747911484945107687666365802191642563933531534256488797142259865290883325875485896266041951378138393594983233070951615023820690061004187898812695011829222088747604854026446264552656839960041881166850612968024865347060767767234593804631703740103095585638225307399356931984600983017989680114213935346572848288257611168089955224701089523925716181157780715785413413308712867504126600955135869385652596590959295890966649954169821216186373184337973625175573585119508304964407347366618996340492117331256346208848297004782420901288938131613462024456938293993869663390424871302558922015272232206573580746958249748583795483438255874258154264461855106599454668392907538827640933922964656615040765269255774396496090815249873452108450284146005506548278937638950097474133726945880860368244533039099772796943846470803081738305004056090236030899357409699497215873593726228658179958476806417634237942011365933691081104220789050793316976416028145148175748895391305368480622202127645664410417089402509131618008788265955026600314465954293634786938586170323378922894880053162118343997512292525905874328356362346492081298010636192487273741412899345808049304037753300256054655237435614795637663345840779383019098222562796436560326709058918165888822958738977525995127513478988329373809921074435779171596359655223504157216671897557584656726466225545965297014326808793887491867966008254883259174494346979669782549125922805896379310228733849322496973617178854613815564919417418610810859601318438528884165251103851093631354964943562079001838782263766284788604535710061059300130220148467234210349294125486650391946985392526859165333679873394888889335211362385991910462293130888813284929972399334905902218746295068792971644873675276289795014810644226668802384114019265609970509977000716438062761485082796218107706556016459632486420736705393251661429349163550706488466493245120349976797438088429454694136680689332876602151950198123957726099934110234235207764640023171446776025521840782379970186777188520128478282601795031615502444596178039708842160629631361122121121254269751749362791763758025121727832371129561519861389362121326261692352615975667535106407576723266659267862240670967068905185018126025139218083874586207687259455160865852661026649339934371677539208176582227769388519375151374933701670432445172489311833174746620087682032953622759303308850443138821517588927278372836997611814588909832166691907098981139703461278146546480939894267280128008221190836742304722012008811135086213133545977126841208754325581758983630651461018482546792221370498514570035102974558701228923211156200419682846263250598686382537131437594634900566521512250902531272547383547215505656906372815806094821017604248702463999913412666002338382424634931744091678943309993380893627190837230282659832712361684458126771723368449710435615413362564663600403823577774407435075608644639735676054312170871861147854630272925368891268786056883437172271148173645584387576724333307102373380975119155770946359476816197289959275389359560885002672090389334262687970129183814365559652486792955858007038008285747646737741194929197951841419002538158964595603345018978928344898905238430303997906748757576396393341653242307809135990755799995412911197106371122951600511793341330504087845259347009971742381252183063871770271873128245261834269983497553120239181901292848767966658558586226682425217629025707546699404126401138891451250635837863112574098276655952868059032488483897364318642190245009544669607194304720136900492582734324548025083225631159719778466734265026622865421017723735830346869352759333615021093552343518177554554053345535392576598749358194081222373510988057775119136784259038785194859475050388953082073541133567869977915032623893109187402961102897506078344894678207432161045594652409211330216717245426427227787253381867972836872784819532649189734649761822850857927389875936190766627431354598102422321669897445762753990754050601896358495679598917972674203094156708458820509813302123097006887895188255004586532971816435908651885657057393210058046624983706858676209254678314549951424029563508270114115273046866602417759060746780914927511746383467373333975231733141054305654621301651466672875950993640101214239536090210046388921081633031044232858929547361978669680666292454567797137499415885489532143197986364238350975909936293219732875499900332253790996764521111650268484012305542487937775078779779421137432923250192198397547303375772982598070861509078108697084799322945731285238549414264060409089380736898967946096082718303152374098033722131614244362821685940119118242143531911983393032188361941434027588015482918673953330629675606272444966835000880953939289424033006211092456056839356099662286043694991531392800347736575822120356588983883401479316986902628345077486049708476533872022587671272830495494829711873609696106475880071486195081461758709665478255007094416640365090600778868702339977438263093650954681586527786279990776178945401903528796523825246037296032923605219777612724815574152258155613626910894762978630065679469404592725197359129238130211924789298629744261396266266283128222299531292981102029586214217057888888067747221210929644748935873600511447409327868536135788812473861273694492559873525576696743592907072241840690246868466250477894970234239598295226063739962396306058310918006277897040853514920427505268002474189701538113702294086908753893036249375668931740514001323381788863822638269775805479746462640704724202534485537010090228118517892387929229086892824226518272346321158811702537989270451103827173771060343860369399663957526617262517500901216849723403957369145170362911796977513213541224968262515603489704790710632636648121753755515556938722870716366220939473119153906408761441729170847173921074650982453521960439105954953751581364763968111033153247824429614236427992028750429051076884024630267612797452656018057234701884081386035823380712689375829208821684648809362769413055809882055491675150815268884501078643562770500441654030039918513841117730465858714235962615992738062082947919260579099726065976043536586302183545583048966246030264564232948847435040903281020898880931884775202520681210946248919101651597702170306390132559436348809915949992499209692377956386615684904132022232713598298242940147971965150660159813777391225903366784370594749733884593553042104570115189341335645559997757747161927244143951597756966996933810021530509968742785219294785385877066417311178465731912654292183950045473801171749859455876787687647263006854758552729344068120090408830733760432441150809352161944036920024376798743403368631568010450952237723811981333880649271611083539066104841149633985004957424217477266497497862958980163966942721223595679931392869036271965707340405020855830847458404196585551102809614598143923809360909919262999543621225623847670167509432410813145636389432577952711087740773685435359497460455721157729915626811047221907088756842359284356669307530229858524634018169412297475123114042969923672099732494145684847476405675064641651630934010943260352675226735170442898360829992952953382073377000806508309317355603186941323340632912429518018395742484703498374482064126079295549959592571296910446958135084567455362543401208013293421451598787295357417715664857241513786826677625566791145996392263479822516657844157073310029617830407488263183360385682414786543648396764125204574150145606908637392532118724162089723664229483292675408808323434135113106933454491138384154186963175745274019357880575033603721745931627561157685872424680631493513959216367021729682725424174481844387443996648922069585730741738192305554055149278393804675596814473412140531545448161347334809213729774886313279526476287115878482773307395209924974500416373555843454765191191784480689117014592795771348393577956070683096737749606451675182880469660175259229944277971312345089099827039949870837608320741249316311336886855111896018382121194285663283203905054983569102573318963811404852209988610546709244325492847214691915572327589904450384039727119293525587939446320553713203186420699166759835546030852997652933377313902142628058431994569256307433391545169062861674485812324276802351886724013088316121240446126957701469525832851153374140987624714711689999526628314999558519137610604818328750594543461319869900543238978006012153949399934353295676911853221436710252456089976770451524231264778006093378939411154275968728147065283768060451512123143018391273511114472619662098495799855374172553713978149058385248827987935446850767658219329237515897952433163966435396192037583880903522696640959166067865022654343280308610981799877664553393461465596136331004152184188663636366515300689437710776186692138829959160053671973618897205485361843533367434025772489027839583843790738148279320324837912255923156412683612743709896154557234781123961626647333723536684522279283300369742503278838372819895898166870144664978302060777492378536046107235592973464073152681494108614560569176310671280263473648498263281369738990913418468315206695743460090376766777095693801637768997245713494571971846408450741445202642337299427025113725436153523777726212875544170750618549918922370808789785139304974073807297520050588331398829663400781733112375727460828312782312092796336953965268144762603261805997345992511173025382713790249315064933245693360676796605576484506875583244922081825623103489835688717031821116395429507615596174788131891807617073558592320805207165650147592698219819972316335754641697269424218800191821856122561455456680551505962349262998861594060866543869235383881309806150992704417308916028731165302771187555936766470217198199707631615572570406069820176602309782756946500610631824039806736413209782806628279059975013330493500015552298229233389518718067597433957500509876772407555360823981605695061143278846595754001750268899106898538394855818326363668532256481072354498986103403797182761334566912659577799575003456897302729373033379573946087977987986571703878783383240996171491997563948361235859785644523062916317720893576668258235404442153003400166598904408186286777810296450573147347980792835705403081244055210568847637933924573531606054333469145320201093010159965465545895391349909507952056264139286822328784696484324257264466001213227532770796938334143365138386948219265711381949755406678785517097141470790866557917904979222169698375906990281043342272772603382529068620938590731353403186306570597696262361331863521155564907552416092636663407605001167493677996461766843239570573980767578587447827268653570065026396644486666362025275214123847463739847558875147319966312369991959332024470162682216926170484667282586527334945112765180834506469890873667601743587231336219321233131214585244217291985076133911062546243740124692778132678472239096454456386177575858247104734492765790095876911287264154139041083590874291058729447854658073587672817008198070040827588917358689038277096882133568022359314521123994502824165365360392429349804179278280439740962950848695197255661514834529655762326761443415544838718909338991024736450838426735128024549888023030637552515823348165081212124372571982031240911523536336950423728005010435344248585437290448130037854627237104542214510069577568779214314218061526795376369824482328482394802884703254038955099124577994742650681059178330343227137089285314639672247506446588675055987940192850323682395544318075569778165478827573050656736252671614006699635765647330036399098898339554106045743383800129431025299072939047535821085689744155600331239173923116237289169278994681975758297208188278284100732649469751274926605255775947376722616149118304945004745455671147017796801997267504881854637612625680300254997470517975889577473933567675686103693920706755973747527383821798335266260822670518083525031570433282019023136738061302504569139864805694287541812184641205748121759636130923854660862551221376519009838186276657572225055531186934784136998525530518430412311823398195606137305965572462987011315880777517777388920504011894477676646363240354255990505245599647328794692263531321206358012424686436705539133839266470516885933426589960808592670070909115060029765131256490445287750418928667375912375139025890263811604120982663369155655567560499954680625525156616975422378802269554201779462323192241864766040025105761048556737929892036934285713662745681133960504354729921404038108473269572530683049158908683164252099607970780176379847967033115645516578833353480650657047065123037058977530608287029498524160425345545413204346077304214199234447238636046886100542746850806600347989146900430562184826554668814785627587560906432731211813060242194385003531144003373447207273177230374711120826577741226826642502527003200773524919697140058100060867419774698764775042761199371947703790209478840276936388680206541241582924227567113619044109254039361174342075675526626601116956735057571389791078656372555395802001342002055897131358500976435510242552845791026176898853009230970506579976379004975993106336081164101715739788294534215054868536375703973944739044098234512609146788460428520889423860889970450551674836423937610721853729578157670368455855722153433221856357047441948238597298943639978795758911096635099959131839968751471559946999665187770182629017888951371433512294898602342772915196260929462661436671185123185087483691624188509288950873823196360536899411478640379098137322948539472471702614732573332851570494084739582521326495612318740624667660857200856693007718608310738441133437478653857112544846592312676504911781228537909304316316215758540480709709188161853111789276616867259454541210989984420918727726765936854979783497900543609557650024244580134014679086791977390168311494730253001998607063502751091172929600475941866319148490931737444864671446484071931445160079315343761905043357260389846655735240670669658408029356948641084876873246940993346363201690330245984550508710197072383045966534578882507640700776149216102055318823480974843323482546332814379952981159326693939587177106392526087592925152388390264373760419907738179787663743694654509536769026150863060163317155777754938752800233528770264385562613683409572960135131130933800264760915537158792775543491952066317462705844127513133257830337605015810662772314998128454600894819725992446637265606109135196889543954859807498853329018890111482885399893010340937524995422736795315208135597140069102812326370512295435176958332092901754127840356377162477299533999614083781769671367656163271469021385518358659214514682931965416215989582458378444671115915855252982079962515616451482386861141059186309017222388657679050581262586934780747257172275866443719436450372647964743101682804742735265337133139783103332630917154063157306322148706570017741018443250243434521883272094769436836359115336356184061141276963546885532999164807217535681306564682887815308310920624718355951324502496591941675939133540826387654141780521415964168634369027362153992857751207608860025886537042668158491037311401339579756541330817363458248423195818254109971469952509746385615854653599407447751821624141470889046555771195500055250005443456347068022524892164050899611667384536675962199731687074467360566276712931121056419800776649222297576248647997794378656841053041930664145374436899620157460423934808181555200431593518561991678848000183439853256414202229515153348473352785087141776572004309780342287908578322540783648726399497831848275973457377028585416948245181056126390199227314523912747725971622377288294517967967771180975620416851366554633006765388877070368825095098392461385109142767870425390215336237348288713944607062669469607347671404760069644121126026753644434040605047751485510389317683848064472740931924216375661770809911059341273125267294822453060776631187384489741956510502964660324119956778970988631969419614178520081756702185571072410291013557764489426838284608281302773260626565616943360284633041027783025934418419075771642128800367875478907781106369356025019114211101848499102373556378669500543853873154527434054586390813341084310370310812384581704437487694378108541403370948061794777583526347060526242398559942436520216051751582847520740714641866946183632374871661307972011129638708400279197589275014570281897088202841243299562162160331895263854249975093393985153067149905824539786542705648070353887824735387168129607740619201572719929240539083017203478618082287184614945295725943501389899231724017224441376287647177131255145566728706438130826060424328053813569321329465628430807462993386406979203469167915722141088092235395544074567624041206949170698820148828144782735872840561352254703823308023568736226547715127033184978869651977803316305480503064429162926119322052220786473044403014874128161242991481780764416208170454646472151690892218482970194145584454612288484179346402609460046391623067007183272727663909764012627071104484938674121238199746164387825945203296353410414085413853017800304096256114580980439267991892084675591366960637310123353091332125635683735772091311358990181928656338633834203840160269093014335158150163830288672520313614410337366174180948679290676702752474333031396013892722735570444166000049604069582550263665254669810543607214225686712560770021332318526928919561679072299851682450679314693437150212021939907774089591770916152067359703767172676914174979148696579146493927839272645540055628303882417557142861786619294886424397276649811209238841486512250509936917259572028092907816120638125039173246065777619569827488364028502717322705585380439518751980627893958020538422705909769237665726622119154865049153063899844930974184166940422759275837352153201331182743834716133638867287658694089246927396655120631251044203013861957514583343172985787046036670877708263400885328523884393836643180793762840246253081443962949208767256151801379710346366877116849495751878752508414335608860493049999264795208513488186754342839206827270434869488738089112548644605456028496940366733326698842319093133071425699143960622411821364611503696486172385264517241362212814095728722395818986132733693823038824036116848475118154487771463035396037259847691909686702534531472233148924832276167232338769153253402222968014723290874900551306783488713366377156276473141087384568143683301853748198424806254721635851728912558369306597979410357031495749193852076724678650818161811061006424649767168494230417431303764020757460114901947727892639223786521848125418571694847682370185406924334621659924324105295387196471733163765346695640069181684712173021380785009591742430011822028893054542393970895758554164556276529895185739536960840152941427405929051194015205458353298142378756230697896847414319257737274933329374913253679649487759346740760033098576538214172237612181840613567424122389027406164873878472665258527633154811566858283215600911324145315023151154592894727905316245016054946035135752663838766653512213299692167313430959206519824813546148356762114126814775491934956690750061148343777556033125018782617921041752297825515624248563206714793459507138770129096660151510070405925548984794674583121076346831441089534081829838166071146830074166862054195115483410194743982285203712929520429371511234992731437578711644708952329607247792241310878290484873490618211944501614733595220640399831876341477517914813606011096873293327613927021140061282121980813111886639326573178796310793038943971745190839964360171481540540806113245099728234734131537776164246226423323401430691726055953760456887968584523354761940040986379165128120450887485633961511156347438910449622799629832729889313331418621555443664144269128619390761210091034548727227276481026506094342602822384581175742319361621619850393624774326501783029919515789793438083096976628487672063752488211360586076827624520799439822680002892128712478434892404497746440395174819177095318337364577316694255663950974759502510867580077256058859612546796256768702785314914766366991311900348825597232014944159808262802281814503635242376473214341297224756035454316823006632615501684524712897235482116846048815318434651132025582357928553063282715450733314009873661300808586063656817211189105887848692818704117221409540839614677948042725269569213324620567922885802057105631078701703599218424121238701123599607830310840059311535659952706791789404007851757618100864856427972019713752409063169617585855453261924925803553044517127194733199482849479443293198293863280225743770709706543690623229291531943346593371752382329545927915063469914969266604629534177728075505553852459020241623064352332610679485901288667956070643310717126480686311928772603834653310583735634652791478151798714678396214619939826744826538631239044884333467399546845538742499968666268857954156308710075904800006874007576252509125535365402062536596911249475928580772792651271827051163625214687743386828471317178630723295769343987883406282492208705182830514634395197954279164574816647898362263334787992589420671153803714984940961452058866573345564765988165866995202592940004751324765031895305169598370967645931506759004962923246202660261777062254088683248514459594927974857256013549510301668361793961857081894514287038675650257417073261993653413253562148124709025007330898178391759593112944980917082154087916522007686981692728991523191700287362779083907499272362637035424319308127055430851897493194656782844370249835488380158199331257762898555373136595554372678379383800953568357514517925953779228899526696660916631238325769288304068748908868091237257366765387272285827571117145711301325552275947223013474488943916669126473412807013225663584912915101589878847310245731111049770843294423875564287415034531866028352016691139942979317760891442490661322072994428529226280141947883648196049811783000463204385683227915725241120900570242169185983724696560733421909591512856223253867882403855770073051895116557902452355078658958995515602465910451641496106390610727536084472338239277373352588534825978244789411342759315972595641948994931631345474163751407927810197823118389247894254512127799639265707876618795000215332582465415707384697337755762762321026398316206347091955903316693447321816187507446822880622993408041423192377847545826053377731254718397028969179785285866125400039350099114516942715239735206293090120229762518818105824112578587813904083144695036851581851348353529900239901503698719500642758181160709692665501317297814686460399323610499601407435122878109540699158437975988719435550061978962815802657741136657799630433331557067760261477041062731265715020963025319609745389040827605211498461485490476714777702429276698144210576600232882904218550978670112168052922962266158110368537807310660745373973719772719096726697528137644340970191374133070600622414376592271664863165770766271048937421097137361409509454125501615621351415317348946496830680101945677618955863571510174040835745034345176770220343467460484314136070797637994346261982156729976816582541854407800414821316649677186855895655707800489590509909665717709001897217893423705217551438870363263295224152492947469981736406892580420819716538521480090798561244450132345865589231561547369573998059719605058862648301803205496919076773049573966182891417624832120907054532827981213547589128067641744856558288021726876312198167131949104271437841421496603394087308850458273660443806857037131193002365076999255141095267926843600186463533604593468322635768786245876354941884488743190384766198404194633961831218277458353770424321171983821127108261723620493892350815587348845451412062295513812091200863050806403968388944483215584755751237374021883390921375680333262728100638283985690023728977168416873725013349303745280907301612844188524343623329537582075141764394064254189820070234593361370083711466377747359334315760140150893872970998121762747815985758548244228302431772247646983793760964459896070004288606066210200935319527631146682466228389867508605563403047802164972676122251114636610275082091449967924602716123792383836781147410552885672370688238829895439867721916920755827263396659113674603736211066483879828956864355673246969625683321272902575539297393999243965665357945091941466326019940743043799447297201089761767028516950631736026280439221065153925755742934203161396768114058219809658807487062147048911400068870157124318393947422011564925326261472950992773277389429764455562469299809102646830864536604656766870473005835414048606979920057730042876690326132526763265357612522697918258000420800869355717102472476565940509354522113683271231882165278182889548076912590736263989421815170729236433361538797008437436827240898087935561778324917943875426667467436836527128234714162291005546898778389982402083977443971117890323821231799602726061593712997640545135773622949972420064607946547969403231807720023776054895225097777482770255439663685518646622250182085218427637672213662725067642099441992622663201571610625054850335595651989767447825086828994448108768519632542694071076225617189256501588834647326938440907773710097030782030049167948557899782422770709421517021377228587100581560384852727772807599061544309720112114131414979628920406161578896945236501632165570242070833172231076615443639651335240735420571725734708209875318018504326490716807663273872243082104149027395754770257318795646313168745380668030285820520187221749446513111492589665640258073905937859739815057518725870965463455941861429301316875087216300556799025177902867705529743852546718129972984140151218911907858617839365185827325110106560340153185816032446917631834060782466421041159864156026153558527529110658249975577772310068394340686353956564904366519965095175211176265334921600359147864409016575107517690794250676256392875974718625224112179396429480084442002451814322515944505017855495973933399269618526346825896884272309067643381616403664909319232355003546108433001239064054069355201130508542975502774504553480573952413570066628889537311613466826122394815107703458978444713838049119044343012551586236818844171664175913018775503101382634636123728715961214704297114952410872094985712738179712990953476009278428150439400875267714065802841066149376159021123174983367556483366838393022794765733832615372259050755140309537642577236189746801806436323886624248291919861485885880212789834368776394560256105496709876665338051289548054492789648658235689590634842476694806112535763689997550615439906584924161902559273174407507775991734109356026955722391195089352412999447697589078012116406269365345965943496563348170351469154653553870449735101575623315318494141042683902742739618153015604429959005206090376928732908415027312560095349688626978840458152288182482788055757394486104030821578294613209849966681451478518913960128750130763396559800611789100044795374105417288163533944478443787747431844091983231409161829691812999522852622099660539025980145268317089610611344256927193849770004644031444101230925203132485648841993243116350682221195303124669004592992207986302995258444031846035585420204802013785012180417247690056360693360422525240637903882028908796810243477552145778386844237893776420713682840179500594681396102590778951879095531449264020194821106384596687213812989859002922922597578483421432493009151022693832164842185736116195631921837623768994944554161058352802072150686503694537761709324536188221604529101584095400989006935166160903143663010424070628981523290662064226660829621431405364087640207030807987161304452202761392183194831060495756743416670078557742883452955991873696604115767492140559029666900955055063609273836438053621367879357643866931046366727212886457889327190093836681537906210715487287444147273301833277751678448466537042765765851427362345579438630494904808002851875800707351020487111078223089382334122511296797047090774745174814361834867592207035611909245888576748546885308161492175595645931982042519679198024437539287668588303383441555461630375249913853130362290179229394495643085006784803196246746422763900723216193319160725359232635533757332600318279586551519788437442805924874278935232510578125835580374055617548542965080066334573641382661389775298366401315146371692137686821369970849634397031720992989573808510057765674266076795679665661097476739991257336687205805631851039752327183523816673138712327728109234821246131752909989549077898092154861424188919942954704703061154836419808941998325753808003672218677923962579976120096992241009933155646371162013505161432413172145844118770293018841970483429380151622218984578337096674717292267909295807777261039845762316758140762240319455239585442318593957480828880614321839918354724708337383231168482666428677143366845091890110297035846127216654591296548181328872657970105649055437916901843724377386143993526850159493432296918335911397138350123482377925750483843775651871526814523149756163110472609667202447826757733118932628976412465041704110053227575393802943952695595888831103598178594563972593064277565538422567309251206456767788807600991059081846273047297817487362906435392803490133596886427042722330990395333313445638875072752891573210016421613306789024048589854483149627747469727441008072169013243853596148493221751698589587251745630928868974867810643982827048814207423671469152275120354792083691200436554270260527346814455349300125674062052466368890518275973872233513341521869088038876177350068250494291941716819410346203587219841546441713397361194558016129402777293608508619777751114141538451537151900404209129828481098907611458117116877774162876107067147808070769701208622332731292146062859549305469338681398701652844288978354493237174769802837143295198296336980096804178515214513244285757057051534619181368363686572999372965916802068503368756740949319322006902923395734874050995857563689601469119307642707848583636178984885677151119655860385658478018106879868676063429070802986039776963385993273178700547165999756601241767066843304836401383043879381087373795530507662257302670090680312951100154669780224831419517396328727959653841980905474653400331810852092112028419744605141475752996361444027821701957014688665039048062827274751552483695220486529658557985349132887815781002366776634930336719404883466385817589555714396461791515421740414045923094691265504741821086604999389388587880772326994279626698817990409488226668958470761246942755047733917496274328957229710519841305078575760960163189147058576699163236085705537291782516211339946285302868761010930047138744719684380337369939724582557581123533889717579879083653031066494802622179889795542246090291995984563232786238177691390050273950983437718609342806897118310166146925773919961542572706990667597099222361775256156113377160309837423154609537927206516774046431168607459690716836852635335720385659262590106074246658517216307516246684760086647481530444312648590573826443821134429852153235082806066294951421055399890154790960570969138618665066936915304884827592202438394071524951733350185767793548898859549290915122017739653582693982887268877464265567332162630462160946752279756963286296094385594140914601138368659431172168541388716955665735640589821920282744107208742895307588596271555260177881638717724333564424172655664232286086771672028872285214121679327923152536763287608883953234074123028147473738607213692569949072772428275463354796525388583876440630991206970622864681829981422913826796483714808202518627201378357566341801983551191471351205416698868415207433216097230773387709652178780517635435061543560310266537444294038822630302908935468506265296733899434977083314041931222658854701697907394097804794665700016424025927739934478999198396879660700646950340318510701766086229801975913429039316425304840417157203883575435165242646230606022388605567507007080297585637316068637778287496338935246008688956850337462178248387605270888532595339399298482414422383740679219638959969224836620534901242155842361563925524122425103897197152587935563519239938294735931906731121994201935726888829704672515536275268802489000655271630203522390093736442103660245894379669477860723214525158411748303210227207999767420197405606001717926985696581029027757618329529780213602947802630191256947686041862840447957426038345713123595313494156782525140097874555213658991589160831549382598684655446640454311837633197785882149432125143470604393856339719694406517876767338220605594328443281949952610583231561086919575315994920386802213774609908162250518883938749858351618740533393192238492247787330452863392536356416786547283255505593667348171107532579718334246238702384366386475828159106810758363707541796194667184712146895950249084427324458853869952884187582898273345938486925174085601719329402718664805153422957705395819322293963051393464047203996569978465207482701158943867520690041462936877308813717644036660645961773880052879635038229390884784149317625712228202845015008352947761666675830754214803441637248592473657142073924874360616929838254548049142780601857022845650099541568250776998912637476578898528638821555445243045353334846258722707755218470673609261628169237801594050347486503008277478386752959093399416378485696436721776799450999666663814118962831310213428357455011071068574467168764222998093611391022946114453470259246929581876647275694450763576738914299582503981324295456936747240829341698261494906475622793161209818978619455805228641792026753459241908396059243869775964485665812171720431399878918551966963737017951303114204623961586992600119906815595567237540421917385833030928994084358836361276747181249941185948414469665305952284759666828559341559885071816809253493686807268998756447034658168093893843873964237915941083114603386508000862684556194535287169596010472932459770131286973924078263683533956455916717128050090602485551514372623482066946078009236564758142601194922517220889951640130662996175606440996237934517642854585134010697940108752431769112719468295738002510667937682332467189543035839388121223817575896897764919123338585628196436019138257862789295284515102115678509307384173523904853956973060874512648315972770891687089914883047842535175381863398892427328360356937577075824248455924985548743308548029735637812659605704310179986263130868383484198199862597233848540738241963122172842887394627376089984394367441290853992819849985241303832214291349381587307816233722760316113767572842779974921872637832296040302553668210499782070740838100872881227394383530614477766257393337994933162974527112097138197459549948497727964028181674493090806862127517350748899398750857155025564977361751581910295989732021038862675504694925914794241184968839169056026218578589499027953680946756845654970534898827123486048607578451351581742037623530251030315850013836479258761720239033817587844543491353390802570616587811133160882131378160848164893014499809888815749727642803049334689516350145463082978547443888117318770613160377880098612790743667651205901704437151967121876125370072637116106032520731402984154798321135662981363117269561824078034251960727699446866110470610238514981868785554922086747127036511190210712262404319212770461315989648356355348760077230903384144574162884767760724134496601009005985671751866521031589879388424543669276995182335033775640738984607156447104139617833553856161988522193362996885922801252716020277678798527954961962792332976984437278148641130831604437560036624288399836235192098032414277496410681556633140872475458531692565933533366759592598027191031344542543460963970350391813429501337954433960612514388645483601282252948604460080465159716343124802880166670954320681539289277348510264010671142432489419163004493462094455198933066255323169954845174915175445374008437522220307378331328072752297982719055266322501618766057706752969238726306064481402345141770707047494231271045516890712516574290897605167410178305157341491618867863360431604829054907968732306719560986510551527449265811657306870282653731676617886654452500092963338412269351909372064584307931894557280099416694195110384591363831628892740431017864694798566444056374583363600715232927258100108620756989556083854263197775992241392154289978407756261502502890060532617125274339418212396041552092677019036360052492352064125442386863779983357148694933034600375730240848856002202258351114876119376685161118741434147613869453423293766340220132313353658152012201805724726594430377556126220517685437738165004030309988332439682864394462020405031776542400623372263689686922091759677847298978526008436186788861772516200120085674699541946022164061195470050933530830142375124465588371064460043322011341619392432253844681299106337683641265566623359274689585144054512456705663101497426916761128553049937663460760502726638960092165452034537852249469381735320036432185947911116113571632805013418088290947770209473874136199796629036109191233008976892747605522125543754477809471873978930480880297981787220767308234135723190821089976357735060544102596488709555108232879159778429782494541680278573590500516485969013542059762685901110359131746766477016751445911752965177304147208895931212147469383432120971725047987805251447453270533327905736766622428661079696979058737021361955241051536724322798467965279697173870196759155696907985426102650279779160281703249784203231997544793688078082855396799866562800313098165230687300737791191319331266436994432014908221653724209428896204902631287547250772474963988300852696000909490783836398765567171543176387510315820200474490864474265075953043223499547307652681057710370683450869981563195530904312293530328293229458714578158515629125321191427469950445558946121933871632308164426023297016372224558663044019933477296694941683351047768950167539715061064549156378023995410854761472506530957106080367298942120596707679870449016931806841092881068697749769678998986711587768624830033355049768613945822053170804061642212888535209492098267688466184838859441459551476263153719500602725839729133523326394748252726107489702374787056491507180270841130985087677920677334090907252489128666636850681722892818690777872260703947378691625654689540771385327145439914850111985229437259242229280499986043315907601551055606817495177504741643343509505135955841480719052337648592528248969168128206239394987615404406762669078338813253985424625035312916071773002744763618848757781595057571849446406159694537701979189444861750863175043576453315843446918140013983045868128231088830439183936241368983961675521241813459430178816638535360734046731717325422035990555502938049821129162740665835589314150275270585348461507011350720183998737840064350089617740513635149783282024376796676470142293870188629720889212216297206152244744275004015898129935588914934001062291677905758481013632369262015696932390405508378786305593195202362321440740153906764900788406236513436032728418019822515948014961383291155852675807156514073628590346114225577505462144844674170348364164640446681384272551567040086481527794828385344336546295317846771017981179013237046874400360577938926124761667177940215357303140545767108025926513897435005100608792750128656122976626817261917323400518737943229645440367733765594419750287949203822528153399381322595371815342370208740955437028372710575894302738118012075622969002921140243426199222315546084633645559737303384456054442093947530534952461209335315265602877621202795800909110856695964507508501133317435372949342296050588146223023403881123370393451865251518506383243062267619314499250444021514806167467780972822040318631462014853139229789434006102290406177448244446989191173855127322144315928703634665266457420435443149971082401950475277994938079321882891539625552360159762112951912852869969458172406391701202100430493275656809770088822297603871885991567875927141224514063306763449900379922048081982088251852863771351525310167691867794525670122654469007982350211424493825258886031744558760328925638397999436227063812993814496886885915949312665894843877226794918952747723139192250652178152362355529002425844049133294695407131250654733651997503459470594359329345286290029810153756273524730567147231959779719818116135341958315197200419953484157924895225177859651607806587760460815966109702199827432672622049110454621274751696649934356524822356282586734444171612072403620988013269502231335724369824512706528241852715694533753469943504175210844170445603860059536474576180319169476019028892061770508445920155450491397019469866456060601164564472692197938675644493254673999870273412665616515446645716586256006661904440652141938657606977004900689138764706210806620166139803513768993150348618318011582536214364181629210728435231254709170122809129302553667415745197264287108959683587509088885164407415126636005211862037998661432786322245464704892904345151575010873997400820807640962352490016670839789505190573956811520288532054285986473061460166029122459426789282505168707200119571816644452518929208010189698938912670697264645884841902059474923668472361241589210036512877210518975932716475884384622247001977922424683713643657701279404617197926711935391135131408554132143705233216389480588253425750131347362660923965065622639586037897116492120536769968663318375870435046112899483172149738869566435934249376240669143295424624109834621890063661701781882894588422080248830650808047089187159638540010752536489152377562346018286413504722603375517594523393874916340980886242567889827490964797057243526280008009982901882896907387984243078940727233252112069743944395682522421043513948917096197716179838354227963457832877365931532300178532656635211900910407917976014008161885939350494018388680227994882127187590301727138283951687196176479175645162254318188317555402119889689036349787681161140810018397297156942087218670633421652726857058386159139415674069407479091315618598736624878501554976204046090810626404761221142100766985450568346276869093583153821493801822032203628253412813231764213360571316191446835996684041114194634556994821761329740418558226447977686646036236719521301104511354128027128943301409232090975957072662429883946487085839676739699571195608228671675317425757040580073325491518476075541826084868410750206588909483213378119717648906365028477351572707671320194144457547610995645904084032683031971358747883967045164707492441206781866373197422166613587319881361764665481965432110452394597411624251772016219577713153503078757803991573482233897194954938158455527182036631551433939172787250325715818747399125036914812993202685820756279907520446559585566454381741022526964520252016161411228629833069559361058785258061279406631631606830756220210462080515494086543574929461217385704798171895525472036704375611505890637525350408178232399812156936278550266869540915040343795960099929002498271763699033029367933231550602888429634237649336146256395756239541039102681819190656229191644108836239004942392639032609616669193714598730026755783216541010398654764357577790507621972075311527802625431277971569010020745016499110174597645735465819502343060065656080947392591470069065852276300715437735864488356796705519668430159254596469649518990755618446050282171303692257182025325808732448208454076353199463589226646619106864239922715211300751572713531193378656177526034340554073115970623067848864510612324376536653422996388010131426788528007142061288406030209617888943354537494869988449109123144172271367512471780631198415338157447039707597838726904094929216682654249375446129319058152272229322802593667324781275802882233463332089708354820322630556731511586132757697054174875383753672153968883216126004567198980249443609601894546747071177143781951802307850149757130416149373212305506989436921748359642203900030414051815861785696937820687692747605218847880070239395934176612465514805525050841178183251543941027858073680900329475998336768509875104599013182883521976325357478684432245346889263873087311372784601684473084915197023485352174886112089210592628854027116638485397766297700039514641965616399445066898418287042380305530856663870117981420025928474450519840844158167478443611832058393991753522112165472620098113174941307534453198475982431924746344949362186607276226916505932640303364542509510798946250553661023243618553256688111541593639693123243294900726508505988229263592998047897298331664768445696987933132657564664368254680126928259012380681179712146241871856789687817208039768869386813509022646983393016264045581935690090355257762804183341617615938439514304345538402649654937794325774955863699148516967116662775257427748508623945503089201221248988719895009893448378323909297346517777052131996750109801096551577163124992807194128674873932218270087104317469323818969979797689240698444742537775609603672745768299086756730982211484845332711373815981467462776898475719443894996991804432363817015054621729289621810205892842164540793682555095236480519615846489538857860416581868055690170515838332352940255707577073358362647836132262313878273083665577429158622512083082302427105356838842059184816394154570468240450339651630566014649992883516943296361939809796605416992325455120341788151445905921971818906943166901070490830127928292025461898151720109261681593919917563985453609326977753651813835568043983165347114998367639880603294149508219566439289249100458145829861650425309162672134128242789464399429133940868727912808103671180707019615703271207753608329409086958765756449633486235053550930562455487305853707696310678838003730700123909947172832064962132586040165980956332519671783462343345641023385151405679671271014002343020977134993716630374656601609787468694626259997258487338759404713928744092644912991160228851659225263278271206234878448504550348830551989038916242792526791478642535897297234387373119748111699152270047671644547509845305704569204755618563099541910267536105696304484918523577357768981341130975252109241195330217993405561428887652566705125276460350736085746016527851405523182223019033818610606793867504594334666681507929510846868353363094675436251176791849255457595480134017655516491710561974618553520787502194076406840835143744762042993392939834922028429636909704462079754388116390735426663865891063045908523175380809875343309737362082580498842908712327347876594513936998105110460147441641625052807842620734767383843058716525517269380267655520761294944262906214023323340297081378614514133123364327201926804556667686673088022926970163018111665690076327950204851168724961831680291537397658361956798846787728441871762756984417761886304943401438450750347717034049104670708432204476689613457725687475541095587828775988489151641651385482046589617624572013100427180601528245465702786595628818764286930327607536668228074907810333119968137742225454738979325396539965166834447008891536993892718747777992087897090773127492038026146560691066490599769874943916365662492513529806663903843532736947485114585060515913824694598239448176018578977357186331178693439518614048144652947288105656338221271563689735283636807767908882272193981824567802065776965613356580652583266914137251314011792369868418360248893121469444135972452795555408814608324031012271276937018504116110053185339036073562684673636385429093254862246384742355078734875219907971134904444924908060377440814385643116739847839197681094993735583902305447299517842023594891371106121534314338604224846799591733949160486679768395434058985775889292058186360538311456479753160367129368377520992787976414930426594311276007214897001310948187921352973469920002985681744514259022007471462645136794481261614362131305767491966308823004205459217910784695225016813021304268744096153248107690162051011485576782484474629944053344275606249603242933464057665512661596207886292587265812347952680543256291646902290547149023286482159841945363018497141103910383912255315220712383357912357257936565302396519811083823283525297722968756659162347763858379585598007537377849180874507022274703866252711360654670486258439540166305114927104582592272576817053121314338806831399496711449233258591613879971465057520282628316129272199332310046113670293476647214646701955746607414267094878591059178804570193268797553587220403533424005086166432042575520394745748823313386605834415063563887135341042359206882194004175603747649778191607638887470265838955309183170707496252427017383347570789380024589563637791620638586963718828216604810996221989321998962388018637435393708216245572156030745157698956280090579828621018792490340472947372202160709902534388058509068605793221283379132398083891372215973531552419362292918329845177441102320654335031794163532167000766556641118610384825177422553265084659068904689410236013271799386304920261438902267585433526787202992602724316172263617477029583156618224913427907723711996381963759809480543802906746298301235727041330618302788228958206841250557087392975905138781274515941814822751602438276315487919387820677477294825264458298215492035235196977457715912586444242059082789883911698020698492372027200240749152640564481830621455062668720377767215748900353004825677679125748104338176238218182223955226785281785555696855937117894685653412214106403439777125968687712119288451315677748749659112502946843255996731425350040244295591405057782584643387142305411095753586617197152342673392742494485466556381095778720246437412189502929884127973480773270171413515117904549134596000851046284744609347938460464714382310658877337912932720996946165684497269292138581638887618428843930643961527877060171342825640012599924520326904465226795536210618883148338107188273691623074357799916625046927221515452506430372951985451497509358613545028971189946091259143830082556515126456033266189901171968372486909430396547803710543362356428141561410647356293529145149239104838915244707617550695573722169974378569812549301221125651582198553036517144630584900208887787438388469550684126997455877714768123137470508278404782032457032229745562167650404459406908173144091560590956422391523522171738849845773197828954103765910931749726430860374141477509509452367936922086471351975180120861938581125022931522522802056358720498287126161872815315771316796168602139003067481599714249097236213234919654720340582377077423786998773993546067712975394063924189884306775942046947795180968581560937571098896814734604216896630037495667301014407786677042659009018935672848426838870118150717148593901941303373928326296441900215686810679048040204443832934198533171894147600497412843975970673988579464227340725630458894592153748326637144746286003472366863091193528817383087608510457308471938899278009384126081633206699657738895886602632247418544710468809474349377330007627498727247977263372253422891159196658337312924546956116610292636112997444727615446160083495678992106147774830700229898030763653502362025209180631017946411644998900288947872829145188385582551637510989198926808797168052220043425335112573708792511284897215857096031823457097141363066458608061440947714925891465540598873379977243679393462997690071809275347182528318403875247544866473509112285981902675223423131796794203077693896771841401722579546857837195132408939715173759214814463760972072579500024227481130408702200860920432304748052489289277778644845264603238302757950606046672004899755070847846073493419260745178279118879311349981329682266495366668176867720472109561176843238289492836013306194264174493241645904429055763603339452978856931384595388228556284894353451744010792672934318065921086974719696421919076450288608141855416151480738697338561894877332792986376848219609476854214539798318079754797081592051202535001851540922971936617110192127507648213848829094654455419410474117157634712048336946337946187564823547412489198759734101548069343960327328168006503615709648677138703402419245022988448616705052255064861874767090231459967231483534254336866900228475626284234817614566407742453222453427800423514587507978136295811774085233150656647930656061258499475386151209686089526928909736457273580230099177679597873344414600195864172845292896157801146277565294503577525362212669636723779051115404252627256577010239782459149075330771451635588403646985314479086044535010123871953133120898543356254847117882780176558868092812003279799686423342250301087898700457075600121389080243591263578909957160114552981358273246437982412801639879556165189632975074217210311892060855181075355168887314579481055721982949890617444924191156060819349373887806961078638932430110113320615744857785845685067877984659214917588923819283368780906966517187008812091311461046187101855746140254133823470014743446803319688485380573291512481648822979195529199534575691284166111384012444550503917879263674930922557800975993349866309461333821985386550525926372987368257577936834896505957141668963686887287833956809261286443337755469128204718693588063450709411021914014068897553555413061563149733258768914012562913926331738488386571194422052816981029938548203092247961325820660150651681894191353650875556561377865296413412820457175244950042418749732409641226418650676239953000212025100672945743020225345327192487384184478545556326656730955431985029152176022893916412476162279036726210107297278259767570421040103645818268979030421986528640831952616691341214247638249986528980870353055949301620021582619407134364315074270889180606567383528898576802185020791698802209249415027919994385765384948523290547358165716251495624263868785993676575450821258631738540626953778436712898316111135474374427692233938693380805694971300958628540712015607896712486623790558854216538534402309788750993522225830757730061282351313287141061472497102654633889997948270540958049151726232810229547270448250566475174498597016455547389202338964801738542956031456505385117780470753315725370713656126999931601759656250306725926828842354036979853567371366005199235379626724986083363741401575190054128363748681790649662091399282442010994817586718149460345662087525702878170569453476470086817584813240921265531141354901436826991757683061931054129170074049782874181047781908093004818875763228787261669974967736797943390577888375482584011311255564074289957153449000799520271116463480507153834680290174842779185566018685281202119783736916883317902404850810327003219152735537120683550159183799429080904652512965863281727140639604343587701695108443853542036402062770550978722142949167028644409227352866212561088690202094719070071916652452514095014063520199999189026529595182821078059899907468782895734071897430671864255631959994508522722311115859130827269947220078850526992325443352875406844491638384689447774472339999610677888780320416539130295091770131382212141930294957983015161169829081883185794478753108285285660503395080142208083630149267882787117553745852403053292341124341008887342418261831411781935203113604068901573503636655357608887388756643960488039653481657744851924955166547982722778877707583829471295630384641889638533793269606836749640579902572642178820616259129889784534559244933985153537927218638151458234102854978400328149156057284096758589295807774754738451423980729745661636185396482605263631419157322158722809546917771331040615834974707214095133249853818728154060137059794083496845025255339513942581752916327619847824605929727688039450559066514276606585861800192684793792420766929840552624542607755216937864172317631569720230248372669957281006398122748156809636799422304476887905930229139057652257967348240161766678144117763732723881546308417761742445445913466397380742901285049695178431568588752490098514682202799390845520657654075975746097966473913606911657336551965657609829909149617729165788514618268983846995481314681232711180884966665684200498050871658349026293162730684145621871762942437233126846525311515541962645462599431182261727332993258635702069643671531740891775060675605907942538822407864698450772247525696487345339712594964872450953241866682606583791703392252784812502162213775035106069217071179512871725423464918914936169800722150296422251659091099958871267703849850840496659157801359681292225827943945291593746886443198595988995240232789417953164782515942884574151602859865366590707220111127366438572031935609239513155515650789266578392714893210456272534185585044512339567946210338591299941171160227702095722703056630872845105137216485487569224756308688450468451847269808432959637376472304713579101438241356345855620946510219822238799820292335981236078477849898880174702323293944266436544055709184789542086897309735274052657224410226117392883653705522525221693691948347229041278042555346357975703660449547696639968195119412666368493220307620229418863294382022654378620721071496641383477956817642454279444412199887833076937232377189908905183637570632715593748232642625789251615845395910610774234237486806017916576711533665873847164874510565751356512460994746370228559011935939472721118246931423102293298611251568096601229616075647094341964490284467648420780257306659263379610897874730867019450818911925702459928178132179678368765258619844894043814143344758092063505497396817528954691700788343097517559317397098397025378018569927152516357530725890617426828730646582708347036648531457108014074590539519450115056169400093335948014289056696321597347047420715617544864963412106376174828679258057229021878586160813550691473697082088575864836732844363400725660471515803635318727770462087493517505612465990811439304575963366810020857922686535416743826208819889618150825271398254049330595006123607204749745645772725964027838607116256480131566034412132524374443518953237933884310347267247566781935812014122238072855374188482545895334944182354579812255893269814961838977105028651001660508619404530685643527996359387029256591112419549002706084711558761541515003067498675728702907986799961361454530283363996625082835899576722013921709536190804448310221418975876260166138490129476818653199635349472105095522104554626339842648540040113909305815380027151153738258996866110179431178741020571376672078962297092463337362225623748952900654719571764224100723127894818931150861300165642693046037174825410642220606263558851518394713969812061837685202990545476694898656271267640864717258346542503720363944916996639461668802577486197417925458840973896289268018682747725455603594543288704077990706045671176105905106670639864502382452304261628613431879193599117555897779981466909374606847147920019727316207318454869504250443255788805493183604925151746943941523494737574075264349672752194908533873017925327241991997153426163723095774300908474296752395556332787352680877343451453720964771397420029003071418757264623367847233667266877179869836634007570814029767358150609245524679794981040215439033413145874045096576452481764814816564628748320569397557360956200158599147193439049852732377447318470787503720970755528627556315497864329718897915232610584672225391653198600479842770720416976034499705051892963331570192694456573812978789542911095242170632320118695753172202601198596471545320510172368912974120070567882277413472979995553774015198283757805793612171495336412197368520377271241471401490975215843522611722504560733774368806714297500393079570526924625730255479475564635913627962318988369735110185374378201343281741702085002382172441185685869328227466321734588519436276396857920951773545917586821284628932146706449029731600618778439997116826116874903401334648903124741514837216612953900148022470823681714066627945110187230432477365565064283811230722671092406857032181798881337032779578231158661439407113362456601376821693813240345141634963457665686142981835173385941838541554222565600751465339210495702800356348753168439275952058832059986991598314077172669009381189158784059158536241806983111190043418855454129520046322022506297940723771085057076672930375971895955654879721721858400830625972192850926331561126008607743193207313580754445809610037767829595882678460590721353665311093549631878408395797506633076113850647723802655767184814534946107430501695465153704647059920448227758883260722183909679634700279372085181634663360971046558318827233458804623830702049248278662304779890246314589392227136078118106081867572657048555066062035928134832013026209238242210775494430030092703696018038393801334143073112096703246403550366164076441492060257881811823074472217499948790079840572102212085654422696073151184979513340597086750378299396407610885221294800233221860931599425394017757488802836177376040107532167819308199556412723141056540902847010757146309261352877354823493630158489997922806850807248979288377607345895165736396191822498196180707156076916064041067006162351816028994868940600095218365808349939567751521706921364016660389811995369611205084561413227276734255295186729805733982154634456638261557212356988428047837482692604060218926828818340521198699001766114205892722870333294165701013171571457658659202897984626644430785454696744306180737576593176858153341205289163746690786530454665379475822797332021144079981614728280583626720249247769223899792954977013196468590607288911842688415765761597068102467591164145156027740585517809236686578669190257054605094406954708046843650881121283275735888526715556943258576030407872144072915235922587968572315916266904458666834664422823159071920213441790953544910030068783688386205054317704490248318323271501652660263046095930938331916033482695197550340913562718904016210044389690742716997295708113938633992548694587380974635818719444203190691360714644592367765796915033259527485199062869076489461481781509273821669224787661735448757643780413946374167419072080333956901764906847660026494774483182278775776776587270675638420424448939336806187958430477399675087005815767896752348531192821029242945911757700553757599121246149212334600158785051697653414334567272284363035038014988534299891573086285590367792912160143894534440823985351029953950134868171647912100398639781468786303026171389657954056139312106616325505519010252094071341821982401939792048768268781962561602987922170954722465770758149577764021136454662533897020006422736265089283510014317010138910266100167653518635829907236111093747256884341567401848078430811772489246264022331889904143728144087592755769728888608424995063751563717948778080870552201195988646190428691617779456417475641258697480460527953592055694823712655481428919830078847724935562057421066315318291152503575271715394869457072192662109800460759147480934466208457001597365430997407694083547127661206879096678582103203655787819472042899885051817330746796602272631379376004895250486830187775399080239844096253115176748440085921519912182141799470037459664693331336778323958316491058968946090136817756854642017135804630047082709394361973528898563624971468065672747434982430544146684192364538086050031571699904403887251955775953028025531149385382310029586388844161605159949515989949626651905539917983188363644672346381782969782153882911680697914600792323824818102312897244852537772722853121076373980530470474090756530198423669466876722299805398036920101972150755915130790940822511039059709992450408497315845378856762688663882671771421871093812153791705011145101746871641606528670622565737084056424810105410617564679315803526265434682268688984477700213515109157575317699501838348491316718769685008720024213205345882624457572096853212322310000870926371442594390252258728994948028351429109170275583092590929602362404222253953661043230331203083809226399900060296423461721838727669338777035909716695188669537714433873812178521363565519270001127636468447726572453699194037869698577041141102849284914005296095740624670423002337962632715493724529941594605742618811324308858669883931608170006770745588906668999535168917541525560943154666321437222272749889836637599295896516109263913521743998488199774756499939493876841111343823134300711581871622043756919784032828500271617321819407208643397190380062559810417300633809669842576543424527629407498814524617661205506711242313892443693845489960438491585136409589018623190762022871038197524961767066405474704772626553420167905125754251044647961392168169211590344556774778875106403685468408101303488235300147366840549443079296393510256422003258616481625485887040147605460038983108184576530966994096067321713484507813362999859859351526277008857606637639300046166167957920737640625331127901895497936357306179619951317359251266394046346023398131609620591523280176383809878589375742970134384314555580848619786253015436616155259411122956624803217340440215645049396910188489992289149914926756860565780073047338348196085883187832482284184276134819401153311728623223031893108817485290414291446665446123794990089790750081462257504247060803580090687523185256546221837213407388097877121995394871894418624326079977909213817261390926223380046606806316393718309261555020226081502568354771258127819538769004512418171450173915379582620401295269849801473051200374990307860823466958427529526585483278791879091786991923108593112982822481406979097368341880092684922065819167959783083199512542220654550469970371631146579125186759225076844037144762377728869855358453115871270921459694983990132951690616271232111955805353839391051072758455440022884956659792589650224348904101105085614203100159197940545824299798880760850035794317399606583131142321640764756845069834830349222189405139783194671079782812623652152422541820121916288625588683387130488063811852952318634501354816790890709594898773224114201073916945803141456705182724684530664826296966441237282109950645847219429154059983929935575894074711831139418543947480165576268005923688680519112082597557825642894167715109673025268689431306971032946872953821195055204394087814804468419840382122677515357426633132246739853594898601554759258238717010104637305858659494116052430570534341045030263796093139540842230155557385280978879052432502744381696260293941973166824820762965352345194576612037166329809833215292485749482570332363811514144990092022279838881381767018374550003460247156812001999825680942435489934627354110648966981542837313237183071141768058487492044069988819920680077815051261795860199866084740575656524363981315126346010019832888553178789249662681467405062766902243111405114143434045414913114027355313550515796089393056535933521987800427107414019479893620468113255164757077322458264148219174380106424801398620616416870846271024620919478738804895365525969675568961711595953223814131083346875489739686004355535441262756290233998475127206620629166600659781212627590533920990119158557442038249125878036558547380572536812317801216364503176265855351899651411835837744634103095900259137612158600632091874488846235963450371755388813660253403589547302858096221723288171613494924839744638169195262188785820513458892653528154551129668846298013039317880339656990244153384113206855513069594675039434340876348978666618383726998778039720442592391237887940454227003302252752544963047670337207301274994336087001232084135143584350744595903977268466923361444478669361011866984726588033546504140645980436316716842617036513116469498866201955356406007525894486000083118332667880544035296654168458681599915308527807207300845353604172009510634163893205415932862222787875869846510629287482086085304724805322368063716547294858559214684826616909508834465494621736461589501259589095790830834732494750028761260019172696508520598580379108576420107585026251303324338822678639228431642259248074786994957271957193876947930605917185077122109267194302164809003978776803321145173168863177902567586352362816725651818381715940181008392814734293663080191443911230123685450334567094860828864540667825365520443211900632527370135650431389704708466548270164876981694000369704381943701299113463646444226079946611608247803277824532572345882040761018519462133078064069011898828247481666949817753238164831240381003058580526421053287640740779568002862521999625958501677381785084663261973205522446406666496449299617800347961825418682498373201572325638918119206941159769471989393470442866867375922495244109257902281592485217362949583562319922409924950055312029355426147643057167020142154210711832703592878378117494271530122295452432298980940243934817785184603778489575655765967522993267655921116165582506396946657460331127228187375068026574306869771938878330394529181184701556273093896738033271641218974088762706851131562511996573074094749888495614174190037311512094925232499840353925118617905819838409524916647508051753972892619621319193269671561169653332543751183429483087486127001792567022744132199877139536581527733599697438722185276989716490148141386497038928313498473696690666603110424689819294186243665176285858263937645479850202534053619612866543888356414167748491188595836582152395215445742419711340834031967769356142991197748746921297721445577492747248419084891966600201192045257618423934656323072605212471314227350650005890255363133687138724638697902993621415992608883654913582646654637188350456211458416851272624353926839254905885552563611178020958785936769820809125132829168634170665627915685893974693737318816735759638507078442164106161290156225974935948280093109743580223096018225586758011683398734317825766081296916642022375885510434256172891290896702964401096740754152954647422504435983804175285440803694904426498354907697070628692553422838136169941358246950495265984612980497109032267877449073940807920222204746841985954247631429591565732053432188817604969815553677922297953716015279088438127399482791590805471926857017442626536242852356587938017277097468517882902021924505893793419200190095916059619216683596574928010686950516859307097872602379741413369960171159533595566664915320999434404165170103896787247836863826152502395279841251042458325468360806647742325226618567733551064155036193541407356534044628073267812042112086385888041753690699906294965579520104367945462371922343328673321899680605061444326449913558186931128387042645887044866890419103319299579017526308293494470328716358707082054019169172820517093716985169081005062204372744559818991556929162454410177375051379869213847101940217016534269119647172193932369416416726519264572134393212520246555741376236679352618778451064998845414569226551515146339845745090480997776000011694157784716026657819169292165211727806757138800575490821889329360080069351823533739769050869289648484881440475858718134476270496407693079187035286180241743385856827640882812436601719399254655700086548107775170776066804984957689078594667706617803162989107622034430550969087391857060423852120018212068644853377615744874875118033145775480644830506577250291859884787946853994793426917697021958269653268811382350020018271190964476408401088257888677176176720549698030057722294540077337321078712683192859637638663741260230631058380553446290149790668149066232860373547470250878086609904864856792201940581750751122491857379256540927147444752260278865341243715015971956025160725135382264854950772609090791764402330698320845261534452480038566050203118571702890161253291281489261657113414591317132219246996189657938492451998151296584989655940231341582006600048738099238791762045404779615499663061165761491341141033339224212042806912894651373871805913378343784750613589937508161960114435428715910563779142750703594695094234020780529794332659204010953701656175540115059027294318380147456358329159101467106081379319495201074806630956226657308989121590954815786698524774515576473234828060578552673096697746052692170972334831678843991431295624700707339357937262271901639929480294799546696665485584109131080700528390109268008677917746140150085660508068326698932663945517576344384174766915729793354080784949398747717043009758193403358388356975610462707336675948503206266500969647344204639559239171819055052336884127405028460951109096998491965491178558419878376717735974349348860253836132325080076464591679796335584912937568903891189769771398899684369926237634275161802784439290578980482156316725575272054795201707267287031952050810795858760009268060139896745418527544874280941883049834339160292259007105949980907934312752207806411145399600323361316585358306674253136891385683492820366634753988426193928967184749116280069754204182705121980123579541794832310538166051841637446740703770314752359281239418586885357003919141099640434833231875932128518343541590214212132246717717219414413279977295755443778726031981350004866952813679753377374150691579382471718207457994453702467447499279363202870480967610445872413742910925752905455798775714045405717936041817553243463534150167106407896089927320518025578824560702482276235067870699068697185304861817628882312618005480159933049441579609347940904384230562438831130509936747449257263748666407761842808283939750202398471069515167923722594837328074192171905200034151779335659320949198762040673567160787314331235170744262657000316861630839726993779554633802377034084381245257198853597619874166046418806962862299654019095302666129348045688700880705480140897595754527478538453646159231821203302788340256645096015401773122063042964735775180152271458324586556146012836138230216352749414824732098230248303400883593054838175950706209952571620870298823967901858904449214890522240738741812110184959448576334548968980540477519619102421923523720114202175530905256267571244663992438255589596304116757259645379396499287667390965819534231720697577969423784225056950040210383210595644446585806718496527239715436329484571919570907326901212280926356894461044723775311618597743467162128888976056991067817518207069086730061805400719427221311150573825127878047352827974755575107285266512008265375907659701837035938201016278606311566872457845229357834520656146380162561140345531131069494933649684731592988757167914314414709695178104499070951333713519960772124333319511817639267695418377496322770094748183948468315609803084686897496145562224182226880202915347892184385118584357646177684548568326730593550758354974172574952879291527848411087176943338007026329749571835378335502059849201180547166461895815072551380784172407432710498508861461790191454858724487639272367162571362445967343815988256363683405760825597900071149972256058254800214661289887904887481188664105853762894705623272763893505571271336041349607709123315596210956722200918057159086054211160707018780920878001396774032662272105011410980669578033249751235375040379145826343071178032476059385928732914776982786529823100241696932419171730109979173533139235894986229959676518333104289313910700476835676033858828271701411221377806023529845058720180263525171399393596255852768048574329996305379357812486909137848914016975849172799392190064864798374232005269464239704207982936203716560380447821905561032212095311538310508073719280879090288265281927654973689352190265629810635732354486637769597540004270568251055507433055862706344869551361626937675433029360978616202689809885203391546524252639593689752498190246407038917072910248698192357813769901316383592056066551495013487703719303345100917745369292915720918076960441763009454188109732645028429120161089073382150759820766699416195604349710991558979817818183133509048776851477332665158282348566222223080246820715006333464649130247668202057305117754643148388476580613057310739505199221377109085770746051263623834493423683568345023109034402937200906969894985534772914543750967179785473097661834036078765721927480776289666554565064410629679758091032743465680941886758349514207130841143735525552463633804522287605217095259402718181564020873568132052174645211390135687635554886482566803674571813936491668670928190163657137630736230246545589846376579009533864579962080565556771367739311959169835409911012543017183341472144445551430383618643488375893317424409340979085962091939260033456587223111851141710516480260296118198668349153592307965856639990261087115598993921325498039986248931204713418759911876335440350449135993682284487906912221719638745125631195078654565079348503684699884910280119990054838666769882550482736087287818511201036296405093906480137971954175330259163409785568794536400004843075468700014746816088754517464940510782699121436852020500638416528229636842402935455770389668898695766437998065876659190451914809390094162208859770684730375534989889293894981658297990376669211612712672909529406092293822714469553693818545541742815067051037583828051775470206900277402042087497320776169830138008182601848031759425968095944737890855814680828472827093067267301940939540917721847141605623289366640064408822264424430567622395449129618599049901202209732465292422031184560923741842695512254500007203376198004211782301768317330099605386531354606001560408882138409841162138307286265063476093035519686081418005309398817387971307817457340147299218321710463489132810338954376671504420226068044232189138930919742303004700488261843176844504761014905769794129248495641690070245641625425742918736119327706137823565682238935688597595436084141164109283765054563286337408178425013914581518077104756592851221906844747250049424126573939997154752643102888420167561767947052214574688791663411859432974699274961725019399511986596714365900615925678562503173034846147783219983375985344292662497184677008226364190871828827677251510853300149898028168505706555369060616336285919627643717831464604027386885623836196893598300773264244008429362754579049943705194940492700002431162328331713517764944477619043341000454807014913668732355271770508735083516949872779593513248569070290173117058657409185013408791454635673076848540879497277261628253938495363391389199857520576372841778670019723858774533762790277541993969812802496468483106897545654348910097437885116392151226088336668386775252399935076436575366511326429699341154114200631602785707595914936019516295844050599128584810697015957514435977983517763746869865961319919015615335196907605687002075832013596241598955280183372026472173796831255281685931885029081105468818132172973687692442796321533108331190391598154733991003953870953699215587929602121129724681437940182650897680304590032559436535600009487997049406920816638555492717371865794361466776514266445566537688160271522809789118767573161137540312265681999837761151623748680098320812612766659957878614016401804116154112560445708696470691018029246584300645858940665234365065339672669530109623631676943855023690470634442554472754598054504438511336790972903587491818387966265912259134701159049724687070775903584440018763310637199313153490428516313468689145392221140889819145488126935224168529413466048944237745331031643737685213284638874628831528345116217724146903639982450570679299269593716325191367683010065534118459860319602468401620655019185433712541968505514297461961020379221326452847906645720058083731732995187102152599082562958213841282250305645706405278896708037942461275977930926443578908656807922474746741057400112223280594181810178078648155588069148095539112159540317323786898003276519213418348931857842746073631989908696120504336901214362847340146753868845371129243753793176035824886334525576297545231848816828634939383066192626567590408129682539650327125270246803063561397120422677599452531747884086725698192207248842329782737480058993767385131397846202207318328841228956992177904655424717368373043199575070941193699726653401735991290324896925422175716405412996995433207111948844525402608982274002558269329471226568506108733233776090574642918449818650905575655568549181851322015644659515623725015708236030017732468721177631532875794780773711242006999577801509906126114309152100518285897016009639903194160109138890429456659615591933022930459960053131885929894543596173664332843380455300870936557475192265988806740349136682401529199296591131605480326336132063777621819929457867501282165800307502819966237437276606258706738222611942243207097385236355080031315057112823318664803153854323008319391426809286220160278694239780576777029775842165827224596440193750560657332323570472365949675603866701264485609885094536076365473111149303774266922614774147904718918428104148494714339958276008372837289777375478188388749930411247088653337894518406732770163262775874241033259068510150616299446230832398097676139702347420241764093894979676571751761311662693889290274796323002886132208308836550188696747783812613683883591143334955746927626215263921670761906046213312688386145547166949435758645557219562669728849385358354155536770960075634584349729115352224019468096167761409041500116123753163705823540151472067789678308693617215333685115299934606210321311541355549816862463399581311775490443521827757258339258499378564389526210174243624969690398039652299299731538303544677847956637993853293603014491080792115231408711171745005814882716819031276419560051926915411032845417506982054736090544179816050879570319807129914235730264827782750671301293394336002577641525947822063226117652199482450873761668277546877414472086655017967056572554369767692903756385717229413427802578781209213659900894466859877748912793564004052525515808995107942612452465157457891386943201947424103007385569818587282695733888980778716723495424513668852405231171750684165862489376114135839784684901068247208364281260782306121753997480192503466564270729293379010446994155663404787764722548356712587523001497251814481594345154172468064151311136147000342203958098179224027244413890913248555782117101218125361000138143595763234897440269302605525974254015613939070079169132446835639370762322945933585824535606567000836341837725032318418081435245637537611200914729635116013353685310508901641996181534909951881340042735987652904676080872038158127868754082246085084019422337328799152268601525083793291449312953620665230212402912063034326209050152975766905737239419903116052538944812569797820140153415855048330453114688314013482141826294509051234104786341426158677622268352976063429635554744846189393350599719256003455399174952932861435639654989875150685412412809598645028359799092571634836125687432838282720494705006299719425993935437577609583234934863042464518015366308737535090698316672089648766052423317748442901774963959288774158047990640614358161500302051985885318551183195067284567712912077478187681604221922549910460201964029929486709156047102750772244458378006593797487333381563797854711026834973432656916947662640403973916694874704242338201561167202286164407428400890362010866700121314539276342968106365160662988441790880995239683882091962286122106229480238709694685440050257754656326179822901579205655242902369904348807444345773748915938538106633483721066408450949542676551149709355791999737149925966557361434298599546886106501412914867658804123822693501868093249866821931298651360389555953725598068130553233816088969831219232716278759026316593074076880598959986628468225442198682511218558406116581966931552595032501424033104891573839871091946893584689463105915832512293478998222463568696464838812569936223573259178249977320409338074287190362243861385206089894606966488423293882249970513892421226760403545677919145970308776280829543316428886911991201075381252709789949529353241401264213799633207395081572474915996914237454716562903527256380124959411760113127642956283102493952766248936057190789001880109738849999594972336672470385529060177635340453466814957164942548299034876779443306932734656559037783200328179799935272445870410582255103291208885279810623115198385518677485196836120779468491087946156274800856456238585897328241423299809088062127424203205795278591534062581564169638573386670804435674306682620634648303009502175074941551401059032629056238505027429147153529593919811450566814611345127563544314279065126792809342126442396556754329616669981599105109665202747993123714725989065121917684005926616709108367511613897715164342813081080194490219674870728080028750969534738078277476787552279676405546687871401695519125045044983217739904020050075523605371596705951842756414597005154000480133401283301829671318718138674182853996029044655108532240177487296486089514536429425677224674975154316017861102456380968923631582274947850781707335462517491157951057051689320073745059089000949018099258333042815623465526282958670100596058903719888267858669871763245207806300966352033185100829084105040678659616769073661320494570138883616968078540829862996391879960428347062164702626440951049275770541867031921536812514791195993818242596052873682892651932432360812038173875414903808548949423457917392754651070478321763455999805395584269367919684814089504810134900911604268604623963909764158146063558224161425036578864580847237888974383052764995639044031668833450326365482631396201043357158151298993744500897866286818891569208630250995546712815969006875931957589503601470008304129575772833626338709548628582523701982422301735928134288819805232709226640666947207547154518852132676953140884494138848338846526857400248962615166625248881045931851848448870174277546468932774115347551945956119145821930050800395307450446935456812275742952430099944884593606697800490446982950385129897297301829334123562418760441089588332096034280023339289305057360108340779860415971064345948954443561276515947214146134571407567155693766442864823148664049965820184328898816423446612710997328272949908359696728230501104877772293225489640902369261583460353477681731152364509018698454533134358786145172810719344456799442908929664378636820085005187376097853944342862831184499323068402829971709923791813618660414221620745060411103289047347312304244981379241493758448825111251178867096870921255652884930431418817454079204714875173889054330256855092604875948229996010551555839407454592317828887797055491640597185509058563198196998378968010359895535347948269835426312179399915801155663108936182370084586511055046149764840460020729175234656690241904516456344386998387466051598452117570135605423090945693656813004948642972359742531520862189358789331434808712449630689706694779828395699605697830158001450782198368937413520131601957026234226979443365009138102366422810920666144738136623691757836118257145287916205193220014476734840564227704185992860087453982301861956234695632274735193644948611050254900656943776520334267144000711594852075133790577874624861439323742977901209588478414741173380115071843324087520060238510092872075750276302589890626013389478986052576360811360558747906181463453445634934549227665317763548813020116916426646362239982245961051000415075374586308380897216213170623441307439727988335970126398022122651016157453557600490601119401821547316725976119537159373554675705205234500562305229933857592777942890579075406716550625227209507526887711495888817845649068370822346997225830704943715314467468666860609156441668750952022727722491975261014507007601255158695942541487859252427268092913471052091340597331990792127081128857789018767111137854139791114258820791760649395504855174130423818481888080674854564516624142617671171741346157277771715722467349364112538353964241427750565864024462847755996286140631289419896350226165418584968287401605828701824140270304127021738503678727888201395120405239349496993346144101222022825577040404232913717981437844705924758564486941014460612670423082025813770032904607459734166466030033580688836613080117909551703626243731018902853693334333863574609559853366595426332490561426131618586793281743686921413134114938996325719183779622107912061096508748594043368153693345220032073518792897694942007042648921434922076667655338454565069468658100955318323404013402493408259518720848736530605343878482510355582906915381147957219707951625241749142209735501670457503919646633277746526020121754437035209456513544048942937822866817550929744448384116401837095743547982844230332959579894514744910533604431151696208481372678134670057437450704706572359085289463279195319419479225538635853465094289179745032774395292198105678394205593397981640082551643103825096391329780725345283520872780539518067167182432146844076781710730399981039592863046579486219157745170529661712910845104068857987906085795841872947904300694675250884633369811258381173852820650804696371034251468949595164562302195936859722245694978576176226845204235087870088740410850257520434102425729284028925505185168702965839779217761544463048628370352102303386720830077205003739039126035955582783276615724610024079196873736633479712908233088647110088559675303061616681864115748465046776165741758561007343830812374357749954932967389305836581855978941894863125721267733765521731528144062358472939554645897224662396666837846099796240771448254749128104821810593750088498058389511024017872051967409917062078536882185097229358279968696627740351458313266546385993425417083667179539441549965655189013062953833131446614353568554154001038937769777304542877209189179497554468882907567869816212104031626826849764804766088834329882815611219782116548046449466432484188619661790196517488765629859756063834395057818536257114413575284750265539792926856449903118715653775507916738849575095718837329698248369671109235743634852740440458101451381115235919964386697137304892856561344594641131338577378238701395589254542591795540089376493576749388756880313148416487894581412939119871816733035602919173407045222215310651203043967294959869772882784915063797617035606475889081270684356158645832186475144430252202325175911480595374560099497234952367963014393825086643275972533571531814157260833773998555390748093845753731295163667252669023914985387135108315434899972325515661555694001977169050338617674779393266085334250973345197568313435809723453202287519427283583658647848168873409513625881374049066576683123211592233200698126814653084796732572514960503342020674425210459252102263754509843688189272806005672431612181560975108158546089413373217913598447548415698159244391537186821833873559511860197383809703954866433666174604016678271228524740385419377817338884400866396240750693255714996157253793151462750174987306967845020482036955996307276591978687158251824153480078629073833534963687473833144538164456798473210315284107060286877444519162289121944349598496486687646498198400781968063202064249486145083417318859844349403787768524414151641925199931284533791205694531847967345734230909041566396859451513826504672929353535229853786437284478260375828391462005438384838606486083496066486711914647398876596204793175161936745030513367495301533307761984142566008565992524631877424718139085152810912024584537608170298864102528915103655956974176451775603737724262679564353064358536922216011434448691283329675621899043148152003726703172285318280123151890075481804879427028767980714446723022150961135578361464996249800390104449216963941830981237914061368103164345553108474529130226633911734321900350832677154447469809698726981752702721011864321935046365926921960278452841791506533532479903570318508754307053270511296584879968245279729876052123291940326792580222835019763044595968993673333946684596695898434512666762550641287584333322943251935094389276902449850496186676798901330294405631024302497154110443779189769783987397128779508555215261010808759819588732497346864605599614123678336581019703182383806576283621372952446757441693099767789139370431943348855149331624738191490845469276641284459692120088241771752196456576956876568565134267707320573339899219397205484389586191764871886803639775943093188567519210350495519868432257248119066684802132812694853861966589185060969124445043329202950344540548701125522179769861019001634142002047689234994652431130266939980888927560733601241889139716895286129549421825979484801488447963510585111636079838290366151369425818275803745302767291242015981575872406440222351023735128608724113320307876943995407721535425089126949592880010874675044777159561809868096552065464721010751957248272317255584321275510059556661961161741497973961071882156044397497912744225557914989726516492304821568861931761276763745753573381503012310885656111658887146895564164959599605478078314427401372320233229622821725940888702687437765358199027673524058445647222191290712387361843417499998363880928317335169299568177395813406795439860866677993685226464127594018471535726147100586956984875906042997342610128958917557103525577672513716760923118598186743482379915353843589638303744120842001878867031830719661557209764958676185843308224408689487471013822881884791376137391045217835681740892770610304730043063885489760391361848292435422398531207523834857598798164307204543534044066116871837148173288703364290197825292066735195915279699249974821463964280288847532966002287459736417046424471507255206301396120755194723869365289342977356264669995412440237375771731796367099572449156494122549749438374775199722519916282941789669081907044495949234821856978162081831434283605829167479090924714043114729648275588671527409923813119877748478039677642290234931995265830045937986538327478891265101130313472635892222612764941435164344094713940925541163466017522744718890671758509434339585005735968482171654666427781818558254261004932292238596332935548369070093237309914916106953173145547772688530207169324043879902816908521480127038227718336834366020913329973444704853648000746745310571428190370935418567921890029370555035427609286410639744920487880117429591203545849959504456147666361504981312061395012367363680600319960656281911993870163950108416891130201763718742235217771485727132115534387350339680353811542976365360309510469341297365854107360022019882613183376313334187227153491219707524443628255155992296295253566506708196544159431562561006825445118800812941636479358661238001349219329507242441965010809994944098284965613134184234712301999091869720854137999305184800542394563526132914152831567465695266421357357519694584454611623536988729985756147761519848896903538377837698409654522429320774937437329822468875326890992262303632556120859892419046329980307602223862544824039445332156511234833954587566647991399261108348270848325014705217742421897356097790765046023404989770828185594810495098443360598713698190824271964239316040555084415452355897053531774000221624132478910733303528369693870324202507662957866941903044834182403360268619288831978754486276528164286520636826254998767855486896273318581296618077409938469890542205497399226530931638640349437769672366183482738893287398535604762801742565477138348821859769374876628401901348437477171193122975661260273503991772526539583841134542386601776924289418258738676609761097255122070138383396826627566327870220469525061034446631381197239908808535050334406311215612850899512797506575217037716173205843611849348797564715071607708897328049576977336178263627343558476470255255810624191079501904247385461923547759130104949438399627773596411580410166861593637862239372653196337713582807135324863171377384561133835745622204547174568555892026029602826280877764269328340099501067039039371780812579552694756662443532819036527801746164745258526615667652788162659635229193622541187636188499969814173787520775834156135907584214558828605025265710961082336190307786662757349601513303525272412799134273973640469469543984521653588335285572326092801534250942454134269899533480689817510382549511055117649661146328917689110258757958382031638372496907601734284899222868195859435217384378470189426636576272993507233424847283219895138109648368547547595801978247614228866534769801889464090366825512671268803280344449093592490044026561517679070444333077792666384914821873527724444526648591297953066853311753504741338161225472549694206691328299184251885679302852980792782014492393347713656902678113708823109426619196576715165257584372050457326123644473956385846283471369476834422782000277150079974521188482648344599100516522225270948369556560609422458295421908362371933123560367216460021261132935537259902559696339469649909396835525437064067930484449028797928402274472663790443419723950996812890852878677257158265599479009737162455731884362446250073608572382764112226478306305427916875337906799369638966877593022491086864390400181267687746895042893222017045270700685185649746919323912961980746022941500481857517328812147360841780552216670635375330521337580906431855848633727435814069708007910378688120550964892793295492384090481411251415892126809615564870269802030362864235220832490835701585996929694841694522285454191771564410984441947161963649747900518810254571448914188982353130000446051317270469380272784607046210628070355002010728146947806164431428266891302336767235489225770896021815087453346034809707197928688933654701794505616280633163035346838650224329204840699259517231634764385985816686296938495718391557857396289363979529433558923871337412204871412172849327036853212033167072390632437032912304348629398567257298294172571561302758072539201989581430432599176364804764464388925601658944729624875807252226788567299579456866183069454748008310777591414523231927388955430096902592935673961251555910879253654976729120291499116879541899247552182790539938388361420761371326643963930809947912167585116056958433309350972898983729752626495534890132326632564371301266233207059783118057001079834016321883420781544426290831444914449580943169945975398356696035557366049230464986575506859463693103228060834647221875478527679384983121787980982433934835991074554519364376222333490035948559341033727003611144897892239761306362966109796811197859743435495078100677102994815724743963725812249486850915449306005940811763851266874172994316310763230510147973377576877826182780587186427800279597078270339893276255122696887393779000656957231199089730531305273234286583964214432500527841799976965884870090938402323027232286491207389627417404137468378435839214097854791466977336183729820460025298109016216597315608935655018658403787099457483371038553877926611144769343961695558913615227277025192666999340322270164841222285047990466682978363167831489929830231377978991654163446106025816431192230733138606543853837087206478410797686461866327610937381859972131965384906994728501037984743053488618161805565919531296121244079707348018374995951489880780689606411973034613817196370763021841059282072215390663271593174984063650884130323256105964926022844460468262130758795640307373752622101944792743809160782520723565380242237652341135579353024148384671042542404941119868651843327923936719766970725027131251013487610796770409460931292871728652763143622330458360390479739977951198895310116570452965574612567958224600250534490724419026201901143570640271773720320275574828034717724169601620614572670906417950195018306428661377936350000983456197921558114488886617601975751695100379275055330380410693201591797704567491120284872993608253808063676770166036984036801920517810671090352647177915028535931398005541424808103352014413571075618508296177215550352581520575953617127696786441097236803912158356628856589563710640872282489787052849091237060057766177420569213948088210878618667524060956991599768107754030990412995533859518983213126536444540775098822593037141980992987878390570099887799103670792436631449099158248720185728847884586060955647913292455460245506304319940052091835478642683919441589070123873064394912568422624052885816090162455406440920320173117489185576430602284182756691997384527542115439236705567124298783902264741423492535290610994286309296922501282449836894310292567492448183539161129760245729277384002123471530433213106483662996141021720153696995103470881743292593054501863834637487605778027998757940768885705682121212381540947463787588935555333799641739610624133311303548181262099839349758479330919277966434882881045174824985836689901997211876023654908012431272642353351140881119492263397565601662915702456003553078444981713137826937539670951966035282889203845223497406273581837672140036733720521323202321888992277419394691452690815052815665271022702524808948011874926088945117667583329182907696538360512961409181420793105288157711179985738964714559262013248377455719394520908792473442785403328641851608348311767592832214958678074318063963851718219529845634465535993259078434846821953309952751166597318985237712719357246777984014686991963970332886579785611501207173694153888435449720241343947479619045781894850322432671679517048146889956572248667241089369846800657649009022138510181823516467718225359810765376827766857545594422381611412466799339763273615061746503656939753651197278263303951243021336521886840803675958158485818660536199546125253071560393991774991042970298951395144114320014869619955286345956743873193164770264507831559361566257031587698170611954197300966256437844184445432048272692851936714987107406705054849683599942900754144903452584812470742830462585937498877905027739551079510897438748641883763341269901996236377997255937666641445330980413155413184825321663332130802042335939947287331358417612855985701393133863465481087237369462447872111180489133502940352947251501730250366125182734076930060103506794974361612715288551773339303824388517618521909880110853437765006340547804823077437493946403015322968696661816705725538151403649262276602612029193642827166525189041171645975625437528250127539793192542418545081581770337411076634735718469005988005765273185276625462263724021490511903427706478348706028454418994671705999943404956395133371577581253218443171281232418848760296782051347775428611763318681873545222941246244290065671669110550447749171994899223235361675491538626515560160463875718888738458399938456496665379599680873888567999365771766055079337380574042704729922255237734208127898204011030171504317844674330280934634298981670081002327616417089565920410691796082483742772704761233948385433381657753995862822383179159483683367796168114946073821778357930517120384006520713881421961916381929390631372643911039981082005517998132079426884005520709339007819868932014203905866404804735676805535867299742106741772667753127840515785051978480519536385216910745542235195416105259847972521407382347398131181420492291916971934574545757227177578318551812058778984939030195443943875052257869125757311159536731258402221156739884527431555173693677685681062737369656847167481768324208839011716939798724789912347046791707295116473391518002858476411137577983468618426138400293994601821716600725541671237155665054253025012599211975968180937268152559185194036326124253605303714847152787185366172502032811835247954451806812319409488804351579289992608082851689497503089221729252512876827209842619830625310993895932711949702503650023499600436643507291228638463251747903969718339231162665555155628891400001466536155642398378248889899466190569135217379972483100470894054684378613890274950005115899497890337437281989811286760255059878747666756365387254997282846934307684211355979046261584285114042905104785293204045717805697700065464851149978829693531453185602107950562957210189151242062319232377202400911165450975287421780391582165397354220728780395122320469869784344418951512713779643722185162550538501152109756801259353970061128832696663601676866975608270309282798763315218565852504495926339872220348498552428087833977365054761425780981469336381280597404496191357119264350171290977697338523061533428862046640767283039617175846660607194572299609314083308810874591286470629427933844731021788356008680291225203166896770186230069854378482755214286045874920217228822918694521070457029089678861948428946100385481333363975583772314153823876218568261356264688260501576013074640872216761704970923656856842361707320206685473230286528324635391968696067703096888016404904919572508328797625338614171426416776296566375913201773859030640294157699876067603224995276326966190528391529499864502789296021581631183147450419761016330319453149724776205914094202516025385227244360945079877857234664481264728337412263505637213441578598789273327265108933050011312422025135563189198872865716567927061917217931234020645034640148596355414377973983120675475955442542092511414959923275457010235472202794787031785535694820544270404755157103625984298277035091137125399738431027314879681579566997713328429297048571544808172497276606302432962507748112876320341356598381549869220249238920179641250164068015506232757419453190936986651341397544565382403742566796743690557478535596331718582565768734546918410701403922999959885477708514814105024895710009648312758229058789165909746102247159216905793476576334661223667319693199901818453470369482713208504486954501995368596138788097206919701713983472745240976414509699500005734334697789958559481971131186220332225041683479107461257273081221738016648554869206885765618768197696826952862376975997352901780696184044442942737900497646082636442835746598915335571584037551806907260845963980667717994691365182426115657564852585174623576042470073608769376640736075507180475921655806557911154284530204685638175309365956407156922927108756813173728789566227373539598243275785418449965547282020931169759099350054147070869727031213042751953695848558060153784914683057854316971500178627675327403326563588901540754200616296007994477110825773218426696005228749682907134159181672675949455864919699715041349090589118799827076714629792839288819252494580533548739111163650268284981416417143681094871949457182002249480151238495609714161874722371012330828694325662738250245078253173685733580613904645622734091886249440605789829248834191565483313779382234249855554108572392574296381335612502612017027327719752737330058478677193893446448958658494630046777962426430381024987191649319051672224788648758042543737755016256688681594269037604975199564236032810506017884715472367331836621094665938777431693705815877027871378312848720434226352693032799570317435028410455556814378235739682700847113768729603271173183749498317467253055499688045978174296745513695824680553792254810318808014611212568370078470035236258113804023633837301563764038868183019258640033801133852331927973504489244571329488073946084047246817769267255192892906694617776183257721399103020811564964917177427546337541477330261599403003954030723029376658096600998912186872577065234058723934514438233653791820575497969233691117662854758858345149709347670181643455082296081406525497146031687175081676916962682495725519482275759816564539153397550202181393727350480787069119629061727051595473913739547550488805630998677993573689053893504896289655246705272715011351836982460101560378696643227534347018356848626278287813548662635968633404945053404999969265093753889230229187103455491139748720506343494081490286155650045899061508753713201791341032771410768918029740192523126804553920032635606276119620956893299155793536561894249961214748114642032059130250098265453887452569635253746948259320991550878814902586765676132371840884671038627488235390965411884996287695193705214795554529079421445789365201568093375113964268071500253051839446502151211374463863249009746301131993418194674847443703055660831255849605787051620931273987817569402008794275541615619962898188500685981639583443161797729361459691878168228607590403266593453647101569144101135378132987882121534938299573226522857286589181668544946046343060105894426498608389414318895336605831194431769712336177937854712277599676363133627498410476058133564522840948554486810433562979604803975172460602903870900747427891671668457004239063027340640133390674776086186493149820260021033032084228460631876108163105141655255159853356666359821271419080014308979848867599562292852332167064693829349185586993940417569873134106399917700570307130975711143965096025329699952383173530716805058584052679763127421187317880364123858130044892923636439153899618222101133345594043639022620578417722882812055241110018561792651014583907626575650543324851598253188068526776266337108997606204345755538729646366936569621665437656358871360717891966842727997461784856920426381473737613466696468203673724321426202025136369929017109079077336995693301624015788865842048464942737377782541437514991202463552203500834175301444710553029224945020498317727464541449036165683234869364185102377728299854498373120451668018719134370180474478304475926623585420861179873638541725835266453557324022329599543664044063393643233752120256668507342345937379775797932964801200093614842631867614871088964165706406059904810149506952883818015612733427022446515811893015674592375352745290765231590376752458823306594100792569767424079066088371497843758781743076084244970336466529070523966993732544796025634786609029701572546655166331536754602262817798819212669477694062848508713866690035878488303806587734724116177327400561904988473141282875033671231192922351999979551885558462575346242742908970345078387336063244924377933979106318737847400945835323661003303907193715175208034356362276856163498363535999985308001176907088358468634939681779066710294966659635615524213021353201198079850596205880943373499643487506723821656796341101428435969901520114638579033249955905563657771686015897893652226716223307024187063183994697034077488654303181125108216628456680469459900709010913254790077266853040453136446745186368980212987550290382931628714546726383396037929735388158363709193795350182665782159508775273850145932292156423742694912035624759661014364499969275279022417245356700467391959848488065137364353773224743943612989428541905716617283601038008890701699591561263040250319685418304372079555490029092526852565630974887250425497532543804655331525888380681866239368460656368440939968014902629521112363175338214177391446385384773184151541779361657856430113944478471960957672852659255413899359432094945778848961324564202642969485931218812597802102047474535965912867994527575347303611347745869428644087019433780278738058232379624122973205002488973170167676654277578203765900407409273604774422288482997838390422196711528790547865989989997648196507677059250392029934397505045603366332891444049895402436513179057948165508007368698236570092036049253431078872125912436744107426006053240619029661000170383211271961239382610195152307757851985135320633307071008891531956478146117489995829143566176540863524560222768115478919426183148350858097024415952476862162959405664801985382018254702810096430838686196340151161220676357616576865279445784811343927988129065502488378340209541653133492506571098475517352570111016488967030670888373493627038085300183944098145826826186912686511655099377328127776075576708051543668925135549777770500454652933404661120753264658676636753694147712799022076606086164826403931080020783449305853294476508628413140887337651194286579790166392296961710729624280349293514800326650398665271785486070730969170910852850237350598141716151568366692883053426554937161941196771520847692983316529927409846853451171560795531285685768915828239331766937125678882146806039807722650470983110097630873659161598109369314198472439472907163928735810337305323983279733152121548348054564403838599727082487424112114284974497799842798949468477461059103035546947685227381719386944564764534288895231797377293236498077548832822980415438657615708579054795549193115112940761080220297108999079686622403764050433185394262336802401465620702370772951662346298076448832660425176653908374579569348969635336682711198565517504962639949184094205138509316681300585654313725126837757101275177720181164494106665793557929261403996926050941744476765461418407162614311750010088895519917036652132425681980698308636079943250279882527958441743773374473362966761041645273796559676908681201558530839065484084546397573847705909892366451425076353963734214321856855245542072500522889899885652660080380788275226314182931049896620496014138155137531211786353811289910098231187529153671715107123292004725020570732236372555789895747523585479677092523804761331970266441641668935978202239395040719588102025286941906298415805257456519754623949172898569373565614631393021588986405824122760076567278365917564345064898742975945090790853663352551338556067341318009372306833407165011659684661625369990964558437435020158786385471339502534238164356920752574604515409922370630675458946881067439937738981565496198793971359277607914984066676069519760009335164329039137519020606291607925819172026725242613429027568963934149452435884773637827981431842428078253269729247740913973369576078384260140129464567649739554219378761453491879001757570874809577635963561821269533829984865464189844059954629494913738011456460406438805599390158305000606510148970220355330187734512701709177781483619169153792875659533496867708201343628183956976505153474234840838957599554520085603101699015413307441605102576093886691492900125336891873766230972945769657560753837861298944904513061317509890027042449057147165523541989297347752275911860895490332676348012986382353530012973080771248179668549043472273713587799351682884345284336525360508981115521351453651187962863813901504138693642772069095881821713905760036388875934282849430488411068282263188441444607513890245108895193011518494732344299125724673446828712402576819112097618325073652748678760906243433111366392994923801497005112070863371774391972977929347810705997528578239706877192863107520391658979730534509801059498375130383995187816623493761141429467496667304079884174478241556025494166580970578861286203837914503947455617643304326693705804355477808332518788785287983789106769270514015996171092780467787044433332430466062358159069777461918546301839067564819313562861999179606800688733184726481453432954493535942755429714999404056911566581328729507444304160719208236670385858700788658846594638835376786792321247104306508277724992285981620809950031100968781871395903459044646941300288141839916187120515433225623530678948965930434848843459129998390411153202812154909849095939923609231055005308267549163611651271103788572612252003000004851305715812249153001225393823627568696922198587667289455168221884292624491622490326319270741756607709792423005031453187733236969965145697467155265187042423442929401902280373033097746161279580964732370721666953836625900602364984060728569104081497680739717400809040068178978633876249570128609177893819208189244719989367734992459920927251801420209203651155624413136124063576107654850534528921623930699027439279092772853442029772411328002211580078092945704138307692151985831693100432256200360050233304878370282065334025368271477926779442245399203231455555118046654420113171698062307324697391290894439908887962293509450001308136741551806663083318045955708616885250245649556135091150288574710059644565546796642072008555196770240858132186648665813951238153986850042912967750775774172244054910283506871618623832777496408759870009049284923452248240044961503044168122845331640561440496575353716923736864971475210595079869661066657068631582836608829893211242218258258177672543879398521300130889849550531576065159081669016644743194365649133324439837949981472763610413560074993189261526537729610833582241937366705077757603313691782655223944068203889135416753371842511147277726272906566581443367010117756601970641688484542484597067066825545426065101032457131077452818696892215282138898550463071166693875645841390216746960793471449817570215257337447748985692666237661895654274945619698715744238881387150413601384312852312363839103735829702206434428974275194718605783648596670199143665522332130981742275194953461314908368161256522345705926281883235632354787242806559799261014708690788043874906044167674419426061475276327003615332933000146543706133954128078819340529240035850826807667452643641424577106304664820355775529015188545630416274917056629913480598662324853465812360165303084393499916233693598863451764316929370319611889394725753479126511850295220864380037722112939766439717177602787586686714993029622387569623912463343574732063145513737673259428271582682435124562437045984951279584222749665170511814222895049518987845105910833337050066380705165420512575436955881332267352181394421307292039626506088185979378114820347768564082700385099478373365920779389148827023131765729895749334708477127656756341294747276225329714510187382075598013728157218244708107754773821821265784379833655251660374044253309650406416053987440118002412309624082987286707846235230812827953431564895932783934256618634390737768265946648709875021474774792958582845774811605533229392233107187037854705449805336612788617693341639011294986929043788886097993034573525352755219359925674146738540632462573674070104992134450998152905190568368306030181197502839216687797707212342250831241889836835484574219531282624478079817949328863734182309394961182177050245166756791387130477672655257254985784894005335935171150435976701079442822884109674580253126782265472585684753298371118266370894857041827205694671055307315509914415562352609360309850559262878383951526607020105391165082021221368177494398470389151584507689224339512427169040397694143658518352478395132176232874347339303992605130994939821826542510663222549578362213625526727611397241439067613863691338473806082681271063087205221354226415786222276686957404677319142978997071470994434393808838897616396633593499499318532321344030533274732686394592622406287980863700096759386388197699642000173362776600668891933118407953307113241989558078175916457751436829365487766110682867489074197443814834972011270735088025962511858948495897278248177013891477841167976919737531385328235041939189261375509705660122407479996208564682317369380551062058444122041014566068481089413479298911606052320679248204090329096057090789955145061785413600481418378302131273549126019674950501052576299491525416993313708988257744938471165104637049882362392088823808036339312961193444117510331583064414700507710732857249741924902414804502461922799441372831889557891614913748399202609350330679065405466527480493400008316691135809098946156224009378088694561681542963252357536492488492936077082430824280743251419136390002807896036727017970413294018703904179093610835555585664152180051955683231500306919656060543166808838062373421506808706323839393271779463345089319079970451562163357305906740753142894933265044277610735944598326635755073602229298248219633956676715856683560562385179622859977431441216722795869783584116293937329395120188926260654806273128022251425520851080613446357216226515346229344071245929096588977956407277730248104163566244273168114139712847864858190613469386845622433751627131130984404650936941675015146464764787950242469250904965417561925530786203523060371628649633795155793792327191978086406296315507629325873136883212232217706300095662513172257934783266366372616978284060225012767698565720522798977727334071869606625425621597804262159997598762313295340239607434621957934681836704305194912398869132279574855809892483321221076857292379666780223632066966256328317030248721551776751704254616824553965166596213333790218080431931809503520258289386830780515955833219669577519328636968512761073878260743923871530545511979938368456879371465584189281869074545442311532654200543715467228097332453048676763500173165387152158044970305233464398088784447259299416429469482226933473389167883843528098337075150069158019255914366306203848363412717111521577479546968781604794928596503582643519830614753630209346833902463513442582393867586182036219081201639385766919331651631319139800612391135339384749762572637173452980534346833239326696627474545096272469386101344779854146307550214420458646634978849732013755684427366614095686183565029142205537697657036969713314351237301761882156377287149892556709404422545549914070257056081027715887135993455294865381413928522683663122593780195774057589921769411479931660783893081008544316148274385331898844399569172910733350395022992025071983369027988616189523968681960065638464165118457269011774747761041090617906259442905206041807152526522398591274638548712888033836147133275516089902379391397523861447871983424042279030625613775358987531972809170639100882930586564172967931520872299730649117573260847987952830298649140495889900689649256305308361107915629736147471747450054098983376475563330452819082670538617629534175327877112512923248260668528443297150750314489418226493777956763767632191978783584037309890912093758250077176394572173545062787180551455150347403840797498328324912826505418027137282198701312923899653401197646353451358570295268821653354116814470895586832105568956583183239555720826341851363191320048539427538849472844021632238421078787659015859371132097106602158285815810245088408462046514590781980940193787670284481579776967451073113393912867497711367967879372554975764769883205236614628216756870806840401436023259623402234784044763271537350713730767506413481844564447937315018259617705602716536035676136744354501306866856320176147691080663817683913895294110532528061322287768172318390954438146920264180414913863763432917279110892558370225479841041507808735532003994232525637105517900716536533361146677588996461536081322128889802452049628287411073884608499988341103573861191698753514136064970832886367387232004118650063900104055801234225678070460295334160909815590466137593668024933376087966794149090467384733339212706180573548064693120414980711640105901715942836682735631092153944612069620260175979911328929096395286575127764786527514106019797192220293028220957064606659873874584803242764477444287710392102195637918374025861587248692927855535792831518578664898318909284274877179958158535826844747050070260833378060101873318916958556264044882282228271892263670246589587720768661877240329348841937014123323618675234077707235941334772421413992481900530717343726235493603420282218746547763269546400632825802478235017817501517974576841770589797778304741450514825178126428171137914310491245317871626826840112866573135868215389307524437003419045131667256081768415610711431990111265561337575915349673379969518979520932350279423627365984204293380012067310513496874261723578399870861793015224414671142256444370460090661213251496102074750344711316136919826077932226841911775091084074234649414998371275659684758074880124416582552464241110569914295165404246443478319726036007482037383855709775950268247649089506199667384647829698703342896269090758086006429941928362275989890580418071099767357942661752003590132419675237533506268790324826984996484591112260425120635373299722041992324393234551399076085617152629027531763398513691907644527848776252636087303063931109335336761739617820649175038688898645848376121567711109287105504620254689682380575045448733308145659139441402177606083119354453530312616264100310374673433104173370563503332491215270952486240300082027152959815689181217522193880606484511404352341675944327930016819075521075499021902665366958081302655193951437310958470216504024887401253783427252408516900624384156085231097720341097600113230166579000061463517190499150958438989089290274274096255267940439609130768128421570044154945887508511082199908515228292249995041627525531315538609589314539902134572131440563644962260912192894883999358839002014372824175447127127484989000920780374343361408901886415218768606981245327766524795253262949048864902820647457279850960520215438843015546094298053459499714287334176850119227738172336734270104814576624662206003314835636100398378492056126757049270185325138418219346600802962553642448306690640315140061439141698586846753656347700451444470138489336473475994172229611187645676267385241999627129290007098943666840555388923278210909437505512363113398932660580871717315583079891100161435901669610933910260914362622074805512036218083026342139770792782194872283343042277712580835356049672403614654852450819021431770092386831370968250108120428117110020539400924428603450860210011581479458715538718035480429989843340633646859626273777816262264192785129613210951102063993712025636263392535283464019379685420426405614960824143763283942259143653003608803823754027535106947835969927883428570669754606260317996935256763296110375964926491442031028563281131473070204048676386833262379988068298502303038319748107890947065368895477576881997131232041213441272972712728906105440554412535281739967753023008749274846280620952608572887973230323917268829364967092111095036445213501875319107730708538583641016127354533587805795954433898498860778900948707121397903623091974995704584875415218473208624578667379878696716880640534905364688156019042107562824197813904543868007036659193272699179081008946568031857925216856348650676392343647065091173346724291283467605039692209723617968228972405900621115782567491267731765293849495566468412987946086103206901430216967059778071941535926225682064055458609390573019983417423982323112216901629668855686661315134541341465212945751755291134315231536801402858078611323416596661398114242915663371034551256609489965937011654546242101922149885275164486475241192345495955871502131608284538549952636454427559181738869982631373031683243147670540043811731452303813927700049453308136740507960080615740462799547156654588704730954476681872047539612315239799869114988485600141311429614880574633063565929195892920968280918936637676804618740306542542932662920529027692315424811664943443374223257908794999638137862721100906673581289345338060473428973287454314686720251850479253553364361088123046380477118185779593224021512186810262530113946114991694559660320305010773970366887888771924629228680757823566927187883367677172993251646915149370081060832768172312181077474733253430590792606153796982417942778232800454544616035846523099172845288032041982572925936841228236042811469280688355812691628016478058989415193004272407530304288127629050388502917028967116099141173281619170034733061251624226366340167547509602676027643383337293995118729481488650608210397481495281413444940801074905182377709094788765155041481649899362813889415547979516026704830353755921705810993153777744247943246290449978936284539343534164670232026423021435610313424087603289218069557878659581345037170931439503390871698777363855373534205401330578601006450416249651596868222551048842090449599621277929045399239489815280797201454869839682587785565885345969927373858729602119135643101001215369413426737923685931871101207453471796401158472924768167587660078350833769644550718064081112797535657379651463699314903461305166763359946668217247282925895091646102852534611794347735215062096593370230359124301510143989810767040026983030362895729343485997976434153053128640196494433087464356152085297935022379619900934017240745162618774760482125382881877634716302735060159443885039419372337261142941221738524917944714117377943598019028043172667775193496250417524399162197445790845818391376124648657028955404913989629534504660574102611080937221203091679507955457335936739349985804278180008132900090420889126863472531876321450201526689100352374000392943618161080523757661701393443851388967905151066144102336001919685480839426165713348742342013168875120449210040786429510547669825378256003089326665150969600630089376893833190324185721642043494310349985985296142781675922961374920910325686411187080538799781324813550442205802929134092995609222068530862357645134578741499088376330096169856180422376290839650549089919333278389569289634941982289371095739675854975975489554303017704460789763304940616803607923734722905625249659833529622969569491397913026243381289189337766998036316857718817491709370964911444768407163536023577388811432572003182917031420968089810098351248270955743328942654741470504998794279747970633208998378081237802917577643037590948346209808515783149513467899227569555170496502833920463718091018195650565825156621275292545856492231758856288125867455582238553317723705325897232365698533858987056345822049031625755930919371611517591845395183762413412472616561283468929015971019905389460000413654516412093737163311139137179025837978079560731859789956234272057240839414969033274523855469218950427611188062731145768425614339845470195842323824130498788415910115742480778416877181350986739599093265464733695446514928877025714054828768734657327046788275770552066658093964372270558160886757305535658580032977411064312188055598691289456413783104915543706734154826155713510454940368833265672597476324643321434141318097001618753642353439635559023106718384672527374838972441624197735459538660341038505160614455865693072960443862054743296712621112745124600940630945317641318611800470964028086490291135575874358964697477695001171617943529514306830989883659876884790967890874096839503857724644743628343912966639933303985553324787425235098661146394749551026709701406744615596120942987111732692371695190275473589025563730011665669882478991465796454478660624747491856687397806162967712434546251136626796210683945270373425087685281319272927023581613193609492615124186657701869014635022295548372981621642105269509029207119023689163291233903719973363633377738727054485306950089179610007202708823971633828387931351932620150447261030047791113933567439892961656476813860746501895516818598775330290033406230146672945323367255524320714478814298687596683145481921137315089611969374209840107463027322624694992702953875097160262551884443715148175196273608180535973110628939660201307644578206713831249978425850646532241055689265666244581014814675102041841849310805218397922129776223911100044136564960592089748639898294603889811324755510585350681103610597786485115963563818948033108170672580253406239747089233093835555704015345408151572661434757654068454376617806483926047670397175589833078163607048544851309995549498872394947286795658284793072212715992247734534392299029968080773828461790528461869663920414854390036549488617013960240578170261063538407029296082263812797368931251698600895592497780027862156389035887505337774852948690132817193075846542889259392170333508605875799362088147889610283226885263972662594130763081062079062555063192943734083423370989803135304444744150421390718748570159651626336099011076238528360548871222684764435768006029932295972106280495732089781155417311057499597964653571622660519679665982534664990922837001756914956257235004383665283884736536618750962717144922920621018411836446567815729019436956549735308002300483243298795035603123395747062655818076874239334811942077931242719982338929497123818317369325417196941778597302388053850622634751007412924852008520996760099548374724257163481685581576435043169292938685714017533648702719198714968028281885871858282601087639654735959862020096206306737265268758282998586967424445626567631456386321143161513799933310422086736426806957123222069650724211525884290272533125689316774944885203785106408344136005280816023216428080324875049537999864905445264085283129217140053615277371874300304005807955051729089402704623753670010243344299033500719488206518591039677688892633355342349897244381727089011323782851981191251655638127828548982460851417702328264438966643452133148988454123741497886925757089975165301333824980487105373604973460740802891205823919059553849501576523565783552919799795485997482936233261836341523302743861882248075205998635177355819011548232981692193586682934863969050415252187282826840609673753860983633020707192607938786546534640519492325394982614725633732854397410842686358224743931816026596749958867102923358778252225877656049216054861763307692407858528544370172723897262931679175566012550704893375718016983169526241554798197380437670946965821148502989794586349301036746288411005212565010871109461040294091665241017872937872099475852283544442352834073158948567358529958355191119255178538032000495687516511457923150367847162668535537070022452846920485132996253245643947236263587594870846229981404249058002205379386894057929084560148535665001033737185886910438540008403453528272785377106039759990630143925972902655456514631451240851562870676347127412760134663168436018044390042276891141559647357423754891899937847433568806565632888283402937523381972334572017817992759245520894382148792797433958741275195150540485527944519610236370615289750877497800000119439288606624060922376733999757835121024177559548324670040091850977610440463047685275310009418239178090598233353916407261262285419578958751896158662147132817662153145595458439350012595082033286824344653778047262913830308401926367770085300356621584882995384172355426237091821586363934529554315985598822387796419770374643606712863790187763159121256326897484232037594072817843783451676970099523512156267721623683375912506557875068712014484318026801485940621871710116470585176829205518817582020088614809214236712871176109031848540816417179755951516289083088512586539325784602100769817426202307944187936986235012308044397685054809562476471511715772612476547095666150779404412833224187346917938509201464785785784432142788979337252905839846224972019405749761908246225808764114532758254064587907409651831110537533516318916325444537793956617761984048316848177110582278583187301729111958868874967767102104422824613161814077843796938305012697283979641824294233988708683320384554521670546535726880444575105724105838934768024048932464333521691367014911119380398832287505834593008119909477436934139707188937244694714090034472393180045160723567728321030493602839977338818595384469960629795842740425069424291778418046635824143182565906736592688910432422351809317944079243899619087683066036755703463276860121822067152039683784988793110334556541716477322681178176357550927199620637953346477275008659865800759022134199924515662072679907516261434282832872347841353026068358954576982071120755995031892112547116220410104145063809489928764542986247455913731738721189416259287884735111527390569430941140018252594897004371249503464143697399196076540151099307379123508603520984932713882109216808416723791159500820926858817118572378523882904590157606105199193562099595125504520760273793499887559401554066212150794470086164776240109876310978821603864112276434500193643943286217847399560357652241933566344786114662766421374895580946421790581999927047876314087878969494997909554400782606097900965061285426117961446684105018497204404661759475786434425096462855268128123078034411341595258710924139050222689358225298384818155243251786228901241798293550536525588388708893428486824799033494235268983635589043094857744079610939712406162449218410115325948632826053239668942260597365012661476729007828272865301317625893709601737340157304284545547108618402504308623399676548269513034081250747048422439623347943617721670002949524832785167758323680722831778727847215174554958464471178745262364701665531759109722058781628385063501289194790524453558212533607471731954503413086321221314402921918719913299843802026132062061007886112776794217371194592367222511643438720539221392003726806753409669476997706806833036473412146818164034384731209767712513734832537717508842933947914561540416829821102018857802967898580103513769337241114700176928106340945472313296941546682359131134583771648504339005643309944699141531562817555301820118978946001612485591143940159857069810874151695761152898856938158442242649598851737244299762253895056781920272432531858674814849917933405253468076163612623187516044374690131481454660299920608396459099012666099161900934738349826470177262429937635169434229948541862220626068875120978035583954749977183506229759813487575904801373775453836341578591749836548661961441201787175728685363379800595012066379715011806677763170323915810980888341450783427752535411953809462390944086888505192247246751328600372467382679071444425503735818879974393505294758705327477688895248175865104116138564649232048140132918441272544494255528038728903321423328958088148652961529869912421620375629618022195866905796361018256820433268279573745187057454796635504047660249223727297025892002038021503472173940607552994722500898955723719626579970450538193115144205950671401731989317127260343067228169184248866423402002280459519202148969032793657175289105860781215613544994527730426312770946570096397086200033688471569479362460162588896915408206914667313527137872396515228670630345379812540215468957936036399254635358576119005099140305959705538849235990556506209962379337224541725270715737423180900801709138073164470634934648532255401774901755318802584427040774742952668245854231338285697102158193799977453953917619087099278300141368624477233091881289990519669923561114217614932868064314979592126207914178780131983166218337125682277856333439489461118571440450179492462037838480385082659753080927263324147473738908414097067446572495574083883096829694617664314947880996880732974443456135069353458777370003396793095680645245746932622517585047355926428125882560257151839022909854447857351452652924180132733712153124990903330502768014436646286419628269735608129429291468952461777310740852047455965349376740332777919586862602892988373192697612214255008466522539617006531031833761319171085148673211214643247389743360146604517034794196963215905345393510439241464413488985728772039131121814915423314130441030021523047409075665447452742172358398264901478774139377256096519062904808313308518997445168323849890486451209603838416358516694166115276939462253834035761221270437639313526634944259699282445765770255171467944210926392604508923365375813626421208285538045041926720989641064024066982457808589332296190554211307641367935431589068396347870037556350782118910579529763016402720043494758686089538512206227178583564831254814923098570754445069042437446129738530096549033494647788558018964038475426639867867084247109457803174328554911493087433451968780661050898647004338774483046222738516586849539797341423931806913813106909325971332487393999451363493516015535644463560068279252892145630597458393308609277321313081481748923348780014633232672113535070385119901371483389566493008338755378124750750699797988564100295886138535269150862780993963455642072849230347606807336458448828223344123967214792815959125019515838958571248609577515820981704943859705919742497403083326777702350090478445824686259504191482050294237498295907484954375234191546668347085908976060644973715082213801985161754997278306467423570701933526487207598467456122101735396060642552734018305630325095055528078269111340780650842858929080031089664122329918358321882058265646389230470905128474559158129911157419611060430373482661698405196445750165571145509467961818061250442635769784841296772676549884795007552100879570367726252861540783983225768837359403711813951141277006352828751927805817499180124459369119474223219659364301867619222139224419237074892512703678752761537063057017129820110865890069963683512405193820241719800218690747018247841407888154904184589871624234470442668802774737719084769061073237636690516936628334200747797735604558833859654760618312714343167470720926773943678437489409094425962728841886916051722931064918105685389130425356879007132482494236184614224270661420242584248483396738011133526786771213063881368908445403777490398904114600160755562620255953286374054398351560346417033754282528848608300846927051769544785397663715104480711980083410930551580905819944942326636011186322816367308436594619778028689542930873759360962001688632823310899832336434968380241137205924756855117408518916465514364822763277007162108586034545156802781445590284510599771198921555261005170421437364562167605600038296461564136777315308184163811663334066053441454246816270792235587387530718150564272072032777496353281505389593549714511587230311682266399238152817212930419939084893637227988817556315109524046182426768911530063203502284228874943055304451808055314112352098441023815654381930518060897204970016200107796393100373839272382864039371788761683767881215827646499473524444624229492889439561016488952539013709150123185259847488944679773703416932134128131114480561242317269098275410870647868169854694538959078464769787839126702862384073062694052001174144910872829863345979252462988673621729598474548766219844290363680026042492647768023963782497493192567462243903829749495333909050365320544650385024072363068300281127279365447127402854004834854312785771702262457800965312371825442833256355346562429159735111114358125716630719288485895492434073839035120342163622532868716573511360287825903390924888112157770222067403835610830646648449012618300162806418241162134249590353020527334477734859945378315285237693458041424007454539885954542589629946330395713946392924194431083494166329569931464640157848275436683278847095439039488381200157381219341413015153533388961664728972581080748516221622612788631496776142355512916693541871822766946884687248390648903584536847762588038014177088708619161703420043101133122561291126593648588650497857851125765369836759588896972997557386233880847470577711473359875818850346214490026236022156136393219876246992263562294170093632155950629213903950822820875874279182638338033661612013273583549317739733976667871644383552849051440857894289643270562901636428802092832607515354510691415905676529562587445854573879635726958354531526354209417699936234781958479487313486515652698256344038765707504915269757400682244328513390807115651082914522844032098980098938247549978420824668744133618457918560753727240344852618561072652439277031691371456010987634280234798854325114991966693886530260384056855904819956406900969127589147280476682103901603697240418111434957095441754331869826524310543406534462475640198181548397217541007640033823407960853027586386809562324654270410024637435728706152453799529913086946272214986575016280712824647703132232912085928346428122514104179073103773838132149208122461677670061908476332629794929147896608793375260864436305257555198153882563056053480384586836762283917443177132098934134846897383594220245618790822219478778776050936814519980648242186589376388587811930889517465699148932030297327126629971991252124320159714119257180883053492417679943337206979638742088838610268061636966920829725185319343358887990552425103828516409001086083312199772320291685602765768651342488423341117158577163509782729372224161916743555286476481792156236788164026768325329116827951421056466912012203573363280766800243316803770703020652671906937387547356141276646558857991622082780343659488689529316448081515713863315520433558741981862366343193705583894541562078611240657891891948097074783620797120990429786069066016426443779466553593702103538709419276862315253290401899060416735442429268725036904910155678704116765796489907094650252671039666776764713147758720581242003258542061223880963842629514145920481232394231027744102008921801064676258850119359300463938702665844739683574062254733428625988549526836645386060080246199390003882591926277982506288336766737109108863530818185229755665160515568856054937992459957078643854671163601927540233969542778504852167201841739742667920298436957833912767977299561485654458882348743658507172005534499385812274147724615038957823783309816728973902798686926192142635914609835887983628783613785342133736202851873170071284907721298458680340698777629340704589065765482057866206576636247064566880256414390038831514120863306530114689102670971507626840747333581103035009195739033715645138259861823301958710509266078557550848570449109855920039879877878619400512346388746994020850202813104799245983108384322823112899159307274892761678399984612066415506637761418218485717502659582095014878472822294769568338044545135773133729346020432210249180570150354127716295535844807569719930418091280521857663592926342127964907223193624171343357642766684687316563086159559563293598581156652399834993170549964967677352549615364389552526414284387136137512034944174705760767716460642950826074179989166749815149454360682469275283275164841284660639238418044343028170601994900510023786752116339508933028452221327433865288390771616536596886356830462804450758088490585295231295738117139169794926350920421792560446880690287980098093126405651859960133491713474142267857097597307666732120050831658517160965846235596955380331601883821633559120686628608194743767703925047787190731618217509152469415582128924427722521868557188929002479720221816786277516078116747566269250937187380505708881774645563122580670240607750845904330843649263075855403147274818707457879683029707397725789885271069955081726633480463506936672318807239803410386165173111819976594672498708623954022228061483936206510131811770234782716204274510722798690894024815781275182142130133358306301873700730814463765771911637392202855489390579625984444462395195428623780986682580828540523746957262325985416275934641646568833140739165858138124671805952942226985361682673928030754233318517680981719623215914590136558486480651793366020363967668484541773211901602014593630038186169632865581444292143051693285191665025096114961332815485403983525163125124357043201876023719032696795865421343507252454874247474870335813538952874992646858039023180781175311819635032483204288693228359427790385303179803075504977468398534281493210507736138832959806515129621499299989968725425400958409547999853009049065337601619766757980734110451025381309883960634239221248841742118710619669915673558306662172506915074689603113271339664255058846766546503090010783604226737439545648889706068468736902156929524153014090407025214679840402225235887713259948063029480665202501071211038438651309269007689600299893476421832528808971913542744394773064022717050946150450644103558241382862260309661674027460892796519283461009320389748633072448510720481156341148965510968577563290153146755074088420847980469884229987528302600221021887280946093335888808268783427955252488874381766898336148991028008896259086468351221780617216685897555403228591517472900453466704994801299228637730266169092408575774410168253770810651265876348860360108837099905438717916848800976792888391132036754966170431102964320416192510713080611275201095019201495429745951910644459939524467770520665965703408593325253358539984469926748252593501785847259435729367355654991361410825768702302898138297608000134563139194664378509376883225583882180390143189826043667343555913102339152586890698731018204610592958553721940099228364574683709822029680478990368559850524168536053196774368753739390112418571178380137422139568859048655092552526531211304408683797261639123172993216659734070306594403106890702737797617905892346892337245836841568089469924734949256375880960532231717609247497911844241762554884882911896887967350905618053058914735068518120659461001136042520213575891974278119494501639881194456376850205532297972128008435574106723887520601012866419180361668530912109111852975353464754112975069448727326174933967904598185004196496867127881813905684854649043002465706507224830118226394923134608675561730243419271195614124349536516826648066457789991651034983958821111546409778910236520797499512624519646655423474789989274434360321534475284509372282208508023454407432065844324371989141439279799643790929906478417644671243497320220857433445295291590598357094797563209921209548259572113611108706005640871185159949281438528335320611842218021829082440546827878220823081070027216473018354300671297506409774554585198635764958422448989272363516870358230100235204432377188163053556525541831716213617164380353642121985003852789100090390186121481016466630000582973074076974486143465750276035843983265041110133775118805410704863199741820678344634192879987224133458215366688984336958669937595240884257058713612760565727045278876179133361978313299494963386889130146150733856576708742237105252256878397525746479657434939375385638009359686114453946723845763004988695165175755089130766267563422991128136006599776519276631456305110309592366385043489297636658987201653081109160472110267217176667710999518997768941874143194056119636104827921079362510882147935606856215703177275650954710314343509070506001316596482026599582538748846240427941030159600439387070240590753331171093285325151616890785940423371823146688892323606150767845729246969494427409380133327307264770186233727189090732978477443624540025791601555323783409303691494616168444864477766790869379526934395066402558605079067865622045179765933650500323628081712237234490265877833126769868754607184737561347617589997830324246612808371848899269657019123501589789749675224001997680291565993825390066411516330079918442415085700054265643328805019782195550974899346078232418577959483669659727552336700963385222162472362453776155443989387964888223496995213348697297902088711372541465817958620910570105526748776436168101524573380920883696208144309255736652955178562660538078202496182489936414370507252583407456128051275214693960181221801354826402573664567547999172169781350726819462587280475392857273003161704991012880420290013449968585964030149477811863638695587624942163283627002260211423517093723930867566493825426108959130027097997640607979221697734426942362939942480619257008984538996941681636632165343806153026252878602440538575713570484378313231193801463411367923664762350519091846186219169677345851155668175113552464076956508246892577121387742667055636474091782404089199253791276587793826118414180640692447559431192524663879440704480134515087871015967916471742971435522050114706141949404989847284879117571223782875213863744764553305046634784975926024714830603154559178863348958008066985511742182130085588890364407909672938921501834863894505012094699650444656250995473878792496498151812528009241030743673242342633683657708998382367478631275789160200315485997239157029151712045156232206477868884792997346440888036578094812688505806754343818436927073237383276170101387395758817650029659003505426340520664265358904228773975814564029804920171814406954979101986982060211066798458358297945087971226186556419032475300016605768968858271417882774159684182883115519253496326223467047279438956917209448493658427211100530998866834928781183822619707801376700408102505213009951573869543503926357667490983224635353006982430659503933632191317117446927541142771426349333783813321799967087116063501518765162326021529316999328259914368323529909770233434785886671642917797715945733484814271630841351783576330682639369316781901636241640678725730488653487068299329005833640576984708228152984534527778377625684962480942892808347987181599720033938568321346521500794835871397272455663480052494346628517372610121599649692002797460283499473223317334693642720162893134872905869202480840776718361258285096856133269716076300964559287000825434354820183945220709727789491548685207734021560494723612813804538675622684829623883621642099937495870384688697625305053698145818430696640342511651019235967378522926425139384383559480746702244164135944484470919535259400737115871613759286857280464119666228618132230465251749687838863847166601916745016792253821744808293485712151098569545854930267443863636845074832778625827944144409889082233090959805096691184705355832314033580006405601189915052942544221098473197957220587997395534288207686484965952930283934673640228216655551843997002585976222168417455422167174191348942462959548892905178967936276360719972160722197950033289286943432373530755895023766969572465321939153930230400217470797085244090582580397209590391433330513496617724266510636498707711363323974217844929994936848263775463524064864568682881898227229294984471448124032571432629513485120935868238405062792486312246723263861913484668897412681623673832435953024879341820495270897285937523636330134518034969096276728407049837685837407080094206587145077309884818531876708904283929773131300599814161163446712352098712393822244558508738585465522630827441770089164919043316848883793111485050217059346060015719380013907392126944702287355891430841376259131536366123344219112952620745941564102359920245902389983756869119002428539206151380952992109798388663192296057564063052218458755954883094000678311341138360201079817838443302124692828718602607683480390554624486020034711430849822204723637855184683750084271924373109703062766315404661964253576047884670264749857828736586477236151895515856614159305606638841261049729292976620281710786162053802432218185264065363152153742573593849111754807806505375112737404101950432539475945114105960226235086608476159034346000211880833861879054501767604845847959184991676643715248575166500338667110827021649362990831155481031584210741961735481442789448140301835501667268191575230609639497082755850541500905939912248790212184683425044842611498909577064210033912959788229517054903112283084675459203494567186133471298699923012396646111071730240731523356174836940486168549518896729218082235280329026299974311509076546874058341391058716181001454874964695655159527484378495303809329642598469356038396084971338785536463555594165444891446425808231335400980389243041973287426555862583124407854218607144846584297079359871608081243424871682265560098120595682268622074888351317745711637443324263426186108508795147502007699093016056620833562618383739182724306485332174882528174259768470114404871704204772883333977010688054213106731749995458827207232563441600846109013752192623053606531147446364428418897824678575863206228797218518584040557245236998370519760667656387631442261817981165029005137030059595593413740268877009790582729412779094425051807104438133861355455291969042080513889963720592408156324173121531444065335528494515392393173210741279067508646348280609546112946589804075532075001740988127524428228481997126575096957259165254534159570905930893841145001762173847043033617572622720373741086109541328660886788214976913011263231726749091474467488457431104082293275886027257332579114424424137868563642768390887466996696154198474164020121814035983796919498238324684566589918743990681577350457553184086594344112422076164892943619463737429983250016281073831273317901333824865152063200126633372769947224662879705977615007155816497321413461523502782616375674140991287077522402505355002805344572673623437214569222881115117935729011983716144866496360622962172889275404429405982808973478481634722071327792125515996056268917033361159042587673270500265581459921136929458408077157866799593417892580878264805845968633071591533189262041412817014368804725882498027894211748216845837387321333358061184512482465792663309963795245205575498828475200625692621282820321181848930786287120093789764656988709846143896401058743282916869511495116362223268484619265664536710432634042759209144380282483355910954212026155752779237700138604977037273401756870580815543677779900469772051910066802085533214076125815183588075996491315349717631061473518206554859567158923873160266985253021422960144162142137319697350219934643874284155468188457221220398817405880247075433971784966946257616690752297089053012993331266813645758934153095788181424156278772300661633562509107033552000652568529686811707570994352401988252463756114024150603535059612291019240796104771700190389020177801003189903736973144485660756476029052404870722352400593544886250706663391956372990724342716447473899442798402681164801087036026705278728877718505697523698521040372374973972648714049433574348220249370603548101162667487939175494670264389149045378639858171468684540988750263712036289023476850755697239941547462552637133014438538123203817788284650714195172809143059554303363242959021406630165160704100894070057187433213531300765347259980912074798817103565024383378911265402247453564060253738409162367554678222899611410917011827339197366411796490253302982845631800176731616825828754117893667557337974634422946080317677168349787104583049646817113762068348946513350488717452372054979789606140082381526113254296328036097638314554038640125048706500172390205039754017450113539898999484456685423264273037700922821201415762644691097600491309454133386299660568537389869086720331464981309889766828806786063593613549783161754402062198802186590996590133391226889089241939960149538054701869964268170894733033859130317450021499645456127370063509306243854460295734557699333051995403603554660886062404853995140845931508999768021631776282108622441451818955007800701625382307674128313611763178334946835130440863051355427618212812288524786164132518413127500350320920852107024539597019678550509370434698474623255135003316791404784018180657933525423688976814520317034855924364463362605893561925773143889605184318429897428914370064626414109641622580257479369102115606781222389098336545121762295661097697308413029539215851021814764625629292572318861071047108373835098133794101478124076543850924484474980224637334372806203561686922084433468166940000113601763572992062934558699728624094266364325101616964367050499540685031994687146302347960436169288000008270880202474602165809526613494294721878476315353209174091486729820553651001738363499312472887509081502799321438409711011349760181896544928079717943337789352215680989809772894427111199779113782317541403456104206328760683955659201939652948723177475331776618894820751651025794187797724857043003814968527920203824204995949080587974772101943286609317149514945797422650319399617069781336195762802806502818629939768380353874969024149916509452918240907172593688424646976742566797263562743154932503140080244542355760977444655348375336171887958176433285780388344063199872303884610098595340613869439601297653818813225416044919440259400498225136272821425260732025796336035097972869755496243588867772507752955021128065927320689958189571929332233099066035947852498006541586706860054022688321931248945281769321513034209702721211088334332814407109466479460382451615666404476120322440516769074444824438867373640811094257358937813439935424082494556642728648712125265041067512306334736167202476963143293246540823695398085161683515586624485448842917786978017294077331828999372723905917243567734064331555099200912973191761097298314513784998880349779414690234430101521671442507144690435340342885389090093459609017069995313975158390336314494991613349066114705514822792308704968092741283392217706725435197091566992369888736190751837641682388619205260355311950465765224942933324223656737891227731168817594954077984879480622192500535923399272457208515894257799188404831362037954498260378683883016467193208182870757280376271644690222221218464763475963592967262194548638859498870528589532486227813938729938239290280529682833958280599517813637590409324203269747233312060391219317414273713271575250920202025585993775733986441594478476612504234413914528628950460681397907221515722806286457285681943102284528187960648793306642440478668469712300346949644529666819935743023991098857691863104639079196192966770748559866501212349174387884256129733261317555327985255206415724740582095224779551362174128011058019746967666024522895036867188300546536756563493460916953368277505479257281004282184329767471676263389117724800845792416520244203389203602659267440664608038167860982274533150663247786348987010737116778371887260566728828254040915375598737121771405814189884925118964944225474550165222572900370419395105272515520673731860762189819325312997344258800955658085878687500847354116489017948356973214079935229326274025135073081869928135786715897683848745586643004980163157903913602774197218084674590513521583422467280850369751128709971376103756115549303701151291805150066176195132552856789016519941532777486121795705333022230515085553693138997354443210238619730728833143125087015209737891296864415631896369788523088677383599635488791014735169521568535872662556143856663013398879852715355170125620228381053777494572980003769896035301915798099598584938983263322624936407442677479673108609203586838087903058242397295967208425762437843524837250727165765213292509227391731614052052270834398054524210884061066291703352244330784570087802986150532847941721688469485343917234515034132311506778435415100567078099944265846529509420899723160700193301425857200423033781150035311829798385467125436474694673673331151470463353867891434643224069343128283733646548126556589428410634671975485571838143884194618242221023745614590731453511562652264007694326612720588905560378415469093174288247209404783364840997669220610338896127383733427985736568802992749316939254412237368763593606330753979053022884960442606247490973096360824669943507483325678915494553315083068866727949422592102304149174345448305318313412676904081245422061917776394242945312572571120255968996793209747268943298877502264376976061961864783294793952494952301213971612888765371329262803568139619562502507379615150669132391077346331491585857808679316608083500130620011758105276041847319322022373833481757234103918308417966983759006075720522589083274954682197077364488630844603701356720425683294902845215820306022598203029413629143442097448427263172192552500022648204643638712638264717794314689590564897836606667763499174003882191085077877803287815412648089622042046530425965087366668142207139039280427392903167244612125107511935854624804451330891720345755647549818052641107539019105169332842559693495271464011474368393688330319024308081385821629600913632368107532463122923919519210057431828163080003040499594680930057463188679434579418181255671273428522071250035424103918003321335587674638748117766520592695476825582903070539835159105179851954684656796756965249336091317752791762092356844629259553825179154164244174439439500310491495848132916127013662649736153598363298177604734561715159167840231302662362918626761746199459762634795234855058337587021127329102880546178946077450807978617869991642971683576137159635444080458785025340475325954754610002392139571099751097619041849366625321500046080906682910622625239069217076118753955431418560176365149442051695949948244897446658188113588270752378538149824470461892328164234592925706975351054538636286790903715151342423101472387418091913991161613543366162623815280368563680107590338611296844367967854705995939819489921295749408106316109113712714684306478172058843478757170478029572305439780458086624134046596117989693211670848847361909035396141391623707835953075212445837016741215356131437050800798494544101668100502139105121006170839953059389011548441158861977072491003375881355790721486869695398023083246932230270394000820822017694586208925795836404017389511626644394554692463339748372920775534119614664990733814444280087359200600500770802293087421107250382767707961391710866174066811768026968628402219541623813303442831672804681655915317431919819126665512513437326452242216660546277325193054362975287723906938356561134009107100231372760338976593506111153476494711649716518064202337797687342132959967612452793244488869391719465188580222117672715119247684025605299171944510525345018259555825307589372162717707033805034823315878073014352619389564863731487175001452154932380299231004145739947184594942502512372447541737168629198384812952998804115195396807547831761024813968231974648104460660981902697155749684647933493547024229144654139332525389308189565905033993304091956826057953734775531317135362010483224140556895598138880834071745075088865495611612687099433454403706990307652208165815849439309681490321369730800535130433153615017853870600612998395674073343856716071972272430102039929373085267270456931752948072390494016447825503259057918737189795961622027415481034232787523046829830258204583923822283685207087694201399563648767515915606066345639389170364071310158334875910457766535974990744679882583641144692777460030016255429809227398310303739365460704436281432832363373870839863096862434895875466056240510567330802213364974641371111473661460929308862922576847955726768320140411643971558865022886183749637848011385071654431710227853390403534722688631776579941397499087051718087526176261037179839255302333680907172245820144135901309800669899300601011833552587238806406761215258686087537445721961361729469565432282807445134745810550378850298589471670981544066553271995278166427722015892032023458209275025668712907843783385228253027663795334329002104609211823597514526754287630682871187848690331550550414981692747445875740978085559334402383508950342796011312945052873591088280626218880450650275259620516801943532387936351536231083639722841688995583723535267197825498354742522912972998726463970136943523914767425796712917007135933282835320937304436339872367253064587685446145522811481210833753923841028077719022795864047572198451746435799047077390669380203942773135995776573906925882078467292129772037201456008390463791510565539696198008120106081942907117546152721308951913437346953851568418574906098849891685297752435283668603085522076254370199817005762152083219352061752467088215969946101572602349278475723103580745810688294431164883577680492265300693707158389334684276278090608547873168329510702858595896983796545484280842538826120432520332793622303488930873074646272572159481577165138183985488334246746590742549344741608748062183096629781722349150554130710189288807145120595797901142905370102802409484435841765613490634859941788673667523898439587771268322920857917480842075520030230201935972352867135640199514484769417461863978748750933051164191027637514749196582139034188714954548221444857384532961943023494069820450386735159330714173602602222715219185482795490881048204074406646945456763668529791469425377267699064992986129480241840662983447055320814188495509051688199297358009693491603682751611643949515235493889916925719880309574679139917348203920621826733801902669104701651173162589967929292197630642402550805949145399368070794761839458499747585804714985050051170470502870811321262411169148570091953848466026329608352264673438893415355435393914572747857513683866287771404721796242474167241986918236866650443169001000967897347441464506775995646866159879335846339447640997511104792352840564793777168059778324337773525294857106715267588713320990246337879223885722916546674007004831000938113476097946840519606413124384634928001912316652502798541343143836051834927300676521164999114834520988298640400653874717426349908917312761802464367756068197520768521635932557085128768391361969246517990807666464263737690606501030964468833080871299694597031247503429880515046143129816646822216104041169081049738924296722589227185459690343347382751137915346316992887971845178416926368423813498124682881816048368543796173557005246179973705007470524798644868905852567262627357921825461923102705283609113089443952551498725255736618090122218945948222255269982988121466778065797426200563254713970807163534164385422644260501242970336575513851901739778514409351555693296489604608306014217406263266996053246304946037629169511808444262749902660502806434666791496487654068300688534989799441087057226305005191091256575022318174873075053858559297649024068957845260839646680009521324117587209083154047644708293532817525629975306210084397886617414913288377732582169369274089002956531202956750173219666353864203651831080418354491408488444953246588020267350809335405454296723882418664619097430580860962596243279718053257262798009119670887823891007737138784614584626130360400342681023458720852690422412146058258020174970181165082944580509462576290618078288705310617308324720280585688659515468933304286072018544996134365951538024930769574609306167287782129277897889859807441555514156529987582856576400407245357306576213352386569913097816298206844180614217337572914904764666052688912833068679944307188775930934692194316084544484486179574671391453665917081175218048229142576057837644749433543312946797975574686333849246082779700216650631722266133461609626895234323949929898348623835250812033398673546790389868157228653722241396984176739331214745138460326888259455193368078576944503315112991205690664449058421084237251681698395087016006562955601940042973440478640934757086211948234538778383745252005085712168910711140761796822451662950393339794155664863717023597185512303222937606873744941924720522838459592703009851155658933242910626082953170042844854265553209789304599428573839149134577302062462207206658872675743119575192995920314032733486095758070757716463399579599986962976021969178797616711089098376446859078177159880888660173018927750045827149889656328717567805158787795241685473665169020216356917587698345535149941638809417759767676214164922464389926539928349114276263950791694274906060564362207491868647165050766923299569312677860246681224400990468218154980540211544550663413166287252101262990857229749197633249678771571893100042986592595223343615491485211053500288017126410935129535767116271872761103707828471818854412754530960811284740189412148216515832561863637343858014952996368236123002803585954554703787302453285090243722481062487933709262507618722442677331096786661175266524524870282938592121587812205906782111433179335474534501231449485822269454565399366136148534740242927260987643933080776956226687839308194915601773449380065869646378349570777937896104738600818918445627779158967912065996586569000576180465722573983210754999076472041660025051955260855132309257977109117908873530588370829229524422300900164760843699864937074891105156437737526031742446261040615683101129447153059802719837432045241824995542868693951478813578769413893085484883691293811296481484514332273978196182323295765286462494093268436004847656981197592545134836482162378790189752886774427922504019681202556832298283837683538695416645853704182126574172118722104990734443489617523530592202111409193543004613337385713408503778764376116885428412974526001312117947521116525460273116376273618125455421693972789706718879788313592270199095091884903109719884811005628961071047286531179724839215182115704528082378758237836291052517978002977222472898734681052798882404091132139075939744796266686745412012137912088139716981110528403814033006284986937637794130801375966406323756185572553693944969499055709800153353298151193047485791833821241343704728627281039740314273475183012834156234016481676415628023412902068294618912823718435014930501873369841108772099385088295537958169652488797812461229587630207953776100674516876171119600420028553629571828095503483794863563494197594006023470613930185795914054751737331569235197923041541169854747409009891994140401396239744760199216301635477803302551685012209429669642563645802358840189888417874529163507195020841289722835123492274702090739312094400728198343550422137145902648043130542659201439337428917240318983482593991867152296954491125441916409585173434132790213767893954894108810398939747296120106538750500249677982167166852863010823366783157497265657082908688215618613738540526603790250448571932359073584348670718269592497865173227337531102839755271863044032270006890215835942615470367884985233225922141803069009302487533072119129285727866890851791986621029401615042858380508362491763610402466708719813863102047064194858363706315184999092898517780302293390711516800729612161077957952671696411107733571980249272392455853131834014129439414937331411489482949023819589409739592405901911679436609483288944140632983138253337761248167009599664890956508748469717952681102936307563832885273952274363405976195237911594977462798834220445023070185251918754482932616764520967870827056986783249856060736542675095751299045788989135517056942580309689347263139015554726133063025104931734733005783980934925647481718556004822484963899544391197285737759999159273018346793870407759009520998930471684712796334220988774417352271615468865722589394235319328959689721874499110421507340775269889901072808612858845537514796790839254233362289908865609142589273109446740525418422232042396284772156618895102402070374715649409665680138383038363734533825159705451761797113259223029115159795681933390572895040130258948890237400762105586718505874894162028158280226770231677432645633190652016769616945318910947968698568873154316412060393805765473687789506742927132851887132991791552983953224752308909948325328007141466393361573106662851441289098756513570039764422369404975658341150364036934907674691616871615719003941112150467283778285735356080367826766783171470117236916882379375916368353256513206574198167899425983556850759682145990180717913310554712354121994883014934792783019037381156869235669109655525110107240118129287297982628310923908071333095919284739865720760910133020468242357250683476239536443208321666883155318136781177547888287831057190851044371201828063823247403005071757341723239908490312355737154291958239640084684857194918105330854321717580217594257436524237020791802395581036356515879388056590748303042459466226831619331957159745838763042363716130320935308284726819326209585806278443307578161514343750111031458022884756525410041950850942639852368614573146870595393585978561192602922848364771953676956276277266118775712497168197259041123509828466975689668398970243243441915468407451217339101269817409877091586088408568532699255839548185970737156049756030295895134541067075552723594300361365740167703553331736950456134422906179714907791213143536781638946309596120006051931792089825189470256263130919559787494711196647631462669642860546926800593798439183199142064423655930957285874302462229252531631301433927207751264561735328572584615428872224540484524201769911291687699783275254390655869236634918658676933186763913668728468785311033133712297818229567045515135661722670619630582473398385811296447550694558301386845360790148500406763864521813641812565129533192059166541768057238229636242542433803502620912728757826880564891962226006837927067464357540191810206858690956927170505829920992958921345262791043456699070170971139996879925754881848174622769815974082607407101336527337742878157843319056095175150378844626229202322021477263227517035489351349280569820830497786727259505989000684580245031255453109285003694131798354591783787232744091225639455941747100745335780195990369690766069941814143973769374435055338832225008433435583371842167857885932906915473574340559533315199346399628125807913439091854335060092973550207723504954017905447539403018505688163763295753972548930995816066941951921087443872376259626649296875238045656326037989990812297928125011655554115529279391796560506049965135257902792728302672079244497478381203710993910825811804174684018396674402319048107488810195483551189371563931145684370856920766442953564823660707506014863688203124299570270237068337619567606363514680285906697547974774646041837335428769692510170487025833578924017890175600335677301186914569896335175244233862293552975443357359397443367300857217770153060561899749827471783277318317413632555976306694888689150188903617074275038867209028280522977750167745021717415186829912423638515863691663327678215740692888122840419399182014958072499237970978867155772585360033550328871885390473565434624509439841891743743216232416868058285636373058771896732855920897633489636066287014485903659982953844698859368564077704790306820541585615400795710841908544004715806357840116043323538601947171250247987849309911108745168553142670381020498762034691572645297978864747103372146613867958891024822630017312365413673436512776134363375055586716408500228740277320116251698315837213494185324343072666902048149685433265392357950913815150442537023079122683346103480749832658998350759582291495619196487096799789550326754955298496106174216400894762609178173593174808111110179868097819682855199351754161118277715770715396952559291414868075319945459751258080477161539843744436787974951807727122852192919064598177176402164120240537412857396360571618691799065078884392192719241313204632532260487167899302940696800411588783959990056937060191401432202615945214367623816971695520778488261429785833625900952946599366509450981430856590456649751693557226578001877417067830477198111618838321294294530497500192972448614406369705273262725959807784401497893229029687295353932159958670664660821448271272317985051245853697492226431508864471623933101757108437561681484567745811907890047054892330569258781434663092160329152470478986933582665937444811062263311412919817573288250860310618341849516315419796201490729382738034208346337198541903012896250576140441297713697284830803594508266192183393472019676263924238778937532810224502379463313306372593136227105251422967328723704086435829592125216926907117968804867353857586089460945969453537109676184998376376516594532118923340418735463961433682700033186646786408290184126951650919354743740734071706298352476825206967358287549468702694709210689561852838336795233825165124466923944941110233840446137693626649382346194841938932632289324962862567798597263920109254801021588246581029173945569879527944540117795104988132915549516642248866662197017120754890988432830333826560358723779973072944564433567859576103786419485236405620125636498228284571998739112747109281388649831934637768424409741805633398420508125293303538076599776652885212207274400006034981402373038604007727753689376969670945319574643682771934010399999205427412549402832555592027976131412217864519920162214660464908520197031411415047668901231896603737138333575590969000300954601832933805547177726614885506026297068994763746852756698419670337589837529448715161791947223287700075559424514066330410646579591226639943559789657360685573204151169892001791217632177250879773181205584034594268057564064673582145312380224940964039501024676075085070224789258557412635831179262241790829481467611523458324902195676361064958464541794166918937967416632711302182836916665134904993149393448112311338236686632409280422067415728791237995020121094914480861712267006640774041033675445004449485620978391534981127102591459374892863559172941582371058120637670999672032988337183508694821792577137625086966248480067785009392456025172963808609161913158525896641613273861428546786995391063043143023665026840303062185559982525230756107318232650910246477480507289095960883058566249050679124099191291519914005536636781423857609956695022902489137525558770933287504003501507602875248308789188217469953266768358256208492751592805144759655233422257014406070480453496890871181706086065504228628833313084964833389461273075908870255673617649920340717451366733691628289464522296344199089475747014086067991640799881037948062829858544460260950667380524240357460472185078720894858440192567191506135321457064293142402630070324729275411973743337295017360539740274378615274270446468310477984690908501836715192333028483457765320969674090943643743333246642991453616078123949730084552883797204375570361295075123050025712903880643617106178274384201886753377747959217164533596172715812191917856639834018503905203625641609108004868954393373039084579489728510289040858557559536325119236554983353079137034892980760951197443955576535316442280479087890197606635973907776885702884309778272239259084333353705056952395389036980545361997905812802583475387347400619453438135951614133628264750004769410437965779649470482285445916648448333275282413233734853728858376271529857742026114913875011573012542869213794103276373518239608367388724169101021816768216550089815760487212495916884733219079920562939188709551956848871031118167190582601342148491816366382122537044104409478286348156589984950778944306682025544829289218176212737891025234189164131796041491611455540921560830963651072341056055640852427977013440118734624897850871761074485492164620899991967647350609391563584737584096356758659415408119446348545955567730624197822174659405607597151654221565253283716890006168687901161728404366786108127376402706624717338181151792748828318624532291986482534929932596627875587438239779615079678852635154743159340337652278358260982051617434629171512635740899703354533647604215858170754242189041850422534304873354273868435186934021319648398395292032666924958463299299680062792330660687190583370045456707391044922993875535344218630841837112435937076332071770710578426361391566190482071005662432317960826826203238844841943221609117968253751996336096094201380186978984465201823042014408232233173058549282341831080316855500047149816208669904901826988443086777300142357988602504894814426506189684599484248724000546360730746689512986604536260588019629132427761327933315056723099344755440539711473969022393838970134657364181931467773847380457381109252593456166827378959176349215421718239806358920936873114966322987592392847209875427283041832191993463439521805820532555843799793055314613442512095803403115954843151056544721522676737502833760100105677773760003280544815159324073369338115019648961613390382438945990970885345952661174581822878026696126415258656553733755642168712643728045904059786377450954988246330538270917074385443461767396645452304708021689124013762349065977895603448438778931823248605175612597841801533880009085358886909620259337428097539026904049540804277536945594333638426883369188476362931201125679560300824748401830109284842276246629416884652995673635862664530202909164482400277113069675588096517857027962761792160184779106029950003342387391655869800946655897573938741332250695274844998328414504778420699760472033073597697330298636634245559967791859363817898822727749771186830118139579921017870524714478215600033823858382805909214819248330002302392820403260332937769324110523483948431449404687462322854516538224651368264584759845954525588135672573949241782436895842191755873772745167721715785014392717244313784134485999263558131805168345789955423398338658053421446858385218602095496200874759258809621026675770822840778834500511587266579441295984765234984707397962607814304192066656126643211821958168931244203522670581493182741186122247050813387209827191520098492817490368247328507203411457251880448373292172728440360371631395810933846120901206532960680930400858417260503498149729601699273475076644381723210333950015219068126863369018240189346155407961819685188084642557308641688284540882944422341158722585453973367876762620216580619228996420700732099914417065094754047693895913659940705195829662080887561178178461847003587046671925114282443902760491396631757783025319341905472617735463224014243820579460607178701217725446183775795812159368161141381238531351847546786405563870446972140217384713633500558708891132099639042390748556648568296883569028003020788059914118838116273422701665156139874108504086715872117019655132174906301241894273676335057158664460835539169397539434275631991624341210197976521259832848827931194803050942512276865992603566871555596148028558446247210067382437350617317677685897999102939733433426268406614437781607912487795815097880252306037661971921818083264778646511226371560929809111089554238331549584986946125128630844497762565775395273284079577047179951911895405554707017812766847249464021988076872129293214344040459221624287341647635250729215778033617040812278092908659273907731375848208760712132299845434363646808841312634234900187269103649722024905039704424837267912250014552423892712990761728682878298230319022791926592985647894286570907938776945906236296600109150018130804224248566041080335702333759458707924386085430068398492647751579134295069622571082806927748973287682488385925596319098220472972129797164061443330374394148149867223348267448912578779930708869472251163117898921356005792726016091717061916052696491087573666841425805180646546448368367355268260502504863697364170239090837431299103318153117172636318880328781285656324079893221017432656530983031044257955239076073750486172527562029155522057750715457437028687922053584642955203749962285195496593451222411807778071200161672737513312671012578173401642317368139274106737098735529455477670365301368961726949276231031059091088814995432115914598887969686574318789645628933355718482423203714077790101805835524277019851065161894480053262669609354283200894272632097354545595476976631924068373210100056975911903898953295632145662697248163204507155568813146374475162422707457915409783470026437909588314881456840358477265415884152206524963401445199989274978930098772425502680569456851456544054582681600409397615315842775211747997625065320699511542484706794100717590734506870577637768582986479651127968134820528185236543946435308916182143830817738767186282180939914322195605432644366396250364377351217482593251966496050620813266370840348334021860665758953734879330730791544961789831815079675739640392853809248265675074215640294670514793765252375966357976347240606424412751258834812224468353998720507687626745159579517584674493007654341135278186343428875126642809210791703625333318393052981502374640433893975722054706190130086428761177701723450860164964311181324237629926692095706758314209398819789429590285991031546941572252160228915438188241185880731772083433907336564656879692799386598575761402501331238971819996267381813103560687321019930851197771276326691567601815808510359278630361042211054735969574195583227759865389450239214672635013913984718343639077413818718339518592597110235058031257013102680981624570888874459391095753456931191340408129157989617521061913079530174258621763637735505198189935944619497476924034958245810782673232127331827180181831941312649475131670679038023432879625487994499626609238335114518178150888503483951661019663291986414245015599788645369476177916281362759571353683345575756140480562488185875065440034127994340565582619958995525082547574544059688694754292801524392822788257537492031799741583189569551776168222826100013262716767622513679566505076728744724635166943392100426519677674421501765502272724233813912397499471610698636143478595472898555666735660319317108310617825359920633685394540448977835351257100454867889683950092492699386183060578196971451247693127744490673585193777657391063894622894036551389064411030639118462419402228159689125689875016771225391492692459309096364674384607659025604873006910687759975327041752946759928387984190980707350469035858631788421058157168442546303609793952728534612579915723571162427733928292313937001718028753345142277172963866424098258320963594899950532791562883202171157105041710196873756731760706691082971023483283583334487745529237600090144062467983757771785534793322562798323983884689186584950976909815115417560360432126894665540874706341609699426546700285880131010454659007495085297274906792923665870379919159551758789307743336854330182720995283181028722976527355848080058974336064395072674560338714519142604665286011335658552252397651484693010558399687164958401621519025252201240305470985742713136018531497278869553734488878047349859836113896561601956854762075436558188293172297032077116072416012130474258945820438298194349763172836050989248291955697804197540686657636659593931927628047586236236888373318807205457374727920707391351475956276879022784651380882440981763568431726079861509920805044178297303858060124037677768179796484807105099140195961489967920134556173700994587517621235577101530735919192382818732071384535473898029086416090754424583473651783404193188992772130491127404451897689368873453175780623474863603464441793374809936597881737921865757220426008537037963161710648656557575542470722878952991831383930095999787986125201122593056444968279561774167369599133723427168010581162097129255441942126599456773200631457575297372803705619953664126596104813974210197056118561220520584654380819517784117671938058042825161525247469844223752671465598523817462967525368727421969232877153503350138696564823313849525838192984385777526445931134929971572040164163943794997756507098395158738455394095737235930016239662343546953933523584002101005693625027311924469998728677573970958419110825506381388199615485735364731028805588280353302967411856700288553753697123973346019764781110935728490301027856500874726492309362641532797770154265700133001304499223272186798587289484616081681908755284649390143547715506922784411780249628828905136962639477873997665712650106602468478014704867844642764043484183422073134301663091885552835686463165573870374163837004062818439078534510529365035146299834180483598002955082697343174891249168401913912791539559558756114216535705446827184888752129314076832140933353374014177390855039716744475720295976385764760657345887923333704467584361050847286145910673809953454826774949225773630701657981091832798440352204716538484756110118628640625103474310917881152170001043899174221497584901467525920909122307515815192981381840077269983336083525009577892528370370439975458158791877221466341305007387745566335313647301963823840900533810874426648906900244177830870544403205722849922359393509579519703076719586272421453130137806608679258294830855258756337854043381732684308460284300460511821853901650103275049466397082397999616650697314669124529090950406253311793837912043943963262170766205547224771732096765860195844266517343399154287405144919475269280644966714367307127023960009574275358401399858599432297315206431441940485613344936198047300170254175682639286745360819415848742656029604403538654677878783790667716788082403956425207276528485018568736903651977153991945044349752557598573884806354439972659051635857182662589278837061435941056037281492448748195938090718405073945443392390710247370611431340141764943930088436428784763810747781900530285119995996841379415708602432835847248618538122960913423496576499811896733625015929118019658311482966315945370595416005899214814570831945237412578997224802682288231516248592355449915542191703153818092449527404167852196929430645522744294230287499932873012039520790121013542545462791930394633202957545630571578231872679160079779212576399263866924145689475319598459250146106591319678102627095266578011969490047087979706525062989192181731591092584917245642606075843083606926861591262081746394653601541946545164662818238720319951192708253098816594292670745280792172151559614842839909309158070036605496522226829820005465331151952072231119595442358644869609127880802338987721307038809294684180833841137675967298580627905781229688877899592017128589197550027181159632172836068027468022801831116329825110233905624261036603449449696456384026468208751539270669621333686027271112938354405457789615635928600175989485568237704236941413056721947192669736241457216399716698293652108272729495886250418849286296934815104133868202638677848506739888020313339190974299998546860582322092526533047773543522712207403185596136173720686906958108931409973021846417298644299792320963157987584984304333457627845177151791616869331790403625992651047136622300433075584551511810517893363390435478276669237031025011968509628380053064789491293677249243214060678673671299901802700102328891031451243958876259170160258374142425176078470814827263831007926147398170993859067124483321030163429856273900303635096022979047095784056842310037810974337468761372912227426986656981416459760040317271391768093939274428569145427581869092449236684593679207617946998757713604956725075994044981198400277596171811888521514601891830191589939162449816783938741807598194027313999454949737632773765383166443609961720964389690276450067818033551197459859419981464970664418910509411999363364605174484852376221750229403307173251998218239026585124988719270069760279253948416244452635967996427559924687024502699793408322543591813289258507032671404297976053576302516451289215984649127024758261774522116655125711294252123260486562089599981440316130601190482454007888814122260989240817597535165473811783516367985416044173132710828676064218092868067364860126084601914924506544509690150487973903856919985274977468476807681753716619267895506282256509899019318200500276917490563905506899932009373767723093077356025057474415849238472495624884315165804539998939670695451157928649901052890439102697989708862925708729614759917173280845150903720724881994176727137831546463118203402248592804221410915437745808934037456589183879356207103095695912412455438221105141751809206518403062452809368968764962769836790313157477675510036143789433989113487873389196305854599910304226863856988535098090000146934099631697263878777359284568874682298526207036670104978247517157162351370372627885747559688832551330353654865195690805194449457483295978344141008228226751580015344548507248994328481198780148278053092738034487442014217486998661677930595907472177891758074665392313893855883901470365938867003625322484787181508904071661382264402438197578189598312199185727104432905192449069248911347320154833479680460067568208378254022450341727942132211341991237746446571964381417450238962879683495606917573386341620618673884837706633388170652902255294015032173384737269805993566142607913396835604108381154360086774539229757873369879421198213531959249031069465341554371894687125451038792216482242860380861464202199469023472924489497584792166052081754913423084754053949987847715061409779647680654235425656615598144948127837772712222929272468068534430798040864371459184752398426608370942320060067140224659409723134691160659234302531717089508103754337114531628338986726715312926269507541695696125903054817687867863255745577020649935160807938385506104105125243196793186503313240255167476715507773419523382630748050246130613733037382916945048676065719918849769301902856949790970148341153764546657394818612920351715802885463853753919167604087634370127992775124108375919917776331283495239524950285686493909204335472888337658854690987641959423779013924499070397940332743364467965339837966072832426319850822770772706699137354286186451400804379637286073839919987743139581202528809679638780548152086571650154195901257469747048161859972676323146632046448767317603580570015514659735481626889745047395466463795366605814554564374327414083329343692770384091983922567597080015785240090445151837824059597363534909878967826826670967282913999031481546656441634614990932321358415855237795306935675702522422662947074656512948889131115891528135658161638710554982929710610566995437695554484346908707687964771404416599894190175250736165814470784022830006607748814606505808573047532847527327219895446073344237721107496600376633076416664078764425158998470460331889234620484130950582120305505324289649681092216178218038515275489586221199080663991044414882293006179347972329142017622280441489715843382881115441577391029942097720654152062698904276168151446113301247700429503539177293136350434979342515259334058441751125740665332938052955311896476061522598228300427946176621346810107745551105361472969395277098644671521418529696316110337915419709539336891036292544603464309317694426137707128146680629663697724518250811680353736526840953709371944279578524172107955676824487880476613159773706807280577142443817799575404160783736788344014812335182663233957603233603271039451801935789165653082852332401220880326162842970052917849158276348995381705972286489146120384520056148959088410892051075832512398806004689332200698687277662303546597972961803782465129256605807153990627481574370209732485609865957348121908253793192185469533597070563797278101113686163589394596022182140881749864080685959902698561491761197832226458389568176843985684747137080968869524420863270268657551999532197775787379973906089545066492341249368575465414469996041298041720298560205210893961360667236200565206249578974856102325444152162052229886874753407260997849177877743514997966580545878310325903565184905365601909825622370794776914797150204154167923240932119874398873534961539041326427523279926969219640022122655783803902469510281562096654849008918890425674323694735206108799342957912117322397921510912819165028295953624880209288218405194336868426047665575751744260485535958910046423425559986678579185099607394943804460575247342092770111859544780212610299045220123929242731849862843471960879580529486970116170773183878656876995622425909369531605973628713885129516256034711122434828820000981907103348429053541207308884359395418691993185122358794187491974654978666553102251162217197406357063298423320173948131955255794267745720120342229246297270415999020290674864688902434404843234864998810854068837485741053488767314558538464667270842322816011364689791481571606581079872527672241859415269589764823784326956086870906514337129327859669456395558827409823540398417816482526487015439608564691316175686182247573353089806736722370189087364783569581806787443843791477557120611541892781279742206046306391186074102142725329321612092033345466954445348198434310745681630893132406378128744423504432154429743052263264302476056429007969420378193559795127726508381995299833834993410038153026748724153387178142545409453251478710265650396373488178736307443412490550271725642450759401395024435284292567575036497228126979211032739502319428569672317546489479097051680482502774467892637799393592495512894328874448858861329825128444419745194061578613904393878310381851919485877154354420224056013004797181802134824468993354144172171694922979458080956268402663059042270335231571255545253865362873663178948825773184889360763751810418084981228161117039492170445154775285973333292736811142075453543276540464336600273978781437742938038215059241699890391381814311268230781988375269061830996487262480211370852436258121891093869161933857651520581371326018989193956432129261072750302148721864957429501584163699571007281811395920979046620028425646068609192910997701963676724283899999370253007861373183389752194727716620665429020032095606125958253956113191746686960258036125957893512463456952043389546622723792198117044391705425064943436858484896612847512968764808556116097305734135867003707208302073416589718643271301920352284211171258555592658067286910814636435898026758495070115880580293077140025230029853107756527897138775646699370988735098262602624257923677459275699994008778233762927748977470531474259329733188121799797865638659760532561218451342199505624749871219141054160968182591868945600259940844543952126795378846041702287901670358537566862278194408898145155042363366669677596192523168962700947846593253601139567641040762045974468767120845355216104472014673648136588014248082353465338251962830714792358528268890270476614964214328561664553427986610491085661846730338289536972984486916269246657907667216749220115424755604405882436599408180467614448450894059611212531032267886241601192034506065236776563741711666354397402624515015334193979819466277878643875372739991366259246593882620937886120612844647494955787920706246090858076922918917448135999877194383445245447503417258508775106853276971165113255824228002128742282998994512801215554446368431282884767021370842689811851934583969402893572062619797653804905421684388656979215029379672521960702808794742127961596256568943706208905628165851735161127264324381843648379317423134604722366119994098495557867762090402118023160124801582078659029033176504822000533664873150288883091950139390321000700664943755721300976728538795953638521659150521424600008863362460195697885803628022389000983760880929290947775539684957513842492566784793454580570921531755347812725669430042391553390029018593530142604552719206736246326931621598075710706372247596126422271875782361358235190664927266938422957662275708422388476730760906710868906624978583343176902945480620788913431636477342096252690544412189312461704151432377479504380526505766520896531765381165559402178248633731339006799357379281206816475044952526168308927600041972839603882615627345723165098443457283932950566380108508699475789001208759474625151399320783836762260411297235088833167700788884962723457493825387988754540023393320287480212645456381330120176861962827426399104170242364363940937284407252373372706952615565039902286209034998557538708094132519308703473930851590196526325006761394554036220932082501798366091435716678146812342583298740366192253260500485026072629562054742967872159938143674444713302580894523553843047734703643072286609416275678836914898074732354171766306275046390297862521991353652788977004281544961199597079207271488940591338542444238093955790927771103213985767669716517591120052796686805606162213756442757848870416904318475212298842692840139182878380149122615611761736438353772919648502032233488801625164382783678419251496702848810757509283608341563708383485503418495198010548023710490547364981074392275032894524869383701433334305539813473453828381274868783531035422085905039598598652087154447951253492576405981180899195435856573633179279590019791824857148173707307462914668668982180400026348946857972797157539593306631293715778043477849494078832535398849234895208522303567556844372054933242950754143286397451007517716097457066373068373387989680057649405903243944548198797594803139768216404889384038449719642128898330476289642069711341555820576188348249453506321638480321270784579057791755985798430287077606828608449004263131572633577003665467081365692183112367324075343236490683310934863059084696636146599478455911202515392488801060989222188557053987725775196142368091194490860426334693604930059138353829802976800850446477644516601072913347847327420418523389561623692180768653654747669523133220757989173333684376210345923986842408623309790566991674663068857709174891672575034502867193414721580087646599490005249282053700668736077007757899136598578015408826405869571296748880110280226360295105604451189851305129161673779821897846602779239919795395125613084778909231469493813892390570741282135459792030876964304907731480991469673618491423374755114760669372184577436315768172010944271912798504849011366738362864713410272594648156577261260837363597300176103906927419491746433739145408255572520797358707853345705647098477369484125311445661769974475075395629261463057699861417611717543322912548585290039454689801302533809237063361956947538841993167139640647035019394858323846382417127820146855540122006717731264995887596611681178171175970648000352594835146647568712953924931764071584864533999717012691939884577899274871873618734342779291045674319476557441685004357430655969614189037865545621092460485750619506640845843305322394553966310584931042867496335897049223975500565895557213782494589159998854071713149516246532857249540003199637979408161733678693122074666735787679370180182059324082632297334929449729826937411007536682689736991152208686050280119836053316875450036524508628612456462199146085873026740255414024904378407939395418843981487012126892233249107256203652779484029762387794840842699744101075137730762523165430874314205774518083370858377705921659659338964185481186506977153388293034788938900755672159934479558772947648147909990335066408710406411539411262272497409523098671100784484515625716785860339667714237047255788618784348122727951772037046825081773054525067840085071358570006217119920848855701016166161149247778026342705686304615836717854870260836305919148072861461707464105106896855216139295854489405674837358990799206157176383136605504475999820751682610356807232941256188824459090560895497564018184945139165102483054915062508659493486490582774817153138085726506509210210494592890357188678403347589369955395378682174494366553660679574088056762549035905521000025847467411592810093806333964525892392353189647272138674504993906340620191561368518473390156999541707048915703973509236310633305062133685540110097635294589390443381369886659406680059036098888720354950697627511972337926835606602712621648404014425085056467360298459885673512823838985695975296856336494537035846022882592355159832084037113975113786094225998706351333469327947159110857475713822930646360567562646682707268210735338231776581149603103819556659811040252339438638945518376519062922577467373430874470110504159036478600697791472591363351745168507209642854440018175991008841569193930858481955953069775595549917026170522405873394647660328333071812977259678068082905370072738644426582713015826878491614976402581073697046793449580823820085729564641834763813285107507641921830354972425782389267945981460654167923921364613440453077961416742153496176442894559798111655230398470306684971798510803386572432266757039041977878420092118837548514215606642111787506136076295499778563794938151746115362260816467635561420385514338342120681069053869726178258990409162185849888281215236807282801526603803035706554839293137514570524654472887646318919169477209410841712082800173803880344490164975160313880344751421127941965830246557019892328338163463563483290209444588793061621277305270104645184600877840485916482355214183416862546835845951370221129559656216136675532626107090281697324892113431252935546512706755307231593879936673704474817509843191769411997245453426157908312093514433535617780552485982965728510398037703829466966117074628305194227878280206630265777373436726788973719584970147719500462283110737940661810087209521388479915371181819684045258876789708306902240451373021191547046258683649075118353246085771532158269390783197132751664529220573405197908192258622770468091081401186016570389616593030720250897188223278967275669044204094770508461873074209168535998116487886136530758504209388058119694323046104092825429369970300072659583095792601753132600371699786080689398225644149735677302138024353320774828031712795227520318340266186033829095700524371322575756861916855864120530209043580545652412597010632410558508924507045140234341776100420089854000874630668023944783324148860072673717031108009143849917073348690439837129288956042367880732493590207990150370834760038960420763873472276597149821122849314324075420821441946136673026153591600168168382747444021688930056520079753942777814294526025001071477545316810568118275382898574492909338322462913888593931898281420208527009435731851992508291745818883289406841133119662098640990920835394545118509437379475613931401440194893870565093675654346189392824281562160444610422727134655328983031192537383104254565692272720056152728034107580727341554875780843990671391291352521151344056612239169492390677823643700277655763900087699154962495693030407951928319013576676680107632636027059708522613838467547788569859965073487428623875795541876266940428262569898089828089734979266757462144875188400603188526777161453350896541918293505510272510853264662678550292350487490686489568437995048439408792393818147201894804931943839270628984224893834781240281921293734135825817891454130980949340536062449084885532664816328731943776126852038433504961894593752849193545855375130330152594913259011367127805131105393965349970146164006055601570849565837133569385320751466505223708185403799964936689266685098740101285242947177893429337337834802937337154059896388644295736425389980268138930726747280987730452828310362857677900320090494882971891188895231317707783135784116699307853625055970085560312045902734353155740811073833498934205028143606306416334290937182711655913028898500376483894695065483470396507311419258566243994166188674205573777012420198619529858753770280366059062727137478988076310480613518341864093771433440987058450918706765462036151026184103652693292284045814737184778864174330264792410498775452993357043842364115685070640101744745842640528626059871496740641570254146077485869698667908228569113652735810802198246917827451156063311387261487013556829161383865000534593378587641370602309584498235082999802237960350104117364890888434631594603817710457782357656629513236918561301135932837189628917924761282303925344825984881977118239459269721958490589528443797295056937868814507407376560088377478916212875907289509888417378423719944662588839764691323526579854588172055870060102604379653338188314787906805984850639648881001457029351200543401316868140421399870111026565439025885158950023217313283723611859855422808569285624674630015601476670070039589553255641062136886141177012870952377137563279250234789215016127666041618116029449152853103913476103093297747545306246773951770241765973541625667157860949092666952214161639691186578537041318624882792216908373813645466508309210892734672631527921044262732255592838868147563521220055241864316781240593371927844287286202633193789421655587160162352536556160815402449083057108807800746558906320986442173817972478462435462473169911736425693663342409135639024844919914863707819166169447685025123728429228554179090738409402316784115313068667259272969985569417569184340719792253232254239814815539974869296662294271089827363940201781810221136058829490289889337602118845229169635211305105090824698412743364916231539597631067744136009631979786837959504298817885983018940392271351096116578884113402193887199994171129401587756943560844786551696626478207771173429708540328029045536559139928164922044365738256453809515968393159408554797309999539318521748481472861901880173315894433164242650442674297282019498438625966929287865568948134360957806291978572874434462667179944175651126837039500655370089157814199599978210050900135944933317291797424159600587012765243790451376956517604340731169836977703871706456458401916883412189222330269160663942307309267329734586256422555934548009743337608452121903577281629545187025967990547200043684824361479737370950516957883273070278412546152551425449434517485190849169098891613756035463543530829087251435928353334578829623409263634696547057095273400728213845049210863528023458028368428700827833169448927185029347442606013416764715505796816982134391128733602617876782505574048846136065605192892453186978613641340363271996705390821786296537180656839505525649641293320620946616218346038646724283780360899407341156207649251566662037613069237069817068762771258555241767321578931668866468254620441924183230593274776561846602058408994030821300245437117067991591465123598625607503736599301437163722258311902174885233066361746207310967724621136345149852696562972853554352427540953390208564133551921949498823312924925173362660972477190897592145036488772611950646731433356335558135757315249819380986365220513987075957047455258272276926297431370020501336141334226368744266705443949784626173025496594903310088528343001856910134830206434839082654093307789220514217180838313446528904804888914861607015445421559228397589754965438379147250442037574703236965562951572633581095958220853656232644077747983238102707266599392030352401979556932452346215074561290156722042633366505861204980318896033558523600221832690175069254252588269894320718136437445537859220884008380185454819527976889968091866727729812737961120814249589429704873240502544376329531150696492753878937220232173947448438382929548132624227185174586285348201595626280627962254265288861497097273235025861187238916688440695997651151829914252602108032436872066785929237844020153574249961160319740579276025719460452559722079732957546261192330082387048212324592723849607914303312677221946867416557952041026112529361131562819435705774325298307502972271269547453972697445218676232677814111434546053466317968258675323092303510132680908531891961309221681738490298304841864910865370145818239111643386697374021654720375588065392772189843559074498007266481592724201489549289805973684022326772789303723273473338284831422116741548537815291735563783333400836934118507469182551549727005190165314307967051518471442280679486291113218665424236110566066548566866406668600607934086308434032883675479001445174172765569182280454475542232534148511700495134620577856527009926578643498966447544043386803416497031221668886638056376327068662045582516942469066581208276335269580087638904477088242094470353422068017754434221420409773814828300522884058998182405185211904927906451840916771767330785465351115071885269330588123725374034493289287641324322554122913227180269326976481945249838467690882569773264191825665725148020774499172001363862467220064291453715654182577679855095078541099641836297351440224330313098402771008207721014438067297109316112343797424265267134377598905056045511290928271698239204242302029797907398056927509119202269400115356398874671249031395725156108191552631547184074964639275668570115811072574195139451012243193575824555246809310596252656435030237504903134289996347256551277589636138041976448919361260489413785693736611732988374184987111662637027774335013998793171144712109167539353702354330509637556548465777251759139999894175992249397471724879008089392923507563507455726388535112433323410512138541691642553862617185584865544301803641476585157857602806104038857643373224940880304405384433917914311165401555955623856276181855514472938734167498746883612211810803236434709919034487339265650681678461498649312346844557276373074111434839083111339956065098044681531899497141249064244254359327593341386754668508246985299264515605331259545956937304992251662768422364358674955106725598423791778240002935019043207699125066895905773591528639730672814148097378267634572547122531420056057120618599817574052038975824150621186097020463215934157490062686643672637096344867787062336579007433371117158534713867440777379163094529162293826381170105899947652581891998986495117945119246004113218352071096126807119148675947187973304052050202054494733577460372571680491049182191502660098456607625823604673941267687456219442302144918971119757824950016956848005658980220610653082405582062027469540658363643763413117773813841763713967032973429210628958973608357608694145985199119633611969212640259113183092352514900355364487139868022003091447587138167296754228965108858498899317519846677500449792283112284502796820109589190857938901909161423535706520361388843081155642636681519741633534190337643061717307299566048706013092804858977442769547005618018159560948008829878015276664803135845962801812180875588230651032233550352118740228276757683072333159100255195723394505934168184441815794571293306094047795800622809520217999913104779072553667287036210659487323388658122571901857599792855821331406418339905156100825470843584814808501301143596430427532282016886221955848789964934486954143130105111545784593353979330341271243362451201056361284796759874704335357208115579052532939917418246228785201561952703342201538847853511523868845343091875280043580899226228945837959235729340584392373739900713691393249839442991794908936872992559377167175064394130578978213909809837706528752530052314760859586954185575260975881486051309335935884038079434813390745412351134259447083329803779527383706460250175920430133679541745265313301323481832146843652162023397388379655332474232745727125220673747058043504617993744085482535041419163778083215211290257937788466975624808291590356425284217740141633861135905234405702079363974131509781436723269364759627893391925282077023319814260833613923734256009451634204789462567828378689170769014301941808938124667937833392495243878477562617586830796323312998538303217692479705491439519692188472818372741990598817053335866807598592480130570625361626819474184013062010633519736154609242855191735233362574273673916113037476572653352341867141254463691286643278829869421868676254286861909516104238194509969799759135115784093232751556015579843572083250293627767829445371119599778667875293058870172276056090559243756618267516457556535056275423287215289534976059223403031769067496310117388942173919487944171758227675732608773799770678700380766700310916725480621115866643242551304451751546619484653588745879068088546076513727524657859497508355236979003706340380520197447551976215163372669525924470128130022595065724721863489488489161833392209129179871237159639605773877209609346368694541805981195186785593652750178436193868605368317327455264070686992455230339135875152148166890965053148408077787934195267896692958820026726535808075990758187553128543060955827049215266692210426202783858902066215083357101215217959958550205687656259483067691760782251480938599173800768420565266891643389040807791659080154964644663019058562414815228772462642290878719749311565478969732366245744317290957110061285442529699051772286995201557717718759028129290398151574582049881850410370878743870189926219575182189358008675746303709191830430422648062867774168867873149088599471730320895048245642854834893479138352212056864637350587139022282488978848340605743155799935331855216687398499137620800541515380341949228128206515028981669803256985261135962681195393300903446295230958005173440547601710138680189223031750084514810603415856055686523863891124172286307942641663019284855800264044535102683385058731022967983749984194740587887413921076212380257123590173760599179045386271045340063840288972347365489638172815502729971099030734581299719596665845794788465086275084323446070828920729154151579633503985765756449801051408127738936036961226961095796597448800480604485361368717748558830501079939789087719255691884723906548556509120612478933469920082059328774059808875602987461930125128660000549031554446205672300777906376079779076601796291652320357428181127466700688857269390606761365234904305996562809741926416641075433461783035494755545540787578531426929738784783371645237025508815654257065294928954473274489167220372635259827413520843809058730480130368378486941772965697382719676007986065856174994350233804457155066097414951823121875355892111602618139467916710385882948590643309548848384721146514086494997810101752313098591173233038484215674023981446748846011717137010344798042550181727334923954059216210784576563075950643646493231039771451402157569625216566451382053463768406951381724591449588705612022890338096729618147512502997667213298671042558741082626851560952158592672483052605338030658715663546624695595677934803587207695019689209611001068896110741375254054963853905415073135375471517676833141781756409505093417587155006311614044574091047494707109646986073510990966731008247375883996595216359779222348469686097839642812785468741244744714749252351421790491134492962860545318744347999649728992923586439584011239553245206803385351609253667579520870923731046443991724551607322075679377507463681578410520643704750634557835504031384272656476570828464565174090152641646978966786425834175626911992040694616208028462693093201311337290563221718137667922510048445280218203819378676466382759150597939942344228026266668173553681109842890517368229966023166856082089224426564808346956529394604955684614638797020959458944243208386843331573235113820936634073455946527472595603425862344238195850935944313376296153264027350323318569011864411549163878539210843367921938351611821810747807890471336601913282750652505668951229701838080306352073645985468935976075136152991113626121120314048279708997471665679344128292840099190408386812906016398866804845829300150982488355889063718702471500311173296662030527402436521213683898117277120130677294365514348985490245424903181980243010668379434791433381120913025094289619398563726729117402826117193780647432384373166571482980244903846376960195650260146012180736620143138786958437103996767736191252684104076108354560618952019246773486758179934935345205563083547655153380793896167373079945267620149944876272086552950390551842938947673264788134072827763178688645945844514766091758631938598227539867467681618864317443004065168609993593957056556587388701672475793068108972849935232628849645900356058164669879477903771199912122388138899248768649688575468306000122610963942015994889232354150130201539192828839636074654105239110606330689078431449302583627359593826003569328725346058398710720177029104919861779378049012502104690591822044015926447716741066091787315619468382691009100933550072506216279975723368657002903457495326908145652617313355962519103678823454377340534429697813532695517059567277203896563370942534755325258927328092834398377327855364767185679145545295810990265082774001785719803518414821284255976441332146226504955699981480408304438155528763233833256332904465088387821747661263494386554886437112634554452512145271268136675209041016430140331439732134748525825367852727291270979875763698199529274844333194326983804127297908130783110467562731602156638667436823685546684538817227014269441126041337778397440273606553066324722789087674630322780220918225512262067671885277984939698419945322667239471859722342129160682398357047776598090681534732989519058474775136176618748364019679187916164693444082923822134104163183350666639528334962423126390454157863306869380254620919418284701573706687647355488000439303079372919218101094056358461284255388004437119576405043763776147381422735057559681890557968087171210686465006369438924694030072256772235679265504494042919936436366112538756318138378424996760369666867675250605770376364246160660680857958870547697021343638504482757869964641199415819741840886420856728794658724025884923725957554581634279985449565394338825068900505203952591569790148598051958437618443630515815618792806127154876093009583061359147335149068909533306268000577662927716159852714680095902253024819139086980970102385031875974421927292899075372435860927202597678174913354297605010870336165070234969328984544950066337855297908284882308843822955377913862308646937867662234096066186116681807834804247002701699266439694311641705311906253329264152361676766837872773909899805378337832881265568055536701944667870363325394852837202654560075682333590826490840689780536651921616849750213711594542181083171089571480049563013005345999162410489690992547046615023894149577265315640082927824995161961372895950019804678478285136429476401925608992936157458363194168792882924056504593102133188591198044738812737968926917658989468280240795091649149679734257116947051742154848002317284980608319910984136072512826903928633054617913399600634452801954054311431966903006961224222992786112215742489139843349129317964783581521446257999514384789132388552570390946872986059385726377118691697056084777555250172880294839067506463045014110575791877035385312734735439151782538482214960628125929885927059367443594030339398528189104915567203170046136907058354572146893288918918425999304165817188656336667618383767980813374634092642950914294267210424923896939323169030258335108571592776412820517717824613384290977070300451402421134261806208894179715006801418977012763006546661781088789320513625477537877810644004836198707114817586336562008379161104955175453893543957733455116710621206226810928003901409399862164779281276976733206241625137795644361057287236799854797338212128830938658169891267532329480005485332487965015454092275435682007499727275442900170541709446792557571646888858663787067029691525821869601847868166964377079408889196489227876934836624789386664955875571021189228947647763546332459916803554485437946535391777049393033626664536106382521199363952807197919268398754981322262487616507738694070123654559507326706230693366097977941347964934235880297096250522202961878897880852630334713905497859705782824284160546401004067835531186990838404944262414451619195262737829004191698847740321457674063037949914684825234831119244157360031523593546001913525823674873116265063636758874485050536674303677801350063895227754637405370932213350693001048341686643330340019713163256677853929955579777316423668598928805502821021053590950954397701553853315362100053525163425191925585789899228115265258765671195291406171794443260453735986019048032841304008534915489204464132556382943764984954535811288569612456125033971204631077558970703386909311952341161817199471912498078571421642072491019109401604730273811781409817528268443160192020648490769481000332240410012822209110911643463644483044815439047662010079454334319731518803702925216935853630871376556731403537510089083910336170334018123526311395325896894621571835369549078308229943408907705033077404362761541428764916909100587150396430386195169393353246449993715793151746630122784186466186715151641615093196898923616538457019104556522316311944516781368100720147438500558664690440949269257168253100547159888455476966887895145688585167345666762197307032159440063285953758630451487242794708841108689548732289961335425643801613074108953317164052704090776731538624743090598234720349584024019914706967805512660208725769446982253383944854324903063859689029789732277575979947854358265921016957326940669118225318383557830805007095122321302965288752863901294952308749162559333588246161154788451382073183875324586659875779140047538112003808738322146432739828280369526501251705541475712259475646236444063415928401415894544897422969892239402934836544643444580053334424160263145111322741192048074503021270475233575321970425862105997099067487201746132551771923676817830104956207250411828452607952947121519152909828628562552233042411304261537266327651041762929884895492228697459955854072314653025369636692742583583044830124750496470695751223949089012098237831792462859238851393040406832676369444763182228037963843597752458756533462927336455444221772931619597923400374462673208678788551865004485020409673813330956553458204222494659844384825194049309424804125025629627705575850680820835947327870601671773532274048761744317295705018426083936278486374488003416975407596146114619464547169198569747695737607376774945902673603540778585852231361644297692405092307252524805045649829344355098553294603948464249143078724921648153999095462783082526980308647098047774936418119576422361682498015732662202906106216745067959087549904888732134792644674200908637740630835179135052123578232065294984862360313329844993360844111206322336602502043424588127963436428984804218577151447805114991627111274190520794153662076501246643557601623847845148923670804849726351586481947359976655271916089947815225684907321867671504365005116938716536700517573203294043809347081173818806931472262988769589647166283269244171942558675528963184611437801919420527119346227495315127558910426641820603884263320141221275660818925368397918064125508686454916995725748029680520191988352706500691652018590276353176151238374250435404379335002075174070969637560232183876300561101096252862452729737121651043507593576367394972005792305739247567764860216719036895341628166297361100261324311436216097257256596960867277212575122398306237399357274524124341674415355044486101228589950040166227994444826694993205453157425237926829281417502572347642987767822632031237098089391860437867925112605156528816592912627565469812591800789036281308641864054274438520022131221077732533813084967762444396882960043502462985634574950968613763147108479233073423206212182925677645556198220150159789070712825594808243465501915082863169139203262074816238091420923442941354952833740843293636218680548015563650075845509862078174790455773438941161932813483076160995035662040632146717975083000334816355157882172116540020141924998117570114158231147354395495650434042602224629617326405539745777636035858134416085560936647295028660080565357460303148760393102584597978016695409748492762117092857467079963122075822332031860884095476295289487301478915344377370334665732690141022664702797148158042684463182176685386407678652776030046961802463271876196586449199428085777238948031058532709882279594029496604840767386904644134811539654620062327228314203585892889658129944369122365471175939819111385547649202525188377919891016200192047441314472480329426228672275579419212580508197660736162458382699475772555937961226223279261673575088487765562033772197814841505987871049467942575410059878828637088575520084490189899159955790506842862759213226010258550309342609099173959174756447139899414614264464495372446860728372671138930775876075329087072798508553879650884877318787569761590846883141242895669803735700816688332351693103650503246135050311719404498229627611789883323569981138225505700505285724120681732594458779100431584440099501726703864195124446543861442512760031055345197612455361009375635464605967332268599153380161203635874095276020015724032741676817129471041608108704331006868179209100945194763149673576584396866051940619936808397440879462888624472223015405757353067849830797762400014368921243140773788639559496476553070493328962378767219631575723173414438682662971786034118342547873356595061085403023620292697974093979940450734417704745661786856701459980325256743736879490456613168516653753871253471023877706148074629825338961935875844670021976539841992578473403300071974642246270478672091682369237185887760776989434307816441881685939785495431324198715715384559745032647416438169279720778595449490212608504556725966133353410009554921238964194322037921849223594908773579294903879033964138139731984173157350183205728309069428800407685188205289189724968722507070423560895594063406990122363073692019588076847470079376682562111894710215642097989107898122726937788792057043717289955253645174164266965829139540477040818782360702827661069128731763447025048394487872664605634472041691172358648078966513384118911372844363609927809474731745750697600222685486192800205831874048137873803205700691892898452845401900559825939821178860581864427723792603240999821188486619323368712096965674896358197835041170474681571044923417653004315034158194984343265590344328785896208499111545726037247392469070593625086493735048237627598572580211546277056262299760146682073205452956076799077543950774169136953008864117004676273734236870602104795032422688009790001410577318782778677185772068662818282705058657417106900798068319653278743699728662260122939079330310688177988632355678846801887468868290703161775338062378371924426235921808788061345650749535420072510417583051772869223942035931174530311084067100105581617561605719135054494451748339626205652746237850649307414680756857561801962303069205087875344902277116035033007021302209546444161097283070056693878283909723845662054664861206513556591603028106175830569266410269133064951988589435632741652849070713511541350036064137647192185345247762202238259625516504484993707417881304032477122007881131999251514796328368528019673995623857241474038493816507279527962511744683573413170753168678566368239204213189984714066066974186122042011631012325481316610615980396062188681525430066011510364364913380118464810081318444887572988918221847611794027255786732614554155934709745227690363282073336179100310415323278209840211360825061981910632443444851790200661454191062720693726473189082312913459427312806876143145324976628962785769057074082402815468275974651568455137382292139537787469088045277546203005984620871872061574330155050277337666729850224768916490353601003553825145537386066097360217615047262281159011386657359891695838107696956431143963576010911465679102218717283991202144768118994944116122540372787250936876339655111019867047702597868305009817688413727570497607990661272076970815082399422748227542858162256988653848189740148887898301733182479710308885940451651410519701354643769138032064508771197361216596422746991406601776393476958538304710428060647070904936721615459499564759559971712380187269924486692778903520928700086142887839582510636194399720053118847691387641314458227761704179626734915925243795286025177455932759929200643747086107630221572253154866273790920730075451637719865268499871290849530131479919477136802232501348632052327319393955014021910477859699724535326123849080591699642664175229411887514388546287528489906943796149040418208553246092143450809864712012503996529771611540398698769439937876164458168186203522800428005962175672752726535576630504525649562359367068609358714342872613487887738524289071393470828621911864755909907889375044022504616989447528736137419287817212768961618411162187495616443051632374446260506560296279970056476856222997246786273254815804185021577865076390728829187421910740940248501045212777783601278817694592522442583877979080992325544302604594533754715746511687620287682849006568547271830432943550398803961176829445830872360149056361546686331929696104853132760073987368354684194111045749493859837303765326744570737154287500804316981378406285559352681449276601183173774243145000303159936949617533371313634897771955534673293740788853697371413570211882902743256321231524484542971222202458968723569189787418923925042012559196078883393609721368629331862039954576969279501137575028969933442796868865512183795833912867769719742150421921950403984271321131014078633936767412636750816395563629193859268602783188668951049790400000784164446642646966124250679921111687719576757174829943186880057351199561418186766755920269379855809220018919685083242476913526559981038254368807311123553782151209881394600746382220276877787764485803643944418034663129284496027447600055903663268660739328014560450369368644564665377962863253941240694431945241596127905202375078920573093214672183621255143471684909184545170536291195824139438198937784651812010361192055277438523673162735586039032030044371541303698459804331759607118344150963849849051943683373286094214382837280933793339422386509874738245498310099520190112514659053996977755128403006166157884646449975784959832836761069482312468521774439858212960626150304262582705980521174483931141044119169684965636333805853862743356683162088077567273856586438622499839168373978546312585403203453032357064174437714145637543004541397585962633247313410697254271554943303271317524152422171550976877316227730454227372385222522857192543157597719768259774668212916424754440630398208075726852203468525758066993001138643048149765836307757060449518254579869900485317624618603710333357639680228298467479062354848235614761887559093172914445113897309648008096244183230206762898919088511142290880357091212480716370694075449598985818150085173250347166399482249957679834841441260792697104970292535801543251277886701473119523498122995631703122700491302295344465349850038528275480650915912169393942071908258228716270502403738855700428418672822184667216833808878870077607809390531936920183295208875796358594040921313621083881767685978992666715994440947350904532839188938267343229781147099834174336283570046873263310784376825140277896185559639739177145709419812436509098834283778746180189335295442040483885859704303321621434339013311441734942196880222174689164198078972240672049783094450833370886063524338346608780362601589865081265477383228597886842547034675109414677205706961690980794249428042915445742892895480976857508233498519134822705963841298342128772143469496360438008707244286500316240863575992836393732043115147480802674999769902473794945288166922896041522842432262946902261789282330862920464610534878981469278953887669843718071861180958180606894499771690693063269279359951319993010310132846357224357810704439123233634073455850273749985123728085547043162224806158186103184160207287144823446674449000587928451564861594774171396502070574783740355654168173389634128027588132331202361553954909945272328011430606869170991185359175483712325733662288135020106326881108028603645999381513004452566208730515827802341890989565612383780875656501725034433661289618720188304571212600910934123036601760713593607274263996720686360979390591048054066945866147788333627875081693601125069798877332428245702439140163061076420075315089716224538446008418739943078638094725567962416220624464879929095149025862325641071092000673552389519297481843836715801824334766676659580361750569847547414128509081505237566164540442201514532731334103996027122026330447872360110283792775280588181415160402532412144516690902819027939343059937238395474472926266931991240010679319359057337832027387713202989859940593695814926693217547042505761355865186694961738448128202149968154093407961385316894580078548782370756362454141324056036501777336920476238417493449204124725042174272110540228890316628585218710622339110248414727770887151105745825402587018476542902618891759722199819523071604480662747375996456694528033208767340956959277835221039488725630529758618534875231011849211231214998538203474704265649811729043811558131784968851796831816133569083961503142519026164694876754786840041117896755910098691689782523785154709916028534705175966837925739554585948727747928429327633883041809709423084607262817794295254646652183115552428596751328859713017767727104819231584866473084553167316880225927640826329270440041249873420403807493657471906922201398020310093035416509453049089377025044706057704934522713139833111920645422488242244604725012234247121542532781878869375571752182343959877927872416528974419420427193628801605359487820396513551479058306181385962633974622415438721972433769621736520278320905821156522617897828564501789400074861908854558021955771637445160319295985973835511976889540059818973050516936927439179932669923022041773521988063820328919574046176300923508014626207785406411706411012143716379559207025935494986607522877019763251765101507892857194941375270069787222942750863266809467431704103243294235983400334136950746127400795156586725839484993499180557452345444594014250506405030622655278055098092818883212097982666782591980667006277727541047773208467937412390543435835929232077258324723721722796525153770938146422296033500318209393083843977034466489980645252042415140346088255464036326525101263941838979357978379766479111881622971543708772012234524128171092163689161029535827710998163467512732912356457816133958350363140157548726316670155255714859852538991446369123445924596857051876223950376334128167623500786877196044313522558031261810768421941142054375786154933943948284334926094854085790708524567687479894583371925017782600884784121007502309341595416716395132540630525223596422346159170965996621168141702694056309052333815941510056738540692218646250642485405751325884113794166845354191849989670346789492034142589564514725212841783405852953591061679360030667923579733968851624672851464832719920803603694822530656372434533619057475986878768296519367598726169742837583894592423026405415829135433564677101945651616847930964171699923231009331212811286667717206781692475280532119768401382933981863355222472291291063192552195134169221627657229459077188648808147130049161659192187490039953583181818211007997335496854083864651821958444285860060635263666834104789737654855527027402976208698298923582211016502539400948099448449207275836337165174112207550362350392985206033236164025064923863400383471176266808520333860058422342577947950314953153013436078277392268960723932607442942388946514018497031512138929108837731507506432236118198793824267928575557856490401600869815454427252277868652879526477638878020438202949216094917890605349217209156670070794592296633188797627974454194258243880787629588776050558218561165850392391783139530365357894506335575531169175432061918690902793311949044624699448448449418169489104893218959877525132914895653645439677283819243528016859406072522293702014012989727295255274455423117280525111769326643341982487007407024142932342946019598425891314683995788860302120697173725165023967702542644549481555590904672315474989552643517022611694408566352822330155226169821440661970431177068932530683090354016669794497695821444796150035655775209379156583045058660870740832665515698292395578631259470042596484478894127138779754751985528794933120942343290818780507560237360062401762594569492161625708419416937385570494095547119874784643613525081809966183865670681966517549311352779599142078278073312219255519453701777657560916133354673743220312546018597489685096920433604593711606607845029379690407002705714572057319744337441230124922076959837887329013354509463386389460809468684254369907793092985931202424224259628272080940226838569913624521781795219325686374917098480280464819660216108707093007065626262173988249218050570150516769553221260314128239248066043446140840206242362181521005811983071665365929445772714990577279999407023407704595211558853090762404169937014144857959637558746055848828392425857483108366869361396232030595881293606114791119313795926178654477577206678665010724057203263682446514322953628325492867167133707285327889128668693475875884440256498985364812001429282929020599291183195143540486069499905964043327508437769419642770461991649574554392077238158427710888700394557413626925277934033924572985223324066447753844384284095448740543342968425883712950079225802706325164928260658431901896675926343046040018121917537352189602328803425487386911436443142961334281869528363020767476387302247690028980434994496911762881023107950170954049022636501635782867705280058232955695919668128985586257389719599519556377989677670520028407626176937049174622047054489815315997136795180179239684917951557592877947772478320124193538638515673503837843797018692538354805216099129067454871476137378996764724517826611878556630177622909861244811120514342301000179634539540883582824475372402854961930115020328184453814505576144535079462247528658724614601461641084584168642601793678306133877132112988208749483744091632265799466820488536893578627106410380343054936905172252033762141506614687871347959750874853406079041169404224187923439316952110692465586553065932023978630742119181515087559426271472798641141583663553256269328143025198828172065262192680500274186776957482490686342846125407725372174832173617578884062691166911591933907594563847983975572093055383358908896311671734096148269382657621930753947241784982576364545383305300098753519733796425754611845204951548424113950042586949677372989988698830789924207743273253656286022660476514970076911738770271337768709252665236865866696504932305804656701007372762605873233346312342353322046561522735597850300542631988138788499110146100038949796814763986004342686055050292804292525881836627677168968927731122435550493384478594716536510760896791578035362718800159302777957106765402874314164931081203593271018023411681817428359722999571793230380285473214320520454184338750774513576211641376640530613316278196062828961529280000140383584409471689223507583333520810220825838662100326536976758613126461954188628742951012528677375153699736607551716341385068723637592337423796822084352081953671835303507510978497584076744587578716881395768414689266066991246036903262889185819957988148473714853602941368109154764692123936465352906269901768182812468800534987423950074480464889198627837481742092678353430958362049043478901696939685287250580711405753497511784454134472053743054842779683492351520088736374769483459367107678328598377514545133001558760340336656033646567873257211435398590505605393798066266520664421935796140931908312103895553695913073944732054468442281104809430320388160978483321659048891122694305835391230842186510201201030031896538084765834942627274999659864338383534078525953139878024452437861561118860486458212446147398226299207354784555333258212811795857580027279802072654027247490560180754889468641758414622907885758966403750121365712368335223849490712462037906509719789739532077292715022975718278164448812265032148375879858645607801607049089814912321416261458617031880490528598474456433909469674040154710443805228915431401312305081026905193245873016039388647091656944202219733408211750497334755726393121176135355040091907247380352259642594974733937219611408572494479910791873549113979461559787713501467366880641952469705093667739030009229605424966551320522846657230143915427030115676153601421066013229439176671478995444374653806338869063238134327744833224973416136236212372882169169809274204221886480926219000753919507267294987388109397960411797863669178614447488428734258651086719315531295595803594284120954590678574684271589108451288924863760045144815193394953296439206011609577631781700344636067042380675143619865153969468321238094309232911899435777862050676268173191311347216724335479180820058345368173639589552223415717843948992991473989351567823750793661997149372619996898886745244889629161332129248173743245226003487334744097638597462572381708786142546480208825071990526719172738398526558584332913229538603162042740445828843110308033570137578789491349426380357793886886656692221949426989738331214761838107409645237707854756058605067053700115242875066871129649668933677792086447377660429519788215914139010806303247055663289691145895178880365863470805170628023682071722627464586669152409122549528760614659157750863404454769943305690996257595991953266602756997614121480272129232333101565691044021271736833889936350701474244527972526099854852338927793977439591133302437807479562475917473289366458186516759277305005264140267222693434261971681210643597287167508690533877094724391424797984990756172000567195536547400762665884093648650307209098662137559530163064139091427633512889738059743676259613456126800341840451633736511503615311745270342485527981967325380139600243361568851471592965567446783591588117511602306144582964442582787454566030714924724078113717477016268970132004267720983349206437879192067254729481632890469313497224654437594611437467219967086190602819038475101817800038496674536978796710035798250885105987335734087618650455252791385919347227272840078514962220089772951676984767169359516955225577669589402909887395703971949357746733888929735582697151286632759071520186108442944135796077404217841787906556570603346060442091686103563017369611491976302166011924268678774115932448806296462608202432147113745000078159294101800431127057020174933776583096376401385964193185156837851497828893947137651629212588272088656572652685090491810416197386981606830858486280563143669903606977281787107899689497802516349245378518251402043778448053654206891951898787805553008103792611144932507723224887220645219978175344381428694682464318843002529873148920046151833826472775953273256191127748723009526395174489876645272340632881301624002834171557855575025661052678228096902926264266970542004579576518140469627923495402146380654298925989614956847063861821790941643307727385566778616586472583410931999185313548379548484210303521151329720175447354957522926148494825532126345316521033103726038540114753764496366603365228567489602581285510430813619083621949691062001978415504505032634751981353725722016167946993275440696242301474112679782903513492947089743551132562307664241795773667540574667178426405215503672259576600444286630990760916232535561123708834303700198499349159730978492250530216261326966276089896966419094495639830270174415184176401223580831374704037450187562380096832808130603448167281807336007807580550535338292351256765887665907884080515197140535692050754850503548311205080415092717584036050955625318683158107710654413030224475115961283234312153869387884006284932450451992847685615110413698812093206119018950131043822135631692550484944954039031973881325758861307313759769248845448495515654857577406491629951485038271827341807349022952876902105196014473187934330038188027619353679076171551981675184882787566235209176363563503505028369055592426904587837391068827181136589188227036506601419617855821466303856454111379039806605702401313110935819888177568531902862851648509693984643264226182748417180602003633241797423419511977696198425138507669548969185362882077478484983503229719226388542055364273577801329655075372347733827758663200218736032625962996964390046001024918531571959235681142125835000275145357400657890125502170920271619918307173128270897002404049932510446110127415979524503237969703273241625782891976739695294982929780337852262668461651619299160766940860602377725994490840580539123388410309209122187601847923741623696928666990561604403540623261692234259374022119666002223740226073037480977506567460078968673661387198381470778446032155855921346066295475481621611139590481922575435374808176706661219610919003800071697567210213434474733883593825311579072300184633839305000284460063448325331895642857064016622740072195414788063160304127914025564991683760246985217986179380270949798842358844671724521152487083720994256892199126467151880802402267454549187325854760091390739153121766787521306359653361363459704935038397613660808085889553632529969860686215341785740728931261833034585332192824137592376844493961745828829588209890150992420800198697822747267318959098405014103605664643163293870787709828078685819955005584489184372455591321075491879277627744352945020826343125411516565696402087950231763190942628727903950580158484418003746536849600864448170472385081579762555291019362872746087035189790608913954733315521585207785379980148187644746461269693041209152759743797833818798917371310043726214875877710996131080035620001232916897741645808698526717499643174510378838838780149970666423475291863886340695180531087480535183526610643498030493738480047988245597006076999021161852919330647743340806433979011067203770367177988129677242424017080290231035674722969927049575744257734671131592779661606363456977916329844870278240298964370109211201188442855248021349270705885648425745176942461215155672670061520115836652259533543151549251490417957619986905244137646193149782212425401976718162399069903247420004861237959340378301451587558430777612895946759061456114476961204993768279613920775087343159563445023189486539747858890003007385049580731766244879004061772427516354659181173408805365038804410114104876971435479784821904005592925770940229044503129859748651772198388328558129291675963548667624703163997931346801390954863865655083114281047654230047488293417787883172321436736623190865448698928164144538551178999607394955280058718096459571336058318510891130534496265103507485848844762609218322909089372519505039208443559688334213470045836989594193521920097264258686505387967929608886774483688007418948434615350625150175888369471408177426028777485142149758295912760393266136400288885112548186498155751407252227033365930987422356452301079080691512338176756722995984976280992215825208715004763178648205611508255881637364919577490270553006113190987149476855683162618289252408066916841346480899687351297167667968868843013511502045645217880980229761170880726013485092239658989380453364730661994918174626103380667398990004025560797950130436050739792046541678380161080504322144242286825104763370114683623777663642351546047666122090878178423854892493528763582262464029872747200835922009506822336227635330174482724300479396054348511686850412191811109389339834754611067683608234683925877735183795525850507011887799760246674697015893019186131949238503248371858163723393049573497306410001412686032969818672469060726756594012221306743161362711860780658356493307545897270215728702567985011060669985870335566535021236521558913187397344321426091830964976058743765660051211191697471206827326747450539903493846732582755528915114827083772064555397570481411902420760326050742783295777660716285911486591116245154314987685100400440015466920959227066178515624283706267678218969701340455836015212197783384337130796494698571531023114028215796937344792287219759682174561205868522184669116112419718739638993076487450629959382663479686419153805387534617336834105696545932279892919348327416603557509135918640467744785047280481785442498754714861004189930279411205374417491255010201226240153206564998542248599742959369927271345908157649499661001178861093678553628280545327898170346516775336432422382565156175139289462140639695389970806168801795517952480056699353717570148031495612626095602538605578290191784777813746367511084510208474237232107495331093177071382830640105444205762838751426213488915850836159186216503789638861673781166294572640815541679670574738004961093680105629114042632338347115911141662610616458333567870165480495645765889788213845455240268672894263364147829032872968086767615141415586292595498345356378310003958506754268050306568643132409177296372514674225568766834117165454412119285671582043371887724522093691088630381194523279866502557584940503076644634225370123406574521930645593037745238091350402021587682904182554828523377440371132577693268366996066906016951660005516483427284353400876775117821266528847975924777754205917168916883470806965170815965009242256800597644644773936923247640217077662373575895412109409899139918933700387628181981513778728066836116027369917345421925980381366488267563074494822817425695813628656765733088531952163240349124806416028512044880160666018938056807440356311086341166429784303297255584099599819030096764222014999089313434446397278554122682630499937887290605666088889050545820773223212614295020913765281618371993209891818700781355171294565208295226081320192092534027349107367474521136375742475660562657272254528707682410678623640780810667562788199754162565171212541201312592341267286670595483692358617012174679697765782336820329872393828108500463738593284551554474536869510956204528968259224459473734281653746267682607269076781929794623354670540889725841553072439699935153179042177835135424075218401265049107098537529026527279763925949888406350670301460404193923177529037008513746318425746207053471475262251757885296961914657508167964571921595193386392154205645954621013958728476578568136101146829670337303433447813690408849538040341963394981212903363833988615942178547984280439355863197302999350678685711895179764416823844887359943138200426483671180677303879093848746434076042827019487864479814455431689213731976439680744103785002680263741678265164209669643056683954254147022741447621906252110344281004309075654934125046568192996136586744905483203133437243018767267113823948223593341974160873600249223255595094398080928258098146940006875944356855564864074988383630005089139547566282775615780710749898238805803667004747407416329280388273006830793370887211886337678198582967981436868993976901315693583380617592819286100650412224064801885048696698013509057833489603821548394359248895036423103114221039032537804011751602111045369116899463865451169280222669522490340273771638998249417413155560783409357803663129714478205662639442618896229340261208510113907498722997117878350256790037568678734906083039881127756504871526962842640132390650765915208849130596094080853592385518008309186136063479390391353129843100284569436569142999675381388797931057430442902163198645581554045353795713962942308643707635564274897237803134273940904022504199440147720454202241983279634385108839110412153415911326234746881538760637174092795709798790989009651299479527701138640973691135950165203204080129438416640116165458757922463864805027403448715214052245975454556593756580876055364269881431107691343898008187597001262926957652239310386228406752697301641418368880993065116382688657510577839558348154273551682051485092813843993680665534889314760521764985426024423145083708686644073941743196596565632995635309494896262412568974893503077485155189278132599221318099457618605721020946227795660615867521009789975124627121771623911951871890466761643989262107134651135004837926447391387920603998077649110733568410699547781024146924479500892935198478486409405382969802384554770034661084980670450436134529629884512773496852393374301606732415315511161183079216729624436843580615612029314556984685111670626681511591482793061345638356537810710312117620863982228935557444476719250305041238116679950505363633206311826665085652275801546463914502045737750533513754745638805422903225151787234394179797369301831170395098236686687073176221656894103734122420544285487791374004936349192727871668303919462054795260672056060492707006775243016030701247924333015491632781939088623235439419631169521713968001866536760851614210230194147149363726175021623740484965290362349914028028022180646434420272140268462149133548187564205592832996903213539467182905393103505912679101132208612832723150235799733576032832174027707823470326572418739437470683237375695703679813454587960343338636342394015338340754463693642194086164447346460002159308415026860315683309482723968866813963667948990472963401036560596241917529998226327108135667279903977365617933016467133613583649564636546488739376485692683486613989972764926528545072035959496272565358416513185124143374955658110484461039340762451152624048570242047915335554636328625543376333188849260501942679946077987095693765898289958994528848611826312182513083129474470270814267333292093739579318782390311957658615270082467855902160617619149690806001231847940617308036752084399321624435352477867412249045907774080235210471002714260697667008879688789862264418447090820185304374514881508278712650819973478345891760931407005993430553570067144023425304084069076522184636680502127495389040384391308551959770604026827531204009663151797576374444490477077172134943184586742962432924021195975345908056968017421719250223586132495010752900482787254928758440741706543101653185170170714460218267808008879689264321727056343488386908103385273905029815202997311428515241262876900288117974308512371269357406848357151157330375278717976752782061575585192648342459554451312510395926063917594710575321131539245114158922954272658463529426537877371639930728350381527337211509554166587136197963566702230190843447125734564161159065026996349226657360274631389321472119352914462707367756119480006657194171028509762795795029228293201556965735579965725169833341351112319212841002389612295015060592315913856488164537878207165358142150985366200047693708962228275106959022402860224405219597085377035896083465844506887569017367261507925169631523406777523793641953164720364646255765316005882682271027990377133414528565341485258676691593156416370870444697725351959442148667049630383884292746733383020016956513067785424331571046556349148387659156100806220034631392603313533850574619607063758588810865579476032881035903912463531722259574711615502099133264917975550003603236005228357662161347086980855539920024397008937641488232377898385830999383413839599437711004734629787079037190200990847030576028581109545618170167725371813247366338434427512380738471158579276108750364040416930469877246964891715988215191397152366756776439153528886509255738405419878469326492246294633132853114424910240323311645981551387631158074813711512962060515045311584946718414543768553492566390738609306840384383262525674120410448257332445995838293671228430710035604853011734680480460212647892806515403238900770937432978268684612508241791609825838973277664913851269843031308413083532702719269620526542771946743774028099351866843471684533382389113178391675513774477576162984674283535404854365996109503859130947737825624298525042824466228589006418148448074667968008334373374813473160802398523665937897739223176487332378805390276994350570734261514648640475635810394426068904842816167715932808994370706905229510329811165056381443343104868021052104369338950294611390330299312620892749922970578265796079704161282161823061549222042949822742679448659497899932053119076580078412638402522865757034099382916789136269903434854193985418649977633311761473405244006103323651263510165904709350610285126342858237972464297793323256247550032381715262666998882811583467650961819532139331588880814848703567782727031056003761524198979649370784229888324316836618972273825973098103334071495199103352124407729601777577168823266568043544568896062883337488573603680880664380527432335717414843674855044551956934147399983469225429216856436701996009519567862447475306115339594057845143051728326197401525669951801409213170016480398351109945395280034145257630861623090993610704879786293460025881350754850457716096165947636060552260611256488156702638479259097350936686348761299916853051267469333080726768528694425638250914751215632221084606384013380611130018222657772478576014136735137355373142557142267036571672892336675055165187254535691667356771299122586291149569589636233124830754747934650854593569395807183475426979805216308476979204111288061772441050528834194353105173194954192221736533560906391844278837436852156321770275945212327552623993300687370911581834893894320279121765100444393401920230064750227051992191324156201648696504687417438812729419724993921807675081545430193512902753236624072564535790828076832933170525277289617096499371678085754528327818659239777998522376590635440809188795948699924808105387948534609238318778141087693424056442785485252275771605949008110523707217052268661510808144901874658604253000362939477642888462238793212772801443833444913980922111036412380478654658502587603053769520554400279464162118374315528321316605839479952227578156115658275737160789898781748264710267731254891398178581411701863834288135953666999869184076481355110475015890199186050852788152649752661166851801447582649084746127190510284153413019287478424836916129507500191931313248798328837655882833573513398022056107407283212121835384938625159305736423501643221084990770980291973747718631302792466995353404095805482850700810718149827644589744899949770627732477507052331159027272266729749505994119192956556432076432181847843527189326966730447938601262073004819125531378988172005297870603086701640307372907559632113124711086844448426672940029116442825448421820357382251357363644923779249968027793408308410198785724453944831921735919233973201390854895227510827263268176100625969847073750867218125782396972363122456598442601036332868969877495615261146593446092909818519785501858267842602551997866974140736133694196855024490800404353831964589214490950350650425942204609133955893093535224138909672385923882699191699706549855500300418692942087566463902079394437449597561940984624834481395041073533860355001236914786563409918534825543176203100498829361682416562081625540196447545155779767557302495425084853518662048754170165543619817129891530868332553384994269278896031224738101972205494454099052643064592171317590472680642358703993049566730513689440903045773534118969276805429666440333273064247023215162036966477648969661059698244052496407728256026169357145874693253078941102469233552121124571838289133284047100757350595335351341233198042620186748885558649548673394334750457470501400243756153713378399809120718929732135599049199911860919071978798088756105208760362405935882092763558850898586661604508777806091585835496690604656149541590318781000327657021003628979949908775223153592390291614387947770494234894516026247355147921933086110336668576317463885319071780306021753126539645942334881187471668979370839771865933390831113558826838503841866934571558773254475692160726135184371875067610872597130047165978965843309110243913807168150736754763914606651431725829254533854307804825101612492462669797117909502899516230690635538993925101601495054834636727651636488311909205845778661799218360571729072109174439505292561216710295986158644697841906116513307835060917478315778939613700853430817616896982201513546773028957642709887956382252349085664988397386163337594778458312863724647048132849880256676301074535953847152320038720314857584235773141422683044923798230183531732051472306614832906847141387499029505148161082521886054073852230027435209956972758741560140957215818389546258259039063458499351541265431241766891263759472565698643370171461534801571806573714506416658870521541434026203073739573921872435549595999863055485876543098501026061827875883760403403227167588357918616139077005491004930693297060698552230354439833141547015166417538173849609358591057126924561290506264965128959156110363609633999591978112182612687575379877463546913689815758521166603159070904916335561365984016857713299858752574062979857742569692765114140149921733927462890453459902282866386938897605546213226857449606027375746775455160879393547516941534847062526716057620313145408645169459059926933398672799774820606296252170334783405208314848635564591560296390050085437394849245650933074611950364245573768283754260585148264009816942257927231324278508661827520728328734039774660995916233481298472428244295915998158836796591078767236799831472947945423530220001469509247689862817797256866347255621626846680203371693200349563773433694869966519340132022052594857370831993044685338428267959829852284138286304868209739480322821742814649622382980474966565955382655476675100510961442254938346832134723441607173465023349467953356707533101076675640140482289560425107942343407565854703839675494707554411194359634346168368455891677770502276261453911797495779019553678950080271406573132985774646679650747655715419044885419497223709711374975599520701136867747813388180103824192192993666480389434974450442168546549429990890417772895902064574109389600310064044041203909170252695290660939305935479770331839642491366538402962236841456200871661230427445058338039443745793151732465071667569573771918405154793722702219894318989692784507404637087074879149609519401542032875098423545854531994301739981135398357107949019048382891823401551830797631716278202717738462325093969014328526706473953951560158296780974604429704385621640878389843266717155502106243170984124815769181812872866409030053519257589427962510122492218171297035589820078430775729376596134880956463795966183781234171501947214023579281401219235832828634688938326111870344311785515519761635412337732701737200541004808759738677556667632777699262231261998670777752659620625293763243006321716777492669067302259808923039449561272313392913492762787903596849107297557292797883484345084265235786261585274146662255119488641793983588902823085866440260721014197978905767222620015937380519951355098203520722994088072033453083732047582148049533776542508389392282193952964502162254580074799617831114822632815993556280722244178940756045184068892677288576262902889801888459011110379041542925486682042500276491989802135935902844227735529973346701397821763656989928973847781880719950931915531867598246011898595126853146886321268733602417962948807472453923055110286137647357620930561740867275775143004139960693236224270328302295576449290169896817145472511285716801988412289132668743427072907098083649564813858235107574882223934044113011541813286973478912492548502859600850860063929781963008264631448141528331646772371929265402230782666141775891623481936535174224764543950590577368740189381791238822583523512825174737022115690037943903534759131850905929489646566122938530986732764635342705688795803834507061124202683694080824264747696035309036358062672815171699966888318172549155212422940341586532484087457091561274139038085873946379944253352055008972978150099113273087744323903464539086841897882362767156304415766086105781837860571383462827912924409004955781586303901918723660674613970837387251564603422792411929619378205730135160549504407353493130830178177906176686624787266201935933511016254409785958295043022535963931822599540851005141951192378415746745049051855707858145189732994333035211634686794266446022504164216407411876208053055337674091366370531627919476730367154003226802359760918211834978807780564101297116440539885531075647958973395848574527003568775439769995050172562313494478343866736035325943694269188956458796101966073769119537856230416755671390393205358843760715136999915457727953468807103651631392997656996165797183375498953616711141486416363586091243044814549349095313396321925446614263291431418342370472691003838727481722359409868579255562420975775366315043967492762934570290721559391937541752450277686508392940445107840633391567715709260400769039570795022774804918974651627774893309742439817750507056593043341103485855372804869465605266158125421366107918987270346391008167988347140059213512453019554350826761191734517599424102895733037796091262343757515480270077964681011264312932806119861177703220091003267260655518099549262667099651141406274858088663422776874299105968800586667061520261036717151601208346597068869920503142306709105501813504897044908582953411679936326172222456534011596129985021022247411215266064574862021811352475815054505596481515778514655749307841724361936771279078915627156703439045069898338449129766548478232793095840401485577900760046031307342680472296504930163136845308472438786094757260422684003104737708091106465264756519761170335584146994621323474058114339731948725842028362631254331254112223216804192792644921584757287903706168575456123620102420719042348924999909711021624759651135122272623510072645943826705410577598792520010265630137603891135410242963346431179806284792660735334336253421825489014066663017954449178105172162249653228893568711451664520592714989973779529138994826815689458335938844969459455761077515582159305674272242343265748085648947564765802207899945897865727213697577663633663671364238382675543727932882609476096042457751479831298948232484086594752994546250644971693474792612437973706900174810212946132998390108156092758058790751179929791728690104507656704038087319355953148618705249772270466431071650117510632341349312001314100766539860177236389992862318420078132204064428576722491368360528113862251363540143326066245332839568306535585309283088487891404922902496171383435737933199789178015681878425911364949724088124547605186595736206625682575106620237803170279446488481397383741258738002035069588391143843112206928465598168629244661460530745560739522032019907906212665526630868506927523089771579460968768927878807487883695056983823347596060157978778968659981092289721328029212999239556326123426761917246016039575520630577707306309510586853879351790113422165367657093965936173511838071023410559675628127363355073477501057673676063793190058113431237933547360091224520442415708740354533012931687035675656520543971747096166540538453129656043668296130045266740651449142755311582456114234665379020805867143776269043871927711310722407461147384281655329752596618666934949976478587710946278343956852744186095526126448883296064735095487332022475770364189420738071938867268543555698543452928164705554569542445428773606431010757253465026450730532542135567017111505563369100312295655160881357428329552248713023657870749404067876008105882318127427797856466392486542342225508004878356403585078293357606973402571964506510692831411895908972090064555926565357165315735982302305428071200643769338368584026068356487362519646997908422653048018548438549494760109009005665322462350254858529213623716944284866469212780933042850662556204173782815308054396796409229810330498477404559857000725898775487963313168076712642818615246894668293684481739866906855461749754029231556587692286928746783704625867547556214545802045545364817230945540558964295105445318869094363296385133963693659008390211332991313182379400208971536724878974680363354045602955107873125655148581763361056677136420429686909224975745603858815596153803464614272014689615102107216244340736721193191420305962551928269843466356832342582253481496576820740717963740908676014973651133035826506744466366876844329692342295278275083662504912200061880254168755714779138295556274079389068840864821650618535183983870142335239349963967924756255204806497112274175305951990761320907945436154723205175083093539763924569246349728762534228571365161130430849931984144635592992942312883195828456599910977203171319264035568103094588739558431233837818344286902481057347646472500180500641119861632369306446693473870862568076457520665863488943512264180346069006936812576170505992838318446631862510974926036718154763427586304512092214056381440383906233078991976045625181000725558614356567894413106350470462045778247142331766794235604364024655625305044559869225237291845587179308262726713229865374188621935995398406097661475269897626845743600666196927872325571991746026096729555468199180069252971447912282203188356770116726251158221610730841004104601529360918975342757774570261437358378888207632857682070631528045903615960451887565140339192975635179120230265216922686569901608259927525362939551811518883242169099980141949591697483762719804791426886223900080139161089110003203847381780686009069280521598092546908505241751560206042739865597180807778633466261821883220048541798543456858310853826281948430796585883312023214247774471131208010989688758359555934814970890490025350686111057360769239313478199507340713074040241571852882758445975014580894807910107113584833382147863776997871938972295674563814252956132211323305801804440668086534049826236763392709994401268480041551769727504791973714269027210872604515698880471760134267527178295053736270869591971838128286441936148462556814601450901812290259760889305040457583488758308033461150932900531674997861821975251731972656351630010693696485697903444050465002681261829006078256286052056672387026477766737110878873533537077744820815008771458300078503040817237546493719212260368259160612760065537643007623188538008623230215718042940404260981349822082348737427458578459756907869830270183180714064025327901275947147397985962073631158354104492222933340085480620981024532533033755447931066231124968193527216586929901542591238680319667038317332795031868762316961849503170574476345605546606296429498690837063530406097039860418021871952981648541641137082608893825013944938385723442197750759195551613337811493617647016418723590393780179008307416274962403877080811666174101379530022863399936358936816669720744926647665119327878112222409261045753472581144561453395850895213787896213124176016275290360874249068988607193444043692032699419615444536493538960243543757572649535153251499566106577632867057955065301769214515851773501069628400548089686854822873363531296966871208010248848123403487715786442934318660586858231045781636095632424857783822197623666151510336103173721365894487756896575045704729399422894481029041635630053720096394321410548713242017655006445453519884086190541287939331745283446727148224536612170826412839423013717431706423036852304844643998837873786933725482211101175041931514033395687244579792017386042204094932809495583006316349244769755003774802088466637561685820927111555995522179878739840909686302242822991649090597124970449792506496756752602359068975590695445502994265798211864501494087166807924514479811625496797762437907650348983795563476620912368244173199422630378892762032286680497811086900641538405012932672668179760090054917582159991567211514040260882003845753033807320208676494630004624126928587325351278999748970066897629691780983878823146132972277602220093491691861221886985533549880103251733169718779650463712535003681636057225719779462765005582114450513611019147867042863088243348933029901287418187523354481153286471564499813153252134107216135062440880733312467201734555774986441606772904577765173480681306073931974991108365617079940861000701312309923579691518529300929648036554355883113104080810943324077388419880033552033611031316449614146625775168941843023367173516334459321553073304423836570936373808819013089246160643303086810850945094821740774842120136437817250169619949478899527124295797731135606652720628627824058171258986765461885251638400040366815724499015095390506758010825754963774085529171324703962454363567494391470500322540147429128358029446229085553562002627357197564323500760792456737322546948526569885023702676222329954363515047551556138940749724471622439823646047814766115573380532039654758308307449282225138487336707343856168329501629747974229961401783108695497214297050731533082194649136255866654819557648615847070857730290656322317048668982457485131474895866152730958755138558771935716085072062890194572563578017280507794534969889146282873042316695732539982429198734129102825226972162588622910890069285697530736650498748863929919640644584542001198163897608902423595010136112371298624890811521844867617101510617562371323308117189798744353151801824610835667869402340944190674839800624541922398726472161665062113351281737910314029069929620871675722335530568795620151719139770945434447279539940433936858386804259144482401677794027068650788717786729043175785290049973141803313226152683461185259800032836625164291800591373265491964221605502134728524515007532690733028541953496818504703018204950430937975953889111622892164510892111364631799560846284553123319177945111311833314651886255156490055083749908507230636642505448689484002664862365050663854876735306730489035350080634751195194942515251775008091887792894972018721685233560390136091675179380063086949222358038106469678626108798009755146787972933119048529123535658447422667531616909642240301218599460782853833086958033687512751329734256606670791727486999186395380079765445382821886267563161175044990882609961509348424515875737260933008750778914680519897676813711658318116963943399858714648044563913367218990492462279020934298080231368873234428659645375460512934178215740213260293205859407950685631452861366918225119966162249859797436537467535449522378322321401014957929326604017464782889047745065454084984689891039912744136039501574368053897785601599180784940561260268092906633339318801424567447092251969064925159774185614452339413754380041042289651571835455329786666038136350739796327857768326210689051160275421226782864581680141987636607106122319032396212656066389032131700357345519861345297418371705748775891703987808292329004250173301380968026736051331550750095367559728760485799205074910977762793650251306508162593616582769165112731102420855943093044938246618065882335598992280001705247990872716596734539419861276471738188986249720509447481077501044608585532020382052065659648806352631779349659957159776706318244074883462412843621807114746769175414261920026969046662431181704996951993080575558359337074069482301863943484047617229087182514500802216868647793659328836558663445396921943328530666411765540161853244316137964124707457172770857295104629327583149378815791093299242355934557419295926471702382018589046586509535891932241799080794196751915918573565101660225288679806568639621012707520991784929407551285682734337244549946946242204468411622300662411237345755139061847096733888420196073467034502323578274462683428334786277796969501261472290576104670202329291816011325594132674521141039105638718320715050093366504197535021936664711771993120732759960486356188523627169974160849109157033262298365881726032732647456431504685296542704104838418891683136023994810592583107317550576688565035855863395451748959078006433673088171581795802100144278705450290273639346126606718419371935709127847172343948874249193700058351313578660015390326574356979090482772319558215398910035586098255698502724159185496861052978367339433349723189111801090985464987841770180030063430445882955096365121844072868288426726958705852249756555036341340332281633254812555905726784192237970173138259456419137492850677569859580122981511182294393444766985802559520979849770789188639131231057968205293189379169403356103809341973492261138718039925704996918756001871565958214507054241680480589588602226936498935297999485655006809848871958247146997081572876429977891784003853168153116239944158306928883661649624088293805745882839204578015161003255906454212784060999702675355383652958024826315852558485550157910775662256353143280436904016494043719679741353966714661371555397746957232384504117551213067681449150956677305280599705222101031441341505451203887102699207835749802185638359552178849646457526348724773024103541611761806523022321118992908867387028081007096805601030342106011084184720748229771046011950642452622612798498544665330289836977286735956542991549841861527400375095397773119298724013214694657950492889141932226463314723408743844751919459965001441440825911888113774040589004807552657781341076095860560409158190642020157073946451894200826091493135216421252635590602964987074434220567142124337472854149605891923695670354230105049738594589306801155858815357418071104738334074000574732231065247672590870099337918258162332186731820530402651206108054109684499927205219322446046032320660579203538836726621115441289784215293794263771378289138098207394682551079983695110742633208124077751488253418284525951654326387314027854454864219406082606481143482296321602823274508425466785947817164153020362060667263931666358841949865708555310956150208777696729620515651204273697585544907512582056189799164780531139132864527532921087982493471836175190137114984341558059393497896957372718021462479616873712144021613933460323454106651657866571113022038988190784803277251269013943329714793708319444944840448815452177542622429207395247192578099107925404733933011006926933076121582751912687205180342187383378537925727414109144326610826471918335452014823358823603281056031572006614547291416587742541689485675588626148506051426468838965933286323819066067683390709667979294774122314138295061280125528143067711560225618277059543395701993532494711125181270405032646978669488363416100166587939896500488391284842531234433105054961534911639267654694108903168794335963929351964197782524646703632689295913225425086134546360322397575695976219701466392338887599514637619276187301831405833937547900954790606064557955452394474325069072783523708468356819309556945250302472507311514557036433624524346160504096339198107439510645387899815851676323879507789060649704049234683080926743271620475995165086738731907519330616470354325155571182221593127366500907914932733972679232654096173660495413573021904921338645377104065618843923449037585402942748671299408053691562850026784119423536284107443151972010911186141673748718172676904881103234474799594359792749043652952523208211029442928093182219388585973502885901378153174425428349345021596721987979456400467450281108265521009861901586143695352685508966159539278442017156651144539309776256722277977310205225054924105375319869967924724985381556530225118157894280406256314617063032908558925158947037007136715885976946884266903337006567979271435452365785973603639219423777191533233994022728535857258368334206607661147139006966293702321140236786010127818833442150396478281363969182205004469533127746701541349751961764726826057029536425965503637772148006977431491522087826138367072418287026913747800605649654802659691983014717151288059526603152149129936626796800129088359564415976296854379046035958520829246955698605354332361131624205210444572401699917748906165914781661139650713490955746783349022567447181092129315949485433983459356339960584693727213769992761390804641217288901770720665607738656006250901777400799736212677598195763667535755570197516536939584604663912126897784164090948134566433942427662100729379349118322063922664419792101174502946142448908879105312750772808234022844924134757392054104714985041543631645980660276228741510098332690327665540151742897978743773044708943021589025745229840724451262080669962821284652096937398887885839758824681164433584330815039083929527263705129757363440001625124878205143268662088908790153241961127501921033751702237732231963160245983712296094220290005829279880551533609019878204153436960603186595751468760048881585407663361177263634731444227595881626210722491695296069953443028699667027362723095865599144962692625301168897103175688319518191639326508529137290879544259796241101783796538593152818158437949134942780209670498850741988565272153762767347529359188066470083278022329562292791468734318926137187761855914398293194343823304563386749835540437883256986592912957505499300749483472780739809529387007632796946316269682440793918971200416356399557225141350352051519101607539263086420744853472189238415119974513416325115947867282155710783881394634578292692391384004529858132387377196469655534556033195147778507747896092779278728155199306607449182866177692493750967291390594890691248413203893832047216800433223836626219228244106040781119509629948296175800956859985553857671757689086272653784878612357822021644617850181643895536875816649624468752712164808540982133902629634439567322055603941065821782863807134754613348570139216592092139145762805266759016328078797952827432633008025376724120432936419153820304822400541813094067207494110809628890430425598983962365010317079612026313197341154921987423741937786556956350681614202832763206573702469762281936421646448640473485249636714755711324415135464141395289583719221140201555733155169368786273031049183106874232182592927862443296326259721756100929151187911044728211101187107763053783791127498880656770656585132730862262904838618142835449130220448772823777107934845089268885081955036454200044434736108171570319581685710067371852179666700427673946809849755063963498199272318733119176654514953490488639933503787521262591751058410075677938598032265369846518467621289367554659291238859850248772294737827075218695097523973959053953873921337606936212332884147688482803066004417524327690707294939033415228554444682228080442392118268795529883035703205118624167408134934498306183322574875414603620252313451615703668776705189580827449778303287689221171963486079997795633238934693936279630151416279068101050298582009962565124544483964286217557271778265583773077571138047221743825742444453941333095658229003970448095948817744691951902889502607189895296673742454043536794902714866848538582382351555058164235379410920609488650581053183705710254759394095737365139197696757515596368695735898942376358175190247876424441803987830557820504134849626188236472044508675122369731964371805995463280973285845907666930164334323662604753663388466784875170000151807693161212415637707864875479239886770605720902467923471018876227656458698741375059972855388296405932662671583882314789233442274302202069663949241062660646076892204282635447524405741975946565063372281355339262872373367557447244095932482406022996430063416098487450241363705776485269754759277740350613631420878194100531274762185680322664976804693201108417498966258686238024850079812251510721563981640369673107831145179462970515354515997774256328733108017763565020721441150133592544455904116520384707115601434983756790238522722104674722824764366745482225282316733751422545424785484939898057002002519239011574645483802564375008277285527114850683676140237228681291046607519157883420546989610559776217620630708019768988181440528401269147532397892958564256411702474912508626064592866846238278638514057265662943253241463532696980927051299826794104408122643911627310306963498020160010279995520798891035258762165021714639655699227782975018253214347117485888656767574883766031679515801431230576833251533194355451474205519061093667780104290528446373201206617231094097802212944040049229747027990125845441829727376073390778779837088428281106646822534979266761580430069664138502573829732853444527123507108993974845009492717406234868963346157105511545741964703317131148036008675894669721214395290310649872415469128882863827744205784269454186571212066977623988750374900577816591045374775421642862316523705025858577756730449196675069180880956455234125312819996309703904189222302756505076069275638222341469910816063642955690673574733125017123307794154494640085108668509466170402168031086648741179557510912935996030183701460380597144722643342163450362650653969485837535793659945104943365316357203013845235480386162200693097850521481181163428249563603818958328806976137089502968579172926144699526287690081304741121796481405244621674779984697102866634595524173128559348881334134227409845846880870652872857238323442215753990659968552776594237338296729563171368536125350088716067805245185191844572742808416105039642462140400654959891936387357966739662647106488224701224887206440918170423772752060618194786997553658857906130029169737901786444215463040130610656479388509465166096807251617895667411829577539870541047064530088185728128468505895395119140150114614570183040525430709898471566177607276907299196451798546849845954025017599298266216969295666948196698490093196817039826169579619202657723048252151753655605894486563520532023700214018274133798459968036269803743830473685017308283623112023553946128307328431544549218585303232207718886565741715260631929402145884507100165534208283587719622853791238086922913912087403805922006959675878592686798623520130456076133086592680113961431074780855517742339656003709775413373713283707238952264458395295406469641525833940166585139202414524194728076551259097846543150582970596213256493106262685271869203434203296123766735904015167021886103624296350711248202361246568675182654953940185430001840252857601089239585988533574004196552952560322116649249505976453660204240845845680895772823092478758094248771077517136787394938503837057232581922292802697480138447510069099596792184099150443209314026208415566982339125548525695606285715870100515421428278058474721749681918746781593573403016228326017133781999915525266647497173696404075412634118968930432758693997539582894156945409337528044281264948360270586162128775662949172444069670993168124734251555766036400093702636307872747521732753187843035386951357679400644346762630732403437902727147250597557465418844737660264539645997354615587369737120119707711881840747396398128060534405920573387529505147586483215815113637581447307248297156863271955949199343822219227553316714048888871404222514340362116408238719434373275257614053423869560951703948440485889659863939975700345913690509917006197104105546462898852620810154924959195964801602969452328516863649549483622536212677655535029913176454955588085019755938909906742190911505572200192564709027650023788577473865151872464748141248844341368823098859142255826278184657442106456087629848941787629137076105131742560276285530124579674315655607764105966615893409869658404474606622771154603857692353736742598546642670353935036111511699496694294141617324371592219230108811959509569158258617420985153756945020888903031743564490285406443050018026950671652777065728352124540686926012495400726721952033348576190819556230915810545059813111142927756572172706169062577068380103158604819994790233196386883971635973696779165289194056371008895775031772073533043501487810432906858332896651307637003020380447330596986894623318834036580971372354548909912456569859431014323454450587503390181750128776994658958226794515880133623116922291352127625786330109881001132029999573499936907209819987542450111787209340180183502047666101458757234728135240056507838072923984692031630459209380033418172434435691359811845939521333433245895522799372881691248810638696330774307436485734447625723902235859368055140036226813558457840817837813272994067915344532332668917584435650472155421447521695079182861220592620078426825221275440493744105550969304500528552440764026243339675833551358336994553688296115989508164708423445100649411166833876155164494264421183859527420396766068231569533119694224760708641845216348930901233642975675329076628747149078926964712599586144253240646503606488661150925286877320605831100745685964474868034851475421510402597354535917023189553030416660897909118262967062220064601881735296173107228107559411713606499420492437786565570889772726024017084333405813427794193967981038337729051340504738386249993081054022813282852713500790181831821778665858149036701357305790927470099848554729404588688149379815731373102920174637879132261698950722373560067135329635086046107998773303943946812996275393736825087961713242721222328681293059054791116855333762112146672196827009983494992913678878089106196567935403472757981636996605034488494748096577011143708409201031368706142112474461404347402317968992244837302431763501059404040053602804397507105166962114342425238566825330142763413578179842708265134660730173515573730266245950312388729382973229173768544516897749874385566827309763983674962860189250167962926881663868670529998598041254020604228407537127973554963960181686256940842963755874794143041481791108660622288308919085289105840127726991240256593020601974307798599030067749803817770046116342540967210133772757093581599766712844374415442224438871738767576683380262376472165321451431007059700363262730494453054677344509998290072868150312361878711412030484025847786194036568290463410999923935183684616108476376424470307804123629041804377982078493300896924839045065851332709675152771688378655629593877754969329490086784467259856398578513180938731415798465079876414246083126372403625030510440385927500115524779251426474552590646235407058765731869801509026122337746548749507170294536047871015497956463218763620842406549525123095270727344715040722972258315810833707563250389642597588365630944916485913512917473441632958676623355418081380554292342393833768238421927163600585569259205747370140356761737257909104044614330682586450948358798024560407661754664903761314277305380113149158592361070469816743176469344128091356014141356024463016487639838025437136220012653780240469126894642366859335227348907772844548182870269650419374807445021173890571501798559105017404132064673019096726459899351246324211258316640932257472690616792336018982456179798156176713729948308260682820987367453313075389690494209881898819109047518827338560135668648392973689941938797141592129325638147321024285976770605827081122460933586814578051214870689035554415987319230967745341743145033512052057914464558021671892327905486006160340673380200404422292399422102898778618414639615681543428664824613437875050666367110583986254082711407131053005202146929608313214211767700726275326152776198279488009487632184371382073959587993770147343518531121844983227352413608256016723928730755108118210222701565086792480729115593320268522696494074579920775792216905272720230526570760423624732042390139315044140965858562960438730104732222130050189541992145526392660054462390562748423276569786739649272064148557538694010922127053069448017703192837346002478279148411808074691922804939178000887297621777209496064482263317884950479919841675425323300587126414003868426129574696346760602717307672685835274697570048167831929599228460226257552254044780495947162399835159401631196638576475609070457295895762898003204129237348960501032056024873573450524002306641761496078698234301266693898627069349085395126986942077153959535926677602974095820871330857969225263594507830836045957054324998462184664218646047284531585907414208042089674346891703113944245101813314582858765396866340370702785328297410879546158145388257973200022795337191702852065497232425432967409373290777996521762753802361146440314438358410772251868859226550365313159237310248443427617366147608123360803667752761588299645121251702541446047950566060176029943345705156250721149764345548926663646666503537250064658146001760905098307118737344038686913918459705386419735077441491962514027943563758537760434021589621865159327075308664772632630476547684905563914391416767375324936908605717267097416147663807113574325153816104242231967543380664150790343590097370795825288923948939098385937307293495534373129019149420773340836784551379291930653618761932625383809451997270072182347989262940896836155337323094104598935409796301271230188884664652307808492650337779944635130679256924540090631680233146326833358827041200722953113607722888804049370972990804774557826838896566597111618908795734593628497162531672150305630122142989307509073321813275628650045992652612089175228307911813172102435699145947763970122688289833311798496788961206357190266075449471948678574281183532775751272812218547601903846954676335401192310536764618671768073170504008185220381935045765418138988622602306653652027557639420814898339215322924118593874090683922907785644860757142683440474522431760527195152740596235169996350334621383908847584718842464253799854095061112869190244844135462722402696309581751904515360779058407664616501259514172114084214912853111807064857158306994139273214891881863871076795687602771709499580866367953169138736050386378158333335843930232269712464414616796331965780540766193863964950724525871339602179074661786482392530464549943369209979584005962655820465260250314010528091531417658548994936355736346333784567546268941728946393383753332680949017728189351060291657335021229545644258513504385949270554881457613677453590452499595624006899333998918520992741650477173134481643241820817734788445346913281359058756614386688070050859690822940099975147171020068185489125276949082555670486971263085337355324335929758348679448331370604490181475085541322722338343292684523114779008301907217663883800932681848267894958525705515864568680032104090919670884984470185645928175566226784518248856357689935104847837536051693058345718895255920405978236908598218775516841194649463358484083583694774888610640459909620593097001738448123798344953081756885625761678637184056754097770158214899984438005602953950878292530597670692547272907772098850287879088229612084112623090942828431845385185274407366996344705055841688973171777463638629939231204934787056359513437341920035050152279568492160204899298044142375408812883138610067302780161417064266189412928315414984117455484418559735633958371042283469029794523973135715725479009763827537131225985619117363468685619283176202590429623845793208543199824346567178223253401171507203724777669085808298512705579153934768278097939215458891245889496288401272373687226997487472022229334639973002617206266293968909701359912860113900055239505721939281679016995762960164424337990974240152429873820022785586983602693848028632432544025610142109342612226527140448284242984405654018400858693345768055431513174127774281219734051845614690544931766433294201778995050955030856176099537410411762734828370121417213176041585186151086112252284923734877867326678929389330479552809563210839134940421003254438773499093261735284590747274025836365860765665900054208526079959744697150930671210564262420869746271441325376347200669778459147833000011618274560132297960824463467137554095310131786178401141153484999571601869914623775074753835798454260106451944791086566590591877994746988482479306788268399858110707408260308757670775674132177391217902176750853920427931468165460522329569868123687936130085856946200431554971999626138705210672480667738931018979097875153410432150350375951285097549091115675269239171620256131436100647743418472550421889137931260538355688973588971275037912308963050513460929858846626282142078184211525040243107140882351978189933744099297407030210117307190103158147659897031836414452678928868879920016245713238656720498808456861479996341726813468335710601481426147247553250880152524314264808349192754103833545205582433817296566257200494980793941554164996470240173481320739250596613730499677289127397999460755567101815745166835825419457254918766777273576881536690851053234588795542300399552957622408340085363699375757987508611671740196499175438631552648933927671672921672586053362765434317316447219759807964831991541293149584300269845090707421107888513081038165517317567252248319283417493271899340859403748943296031772164447301382853980378482557284576312951507473095656229089574301651809846601070949290976578634135753544585929044553785387190010990371981316414804530799935880751114109955340579437908168353331880188450625422599761262194381451123469497933503869045384308499122496366944370159589862032822205748727174542751200792671487469348326369798091716356919484430819867192207032947101404509990475673378873439245661916136613204631828152360648389105949644662452479049416007117015932616668184575864874411717528550379182013021718810088427089025166313676624053535868801697497479062235999132151251574341663663152209306813377224217104730946126963372796370274265901873180024085373167785608923622275609458135867815544564180387568224538137162636762054281878655264588242104795593542820959867738205370824604033861872150387116748305932360569851802369853520187008127483328689389905603713938468605194268371380901543420874914920512158321885039200675947869041506683364361053820593753599960060536457719384802529896131798747319112643243817079710162639591724785283744189554370259816361348591480675770460585500159184769902902523723738222195711814773860336678672891680047061133727613783020511807093871629509077888540318053122046786708819550665800428468022106315369463098541010936758868077520953731911895791482151828400590323914391959940351351594443240218504475915310161414042100472176536283295926966189338554114653256405210938302387247812667433819400165759884538489164267438017264624544528358689528538794575564641743952075801565011140274224055271997598696411930834670197769577394298594838040156795129150596150334215004149860418778945698026434139989042622965416732793475362493643080016418336846946800517566235515748953760155300856293137441891127708906714708226536223977802997175309367656100069211315699059447786324988138208558635998123898581812468862541425699707156498357761477574214168497836039933854805581390406221263560340462496785885794369311917986436458816776921316401883628885042024664925557947231646091948915167473028633249969714030945538202831393761203598718655200324513081032399252613643277293727324017565092186601768766151560635487525598041183809526707841740576134873434808737939967111436341517488028158566482315792284914987514376253683532284488381697706186119280574559210870791831454841763386298080451169313264918645005726690955225430588188884295668173065231265227628875822060147803989885586584250839985164644765327709735675579207337583540468513465741581375069101088232406826341015961201990460097890265907150773632146685129613189838443188211678884655371725178538387980727659826472655652752387220841928819782872619689946926018348259289790649853129876385182541809285035695620014382370806381540877826277181206637727433009200545563436652060943409037829466939570385279306625628704978396389833381964477920018317513037562174381954554537798985912585639872142810067605505751199739066448673099326325861680861581756523088457570977430467656573245128246583201052428837068306259212768536407659336548860343860626697703787046791470931706964458248457647426095373865714366909607906963413187837445362559243546241112424958282555729727180747125198450749511476178503371891300365142422958494767978678891150748292118488244576562898959444854640678219360726143155108885899916441452066314983033615402428418000531839995458974449164713979798435629647742036066000879896009742048420020611535495827910835852085612827328525403900594863707735952401786610913173594038630248973309185561288558782423182451299766124801405249761664034422904382636062259600268653864021143993888553779566221316690766835748265604865051756094898049196538435924288144549861219341619499705698168117663135058957163930383809492586934471621591379656618451685508743642221158492986697478309424764951168647673092666266919496578460878227947439326396562667680935080586830076790950509003874883649407948747795038480525981269020145692132447471512443835276570287335761609754239588006180035919467111046018317711148268692090525130430955256937733525919535174873701654117094899697853745497296647091252492166251980609748711545949119068607537926137892978102952539147677821582606896226168127659375134558182491190236183076855073130115542753903991759190226386513030977399255968647617312417418687122065598279223686413211521589420034785040029053054068441253882916201408630674962344102517721977962642187652681444817509713302454608029777175918121353457473051620595232053517654501463995080068858827724038284045227973058940469224352300259008374007368369389180332035955590496123638157772228560453537342478692032206488858135189697698850072979392831252749876898015479066891270344384098141320103021028414949699662465055983626968671471343330926081694892261234283770052034725528542069420493809432387266522279678867169920001677592919481754749806251151101332453264075128516564376919326687378601593488919741955717994001623447061408176596839265235347125363524462639536623070828238491595935266012800668157708058842375799871402012643086520078600657229805508116047162440829078700297343844311928672845516164300458985563293294136054213162874260299226692282134255958524486563769392246436115434818717353296257224365389190033773043872456095925103558226130184252507562904537330683690679243046452582531290703150329608086559031843273350657992680239711735579290743524060026503813305151269090682110470102759827458125257426668269490097062307606297879743412998152707664324828391128139915213850857664898011567675640808083730194535861583016258692027628873976435270217196229747139756351408988076748779713208758768696392223064229864101789776332366604662143223000269166639382103741863709357509072448928305041855049679382085573091600581389023443400786146299894867182480703818582626543944375742905465219120009152434260906357221133801914971368560562850908251931855422981743497380376974789966418744995157178975119375943524718355135313776847836418249396981034278687663111461251414509829399144229259599296537837794653138509997266742627962468801594584135644956474111717236568161920530660345031150713102464647650251002350259817714022756474938283031247153424667118821247773505565360829655107369792376472143212183727904242666614093835274613489477728140170070249740152267031187026120945091366023618772340216359619377529390588291620925970483611168223478607906773895280271876892146298024475838132822600217197465941899501139004157323731086610381627290547748092299846035870062361799152334077514719826425225026007308395680205383691511419611841806096093150413945998996788711656377470215735938608957940138896870686791283480409082946521838403024890624127094755677625329553194839260628241667361847671833082918856866440400249976984161962021026060411010179601955427217327475963743414671854566474923043531610282351252709280359285751851574513570615812119676304793804918027815576566807167159600928046618508569213445166947755783431458421813275301917367640828087683466183741279905481503222381096752117911606195189013383864052816348173064429917554740894625014352165113533802172359771134379274073936836171032194278137387055223579268984567345236535420817398180779420686361234704830071248745101140696236527635941939094270519885992464970755014156363355541030905152944195226827669670773553061932860612742451600239741586725035388442176368764222523620789822467006015932835358276403164356257261031973122202184368823545406384922060111754738737164992743305385445798206623665811633006190390094970012075063016241415346376098599364417932356214229468973278053092791166255616553347717312256732744019458593404193583643532979710615276955243239879981310903205063618125058503057417097209213742593020815848949102525374604396873029263628198483592548199626555104795574898692672711283675442581694739137140113569691590691880489424491321820066683614903599713092029497736058149590951712508889430049726704433383599484097136024395151977573582117000732008519387309534807163030118603089540924927944905951116976790965192065617258490228354079000542069889781458737562798176292513103099866986362990530662253820144794207920233731662857079613093756594222145795577363594496438283581640127843654576115651434480374199369392953376032489334842394164961941696906510343365533408806539729236286564266282266155071760079441400744471430091688814339444100002296999802213087142584177528474254422846231327043427021394606785611804817249027592697677276198534031122056154855122884877786636036585123605148754712160136018920131756190454312390671798040946033040642461694470757291218379797244865394611291517477825578980988661002229047446259986377947005522609726115832651124834195221640347800447934697267157908812263602709169552391191710199567504395525555491088454020143066143920627115710741228088089944281147851102411871592875874440660390119073515629594825709571625759238651564132627063552808747596285331220590497484560177256920494993269013775159919706667230660615656123038476515808650881799961125229389475084397668519092912492020872860555622810361633364396421795002282665060961587734414342763223204856779462371420518837841531608709488969255665581212606495232387769884027495076069999392342734047519549945392460893183018585997421588447627584482796413725325256872256771213029284617687045651881302539285903247579168720764692822447192972457078294429129336595996032934266611242719210170368843156702808087746236671821535186852320532746055744542250914002232694824919560669016325518204600446049496236633672423476767620223168660380845944003564921694546662420557516148793694294758228128868640920497770356525423351485558556910742011445036222020106592083490862879768958953406341996550318094631696645037571117535193699915935192579172126947129810372257433670353888039199125921348066795579554872653435534546816288516426546994407495056654967123975449346732015167670626806296488126752397488218955903959205336458375266295850469245090802160135953326052608067938739239089624654584437608681164684124244049624735818637042543048212475810647522395433372697323810453096813492710586157648440717515331074746012302293203276889571915473384575792137978355115040098270797393140599558321652688328338322389364350316012895670914121752259485484116706717385063239456839367022079168155313849942536807724354922445858646106952113238896764396984610186913870042904456703292807842764687186887773799309395223469464806022963590344319430997208637687820166844785687360923713239754619316948606378084634148337930544959583835230981914728717635156440584627091464232192022377147400566956243190416713632812501915696687278929426470666997675859519050382174139127035981698564857199127498666764941248435008284881610418327264803844347519148297154616283919910595820634465394815026837865861649155328667935075100373609347359033717259461147458209492292234781405086303639975777042984956267871574658671113075345672911321502522215541251165375075946219459335200100937679835688432555039671465412360784174106585857396219408298984770738294754112429311685441464137824979219825959354132496558541201268998557346433996236450063485038183711201335276059754802122727469111444891400461791669293540834037717773342148048353425968865651197100402155753248390845016045786061234985205371275351064506786675190124286807925535106636992523681780476977629079135265935863986489892834248276057925820266376790446568653580694012461623563869266649961130166570051594699228236318567067333447282542944904334987829789790877684350033135631879299979065391020662480779630296549895422694246281938343438615843886708030195058535904166297719467057059656819695855970695008067943610540585754545651366074710812255841064878256592042465056482282170507358792784511645675731647501666566029091009074604973152073281631024541729841056048636084339299726663681648257704670322018606964823659749623115810165876956442185066824578640713186044456196889687919057989534852812220605466142931002865388899763688147012129243721234893508703033792481552165978029274998107110243819448111661062825578743405880395728959377276265882439720312370220709138542570304458659015182367643170623497623585900094602097466301218094725946632667202209270912416556852620104834274988458961012686245630818589746391282458448636808710694682905431945408813726101844819381474886048666858411019492591651047632322388997622951722533452010095277989575335976307355765941991662226487308917143589802628507976327521328017022531354080562315395252487521394761823542853720364693009221254662579345066223866413500484197940925388131658156474518775109981265329920894720243760233349801718321058918616997487867177677144071916594172495251411064375613358952958199575104119757862533782739242996901248228762072508851739689784692989167163441320968180153162980825781775947344862784824549838931587865223349977220119838953594727826452125499378292871308347279642259547115604310315122960515320673782893150227794732686492308623004682766759594275427398784676442848067777030490522729590730161482260964369219470442518308501382135211203108607982553946624991956781015373116196951305110296787674009129702541008572679265749950316845048799351456142407602461718405676457199126319379394003686769807453885214098463897031224458591549740530747066683949387044768704865845552724906881915098817950944804997682544182897335369126636119759243536327355209777377733856592050791025759327861832499518297376031751757454993724503995210097025630031922028865379392229439225184599228205064876243737244671692715323286977285761014055936492000012919629652571342935576734889768914596627514239091008311928786714837656448962187450538644161619488824966114999561031267880882201119411416996917412024702095079250840909777168268853580739432343867283242080830581156524575419421227314989551752328497432406814461515068503121570779959482672619051009703123787307713204487225463896372838487897950753753735789453885259378742183084241466281318389301039574536860964002341349291976773211873902975847423650978350720092543523624811650131913625235208222677612443447567474847577097328187966211117419973558691432277213283264807736998548795907913804217539565007890935261791611890065569632993062375572195455103875590271337253921885863537124968194003688746997129078319978241908153257970111370046714039224625199512238766855617942579831596417321410681418937940609705873193663756589189616757990743230467728706730004703044553623387580231288239893748477192912993791102330399065318645974897019217651246226095259110929422588605803664830694054410207924256260322743412749979122868162484401461918727173849334263205065817027689765610484000924703510235800754192331157554294305484984465597960646703285615606667928789969924881870979654396686107384588540062079812654274615900321502851017381468311645394765164216829045970163666766287838297679837522014726863653795749183329551083423018905444767330410892798909749567678437290229035004686084679846185447475620042060369880352244918488202032635138508598543366187406027036799704417240400018873419512491189531940019078119851388019890640728195495162599736017405824122734904122448223373017976068102403368550312985756684632734425618572773615593394952016103633384534990455157162939421483864990941603896885140373006734988373658476189973837848327250391247510449303823837490236968203969061237170381274976085369402303396138727259590449221478651777508950054574810282150132352361558123031204657555909451439723648191504573554474599739572254621617501869969333412486047808217652079762629669518351156444290320406134099781923890108865632168464220442739675738034350070766438368835140469922935223491238112254096194064205150921975679991740770073021484845773664768787376318984377037313852622743451527890572897414494526730294817073850898636867693564021144577588480506881202930824676581491967531707315570827880343516166813583691781010520416425957952843132633193572912489317484177367307225781611826246448957769126107568032737819650051200044274510859972861964804584962644990510502831734967856272444568588364772854901752214269454656523201643264443427811032972688225956850865708719924519388547071188255822008586951036808000797956170493223718785128781316575903378505912321441535845850617329366499566642520386226232007551701120816136428812308087075069050345617136585733630337442178143440629091368433352762037428380568750463342945388212086248962048319171722446660052038118915805842954251284428030953390883669093050942408429773117915675681813402032622955152756230996243448174917157713083308325593706267223863333557787338529913648464461399648868945419880478150234530867913471558000858221321651996295310915354018257242451513864051050716432568633037793193992425068222565528535993642770260307626716066217401447323962546680211484074120323454694000646490179637002085702123044475956418989161300015987717170236757921342075843150312676792700869086077696188504201070105413857347128456326007420174550890662702458639365671783333480311907682538071494127971597437965087593121368992546448417444113430879478634758580049203863929037566549620421277472720766526863408087493306877998842932186121622184191530431979044116292270029907157959360283056645955322607886141400071106822388897415487649261875980156619464922826842795197814370068107536870355606397300242390730586430137364310489268329729438159488997992373897576287495461232454785890772547441920965841692818520859797495115808832679238710417344979602461690744361744471005261848577371388614435608465204397678778526821195852897315536278596939619360048454620312933028842890837110054899102314580918248205296543014814069992862168024717940821179510969141315323575230797252544897065172555531697350003377411852620493373934036493158458456849463575865395317653811726981204292657932788424760503441422516534920211225783442855158800451296999699577257999384288163947084048988838828971403789215228398185712231705771264498717277475960549026073302792939951213734949562556487698820063657702591589470891454932673242487317589179359276851020961858905576625913291054677872008939160426621399390066026482498730105452466403595946235919448276420514923505365785667466045078897300622557723310273789610248109898701012808142494672175649058375052222358864104276106491116563508602405700090632355891701421281132484707319276739156707135293058933264025451160902214277935574691287036026607420754853356443009834872987659863446220084121165353573105518436602183743860596750722589517797934161829226296138265076841261846775749398822414815996320669566823208284904333638864312373637947260119022014308637014382229162109477307980967492425860244922156286566525782075100942724562539123480534889536919706878270689448262983723873451684509776148337710715782999493165975192574461808205929513803948429366789838646410879538805999102019533589392135018616029553066925845877469477646901218690260389570332312648498861983453322301774866764838340373323911038215326015274476623215473357152347430216464107695167447632174705511554241251955993158731583825986338646638353318152106441092109181958555301132594465410370994886759747458961696717691861349108531718023134576909170146871605514358071326211226299695356792585855161446110610746136548283116550847896036219397549595078683392010191023046066993814136085675450121453897207202122924461766980425305971303293537407899540793188988407020863862574474126061544871068602914258707341679284170573035036230584024020837927277177190304998503164309903387473619497839476220626738887898885531782863995992189454646828863229112662460671535113613239842253359041466097472928584136518771153735264973124369032021523787893676630629479935002955561303350821415788925991059474904340547549955725007447425128546959316583423978152098383738357147383331240989132719985828908089774250853143654878435678093968300734006160356309650550532680973862659048498168383832264515772541232153757065745554722458376744344315792765596945736395231028124374484416547462604433821821946039120961079110239039848849655460023899485395243634995207545597678060663283575122658400712809474247995967036215048830827304571672540662291122566754193523108499792185789249038945619757880573050694110152457104687622599876532241371908408603570473982791226044403087521999913620044647203008764983405128311398036825529171126395516961228460249434350608273212959563899000453905135686645340892273658447928209396157782036185424732452942129446677306570638938109918326439263366537730457325227778683350354712958699562056703099793286375103093551155282204568303794143743425998689812676232794646300326397022855478531726563856681900574444954135291552729637833568167548728937636388400546014570095762771257884166203337199118253300632112630579364668568579604105853225806092573228511375611541985970239502220087672186493069701513321054870723219688503227248915553453180998371735083584299767792630989792961547296178946110979188170108240716457185744092070777648760134580731885464495197606942066551324186853539829190493460702677995156659099338004848809418796406876920732375579875018776822045810196134115538905939382430646507685384041468210900051962567467261615050388094725599729365376215224347721209191980055556381651699371796621917412234669710219498888805120630739488713949677090335194127437200875988185538053546076254641252795597011870996692502170624959901144824162522385794351777221305675416528717612004708914228148827290138661961883673516874053079649667210113367735194246324107517873807826655151785241984031173405865890703312814550677393479825941687664817807169274508964190393606647803121011017960164825906397989302529874629592752309127777857688040046824069161459862563849862258385459427213866401620222952566590795375798219278101585091637308926573438577605172831991247910507132290643122924916107471726141151753050849691726844345895060866177270689356278494067011350460984345635092107934908693060521014882918486399405171448005768987789424728250386522919746891584464723294133234313559954323319635691640499946640646924130270884018708143272662249024402466651394500199514716935181698271839650236575840177505689537505955969294184713734268581698767972454363042860672401186156310704810721032251553461126168837950675291661492703445050361375642332564113941847358135154837710350643000269973753217772825422414390503876672883874901732043266136691370604776679613578298950359122732457317460328174084372662246294875743663485948005176748397664749569832715095464748511499673146898448876557360131368483950508625209884143632564566794258268745239940042174938549395669358227113273808935011667126125531631081551844779717109386557516766448160311999386512294113274035944585704637835755006369116988520904724897338806746048686065165521969064653031874781265490713878343231255453636288618822519049124398775565231885636926103811375732365191259863993693188123850185736165705712967531874567722463151591071717082078882256830022246646293398526547447847705981874036893234209856286404929193596251697318503346631734833186322311946534514902039858634193629851375478629687513298207898340007280355025585150937379864575515354534749582963920770102450425648044106668301121749275935333645332156934257746759913811328716912733135195098143838852850276122046673857923156227074177545113216689475909948257637231270640422128881781194248838739935747163299066432312240848442139796431448330989922231679993220353386605382868081871006220350099337178547578409850807792316001206790676119628898570261931328863708867299684890140807383201421254154951192597075593499191811540219380876514637434782205492177989672049816411423628079933153604582788892334083079509965332824836935961043661487991394794388419146410682431835619716936328431541172370301754350547115356163685006833210368746636155864017434839209446726515338691340366428766903203887122957447722697282796832199089001727868801333021578992735986344493517809116826220537397741274053095862216919310354310807680908430911559245940891795179414750356739546053385994158454786659743603423751915682694592663374515250931195845121349096027087662017628536575821094196667019268452159563280002820209221588745887470387223514536843097326788254152995328260869378826130784808548325409395333534231145708417779884899028214318069284165001480352223171879807383112396291730299685930627405419258669180837427917596844649465210640223000501262344798557431768717694864246967010989197756101781288107746535091712770399520893787098732533431151688845331833503897273703597668131475492765529630637813086067979115727306774197873672685201057838646757107023688981285097675189380047302224918391852740965393426892406913110918281898858346136563078727620370496460100591605569152632172167795623781893813116226665448943744666030111208871470915307319888254178687108289322953708360328244673995595229337222337897660509211421052240546735242240036769624227008367904379644122198634694374024104041773961073346613361787560623117000021288152044064391163096298787242653128228433745398608858026567913009656170509743251009266642506340396615747480335388998309665818255704666870829184334633961799874561595484603064926454116352510046666585465149267558489918960852569581992534026869823138533729968161711627010193123341477363131833862686034667304269339788617203298886325058511432959893405577579492285489748626834512885849630708728527355423329270345207008358042330859470212178084510887655943227463942813103941663515083849961294920125308417483662302985676348909096487226931978834554132390322580834886542494414736786612501223385801734790680992766007084864000803044251358518643738944932983927704157153792955694896925219199646229953110185379637170886381492274345927016596034364821228643359233879780176630418777565636635033473204394262860211908325139938640734912445977292739986549276808061015009614185013530336520140552905690343348330996544480106585874445293233876260322989352363776316473010226497487175245534182306512266816133752946546989714319939871988101030520684653044536610968204319890492536222693412854270604187022177005297883516113435947139326186929580297711236879343270356363446950829449346391015914139831109349377614475270668252489201054993917450918821486834897258102691398418445327823133814678988093138216821138250893497548244581639859131455512857274026030561176885504436586127934501836838048185358631489586218722966880781964807510990758121662634572929605404566209978974524528283413016202828500628407151317753661821570610591803947652289574554669956400843303192483032488867000075542205365810017209902023911400902041870115656262702322340541738735573727616251235165406978317871657752251170440966238853790223432809250964353002815974337685581325642656560266205520354433805103247154431929203590189013096383497016430157866943078128260959535072684619988716007008803805926157881717669362604056597267182395109734775521834962334834265512021114678338996949068383089965261466221453728052692263958856172901600170892485848661435792274732726229602206767907560738725226224627481104375667593778638462119148848465597832683927092376253974391794911238980798627573481171451491317452007145162279189198445730540890837846433012095417309311793933249969554901880259859738956285095444045140185427585931800405611189875595580756583116401421870055510466954028919175258751597373349584488833614431642298406255553830581561767470857932393642977204754156277536776630926121420863359202541611248222138134703806468837036092530022478195125077901579581238884922719893212737939212925723136561452882332951565686489199921145452236926648279870982811316011101692674928138735045168135954008501892682103647745070051595352861808319910752718748862144134261945533857182605604169389490248156870669229241899122930958684803537772533436412006630905451724224002484217388245276803543493544484785356724913493439723830499484350182748085930199104835028958544850583942081915102239387297188095938051543839623893239352878985340295144709340823002087567611680045386122843695163331782079095993506988193431353521971379435121117427630716506756272071484955417024992144554064566795292871350789910264137410400211078285430661162430994707151064755314896391000248356379246386425637578608099555959613259359310674027963264878979587416609628836593379020243584183864260484257383277268119349305660653833519055498895542213688933815077815044755706501819867294181185110365824925862637829100263945800928435352849264742583551288541276367077136027370341554755764868640650560495723601932843759421671788266980399780064395607835441408715249032265939240058028691040675996401975168605797701390377755647901040245203463086175889667963562358240091260611083246148659541192388928158479840983548637183197029459494996216124927844916147305107659930577118307980719311450641693017101284620056768826184436290798623505805333394599989322553196057554818885293795421612483185777503647349890052539224403495211728698249749603547447071865330244775207743976599219719517995789613642996132642531260682127123854860073648436253163655013249983455352776330444307105270225304139404430291592523176667058332624935665218594353686208179171537924879790243865387256256181770195787544754142615985754262166732351931958781456615227471510932527865373937759944087749120794144265059261313258136688112159990336885327346535195142776164186967372475452178940662940841414618408791794874857383316646198089246801801762241786649356499488434621990182568820690249927639250780962122608981740806693539976833716532896950143282417515685802438722057746652198797157399795728703103106573536123258196758821943635570694139998717864081816657131837479681980276892686624620769772717550105117173787275414109957748430491289515393452060913494140006669981224557666572541262980708704465795170355073257754202811342505673076551818891412108143173053633469196010261687023146571857163863865244906056246370762665050284964127835837863705640588622478868376027082488660701516450728753837032328204344032568566420259178486523648633047444586276501815249955725960270545343677918436487122221214654843430284845176147141175510718242687658891485501234731150963094661789235194614725450220483583340226635133712777812856600423483603230575611176093040196075366599531683412255127810446731478318044835130687940991049264181110866019956805882278694605835773484893852253883184732343825188008740794294138779989945809225117261972531441515945928438948865867391937869714132784106141715038815547086079443410187804877383414253856953747468268367779085633743364367597009980065955524522959064017507847840333313895323421042116226709513963826558060702841612452111808996619020227271106166167028594313225244265109791967621523098318280287170474738615848607899485044490425301638938738933672968111334919824891631796062663227858424082184532958858341792317908977122994410280792077868342164063694543424818742616706723223426733546327817824636124347991714513862297702523559300695582877360224753559253231833536816758790997115109380082208905524080558859887039679304368391670910855330645175756251045174558426384147716365092134297062035214232069873068466981767657691887544707779874846463690478920606965647854330319779428440868617147971470304445664279118714926809782914533162073798687700145463867510804602548004177185239413204735733048080232816404365775122838297357104599859217282388204220988185182477482843915593403179190569647947062891781263858030879051036639275108423567336387232433329589444187001261415124074180790185058436914050043257437494424784162082565438756255414083949830696008701870849288579646314886165022231577340267209121993137910546826543437484330654095295723082787654888732616132620573988041330673309258267126772589762142214406500614470292051870732428681949432608580751727349356521930718583458151073607714009427438072303823607873491526194208096909549263359303452616370720930168695368317732546400848538766461725801891396942571644896550649652371975438698750322919490525864182948843535330825332030240730229934214338377086842482279970943532281987663447509112206934431311466659309260405611412868910552195910769753478937429604331649105065309779610102128312643270004303036962611124199880963158239296335353577003978979945555124516742383137708332762558470156712988066283137085474802750589972426383020999662111091003372580347114675422434127820886205135932504218201386762239109929883206650302072747547043353701206001092727800757655959919909105592888367033472213558027558040632762124069226394641566722401207485208692506150495895453641233797265567739401795566243310519464579772693483925998530417887271447177901958799339573949713438076761458558265864741314371612465914711090877243491639785296852961195554995968369876856166132502038648924627881981669663592725245030701383541737889777771073743444098683183208703014445385972312348160342773209611951147745872534196462325168846874708863428228754278529869794569250584653735304369732732063861499950084134798955529286262532601899070661349397173897526045616908485611738392745216099338834294398961140213347591702954027181665533240869922315239688566720142100763809676579378059061122459219338724154610235759172764256672982417664593143178632067195676767702650766277473859311876725288176728450492513800143817894179096116761587898740066373576491085975648151523026934615895730030351321288315567485664083073613562950715272240811023330273091613711005332582968875574365489473765131736099315747631811839843641706899823251016815938863683261707030694735616671055958232094082544193082401384098355985523902085847800846260001103581463346562648454334101554267795557511615366292371154751418211376580341954704026455607447104323878071083700127410700929056707663840878190900616974341092648552436625633447547839127309836727332792792584146122415224962198480083093601907072553645597469447690440945357768100600898197769964267920241482600035001762189470719197283571641859759714591993459537785584591966057274886843551860632508508135524201921765092626224205756254956635958016969937282048351554375554811679405013141206954118868726111111685549592745343756607904878047663199749869053566289148512984007818831063237058463218310551823604221160336420087685615610465390776833430953051023702832011173349721027308678699851590723331672313689939596979904685490681760280140930045987452448290191667314341712382381447781931449668658676993787273802855377301122844522957896081561777630434806928425076614279821407678749924459460059862120390938012012187607435677992598890585131556717921490816976351019145386402478055890791456822972536661071811028863468045756819454120443456227237819654337433403456083777612492988512015986155818727601301672951061369350055714397791377159888064945617797184318137132422310809773524880450181065418734314167998828827544244088541469129742599718976291983197869611586458548634314217307780660734383749342849317248885482508783864373390219742848096251111500680835259487150376695620473641909442855914484018479197721412572165127289424010952283841130087747472642494984461793491641327820269857081594244221028333034840007717480444499094249843096560221745208708309107132857145426609896143651271966823845117314648088868049368209375898773039831225693447542602591335807896055663327558846266402512879110736169982291347427216750405281743976735990924274652249678487107117478410239464950212080623972431103175780140332332497181088256177932977719106963094182851073119388462471387057108843613964360351159256880336591195689472071702337656941009685973981527339467513553283461003103070047722402476288318459477395979406817856147324890459519476520591833101036183451594879374250427783258934993208025740752495642304563935468619261312685678943520278261538147609296025004398696617317042533133784862745816782177638550534631134732444294890285105142349354501376683587263302514690429119305153832459197566146261488394558745120288623678384468806776781097436310512489896519424862513007935609927319837270746024419056672640627095220480153066711896843273734238097656543745316203881914205121457468401648914930004877859264750522873091267963994238822258297580218678984126281658709172531371371493419984534369498611565030641853100354480668383871737399361313426769448703112511890203085357800181234766561188888306218817217951110081729613250392381333027636458319720241299014393524823103134623607455112903003191234932803020539640904183662705569421563930126580802826041405449744382288596506432684863094373271104752284089641269192593806720213693631134211478557472429854074299505349241891991245700644577343644273349750462873550955310184465380684644241767498171732240385946188970166050168884019012001692366440668159436035578317551093624740000566769119535681409791387556102487365033033449177774453155859010483446639690043017194928747225752014977241408273366766613566757194090055353951199530562519334932184929287464961595846907995060039397600554249646698614999001928677019760770196246232613834709493632577150028968001719486461651227512733823377913738809523153815743177091945712573908848710818134353860088937221986171953665597890065594887937050517858003315731283906398435753346280317035575983065489999726850574810673067680618588613636462529441085584154333700135208662695163444341511838741937723962327289176962544271088496907331522651366221519813901093994026141019159501477935651801032702988479090738682132313311332469945815203892237439016822251351091903020594668241926519677963624860318927503947002547215491285734847952489073872730612004531826458104561537923306913671370916216449314522003577146548218942560011881718174380310294249490873479436262923054325147390504089601778251573512838201064836924976201398411841807122137628728446949943488494937516497891046490095644933734769440954068716036937921750158254725737426913437089379097051143182101535624416166624251110154950472100038358649582389748353702074641560695375386059001304959743222202253451896054311169759375055925390463218753336566395320913177357149237696134509344462425072476171000597374348247780385856992510706564324061321841626257865969852304855575303395120955589614121749036471095200757747414219060915420984464949997669730865105788814111065605565473576636396410862391295150868072787227953659133532713974431293223463151012056039001640400661784708943041054517821534448766652897197094467330339642067994266801470348870109869994413075890729922563319805302300342712689558098886621898617101781438072756835941168132793052308787909698358639734480423615906226868069034918537066145461025782291798860375161160211000336426772216305901587140044529080992200936114264057266853983436697409522121073050096004147430015930412123054431075094965918081318526293967423263224661243208668001072525662230494547965266148411492014789734185058729017119791543001195865465388830458424617945113623429159901074073692850041559628939633456076139176536497411033654278254596245711961888629693621524200479168989761257916918136732793502608730161519016327312833911504193922633499261942895610546919631596794542867436453537915535697522266727985334608311372171113849607500377491357873345858180471817423776628434175404722480723305186751232647215890952040118499895609846487586584950739884146295227084662289745378815100237114503872983022238786094188046471537923709531042230337370790242288303758241400635707700068969820982720383720328545881170698234847595570184930124854669898098589624268631264233206468151525090149074580928124101432609602173217878363173757081488444130747888296621587174989829299418313842806459712642225629172980798786328167484778435244547844160916245508702424947612058737474833241882225880145331520484976473995029051499107416372750576863985050115276501109204937998183850666710119702206800815901324158966384543238551842793077495082651641371213749402489682072353932819392526828535839475864897508196073072955358456627954278640687803611400241839197917822827986804346196392049975202195487320005983284423881304716798884731972394942000098750278888250110737923007331973264940057890995504921090230059380567519912867530114106748194836497952168289956144269990930230677872085298469802723867599325969695199868512453628142473215494865651026830177928271920732995998476725314138954474055739424729062065729681463025309682254200681519857723073761377224997364034087896958152146493699808421827138863716405289810052109547815269105399887862871724259513434689447250813421193345559304385131534319165905822825799404037879434407825741842921017961380530626692630099746702215879034503146240860034874825935320192713164871079615132743212811895779816591614925155579766688294323950784537932146812998480950953033235588380255932191527995798819831689825667455017313026242907137379191777154355733986307558177820446670847228344687298081184843817651100636493867272261301325213062701562883330159560302399846362803404565482169716147050895066289686079970942560619125763671517552491907172023840800699940902713070398046963545379060370405198409005962746824586571167136187699101289019401400438888697505657415103978874527027728522785929310500381622718165473705373092486252845803384321315422236298870541820070181611639324755811722270940215207029810141595213267180835758781187048777515481701028022002048674322379875490503999796290051859201829496903284529473316359514526670780947309399283526223791182127233851637827255459841652628234417400230931676346572101078069360979667559961448785166371561454561817347593550903371558055977453531522707496748279909527803044272669296649196129725516210690852860599585850399950735559976556749371359280273460297808054393507704924419163160092868979731111027764523946232257255418512400800155871223029630560670651813291181310663276816923044261972758647118669673469095523452589692660938523085276767294761081013512456524903493233925156230120904742716464946149891202457885969841986935996622347616425984471427269313262444038948481726503481688265568837872890444586078547018122554397205311641759758161026997972419670298076838140848689876500400988811819075848575079544558341345206615426167205400863725739115586023002549506580715649105891313491081137928402251327138347233308013676989113925163816635623073728029710916489240862743463058952154276524605216880730054117503238872474076342543137793565003916168918973463817836505665199071985683130787640307235188263524282849233400618372564728135192543369513877688455402651101496746624709072252497402531887701873787377288410460093991394127838495994272489672922510546605010854541233828715708557588808216088205379204361465003710772054213181737611504978976001022727346545794940204449338985647550340271983623338597105110436122144413909987720418761457118330905197080740402958673827769900483154242154482816520735217379669007644972594952632793814474601127588769564835837228673079984247119969154784554458118472271843038531462986968224382975091363545596544451739911821554091033280581332536795219310444532108025265429199203279175779019272261375966138130262196115246631822092377800071607752843580465827479535283964658217489098446881403197491840079120340014983658735362629800927358780924156470949286993048636731314609912470556384251880264600785752704056884401515911464397664830609503419033122015981369283602833758959429545649444975958663868218943805536337882137253029780455882266108340858479509025712654839303895020624336983826314391197289141909965289397647541547003002805481426864267741401410110302109945527040351907517230422623533347604560769728322970260693038001490864614757283405727688854115169156074531864720372426492633666546202921577053427266580680993322769357091597726885591039239629966753632607698984055323836528423130660498165617622689876777370689551479773517355646555250823650178267291044720217804646762468792752384446227778669663161677336018301384672314337972860350840882460144896784838858385452071963027463023110523925087307451214698707835380569349302939628098821921434301128356956951850795356882962795661633977093348551562057116486376076676369531463575802033419055764458316244073270313794853326563215254241185046271684861071436347166424458916219058638479355540776115620206093651738391218881395583465791181411603320173918428649243610059917572049036838887118024410226183394099045984665922437001168058250019902614001189555746774248244640072653418683514742095496196910697483920033470747702162843724732711585805493943883959353640129200076785930697699807922385490576016257970875589806104197206149742428615088117307096134794249586946004326713772020379631852315354993383751172378833722914415718255079354272517199714643885426907327080618989835077014065896207585329843023427730031273266569775481989354762801415380635528119520143734312959562528720422706963789751432612797356364852015900120667522917856600990704048376181732148706618168525384518577041870598091929580372862069974635703424738974416492251340438103624978447438163280975285903863856375341177354113307811120147121743318563514538565990468551279633059914019585086296145851440813853991020404803909308628689566833499314083056435373074784622796581599464419058058532250386673323001772660412445665273821831152928597993438452680081242237436656901824361992543292528066329329062851467982249005093880365199463096316848863306547552172221126834864410670357247808161012747810230925456554306621430912780777455312650885946403389626076663508214088277241494160713020882628894269507163574160604513672444750950124662586571303737030863749117399378273705748586698197472102552849618508450616653406960099209369014671290225724801926422653999393544390100616634057440677663380767500311076442427394142379279818821018823837404343079008924544416937878480154025663395507752679221752901492822917458700889397762918728903070920805470336355113827401687144368660514708830974425744087004170594668413107345314371332030847790649576345592756746213539365577259807797819422183413434240564621683172634855826111028465462829851217362389149427330387492046723996928013469164369218277884609082018161739303682359305120474341628796734586102177682216475293267649905162463745722685485278399464231859251244269465808512863763740220900101700786567905568424852415068750131340139137533877226858807256353956397550999395686448517176124842616311793110208134861699518450822345723819716789338857289798520334512322572255474216514060147628598354151529983051530558532614010946050647095036229971290494003516397891137105711285392711346541487538457500906491902777516967364063802855254106837403612366183919728684278181535040628956544253467728081629865905911318788423195589860094693179190571657852290398636799601453751772833025542619847701596537576492974582976894977073493346067106667692317896985545159208538521141689937022796314097462635143539395899272508034317568210249776111179335149987395948334167254550059381589196522138192194378687920549820218581018004951424765931503054475436415636648413841121961808279912371908687557584635427702185410415167569763093163134679519456658060624161521442165596512829615807808224446884179248407520893301931998893868053605946898702625915085531247748915323498332344885218568823215589577679936980066280621597544984505113103868686480098316779946531960188096280983202807599858022276986352764269825311959929962006329984731433919239223271216684090169004195361760250701219361249340740338239681643079433784296086906015480178095770510184732471936103567221070106452679307076782042700090733407863560786049821952630754984595699668303716189186494932711151929194451937617273460461782347437460952971672509059808129269723618897272985657532559175884449188763558026231278377045156089070526440135054053623873964735940609583301389717922965905060790154863532048945363184902412179570890508050123351807208163703630041575147953590865392220507635436387903829408710843203471693098217905258678292867224219055727143580522997873538329724656436499360323189418941069226874940732394866233286865571371180259843790495181843667148289695220832257263192264807189993284093948161334926242214715088881630044795074024124892643694524232116322788828312055768167322491842070701882097834588297149635720689496217771538242933774623479236595959387524235215785429327300059669388402171803813999489342701093843325329735671783615252927985690305263022551405405210904768172894200332034950291204359018675535173674640834987464492676204958519851777043705012677061803889371180791241197871122201775588853081901406217757052193218775489678874607305629460553196340783402545270935148403241926955494588607923304143314793563106260636665564777693694529705192149973771867446966741011129494926173099749906263861887634457651798519742387010713100290412330448406004987287048882285302744158068253172706264041034452637930110702006024157565424792415322644609606508077221962693239883690236300395122771451042759416215223627022052305015281796305161133802957202820876873047040357540070603717641935835967979071182309005957110401636768122472643536969507830741597792001491291011063423951984714219581325628649942487690659904465419196655717929368228129423871039896891715407133383392662925879345681159087407806081450911236435168780538490695657548376558789516110643617530069755022735955591465825792734984890906902772719903681889263252453331817780486282399855550898313915504193780232274102884673744968651998580053307325802965829107478263438951519388712434784358192674471667552084061604402077239729405422670560734516312060295855418020318188706378198694268730361827863965772630181727741461417558601866521154621314612499506744106227744289257893595671555850157150847236963669971027157298713311948576634793230390248703536122192026056954602466833196715438279896972998018984778751937567448428098657307403352158257018469682508078432636494727844763788733411663446773413038689616680830700698077732951683694506307749024009257269315099286349551352120181960288328547247554240218744261626064314585739191896663624862640385506363857843276309575514272943130181687550320004407619836561773586814188380613472325744280259312093723079779924264855264680224609293581716962016513880545026018059868771893135556618072210201634379373496479918214262016041936555010486136690641086973869034501963996965743657011933282295651159322302081227770632733760271104858253540359032870487211272068856085667103223453846636028952659586131846540994957787766806107149956178096344507794397693890950550478972286670232054365915726884657768333753137737909689800904395349231963868062491384100848467004721781335348604083802868740346512831296345509686903149267329911294803854340361943606517921633512732992499408095541062692269106005267300226252063500089224937527408029943185490478518809908560229019887638374024396978082091744818813450773402724621992501297187335198830913698979295406448376272967892229753990930179267155787116732923688158759202656949578873689737197133569746557962899749455859269434125516007842968861303088819321850019294371267309525795971778701130661158597290523854753653816969129357929753476551774279533786871367534695642830917476223716416837966003822676379763311527016423074480527212658758720661995151730630630717202627485701056043251770532190756467492225137723935499970475281338589653685937890881747790853825767533260788366987201137431637870814626334627560661628486268548247042141902768380045615979908865438311201225703355662305481403479299935653794021453185520225746689711910376903507185968275645851981055811631154294561173419049924144142502720785092024681570299500140384065001604998333240297760290247879330601721277210614790487564421274207054964302936260753079134846741596302077537088204776401783034542823287985413945074087588768563626802388125343281232879895403653329974895185688657969144654689368117767796480500131040613539930171982099896886367350284935749504046464172695998722889106686545465212872642608555542666689907360767138346848554317345369847590451495082009158440053541572544895099502598663652527289702039808590224209293165549639368834917200691456608814996549852753632943827676718191399200075292558947059986482481066015701612642678409176881328836692340058591417520226695299720934890624652478976351479349582675993826765490762798833054735627932998207634142987688115573632164228731484465226657192322127845157450505376891382141287370843745254729508406587201672679840483272117447192530759887233906460012833220366538521003069018217983970566254062801142043454162647480349232620494270073979340655685025198531743235926056289875324958222363613753025123438756621825519493595393555017690739629111208441053602316537513440126007079031147416831113646244234998696700833187918794480519388135773905579962196183720863142696526665569985537707655974650737287163137979291057603688577041548496278930637675328753989890465507320160364387375307840717581641687519811002438322140953525128047487271853467865039724724227777984515381774491273623458403110102940045449320055153410734887266222129894602100963168125961161808373534635721556822386808659352397149070087668376640534584064562351336394752107450833241490053184885855395316563080520709819697496404806689014097636660258528645355610820582736492564928022902289355546959829917187485412207498224432959260252081964099039502999803688393907340802084815032061652140325047222759827786815474875569095728040000091739748930563474265445878624542750299329046714611348908726635790628239552890955921936777782570050712456659255753703542787310254803285480076814145755534596180986824296849761215353347681269522177992050717979507176167607049171262629556514556212756167820580974956257271994942284373907428240474221249111003940139723816335625612436667393923472979726007045759027110881820846994640060026951585372676485660859749109273786514774292956455320724501886640116283035128756993707834951151087581123295392353652814436271099273962096606023826786112953863161780911400550534591180450652807862074843866811019823509244855700309572891004130951302729967594661326283698382894578438165204772279263692371672038295688462328643403724734670514852955093719577249667604256164998943541547882381151384604368431162493993383124983350478118423979048724816886787561430750738181708155902230994394508812026229931938176373255314519084103445361621281691537428278600928174692363604260997916215441455317111904143095267237071334037238901531377294044263048523070829450665801830948298270852516151783597161532402725888090914618861625729424247884373119465699243309532273728913902965507459151860934354200806231534818012855879424913621346646516251911789865078137416230077144594219572544099809293390458238706934820937211421384237585056460938623405771437699594206191784664692060548554952876954920842966842947241185821012393582774737258404179936791223761525876020315368810684511641196215253932375268305992815234972221979496065099575814896659897270513844740354149590398211516066115529740322422476946873548175277221755538179885598248378528119610494257691397658180816337126886632890749550215381584782415568525807488150477877476797737164107801808706062832826761749510199693470992342607483615035259731600628509977825972879872727985522842868636520334800218593504829973253524756966184053436689320219820977999812936920677963952550892534960467845571863387076769254499499575104533750781329380593993047423886121115217356002202525315382230046783148332385762428457903766875090955537109985343424238243428178850171513787318264293120472497962095045539310594987660315787506624000081116661259345244114096076701493463287427609428778580818352634363797240031801998434477241984827562953159149079366379266913777784549095211808188492381831896704913878518479980786907307473734908007837186412216400078660020642177735114428262572371765635030141885752747370760013531542657611994136531553064765749659448377236277100335078630826148103205790214776690209448487979848361028001879631933609847622658824546008519652822273373921108650900653455526762061967573316566972503437561265233220486347634687403030940573093575630755019230886138058589933619450646083455386566993029810110802886632558746293080051103333253602293079431396076016303974679906361055186820123871192375098945161053044969120471828821675677518748293723919606622063785317020237080708486844385494468309830691917386321299695462885020731172124294882814161710480726154408599173215091599931099622745457066035455032921830915192578487531534312682829846702528946714361748939328391972940886285452570510432266991113327664031460827951008168604922880553099766838709808345797170549168810212195278410601765611584255667035310593945864913992909368509636017569821302860706428876068331074399460402196019027114012755453576996485556478936376436090366560812985416107293154156841954889108122789258725811831759804988336487699739178562152438829301297660411887516851365354949451690650764217302944439716011725672392524964287140531160498906125099573942929270189475254216778527465640797182105313312593072115943522904496957511942658637455006323395003331914139282014432314514028379301146094810608796632397455531121771602110214226040030278626693517087556242213857037204422862956810935497954658198224642395478372618454168273097210970211595908950864664373713776869522293413915309089767623541744133621695315354671672121878549172831255970906722679404263788670481900974005211952162586412994735826303421137702622169127425875384773533811571294157349511852263699595900267218388919322267090316782165368409728583913137043314834880226063480795673188686463103101604430714328781427222567841702411035409530171068099508812742596933857679483527900422688551500766724708690517959956488124603893385544383717504540629982767220945605397272383102859158680846090851650819389927773915480613696970620991999022681886414214896383626994819665766585437758105384647791539839331118661623459409838778974223063966016022978667853283903004654742699310563886088405194677852807690583929455903919237390505626933420437671831223086015055010572217250197937139564072441497091505128173063851391403926925198671645440735829857467403911544941340499148077072364540080714818213442884241584486330456109969257774395884981755038478028257571338532317783194787617704255886348674309192271653876982987928695119697397270615675579294679012413089743886807093831288043057211279053568148076289240878253254376580673539049216287917872379275244799060834320977815378223850286246328397267651549082127023590094445891055152848255723411204577241767429266394015387638898867438923088796133061989446208832110736033444793656715223756915973278147251512748171943757639827904410728819424526434648959002135652843652114473093394448797609992976595860529973719872668552230026452135553127392550361241332360104030747899337457467708434864414978511838490619856124152445478272568276819392761723272700815897798641630706911428976122263278331293137530229642040931679096124303611168067441725564870036034162855388454796256902174013101278278624262971051574958775031730113745480975017192055560341687401518024176564387847605273486288118043214859536360670806524242418778808556191852111589606130367327600788105099779513752842058628074981906607527782882907927166873455615515914636708951350693220568987151164648702935736892844836584029540206446286090287304783256678597530743405976931969299792718181052307543969942895912978384918917456691199616688503332714521519779102983998600732561531818223592869372830428667269241973349358076385980981487312409453152579190035656641807432744493483561778829868294099907776264989075541159085990849567978772062488656091867809000592604215693597772957578444126969530671806575007394601688461893514081343259645571171328421740069583584841643485534106727519056859431606196311512057505223867914003955925305794116570911322836214741096957354965965260808134593071591340017658181661532952013043763657811494236188359627781706523158238339252038531615451546455559401944801365034898893355256539234503847254354284535541590410259069264747235487569579724015834386119868262128958374889326018783132661289731517651892984163685967438571410449669082541308845575497660461388316715394286245169048920729380939858151497208818212597493667653127318349863267557672043797303453074339621112813455240581057513416864987949640666208187654958410395684826068797600416045828497066567060108220217029737186894678863962427550277979048359414672973303291984789116311171139560702388217820363932847164745463718300904594688129354940322862629774342940432041715582017118565737587914284265897346005611888651493800581481441800017739412995129915852889621069659398001022691987325681254313432474517796510269107993249282365249214639657698777562776822375136511065811969320348908336888935875888010712992644290429766262973532688067415011759102308031698762984767526252989134851758114415888762630864833586162378513240754866747030950444751905024656310460038130478174052723266002445716010893915289912949100384524372322176357723073478339979421552576553762949713957636096645187006748820601425869126778228222970380973804561591739347046594823203890578785982294180931192874652066034528982477529502366142405374139815597339338804062593526103493906508418170186996470431539829072892117615988361915714335506188963286094237521312822249613123319141163096615247372801227515103620896496432738661942368395210781732998763393020040975062381028590783296667065636313432698300161943518049957381749219735417945813273051506931250051366341649245135996528042802930546265967613067250858384678861676179685884116330841533327801403561056922995483850573287976202909387821979131809002083885653345115298645278600751950877394699740563642843061247649779565363210426148716202398235854047236368809754232249547529683131516702159118525133549978033718519727267089954148727509833059891430173949687763484599990982304194199641489083960407432904886235512258713525493085497989705693116365383571610660351175110005253110760792837913985214575241133280254239177062500179682093453218285346858541066478935447377851380413307530867808099259344738682637311795217657730752725442769039973268574126957202604055267437361077714006932344476818899287515462811147972587740168252010188689723440980784664938407985564293827345548148444490334788905464642066972007983297015925792559776144261568733870128287304150051609811795306356204201600053583492635796273430030613487300951111255710118568023366636926278025509339236014045261280962844902633694003794818630793246619554287740928918100216898553221994411159036570902472939231582351041456874595836647927292859021763090793443342663577301666768101056525883259488984116253456545475342127467075719246164859667584522115781395139946626384555382136651132638138680683709311656152295591007687231701423863970284012230910075794185090389680677303775861043443497278623639110320588574564700477799516207756407338157427844423984055845109703917123303168837425186279221721147049412139290019604661393214024105309884363300767554730628712604672368103434097218271201969899003297206866134416752032571961945127933989332769167780250684574040718253721533459430925423650978016426625829056431848570675095571984291544810230264454633511208762947275973461564479301139005516971441115842843911531948854523211637330801418157750196951592106554841798044352468598409155315317467474348207966667766236712613619998993959495387338519937883074280278162851334642153319930473286318163936888004673068662789568469668431928994697371686121452165678797509604385364472441997440289753301291946250982682477139404078373846015163619597512197708754251618245777310072693758071292792606882548512909000072491500682100772276603879884056381371276972775917208976671384546289118387713933015802272608876602464932659557074443470473757652484030670759372740057899820672477344097344232946061566857641054812063276695260671842135627698570931894090578292391080709967673343169677177466240733298334447925679966362458551416425866641220281741641335862430399988925180895630218304295470212846201017936886356877717170955010737033224768324935100006881121661627358202350260862678965837142441410135688675876365541435598460883368611950312956758418544386755686946798478415708817250137978756682196148925579883170244588289705458956462593574067643320470049644963268032559015530263545744707174564513539365438066792320968829899739839117604684692237316224435480602538456339804323991115096121357898393361572658846679769396305404953462005766397284528511156224269193182846325053735158094078355148271164562262257983875456503677883644159821898006756555115194033156386435416102449778591893775290908098342815343844878350563008864056624767585130345055764603421711861965322174244185392001754516067068216308706009193532838636804892135820333126808282204674145270956276197602908093081484470722970399984087971573642074320611748941925260680387463231509880590613799981136609963278183429076750183396521134144167127668845455679290672598335317603016031356937937863381973599479920305660608065471348110580110802158611201124630576682120839681866766363414922010991357521546749187923467427938838901866478635366029154352421539962403117985083865733612244777843572384524430907598649223726085198031705787503868850150694827344703839955328948625995371747764337981484638225351157448106418508736794414426632403723135131959112077369241665335988605592971379953656182701284637962257739066376696965257543231855557357231155763587320307518845697222504791255108180664297382928787531270202117590890853216343484476037507036551966393033263580348388741866964752545263721062026358214772834033081384821071861332875391165982028659442907648600836883671522265522866269339035210739610355263936689597644188614539063642985402097871809184764150117985319406995849842762411098297512081989722593611785262449936786549952125957155773422956103270487899534223477608489942679968997289059129347461581077871015342950572624048904815030072475796869828248606976096665784877416858455348741542525720734005576265279635061924388064824139744518808425349508114886167672321758536631724610495814885212566885842845778792814027970172831821386915063749053921709701797990279459693746598030893026758289229862390588903754772790277818134702974119489831148659122875093839788952230630930987882147227993090584806337021006228389444769095407205923938898823001876130403947447662662884192269386475434536904782380657579045556663836678858972539930677667981650445144667913954543470851285316610327400344539260055313368298608889765442468987504715809887409757068127235296700691325974112401860711167219058463945077918285011343022888391134064001003071292381641374466045706785824092800824659987153733943167954431379713226904131537025757257240889928890071296561924804305533198737030196736670135075327281078705666734955875630569721603476435994831945864000566437714284737386135860522121171564181797951632291708202367517621198208303693038534815361698752587296194148688952536631189133343880699236148549229798864314443677483663564247313633088966877877962758175170192633820871033203720110459846833025486332984640142113345838919342039018031751604294340862525010994621825016419631186473177275937223557489119621503280154638830807223646098977026231798460956360709855908622903748912649811582178019684398463495257448490803368655484532844976068055813824512856368332073577821249053285542803582749937393531141590614744445817500868292267060150921129345792083072412999121220681084946287337494992500308763451646632797283297423012684334132797281699985339960068320203467814334531959269672617251876177440042855781280457848058219993595392968659122670362690342020235377839439625720597113271459760646838838273862281497183175551498177562098755185953982732352052605261335573442002730902341848687185164000069096277651016945911655350742596911973577527553549336671519373859313161260380918674044190478505163513792028936348003714080661938705145413618689227107657592627822477632909148482904286333397543618199320945018109403539265264960452212665188777678742274037250203279253293285798571146510796108354204012696426382416411994824406689993244233014764454688717568335144980108692436066122290381647026100602839965508851183101580901140719833016359059338767336294197722218190324864687982196391086224000721421181034532620503993289452060174244450679789966659030528889529833645204557514889923677754078462741806676762608352350302616953296683828991259392529469613901152759274859218103996555658338255301792545282445605315809653099223215828617431586159225148519269237613676802709012932991382244212673935750860649452705529426755256823691486706359575165889933287569870551536088806359147154265044535436331173135419598110606128871747226255590974233905411230351195639689273387235488367627799569816149530724901707112503804673155613764841522784310648665418233370473972548722600036277350341017480591016334579581292394872723365659041481401222475770669476284906245684978109808741154139322383613301442202289027469042488222419096557658004188195250790640774296855241843304036723125282293860691441227654153072565073996202347757073041071003922851774853177332474718801029832027779019220623924311090320478840527272284553169610285512891161035329681037190311865656899525103981673125264228207712555793625871362773026706022511582751324708524413496007276331865476123977150679328991894992324498685987964859462068644077793976845155740666886778480883539759638904738290575080646277746182379587149050751932849068098174684796201029603874070937463348134949521955782010713219630355214597236867094512385665061526716575895393895117451538434686957677810005892305994047020724546040495427149610030972571545416184165061110385525478533901873626808570297857845335506462134033442617628824314238296397674132665615774923001956606003710834262646700918022076789018652341368340509808835571928988848420594179080847433516542338883237818979320828825111898119709789216038396108957162062552777803482301939354051397429119617765622203496040550965078999014817989305158863213794564618696828132188052715716115453019674733956006710350194647519312755847102856000427368233406062916312598612351018664165121788642784850527689485462693704858641095268602059962465541620861665583325342517136089253611127654511268225290777049316622097965254423459512430521996769559049361831137285526742908207256469904571912311639551713623718614611541164297563062532176619303229507703289608341774725014561941462189101787274895307674190256431484116882215290906340940826783791917013019142236887239454278814884959435481587108048979884510108301616332298663159574585863098295678689026885424273949631157967870142889988628715677631649526305908057192873892335262415538790385711941753704134546245508390499582068858466033707134962656489452811257111688834355384144651300077125523437892264754198252854677350456270534569918785479306103081248148598377616160989109710138457993877328489639491892954513374210042707447997634587788399457001153812364569882438705814851711339531703575069671906028995839242455975494958353700428342464958660683564567212839409258769787477578639506512044804152706280590150304108181091319596331728783659482713867970971307334605620132964264140824112994348167123893119894070374587361943835453805943186487538207100930546471286268690760714827212968035735670730430112462610262390850520151278831289286891286335955390211839267647890355098908655087034930407799651428568500808608701057904614297281429922989913161840747091377388271847127669980220395270089328307939167269513459223507357080892864219310273164832855798911451269569445136771584605247090930807835269467995176859557768690454766207248539869924520737761821339285935676678748436737763829090243183341324950317428397781316428798091539611180976016163301679054635821167417195163367387596342064822086925103955162526632025528832898195557605949021685050576830234072528177707760262698267910658466503340642696915466008226537180433463042005517024514331987973511361452855275438070967548412159964139027651614585686995022092333291734488627365993123238754083975803950005505496711504783586080860062876211353693470211282360447399320493097606132234927646283452501553429108961090552546953524111043531652493600839170083508302927478980158488846364941104532820334703560466307855709623888286394235782315144359612525062824453828635565453168787127634281632338112026058130472015647972685206813421608060329154786940653512681634920685167032507790116894841664825445697492655508894146632515529685042506017322492181202793185527248814629337211930943371629429142632660342648981999825262851756366599522950251053408590506635225351460239149089647290763736729811818011358138863006032924828330634504064796408697726858793964908124483900666997047335491536260386190325538042727463614985506038940842708710248229563259754453357994240812192546176203351158028709684134780109247536875702083862257926676700493900862250770268915199142820547491682316795578580215752289706416972366230872936731892676323064432990803562006294508668095127808183012425410120102809590638857051892026423875744233821073760343013049655644640180966462169920907949579286518724242238529897943920972576593252338026251305183604194465328691863169198882880209721526853317949883220719293912847535863815524033757549200913982056380225603761692393491825501761557063850573302678981071103516968856854324766476935851235489453476585114464857984893330571335732726802041665440118785977639259347439442925404563852415880152930218092963601198344595827981385644580855116848989444149403608941985597524832480443957191912647226600340061838822507492285465182405384035689655486133683766753089427906567962557883944774022582500049341485137570463691894449526199528489661941573087333111980025537130181058480880128029399671894143951436026450458792212993170760666587106477407772530403849315687265326769821961427735955926894140804714034147216984125229377225321827376706791632700039122557655471108473638847863175602447486088803623059297199505078861439476652257226082693646080779801242402455045362246292933350269879143616567243785407237039256090100889524749098208297871678043065325165577241727593596649839500419712820837530071489317704317841151087782037187516426835544108424140724703319023182636400805255230154548982656578436523464917027165819299186263675948893020214947578109607157503608262934128591765574982409696252315578224809229153481523888602020549136275731740579016884409816957136633782915419167184944695687906285783332534203962998521489347101086706358647146849216081292305019343414024213016271484413354623188407865831293696512296820196532864910012355346662344657922260405948639496576838068883158431844057928757472379653566820577064372376979632953707410914706814610711438633468871986352650063281353447923720608878594093985356779763480227428784169525175210395877378930321244787289073124218332146035500242422641272734776195291988489952520480172085273289449007544827268488221699444215088474341716023726365068861846514272770152969657093164755733961262207831953269535517420258812773106372918479250863112415431772525140683303814899359135409376907975783542944901121696761164957601457339180113989836204613106946329997082134586173357406293233927809049463026957573738802893567968055269221672791415222116699996120694318632130009838625617685195377630147498153125937459171688409998475696524887546645404834637572990309566440090042691119356027246373936155261533383654405452683906310583254081846216181419377660762474617355504053087509229802227691368307393975337275911832178386116470223554555572595821583140694222416313031937416757826105895687626580191073647210374522617816820305946902367291686535133593328512626992194131592177244071261572105141418385935429265071251826137407092939293903492475803070193496087223567815069765519378878338484797612821491230279493117594476280461824493512529988397733687168814736952527107973583061969175800268391744769810969034801872687044697281962674046371113481280094082021707848668781108659026420137338633749637207742899351823140072553809661282097939411186459639000975168420745380558306312068307979892181681796570493681237796810780964398115871242885166991674005033113308044646703001880687205296079992887418123397806163794687313577072135660283031613053272101510928854057271063161332230988221048205082125162307410475166759778275304489811640253817116224047535482233788913122276022315653787316616771679510176400955420069204368094153680206272405795398527020430802259034162246462609552832885073736329310885706954895922542372425044735576760698274276994282282116895075079887402055513162423253449970078787357723317662511630092730190912272926588778200946953345524670240247997240367249407576066314615887082536565922194154520571509501138843745974104604293378006348528437467514522949306685793118174742309480929431585430457226099452033984275069936297269842093780806787160932702421552867410560515914410029293156941379522606642947905738073428396191891842075855754875100220503403377271328150325469068168394227388377812774990299781174167291795801443039925577775601038937182823859134501786017520347776678606972058855516084796513262334188611846046402190331737669131973119252094182651706529434263298367634988867757847156120267962103310831210775195345359506476278471130471009777744055763648124514145093716753011373621996322401899701470889391984825994552336432546031242793623391928914641387630486912056351930443663245480625870716417627618824276347885933956425541138267330033009099474545567987852054027544419656822915148530995894266252779978187143108599786705301164811845852296307955371357264744897394732765005314995766672618680323923097904903129237703667342398667637920454326432663679881138955817035975507156330591377279720672082005572911823539476804155574408363945350882379461997139213256751037990477182163776928714502853514855530555088117409671077908736383971222656339060164626997087437283836684288181664266480921430165749686442790049418084543878635809110101547233534343760214307503749008953641006590755433445018642679445153185820234850455287597806890101685404410483329870419385058528257100793993885339952396629770478933909563023327294268242154236055281891691670844207531392042710381089376278369514818230477067365984017740684589630810413661037187248300266810788342797689523472477482872404640216113674719410793509755168044978875556413905923739679808635252950860971233767398481895472197444538235105556935370457914867870621991611056777769438101454066402116150157499286317607569761424638183684828692902286618087885218346619178194417660522889617705501119647407468964718613870101016495722675559578365659330948402089298676384102240076427141320900929628009211481058342926057130912475224106424947670784600860511996416264650630434025352198105252838062196917819037453337163999014805075718053104581314248666680577545569986394394603639360064093971385936568845649362928448987817055374248820951083242257176437519386399923173701258633662312031677756138657749501198596995179885639510899540813826175066933701616471032075848546946759549799596020730054607689207784427314086647196350896531608443533578748821677196694450692213415651311532779019899950299073555450670764970517041849544785501873971764671556172145856240080398027997114256193550983535547917801003630267608113911387013603794682143350467374609806072806221424247434648629506241729930200808849061168087353822410516005851621000683550721674693549101767194556847746763757040298499232958826618020693331051013011929182533800295703263830301018871233299032183742512733801942465960865465563647729352389212139111018497655548284352919904034137981327871400849819334010713877807492974699945762531954238598784708527787154759724082239553001359135439459725615145300929838043481030630184196410116636320169206325802894100648708039401071998097513332314953809650050335503037801104543091181956636361217947958454674480258268259084028458410386850467916473629264753576709587882655055503269716561083566365987465224212216289455091199104983648439676305242573355615512475920138475410642517948395377881778775242389620299814904776914212900578148928325582703764199648059021620224555078128499255973919408701120280494827325060429147328950435936726331282088553624002950125411566007286310622449679513364183732083882459334441669261572498854191977837375389651283420903971870715013462023623082750085074900138220497175119824476891355960311653255332707373576443776615563520766736053638924996792509427520828593850667033299129026308136251080998005821525805893843208000117922711399541018459739461025142661313553453855999565790046395054287124428091914669177358525998544937420085325254826520485923941853134733074630339161783296223111575616862546434654660789674571107819497744773173375836974804754440006399709542103049378041630802412203710264616198350621082481582528553781584912041306868202989741263784450395798003384202516969328921947488101865064531256753490684151596724274696639319445073159138376351707121136519441849019218121095268264277953430764066092835011229135276875995972160296566970548956853259298187286252308189920098962769997229793011918399176511388049830262769504014173193172712698584771100039114732210798955001702758883845826565521601537890273350029382752317393863355975973689657587935077250757901917541113651279057806955617826016714842311318554425745104911740202051668625961587983645916776601869275341274443715361601912087408659017135985628444282624818054179237952700417654280757193307919850232748957489945420113222824593450727410126213038979150097815989965119051943925391055182900034530301120884838795575093914791599110040023626195507382778376533361604345997122097612712331567626438110375870404394005821438223010900453363966806994316245338123072016621148293144628613249087796726377293722379246173211750248769713034768565422025957494493859699443893257996188834699168151414120585477510774626294136328239711785678251917234887133632999401745074434965241372130296007036051976405790965947010824390873576555216723807801386449328253923840135153485697819687825272680819520805704659005365376092485573400042562961899391835600152726317792184181194182280482413532589834957851574807505542498825146234721976899850486927917972569555705487409925451294394439599067150926018887974329030065011441940640855808699154091862790716562321953101465437239625386888830962789982561270148336767356751505902877982861436557988992022300433237295677299999957580872216539539783864734079806523503001042324296932768991147117699918456793298269376853462191063575466272519890904430005854419016521573966944208441194502722770736048988519970757375329346184901520502548253897218066378398775416462938063446619169004297858519479693869881911377487195278763268540384443459553053517776652659721157815469041333221360174216409343795176607669500456004762650829886917969792887643131823561356919102188356064346015901957580208678364743049262052395188761954339462895323159153510849015487145291704317741641530533102736973561313873640947050022830946072973363554001270951893199828832408965892649485463446158688159242413377479058053134648724673074648632930158679070319116726777732346908521376551472507116535142785241097313129819812074175296927524584920234383013667003806326081391460945052366434126347604002725718415051891154424034767941705825633523221366354147713567610991882743609326998807683547057515307197204024923640409508490898127671440344239163548242886647875685522452731509218457060982609396670234775044812202689272056409342960566284015506473690698648840123696862810931096502484440231093427634449813853090342411742309636464522855573776465477497607101453210059923494109493355979748229598981861135173389266087323119128349402625665411939834689329122697815647511868592454748084927948228660182357485868193370718211371509735243816929147063703926760392511815216667832532710802851133034320920195204420955991054151448422533970024230142741759951231669239015039335240969634607591087815551824698877356442166200544025936553121136357552014759919660338085716132647813897362111521656945318783399913767930083199578305885300809895602229106390936562994887035401658222861702390563077883528837706147966263015856563516482123541943181415307701008523127842852402982014877698337156158096042240966843304312012615828905206930085689218002517261040158347560999053112602910244057650357188974066086255869262992524168634645197338505695452382179571061439859315114656542119370675906036233895468684892074873597040626948744725767857948608430865071607915436194961720403821501043739854619233546302341191242442211429753254503943579012341695092626726383248771425726054845045876315338305734670712402404181351162951509224765807734293497793134633037574120484789190234786382676340347946319455434726429374413552514608726278711278528225700551941373713694404642338510124866907361766827210540057153052573947994080592308728744861201905965326423653886167326226000388936432019397854790563797087931876371002140874833880763215371858030865015273422908311370297100349767523902431788021976563734925977040678336150090575813539147563909611732066735079476068198614969024913875121254274435910572498272227347127395728565719167677457852895265474978074050323007625650084568869420616536912240183693276488428237673981496700104267455363071777555080333940792280206515980688476738896046976055175482985745369899968647421556648915320480261315200028057948607177947976651805248063807100688214304784244935495302597567035051916244551627929128664880059873402282425363762452061936809164478004295015055637924232821135099506211518749737449530141036230929558060096908961492773403430193657683665667224515729510030072839294686240613052169222568031778917013957124944144829392707172130014308077132429099118687368742402193164546372612755360656909094953065524789144047821698541794425089845720538007051894544615253137524242946762240149943108312965779196126043158483514928443946028529317866414268987024006933535447952453314941229224712558612886355711197232774954807578977244594946234454929790269113452830015906549295729069305314565982034937067820802132254780815450511040686715493956672605974276713412660369831772205395336583109885911780366083201040747194159470752501476845188096541932103574248484366629333707813678377757909922996651143537967708769082829940403725483832560246955635252262878642888235144587199315581448068725528343551594029432123845709553063133495596001407682857747088878998263716891265575723032199862318896071360313885973650266145723794484693824758562794820417049176762801372274852470465977735788493662317001859589532150705319563225544515834168131233836842822036236378431922591425702988187097562669689709405849191810578597690247216216504771611393504100102302097393322528230995046658863538855925060269762881904666064622828011569292512224463717013832025510744672242761515277963052083457417864029635803147556222235424696256048738534501406060449179420050160518822672662443256518682594593285711805314136080426299157770455810751130515980523737643640180028268077237492970716286261205864187854108789790490287829908733927792678276633617352871648813063724056478858020312800674130700906775299078618021981141670739089057956752214261866256713725829937563515955582178061077218775650325114375072622127300507968356592562368334586789059644774564499306495086252817591528717757404332066187896692336492520966375854315958760539952634262775963453545685487876209899749185991553183221500260645239160988967326777350453478078558340560803697455878056025794227557413107773107975208563255997867196352177432344970242402683800410045352297762935524998925521741998333307047025350268916104327810555067104585713803832856923976047621846285446124505537829792451801598393117744698218836847270376652506640389482960217050391801032720523133464872195088948129605505303676372025235476524404903716017985137505259019675341568839581495316336527884765152929526165347406309123720063625067229544629494800513862798232354253262293307034859016394636571906746692008325610095637935159708580001861552433682872731256869872401907339025069344644977708255978217627554814194973266256009319926941774033412465361045837193945782610080644626411814065177407968151535288886833931429873528306039113845421742085491033879542304090950497520673852955237533259460300269135154416485911378849563353234843077434530995120514295458128279752081442802377745827140972379103958639883257500119101857300466202883087471332953118090530560481651695838538684434864967866801540637736536071197197543666716789393303753668381325036137808042125007805455846967017031293850410417198680968602687562439205085361046580603691206505243794084909584726794184218122500168538176739235919297696208477091928358870684941773154951925250731108837090402565319374644052713909062234896994546090830213090459237981556711993844631403373671232722721432406707517076570002871085495992120724708163243708876678335762842582221626549713291970085106521572602124774435875047348098474578674788865296795072386201860660744438233275324928276065988858085378023799852580278525704753326094237446997571034579114661854931979949231861166855348006279092742828928897530994958994531069705748290711634694264996748714736394342845556510307290988193482409212303259296251564887448004149673090518968974390100654331543155219718824972767571561295485932688777919941160729286881078267803529901373323091039399403006991165233218494508603509345300678129943153899068375630058279572647582902879912967683296534183759750760732223717823485306623568045462352621982784159296153523624746152533160025900962639846206164918312808715676698301921484794440331350307494833171901321042435279865900469118841131924366329463527501950614705029331460688347989075692183189879640748767874658944379175262055942518142226999001306661455113775149374545900394326037635909650218044669203981882646756738398413230689498753460021604719852841230408598514404240561632773552845223447338137796969216793645015959071347407155938350723422255373865491281393374307860274319995878232221624185535582200423784365430937940897201560276199112984357508411214966911492644235267930089138306295307619657930343486675982852228906834357559246321406071250209162985961137271868977212249868692604579693113361691678337401135227719683394751646992969769876222023795240859622174223307641651131603480499168060073478003584952022191469641797951578304743744256685033782793437749864563539440697361828635768805328347635319761156403818024899870275768559647786529822863029046514101024986770986516760492290637929553105019545491503802222896990702351804067218211438089281929378085624199860447058117070452671382700345717525186213380832516909753911187581749265514836793133222132373534431512041652205791621854743772069031302257202643275028240744573851710630940279131305295562030686816192876074046358067312593288545686677181876205430845995769317136434718171492768800897763105077030011754682868970152533949195123638248429669585069812092879715844639483467577584447142088592862679492842947070561504878056533290918020605931965374063541541053775565288231501585379958337616578035752281328103566852661230703851436358288679408561243436913554212974168341847323784950186053534725266032357701363886393230533260512406429815155355065406064506049259689426801105827377067437654777503581692577798812640358483394084924619697127395502070306796934906832039872337608982372302620495104019002993038086048544686176926984514624330545458494202183045626856836615232249244276030425560200837023058271643191160329440661183896564432733175541418128888044917795831260035325562749595563967981120176859470535768987646957337673863306801569567312267563050844502975645809253109914531806188031635237754082046004887452448347810318176860082951621765316811059752811111795508878593617553436862012236334531328163616148844327699467660851683141438444228678580440879251868695356966260854073895019366611530366436163267198810540022075775832533770031475687027419096207474685151394703264676964326746065335127417199864490672502447259205861944859681080563735691280540800411711661939187428445501085279776305520829984373658115577049095454478739700628862443488529495024906586419579330743156458096435904989143148089314854592167000383965626295815534322195385942915451799035901006613488289378531713103481072802715928331670989519997296622475506326031617675321265079619329504795170793174539380227327781011418228720872173858274662077369749088366712637326349838105120492962419645367051167620352428352539736810379341028496835437642783010192158551394161638238142251149443491429626509049112367616280100336330344187837755181787012432261843666412695694996982678548102356002903765245722818370294749304711038277300124864875261512166527695986779749806627159758892211923301878307416441804270790924998334813887616108840865061553331280889037157143897973223882316755908973137805436438736681906961021199050494558816255521774893032044606151898089875793706786956211654199646775132505641479208847748059260515615035425532442247826716920361694952653227182969449946389235109163364800886366200513096079571734182407711738963544827105723588036806995928130449326155023511647300554497989861271560507970580914808272899771151979826072754208164314272768706779526660905070392153709153882380115787102237877903495508694245540313061610080269439511071580558479597077816678846803632669690581018470720579624314896082981754407888676136162316958081333458681245053964202780615081453161327748351260345959524665562049520139429137125947485700365931289342027380191302172546438960881339237856494907374115074219241528113396255292562347883486241426561792367358241562970630069164553220293250321298802121138754330160184633891671886341506225142618915547943706061526140327333374344606689423840490597876864219548397224964100482936840879121378596721480585952745878192024670940073373564925006857796586927119343428339703850298304240697395095062934878392707548767191834922813656429142852637635669392045259253832442448524314102313699115677768396523835290992440483723242204656638138322820040971632836489064171579984791585368853989904642495426024847915606080110157537597322084003335069403405777725908003988783070977045929213973109907105532124310510719883992126432278891498632886510638031373751594877776017037110208771212763348756443324642252594821221448605067769704195681866715230391260651994065739117742542424672664399863856167615608080281954620848363738405127328722642261355165505913658613653808320126386206380473115267103647572649620395090977885369143475893127871235752583650435688415481487170934489790352858595745115858935826840055080120606584291438988319610878484770963708170884445175104875120900913219755270725776818183324729324092909610131909153293805554625589015654437178878049820703041570735452421842546153631470887682192101627730906369039442472423878239885916356110600549914251923386428966742079934308328303394888831495181001999277253369907797672992289046821567793058914496427194781544966934462214452100366702228908811217295721587687158374409507974026077703595089006726097739978843237399920329810615431809596241716779608371241773753739918988018102156180308448130478924376384201588990966643014546568312926605313980093005639725085928951084424705703844684539763984988694006364331737847220212805695499709979107145743673083893403487490138733837059523812644785154000409461293153449603894582172050404982110199490223846661086552166727372421018365424682020984088698159917743004054568528106169832174610187127264235765217485144155164607622714261717171673895313367074485922066308917867098870603513613468851999355703594171781718669095862069536595332526834835307025254906847517240240365313770398399488768758818072108951979444438599384412083252093381988209506793633397070573876529542790720192202133372949027113610519961868059239747283496675369953224454830707924532833909057427936607553253408514980599874268289921064495322202933946268734595201796083043635350741301038146871637153539550256792850420470211305839047935195269260935457870619219747926060996828780085787426342268910253922505684818366206165256410024676949565946839979538782783489824910449066849933679165419704792467189354339992889857577921177520220080750592622704812649522350875416818978604532878907046167369058605544963814926961912853859421463262732530907039495465725649284036738925128357905895790676418145681338809521597034809789615665741896071452954002922087290528007721046371586613186218272001965142536682991509538759445816736304471636251874505367902247069193680930694054707848482094619379546754071347689314434231533973965291380535071734651257522409144743997716758537732951976972851312722628417192019997609611008550424822730740337502111874325631454672317048178174690507720220621306307791830797706448252133291524899224033671744800193192378062355892908559002752121604637082091835794891620587951744449593989257600377507431707122416023917251953079860757064186999134578349547854505562538010278275022562169218729310403148440384782349851892573277242201113791971203491547230178101707643486900470783960651094846124751917392231045462970037746642983022275197084489875581859847175830119860904831188726224482804054599184628971868459371294659026860078566650130767338839368347101869691100238843491668598572779608818112553616727208545347051368428630999711180925778675530254762052690153781650652105943998632253219330728991374105769852536907044720071290816320492070669209307416283303078342992418314744768602087516253323168747172823230748992883892953440099287620554709504743496162679491723367033373068167167060753238305967359101520416543314771023548352876308792588450774678061590511556895446693810442289403006256261281190518046950275268300655384352189447272062983519951047910927553090188650849581347707903981622109644612147171786798732005282108031604514504995387231449370036111984249371091223231825026236624736745735285236674904686844765554393889920176267646645594463886502820822826677970417589183205000928879097278263847391620704973107349273286878363709991517611073901073976530029336241058918437908911797443074995523138561869614739760929004977397928473045828940002450748442939138467517482093279216872304099013218643492075428054554505867933019431942533923947623369360076148944830863915940167214582549782879500320912842407717927447261566782070830801346198900661984306833618882736379855892887749639170604163300108680182298082575839352959660687278117823578344523848565248711164767457641834462155266448996045203350928021144182686356567174001350993056708976663638250958525402293672306428966701295574740045836780580783974761939715125159605869759859905920292189701340685015473078007494062615007019978278587195325931682114565407855061776245023864374214903614883230513550683944343020259804075039459341519930800578561571190035751611849513932386438106956351247271092385272170254388388338078968664272462987932747782394729946429103941875817090626267977523807448325910466298220387042442125053881307972993418270813570366301316539576475780088413536472045242983098517009056396627122621554472530693860477523246018023252250896719512811606662311456635461384263371930554477078487620427531508412635983260835783652081378405545840356991977863951821965058338925193196317252576025257430210301463628956308922162617417233674388854310711573551971243069352735025945372520232719488736283564152726171023174768502038058723416891371759692473175289283236029263015935148168891645754530462008346242118499419031203292122844368928493289433698678588507498778223916553820905177316396721723895434733379827509076155266696463014309267992813591413961291869419373411996260222021395118955031208850814492472935109471910222975418849133636619196115131860150976836661394320994215814856711929005107227321890127470376837775378980585894751519262270652934241750313981298707886784579872294915186039557613444211203580941259121284512070785794454898949607535679307156490532776377131551768892582477760537251847178741838335070190346175744438885974443054757775032260541210682267253410068906054547585045755842009169496573807111856244607915935451077037999134019467112950177805678182247671513248807438430040647087630134936820258834312976091150791956455128310181421686136084463321892715839984703618515412280296743126553884237314005768963273417033601771998052313488127657880539353779786103625120441881605893818638012347049911478622455067272488067306398012521394059551951519643379409621206286055029328369762025061489893141922271492976896101050457299775620701381305347585983763597387120523693920454584464270875886050175173398648555288090786161975527589289334837934240658091398331325445139623672777593012625094111374267437842090004860206951696171759613910343201767385803812015881301747654932947663920155121720445903592116483110084170310433570464444759252004384480918659914023320278415996703812803432319957486229706076002483602118594796276809895832405663595856505894236532081065825630947367189913819450304315466543825527575242065344166420277561753703850482762987112617861688520719145847844042196512801659380466599234093557670235031207675926985251044072051078282941927231702427718223932235797327490227091033323480104664426004261430540384682646389003907029495784349720071818927593265879408291788179309904252125603283522403761424902280225795214575819084127817214535675953220125721390805639228828266420495159156396365397463942014397336380720783396533098641452024836919094060239208457852485619423325260362500256607602859199337750554731274685617023567765386220343804655398179552650395691034393962482318933577560469265571001373801043427485984311176157247931576968883552370963874820049361850638887629313935704716538178814187956035083696196047378124293297864170264015272101553255491634506763467086385012219426833264340439578605248320741183695376997716717451010979185494850395160702983579349775809979727021657704621422918991907225442736827956379941688851281196624092653507152554610615237629226193236201325056796673486521139287647027199667009146239739316267527039023575038237558780508443503405641139775108719115353986268418637791798439776883183884863624609501562704272308232892121085732053141235838168270137333483774525287717512240576074727747363740567222469888537026933912838397056735630713851174891640859722196396215630477341951031692826806934821686916028081135705669229730327248364855371314068596161440180788512404257018820487595419633359237509452544813551922097332742221792320241003874234837496563830229274948415513490434543799909906910980751518679661274539794062087537690487168051036547720152971812760463860573663318678512699379059046596451041973493446747119759625448385344151838002865823494702138514585373603039738081368214587706280342210617830561753185355971819834150253291560659958657803591141026229732553644707447714482217311572881491435911888907513919483271937204783983972208836496017607758480048435269446427011381874303318973169414344108735964338609111116002887004085350361009701028996532955517526188337124815844013240594700196261469254064119839646696328804793044134851312638324574971258958359908524561843466900727440544977453347258169561600961530864767336454159202414096969488948297659336990082647717724994342848043448920376432319905958480847605166208626285502208767104857495499171324834138446903755059387009156811549098998192116842764236466217825524935367210833772320326889715645391376139034784024664501638747385483992731598543445648302674656734635050009439964553795587529971814731064714620935644975985623801478272498568377131500129522755183261144466380102035054884406396024324106481071629034757287905249127400331419139799415747933735487794002500425554430474950411529128644167442900027202233127539253245682355790227442447790580732036460596290388526037264541883093949847906067346283512542215585045181714670352530636271083630949305219501594279897132249984743469616539367730148219615890738961081369457413907687417931323586993099527997005323713510469037911197136692967794052439048880605875139642352391771620059194184087359284179103546515442131203459512702285883489234365108729273183187129837498832240525876054044048397626980360977246910615439895857439714178229724187225832838528922412556172072361451317658485705692847708761210947067225226912950720160574856271836592183447562912018069870628380497831422130521822276822828689966021784381307457613529950262545366513485226060097569044237262596208036972216395789366433121454572796832004189694186263554446448567675619176703933336046903766556483660900720764410297610728120085634768222515810420982994368760929499860452990474192522960019063330490614901843571986077113220361088475987479911940614637562699432690864704472417150483708099598098232235823663575087354433154654146918668473665520704588172255377089919538615466079666529674988864959767385627682516738331574778688325881108919882359321313215036002239215944210775698836237359289410398852509109978588613816611302116366322761160559949122653832676912297924315800276852045728971749473322641892727850789282712954600454104922258225008232401146468238665823684741666765352224160414672759384116016931108394208430587677542344595577502650149607177639717057877754991470012462382081253502845074964267673552292809070736423743821788367079903442445277047362684072510472197272076922586448476590894425019861641094880253509705412968070019117788399109599625495354813495151870340705963520571116964046925678609295351937646404249641623201260981019421687010745296376475694861710063737246379532469234833736234220308644668237440893040035150787794434734632800263384636997363994628579087349599421669937425969765619030557775519943789010966738295431013208432278598262415176817238669199790247805223334029192875677342747672661082265186168395378489671948129536186622802059853370228683681467633061486379064917678205060669238859097011366713777488298175013149930786316154138410109977284897197584784668964942006645541920081593689919526298754523684428430919576169425258141840377557713209563717044634088474430137310409344390816587283023171423125855050610777975094369379225183579758481132254667282974688306172311552766738085663241678224546372312440355250540654420895222419237079127254517634042846193923305612539138059071459362187043956109213536779826237126942120912236738478447251321531670299281877039704172723079478342800879854231279883014274086651830787475553907447462688227835989758534687121500190148870775535587027671507679953279682337125213472794406805278723357009125733589312132016191639817308964602786743331285711389255591800833540074612244094033080248478381848362760271674176873856093964981364620367820753161732538629919253076216654948709849843755054820938264718965029727505534642751746991646980770759698457188142552002446026645335991679916215752598467606139060109621719399095923892434539303568596320290458345111231732008371464927016678510537266801273038512895153899797458258556478036403587705112560153373089591075689461155913170377759676533337054986876351900065791676600335215104204934253468056290558819946015029039624207771663430213743947435312148429247532781879916254589694736507396310266454287111335077821309915469422114443479669187742995759480374787499729554271600247694861096279791422255431629008184690489188811155965080909976037147871605519535670009414002570014493412502879956580829975315966718220197555656277860434291396889885129823923700384047554457611607974182598982065558166654074874951530264126517284717089576299451684233802845498747061421109420305495407482327203067424716674510173406993046108921204671177432713274951773399799048484554266415970464935315425207650594002301560365277503822432488447408685231073991613954855147774283819178487466178367316608498979196242642130500880511695695525832460126892374807547124717795898220167626321042401619332811150539125987608941371803941659022863349597618983756796579094457039318251810106741239684863000650276652709172248693042782706066219015077112917133220983586380066362693895457684387647262692626669231278205007504773003267588817345364577733968154671072147647216059016101295007187622514257822248073796747091982285253190182250244485641762692402206274144102641014199713810218009077527372038327473717378851398283355866195241276611906310372005009294680650158990882631116280358594036800541211589965417569752989002736580590173394509234236742146665934576189198700370881760843040428321143447625816817338045940185706556599885986651684350880703320056377194454594238058050457166088031373417955490567324251075876421559463755284516482121182506055403527432322528256550880119203977980179335344238856840772685291315574300980276807986165031297860188203286814623232750056106919051037393111429277959278173401195622400679097157861667567079224656459354240589320634593490850176996769334177306800456632556416280435359918065630895883112917733610313330616669342034915702110734625537142803902863372608247075256626134018889866261629313139931737066002761949768319663698480756247983079697454672793615318832354562122409060796873634060297958314572249698795186399279032685460581231176253700446794429927347188440863403876956249722110125862587151405269632259062130091150224602246094778981190294858486391689259398504031461821720424865365042414743896990372709907747456870317326003550026496797235663529792011857544616636242460226775173974655543528370043722710785851859030527252028635115782852078674709096881523738611638468225398028267926717185259763007323464337430259336541680887317711985085723099917805180675183486426909490201163248619055561572069199774453594292193859295452264114365400275333756203683363787933473273109937446601375300433180264754375741644809371804250251420758402692155685892266511327606444280803279774311953573666096837108358382965277947461818174377391373933910975596322438324820472158610947805685230343387359668748916682761374169071166910503277900320853405580763795032399091703406055552810219291149701097949494694706681815584372612384909226066512854905455646974913700319944665565599815119180842467108124538272431748183831911401275278830046221334412960069886003516237716529304224202637345296533991334584017249639792085376896386613167662141578449822712390379500489649321007105965647581729761743878706997081265621126130149899407244140205168426427458105920633888535039654909356248515444045348590198231754122467777811545671603589988537667269604042151425604963003836573282379963933703445118981810897949470759824542847452127408534120980995268168793413415584698874316402045054806924312357450453543020138263714812249275468049525214422272260678738252814824524993614188638833314746206026728248204307176037421868515767707930718728318356288520996072442245995449775507220747222699598449611673489125265244248128167898069040452246720531990618901481699758238754489285819868913562163238562616927329217331229185240756741073442483763133851621221366096284808423171528122971666724316307371669309679258183205634564123587086394723969044309816601603625950928229205731285912842618769405328086891533445185586360680505705611304526458401676807995235669990991725686126411498490432682080306640571140323271545467611822447641114205369365044113130335713164257299774220599755881144558217454067889979093343736388110099281902836008472827466667189444210410740411133466075475555617252925457501267794945181975408002032538556658517764559324128005833163686554836117169464362092627307509616478090196465223226596489730419756555396430596990962719341954092027105769077063465574320397445402375085827602487333155158058615057668272268276772024521883330734322668230758207363107714100892514468858827954799593476785770558204265811149322828631062219421823453250746092443811706505623956043327428763366299334994514686881465487316142977086127501662474054686097707839849384755822178753420172717427849347088354148776050399608691078323290049168797391566893795390671963818206097375185062914125712301506545740089826764404893466221560463666268486098985709709251763059100355285247848654799759165678324371087103639922796378873720033517585952721247642018397778543037244167139845352661643320713112059445066694046678956891828745869097865539999270303501970936394055378622146416353223107016135474233148092870775952785932400970466249143161308395521929609098200810843845258275141059273146947936024337220104698516279610877419164690912340344162920550913360570120288522298784091296145288573078956289933144499329364836166055726372526683211884755650543220966552435418620127921874339356070287555859735601035766632732734172373211418897460318082901713662741663926652632140164555580981660800669925827842176526044766174583752773554677771255929454084705358939969300428794305463412667158169860561673240612802662551253592884603238847666475271049492617642534369302561276315903304366234186507114586012514014392216080923854533811021408061887714485172405845801950995335809407285173272143172832801552261859496045032700903809815803675585802966460742403886261740286183683119381057261983035375231296935233108785490087105927895813326351306490418900867706265102366806413248179303880192010001518965078252803414801298162597735562981520368388042598468769135779408045034242084114203016635196408209309611565804911474811456537585438750517793103009705363607286728986990772637370781865636661546469506573466914526293848594872985735852453848604017887133204370574172720688411229269486937643434438597635652288202127855914469115123918743021744859235079045351118233703576105406989368352160109742762351546225575915746489488249033043264627817709316522481239145311213111494992257610619322949356484204909070292461518550631256493673919208300250976142136111413686176130205897275642797825153652407028151365691912163947537041719572967457398581015827081502902154753463833357567141267561732644692602499098700444670530452832660249445849215888337256584851834805555521694295488277746904181281971673489410652535049150880629351406455113993770297241325633676876575337719774070487042620143307943386944966888848639825725965499773115458091467308768005285030513685271521234184614882746337967973063243743914013476345026765797084296940601744205465662736343255659494727465227139854779040313050548836529681745808997753611937540745946193577381207381527250870623659955178641611002966067956504405738748681990950946721286026792737402649826181783508691859345387577738291937635618505141715069422923047836240850961112573497271134083689055635583945415750303680926789073954754116852652260015411015008570437837902138373105786246422595839233989860766768785612503358549591518448039170492979426554929245530857471370277756021947495722105859429429533045052286197101562931086630138835617460318147629654563765658119705600260225776145738354374216880910292681308350963730158765779364909811960106107151880410969721665908654473223973613067583451938526138721400121836268414770277480773702616611939006205428708569418176226889493486488512608810445386353822329842412065047075645958305680582718130992404590076867490596588290322966525283987506098646236881804362583120193716696269942678251857596056216930813891516196556749745041961656817736593213271944822187016078636794202852360078410829148563829347390777496027933130944984092251370052045289397258836157858445890837036666869990539925631018353831200191214699878617751673772622288405321896915730225075929206947244472347681989057652729488300147891649676840866403970748459321014528723513792643690953735130723211991827385729219957323564952251840152649599934535949076731320829010221858379814635796662422274694770658811669787430186346368498054251326175481816601346390570446012351817094330887496344673327464473237327303350148358631263708966483847582995419476939088529962792366419029722032690076061125642045329551115404332856529640466025315785103927166427030584500217887570612232127232330178246465955321494384936024717496376986090480545764275757186635476898757790497401830867687367457119966757866841633520614913832185674580033694449660507535539556449527135461137330908505429229646448391560314107185240377513258025631384967508737725127267761910723221705057168967824813043362857972360559531864069329489673133692829554213728625413331994715128656606713935296113638130108142320050540999654293305695806080049158467554519336812431141513824470071826228177893050646422786416872606068000378981472765050790005830430132943284752337163858147846477538792453851285490565737771698207307234478088987993681638498255415475817919512682152977699677088920338164926275174171325124300299176097233428744261304587247005797906073596698675177612661822646478618378760561044168638374737788531308842498699732501942449854558445483508193892223153322414519250569524517246915885160110612791266299975140486848308466295051402470061629823207680185994582930771616088430690522394375084416613376449609560430865943566790913294683975580107390822904230063629877943072042602438832329967153987569512125680808538538179318905360779463113659703517295571864059892004942603422934446809963017293215380771680058391030539441500819848801646590684149639883462462174733558444551780161593967067347847007035055734198024652797339956571064884831106772449415113887168397221451847037740008475502338701714248955009986038512077480485894961325398495226373164364004977643612012368748546839992825623716492077075125441416268635866254808707142794817710384576128083906737855887562877764074095229242047592161195429967584217736975305523258810336695807711180115560485089976497251979004549878262638243651642066445027657322429911432387669057821951341804572369287169224464218901394403487219679481327053907712315826610925282668589738998923592405049615330794143313396140281465350516034266283802825345943547846821862733156837164995397695855954021032388309062585026270448536458091110726345984104888578039674634550195451034047345434206643694587846373502823801501381520517833269832417812564635794886435687457630766996226030544813693251537374443200456588239201165692316063975052738467142125299450858637043977254271510062703418381735945663028079033545868713335878784370398305164130543267653233538997788972018340235978131594830640845421228079953100416267244881953667107887640799549924195495110753796281905682320075986193192788929800301406096449083874262298366892286413107944719779069927456171284797030773524260372855796999113617242196852796792392187785171919855006146200442797314372777597602797344802031077290950224042511108909946387378554581106623882479674011870439834452220780312659712704268197985078032698458310375695992332857148982215583581696349653013076512141371682059172559778022242212875405123672670363155498318773806505670893624287820443532772899787786534498657425515560613025050710760582819879542354883967606380528357198488505755801965654792126045370092512139557733540199589423143233649450054325135375152545642110651619145743174929986109920261186514292780297788465858295684809441417367970665375637564786261871120494906773202273901882917797118848581166453887833101439922318138440341935595179600387359487323204804352783703279428693147314253650796151434680729058908044725103988802138589505694070407380117029973158491869344485986824840228370058944535543538623752000353584709854978541122164136036024396153186417098787335104388257082194421028953406044085969718124178742049952382684941264854063343076851908077056006830508487977317266155138433138700925757604633257525771643010170522547197725106676711408418660187340484238362609324674448690974597937169722738014179055782257157387664406778817859981976282117793046807342665025646726462113115340623805907968127239511483296221016934430519040792597766342804131283359867197080943874963783356685544590501634979165278836598214001496048091480173509156049038580548230478350787304794693389387681535248315764017446988698549304197933643967103852862603664756005488081152448305221408727649361684804258811458475069722663854433625482450532716928349256525803555243795571802553607719587027492081428509343574498905757794170089536315660105524504625490813431594879525624112304257487398252764280478092881117617824540387538891177989910159177697298708017022157177190644318533274565492495076446894408139738183921764596138005903191286696657116908089716916909262359793546942399157637456693092142988925594552295784906890593933885344342908011935572059051220746758007926579866469079352081501479903855374500914039329479417400681964519840594647285247609297777771952053023404709303563285453946988267951942517638061893373528385707911878765619858319777691399040697967815940975936391081269894635800121299013256749084280955720055250050537468550284012196408152379103906824112954146699469324459025150812123237287932206860761616946497162350511467623430820634798858683016369272146880108198877615236196519137719920154424192515426339214226209192614607399311074848972624127827868030498075689561653711345002502200914916142388212058603935939329579264437181796686589323269935530381207568848459747809440764022564409572870535320228361792784314435966441188225439028465333383417216629441853649586131560214194083958539423507388769300920140784216537331497112367074518220962456446364432366709679303682024749484050287095202044488720657254197816381317492412772986627214979392939352450335262937142497910124656768295891505881689816781031853660540132493613764327635531431371543423815613517449609404274051954027707584721918130686604427014038126135475296273046908294534193995924859497089714153030362491342735059594865258938813932914493587880162491146468711717718535697505449996340893886755166737980571150880814146731985522652239059256347513940656544866597558577479256577073060299198057226067674066155584009808688698887353164546445999032697434458243455135970651537857818602912467160537581031426340611825128952467782914413492361586560346248461435021242553073426286337555307227414744520857327848245265074458766946004141871755145115548922407340398839536276983471867854888224310019015013809737661119579030771765076445609105603147543806555376982287076121503009382970351131004034886583402515433871623470843180221752832163887543250756221043213262086924783801224172562259864274510115442637971152523887307515052038834614067177895466774370535433384462494531814233496717406128119247941301361804784547002126388156005508672490004437924215886389627930875328905263716796831594864548438264359096980395617017558142831236753682698839824703100711261054541334745250951302601453030545273613529075420956202500609970308693108467665738447146155478995537443089669090784764335906118317721666210935774244356079676898071641319349688499572046173820425879923195312632211994046104844713384152452156579805029696371968430446714308425038407680582554832804313257251198497180282172903829327779126546908718544287697615264857523108830631891190644281099348933379686328615528743496424360678784084995780181695400380037826792749751161832058899121765794806231134024959262355730855889919661634103654922658742063516020760695785854256387237564688484411709761132479383169852748153200128877410181882326467823037771355654705789429448735225253241036966579916656393470435456581740101032995309539840081632986554460879168504604720612595537544564385540272081924499204426408666147410652853507781442626956395592253994334684353326727435415346695739781671614063882868372184680805317796036179422401641989002741580658359421490824092223913325837203718538415437640541278658720208228722521750216579397766132430088960261660925713845043378249803316357378839098398087883487786907403902997494188554050620000687164249865276004900508154200004324054676642313874162273344855879385391210745048608896336934422662649924716751162631899150159784306506261595575873071213396920506358807652413347325588658837431627523477371718745555601422128304144964692705079828384067499777031328318145582940877785538450153115590842707314319637894735959441008729059828286168000758140412164083026742417925883110745324674171384657626107355030250278007655216585846522548236466217514888279819548875393736208641505901660657199832292079304040211996056309060539059369928207538258472474030518541693250651372914293706078562791816925041608333413283744430251824556407835428002134516456904896366837097088742487845174602969802796231795261944070414140007472289253876195544709019709482839794403158641936979168369037782096019305315599889343573196031233972871805222038919404745552080089169517568195839146557875859505312934764984369607483886391490315051486189764665693832101097983174343482229168372637929503244786706891268184365865970755684384468940598602283630300623763915189865596677759305125240640174090277651841853300246303396453894286237667280334152481298659037842814907238482645274206804674322072365054589653070752126382712614841012409388371237025974562603058846526360092278586125198121172916537984587809480093149320724505920867807201784175579361035480053777290305091090636632883077527926106386182031978885952469129803617255327617780533373782402316181157692646831815811150127702894648321811268912030909647340208832599872916306593382480744219318772378398933613432357926077671045193882754386901878577020773595605191999714703524818576930302557788989627547115278758628957684832207287145108044163221563517346002366351197763136781718752080123092510714994107422114087018345452908128997364793940755879027665498804345415813076758305870532269181140143123535812039072430813652828764104571377898470408649988431517518732477066995985678171485906969251405556610049330629608075679107448343912691865525039607582939836867200834047687766026745325990750287613012687912005988450538814598633994297676262947364785426896746098920217508126889553135817675918127924986830010527927572421438068743391332269798950716410954208156480487845982603857320354629451023869156294208819454973955586574778172554852395798426911155182839776027407182633538967343166687653368153574857765557166694478179539837308433027411615699536559919704720472037494208553256758877469501524449891419710551595040932967693604464601010128599852650769596699553299025639698905508899034567633736259125773930779176955321568506778637128104358529784521825903094174143547129982301268398147869785246260905804213806279941977074628341427588064497222667000662229205724196943638900912812457364950818918715768706041450691356714947986850774749043995511568289363652448711724105055892309063205334785302471430168026821312578914970997406897687380266469746404393131069860224156677794371307257841123852964820616617115615882316058953157790748818788564728715354575695513956797887352269979544667182539946728661759872501455305226471615095887032900159053744727255914664968788947908102569652160498352227745062055604282063586371195648951987502963224592998662457239968804238415512565635829583653699035286443488942565159879224886240506965389054990224188486277028425197676932742833739316562614859566189236448770024473582431204830609535516523125026757450253910871402351419290225057324788158888899407084524949319961718660900003548575017361322560203561755464358994139278960181565918475647360372141857349363332174104188218889810737288694920954900472002816825860926459238719228353309215055219037677424016586769797257035962147542024633154211047684590408816520578259906199044281437998645932588499827035998454818353803014505069078134761281025789403830900490849618787991702113805959067932638797406745213990864798303741053348691467505142570138970800726634642500126039221010132397260808290786586393892618846417595587539615687200659139886746001974698100456766929805278050997220110904999796681102419223759510058207699353352806105579524220522623577146104453599330221398018586628747206961205335743943310870112509240419469506758737721689017741863923245727833805361197421364385724221827333823869833000366392200392566125920696840268760135702290580012649748366308019571574283446302895688172386949983077628006719272265033582676498995331866010126172442804706793987166628972917293614806225438825562315705710299605953688386598105720177002434939501107781257874013105207048526610906864224632960755133924636115245470317586143181136792918075063423887994317948444617016559687039983193985706710836858492976636712003520816848304207899491323649771800492045674874491650341236727231092907811709305228827695238925699074728120635871289326958415678175811523403484794626775080121383868992314063810930810124539193499681165617723872296908634950661542703218632091501440740586077968210131607219056098872395907516296554153538787345280135003304110000312550716077127501113439554956201886650386439922625447195707505437829376841092796827259783851942661600973071689284511142800151617107111072173766927965784985909684692130627679986420317192307520595446654496846491166086568566743385288156384705306156395486952163222924351827044554996939048821382194249585929445277071503904078180561436330920494491376167642860638701833542370170581375344421118676074076250775199407704346429865003717383436578832324285703834380031120948833281159169899291483635308855899452973750424008483247593451337085847991521819163907292932146095199674408139394285198830791018428644536987716279156674779918608900047767885608732416328886792105318970818089306780212762876615641224970997652131546234187043866119659696087597710500580960295530186195081200151558805095911535185220482421308370397687809051100614920032539821582285761711376704499251632275311633574936913974910649065473908327166870244690074590210817449245731925742224961540135382877480442123295674566802927515901413098406378836372498411648854379567726223880604285521352638458344665404883278378718210588343701266144534887089585537578725278692934071151775339557747263145173685130865997585975945097619944892994103114064079939347054621441430023656076792962961167248820900165315868890756321808788051134680933135991160553206597776092839733268935770743178160659865021548275768251259686221730629615152963245136772746399986337574622741880944752713490670291021373879374874110686407534385829833088907939562787133085222498793359329074106298854425919012794845672646355196051124889522339331208563645049469621336981758157174409305507437051815002704551209626307522634254911586646782737393999785961684460308950885481660377115628027540217433373470142085711425466381362024757193929194718897592114686741240739929063081431992509790082090993462693672686590312695123327375311945398040639900127787945874426311218172417200308191201426823843711986234837050810928460971702940450325087184999907347247132558365557668139729918141753518577021636587337754892184566479973451331129481259625445725059490260492416062151506982863131211765625688601065428618213374739529621575381181688700854216784203921699813108349346676188992535970946725662973204386162088323993053945585231959230894090419574510009157225200346522263109993235848764927761306087474487138837999511793677971562114130802942108428533267846860149107659925248994622937711968746689543656323040800458830469558922561167668910983782769411935936167767009175609454839225463048410540831578027368931097312090903734860842976420553710437388177609060797722958392868925854276710148747983036590835399291210220715988990540793736217280420199136907609204158565162350813064806850563154253369416363840168505559913221490800441223385636115057466627378587633275159605087778134586588645730937447625035833874722581953425818848424894784366500412423987603738774096727364840884453325664676366140482258650546921366421554519098340335083411275749278295996289727367469047074970539693285087648487788438305233654061014244737403032420697125383345826589985681818850615556333205054529521882361176340422737422456613701518533001627623736383381171488553772854639039691158439538201588663557743745633365107840622905091589130915410632859297626674152303149209073100159160146712255185527317081153296501123997106015897551490997313620943379409658902694143746068573781958384074502354140667673093571896907312874631224771687062134765411334899573615745431862687279924468534952224242336218291869236627161610423033348289842002431373283917035528573895912407042639246777560726680075406523529290177753910659326176532206871340358714245754455637036638856034509507078212365993039049039638459636252947235320917293129639024918725346243962404762170735775850068307591644019291666871701173990042277291209769505837796353507607102239694310312803683566091440422080001659164521036772067297460192424866607574910455671466237808404484841976618782834589759999720842933788457471321357951742754751089863494753264352538304122545239627086660302568279071045372554494198249957821903835490092130551972549093029551579525082986419428790052518292985778212566929536159519169399932786599890058481241754462642325038549814173078750221399435485707121716483192282824640327071007536745798316192348646285980201828340002196711165713591616115360160689659664706751942682556258082683875525058957227255766536264447724609778507380594516036716019456001199447410821065784054871843537955445186001628094252360959577891349483573919323011998918764624577729969670425512802344736587185343802820970723192094044799321942246535722665597406811813538692385082849835499199917375648614792160388924026377519575720583066239409316517899096065149864808175435050026549916489808312248809950084257970169256382644001256074037490129969557455269055722183209474639747999799652179057147666079379986226981610920196710212478497950685402062266284826034352268684453239702862003316479673413860231722923224077281234681732994504754317019347710573286435113589273738404926666153116683546468009803258812646586934190302418736839043659852627932943496787606526161442290004104467794759761914540653536923838180171915153927187942716442420666070687137140895709114517846565498024082645730456549849226001926489239092281266983846005569097243082236545109759097921351417707228958556443744019865033200767883654504207704165907326350588281494611872092167017609763955955882781304200630557130189502733367292844045245820240428226135190589586917449823224585700940199308658272305656071499642745235321624585164165208223275944805523707200551518556044715162486039855085786797684472897649192941810136382141010025214241891705391992817840470754414909245904664060536500191695964952353471789479512585648307695290725289032973440867774517401435921225401669896921553375390180486007465489929952486244810040215344500005682757021210036340054216647128574976669463123546142189926796480117094805735139779061626371699304713514253907042036367491852532592362712483067968449838630212257861225077925602343765565706123268614367578101326392308034724491187860041586352100743396114071762747795824167894793672946137390262160521683170298302335460251693170371067334796108081704666931809395480914050333823366557640520026722591437638773181370410393049430259702242778984371191352477523969426841755682098821711179963714190163907633045889219849145447951091976018292594875444410322466277028808546453312847930668404494677706568505628879397437453643256953599219962433342244464198693594385258338672362676601946920861437804027736995712244263738800738117061581334427720313130432104416469239605129890896120533874070501429982130933202045579145356442408171160828583924499321486612019846924103768518194547640669196666033654227556113899629097469788333307240675842083703272175090280863897848927547458517736179989462488538289445195865810162897972854710147152502794792560924611701562569184798925306450813762640886518267321475200608217998494404967439636629628017806619400360449344659187504509877967272860366814759308297389560022717909954896323602985294743330619882492019198601383446532229096443610879009344437052598510771084773845505418050522495697197530518069070821721730120537357412541586379824079115102397154284713751671554520261178276082663847483231894005211723267995746056498509591363852413490097058791850559957968325000477786139641652191011096991030428112930072187827436087771673799261639006781997763976912932119888158064244715996133234515716480843306109834963679677175823345373009144479053093692935485268127166877957576000905507263933190484847049117559398231591546946480617449778232941193093536021427011582338115309004053564342985891370011779912332521264928365024386441536175355993809111917041327578225676275864181433804940104587612203765880809652362948423679814505766848135469387294957916159005615410114683124668609536158840542594210579893487695204333030272024979155383423803368298393494104829941363364004102373317336791139984041835640111814829741584943172212525804058440575910685604287191078688432425970212389219754247300459815598012369382335330068590269166582562961448428419609593399221860015300564444530170737819518505286858872183095825110906991971780545911285473368482615140229417006164915354189729114755021803046570564291828338483431160993483678317065624694179759470663295942845341144334881638252818095568375456255708791865632663651584006630453688293725331397181170087886439118886084749554291507453138443903157897479030562979638033331415691826327450317915343690953673349552181798702605181272053849592041645135405516005022884938612912117859797550622376285558000791412051319046277289960031521013725916682401746351185970904180162005869016912316896072803279601263890901662809826222078219776766560541984006158063926656490062752968452269432769123149424708315767576343120169899279541447988058596661161159418153691092909093173876421544618428122678770502591190772275470806605349687996395463562309009188388175131252096781853112065543172391628276736743103656932094265241465882619398159475584508796331095454033549073693970662046256835654535714548565348382433954146084370065856822448503693375787648337717842291413239623872295906630086646996846962819474388613034322006706866941075281401795881748053405628151211304501361292712759406468167427295828044965490125260833253958070986688523373218723741197025064523192396828801536540403468075125803507959562647674007740277223811741934949676145604318372746933915128760337646708059666776333597453312091777638859998141241321575504298871266389190526073258517121806324170973678969371071741249850680396214013932211858259640017781395607369064367160189292674560827151329117982487243395120532582503739464404441049224843217775870269712219241322585081877502738374310535327998760217825179353261742582049444838861162555149524441313366638588607428833065586923946954298132181816065218980143385274057979568608608686068386659465994045122485323838012393433684973481595523566841981771279176833251458112420404584309374202710895036576913796591376787211251995974304444377197292851496653905832770172661634654554083328517338812801727785775326740708233795763274181646085053015209345087136454944225026610801469035336891942764754040708246968252345004950483315573301572910410596463257335113953350201228863705555822906566703772483118469517794666676966089455880854376191149519723976843861744002537771658758531301624085190099929088548870437865409211512338822893400346095588198459763330692486091004889272314655746568746910422034126754209999169812071699751655438411180317198403910169301109037447154501533093262189128372933602965976905469726021723646176662935906116418648266015248172971500279872291895880982513391998785611324615260371660594746637713195121090987127622651370761011448513905504542447198484715510377230553439666949580579461657288073319643950983748028699559192806253071149669163872646513887265395339422041688349931029003437067749376307394778015982664113958961213367798110929865370567802212305674904541156603883081082469384825306254673935924463570315360839441000518572055653573757405006089722305686610009775447529227462308954291180289480810370742792252949067863848922449454589626048315489452394914806262296722647959082813116294161705312793392051409194466987236804354828983883273022274430613375536215030498135110512877527842896229601767051623195294503990862673942880630564002969330285329976863261622615362828316386328381116449699129144658278041921192900808687250738843321737145042449789058722226690215920026011223802523083983538496305980437508790534026824550197343000788314616481208939344018286622088877473407336549384109559110556943201233578062802861967007029193514838138691657316244290528176370804403511908075076661035911936074841106062888246989327435892767554760125030262621264573792519182415337712125271856122157430418833870779147209786989170088902730141347529904122775291227072903593262962386139999708533243968950537651789341359474252891175546440018115188978628673617115973375708487173110207530957998991066300222113772594145474294531549110533069325542924681766264347621047505629801994340038361747720641904121800494159019876917398572476931042531181551288477937676847367979873229535363997345300749809258398450420522541054968586482614161405262789431881669749173697453299629286200414896241894847435732638434480599365787757406775508511057338937340987608322133105510696829572050130880729016878233756053510369710020690522375031809561018429451337462470221029775037599515161321750338054253274170114265808409147613579196729131120860701622004600831164894919083997947981426307530043446967150157003660941574704713620554333341090921792899349252541293146536600462756627693785941632653755955301520724485255539444248442650624688543068827640654568804864035630436537467052690801689961302660487468985515579208932706441809102426793123792619742761607231348203135059106663536170846571844500798856249850200097510445813614966797147022927383634573741514758075441649745013520398391801729375395427711259383767699698313794204738367890563648648984931584617856557181471486415535897260214062526353074189929975851305415404205039774794113478347257260518397314089097097373344904845145754546755893317371958898144508672063100068965895509186591261698311286058624700398303594651148837594412106931431889981875498840430623810790821867374774494530588337600250075617853934710866510867512446703264014605395283882661084657246635132082754147785767197385431820872191682780613159035270128595463168181491207156854386454428412042842841366785373427136644720283999612471591107784557077892268780912272056300136107628800063473833839175760143511159818238074270665855765633113607596030515582299179731097726952379307828956332669791572467913085755058242474681097845727128750707783701221853481478145547992476136376980229560367517408452741286862867042716992051115620689777047842769625486352287476783103500721997584624291538479456858759879356111116406975562879551676628103266888490669563195695048503880727488054818288640510650156098830183575815924267919393118473299738868623749291003361202377632257925714993729217646446049669665491282601725060933963235660934923253855993571679308181807788977936968262936510920364030504343182000230669754889579024529244488137482797986936655706787410447265273057234518975208336248722293719182083865310111685093257048100979497644365537131129795862756932575201616719807365504745863714947689896423954861129337189488121581397262192083599774807966460301220529950222353435241235718328825951323801656026637342209181509080540462744992088788699329531770341468078709664126534679055766456033859480193347535167658680573723509331303189963767604110407047669466152544681854282190289050647709610412467872527424906182645735341874323125529729406782449828179898496638562906833646475298890688109436192465857650424749162394240648875966259490455948506381337770383836119816692841244168965281575233608508140795826214397959379431308773485197557480202980072546947821326228349906750998199971852270979941721878172446848679027125638396001337097167900340394248679217314046377099864044910641202765288568533185147249737721847200760997480782500433338572463742302576270713981934297714511224780785410311219174854333317581172267387512862263186263139721353973711800434817053426261957880854021412772579269013402925564501043683086086845412385837293010344440418223150368097320937622932559271010583620602541006896148886678838775834455480957425633563909902360332637963216250360205929090218994825131009608764048233964367648756506721630291834505033492578594685985091279634974754088941564450356654659592035859870695428201339928568006986792921430017144205940216519205651031325316647647315126684334577313928613631488805570744281695020278587080672797663246437591826249048617915682169038738202854197212929749273395661314456764267162109008870873970372815747285649277689104388170674540214218994116553424041897027217452372055120900575990053962092410850114627472899296668163952647759653090637122907858905623469789303544046164963773016235800807731119885806925772420040648155874295604167231649005731335511749582252413004095490118819442912732461967191286334263311214763861617632618449811642127595706741680186132456605540003283337706802454807200385316381320601394367641591504292571992829834837828724883673825758455490782063468539818463955396707419123400561634730917804994983203244220655403128764676920155534632661995718555917298994758787840784500322266499041642681976531723922103889909207851471655649514291797395349786405198340179963614537854718645492290328524055059036017525853148763529316565821901755251451304409034379284682150847390027947807047470649605632702601557779344496347784448580245866508780750413987763870529310351524695374065865423919264753529581812492159828042164945302584361760649260260096115144263421455187164872566672743230065095643655871979645515766825736163558748901885187014817606485550497125920233385504798099576840479457477151642426794991936958337868206153916131271796205315990739110619811838275842935697622478261306516123116202734549305485241074430797868621693342582042657898434687805733531847826890421205522660430804659543939181587396459355109414646549033238108872872093206047674227654170286189844678606146843888146819381638390318240478387334604537081816922219809511269154932340426910235726528268106770276832334544350967207245111982130586790447264841274988527786795319682411325823045685582411743338480895293209522731523750595765306720606320300059073465690349998695902462559337826119227730195621755284060286846049918263286355729457060600983570007809776926110095468793453655338332274736639568415701499220678453710430638589821445170460703398269856465952850689920496878092776580286318233552039983904132642947800132993588082225252994287977742352509323993200099734104551515413702728676408872364388334571672853605714874851162751987895426250987039913283665328030915392888032433508271900461674224044989299679972242607015949504094849087512303314408757490271646471957337032794967727434243680831121852883302261744414341449884641900428816982923093678586505885118120041423946845476307588980584586002756861640317992412189862365223945963324842033323216336966242741302201587358890520791878841081794467688524485266536778391664372127220096115494005981711199200111007290035088613879059167050255321757051571313361968217483642840244681945206696288706938193183415601665303424266163637819460642303168453892609037851288230273103395522647212665267616880897222635588792414810315896957618845592900528662801849185252872817024430716150253834598555371070870445597807364926222988086930335536138769598507580891471454718527841144009042753050136354683249916772296068298372826531769331177723331468329652257617096702259679010259184619733012834907814369937530605788008727850424258634218419109470114153397723349284737051165656995725954709600422311246835987584852139024870328456126058204804026390698387320367156653754829104301188212370519985867413049581653146750228138473887386502134996890281053529305136488122387535497974208145187683659321533571760321040480462777282537196373030627035884230436591224028880179595471137373209224467722527933206734003284590234646798269791577588248217362179283539184172303879353529830878618202313329317226233073085178476256089236400486695300175375870844320614725193401852384821405157184675578059076543336700399279190624169146195917755115928118011004409421990151398256555723553717298707075165570030894077406787145032460172628703022990613571877819501303760848776263847993463858131665726457787647977215694937862622930462585725187076614618067916374134692314545190604165997607969623859887626963626608482546904181979569950797324835027795177771342264903300697083026665236288979553785002685981865876497671156360700389979725052376007858378417079928096910278542090318137992587013221936237754439432012473269365127179514185771611280120400532263394982488461533697766271032639761236916287530623932577938748921756481382008595907744679093783348046780089355610067246216590453077542427824578793062070544505635445728789971619037965443819141858998077214369195984950670031778754149016853322611747043042214105310010575007210001501574519391484785651699186962592145234996684776814278821759354729664169498247987267435974806527398042524644311572607595129966941742153871100981635431760800086869323557331020684609616669863200548978356806596507461131035085469873452997878857502312585038466140439990696392938716125182598581208690886646940100956062674433615727700624399255766468997378870131563765405940568323818069945352628750838330357729279631098114882709046362986458469109347420326693987225879418553021822727128301091704735966212666137547845931548604044197634032805299202329408101802326662670427062263543502832106482589221809708183189709145494080262767461121649962165595551108080882842864400317275943282577345247066834952892456434945124840266068426120912804419890046078573220834484125587575188001103004580392923845157030645499835752448432643860393089119195862822988389098137611863479017730678856919540002277176816341376126948397360775002876636235356462914184539577404749485632107110773469456078795240483440189536550427389081567706532853496311011400648827104292926415667404994176466273087599678899944092902806960424461252901347464400214372177174197429322990211602341597186278932638628853898532227077879520899876086187783879162576607200706776744409293913778732007219880901555324262643761848695611504047836489747610893436976885883154186833464192961118530308368124932331537924385226392353959367564075546041087166552197990304303279642745911049571287616846835037037123091472251276609227530614160596500491144104808069037943927526685307121769269902435029219536452022102184204272884643253518777740686710645034029244375086394076886364507564992151982294294012815072308315819585371964252747639388671856548551490346128645129854493478898908522426174894288354586589518251817871370212408416498417306753886057012369544488100696315177550575726191794988217945183653976552339563106648774181371076931951860145364891475524813070721077157893707312422312399775624507701870375178860455557971879889996294240038907555250218576456529991878512939884056959278817837989013630045400173129647926235624824427357595583518102835784392173978922355654592935047777739291104559207890168244645581239041088346083314616099040262321690333468518002171554943664751488736243001101858964933278127788507282406415449882034879367121305965512009877537234314246792236073507885741391783001364565143167164435572273087551977404954695118119228550141488083836476318304952570187496676281552337686425860347392002256837202022056503541902202741948175961571084044450320941235799972185889321253449540515445207862177470413875273116726062717341406104195517274184441031078658969541129587597291500393703251489868615533199619161434742061183740239931404243022815791708124828952121116956163533211453330197609070281031257497441824655609779951211414542558497126115499566752034322607098012758470822644225623965262559863933779734979530288065291145985711705631891889429624889851141583847645030907625727116547629773683592459269950779572377985073802712240529848874257980926602041791374123937176429163625600185111168013279185315929496118195857212532593693129562581483672489571045586249217606740189473916028608446683070889331273937588345691546532129172285265721469334724678971894361786958875220748861173595078709962191383273100360550998934483222270158530600853433625281673974159390645017570773190870162123280188641568771227249594225901139104349949186710850822120658314832457493588852959169188122447836709081512259645977661492081233139385623560688880182167955354293797012496884026822314698891704317952542839295626632333445714637204962607358583393876622179527393125220704780595592465170482739507277148687880562574176487632626010415532240633417161381377042812178626819713089647207631656731069678416967656672550022153622842849379828130071174519928555290550088587996350478503406631815451481387449876997913036984279303376556398864115808627277436760409840847349939050036770463237649568730404695149349601551152493324243880684863519510252293463859455772204374863980886892917148652437120258884905103567384612638235856465832645675511368471691561395901096910577077764838842581405130211427490730784799265364764044511447216245451170701226712887470836611057526892837160177305838464202263106402043719040077376880326426347136658110334443839160345465283787511885831727323390747001306993153252036868587876646974195238691149071942014349940169762903031669625011994978617113484856253381229953286855556069355160933046779116330764437939396084024577984407845551880101148550843617445056224921461401010345778864161582010920010329952092389040382608351594577473381266142829168069674125531593805201711133908077493446347023435070886506399198193128837083497953416720243356820024120044203213592567763220532191427641186076522382195727886769909715685182913757716613165661395504347618865159119420504320705926878981745789104164289732579230061478795177155025031230901546972878900381878791616667849032935700886604313168294266555672779876846223810184692637104531485547887341881681146910791052811210720987713318450982717706335008510617132053688124212216361415864292896861560071057747264129388432536364701475760183251781282217946857246731470756611368183298177703553261784702635388376855418081913673315298108502890338103926785967014645984731951266773573482198787444081349243413785477273950856336500481808567920127086261112318397874637252629950604574759724282482029095880031708759869902290129320572469886327173591174603497915918845515218810561276970121406276258928980552417478765257704134344641100974598658980282731208022841280745757501717174259892150082774812381925227179078275585206526191144908098184269941775918537890013266536044838771862718004779673842722932795385779090113291397855957134161388707429753853547714263698428699826114191445170460877442114409115640056692981899499357658770476584996907318092251903419669771896871402637699581896695696434970920492333655110620612332553686104634918348669458821815006017975143402200828583144373202456044134481493617469626957190928820345005337179606230052805838338448785608439728285822927714433755665210403717696441492304114490959731936316465960927968289068605156756796003192522225506758544935550513948275286163676152897616015602861146149441014484163569242066989752437087889441645139069228257601552013371225690638304030414476810178965633041578268688468421482142527670972759770801254061221792169878525321436075701736108972543654477062672472201494969479940678023367593276448700406859459694068141397354691050393401205785808611542611181163217101317314065495263836619697674783572378009424956659090478530074564580482008175287910521940817754671479231554377190617114893636480317726990169549215949836976984831398514698939401315381756286936376785568771956425416380154807417288471800191729393548792495980913351422744623094466409907471362839784710703271270799584710109584092454289995271229234132579510023298174544913794349460004241793239390382717915614682711043404260954749576620105511951177876724529976272234888455020353201229844943444670612231849567728577776348784469455217860661370590769404526915645224197394808224644486584767347048114968319672522668145849471363432504284916780349488422081046465051685705834568229204991628306427844573830571014879260782070158894504903625624297252968193368306248451848085018981668332293199636318997769916658221253338867552908127478241695907574570686638712404888242055911025648238122204824045078666516009670034249532023647774711879102647142703739551950707948605987876146372747300433911079690471546777465329817345376196177472505297067463356015707921182285180295992721263631011673831867799309550610888993873803677612659365142140047047140179299629400029111781377461828707722509187716668398400458004940763738642645418028617611623350298977150046390075931478862447773356089222841600060580238615824567905266525230730658826179514114459933820209887060995714052001042701925135673863845177426089306356898191596378800070827804517723432850877998500708668676122860967956916569962902950385676497637931698997621291320435517162304341291249705568777292827126911630474066047633249012496114269506075925603729696525931371253593128195377087305270458016953795353128798256938538791493072733145686539393209127942774273581671105897509298955348574117814833888727472520967158268749123610749870490898084126599081751456943995227118232445117358711083279579128936655883726999526970393010300715401393774370073164795793215330230256336301794246081274628644653272419816909508327811862666174485506038426428497805541654912104729955289616577303943971344477114296857568068207127100965938847205430369721588299020772033588010834494206200994346408412592626411517624678985794183918966626689391975339599065786559472037018988893569193126042541884243407198460871838935448700009771681027851422972307876553389244031110266477711579178413478405334576978734285858983438158953779785531010767746269986773621542088245957761683273085554123025749093742353150109106467355977263944184427813854969489915956086446988362189248690265607955218496865826243822438993989753925238980491152927202704515032198976084633494648760221614637461409614317661541779923949517714443194818869703118005176350170139330262253824990315636680370561618434800088412844528153241166147650407560884973914901545797915789092697117132114431468316185658408979932021248108777350631314957150204743695180544759755828376746829528733469718320670080077976489868413195535986786018243250739800735310083048375356299712162291128911116200517762103968357684365896199916896919936229646064464898124553141157930544985394267416155458511260185709608775904693206550989717284095819647273596938056880175579856928415103159810274128060706335938972463044133532996263269471881896240103703649644060152470077930288154903296436131962881825922199130474370304592245912476353796688699055090676363930022805591115118789794644228857926416296407018323973412967660213762499477966729875844783088895334114270557303589845295291934242001914567783023024560460419026210938531107705608801664204802178260909495020420610520965432379386170633888229579741726588203969545685229726891947597597182241401213894978638341261225069069599912107306803749932655803221823908481527447057145506238975826221182071823187268707654545254411963512131935681515249903045485315794774327681280758004867728848970298197177613708496768194421413323642958909867274123940814243498766269559220349070630567294889469968734487161004474342120897010031180794712923088642623355275513815835712217654609055451520842851756349701531589825249219464365289334390901229555223566152321023624555047209924954062593041033243280262386652147195584732118089441136715846076185744231104963609496113302535145177908429302600769644777800484905687488592545068107688417615982593098088178485556988892394596016792583970080714653023308575505681912288138113843409891888141809534175046381172338704424631111843620538557493142942790419638488748522085828671976263910527207736279954545147594521300062501207402040679247851760598660731018286932204592405266353260625347213253528280388177252464643151247495053111623033175327639300183084183127420883832692697961236637405610106406008236374134703938906007946571773730826868529906296033400157563381763080878830412895749655405647901767536880775615718289645317449310680083942733898057464630942163419736274507215529001081005950994313006877413167048562967919935732165478834906945688907500461383781041378798615852115164490223321591539546978476006892661013623684599147764092402159297701357627969739031455477663700975433500699490208452571634067379640123604735978348918416330745678791276264678111332018710187123637813353293493641328342799313318908092232285301277082882912010817522030030531853497478188863266682131814650678578859897381033505766275514301413733464128477293854465368063735005753125537138375938885000196292631085748813950599516882073703504767499909675622651433933679130713957516505250987304668867494500832629805540054267126232343514895087994326957496495850002249218631515989134663821958496515058701739097299067347329702370623031418385620990958569522992712129018377618519918420909324702098225683142039905786211028022149379311816934371996036367009503008758003342353496385454140675354618661805254887304919664139659506102527619073038363695411743853891557513095560186150077642862982914628077214316069224509211902384183446067689212687576551443609995659398314144655972938116603157489699109231521070839749585895467083058771353907034851848424261104900805204581280891555420186376037871719683136004990925417524099884597928272772733566163481024374102368045357772338553418404963457096297276602845782857611298689917039151496171045073978243377002159144666993159189177479259905515144693504677359269856374369188618948340545268575789803996387601416977478147899814332361371698376494839987604240891143780425302455254608284215009987949769367578820999675302582489583534377948979507419277773847084727470252994588325088992450450051215725662587152413462688159238625255239173690232297767404396352006466795231518222197725637837656139936780044619182495241798812296875742910173603524018600959482406734983214476570448282354438618737962634143226959342642416748747935581879342879180071777826612309712560210685384488391448542935773450343827612569788849810504907714256094857934915239810505940770153395905024716019071566603319858893058664998233551567376154583193294263676503858382028340069967771474080321655038535804404579570980833034821344788792974678383330623537803885735507802152022151364776157225706972250328865076534204632376469632433943437146135498128179967676390892191664692987639139663100841153558455180653610871774018129665341028347589758070631742214393163105519545198754599087246547350693966595522289201709880138128900813775639708877189295092077556024444082009136296303319088687381268413395458964646364523872195846830544303940451106475931477915469906766221916458194742232824190510378154179489870606317752161945015809939338803264729004525141884195201451528003609697744975131500904109351560055525631607359259403781963980585982530757840987758132412730940066626995052063582566578069421576829146873153469380152118011664779506142597385316174265319385043993760792668174770613934692554592739420536498836323870409909212920272306456035200924083082410784018320154500530205491283152738905520943551984692969311861303576380114941590328077034123365251936484653297072044207140489017410846240752095128916142813316517656781867783065877354507460807470731587005004079212857776418130164645371338048890088329651368395857107334836697092634259965064890791052943084164388819939136172782508568392967084192465091734654144812399928398465263576142204687107335541428164321304235754182105256759397489151929735323789781210012425171900610911487333971921582443832589786647479537956534997253025487265699780899491846596117958709173698153275300029582646580321736210571783769784529612423901697116751641338425584733036913911527372785098291597785512035830870538698177019755223287664616562327241189750569518845513034452278461380516615702507035513088495030349764551795521024346086009961742252113110319153471204270537136203808451920010227576864671577132280189825218109180794406663008210195401728191071859860985095602173906311859986291988509011506150852644460252450018377208855632607196741562536812103629677257203418273496822393024113273778637584280369931931456772359300537292645718459104496808799726076969462980748752435184183028821478866144434961002337066167500619399594817696641934175754606985180680747605757789829045945213085995034032148426363801610765376437851421802638299525229212300809798338993132674049216050577723482569045740835625811027706672631386713791870066242981224234627946732325889623023251126134233829558862534754124612489108160468526220898485567949717312494680983147591624819824178694029849677206533114404789670643562924312788022192023063889996454470873041385124320380405196048604614383133968206885846923037006255885617780124721363096110957307998388147481225002442082467812439803846182236514889094602400763937659524414770005880987106945120092162530912004159424192603446703323280804580974448442383990528212282852805376719405091914244682776733917421434770543921440660555071013759357465849108646492239947657070542171451903013803168937138292947319516520070984205202810614736961002223068981208734463849126426991858652240575265858501155668212836388587083061071447366138565829963505356255367377860928000614413395967825783697276421620405451316298676216123548843132904141622395152883312488624437138756710594094224916621921523091999933694221895431001596742567142945561766946699758131730186602782256001013097920383192976700616282260208924000177470984982833889696129057267032930944430798060597842880832120729038630109172769890176067246390585535271789241430349539323291918093451872354339885164804472405037639378408161354815750725695774868301636334568867281446582420457039640844806842185620173417317993193709516091357156858459726217472071058334765055671462829731819579016591534698019521844918494884806931052360812200473949540438712352086876973559838636551801960406756714235698104120722095582215812250223915573592315914612176254686210978792756017044934658140335494761211058856586798692062956626591077159117144589838290037340118703375221259950013395287729724456021435683367128566444807204941514308662570362390113964677207573734958560954902540073184379480041787043771107207042162425516750857025624210378000567764497433010370076998891220820343022790998383351387305023098995420874420921132669565741830949763723137768131088553898677823082394687179637601515786377485686926642759547291581299234577359279603761814053941015722777811699640042290537372679646816952858824284317989356280630467244392653974965053729624887776362003359352453704140734033590409980284052712685956319282443501347655214327588304212066399827173465681553774743976858790389580602805677013836030013158209688675307398078477440810993514587088753635769671169552645776179985200274351523110056265437094161187989126909667850789539297873217433550090182422933375364927091100962038204341785542339218311626151240766728725343720919493554376438377636692616609777537331743930950293768923334634403401232183843777814359856141872923136400640339392301391141810849072437568263513981149523857926080875415847437529058983460990287696665902378132835499603219170422233501918046953152434973491364916616178768684787067443678023165192778954527409873902921619872616083180842296394473754385354491542337574961197526997823679907111493981565316379791946712763084820811674069168760329819759780042710938153422105229970058235452000277738428497833439533777635532620177996967116752117928846453632021097121442083346088338077547001002131805061492508031432006107310221242269933227933015566110223454644712240723563043492382153142139887603381271230032347009443731280075156412782018931924594638252716274711377677021450356864871659191212461864492831043212281091263253075596483507822338177040249318718118125381906480455501858181298517708225342334145697808507773950059156157038978383204232951309294188684998019460557736392361637157286342604987443434983803776131670959222982323851595995775940340212367298255740660123667496105775749278982979567121952085875408177335488986758590220509746947123473294666706243479013825819992191759808824524206011913449016843258725447048862773067815534619912900344010063497889645801490046978812816843070502958723995763073291290252052861890015267804801905071593617648210719530714104902560360222610037976875793139984375941798686319793077655320967079610994371041976204194647990053629551563368581964918699684977544393805552046062930469052590333570544713624563333223098713968757681506342820508354761290508809479830163438912340654406156685424692499186680523784224822062619486902187571426714321614307152357494215035499006505827694148059631792409724646141034167657073594092521011213609840261271112135566757905099526015618356503350055336529617424728253169168519433379494919957754326615837791497537388880119940787094175718408659158012410185434519554160307643761525992508565519826326454416681820816931389010459909037223352668519896813985150764422880317192494824740513862195862467544029490042361980931281470917923726582739268271174703255703274920735299627709451426938942280647677775711515952899659883629133465099300033263594583696023449195111467629251944626019595614303189686420085328104720916816657975282541101823115719322014230188767378487946847223553088587029516643396414378703238197867214222709734158888162652081692835223966519885039225928207242476567963759772553395976436615051503168501036414443752623629827064146970900197362216074382520991060527775554204476890537190971400413939995579996261757812250428867404559291481765566968759723084908298161849152173354168383873418059166834192867051348129926053246450763778793508647173605154919680114808515268149294236980939349501557275327264025709546705602834330706056907204431911992382876645014504084745343078282115114322024164153640951734052013894501421307682069868489017177282307576821300562240302963316758805837665686201903671358453735950160933704958049673161702204182304406668267156794748146766351467547482559891776021521889225510253923282785586796984613298222200802519483858313776326299974597708150084792241959574446700801294191121536548176539487404372527164379299632316781166781472742719349825697593562266029265260064540791959902641928971836419317951156039005627370249589067984057135941905672781007653632227115462142170251552212250803572909098928317433142293167790768879980613432641797320199625495024562457056551325852437703617059439381109785182188271033433621723273275672916355955136722608983388231076853462571764137597916313443685740133187985878837063113852384950886070643474174351116970214863997578616158138902673681255145070908927851544477572356868410884757699565470071301380400275887814104576342075957795657283887343357086379065044578846122337686614356889765446572091306049152440638845307780670283427608896279946123838298511237610309102337510585048314969816224089084383265249015813680467856847737673864752683451554482204103740525084876764510265782232739513834771953406638350331982846858668475040770257355870529819936271526865060141114580811435771711172901818370945758955852305046477052084000335530311785433488073759292223822593649538545713494656206943834953155509403123427383347179104908599196420889687179888776841080071851233575431696804782161459904218478643782891184633558944404020442004212163987692549736151147919130013996228584809949015480070112812981486994609849763109298446884160219580627315738400454250635374036191621993978143708614389167712754480840777950391588052230255138648134711025536444771320907629600291275007290318465981278951082948404981145898861851567095165715693070133928916170631989087600887292360109425084503491946719086892221778996208881804898297692487206372443939108612070995081238263391209972569016027235685899851180663171187534099689609180115260687287334324602845224556486897890129230714466987168125386894947686487756634225210897201019281025715008903207964259329182844487529460415140710707161555773216292624437962994134797730149167353587767196934920978018647569685578520993043853844880876748365015874642171163259278169155393438291976281255745813779339396032068035064814244229635452124323612838700775654961996853391073193850367048046245953480186491443825986925225392977970765736251456302860159989811836261918943773354792470936408607396981406195383290067899991002909841644470414831643962333636507124848230852000842541223158249227417087106803215280958806543443088613999936086619078563258140335689815470736657687122252950647462456616519779304109910938197616552947729211479374331803338933185142583694906300404153850896655144552640418100413497154616868601099874169035896672522478642055553153618595996263069916745991658156528667792644460116824756551727154083672831435698773679835815295265289514964524881142622670637886217183510842276652145253254414732913393207544131938433818110238642490423938460615864319014008931243751330312129502145364006700068484402882953021315433103702294132054108413069346386748951060267022575730943802266624649299361159780304437867050824358587979244254097993631913043416163769885734119342216356302117338238988341993733393874676453347434046593422316508254301617229822164260862391687924700321576658982824187585292785603047493883513785598573167236921535919096206887401903146571278540725722034644169508985515937807338077030247149947869268525596889819219400720192110431224415901872487869057277697968575128112269980602719241418810758699592209029504434903096130204383364096747842902029930559876071017189335581308112236097973673378906035013187304304419181656964334166404415811417330730264307408632456639531889934121350057484123120879868052659839241151137530595293149261322791480740262885408422973211147363312598869762945501944603912810419952901311280480000237733463465326201051356827427446849111601116163857451433624424993784062387248975753153041171702562974220109911970182797733257747285914152253976428444624092393799288659010305567804887134407238002436283284312290481949360731722233427459637869737490478815868122912694092854471451251604570803554199597124205419116208212839918196356860781890774479359893610763548895449490425083336266199916674926695382114329478766422738811812209531031498830296417277464445896087698550404380611203463788625851201790893608382639182756845497206571289625656357519137427510830258351624261578853989538811456823541511063901329849665768133231301147482821546103119924229121560399970435873686886629207936653927239993763354451379692542600542745293886446248133103105619716008431369589853084162551083688514789486842460933172378261510848052221260275081720165678976366196088156666286731552193859494922839709240553793615713290314590450929543630304703901753483935727063619371943904241545130356458503048257449322171138466010884652326801908193925263050552092277033542171886574934132125763743074090439828260055580695497464063917918742915653681680072405210482826531857832718492737062410422791923979205573184353753970634623524906632131595996024394730454635000551195561943378492146421579016988202427542193664939487314675726616974019741701419411552274088781678328452076837006085451001623698556748038436903766831692772612931218674005965718011732061994950715977310413862719529529184841697118501049997095809434028087065858368842308241668680549425053699153150785757380002679623276028374722804412216732320977985012131312872026100845664621691988288479474049937938240243546707628804748996665806283443734012195897880045572614669768388759353741863627494734522129136672532431726557281005343972797714710086728627936256664667994205722420323664509790453087949477971109618213835572357459255305460869419479153669170102230360249320557352370484818544328850099341233701338300554369131082529415206239939400916342715510371009209309945867430808647941992557277584247936365322748420933382886707042822856664303448555540979503954193412808833132694834222324439042380079695019083096570952807121031132335522429435563977322726406300722873235621451084276574895484031031134320007988649169623312280155286670673921017315073326306361993318493984431328665259873339370820718044380175945433655717170151015833949586023159031039797182190728329621885716358490924227752056267567727427942699321338988391650323577923329521706356724677587222716249313409249870872806461013662422317789425111435596318058812215670328897442842900608797901065876894608427379896342917092055481487756144158176645914819373518451940320617713550853801071953526328227281492589754927099025831074073774362169979184571165290067607842002406025088890249189038331678636304169974731674793974515770275833030441350536402270743022188783569121173748226571721344565164432092642618470347549156069678551856168430817541069943558112899197287811731623710398204408419135145465491944669304909934191380042057831322503014738527903180116902859681426322324140174664100209478400120245122674310167073900209971876224634117613750825995161601828670188354877641172969846656746294405807251707548934098520199612179911052057534811241323494985243802061160060785801576520461800991729987646297457129792515500538649570523382872733103361047481684067084521387162955317427522848853504527683734307817102422067394013670355343903682288250411246809431121708050230415184078848857620140770649574308367118585061280390557322415130899128763988735034555890651746660973437494075301097981820055488887436505802856120837036462550542931626780871581975871378305585442838458194992535280070746510089668439725774259299163007518565103074894381831136512009217705732338795069672925896841932310592242919832611126235079110563026930748675420056129988718372395360907081044714832835218541064846948133958225591875376635521773206222907366843548788372481522133168670485747422202308914637708098011357220356237163023849032904330739897923849457467237472666533862497863185425378273969087897910263605423685153501035092190332682739010273759403316471191960007292088449550801761566702560281309405498750915749386296742419866313317390219230979357710753087876970979464476867056761716095709145848669285279181269887716069714416820854233740184679556453385646463925252003930519006643003262563546244679420838727436438088460041636345057810569320286570029310897557625952827765519917963270582512365837600289108549698893661591747983646549984365307332447923557897770572145015646821794658845949932103413062517330755750863660650771168510840927321585057706111641651810435521507065832136729021168864115523164067704563458159051128076456812092239368401563465818161021865743665812338421238955753900797183425123546588117590225174169724588969530561461284502993831834552781798555496945551603210187070677742653804472377670820362325323970181302963796593658991696482376482985701269997409074186593186902316300648991991416138231409626622644280940632840943329657642279787178211391992878248701806325341210043165645283056071494254424573579852016284408975976195451108252247009127900148628234352805074530049602580549871837265134555844959122700376726537331588968315731053694936872353558922668030414766887164310259494998538404743619010080718153808339430255684213582252242409097721578867129305858099975946496900109052699738351240316932566887751736322876749604220000457207557770626036482057133850876842197750219056378383376693986504422797165472948025619606524311863321227389966474448478974231293510582183307024170803801745283722203925114764462242695219439109085841791972281889133287592156463629235130881224571254226304904349061521169250932973578189028952009173046044306707460318778462137339992374540521527866165695483712231969371594602013100183243955307544556876351708848836529738681812191442874367678761065225736524769608414651100788861027945037055020026941940166202498214918778960561410472795340698483912841961636878143937750546310124181912749591597514895281344811805513156334942934502268460158210736076529110531363931698027874476126393653496677281066199961135453937588820658717164537343751394524011989406253012608885807785458242219003989409942106897727220587847406418313424574003743195665781510921651508836533310763474368901767816264187701615744110682345110465911746288199039164515442935332224784785727303077868273452086886914891723886947807301367759526251943084575878116444369195657398870678498134761956941739468932096063472324941653740442293014158149753570212003012694108519466160320246931966586858313009641645759666219797233253167725710942790891547620011370257522898655935921063039763420596439249138778484196983994850619816894681840143808832536216173189607935017995816182372032290823019991671729349602417704955362989745729218736016046862000335391909818590643799752025477530795521077288079144908572894479600299913793968003538267452841786148909241016288123059959401798487412035438380389045114476254744469633003429189708202861375586466140393441404787490643738073468306119457032346553234052981928132900912404438712308502887304803602798516996176238403773170827872387136291157458084904048964475151435975468144289885406445295801034725668987725390132720627633512787909255255068540100525316842811896174237835283901702424908531933600398790883745440134587716351095762898375401576161667717439005084558726903951042355171324622310174549801539403233425642106712911088237021724700235447597757921311646917926514400416016418025487435652828771570399832549811440324101464723534110325022443293896709914403796773446008134112564564938628810626041741059991274000022555261923107650475031777838481056244441275833980864814496960589121467105016988113373240132147467889680899150115767564072734990923443737353894354298519222442172735831740739344449277675128133329067259613589328607228805204794911142791809040559362432770669768664302041761628741683776091879955166311250737216636486482586598727938460126355518539344997686603735985693344835048476085350116377939328171732082187929092041279526189039183311596704697480751126677859798843292507818411059316466805607020372702239168684166000995213356580675491605093924882357645269500438771406641865439761334897478621837980621771154246979085265375563208941072826965751213127415544873151202155361008844226251116617905915248917693987167271412740746161517008333405730690325289143021678278975507275680866049805987517217029182454506947953463295319539146421233181543436925270137419053350267378331666854493511108389774653058397604859023944475953543935722040071668536569638179569561526413454816972796857893780068766397049438715476435988760057362118625706481745933114925568541395841740705178067607205798520945229992967435056871494834752875466328163150142404557167338250797045760540884423942540469740894164542101130002521452312788528272738554807634476623236231207525037784737557225583334632513922458076159028065547483540541398192002487021850675203460200312324742064244675774153059690662414980993286304622742281921299038199649689609614295997960429133719912851844989213665963991454488954980211289448206693472574638679212326078035632339711182201467483579248551935487624394488367219446214327560790366732995070911363616714603024645205386472749785911429042024532809936586891249288743865938922438734536872274164225387636800423851717281019641131310398983982438379268522981909605050043160013115370839177835981022601003106793653769077770747546787461905106450981513061937167796304691682923598971725555311253833627675359762115306607103821730628345025268008097706276732979874496644239655634893608029165545904917174956291279900180741671014361430994871319616223213148302595701889761674983264638134034070750288112500502078862929536345387157295251481643089814349544188789661177305447097865831799749278828558707674294055247683486534744739261516702117615830738770097238654197701003063417979137345032736429737784787277110709515748962934187761635251459102507259486166093397494877794507880404954201239393471653511117706506006424651203852476324874307348165999573872607212456580973290240049423563853446127348655901496122957923255712508326507595189063212973975383436912019115267960105000100712165827141868586732948692754995354295209869204277995252579388868469548756264863204966954131524369424370772686325959828172853992771754967596247360607402098967134650100702995949949085050279773411613621159163083599306803031924581384755589561377039333906388717699994140138320163666662487113784521112000578011044762579076558510109068741785065132493040281233660954489156090518721865184637605508614958544315456450979200490790054388667936597141673431963967968211393624633916693562978671396477723143531896226650803737309227431353732220845560506002042266627216765999292477916464623328803078931302710215740788078607449709255537727455109757442577797688403696097918018549052397443760630801379364721485255868340309275161538754466284410535914285671713848515170253570330792694957579948831337573237505996659866113814310780814062919401217566433481802763676118677847083636501768839537251823117385018726160629415425466272215135882811784468852438733480110333434090603193413699978843679352626608965391945495669724179192697678530635731279884629454048087190496028870547372115834527321258110242550788586474716480106823429987623362571101424935983432687386914358275196105739790462646166422447369155651692064367075421649229172159095263897945459255453090923922592909297184627633674345352468862325744692471969064482071964422417421379948658251243543842286408366490849158049828990374932580154257279566078189722764038851300194426706797099770700498084033803836879240420293874940834058926456930678872294907420383815165831875369043976978867945382931228694270237533722560023684336562032525440276944472251175865304932389137135033209667328841283530623505993029506264652887303187161322308471175861080411894968924403048064109483038546898847601313256433553934916515362629236548810101462820739871830655049573893897871180803375241877319036960225329743587051434509900640311129890724677988377516248902584882875481732964714725053291891411276292437808726572372715539508061940217626383428806823782146912456859887336725862965142764931293174983399063516205731494858504425942605523949211520267307765517083503021018615725623450492101313161925750364181091999518536012321869559511462493707282848953069824916160835035240768285212585747352239585757069286427466857493213389159859760503821243857075664284291759909733374537210817356972644124966995164334534878456192234318850246891476125117331809989249829578067377095029687101128730911961590805985918921523191197235766110374550604878014825361276976940891377250551167023306602551438829966931038476226680912702546185950802591668523444888911812474664028297980423781819628776168370556636558528549218111622911481117878510349972584397657891116846314815344617895409838400761702627258846478966530730755342736036681907409567402704338664871499443697408579706507183713580418743096966767908421588908209202203278892104928682345927117074957089941883217594569657414155896625793465252128282210025630182613647612085533633782665482264495956172901240892306459418480874575753431279386659359979604080181817936009226403549880160578822606494623551145367453744354609272034180393905925830245296844223028571157538616865764501340324775587859723457923961741009488850915627194128727757470686554828616230482016852144871364998373560145942157456139269544257366437809685447321348971826852602758802171407530481701411172914901557973537850615292826557865070627230736351407726287747111143428819489043630494697730279263326313996372843345575981014575218874739122363969296575012709108654702670431184494106755128970989135750641543661533909960049482698195335273389321699343209032870398351025002321204102374011114708784057347065845158722439556749628845842667035733058252104436638463152273677399363485939796496201635440636692359139534845529327112487981702268792637111484900699678716834811794552233832817268980773972237343369931296307577375041781444746839091182678681624137168754722192668663122197398006987195368472489056843766533924429520839028537535842419615230156747054762389975488728627584368095326311641427985310471005811845398396847925587997663048378882047050984239048129773704534193853755014622650273679344721568951442248545434320027228960297615002864721820189376888022974589715220783796168797644209124151140600722678008069525702905391993280191336039560728928491518628229155805252122244624225666591645669809975904548328233752707621632957387585328282196976978856243677119672840538515341955679578351199640079858937550259367530610454439227470964360678584514851829996793198560830555110363524800030286853647549648847553900239147020904714628549994886527630520567609729129253091343678747011587176393252942166480901881308673200858444034207961769855041218848968419218713019608358330952602214180326149209464132847673731692499612133434911845350519619115410450794650998477552509800402194427296927997168800645121013928546817688566411441639859398818474493810004694844883260365435222819378944205209656159886845321155313917842554159551315738358393385420687709041043959342269424395331606664246279026624613836789312339478895196939080006586112168821011241797441946860817591229734686002185923545978741410837914479945074912630087262722388794804786425484597811653439068819748277591580067477702697105202903977755406533265162315009558570901640678017565807316764293499823390497998209658709117020105765414762939098714288591951478396616990196344434069372160866698266484332923554263294751912019214106324423466552693157255676534814917627508641537647679497056365686953705888226792229309131032198200969069032832075903532627672583131523159525903558422821120119186454036804972292850653566414532162584960377549363410815347922541546056924041477164764880039371482349435957940355917616009086695388678545493088815733546802130919374104881680811296927405849520113813762571230689313110818131481203615756397907632794588615389927544523552732324589863863294196681862929063581486313844140237843811302047518798057365094588758439663022944691648652313313291598913795839545199021770175325015523128179422925174347230339959877230897942981992037338815246508058705385998948441724896396684826854925552622896552905019672454959146364510099196799321205400415852394484750720502153189454021013304342441244459679037668709042596082961047456347998703295708206938563480416855649064104901911439250440712263003336470026634327875174583291416613844509143985461949882814505141272465352776046965230938732479484841529116943703438882137065146215533959471777941584940859303044374590491945386077511158893592473579298260436563558602086582623206092313466066463600442331475720448838217062241130121586208889652716285635662201572270347381049665854246699389262111670697889343466548012149537905824763874499428087164116867472587987350040794359961857835092356374349160145872192058039796998522257535785383871888582586124572047036772421060642122706825692295618789396635282598217341323482916675683103919838479581330600053031825923543976103612520034254637174515463912122371264429108157511589585547680825614344203142056428546775476924933409556829181545694388829878982113635510529063761796673822704756075085762386189020731903946445470165364081069079834057317667101063983938984544179473588806565816930722001920215651457979255761098848607375776440869333822244898725767609535443984790593565637260064096999516011934550202146120005885716579238888228024372064090150907622375351725757705761940660385211818421973793357468587251668572675538064048034663427850708030496375833430924950896188061532329666696383193680441359449945043410829657603490039541295353454964905845412771696719948442716571784327480444692845365558721825026996890047051819285994349787472278477438952584676363656003395085169236015965615344554138473610325509219982461123908506476693619276480990627775437395096084714609412109787670596385886454454814180129236677132293279110827507622038680007827774861552372761447757954967507136236603962427572604016987387291867214928515940863211318307800677090650401353311670920830522247355927147204136297295253627667296821884854248977565797675499554201881509048255816583091612748028658698217744693402436857055246377588670195411471913994747327348185894504341366101315997797890989137004420835949181237335903980746879746790113799677069547890879878722527493296660564762402045511732495510326234374833223885307163674648502365182598569821842119197737248334863721776774991672235332623522642162259965407528237255247261296677155975325592028657625052173156046878865800821594669906474462081117188212030886501511346457607573575670985182245861862042721021474202224114745569469357131437596836913739568501202705031685595954679797995781795260421945466213789706384787863883752341155056541347033203655319093892138928504455524674547141241834633446745358617049132282650644538631588162967464061354761582676658325907451022238468194679744750564773497253135362617488377229074060576001494895481877803053968208234555781321617822691969435705826621640656111810026466131935550192169746231001892440044200705612796046292086862082772912659810870478278022454118400562989887865630549666764137388957303687657558042740658131259638980021766298663512916318516060367385917768283813209233072807679946217720172988127570258319554376107147799358116309459247958787028774321699604088697549644142470546392995418266285683446463090993726770793485190795152490826018293291073430863996078387665366799444630609989216876623471445701107040516178064176716400390517052096179167582849421812527352049017087087653368835559378640461929363251554475706979363939917318703227722321258104405606365004163783342274949439134180675456616850682450840179415871467463076232591186294648381975328114699566321504935573260770631976602378839060196489874646590014943925716335401934876806918181350534564342987989622152503744602212680474798164161879153077631943752129787463548395227822920348806911138799083622225023684194962118587525690652788841934213721042284399900370636952354543360781405978749539358470346057969256161500433157091421319478213775710828372840251049076544782721572294667110745691234362913915078403571762062671555384858123008836595859421382153639864290974468363466003709122583910669065362174643117398568208836115326566499609037319177375874725671033104071772540049982396460661207084922522747910478630618594364304439530072982601576305743154664302044951953832114686146947670656349909142266967359960793545770896583789773229004485211586275388338615696900321152739128611137583368657604535870766093676293274816804076478286640767847821786943839052919848345722494273837269192192310331529132303989061179479364963498744239045567365122058220595095269545165307491985463916831453586359602445450746555339528794871392493303815976727158051712928674296870152895565634289359011701802148637804335602600499976547469274042101308040181736888871477737769450916718457979184497912470642719088645845723421072738709292146316272037108635537519237084979376320574052425603913378183119572376177425912939682203490972599693459100247319643796892960343887660155592038389185470015369385716831896343301021669181342956262261962457227139312190676227809995305646005395363386803749533058169336786268188681128973874790442847087637055287624601047736478577730269503795583969435726433973942042037108529544178805338944834424686161749066871762920473312048739824011872480348562260044453481815565413384181722969320139897777300165355293945872195747834362859039434792671086810714191595096704309262997574669259715196954593407584265357673879254492964716995074901192700688408664031859763774908325786511057683452529994174815441875656684251723521182492710894360135239561475953773874091660282222471124517902302487862647098071349863859272611292399601632879759390689947963961917032294874769804506384842314224184260189783113699844525589154375763172116296627806736536842321650447163064227281999324777482382722204515210841516636463121096021727379334228722611881533392781342041834316097168986300113754835441251826589013420513540509544624245347364926551858907806743925173832582224193457132684729981700846683620814156486918515045422819836559020409951927773506400738892968955115793028767715440953951278105250732136753404022744189278569021023548868377745143365496151531297189456873154654885547396376332953029288384509125292042045370883574084313443775280332272030714588367048670716434364146583930062242956879876032388509605420115117941149118520462366046378199080996637046326758495302723973268110795733297340516511986730734231506615577526681227587745287516117995737140334501610162486253613489415155575925142277026164245732041941802010645942705741669954489195196167291384996098437113284993150115118610824745091280651584387368505997294573739311321954846906762972143816521336824606642123675336195811816894309958738817470843305945467344026437274226064629337148214340931489783403551091938269171053276961061202613266225978238236236950202545940229138556047506088041320683054797960705863059929999289104251175713285768625133808901402697192802805849607122628539403781213992325359701150929707212528005997423334309459512384381541912577984122235672960886545242400488516906585924048684943174772023063076520255245561023191994965370861760602999987692990899294479554042728040939559192677274731208598256235499079981065505929255776866673217173425531046299785366606138731518234674971544199455164192508303054497140380639272376363413477788623101321376255749935905510209377187883871355792944533901609017180958168231799115402407059323812942018672244152167122914757791770512163327043822892856289436644691523407901879771981018054866271974025551913274473031007296143712344224249651414301110522954587740529009740714839553173599299388872447740092812326182102490191362027294899248493364929384721221595717564394994285676939894627685554977357713725558389392248391028293127092330883928961112894802982007332653715748981507388786514541700380640249456626137758522421952401462239738967219582703377372089144705839473851926238687190528098699597057600592726994438382989938003508571032343360810005856200185444738714350031753650014080622742659861505679215661810663877429337536463201939443316253415410066223801309138103970746295753710482310357683035879501713621898111576514868357175844105046914198551198717751975995862132731671343515029799150617476465592868245592415377571628096913555926637111037494013417178881997736377048368859485799835991143462928886137417193045441998392288132563859711964597830055130167049374616359261761942821357878555581241846397544301475857917777615345227179642557643546334919857016605063169254340094417533867311263504237469253041284123195996151013191659177469461578127720235777082636443069267653935786160023727796421160426853017882932868103986161600923337169685938380931706264106511366169403230797914766318201912411059462916567120586567422651707022004361156397977019803603117645831795466427444517558303809385850601657302126025754638840249528471073831495833823245968967826499494119724968638721975140341226827031431605461898891239847121062675245691582532129688058240688501826373454447319783351944916268924525505502493568394839251419654430678667279342388588516036202325416224979991996698905319593246227606619233350739541927671006337057710497422938461788241587433121149805523491373403438692196714029913142996022017256004031904650723193849507382627513975258972699346554948131915065479260357969595111118072997726259720888924708756145673939438632446923932617398364574641390130626285749379429345001088315894581655924626666174975655741665045956229242037063924291174427571334235250085656524533359655286255931586356974056723313707463321438459011313923636690767869156898061676853345339272011529984618918278755914887900010607324793969451353067558976398558992898219437145715654250400942238389772556745911320958968196703541877798998373334647910496508906676335784171912292282839753215473386768182510201161227796850685263805311863557988095666634037625428427247090621588054887465861618738660785578110695375774529094865961948652895931946147872186165784486562858357538652835800984742734183690406898610291889420639986435155256786283509917864191741714037449265244057112099462500498485264529716741005457637889207903360582910094929389626355107762648846892188874873001465856699557087573951180913664727650572846863247478490076698661544538217573863622594615879465167637313824126766409761324423494320450730903415001730684459937795230092011697353622452185925410049148032897550993085668448059246366575657574030352949239562044969567012883222342622026834640085535445629496965925150130598417830259920862474181529757090356782560011127445689734961333188530843776293275747851081403332079178013525653431772099515798054165760578795770576179967563786575741242696622438333289092180620098141735945908030147329011267752372965115939514815938751561741486030964134732151813001655064554548248060501146108494081774508188309605064897876781898288534890804868470085960516094452257785316582971576114654704502096954485551182062064360314823903376577324769410697474431959254149430779100188133938675732729967200846905195662134917083395518817305748317695599464750635057779320246617374162405616371020675736554119825785202012610971784464612070382098629344292961953378362551657164437534239380707123198657196233414422830408071404400038682767312858071348031966379884994050370538359796770084967279741468658577688543182885476554087194094609464404013115121769392030447774198235040946374258910474074362995776897416259050204544115552192818803308901587308647005221397989051972310581753964315735247100193231121393636767975206898253853452623261873439108237488343748735858313855116299590230345676326532942479780283630073965815094901550939332515230737098802349764573954096312128852124589899616900512126430541360375607646735540895266240824028811092771156750659081731814150646539875670811707795493938115846117252100033665047315224411785563833506772026256806759923503745132960739565580092425942406376343962185429350117770029538264575957384397380720206169063773882831402107718195506791291843660782062318314147407272108283206783102631345720252268429560007738335106551991472139095428373045731521767190088565451426727200949057467376752265982240416987111800017217432951638081873765956475756536367998218521029993341899859228345552687819327657779816762055655535052961773293798099960917721790964487554151073104981567829295092541295223087158320892315378602218112193843386669338303596774654460210589585765417908170755418675033311246437789693233481673116642132648426838798916632037588628583163817307009669267736167219329375351023184548085428616111855233484393430274172114894025384314082556483005334183930418316172740754319636033364808324556167001999228446858836015163835283540982022633457222583619478330665414770223360119965882359515167052083553934620764413951386035706683907622512186999879997933940091049571389193334316017582764421398428918127771781969651198736622935464993370163841094674885494707723430334542580181534147980044645653646243992340667212769241546464121589298178590504746956776717185898778336984072116549384619766558462308094574095444769089357276914681744471645239477733669970646491100190712918018552721055197080543745712136855733541905758999556031434952842343434181053032170394272582734418433300092741033337870606944361613280122230373711720341340260515932039241764330830905785138601332023833941633589104489794612056699106498648493213801884654700353630897777622717264043835409411855071239056874750647136125557849827371165718125858743431254757181973310923572701282656296712044780587490741261052941357091422667999653885164873085371280727653649011597749501266723375591006263303315927554172482344838438938969011125883221545001283003652858635993609088018798863021646675962621465755739429851599775163486570554072141533736619375593648933580299277484956171630048637137321698542953661008987416846426889226777810630645172044313770421416028695625943567526405796949427279908834515385839470524084344669167855004097815379746209085366084392631419625790350410494837633489429273759920139883669103339241459413128175915226974044477201827489725388120450871463156743407575131754702134436614258844185687899703028682501645855768840162566100931519254958846061852757052093940204208579986137043300354276419784356127904373985767331317989505696115100972409448394118434351419019890532185316597209581487821000967211802781309340115193952905110565711743393217940954946037594099280959427668494952678787240306290581549473868559257882375189974655392755632566835531627019832188622850462746319006855963476400014666525299408307783686106185186604416297276081233383319112997962972513963654012838523794805222631295704685409308256864812797583216635575951645885124708025070012248495805484192829609726416810326176054523912964366739049422827435045417192116187080942608457749582929008990915950713058415292885964497071464792166137457618463689993991998632973114031842300436986658659834432575151241425959378160903502404611134457360173954673756335107568622195962585821250838789967564482771236764260039796338360564824959687778651106802222972700001432163512797636093809451119285363703712320608246610407633765710870870229742255473280463335778983923024408121737776301805087181085386954837648247314410176677875117391354194099762081467544662757258286732199887084282153777644330095919893231436675617304827807095791288221309560210439488202871548625835978718407716582007545154687140785719785250058403873867999579553965719604328325966079732511393632681082901853692346506230671348773433787436725413539952551838913534830319926425320339387441444400163489658295135564782796418097016085746203425642332771645934915372571396175352332534454173954302255550614413901379947073260617233097788675969831555160164670052738026113298634208421699262967701769529017045572134399450721974784095889923096274488441380461342366027570168598620689595930348406007460383838868786554729059261732670545006183838679486725489896158940259571218937108340632088739391770654310609696508495236146235530360361289963454771794555335602377012459970445048278380939980874706287467059646638496116683539318112798171542277283276056969771867759712018693459877876472884578872512084863044492027938593355676293050926518572012937257802289456017086429078561203381693725171448941857012271699335095275370571618856248951973267496887073941197541751037809731914059376814259162791034259552107354201270152701685072703992699956439391315436891844643280115318677651273241824643964715065421743689885199336305227419647284398296387355881041963400411697923797430113448452441202934822472711676542414842899671632479776624237168013755422280456989389181563790335604924678743631730339329590403368840261172121080879902723889402072576606430310299287952534628706350723450324163484434353076460699754448625639159934326182075349958915251673720102554159465657500425461635167935874276492058159225016553575203619637222004192839067514444672115265994533705305918177657962176626769009809795608813292726960706361189911551633576448154418921948550815820540141524925380297946054676108355913304600059929594210400026097791805762711713867458194327275310349212155076812005512201245272913088944395090382570438414763024787826943097232096154693982229784561548167501067366240365494027717345376916213769468448833102410220706627623881444679833039644951653464392934924589631027938525859333081489121032659775802798559944195537406594243345201791655054088681507819212951917192008237248925063341441807535116199887488771510703885764909291972779955577114599330891188935143021002658407033982340779735394433176717343082215697353218382099417902794592447749382928629302298370286786937060499797726158873293941135223060383256154915949248432181779495674978649806802648213355251057138294578627012868776665501829307233469934077459535789810766901528410183131954873709047301613839197371586116939904739693289583770886963347241521953914452284136892790954760449404692878623065315364050055594311552513105404701100118730574192992868955415061554636573878796584059023738630411875922903021710527057565119455013890268379375586476593191092504852874799696631607198001985358705877762307365026792304750694198726848944825611297940047939488269197458213428629664670359471097551496459470040168655759437316222088437245124041781165224664075234645520114813327651840124474314722589353360471193708032564779329913844075082602895741466648799801352741765445213058014305310022677710288578255443084299253438190252929200145671933009984094029443854730401564844620304255625278449939409764674444089709444384408456584928738254228756367143727559538877270288568611548715196551923045416615271693422164388675327118352197437439246519315777207454920040879080691917642816532367036169398682761620838703378196506532787973143162551959905558320080088195815781186121118657748665277365821794367668222425191909638916009863110330043164331521661217731422825929565887422772643446295947291544393338494908280174637024408718284235718615836581204703782988943242552271703591795600607711839479378442105573674865860962978317339093593713296010774944225422433669804235713085638801638121256054100732182354423626046306447411975717204238158693763435044651941149604026949919697802272459426850431891951004918486765154353406541863201201528463741828128254266402306175089324635287875655936410478613836623618949120305307742996404365596620697049732837924618369926426054176140842390313789969935868374328354598143619194699515327563888982360632656061887100443515579408250585488658516745915249498228509348616123098558817426967254262416311400955865726720910979515078749575897441478813350514318887614508162904604440756576140423750093280752131335856111212831302432509928908702576361273649376752144764619872313544327363999370285881689431171692225455307133552530597089427731836975760256055016648038311885082419345798635860675477658092621908913834249722693590669713678612323378080283320143871749668154683626366209254649241567225793498711531150889088003746391414581001454741455491429606775449816775077358713930287917486499598827199859636556780736447295085779209759636100663331210367504057365110159292232628230068908224926877230970960463483544878578611035866112865073384809517770676537926917218550403184034169883552960381177781773715288061201762581777779809419789295069104870200182451293181785061777584319652426671476419315560478618535870839836256332087046941882386984931530384003130026940524594127526344392749911073876295002918175574566099626212921788393777787959590382923183797389313609449152277753358572651428679094890659681731403985125084473505534470355697934863728931190280110946716562410799350688892956577756331082056727503550415062946240861535571018766891335831202471227986801328903233880366517547387899874960049262322565806851233923167849244304582110270572229110533641132345292416357387942989341698364348482845714287771139784571641244823761988759476021099200760535558953768431971793459825993751165359659987989742718931736252591788110443672632124771430432215968626377207268199099383527550206254179415757679872366481547690606240158739508961109846212839572538074713719852378577711259652314043249902095349550646600487191202232704926866137215257195884431425182650864213683274128822929539268609958036657561492842523508188495796379995676538048946697412222686739988780174908881046547615774576575839489467124889875809115240604348668014375736670962889809380650057085224850083111175859796638848833746754830063680163612242373046413836235564996215372109458138337021017978059870082681849631272596936151230813413056110955109058861652744075364218721676936004436569856025512923078644970051241696720162583793083509876013449936767044038932470760519884983389292515313172052321445931324520537346919300204739107651872197852924373243174080279596800069686252393432860345849816920857115155185234865105919340940501425609983569379547222879492054949159883535364354175660484696245696398075021744696537714012349812189442677304924613127687464948673783226186451955441573315633850120150753585608429457241807340945373138454568777875375173136220460490397268331404424073400692245510736765330440759763376389134643135365216230370186821635316939304078938546087842019794400012960453896567031460477967728974754108586607562979797193140051599800467944459118440369681181749442164159741195379659187771906515850847910296531224866588207675140680325600061316190275995398277409880556708442281289000390606004100814633356511587768548935737250471657051880532192435150044083218864903123972628687378276494542988909704881174395829158846727540844775880651510329315392240527099784899746819703612129423691362970690277253364236512409290309648980434637560124524566442009504927484978594731077675947910168553074927282327170036449899813972641935898491454018191552531607524502767977432545273558626014725173196198929653530530629008484551966143205991019987440088366056876854712108372256635282617536772519749967590173170786166994875325222086874442070092304101487585654858492381169536447135984017566588598217118861416067329760989641556742049143087767075581416286951644597827424831514490165364316400929146801680976993471159340602077145204093672151872571091432480409229102868304707443023444292539698602292115238363320714140332173173900669306688937726751954071537173542445541068235675739646337762694682124367139787703835973820494672575739702751451530590026316869717743359097992597665563655239735190059125566920368726926977121280923265884529784146625512103732208150765334702333905767406421831987424183011478357038342240914199632980182423255556878387536825716094249726546065584014816877297968258643178064972246793328683839625867095372836118909165489669546343528204352263571017400890341230822108201584030345904367174364844684271888140715394318727159043542949506011435277619069145721756198333903650466456011387563290769212695621301497468778641085434256658113193086729472570204748509187616693985933442179622003694794520559560976891778987189152991199705807931465823924608690131031165695463987796046221409829278932726156963404228872739950765637644306742793024636831916133302298836241496360297130085720688069728666590655745779218808268367460744546915986103307462034619110577075303533753356899376727294074597564315516133829211882459560279494523162237832660906553957813139295929437576172969482110200344367812317422349132327069388402371323626322696197857736035991331960661311012166398472050542389492091634181436889320666111349427644632400753124575024531528534053513092894249867521407899264108127869020763019660989111711178746584241376410612821841322943108001779903521076838946087437764737106897707266490124776644656281038748836960768976364641913516867685286624562400700822050982521269397709238774311439621678467658052324239952099482847075814866251817181641926098419150250985816905088017539818326706270765623777228044490130321789365299472368363539855261362014561976129844027548189915256679303322434704147805486997070421605500540501231333539365056085512928222955284604990691475668997036837182397365014594870931505350155473065799526597482880549884095661306174510449572866847235994663949536783414006810743410266025149168654423579090591831711949000822203122902942144303272602140445958745443477372009874492909597377376565693998072391140247671186745688979088546371186369885592694682187977612849424295046748954708486218022472871186333390827712092824324498176225341382664200161331489069898555136331313991786617566065958916150267335673201033723393343998565603713191388641346907882469712861372915018731143937208601114246444284808684213248185336950733801719050925316911556648802472247370964581553827755636911296846577925280951113720790992181549310719142908884504758576411544135388467641923165242939032776228536514806558266336880559760562618893871256588167879429355847083903051016988628846022296996976851134140635319084607763260735787512462397398391574805287867823873701819010731021145680416106732590926426200376972716800788900186264511141804075336092028968079527931184768579451671686321516907229825710304538156639077950414690848441695952474161695361565453441370920913375461647122956945542063399508145480111834686071245660223711258879561866541911990852461894014203532252030262941810705100087820079778581867650978421759427933857497589195914221589521936143602753951474984351807369033964313173970523529683334683678184079751537843867347781297740116370381468743911252235094795931775855578497365182600640831317805705519794281661544132159449415337585145691347519698186874975300108074937353252607091106313463972620443615516288383731588618352458384637932562701316468287226550420621705581635535130335491392580874906461163108006718929931491814896089367906892699131713537213315419063359339701591426783064459452294292605320425295446221095364549650542103690132722876714259076682212999704494829175108838151796893851089249145155789916804268684907477873456720098046491294862315958768386885266584162178169149594398837336244813271637082690642187760732220075963587956770943549625355871494841513187559292371107703090681616821688395115150314692377584841366980796455871511794925718330499731472212478737808099373499957503914131700468010543677672725077021478060924843895854930319647889210666832936938197482636181540996567080331850866522924681848706345686402357188593155022790610415838516159118549553020095000118068807634739682818342404039183981063045828765630567906842073175290633631137486312172507660453258853175001032995327888515276463253834488243793307229650658248585702909961584852717388109931654130266291945354263361138245013192012423637285063798977689562167481817437552764135531904048924880972628212088287452297182291935192188673103723271440719172957869296753268224574262504788909364411294790071346178282249817992646812215253554878040648642770264109847284157644443403008772216564657299752777559357591648872056720653206039415301793094845565612471402546124226583214320855252459652107091227121361173345440526201355930502499064082362403574512804255866964593436728867341482868566797184244417445197880176757091070583571545137226795203127481699623479873112351529778706971560267892532519272219214515693622522367946947590073043405860192072577434826902343351428181588437657893573299789917010669701383996487723827898143939832649245209096135230502051801465186369878666967163647869339461157175977755655295432436513288689668873854814809692041237742171768624702607275304594776321070360965543860662076538646295837238518457841104989791781328038806306676703794777493059339412532235234711145356629133369032878562227004350727854705193361754987964713835815522715861671514703960903366746719427117462832434121984722435785570724576290661883943666992894078862822087550759388312519865712577193134066073543149590309723809497212933943457398381039443836330066845346632573577838088500972818956565495381284130990572927953070207762823924083802053201226817123911957140566888798434266975767600046068746525476337661528644617297420914143639883075829515646899635030815502897597095041622073875674517778069300138817934858932122173351840996429735511651591468736549330928981266999525111886323764121682657812036002239362908601818519917181829094469591193630969690736363548512833091279776607622865217765596150194527713399811376644776878828242504483775615390619166417235156888876873357162670529545043119870863675133904454776771935212585348032440527453205482606589667741816840632811107820650340017907597241558255143190834995820337441508513086171157809832204854074219207072237862442925992303644713522704135812696021385075987956749965660809247031744762399801541439712526650740984648387485582870235482989681378522556122543870410661410048815500620191632896112225802670271943560083202239656196431734218423892098216059242402850276694209262097669196981800789833675205167057014355887759030324889512469273534182336707758048654657778387885900041195609143881511073113146581328293706537239637296324812541794956716672427557859429775958780843281843284853642833988517452467432415030623425737094601281577234107847512682657376563447890968368972487623033105515725660842827069585791934238323346151711297178901246850727509546193956348081664812384144227377784275941579953662174698053770890484156460195606962584179587146395638815476529118259809027843988538671381600675002341936250213808002302941756493933261596307297694041109694125288227963360398936736575151343006010136257751229484492259798518242008572153786563512570461025374880405453960861810328652282230954058168560926554667598197249732082199458983670148003394323997206398742373164539952319050599573570221734448181704300620350320379120064926421741551091917870569886067196937782163388970180249017888596576015757930255790100590770916998667757502320938323039560658080733097361240234755911868490626158590998187644384206280242390370285547051503360087434343348381753903065490023208505005310847799991774770193779565777317651908905195662646877415508668856220346934087104638904708011350658584738544346844260680099438709474058339789385073332123841154999123741102149504124920167684620260926513139028858644464268793842110822835928217975749748264266628211557087282619705105226265012548619913561958492812411713103604860148799224181741697023586470330417812881519691774257495918514442348059010213694534801538763664046725074350810185473219333625051762130859451768030429989782801727363834216875903796145420911741133230657678339926690917043932192621800003686556237851316788205955767950054981070975093363594100525160364836752295111631596337024930704038420443180253192580185198543675969339821113297458122479538832722753142880198761210644924874775575005018767500516388666488982286455571698781502497572903310721692310441557134618402392086545503854598390223307806610575125324354115659067316557855297495240807825666989312816233983962592906102666484429178007822907981192808784482987667153671706325629114738660583716299030139660736737310223460994329239921685709463182428471614543629608651021247796611240604827450860446348244540652536269712108464391432335635305566810219685636161080538902128995362927157033769756159802786263188458940782964684723907009653646442776507856843054882875853573189808877897183157216995639103500141090945854800248259023314598456787943947994852044616265315508733336821264090760981706880757843212468917121358407213227279097259296480861902923922655119705809387148119169257272072031151568624170417828407434675839738251852023755796019689966031120380051907112544748061150686945525424151239228761374807499608627782671910030973508906630538520716477064173000617811404075172981994490656598434351616381501216155076296321596053332717125827353734521520928201283169433553141863760424632849931877522434074594168220468887629719776778814366017879369749179118087097510668562861732853695899206361705125491760615554419432915305001473875677255369414495594819030119550748265555792313316826229216148005176965391284003226535140421571082705193104981673132527805091700504781153036211845816853808036128031479654580810187681647158427125201818046066506534216877316568895660560632123120862832027010865249580823428470401538472372637537129583039382192856129338934214575841701520592801780628086286506504138524818770220257889742115146514988055671030439931411797061113764282838287138829384770389248703171350928730539026472005600301606726137174969409855602031883980196634242234638356620210026281195206440210615585505181836799003001616882681527806207366565348651802345193267778087089024309167586587366258644941950753918830734092931415300927677517163387600428377211385973327679244088998795696086348077331030921600227801418139194135453342050686844903915041592074527295750516811530341226701344889029266957199064077949816805015117071721100106985858072452696917201045322505384255629533536114120940400296989021558201829918464212969544044996574075893750282947102131003407751730710381306826830461965622117712923787446857302403410315538964771627541971476302023145837565108247961008216908864566768937509948471473347320873022871526285931238228661217300882218212619317217371556686010680334311706936261158212255637013643963997733803104094728295419311674592773143771282340470227877615257106113333493522851118650019785675126199340565898135800903831818700310868044175361880692518226760915827219686753321571604166739325701539490931576672800952770222235036548339420610178345268238645486431729633772103431349827278581804310087813986034270176375121642304095409844183637789375557667384516065092484021820863410364126198806366634092006745004279486813286237362907333523867085078490061305171314842114317549066757510867134456435234496109063022872714501163560782215370550736192099003060183557205060777054553825913470781847807582300417104507717224383876718782744938998745735111333582038711454421010670288829521815341550851757073429028504431886147728701460435895853601006690986137814418395786330652824933019382021471600717416920604797111875433062405253873930770096476164786244152811748317474753137058900945543908640945869036148030690528417451423611034060139988123205659054865791311852433465965636442948243942334851237020299822570884490600326050726501374580653329403113383688151009079948001524375632432356001423391340166436903098764645619888230836886886267216311475196394483219693513108496367337520160862912162587209842261001669122857962347882345008339814190948238559522907564413002048590676932314153587483033855887765923696797263517646976673119171688111272462833854488809827292559796681929941037383610559374054190460385267786756482630916614315816972881927546747396770741410599428049259873733525351991826833169407001898944670539356716292220853735746248574665060922287035790168633404287477668100692814539602663530288585653245386085769263747977274699062183282092337612479233216842400175132820440020118147387930278461496048928101392903864654153307922224842721584454733526599487133692864651027423426299896240877879973143020072754224224575869328522901889246213230852343574338971347302105413708791792939060528653297025933068541792959541883095678381127003819879900692132323278015701013362819421378443857953935438322050333085428244502586135895662559076451863896096085103407430261235564143241543099163704520841207151323209661866066405819916411416885293352804784076653118068455864416940961203877914045070196422335676031722405251415882814760789926544506511590759035568190732142341788373074231464319623666494785254969608839906258079012211009046666350209845432643231003905786694258886550228114247475432982568462620759937579109165343767584551123469362277359360794232986925461905937510553854149396632896316493669428352314315966282622427975692589085592730461590086727207404249769119428085863077153466269491916321451674325400577389933018238277181670089183022860846660104159871028198241746896673118066194366547123843660725422274845083202274656424229386567364511048707533593475126688775172813661157023096139196182387954550337967050432804624575490837514397412664236463089153941740137621329825998259084055375420446030387679175373764456727188202703022207378680438918647125763365182978956812494177286571066036198222102255882677230040462412153282208189452441697500335849118506438902029030466520665149794657152763845251495512044008624379443713087504232905094879170587193654256617831915958499128997187149327129601734372642453030960902441902353379822559309434774460667462515157979073475897748442917065109805273292457226298190730866453296908531427197470959796902676240327743575391915289068161192621869801381545673484233536467388741135604684969561983020109565525431278353079970887897930738087046398399752228152978272888751985105467212765694940192157210037811785542013688232768166789210022004093745322419375124969501974779628451014832309935797242666577170560510865443805782422085495737397076726712824157780601207938193713460282150483182093984238892731404481550136336658728833607251470609185898315596966227767045690270792183825269066671384723408437597731876365968261242180556724722483750994271582986248928661518801463277298233647536875665264081094276406774228268002462937584722996791209860042456699034865884939784177909582725518575732903715429531507093766786675403629943150352023918725209756755986950388832154674763526076674144436820324540274135830482619575467833297462839910703184387421445052959911289381614669172742126269657208017974593800075360819752911948595365163755662260314985736631890528959006011462018135219059989291273564536859243797064282701109929582510481945474754528254674590230778342481902496921547648489909004619501253766188563183732912997115805261347246800632922160492408300167394614859298188726904535029716700603210123224140236209622346514386007296328061482330354375621511132319598529268542737886001087996967275198320287068838259634631145938212097277729316723430259734479003994909729328830079991822931479177550789647430877245842227979374308009169742940042326753883229755682517269517461906147422813691146752311932582237188803598527181250287024409995318847081480287355435265355975826389324704639929652507302774435925648350222799399180612939568001126177794834429492738876059450127132027357182266968334536731750528936592549199149936969396201808966169229134289307521380695974711795215314967157475525628209815525556467456755097727752913541545706158429824736981310327556786533059660189151220124635688617137260919957177947228810902832441191742175366257925929866975086300813971340512504399645810785633848733863473456454577335126423248863361022034313126352660509563160040393057595973575691110216827021564184771115606749786161143235177565519967745770153169585369132456351693617792950913557216739248593959079321833721935873434325388597798256172453186841100513962250866925153086812149368104855108590278311802746819202259852804453337031403898020735339227844346654134831638511270240536169331131480580580450388437729355805069290465371120919168204740375015781531508789837913760233072947360437243020151084304704631326485653222482880971190576669741929442656016196831829482119805081134698071426570465791237271555452384964383244957819354837581883828625872536853917502335947336795088330673558538550365562121418139594272117009195994304667509275453011617124108523825349324587654645168328429145035298463811682810420588134397128206716256343954590451669320735475519502849404685712388592627072633425563439501185538095736408808456192401446573043467712547560493779617835538063815318648881772106742709898246839361747055477970567580870969420771996767650561338179713496901366288869387232538844122972904675583126422789762151300744284609244958174858548731958991638373409610637822671285992008225782964960558731823326213547754421386081986714889419658843749768403686092553372948532152935052706076604835887291043705595991531204458335208128835361175562325307580069426863704268316176953963089946630710536031104177399129127112850175226572118730921729411794442547280416079939003689465332209939956347634282906770297886115566719834687671979385335901683974203083048982071763398038033800255690545490417699424607423036763095045350174534979905936496134943555160684472323525968436832278278391121745529518882843272094278209226387218180473104289575344870942049930188623715410625740196141257770200907064008191202146723583506665486809130969056193238939701013132674431378172186230226018062344274879465377683370707445944641725604259101294844795005759240228681343068945776670655606611136834560589674087608996844087128584752491909264345044873020797815427304242957791688523479637040956394767899075350542221210490826462794941367902646969717222402594845387285066115006475035153764461922453664079724383344101825152057942897491984435514249923110085708660686361438697478954329278515531348916353024425115477039285933316912056001184163423839649692839084080202715634418194282966694585542879679266556112539130222868974236422003429699915664781555570582146585091780930892459846773601547749323173533008470607382710884063483689504866274901370135275531084254416671487224228285731400933052584001109136553923481180341964509263111369010740488026508516452879816294746796695056637502757709747638321809276350799038380299565403099285201362990315050385243956763729175153805200929330157358567070885180403999753078290338602978829362124390404660731825880692864599053901526126076320605265295476918340883572417322532176791481347423572618476181875367386520700087970282756839149200825811572227483588427179010300136398803567215261112460579878426301812887918189545443991867920037000635700994374345200389640252048929869009389712063808730687520142649896640831603646128577939258593587372336607352934042671758862928729062394541819757617799452001407917373551024537360808109519739263887896066644115405824498457773647818639883089614208860038378563167122480842416943982385108518335683945074297866665116740307882305290950711493200015410860912742870056178584983070629059817152371040290220477869484120728458653745804164932340279121677382585830012989759599264442263857028419020958717927415919156809007422049412821432489880196441946403673527822624903851902314578779991094530721783858909600176009768419072965909816454024015762502515250912034581430053352165523075916278502578396968804209948816874771430782054687461247605390824705419243433221172245043410419755970018258176980828522284589371261364784717192163007565784876482204491536544708866592442716965121918343332068163766020402335585628709328684018209571509022236308172335013988333394879415856932915618052128359715142072119189319933609966838063392443318939636435318386264658255848308509326774388759178840925079139149017713402800899902187234794594216187597182836385313922500135938221580914313764511627451808064454273862859929079669092589276751025332773935462465790390289454581975274259083091602342220076405307313996480546668970143674974556374761117832647536090835420289695658780749373881240919950297160042854338476834565352363801385425167354958971165922203645227213367381634823046021547834128484024161841665531790432675267437718278810565235232594556726967680632785644491051388718697784154985130220601826677200208913951915833881749336005835018787211232425856463280212592807143405650602483073960108143749316093360812277159618924927697939048216516917934835585734011288276901286667556722389486467363543142927982442506043061152123940657618903990651113180304232986557973339962900344642811373041168506288336190958023095069002243872891732756025331241506238510333548330327851038084613520620396875613537306208435691097303692571370434954227506141650601075857978851290563499925700932555556087453263771065898447416448372229607047038314886444833068675848686310397376641718814507097617106727898925301533658343366204626220919806539842711217562590207466513993289822896800906366248797015446668358236636794990950893824524847120275257822963208004720721591298859333468263288957263447799735112300657599146717288324978910338711222703345742750932642359634950356799683448560579518425241205978849140191573444111106334864212149531635652538681071476486289944621719099546994009878682622974490179223273435808203838091106168774081432608443758302894057911206294828853389135705460104589293644932476272734424821386792498026291620184896498996801678966501403314811565888326727594893535504538199552788920045976994789796955863182816515243780908188434602355444950931424173060158889675648715094516931641713321760066153696264742008522115157052309796206016622169337275373486065963005531568169283391945884644425697434542637633302016539150519108569215449289250239743460683061014915798000407699975125302035647064565561517191395499036952318611978035117988515594738793946038138035127818713003248232153511697394445615382999438195230729940772174937357102087646020285801520847730469338437158218460479929691606954833416980127267227539089141047187628609767455028886409345407468693096369842402167277703332501264619903777278522272578514117873173905306666911650155345775855721177200006604802931526050631172475153857161723078227916268951885693023323605466453394543704663063527718887742194595861272897695694949030907275593873119719552091490922216367851034882095345389200138917856154757073119075300625444522277192560800763273320111354910525041734339005098964850504245864127235967763398710146840858727883760939949332452185835761924630460303560423032338045076788063307787332426995676267838849259253202167293541956213489442877663500635081492186918369477325687559964360372663744807846952847186510096217252523552244459424238352874720452563435125728876758528002830809179664155539801924328324585660249409583487505370276858719310869603711181055764755361174813952584802741410525420772699650704449841644164538977018266124078242482758394712918364488944133732037905476311971553776012958322360257119337333825445587247415535989068708584828550256976703930561645591716909759554052533561045854846623097677864219958856268180923940015420673642242543927149816840404733987050085038876829544067500775975712092523108098993711198881053664682196839239400391690055092543145978380558770532849618675308314447453917994442034185149826449505838726971698178473917232279113797630063009386884434919675720194635763256608711136031903204461917454725183626115918507659722775272884157726553352274725647365591596453560576810626332023438825442003304845319710072018948529989630175305853983182678705458777931715135269406013087894033072610627898661333742432504344377580063047241572860518753313520397636891586419329219549604758932021468135176313785114962772897215767224398606275284012242906800323183748210695944167064856063013653905877033272748437104680501924695947085025746621148611354199851554931191635455075065374098024598513788929516195170836402307316678927269259319982071132526156663775841519721052222801813941340181348130191269985198265002338518730086836826691489745094477477885074211691361549179183983961291812149284511326624377555751473124578389250831361039444570718643947688233648117575564176319431276095223931317165144310132657574396932535745934449688903716694116097222747030696414835224026304891137960077280351434939845507418403618760564093501005264496368289520181705306621224231291066227044089604741633228666296424615935910504712975767281051261395704337420863443787596131167392078911885588171293240698975620578569587819690884727124778188329719110126999451071523763879926955879050959864678843505370485706862116974031748345790741881952109040153344278870247468415822142180718036967857814280266243253337236354446776710772029517735531777117247073269642126163516182972850158955203269039227002885284176979572538460243791241939987736975479773637543354876626749107154030759111101336236140186219192221212608234223874578939571464111113949274515230979380370827308940368433001677192235123304727830578579384764885499364042162064081925153326564578325801801457270566026414215262174917640912581185212613185795765891850426012405000766342566718302609783764667301805339305277009635478253003910331236385430086674967393223351822593947333793578748768289252129950997868418248916583788415166348450309129934267228438170566961121448504578131712293445315523962836373607068254333564722066769099159976043588542732143246364392612618037051570591067362061143271188514046032755867683691350227784435839106129468700625102371156095136912070371306913997812282971580289149945131932853531596428920724630801447129412947150269394072567482969350364015875123978493806647985508040607842878352198526023650826820765957034766450069443965767016522781796245836192364609883459085201087598344369067632845376529480884965129210153522726067013307123513049700341078534937774622215561955270455572607875839390018976272072425385240295578232641833584413808572654368508279092385202274000280272978291995021788106607850773577569258116011128940297414899254728431318881749677353110568441673699480152586771007427319047841139845656445334090291593504050378387611836829094909797743966433872409027074350879437118510072903667380434443371390114609889893019942483887665267126605593540081182469001795911048802100811031460329555935459916073031458231038189783827319731982124745261547583987440130131822376879122074645151031822354190705552421635264763803146387101260953278284254872085990145128113905115213871583844326818816234246224057467251441802122825189857153650793395014292132355187622104128993678478502346530090695106279095019615639826807790894248804410345489124322118962632366662403931876929516013230939871322730944912421576674142394815572028147836822351855096112800974494980125860900669134526076772121754137982304866671385324733569112320566146984305447676661327017055374602085208645627665249096724751293021746025104101948984587379877477373639852132958086122572509515967910647313566177242430033207901287555943558492922439527789957998344075373148167663053126664868963269132502622989447591199295573037927234020050447135659985436815381610233025386095036009616947212882104958813519322320105666853052389762604484395791232056687630182151961703093233399124810002401810354455155031141507458952379494134019193045329959829715015057962883364943366094872831659851413499820736811016595592529693834996688153836013581867431780074163861730332204628823258254613623095325871947227470849929188447430922113506905737317799921222409493407002694644410759002065418660964708098723706809681589555202847666535253991710797347671498697377858027263768544662025894831038819458820616956290661203259919150628997617022663531194557474975878687783013749283153176008527347743917321873926687991823205800926264248322589370659460000970614998303121783685978233490361261191824241573736399569298724732964172691656330078174259042469914297542800788178883989007651081548724841427975839248420592255008676866631998655507483416376263806946588010677452606804591836464390422040795859758664300414750989479977314629455264172741252009832930498247845558970999533637526221967409460241284022942628873587407322028145750380931423201641929928184470915775795408496705860000107359530923107084211215394908878762869878010828101093493264009376637111334338031134796956350860818809636578113610225528068416177960057189925926447982465607749373099945141054004690301687603195121888042521883831596148721718305328321271505091418470324260719438117988674785245443174870347112454516824108015466968073122039567490964567428210917692666706177087147604583264328884355853478563125821500476741962617674573979128502994637328445923764603241366812854395454526055279280001769653218769129000955544390943074191092152845915010387766228827838461219105726969637133686350659457600264903012862263530287026448397294137886835575792314283718137255145779767566762232139392501883695113002637807049449943726422484358517543963830175676435407895665559857631185241008133671095569883496630821650623139246595681638547097777688269424181677578233574903244453547219015222804293256138971878791592195188278623184756948914397770587932436666020482653503197995000970895242002712618899924594244542318723683636116871844744056439375687426453516881914075711217783672673010773066770941692972299067142293708206548003104717292177605585950925372682745950978253277759927682620075512661942040809928667909577231852472044968290653234871558283290041486000239377642950516894517439541403896714171972196641654992578162023813463938093632552673740211951810792520475666544433740413844473446191697723950921216533169919789877492312118010070617375958288129735880513839396810644530460784217827263988249616684941218964455323083220715979021263869497434595785406214635587137594209948419999970589422044441963432293526805824548747906726375772963608800165984736610518015192420245072653275688909240347453081256957739775915163856109371502018509650293883193791527520770551569847759349854264111295743710500225459053602941410321079244755585751945238765336800933428759552136679809816906277600098500807578255542486241436839413344859460816677003601579616693635315042969513878280191140092843665791216157375388194570745359027835935051123794573822591163707025610831650641185657104399851912218042220081374941475103913866958265163376366695932809820291465499435348335042315348053681822810058407821531997701229292479131261561332388966127868886739562412692995270091413831190256573613408779830056224717938700825367808242229872873445646301676720105654743042738769990182360493471593295959307076194692639138863771751727775360859278881518969997925565789338450298778197615380104136850304149812745805625060456073631661552216548326099038169919850437845967596404166202406570400520455407651657070588453305769022159979643847604028123820415864264842114385246120592725604585474161050567479511597456166476626925960642966613794089457346816672077734606914691744784954018302604414852002855092480269108971192275730866578838993933313061872442932930925048205274608443019114027744638751260505275530890273268542048778267861112338131313958677435209023476351609852130427119013206839402117584805645439128979230881351970311216325228732711834536400640190601060708813639315835239874831310581409457426335905229397289793393226885459749574266164532003261042716232518836006315606345736279750702221501310512857991353068368881883573069722695346510631182123504807275145676252810542013561830396435961521803671737745235609017062936770896397130242075239605291461787605899862558288446139327322010945733427838197963067674442610849448593694040985493652749640223463240198026667338374377512687485692435322699110838299660015408461511752048677680281280655610964745537980367070219683429032095457737082189179534953698926930844078453728864521765916619652434109975556782983257107077690913446237825893159951944429024939698278691908895215047531873872047231223320669833852708863141319181937438416484085043689155937502864714978356983066693422484470500966758337225318535832706076434123498819804443792568354737577638101715017807550227704012764451458506589995455470167693277250394757399765788766210068962716274893249349999084325463667065034263575448770480726232019833776370643768125752247260312968547509185056285562488898397771508385980504934053630566259089934564823553540211479900398891653599051265789201227392138044173328200384698137379540253539601037126624918627226300765298970722490553989347851797305269113720177306998055251526184652664402904131471694335662965943195048185323829647254999901046517093509411515262973566878450291521741637910478668365223696436726430902738496463168497285995085281551684727996442967600316720908646240055686190004394517979836089290529851870816371691332855707154295862677082056732237787585680354505731948656630844707310902530361412145420578847165372400209687336627687370994189691875069641431302023663250800116852993345696089176434788284621930685269236814244949958742840001773785886798205677551552590695314076282391743713756263506257335812091296831007478334941229806642067112932021093361803836649738218439739624588822036975553058275281881375999943136376688833937644631551332431009530896409678622780043936156145098304529419728192351441393039830438347569825254647618241601806833711526893447786702208932282821213253473680593873941862143016311766285470917893627936755770969436707542383220770730852963033744165988857691380322950284895563204260061333511641976293747047462923238273849587225826231078886619553956155268578563318964773218246678329342335036610775700396071467362027853373126423199094238567483251350899226307913144570359482265163029427485275164774640196106691746472864937006994055564514488099040124955959379962716976544031538400893179360147013621850067034020092527905812290807475836384504821929875558199830986330925881492234656317673270726285104527208828775504014378004170308559433866605942187649821222416941103630763954228291270744858239837230778767916497751233708639610682205980051454804423993159978753193941949564279983522124144944998867160355463076071095508570901457516412327547447952715903947509290249426627705250112089504332415702904737045891020897215394556238515940111810409913669621839687050604509912511400729863048427504717715579931957685137678388576661580167946226487867602354111613173487407548154578376155786397271100949924509253790689168423626989774378294834900414142849704687512309155585794365820884370852759512517024185151428485970552515334672029301797093942640852174352777689351893050244282180088827749759274236251726398087374545555211937388232203670792415749422519545183635410637197286584121983774231908872214077937258770029376808866255331836053564409040857175284077815133121606134802050256006985696981237388299570819826659180910905645683932751991579998634727966297684389679967879398505979454819720853216545321077457628646596948029282304940870894100980294207558950480292956606639593230260424378410233174258868376239308702729818574837169044851599823164352925545885372358438848531642620677599506375168598544764832918507807204062638387573186398404911051566289363206593480670956826563853188316077164299212125795487500252210045438583296424197615833815852239250937940299974381573090098600397869137210540253098176601768317444636449732343391930504127303660022346996918953373886965099376789006359536930376698592830296260780722299977757437071700194365025938299197419097156972380580594802666639181949770522215543445471958651054401931024992134490436278551115780573830281024409706073765524059119474937391791627829610387091523705341251345950128966194573035690098990947443170664246756012928327490351543139787272033513279234307757828064998515294064389872375390214632422735856719665643243431725412920766613178391206112588595955430719479160930782425902771804979633598090776421414171990034689944200749815842359010349967149900672810526486474090670879849896689293869471617636029944230240145404999262905388462459024635572537810446224385373650801865815460380990237122754577678423260540521471548923325499408167268404132104692816843454059084709540347701340950083100803120784396060747872186663513129948391496772502855165172993294518867866155390000745298378576037058643810415112179854746829201028627077161835569707823227644665945698266896957492942872464710947810221892556682883167374838552467871594534149086083296487341900020006170659398093846134793654932076179286686340633342897720184207011612950091814564614458169590650443985812949823172616778446947078348496618730095200677321386643574941456645160221938809316954767714276194399475039607528010906592937118070488693705189146238144313652069304118144126878286648785729834827827385272117789065546139667934862439628649563184405534892542532024485077703219091842451322247240040900505475010087442726236957104991238926305849994829357676540940540466014656332408654123806495980585248495715263484750824030929497169271262430660623666993004362513261363379738671285224962921905649315894755761833875463182621404355781116143383815488473538336059851890549602962802054182332938168697725498696099804761696824621930426396247382833577562171214321529725928884293580412918700113177536411114096584681773903964801696343883554070890987252079216693092563240308011416740939101071253402308967382591211146963210858383008942686039662539260464359235355059990642322183522474401526069285689187561476492020671438859670191336039420271606715984019575761315737723854777004611944044570277791068634275479833963119781204306957209210902060880221831866292816699819679676952178362649017608910535084010452314932226236627352248959281984198729309965172518330198994299092681390909285405466308788184584792563198894770356204231893709952685350942278335913751238521766952037515074194689958859647944669406963369863689642379694471029541046569868681555629614468271783122081783465266352360502916243687241642913534563897669839552406700371714473987935539256241429408581888231836600901301958671025835816320218266190952291128430699329075110906693609914662929352953654769014444617474647476328940923340179826122823582362318973344281242061925806223925842177059280505978327340160021003767548893143140861548321327578374957209622544816719088102054985421513888008924175793671339464048561396877208885660845860296958424353747682572117484331714911262117151306925779603668043587987228610043735363744096807279267946247788710698548975684370498448830897152463362045145760540373527911966609828863839489147264194453776533870699102014202040153216148420284756586403515849021549149610960888858994470572178589794332978988605693272447296087607305045371792223689210746355948314088405437041446738318851417487219858549533464864790623072493611896419932561406453860726443077845130869723898751852987472745830021673045303039741828800488336942073198230864486618229623641855828831120802245042160951965194610737316942461629287764211277405973969589665193553171607481017107773819466065214460591973422871656890624095207857243242748420782496443621225279472848747437301698386478587883846885701653587362698411855804023482091510767305856461186887979399006013577953398367218570641768191695495213105501225970610077268569219076441713950882273727688260341118330073322453676944815882539142767574341601855985830236460025006405371516444557699471668631194960419459112344551873798448650823173407743461309262338343664249348703426945739585088659094289373132754734853462460693997522177157067059169480054196949036817178001507635172016143369693989774339907506299734339551904275530181006031819788988478763574924715923039218359004571441075200391452605203383278907356398160779593531451305029752614535558560464001032522908143049271213468596851234723384487300792876281568726808106332467464923679464669037434397048365825986302845795301646664910242834238600202307957825144502014329826889087717132670818502979250524940941234943842053140500326053498087485507260135237960760117505022841801372481461592939973843307032827018600867489286308902058401339055610910544085162056715815570650531804277507377865274564605094526725080439629811776955045313951856745185821444030367806233145317582759692557862063647003226734353740476940204468948437290400799518178694667195757827954799274667083333404639805611656023476887400053152739224118635219827793248934883798820840633348589636469985484852729642655881911816811121718985329081570254662230529854881796769507898888443621615200532146912980972470949122340649814947603697306459005774528204815858159368415926024079188364138989677411639417765194676100684582415764020810275194220897824297153479197305958695238026798083815633237720656350706382625922312328001536355596864623650275068218876349704021474268362668158155854061209800673369865022994157752933590106361716515350404453989831493587560234848899684275716951075711680273856345396930739151101862763452078691879727189897803967046596995459558289140020094308282448958548483833238605449191490044137487313156445862879427674891397836303658992000513626337359567421330235467896398342434067510299351604978617501104382936284428431081606131274480787527680592363548243576373315806719676594958534191037952755219370817919933956366991200542401043924675320746617154086991273923265575633496064437031969811539263341436167449240400477685642616184617900425842373549349817352992360600206590050945262101626732983683171734931861125238196447814332238570044196802976033224346891596608547942827915300239536249556557706500894679075279156480837061699322340191763493078617633357663388025031980170148774728172010900870120883014168911025614864983868742806782920714530873671658542114852342518499657616566495654081561328514167873615387465197380701393536140530040130788724085011522161600481623647425526776270435435420966655327495157545499571907465908401200756745087024010539034002125351577292064017384081789819980463655076915861454631308473251224902707978567470278195745035742624671322453333538156463510962869294000451311080822166120484131613907275507259214273647612709586708876553893569482076253634751062700555662312739906972046876188629449803279383022444563790094420926432704186571184836889875247025928440822451425431369207864758975064320440336764153561210604431738807432195104278484553208867719957137053468288936009605314573709806748247524152025563075084805610203184078488641440048490879869977869330845095732470939534257033289340560526711235374930056763056712062948425867031316307184269651828788013116983066591039234856495428933774481411350113994134775705057506656162098824873755818481017503404627376220578006302806771144294670917968743110011506939245210019917512744472717967157462199119023613573544048550930780764618012674634009392179257535209131849446604865893280587001226616003526258116119754275017642892637304178876070694402376727329816578814582502968381151724502871128250726367784191277288015457994229780434857075456926513882019338300507838566225113784536640120441179712554542994784507445474992536258332239821707766821450070701433473555006688437436489184310714627370150137451501361432611816618595385822981962033146671485901051507876558772821230185236373563844488914216188551246888122154061853273940643772781340140385798913424606913647205337254696995059021554453785393560398817375703360123497774040780712825996182982626552295151841508994086632854839794168273324842346941240164322353223312233020667890595612915111141557836454963843072194290460099207403915622167339071598334826627322633283930600210197699578626768397124085271121373300919518939680145159808260759993647258440573377391415806493063735684121092583915869508331603665529470756302186145165286687918127557156081265537773537027328436184408750621266051933560384163138139109581060373201187643105019965776729906875920724072990754858673202855033194898814965861944407712012542200649835224685632552615318509928737189046112224354676820170777074761576585441519765736427373747634433887019271819084416622674524637289606479232482051745717048764259422138704597530110416151008280197263745039296337688829798320534285850152708322826879779253350833714754596872899451072666438857382960583263183165129409602918986076517864659676334495048995342043010669789681564262285412291727679451705486030298376885247391582267085743737038770834305016663407745793604280396307615036168717475429681894445807862949775430371220789377505257584128843229874414544817808626138821908746368618333170400447808674057207124142133891382048235250693006539833995709102974063622147389443410102751342604161549232872666214611042644546793705068020635094935364980498673127992738270739327900806199835059675896713250468015154022541077103477674085086728888436326494934953837259154298533605539070625197496623351813315689505388786443856555157157328381810628097533204570272696374801868818291306090176502093233343377238988539022408943304359692675397830785429886978672452547603801585093971291748370118946712446774381822123005264026441336267098907325637948110536584976436812460347523418256348221351189917797581031457712910768548211868693929644916404895000153237373884028291953105135160008554297500136769710806127487416767154050410084518991716553108575738116951322453612912875839287918031871442462921663564825294031881381412024772716859714772215386694131513829016868590269547639475073684229431161278779108761211030825120032431589298367900999651306838348370100457161661474717979285471781374919977571347650504662681145862902620224441254392313130065080605483991019964356331185034642691294850786810754660773479376101892408095921141148179261360661402353993036546791705463406136616295683613197345843227061073813371340395741070323831518554839587900580161521187221733474257817069597359793927708648323038173097737164833117881175638647704862633997885244070105780713655808816994898707092611560759417922941726720544754380865085786432269341664116187200339206029970499138183406328622906727578846429243606019386152371694927408161138899451210783820804280256800563498255354642417761631408747825473567885430291848235315290189597010342225450071737479558795443649955869661974284178346605804184766447495060419498063839325839899698537866950341535868012372854236184058411767695632725726946351017046029576925962335219353152427165714838990750775167174242145115803523848103822412857351536548651791783747098789225788046207264078945766190230091625638699662581877843358364973931433910322834130400841746252262264198346513514050343490676352179155891233128625151363519762355453586009095586798462909119429693008520892063464512716182710127803535483423702936549944102103942835613084327047661528201199894191153114901340245475524592519011622931503598479562639598127569320650706048825857503813419704650049221184051788230748480319493319773940838371899454150103374273148894752457131433694455081276523818540570959315582646273892480016399020649058105486429117010973044395823974988358999315686518612843463234373598970621551298871320268166539251710068772663816112800152576025975263777660785845413105409264445764128708089568822108926228211244708899355850122054213587171764565777818415404796656315312729916067544482508269461117048317720499167287182957919084249080753401342682058635034959263905955425522982170480152517830882868158143833232614991123353773635009176263302058096910124284217670240595334950807589700447252207028187319102033112071992193359523827420797887570680091151293604440869818410405897237509229475180647540925522400691505494106985398903093049627895099759333704931868428915645144479314315097554409933611188990077197184376477337895125140523013005297644881087638558702169375852571515132369066438860813119366846634821652848149556462670586603591514213036619206340975585983911205230681339507082823137367803046279077865400650059928639541084080985227071719902635720110732642163311107902891459537459121527662563535325719979225267511469688016974267522296687369851168248297753407808494890115962211803465309667830235014876079766665937799912735780892859966484792826943851634641213017097524407878847297618876186527907797666930007386665512680940164056914388130452153756972321919242150004330796705718932313763834666264149548772019868164526780418078866319218517952662179958930600465870761512722110582135898589171845069356720674574068517555980958984928190393500999140217671642626356921931806478969202274660877432808665028269877848522888740617533667244898198898117468709919757701684644406239439826494508472781202863003929534317038144851658737697370647233136777218465273552525478403400039762405666807921157747701728501087926495609943963560405172156173072903940723234486532209005402274861139776776686053653779486657739687249498849365656437141030544582373966281911768866957194411726232014750046654396539275168669476403231718152677008952679449125789316810591438950145788292090203950403268644905229749771189491091262597780400896917247433961453805975638977037148678077577701860064629786533947079517336041739869432799606623994133670988785684992308610562668567149884188298962781909569418136133467363515638553299958768956228133399050445630570302774559211648829253092317411436382376558515888412275252202966038997483181255306132043836747637865557955372116298297200004451964192707753746847567967485695697718876056666044522713040811181112632182905040913914096676337688620071751108570677262515113764843344266070586826426549659155510012999030910078103678517635461424013592637380946048189345771418441385193331200130228657247692570032238882188201771597999879286759683073738639004828675654588289803743274925591479963266013447377444677020402832592319762008436033814831721089921505106174509044685471593572566550698074345665211977597472008405633609271705829506417998498612133964192208381506829282213109973955235746399672013418962210433256111933436538775036723013039196958712400129977795377561980370891711177953858333636298999702221975997109350706726578651357525862311641502045506869610978152150249817399382517402916889526677734279946342977702568428890798425338950063854795585414630949942959776878149880018597478761351984020072376887738556641187119641631864775311119906008245806693025104559075598709924640039666108401947335020096527869793037859550951018138037219246078891165908831432581132286831910115711221901256487670787434363925065922867394507778676356722450859279563937581014437758161155967664672749174868320397565970734382823675113501785338285233301928863014388380116491526769617840511923508665315555945131281358169658537570540771764478451574612416395273624069787707979770600560757049885172111810953925714983683484691589790562459448128422368873772669859917217146777787947177760833870615250087342603846944271233974388336692331603843675911855544722166266028273673233963313813609590571715097740995556129505213688714643390083951602698068779982584590665961908347835758946316334355182555529080591998683738840627263049272005958069976434556124448483180536570688740766770993368444578303711451566854772291866529404515139666173315785964958301473892425757917640992200624251098363421285508413645347402383454949946537166870664152667532158005073496564177671204746568687706567212555507399415566644651671961136823041707664431270014792459094262319838649049851841977527897170657910624898212956881196016427905811686492781522186741217652939422114209449589619942358182198496608194117133004185854226663711788865336462547414050440053936672587983180469479945302950513900605395412132052756574544495520109425465364339913547252535838381409657087725043363097267127180021664724629574086363692954934779385822431933643883730797399999651271659386245082753045101678279097973898575764512941037285714733535867003122273742096075173320987772378177993090882224180180516827557487245636227161974749765537255338422124696754210788840905068528815317001665876404263068799039577134815693142905809812509971535746698633873842328704270186740153438606950926392758804493677965743558296724184480486270749149445110258513098154649544356110542326538860679652786463801647109132979639218561858972894871740281110649136380185660846082412803312838921951468124971541895649825677264245554967463327287759696337086465137223623223342165447314184853721481307758863287353227679288670236050037093162862713393403949419957334627551878287563422017374539519880641836489540123607647274618554219799196693605497465791186889702015923315496372486394870152420574020181350421324926770937137505890024945295423596975823780599478886955544750371830756813055106840853362582122520812311500247987016074284342044005816808024536338268884292885835635795879592300586568864286897556440912293980972264153301751379019580101853882862871379463573513839715525288132134395881663284642680446533737092277393377395395342700352332901311235379911075355493387637776686061729030975116481701714718637791098549384370716056552268471853118493530025176684048959761707842150697420886413368982516143368518407248373589128684271448981769650883538286198916597269324954535748321089869740156089426388204320387682135462763418798415545514079459732273664326902446780546363219667674398979062659683030404329824288748719698647759737262120879014662765024720437976054589006926602385372151281008886190933138275222482315197389495375477643808055093724255137379708668486206920592720118099106922458547586221290465345366537613250293696359416842509182933646177645357208186512996113121457560953364467146884937089928159214736841232121467497792744769357912098336187812499531608652015314643782390278883345404241311400359663430722309479093483829082519978861349110415801886565545159602433883874085735918338643592363963593951280114557574053066970302638774564149979194410134155544319244897720118077960613222272762775062842565916120340869145193469461611148394148376733559895533140290759296138158033377339397780971209160414881022472136912074156837058765652588133140105514832916654611266264497319692262889857728107289235501479277667904014429098441807046966628130408196516721104423764486953669813787481831857775969812207216175027883194585311786683241767447963967414472820903922939006223982101884833290243034117873746140428325580488947626746330051899815664669581189257071501297092155435144286774966054804127220377251104316676210569209318779568013268134630441513032727772196473371698761746169448883770231402446235329285496257697275534872291486566455789052720105895741747447998508227670877417640714299050912618403930218487518284996539143663333867509180258133851363627729152319398321527655690690241205651764370451995643063937174091726870896475443754625112301362420979086849545060445653637719204404811061255209033193661790612759878801811005788199133130806751877379897809705631631396409143240091285413362025823520706852844684180596279216999520453724928902974191068638548294516187783200562861321137537745562460947739784586879701883157432132419035736886961139494160843902513245084814925934682665236062172159564299998908021659558362522865301225218765404297009554487182823619221815760617999359475457863872724135078911187435408583094227621872584029287698870863010085665726647900277423289082134108479956685546454994409908898656996803006278921781261180029606783279280208033209910246762415994779464151349255844754451915446239114841428849183703723703390463364187556381955196472644491326939918526830856938155422331176573280903496727705442996060926424084955112054461426809526638312622190336602848031956678208799292750451997949079353094918879897938373910422987764892162289958830014150768701018715750452923773231226950548930344208168054809745489536949547063955588123055110061833913173357478563886238568306938068817398600183885953366758395270460295865631990637354166787074617192381168763017207936192235538344911162056661893348382074768460716297897854052475884082557142051975541408852278770332491742859511676552259633096512957182048695776798416731986226394294041076111577688288115413815365381739450555341241702819482282809371766673275973404064819611939831785378538549244262928057462641503406028774493254888923200252457776676085388770172733423903092582633471197697171465292996076681202679066405349603671897319409906630757011050670046928223252092888337254622329607058300416745736201600171298795738833489465191719101080926643296794706220828153651363470949576499566059189764219450827987529306020085007234607508955271220658257109791375042264877803786004903581843913860709444639993242032167023193139543392090649775848051930248694575597693021182603031092229025520997432129738640022782774919463324830229669160293930814084511690307129588074323487038995437235456432812330870764948834574883383126065319371374952032893270919195096552595490558571348294659481523859118302349847548951729391579270625341345328217952903094484350496146002697082031629754437366486861492442531837757841082740740623345105689707361033124057786152367837291746875022357947835269301272307235530779556111571422469567770400425741469902731509029819650470657144994789481333198271844194916630917936358465802449940744870010739050052453153511584057694254490844521514214733727669049404114354345863948360995416532380921282374900818134559335909573017751844996048829010526354404157270913296158172688565751602452168791095995239161948825581125969771992764658079481722544670183006778261893999394224815705429445317466062780151957030521188085696176403949184255336417665586914745411340118459560599507226871422463611043818079910061949883490248609046059068188636947820558795673804191623093358915897653776958900739134618458806569166862400117296403041956695010764115824501624980860109301827847270323461098929150623249989373219228753201101614974138863216483489215972851965603929476195436389516597319816420230287375070316205785659662885456048302372521099815478561332492920151859567628281140506454861921657104647716105649987470771654210597192218815943606842115200186656596342521473070104745415604715052350660860764828083564407514045142071854052917536020543759749373800697140177533213404970002935604589255614723423660019251319522916449779803867104784294833359325473107607344411621795832625741731954822760790492240368921661329951971140767575119573956430419427789078232477370469526323300137663021339240079488751953662287889907177120289194210747888602202763049744606174272095500853621924442093942928596209336615884361524202458426051779757250406577433495243994561328958049843092280853461620669876353205657592793692600090363327516092223611806141978237069917729306984150575424172246687630133967413328777614244013313240401547111668855287807573543335547565184062987441066779189265830077441381094127441857064766688307567971341191472726779417807908771880254982361726741465022676274774776370403920386603210575023592461811040378702900077824605164889453822279319219668797951061723006748347878768994128219398901358695637780442097065193033768691115503436283940986096411528178357234352300086513782261191328633828125063692415471024677328226409311204767990949884303060435065603703590455651166204764357224211602050690435460637869880377411512646072586219907575586424281082214947699208675446881634532265672124233975665494898477960834950272278843181654637922579476157235860838777903714441286866534100208792034258030295457056515633006690260976838070359146365461338836410307796521509069311945279475561378890899297592465280586101132151441132062244844375876122970920243863899564364263817637720902412569120451906863059461182038152513598471120958817167389087585023798529053355149951574742162737642785832840222901739491256570165904681402889195287115608084265451165228415796328416701248048931056646709096940983662910226816702136459367912667865359240024321059788943866140344558671957258432344544828258702001173174865020976983580667953551064751872204161436245666306943902552147250827970261972391406198353152925430037749401079656684665572085628305555822280098482400253538107860443821695686889685596166059244718108505586973176029032512058548019529740520832552904534404895817518241118496224648216286034818137975730769165022734977053682143207035613517016848391322979205313796195216999238546139762333569778773362583714789605858600877527353083678992917444788703155536033195885542327869950940001767515911692346831972722093269734904475241176966772825809257254033755078364916135361330457118809503567181798220952790473125609407920080603770520414308385280754226092027637197673797511383758308198451528916905898271781555018044802355963604248706553942586477250364182253261402980238330007331745738475908593821420728091979684219764323786640440580462129312382357606370847196595664396744410817638763367173332039470780299191935026858164165098110067614179837359982964994717271530420644431178132285906512941154732484128923747469805728202780370408812488398028116809398128267535801834264981095604340443803132685783839039104114294466821060340025338296766124786655938482321522108879298362479019214276431860270629043024276191343727458584886360491919468463235131805817879000435697155052941554657691696249194547728998388744668519716774974947495118120282392047979540002760404483108299623552557161265281147120133624209691443628108415676031153065677057175353981857602539987171610892076939584850159367346798665817615756423368714868574744919121711075676875147111101835089631533542725884675668894203644881706490527301415720895150096636678198505039785553864982860574876198936800745002981938144526141618415164407269025780152422744989316444705844292703541506843193764169068203402202889140351219931725519142712686652734791668737246735604184032262918051439807606884564220700113641550937498280099006334131552090705599210415587106817618743788901340045500895217422547804916601257885626299769970689283427342988440406285944060969876125590768556763699896312681863978361263969510544237063578682209195217547241110258871801735793672290889897236522412709501623128677167957295401488007314423864854489539025487476422706735546144568555936589896140615639254115608186598097133260504192251536628916294003885747642916283980783810573768389653357754515064795243520552431792526472206619054640468657256521676188850264885178181400531296837156107995456006469625755959445076319972517358727102437425211921396345197557317985572471963332314648332619760871837203372314525119061444282344186977302288990276465213635677247693522950742306778205273023739242363761661601591292867391395322209751290270981035358727482978571424607182491809928033035149332128811116351027186552906039640599559063534062045110836859886191050263140350979896530467157046760651751941171756251020914410241581230500193389060225300460189122612801656888861456472800422636548797279500558128629540771301505734259097315422123104203104877995183131315196541120111933555713837380363306329021662923769435358825056962270356016924203593889682478851100063500929465576800987007089014039246426670662356432473314980024623529619422519230542939283611168265421426778064965591935511016728239591362524066202214012637974046370689928183943993653829723647111029445804511321702257877515692820585477027466035134181001707476674604852125309433534509634304116663576405843409659039251943884011427322908763791757313308862061847617664167825037332891720994571144835260099736663609181411673674687669835817046272129439633609473733675380270831068461959528703351207572361385730339918915257711916885068750278434629943977155314138076214561934993054969357923599803434355194307593093808667573824445441099937304316433220031349371290111614124371179957894480116825543999023865761553936968717767071520638926693539710710170035159222384245513365497051238185751099083336589288384768062294089902243336449313311920564253078279085814404403082270474007496309567378391886909742667005060220373758670189939476624575245332641909220641826175509405510589829807473388236813486543541581101824820866894374136214329475939223472646547517530596489478084412848359253205322490702966467498796855342326579224852767862760158324525684481994410743679394127470584093471477654942456294602989418546951236359395590993521161912215200221312208079057372570500067863092597884975907214089392009975494511373277695465595835866485160505868994570596757863447012031892595718618073645668632782453675830963162287508618144623190247611164784936255318726256680496880241794776917481375608235183466351064837952582292168694207502740044046704505808502165620361776946570806975775600858925283397297836967635307368493024562030879503635292505966067023709848778253466504648024798666583493565112965240646712935951621191842546165314755069627781277295057446833118240097315811010773588865814743697097546573795732417662881551483304161469360406765054777117291866232972187757548451957308259292855949952366236256143265296643092610626804817167607107522346907155468182288371337989864246535425590175589784173290386745801212334663331881331106439424850126667080171161549457047809310432965299836990764848083785548159257442775844705844584522911377176747624198013973694979853792840501095585621461390979809696502632515450286041295003923430570411601652119266227424774711363769268105847590406356758621922228355629771824027404131108987427805673225324456436500329262238403789949319519692611922840766782198257457053286238927866054930547690034920657185240912329094894840358529713030735957426560393920275472627605808862050875005452613604849640279677804247594145306345111862809328225522791638849354093093339212832440564655571191744438972823892909383302005202793268756528569596746620407295243553447101835988620439372761733827766187653723525254761421115168157695028106986304850880958207474490662017996516573888408149369476519740889269920807767840250341407444315696256270666452449302648442935872998810448030324889978195131043435277947765450392855085740005723196612702445260186803516788208429322057860446443948187251588257944971716534207466723042722385622687098624338619500969106883600638043648409768031498515288829130926417521486685248310158060665945113311332061597981234545722978321361623784106377588654682716934687892072020157279681400933130978316742997121279236652790768178814502145165848309545742347205382621860463193216850365151795606828033606253974495230627032939393291069994491532317529261574047413880364486192005393180023037853171698960383591000332781453124183368323855583629413632403177301338336184285772983560424898109920503134720178662954113903002710536118037467434540764995473006372920206156826994251718097816698929242669027731728137579147453635320771936981596760212281491717469703559509007455129245812603892081380844968313812100245227613885951649955248079211732504508067655016550636781701403778289596927642458024498331735890402250714244041171125845420238222438352397317492725587691495356709359455289151550629168210302023883155397373453542754561588122675012943306160204047831520072081825037243138599043942688785128762648495203548943015045102836320977335880261558222778006426159436728994772391412586312077793020449702596127666780085262802975956965720482447768760301851634331043434024414486855819311584422331348159293853890602016695203286550584562123870947447962063279420824818714221560265856200475943386013944469436025022685163926929686995469342464324984579345025900959221150565672675785677482782464802019313227935547186451494422120671022850281117333629257729571298227972428663165922468190271795218002717673795156294931734735029738289349919435161229558066735209831162849638438140085748080590442180948224745332018240702702911823793055082363714590579360429034289758570318313197134864050553601792223049236868575511460039838193116361605696474343987030158717137173702534709087692003049289179612572233727965356701385853019393595913210028752436867017085572255213387108451514392753250753810116218148886485925655784061282798893082750924149610600979968603862838543850372961590726191592289824270066389666311636209688903617241401057189533283981580423763880289619116780569448030273109070940106867148105702493781481495702021369716977426799016574015965769232790640250828934686838864031174254174674893192849416347788792975101487980617812515769066195881178694756427093980280673007020554901711429563222849634550968576613369494162276639455508678153739789072684711447498297155496202964673060744889450364834818621885918955236431925299489568888037459474289644217364860911082978758290545081769203053445882252339573305246472201634080703275812395871211994870552724981922630660213029151015824828340011246997736835551648246719449994034649886362831580426793439548671014692593869091357416472961885375091246040607709125483517889350909424281543566300790201943300600026549446035648543344720876566893272104188288720100446555823473035806691432971017267144938660309834380181728112422376073962956720248584231138235340318288230256517348415261403159097505283495323888380765182676999379214338462152872545794581711220530424850026427483701505857532107121403443426445561248463306740819512882849618879797557078755822746004172807207287054530409444898812116607584711794315670500980446034927313668426166982323082538540524115483263590861872910270761175919878651567557422242678343730063931260583271507868778553255735510841911813465642008624366024118074226653317579472824716368585176520509700222300465809746418951828610373021887218370438367829937817920782617896282814878142153236007908391876146690702755570681344302591206718959257322090187548563555387235367016627427677845240914894621446928360972159836013422642828249042256636304023182120349972449556537905627129721990486363735051686496763935141151169046913769392414188523718057967364454712261959619158657766171840718325429571556837209709790871506084002961491972560520704915697606351071648339351141216530903720625081874230868998274679318196296231637675824543885551726965795700506420282520130751804899111155733333385126798411365480691088930163945866098469008893155686374045226882368591181267094723879533359983317032668958001807853431791779245933738312700948434379246932927210476462665193340893194761917337420447065082938541822366135585307747738787889214988240197630161520985391053480035666436379575893836136119868687154654800723409218890454369734422196950083768852516619040527589722039922329631856945892864252916668617374294573920190926974738263886172133131234664421335918649260867487340426483733565915892049801195460695874345665202032838742945393211560683496449010196792419443387500969374029780768134289583673186146210786639836840030417570822391274925700461862987190762971808918035023436209282232541614270106670251803034913201571012755286329750506833718989641199972529457114480143714457552040344215990094588415393583042057812909339912352829296164940111793719070582270366173413375501561789721672263448683155464818022463395636487429367759896701617117796657619780607219069832088074415043274325643101347894327552565206935071453771443171463749314047373398342076630116460574139004000998888671666922496649408216013366151785544939857389531532043210519837772637455450837533656243791290568089182209109485379497484903011588289050351773679369993971539557050811355151286615440210800459867815965652356662137672525518778281037007296599711119976159382267568352978605466418285663534437001233051304542355649835809514817021936410538867079647227890546619146117454587164834887737614157699877007759519680843705901887215100554244465506881705186425051906971969174523568040955414543003697670245759105702881112599552713205908492137217342505860577002920973498151685598248016158665954794589368095642881296488778568508769891063473739985726041246547895879127619946153816781294076151728187891457980379562138721960598499655100906468663341547166343663883141088050993103329797663186101550274287117182990217768065548017753146470142744616162867603343121722090689870045309289649206345041854561109386683284341678389244407977514644844537925726659457470903470224918325060116755780661143628263808982163995241000731455767615864555215900839547986225920613539497032757427179274876740965255455712445100688824738895504049132515648605731717770175882266204379329745173247873126413486683951416336106166504114786662927355680631807242059660927391770438234640089085622779129035790763821396413476694063941238500511142335192314508870362467689315951533535616939927191838875590796135308061302651290758201639142860202008189292588127253492191552904124118478610297686458805677270229824071991930624613581733455363411344583082597494394431390495822634779455420272586198316997990621363516237137153651195323616135159985267033767827701284704703693785477979164294743068238756134118157111775724386462917044129803657894483325779438374422343247556979781496510998131006251718237805600949523935169516103380820796884223484409210933956518451782092833270134418640026559587944158405213578115779596806741540980700074899061195706516142979055640350281437485177322450340594510293265843879101298797101881348608187809671974980298213878345018919798115928142432125283737957902230334441562568488918730479018672092254202004264474292921618391892646020608611410525136417144541382342475989579007007748665486283425121634456088266571987039028188428719537526851488251036628676756848286018979816642519317475646496496730300417928495061973012466631573110616406801281084690868691120111638542081323840634321655707915597987065775533942784039026352655852988311152060671374592584388401991543440006205616781614501420401994307978446247295335549628067874064689764816753672481081952086123758246880074806724257235093439169181421713783364676738807237222783078653987312800694059568808735386946449148973314604845155208530477120378131992773617233441094608892420592456256431877101999593691744420918395660575564658794006079373636160041846098435365957366718255029988536697017525896103429490211339361158011008267881277401813919634437622880931255149380445102052229909892628733047901360448326289361712992618199308187719312080307338584965929355225759205772995530279945503724769078992285099469665413155794587966859549787541609734435131738151899450502409101448644620747998047190308737115179386617530675865313736631651210238976560297737778540913366266708343726617793480389912950507324466680966511930901270293708257801505849329824295900597993610138949520883216911462563327359404004441788540373637783276337309552946522267963284452513797228288773327985213873260816445568836779003978536357515586917608018302973364675285277244372035712781839507757473983213689287662090915517536321503005779310069814365021399228761929642933123412571083554958621672404797507970573308454323845902789168684157219366137287584125575831378061166766761355270920491154037030840360733630360272506747455310545891776718413810205680024332762042834731669594039584596817499467221659821694449605179419035692164145437878123692267492151427749512981281952593968283863147551602051041438193626676000220439874152005409709498172351574879340942233800754540780982311896399111083685276716853138956875771414973616932373429010218509011042443464922437776254514124442034466371010486174011893472378013363388970742486272114594833164629101328129708187740328082599957530332382428921496480636996654165204473466390022860603951208247369368451586155280776393003811741052862765722652383056307229824519245838921753710600829181596538012959081700485621340424694806622244379283623579148160319043715772536411726376344623013828085969245965069084983904958281925869870930794807106329280067675677792201576920182263461989619195917341143869146385039230138450028645608993819940454124100226784398244658049718945355434824067595974157587399680190799082240648744690300310805950687798935170191904951614463149342918055215650692901066326863484256476358306508768871299394746601262102757095399140368310770569339359835658498100696526699178904161555675331130027634081237738060543002651740552806040108406921812520144512934737926267531433862749108963651433180373945412164676839237841954029142394583799771965538941981056297644404039791371345296181729815600079315971958936719711213599737715432499055556299224390970510828940059234015445213792767830344704083076389961161783826987636737226517188985386657799413001623946779785389747711104182356145970313318607194373047472764673259928978543091948523466183441228215082532673589989683584784886584014452214283251981427518370560491820239460077994074390361207682262090437483201583055167034521524552359470736385020014100016880236323636448752784212993333128372120970447437509942325865272960064913821481826283631740646397900440433686439412297041112148531456687436396615070583346914724456885705727410423310914691558682240417950839630351223211840999921879951516996950790006486952304565766406663588728369566293971240542162789135010344958639348114352462772034885608300955831627711459213277155717171288661466836069455813970630015191082295937787719809856387272448360484703407500069124952146739465783286427873155337745454859729837565913971628074770087163243931030282440907925914049551127809528225932055688908416628356939669484432912529634258002380429177197694611876219121855885458630939399542393031790779151368871429377973879703819340035168799416821428419562577696215937090843326139374056981009522061891672443926680280470069397289086134652133045309526298623007746748310209281477335736314651439790489985876309028071651047512157143869181606239336810292374086262017218390752055242933110524938139722359969249988747718257252883977886786048577526531076969654764280659950976098149595972592113275412463950157692093775722589645853000724330008878812270381213082218854220551424871387586350217760176546327342617920615477948975528474046799157211822735143822489882872814024659819575047633390312497147774218680498818727835416976164399660023235341379371779847421997674727142714385711737948242600811379508042993810410648809973474549334208219333744919950922259908771844615104816728305563662025661950707649415963597310195321269965153141446032956889835853384042677500498669468437079800333690130226962967785958589449059399065284468493499546878711824953003922478580082871504715555792538270318634259480667812625134936594890066402182971054123092715955420798774833908164896890922133305201075002742713295032190645901072384954373111190142300978157807423792662007695415999013186418831321417030276797329460712148383476172517840907772278272919936282335583017980860343820711356270953473112054649252028683398909584887821887593564495686248772798458712749038946951981464077871093581782532135288435556059756973451300381849886901970729610656392553968723830415745051726967563101132760696558909689615808676750867473885607177330194832046120740631861598157521252890812383822888466828575829639755606066018136844145012730021876929548215802136303471310990058199808684455604346708939664400495085488976722289953898141422524099346931526167807007701967401585272849915357921014762895345347482521517884560130474978358112018357903199231451435227756909879263483503514775698675249055212326828820423753859394225504265301230463627046042518293427234414184884051680062288717582598528132880857136833733543210371616871374710496325325908409561387887506649852558900347970011197332925730156527499930834541214358735075891326337457841439503529513647199081690884677591491988457950705627691500609113426351043319297448637693788994778763859561221636043171081120345088498312159349258039944024782062216701230107628239965178176683018386385080432695826929698828270686632687314819783252616652576423557277682690095075975090409400164152390588891452014269282867764530557676754223104641764817146314713060710218024368896442765716270891048187086315539543047623837529847505811865084606122642399785202587612821164635212191222348932029500565241340893824854306792217986095770236174286450832352905818503371612417806061605380932737283440430415356663132715047400965578961294022490523871150472011585907125704951054599816257367328288851726198842528043427901325358750942188598471112619063975285199278902623237548225287047493300147055645739178459423087042471639702987012691249457274822228310990496379321180624640174426724913002512720438904717019684971016122358002164947359352824555419655079496575208333306333337106422019720422519550657469260320055092323708549216418574109435595474172526203062302434082215533355475362209078173768715696714826492526336163156196841897614975699436294415767875267144941736985617843990826941224215219478296361303417390111186582159012502604383019622339585208521266060896712837649283809715296499027835270186716901160366096293604300889129214169169081696235930791586234300722599262895553156805482162118771876046393581004642734664548668527023947396721612486029000288112278810179978101057450347760599460216454017640909284835307252450034527861999666159287155719907961486900159471482901685019912276468940088443199200310962789226191514920014248450136399750414190550805728154268895832298712086130235292280104586229946038296894231144821526809934143052537298136287172777609003601189809729931978944533758934310868555807610522124856078575885680824250820292860662805285643258850148467486226993903215141077823230501071659382053233406497986850058036184807996640175406501071618882637487992096069604545512257638488666911284417083853200345405736659196650652800514840232665101950377794570931349680568697374877867930955732699173962987048856252275211704634334788745170578465795823068598528541612704433927462115648588375714896314617566203514548511907092639774040589149443790740995643114131089766043610084299793788191546606538807370432002320548893984971813462186091757285070678185323733388621561809193153637402791402470532544126667193123765417457933383005721523232651062216815103475048972118834728931042956520000648475859883859501752878881999169998287236998906336274740317057226853632282534532217255790812775872036635419446213202550228927745540033336199282016002069944208251006133678198355701122601202594700727112031922156008373517326479513931553672615797311222935780259677707391686724581855416223439006959608822218384929428192848751407800710440606232491574409723397011387532191247099348409347944225977212307782334576427205421260626550280374644652802181672527356362853412224550674715556302106749228798969976527902983414870809893264556710528946410271216826046407246218252402722680133057767792118677693632411758640973445671058187840416550903697086366109081634239216856106137011429519999615138113871108754897639347672443791421842426384105889841958709625540193792810481260381598618900028239169784068601622821610680452349755235810798915877503664676413541531966363426017973149091062885587965423196850187758540004364458021343913143403340300939809822461395173220038416405226688002128609787330082720010198419902276693399715800552851697716525156208396443082165758435908556359395215884195628781863669242475079627835684316540208231789101211143902547031741973413960045618486494665236240519431750577282024816313153361348009564472730340780543849377724281141587981877684502705661602390278775470475894332718186913634104062283499850652411617903297053472386806366926131017920135240889971631691840201092356375558774977029115856225380516322256944084365842439515182165366706567071046582854333977550135295457934635117049798740376299349801701657043183852602049321739954717706243645299518082027877690110312765854608642981712297148421462856800007906860283427108476113026773991780922777312606353019444804189495704359656040032906394836364323529990846724597883513943820824096735402442004485395037252127670124982940955061953375164620833971026947617044719923550565237266317710202318009150348977074891934675613853143824393948980834890146265026520018843709979046327444702869892859168252777309060468093753775721515300152619867787901488971359913484373235440915068032125624489985987130876364545483763614478576231000894017369484857163745510842935744301289869370897395063888596331782404387859423942027019160798317943764360702447905282241007464968184246089200085726826578960143786325147288867840979365485287521963981839246682722316704579570387401000124041992542278102335590344093351964480237942674382571449603432636347763791824772647413587034565642026871703407840695705147188294836856441710168735574196186115311798174125616925385665171436290492412702731570278692903608593255627076937600275843407187295132398437711176154284177262526239769487579382020915901533093852075094587339442616717993371391300203392783688430232470874923741584463816387468689583235909012705502358000945342077828258392410741303262449112540605740556737364757923721516950853187532411687954523207478491835907293768660726349065745973933390008565643059802049670188265399195944302839261455748931269543386732577046572802482967378261252743689499568532945604217844959389122503686578722236121275089438756840858996784490507503729297531179122080432873144996349817460857474636093549119096624509100708668310172340275996195820746284696932128043952319968436408132562738285613760649478136986953610340697453985107305696019808528542745323706115894366946640502053202296387103603016945038565172330534783998039145833322510987690912373031411643010852564805962881770685629185227078567314823495006523756984237387589882180687103489911165854703179197963306187674567239668801142300513745730639947769202499590716223304865709188208986291243086519174368225351135735480119302184196198262878635815063112892082434742234709465174291331220006126300074529233347687051938027942336100226631936687818060048907618201294026298427164069911141525118180633179983447605387067414917139767909817193613432194138488309561581406402113651308026664997423441014826358703845122647531983030460870363566383493740459390103999025830748555104253549125715049954102814885483411959501714215916554050314769572574017526289105262258679183513343081024612853196906535566454469408148163766938269253992569142526528361983792879777611787403253030130432495314359273073046381572023234837581989384209389679035577799349829189883518328626671380965722945518695701255727716131150502086933341264840055796140840535490049842386630137934678266381176066842178444563334020552735507778623730577564008666510829256069795969916551620367639849626981452107903763722211980596530239834325191461228134993497096135094778893093609249575619866639581289028902164544601206905543315885540654924885075383964859231430729017172264532716373496333549645697995515190548892581026942806366193411489587698499222987898242562104798750897888392750996356030473584838378048094889070959624138655485879466830230601109816074459538537570487343917547494978257694387337151515806729064040380228069930438671124776074943547846049330283849851652494987585736126647233410808937506017320578816026758052203358322861427535161508952924092074379490765436773317611233489234668953437081236851936587529979050629639126059258140210814634593126199745184096400385725049958872352757713786197214879903394986114974892560147224435953049491664824884417491143076949475228347033728578018348131108303282231814510031280712739110392800778634139062637096381821274020872664800799689308295595452591356835951118996967327768068642404707982946140728107028239813418383774941399496540360132699975692135155632437827696755365946891569551834318904916084463175942162647838572371253355365328703390644462450362763571650287717365041907210518664605222728137531110907195915152239025309126795877523563023699705254804279513273542538375383550969228113598001538462975969441307080079263383743166277366586445781344572942465964950870249771214941369558286242287296460638981273095368255622324453105863028594208764721780146923680116006078531401981594075193922370175325151404444917198336302674088782794777790107183813420018596353635038500973242362321762819758658613428782275997922071632951843557189802348819123152182687599408458929181375679020243370718801721806887733864341644991635434043380173641251597845999903671541399363850881948086411673103661694007092648108146643604270706384076585266059959197882053433743161804673911499797906942247879553360403110494169319655468615914714838678437955178763750370121576875788674159001915640656042180376207278964980530006382580452169817039129230625483337386372953624590952041717248004195284923182432506783974090843653310513929334049613437791924890521668636196671226064683257094290903879554694780137314431781032365888732329420951863427004902483729768654835528214165090800946786634280740662658553073833204786883722855460481614932886246056414997971344103927096431124578903879849892090200878983510967375511676860651001485836385878655528980810902390793646695932052050463386120302345757600696108329107416720267369672477068771484017161079903645630117465735524905559636014450671682802564624262141228573570339598217819831127594360412157445671113587486679584984096782626595190386170192599381463823821482097757656595553455580439585764142675503879284887669566816776822521408194379261175178941206694080283439184752577239732948749825216833176528304811776009427014058583194038303424973396855109312152873573061409248774137016756824574876938030381382638166069616296495141677485901801186260024390364836211100017562527538947535956138535809396139640264314584510503646505516313286304290951921531639431602272190416041993142256260581567263550550957958140370947659972552417702257360189530476202657793184981212860581409997484708750806108372391622566903692154326276953818979864806116710298304458175724894437126671386225108122606787203833886055658288965368497732078770561309729896950350987404179948099014397076268953836454250586922366785052580445789449953204666012875749258849789778663603454187261325939249942289187978517632054740657783265254543460045953837610830465524512019790190866900385046907348495829332269974077368186379518862499699357561678457827488304151606079842950729673831443634814776795514524098049303222359262384886082804730528793161670312936863683002924850788176105092246651748532015775649448572239128276462195601863955285312876279382781012607000678183551130002770861509247776213515570283779308523508566405364983275793006319829129956793451120367586381633276009306711952691914173116514255102209654533037423459877660546126042945522070678185624741816032488285234608894916333758961572003602409915136355367352210523269761829200916341618286034042506011334110557639228535211130871432510764039867320259401521804399450626775770349400269689359539991408633218606598284284678421534596794229932745261078790009300888895337853993469203731919827762620725686841491920319937388308768904797792896119093529112327621739229553404701447620334226009776501618378421653918985576634566472577351629531996080469241058177200552122234612033239940665119469626435785623603458039761355635894980640579346799580108437407973547811005142836885941751364699598212757867046395533933109676439636892608606711563985497876023639779683356110548655357165256957232026849151486117732300472375216623445268729809643416413333819481603626232282326710949870575733322093491802705410765466822659298656145531559305049047611648829054611234767418870608914658546734936258256166618700124885488115116544129793821098777985088805562342459434602573517540612704011653907792167225810280386177002466755428752263588860321443293053341487215606936463224792000912666894198783039255448758960989380810904441430333197512219920649823234936665628612287047053435653167986361613274878636928829483852005088501640717072634734193044665841553326857996793202134414398181439796019704879819517896666048273461143247312777139252114247421996600011531265921253074308551593376174639533421542523005528461398480071299274193481686945377687208059509338245199594453856892992415566873722481168890560745514793550295033315364124396170981240047540507282686508348415374348072494848094694372337697400029938804040857381650836984254528091907224942009664425155820548841353737310070255642381205255012948958750730128811307490633250732888631691489376020912331060494551641810371728940912562604321155593758285632353574932192921216597582620793345624501614078812585510229906257065228227341901389189496250149805573602045786156123252683038468554503265538651452330876683150511177092130003634671960630394826807708292594717531541971388173789263783187676580331331520234981193701602741592690649903693892854718742340416306424589051784391880492800405395883143154269343913981214481342331158844375251058048345673270217199503847663907094808728198994023431271715253683121108935822651824083348478163631621709697212117348265049424695544076502005610146695876004621712553937674130489689271892007929941601593281582486082004252919594700687427732740480231790380755786275438169500440436503738171621643571756774206846868753922300295013306456211956586084310357673523366628567803213811558864714172087087297141260410931965773267073398269281174941659526866240430469966229445891248230730663826521950012413788474359531601651425803221182136850993533795937924160747351754876514029082293678807898651940265978859932040426198233261568046014067394844516646579796912851174659667644027148659281257704568941242631426841469503004385654304278001802915399321645717076321242666975971164133325646783920565514446674649931958242792628007559596550399906551961852395935362394944840793920103482063847704460908513099431231873125452968869881663159013575676371800088878227666701046127172970837279072825757793441507516391116721831583453878176125982066617030291555210242800294843151659078247740522371937036298564527079220764520150238504202504077625241512958930122756279862758998853763211432060463590704755635952625445536269816636887480513949586602385089460807905476575411052031748783395515817158681030747541973694133776519249796839088799259087394688053363308603116978124257247201851075524255385863807144168973450795086852078529053286165347225037828820427050838687214187930983902895151125287658064535040782319731555985510312114381212547015852059761742518004046121797011630086052800073627753778112066516817580089017484248932585627072453149710561061582089567991267659878361993108254521882479330301047203021851071234768675809751584048266997074622471266526372903350541376256519512230555533671485225337056028592425852725778438222474630755046363137943141177293919330831163934100999235687941556651005362702592301210423926741065026551398251599375142192174857631527297356799776070182825548609455713480650819953101532466936906206349625390497969816913155055343587697565276289725368039525282359728079530877097849481793645521132037972056099859934012183090713288471914404150273497525337435277485027082131423820902520508789740474966811741930698528593589433725003741279470266675284120017208542109275030004545091743810029780363838779164324152734700299286891319066961649961192344488778678958720803855040431175792985359625811023379560929406445426500790588623651060972436303798808811195629547388700231705754599529328372746476720777234563075463852658266563815917445728469535712616251146410217838338033832553281470916270548931379485269954648538824153585530279127553284521234628374459460646711783562409028374296795993487171823310935167879475405188167823265206002293180802293468049694676984756019511267900371576364055351785162923888727542284180891587082618053118824096672481864483490675093579025118198099658129509514834542463600508701662642645884879413072433121809656251104837156547541622745450117175448239882792249187449441573386992708821929884938659442414562293205872348678128537212573002478594627816377830539459421335103032447873859281077707245987299165255195851182972242239858589980536209406073574597383828918662355637504592989048597291524722971721298767383956592142585110523160154037945247093707928811395783136703120785787589796784540613424116894494644145910694242563557768593158250791774311987837932860762095916393805867698133975743132220492405967399346382836987035135523101999391160194369167925552855143963370605094141705931689588266623199412019863793315472372505932365626309787662748057853809045551063721476738540477118533627387344460859714119750993477274300212334665277960624310210323775631619263823877224417264657977653525450790622467177840923915471289737188424166908942188259721078617114414403771305238945560864224953924932632864646969043056790814903692055001084112080229605204837173003394315950076977726259452424112479114843044085852548321494563258512052395330555038514053320963750798147941195355366947462121639818569696875912031511705245236605146730557895457208954572876813830879463972228959456709540566902875162523122139468193723769645740094978118923104164155820236271853972628881800099702773056767168519884841511541020390311171204803102563260757853812311146672621907143474765914844575442857912142900655032095984320070411408466346071664009450317192778139504277354205393377114795321945892721412999023795338722865398603423610232813913056340745792710888544247712383596847551648163562249930730637927730862475892230717745553581144201069444213652158818940119817645731690439244722781246010371018518832128970341703381423893910124316605392235269563258341834949237665618065162499268257064800004621838204204970701192857494028215548298219246201103371641324933487297512290075396233619014331601313124701353124271351066863070690960896152888035951990588815110942176677298282610925463354443280250778928629428959851932623464459478604068449328240501869760694274068923370120203453771167807110910770098978572099787476236727799877140519353942675429551569829805821714262651880808857437854661074944976452059814455170655866169495233404325652367601723340651537100026996738628726277587191652997909326780706326910456738523293762860686407178266713200047455812984404849892253859903259063970601291114653803140322946642308951450127071142053113015120798997757468411231152935154296801888461489724387704065154432195609054530557473975697378061490138943934944204385949834804291008201790822525772186406728759979407523142363944710736449780214595398306098077922300716804057313246552152709959318919289139620839775626931155805050602450517233594057378266546017751501060985893641873051090980445122655325235190514892715875836016118001380081284998572185952866395042421685476719953013329732710842647744093378219311629010110056539088616989062133789977307683057890346991388938015252093645640246193099419854529090366044022551032954137726989285912274355082270504283463253908694433273644663920553749073119431961549910178996340746343745316134253160019529978813514048508338534108934117270481686580680963608716767883461656918627205668299657544270812143403765366538080702233359815546578007946645451187691412901265407361033854055849350763824668097536211885386322494565821010701407373464560534945686290799626469209644714212824737538974221647784781275265725434721638519310054198729607524160416847958086562279033620000776749969090108680490793667957433375817861520413092912945674036296291742398165578468188293448853196174070250310828928770022973441343188469878679775506799850102087245345661350618261572332266939292727268475094641682714555206300251515431453571961034890758346645635986195824139491094364099135115933337946148775732934144530356994374134924380066307186387445667912639474413920343428975008406812530672901601289821562540679564800126774457055136876362837893257841700965775007018651128850634906905652168395874451867123688776052284925058918273891828199740577153696098572028281411876191943844852667006924397409747646166497511058076915318849467975808623051255135732239494474208761946634889476307504169475470973105876140856038822005699740804674918987495428860145585537834503146296893000893149156904841909784215486194783081580176086707082646977476333241336527134282196707417042493383092634545357752518698716471895572963868508205501204579388842005154325769208075377539160418124159402497713677700061277495352747358683007278068858989005620328234159343470129822269921074276351118753125460201436095508017701009924437107949912971555217127804754821021362893977840682905146593361940670936765461695086281383704998664318900182682579456685502033451984625710779163235178956995718872100236597357161404066088508716319301233181696864593906685756247359655714021885847313711232555057877582470624152722608907561760753921747810659822828957396737846259506694188476724335860218760742549538805459099693184928679716896879264627347949688122992281618272002667310230756758556058470101717549652843675563653323853224980629395606270780551510018153942588214449811744603935881304084989873531178699053020673925636757810629531307501016332324487352565106065971461862985095111058137398602432752016691201350321113829850047170661014130842769181604076561385869833289878328743228189246063745178374417684546756123911367683418569804316391045160416313727427465797035548032155401272570459851375226022294650234652089095652549847241063229047257853408143620014576603093431313186303000561376098893633372566550234801800161626152607687737127532452231393626967470355186488305212217934283499837687312302544861592891369715850194193739179661841641191807943833382826102454348171357011884675620334670254256028465260968968006857147043718435205579500243563348427012486135484862290609023216490610686994898707049772648588747563890349334944840033199557131091423164405810408459781508224170456639219956087340929244210468102856192601317083030372023272004257096937911945700983717194686789535606823066949910808886651978148081137673695946951745799257527242986500366179569451868171541516981849536594725200644995709298053187462548538034596789244290801120719870552773967377930712661012818692386336465691370402217681625672865478939079608059982818289679365947574662488957914270200712981310059125572231349759045502222178537764704972037124858088879346499467285562959476045581341442624977401914397813938402496829382627345087418115981347912613988588587257917818609813109487475527173291518343111902447056219742280112060850945731370650596012394549744312899086252059312389027796858226947939218062374072375895663588458210841738455619212694301444851718353617223783325876661258385696384155528548885289664650440472138927339668473092875779701229448031875526189798346711786927107131484193965277311576565207918727453118654824358295921662925908596623336326651712277552123335534329992150391816096342669292647659801152613344575724394665445345369392069919037847750580717788386817696987900411137133943904965010763103823802091305472854917166542532522925397566074950036735228315638140917379419949769269167019103766079934513191543963227135232976937814952080954589349694896152272675893502594477053974568046889167748916699882568940666885296404782261317191889182297186480161232324003884153529332551522940770766603143259526957423655740175922145923116826571150026502113404771540335103217230783093408419191660834147665537824398725710497480288388126467622261745456026203796974186628368941890862986370720838963891011726796496838065300410769732553934322756971368146580210859197442767251784892927419243344917736294491447416254976590396513860479312025342908651467356686828661870976510890401972401162495657965847627863419908043809875064763589178626489060574504383550436597735527979732137804145850448677421061215921771237309557277950754356463071728938053724110267377494356202446451496282606262837001960520679578064105697461970002192366586232195130449646356399053096953641401227630525716547370572849936058321880916914660288769404551307891702107555334537250903797581596125107980906972892750682909837660086063517847764079215627192232917773486972964243520822973630545942219503652450962226012463009542857978192270023084543293909119908862331100493536959807352917522031928922666754400515659648622067352243776378557111089776003088010320778643496710806307913959949969141443530996652968771666980636864467754225230599385534333688569860090680916329179136815740671689603333354370154018847106943748728352889997808892405391132631637195191964837590908522491195394566897506723026806154461463709995589548238987427994232991319158910356079030123549475438626160876622991439901629881272309690878798029184566936299357794354007312124436120235140096528859964401618324435771878569536912404935606396325295969152029962799616201694431247239905804272346862835782454234200705751779604508012601743873652147260674473979685849491104101137626074301992731834991073259330123865594542653478767576306566936563325182644146497729745796769751186384246305359501412229419856109456431857480582937151995052945282055643569162315188410607929334603757990789639376965058371872090230743727186939491561962134002208098753476748350262983404497167164540500214830801850926886277410840168917375133203546448726540424427758197084105248943343384322104617765520072672111941389481318748106601388601039114061461213731898335603759182719971536212097723921853088738353781732903990648107029913010239498910580447715979035482558997204076214659820094547851619761079551872675385255058075522969411914699609762898029511662056654185239079614084479538487127345008725984512645856522451995674776639472133345575766956716292996852301365645949911243615015084756027134533660917606349057383891695480051961791402686313821727042397939937274664627578821635357671229810471569019783515360369521733344219750842629910089924641206109445616415353631536408957329273768161717720971356491184190006458105801193562615017775785612895446918479781097101940618482064236438431624676321701048496677373857453440660722760009000009177078891933113584605029627729155620077250057513351072692580285223547114847172607796842058793381319327567442758178503747986447991998335672770248287085274276320009114104251582659715678682325923596033430297540999230348863061288778729087547073904573847140661896300842210596384330778074262289334860280226807463456576303029285711598404935712062663116747884585720208195412572030979258109160584918684452321131520147086703385662990749338246615751940458537253822083807616094047426640296626339021877582541040109964532687280341705516536943807668064751910601496113745684706868972376781214319898715841166480769958137243296531885350723826246281888847534719445879393108244768223081042574932362688080056646543414538924342911884576231639002780180747480674059195025045128166044393096106647596643847851439163799374752458281775781046343693534962723033748204641726834391474171709599235269486291566549089832555151804214138655481650105290667729194004196429614928948728678858691397223211561925409393583173056702870193061685807763335295710318546156185778927507024051134231645238623193774735895455583408973286148408887003077384266254738519764649961718512175266419008769750899562813095519090587789899713727784347094494690381180410033930190350014516636155661782786514666162873455697189664645824444673253759731636251823995722180590630638875478503016618506088573817106434934129651309226008892720872826777684675281260224079185297069128226796205662713563641139304775944793170694261247927679051641054747429829284074214081804935666129641841403279294908930501490708527825787110675389845821010254833861185707122504527922092193256005201013489940474159822785997564385876907837290433727124599414037831138988325250928721875629336792725826741743033081058201367493925299876325117397390397673967157726432018251836971380054777927645514382270641067807520777223251516905401315712143202393521606548222805345342128517817751019557758141412529509504408703887201678279071858537624075102805182570883717213712024336500757185626283166873824545100230496723500837009867391127199261922113462564924502326483975650036599452391964081161547873390489949029742392938952254335629129726707183543216894854544078534609398888842324044938207647237361498599596001960580042988751373270144661449785157169319593180120708359157528295846698307057565414888963503270701444911651232756554735855814991666895177951568064056128469874907685053489476699853443047028591360546076850941076933683814224920710321397187573195755591371535210853107048957159719171832274850223118973978714045225073725275920116946983448332847076796531870636839200650844421372306775640067548667481888536832929191634033819421975659157826119299854383938839349141626226139169408609240791457213775917130845055155388062402984920035331401672550829429863454709802676544521999349757623629208379562908404016265142310483876417878514089136976740732496228896588189266128385504954840265994279946034710015883597090969495002754309145130732891015127280291989652447299777229190294151016667882489250700611824277968300690428588480415262312528838483522308778925966621914288555269291985541964862553942114780566337536400061880766492876328268527718614029106085099615899880014323173672846671235377912602743021355853450717676335477287785498816761645705527289935913859761204980211826974039902809849182070475280644944641032595436809406106997695447720247860371117700387616086169534130269997090761318294899274785631680791098011763966498499526214355803024412838641897466400467339364569880399616436026869472682046546519808635005658904101699628965819307122241473398556559733996671445610816797854257368836522710190394833763918475397734027825932552911699785913443830569977062781859755184280118945551194965751915746166864890441929732789091784273626068544349925245410289325885363820780581611230244049506463155792831809473477397476682857890645092378817236918931843067915662759026527782459207412449348754543124038429366971171198238363149923850081451388901436141766900178673890851063833221888586394813232299461366671434907912536832117872580131126178203210670504809621637123830234697451677826409483364660860055669552101809319959470942009871678565583573128602476477941188820476479500800863670185850048749383619593919433179352095664838077079885538052904247950236116804672450693546560431960688810052317793744828579988618762680421119359587709364556579965760565461845450055019741243139006234604053120522464534490905199783137332673118405676629462239019288913536318813254363162603645501535522588750637824509160148822356927315891119842384369102714554857183334032424376676712342081204242098542839452717574739345018526813683214930885850509875727019758015776219218870707075025835070556766394600260848535923809100327152083859174610422888226823172621625079514375078867428023951175466467169744650950187851825407132917438227408302837942852449595295334504360127903459175619747376324497182081372164512795632059284829919897866789353664425126587947732299173605914505952713644285245445962151610284163194732943368125047063441923954529118923594820672628732526013882585782324709105927841148611062873070144716430900026357252732320026083713975384301147562770449495056515629318601161687500620229141869411499538669521705214252960968595579362139713531177307389359622349001118520569865465163183220098606044793656030695103133208926915809625555019422009728361985899625273686003787097018260744669895749475236482543561874546825680386540503229495447768647724221195653658818204934263672246976346011764519582413719251629307175551584157971046600791412708093752927996320825170419654260307510225012252810638100753913182016228655293076167038983659670068427575607959373653715274900095316652261863330875094023583211658870971729078233270586174592448676365385117565872686218399580270851747072549112598577202371925214463656938269816565662705041277468756822783673728572021043549543347509294491194428821462732103227526307604620008063881643411671328903835001609751037009235908980533216251722044223865376154973860226647614747303312650176127030827279500450739409209984065197317775664963553101282252006834709159636241339292126873783661944214237933234272399241689381059299783202556842882075206591409943994623474965226227210107813194649738951886276579704194566700704908431560481127157252719673396595859761346366647422646845973094325139129685425154304131529242667387693918644940434996841227907903128036577587474333137973666709011868488407822369301405046511847662454684139247950715003668416330418523063748899296502667938262404837892509516283681645224109740442785346085851423599350880219106461285111867643367116084501747574457995861065701360873086099601506918182353741665545819969028836318796831446878602361936831589286574479759999290644379553373136510799350955232525785211094028474706408614864424223082945266165048832363210927809426314701143366652506731385079539406919850295911827059617216954496832633743686778221316593206468950310998819478360191537172413619847476357673458227123200559542524884590002079710169344837927467017483785693975564753942143612158111025782256914729276150634641799951852368131702383468617526997526182376004273313860791710998692406192848203047927936357960888425093463056894772327377330463584662462309448803816706714510754547089111893819336929284730174134632599646188144429135302092458142339188736519101747896388635458795598070774093236577444671786175074606519011472766634731059236301656620804523824081710770775794406792174421211772661961543778519130719456065026758077045039364279886806755266785421223524723711664794292521616042077445207193957658570454908713086069991620835597525565692280695168459402631930473784011195151199880990784564298327998421620703580835506706179335089999727119822935440959214741221608506616625601748800537484888253096539197641750539075763550599703033014064262752909798879731379133960078138480471975174947187834514421555083947484938470166998673187233145525726061645206917022015715916433544770808726675930225757137915621204352292331555495328218591379588828004767269918630459993483882970363615418534597010059388354675042538792886109019412411773250762581447956331062629650434369545309756817463582147391413845894952617932138150657871006481359787490343106472034351785250514918223830480294342060751491679727076334323717922699544666862817590267788538097041614551532553250111425518660395671375788742567713696801684272386095024117709791672789680270407197536013358444305870892430241556236088560263251029717065290458769408613197939538743535540821198257240639361483402357102755587655154490448253485734785246285468658577392002057917215960077725452576317976545065478148332003434741998604522083025122561040978546181051758056496222271961585377881320683160105174219051451554847039549942040993868703616496583390031009204143702373103247002322326295382549354798435336089509898844389996080610837822595991252619165373822780159236329300300189268367951232526841363860717834276103260169534750190560499551991641229762954017332200789955651404392164567510727019546324883857177205434375566846955222920553313440103279000402881634705556282475866281549526144045478377908907971121198123575375628023479323487625382401337344427838744884095329751864833276463418103572900233759466535977397966532330445670079802171655266244531544070289212938058676068620243255952624418697715061483274383119155382755302955151235458268173425776991048971109649369591264667142543601382954277234422017344234529621095959758885282763936117398958331766363812793760417824263378552143329025026500315248061504174690003634431351515353313244895885919055444947031602080659804793850603087428144167963696591656305002252726436660957213033755864676325511330606348808470202221001776600946690010233167332027183814655146374873427523869724694265752629794941437765680820816516032498625283041906150809270789352187026863656624429391160757594089798866999169269193807344438789029746458662273794574440018872572792227898496721797416156912776393704875705176885034156739376277081538029290871528900419972360486437050847550334137988569149014388434981568031208442916488509760426064462332165224691390110486011165612341980200356624244509599656541505420784849126216531380019760476384350294214659913706889174042006020382428502838932705035872256610218151008043075144298312563630883127830443813362661169701381374186676121774216916710610927435180017543607053148006191415679228468564984055225154514413412457933045481252625878522056470674430545908323772339381829448111510333643692421866926478710626082127074417275633585119003754983286726425539381411420697351193657154123492083365344027140335488535277211501805602317728559711938602738631616895071447816047521622651476243582082056640611869298461579600662660031513821251916644053837353897631446770675081030939821086270317578949596492485410564502723128845513797527805077814427942397010536762376578799057355510818210713115164385424370801066279174739463559214235750381779577154035214114675401385464498246935574572254948052020497458831207573839877673564322058327218717474811006060672981547105322774235454885394401872342463262636667065867974345816673246552204251195433051155102269440109223677576045294815813644664193454125633410390212530739207350451746983330727465759576490109012033253518048293179470859250512896503711671553636463554411159291240490272405438965324521521963013013761377369304160064191382866679045249190954943149831460872007127856022072611841856386066049642748190029365850847125593843328722081306360931838984456795141191026561259186749469177638040935280356152249242980736317148321309684600383109139090945971184699716836638943063103120147216903122028027878747293871749827458078935541993782491339403614747260181951790367262982341417610457611390118063772977576292490671164004675332582040870911121260919844383560047152970860826632228025086732574948894991139630642620176361260846960057145062313579862611078077170494928875303960341835195556534518532360506053743831812563690784504296717945646103261255556671128489705252053682259170958461520694266078510211456841961070320828547275097567335409182232487732825947417992672228609706804061378753617021246513924515312227088786593008983660116115347009575022532835659702594433386598461265329311953918091449722656519645489977481079033346205390356157225329302440300939032716139635316098393140800799209710437240453870263805278934956661204705930605815438208986942826528268761073284101258999960354614311232166330325351704544682669582673416267145556315810564214785402553922034361769413222474393863363545164940502021979405534353231499671483487239099786710635606026572131270335195772379764119858109760875053888697860849633538488284811031780863641193487694567040133848708115856766251252677551433802289368965105665023254497635442525146895701546474718835074954185123726515168303409090635916147678756608519970634057965741713581171808333498860746653897806720454259931087496421242794261147919195248729156356447786727128996993506911440544449283287015765209334934676593721536578830421965155748802723476189549980321073011706120726038323860196003138685652460698438681320392997659020131672992509929089756590642870432113089882823244409526743196808336835110755159119768684714354537464825373493321266539365382170059031812703560307418145432181455884424396372329551150596859055980327307681601024093137253144713371915742018073167830704083287039475163847506762775148407968711905638923863215504805357250767751472179410421781264158066765677259250851391560559233374971996885333537694846099565517270892627018381702012709163243879345225155408496569864680622817990873196379061265581653455048604713263509434852576616961276735375587547628368748160848810240708070711310900242226717544300086019204839525444994694032017098108616158592804612644357620297299539230861793534207804592757692814177239561771232377873748766354129296278847500373958213442646952303819902471192185778297435035519769073688271724766652605158714213250858792765200085571348143210057556304440060979709548947641145502162601829963112907111619273481869329481748409202024330680737838154835058464119544817148804462878069572507727889788979854096064103198291824847816871247508504705942747012630324076080118063137494552765226247221026232810899385671496927628877298584593809923564805975883909429246560188272079058579123655852441557240135781533370033185349036511202317390172576608630564739781226948882489080130273846782626482808559755186050845909752954832597351195562123842497112396664673047699046582495786073814611404139989946980907763199919707227745507663824006592460557447232356926613635841978030546420778131068241624411791680455715713297455207141146351391718627828226739792136522917196037239965338724229154435280050389385102180430760724975718174509952692610016668368640574350318076361634457185380408773777822408857380122961806895751585347115532568503619016666353452747428622165782342152482297433364191266196614591223052302926385796487864009714308848345447818460962438080878234057702490298227640556531407412172725824772600660332988075355390030567102572891209573125807162416875607722211095674531755413760104173702939256446750293565375342360539912897874951724329671931323629372675468240197781087116045395470102810696516290384588969678819259900195763615597207325070313428839392392590062832988688079127236463847272548754932578596344307141953199317305617341365274661494867091829850853205331434138174346337053165612007120290717182698158679860931506716106714521123481547395953882151335191221673602511820143077991792477880017580320406743306004353792507173693457971069726178869393902419431375930344607499636903900800655681269970465302066688015397755304641680877403185044213298472151789210729707834710852165079476559819574421484760964177485878786050037744786901968239749868655767877097435503665613044562541369344321823453838330029841778691133917500194669424201434294395356300760413997172401665299318875301458650608191829013973155292828508046322631308696912745194179090015438400270002303186261329894591327668880018068040288065414888668069575840682642168705404507294660742909386742512585059547087522986520510932067404139872353929697757750936224537749440328810870312457091730846392651982710491921132271917825768389332529467668337777107264950082366345841907915448400708549815607366544594533102938445211294293398064390044567318099307094130154826820541706447969964806492108174306389918379938181773485165053472661878836865782965516518104040147521856908162955559021403117244547137454160169704297284885770526713952998282421017744078549052604609260330468623798185050865481669173189882012384631926385503391503098043458510371428048115363504465959070477037564825674645557574748515912588274828823011561671231738789930724056603981297073525226991619782294828721658456409750439409398608053847760535607593584697518544839452496588634331064316080037298672525138032416382974678138990762972765752189949060416363314607125117220826473889253380177168053966035704007287440892264382980624803653783654447020076000670107447982109050771933702147510232720827645075644279752630625835972404957922277596294055256087228881669270027730445708596521382803899384542338159819734575014027130444645827531276568857789927938489998788276745341166450730764046931820138364544717877655781227796347347680209602014070619177496532332334592459636836707379913576858476367054765648126307719200656074216031295568670412032546281454698365612382448646127651079152925300795664711179111137548342556122412273593616595705151708740048727400032815227563712810613264340561902526074376224933484011314939001714380814101942714308096223329569882069003810230627110362233707319708065694902560588874621041852955224171611194563771709485766054678015783642945787739043958195759744362140014684675937972290931707754388992174087669481274423002571133718859886859125433007068830438536601796377853658619967475061321952844752500135927932207244499333555710454940727215142773452417229730454858700721448493399628875395857267400031850721729847673468600370611695875685673950607732548804991589057962701453407193935309713791054958678594423274531168801025121008343282800985303743863919140524949895918651813913562758357430882355484122254268711362816363721104043163067082619417215673594519904575766951252149794073474590750588415040055436265845726572494636682475159817004387408773240584486115555825934209412134800468542313044910954243284932811057012354690238005257193460789463944530022212596894751254351550496932639776271070503175207028123833073655548618428690732582508559959992309612515232108911916962936790445244846195033140865542621728934422223061232071525486300306861792372468412166156238686687296060527726557841746129225047011221833154762510211399673095474549561989448947684080679625321854148836156154367095618403399665306809438553130711173919936479001077359261397606829834485865010349833486099018827704618369479395265488026459074532704060701634899619396763863010489727777007983557996043183385150912602316115696790350835147024706840048234876805374166499004502477639250408612150489333776341558910500599352923064129082478882620185101955681497578065382424084557506309897936163202927479940582877897537891954330862033431423732154636687518876292009537577463331339479360372730023320577867031851921445356477488041631997958955286842909116808868529998454676877374596873438752772612787902056099556931333507047414103784537753520445764356844418065137857363393742590347396607490489079975118983179001174884592189421673616694046983555448146812958712972916487609200771516477232155225608624637172635709130845514659873117542692495686696037684426152480131679560183137121807893627027646783720987420986869646840405077529727482031328112685173260819305484644263168631907310130972889070865556708746524489317862521682161208547834214143706242810539334033904253015506041086440223933636136943323828437172080774716133729071338191144673474323658417927975280799277790564421376259112635253034937290139595480027997447677194511927568111839682625134781035613720546010848984757469372331656852011097427359997820814517182509797077953417038004343020386181012549273414534153488798395562752343223256308407587927576157908129666670275022404407713747391475441651052438184909136873297295010355965323225932584058086334492469916435197452309568309240753862618187789467647610033626650315308429854779154150155809843243332089477758612492101797891034535422522917645371167003131050482851448009934039310343264001688286818478927347516490709088040279117896560022305502302173473258954208664029978245340019310615089035117107418455279812908182703900141674622176515719033124112077882456137888843695581475396405748760149635236463373919899640882470732840921623625351941282748483783343436971021903328483457624946896339755446710989586126596951463244461404324810541974203328964680918489537481115912056924252633852881073537982360364515032453763588537502434953348726634717276853612579736632567341937236805430871878094204102183235620033315379963225670607239153560979895488337052235164796025637520544806543592687688524355934686432939153774362438056398290036289701083023031598612720493738010177903785690886486970800722518946955829424777081258934776083066006144853791763740544401768081302273373382334446731861667077792008360247926142359883110437009752930013672021819223354548503004155415129573896534137833952701353274891723900160409351614199014382112832815065872544771135683083267359946806384459820159774836395511507618624714453663906985856090100794138507220691071386154201369630933007860815618093838846427333426744598649943517066389629307274049924415220659619608473952610366868014657877502823163239852300723137768777889321604254024756281105095830365031653531461732433235677326437192383129935807637829028333076833928760856661490658063615760084436132826558143690625966859138403760311147281869085517213710764504986730157653487794887090274303175312110422224719970675919873799349113127996670691664542058065463421523453880982492256365153055570487817450702331550748056543695710355069359435921463712025646661348798434129846659172809060229624600893586253194790571782668010341080141729953451404659726744234003195809657908296504284975679785136729822509234987495022755775941151341098466034828315306852991616775473173642221228927362769682638184958418063757701496732687998276183242955392012468227821896343212889395878393811527743020605668109513504437010719727546667413769648860986441799282555179517361850969527938917298619600079492216395713325976400472192481767732789971939320402551288045603869282250796752950827674823915967883864116493959136714158678262862391357611254276879609927585445445184466085571165457076183707541609244594472390173980442401164212786333505570057374525792056406434526159524662051349503225549882448148858387877567556284048751999836882758460933329749429310478415954314535283770969366181110680826331062848675285653133069738658208416093709357435699070621401577881774136232521747063266505476283999425540464763387428619499871064821752592971763185281228719724918696424437796075658064399745430700143098483495690059764863140470859494346075225482046688229080759485386757229511834720119433738833795268694292058627151267258025432936577692642067484175255210262726668260682599684678424608908909004736560092688048717037414838820697930155734552995372978064409702505039564212482136066157357723617228445957019695642830777153374371914586436060820132727445603522657538691427288383082096158109213682166517966466340849471589739325315934742149239769844311692796709109070046561585196783807929671157626219210504091445951156346105620951074068679382700357432360017413605995370860805119848344683215868826603060314266971025257840643259511286204922118564688638143181358307981083774122285066733051925455891178623896501374825237529636144592399354825436382741200452636199446782330672967795707256197671586101033026332238189508418300893769503159503044720838858346955903517885037953081411095179429752808090564762889296021981312054673807353756598890358833219005492244035583900181966486247853214294378069885871839775774604463117549092144977172381533892134766784758325577069701858942389258483562508651288923191781717647313825926615565152628426675563504671014425661861005226301208901596105377145777784626515815069395774398491607007996819335273360490443263915719494263182301333674675728499179744948057647945324371317460944489533528627969271338318586370645945185975883459553131723083962821995112102606004125034063291445757974024214002351950650591236466459350248813820444012780849678716045043725439767855612351915753612908042914420908310653149226650174400058679872444072951624410058224306446166270549406396627729135877120108953314997760394777766222648136510482733176240330686935651945095380175139640262464807699508439652824074867548141176393481000922075170489393518225444516514792084722497555006856344548432272854154562386324912876415092598112544683602422343807943853211006573756406490171909081702103522747133064052438580682793074887881253998355806806974272252639568593888505959089181710623363621697854981894867677761050761039724834148928161148897879995988863664167184489842450980239233884546212298609225039634431415118068341880044636848235911507043804769323626624576475452496066633259185177605097785106266443160699249653565489824831108740914133167373821145404286963626975701600894543761424192139418367007360002591457409692886444314180621990627247279889031344718249905205836028483625726507129304870007434514979500689711979058445278556233607857245659443628880513967509821857895825056348671358358331383627520713484497779653700691842110896210575008203779351956615344619882695687744734668472211232475357671035754292927074777851151054849873285913373534809887641507315526851981429708717176414865874028468390018358839403562167891954109233293019677163166578358017386659470813731306446863432016543797727984034051634371569679027728605569221409870518205424081834652491708694435686671153255453347212363961567043313660643735072257031956066149682545298050018432146135788459069418837768837467723878980378173709381542934572333136809106174606887471834776575019322170540808789437331019473820348224801032247048101596620382723147272359717378667804139683215143696034392392756953509146260089732926380043822368894073944545381822611741239404685784341561816455768798170469770109118409423258730250310674227843161461907571706546006467543946510532892787096248993111235750049139162224387031157338305583622513792896121066766708775085970143181040341015138459301174028853737809173145065896756037088289516195379381225723409527440725295493816661412958004255361407913141863881368090973131023759451835918196699618430189014381069798175976516775186797028994077408361075743004474659328210746782068156683127801992352626180619609610549656244835227487135748300516291916883560080316582568168588058435038543450899026545385693087000144243290170712180129240235407469930553971604810930010757692068742001688778480286314180003673789768729774970865103795196337313296211897710528195081391695243878821011259912520460760312775230230729244804870734600982444587591790391460336462780403260316584259118170396695374708494634134091723627382802429658397411597855368536353947394710046833569106003595979061971915452952145371790852082370362119251923357440550218645765327338586291424420165397865272082113524431494511270872725014715854384064536227280729263096229237200358006697104043986808570062690705993368292180899389307178713343328856522459953291855484505956852806729706218103060171085962092769808361198076597905112416017430776119251581443569350278161530354319506377819807660703081385889363849646431748484211777856156039596766328035049939138230319244016531217224813807533887333806671699591985302273836238512417166534858712198762436381957455974834776371045660584148281651299938153596570673342587930722433389406478090553370742006904037439045656274778161935014984413175840898769775062909385056799897248377872193478058014613948377287593968739542018558513921273146504737261841337560741778708299189696337505389674961377374877269858067400845492295968212928808663218273111686980867915578426240451541109315420805585170080615469494074530798672215658487212594124985156045087348991344133625362630843774737371844693567332138154399672046013279539853711465410235099669056975436040760499013634363007000346003860728205074069027630102293752622162886729781120477353963484517948297032152898273041898942864474613642886017565402937919640063549201190730716197315416732708426455078179881815861261191279159459009018856881449322948111116384946671574837070318353079124010220562033167449242240309651018593958225494320487014473088974694127402207302081822412176597488697180184317847749660002979122570043713506002073121326388364811055589410502544282587722862010530593100587514708616233450340506251275177179292115313214926629950768498582600382267518590595002407717109781359995755431533952502532663057541549173051496534932500403271168216315047829727855251720877139560255042760322930077583082544247325071369993627716290255111301611840374382429507432323903473786550887868671000799375400895205423983189163699445502928655331240797454789862340303565468464845219030248917739363182154814138820882671064647054775271396292246340965845255342705578837099647112582112423653946685143851134648605023012381391086184967939823911688974268211547291772806318969523282724343452251235264221833600121938117743405418993038803495981285114214955180417631468706333885464112391805098469598912179770658105583796040750408692424780318678286103451270844023386180495550816474380050493588005461967093875251602276743499067325038379573952664177944179704391089375261718393354264938864729186374198905475293123670585068754379502133241261353200594237605084968868725710038321227117212137708169499533683417265406750553198935357857765340926159140004483074544475627122440762298035452397797247582648292459911311168210705504548126597177338928628128834487815927408323936725467952911833314598558091934219284628312999964090499549868548609137021755365376171028728386990687096117572459972264096493042918516418610312264444133151243837973713518487093436093554192889223913469722575111489825899608976167173345807389540318005492355074558102373204768532943728493454879960910347183543353360010397686253651860355478626772561684134695070799316050420907072879635501444848822918339182685992435414365323641787135662235102003916420067918393934961453566641628557018551477931638539088976778479169137186870350594737311856106835713948460383456645919869738736547716596399917910417789635994204858749718193475690472638829933213495461233234609415420884337137900933458551368353021001536303393457731327031101723452574367772558547459886116221123361071835269485381185863215400562409226911878063002553708908773613989298492983776233706063813539560231550628218923250604925700763929921572992775047026068512329062149691651938651489652562502540624058734649217342523767507677281154427614332824768582629410656255024865539777879318000366164899530424696231099775791032224319409851504097126276756075292424537694341347882596748555685172654195477896478936272894306946735002905445318814220801089316027435902476012485986517999598193353605226597088508197720608707445282097867861572754725358870846298671361949180577969339964368866950123851227014084035597776671654233477789502104687329375494508439033797206147290004360934662991231158472758929929811874329162418285912590839333485664661722414935123014752974168000302474699218586200837928529707018319280432879274129669962849532879098543631069826078386182093068471675512184464779202587521282067738208376709016534139985762513396396199361595218071900048678378009853782160632897059695265063412797759906926945542822740040953103493584128421479361027555100239920782343872181036947958449842012147678901708656780898002422928216783873425285501073130538854483881321774479836030493476624709729092243417544096301808321671457891856724320995121506301041643294173483944677647729706816471131915618582205715311858355205384422534809822859654942611441368086548465021890204114239624523667111665146109156538766566389410632909356316122123633332968280074665313404393465968377030858330032759802060126550385120653618405675607013630798302915571012091609826543055629836245053230413047059708154134164309260533133049231597926530092027556242720060679226859003726700298188108354306718614848669764427784188150349039433147875743170447421069918020363999595433273590540539315362929533844759873653522973299363801830116076980695739044130376799534376497941441939416118320387989564988778804881265034186102143032736464753604731005118985254511043130494017982633136547481901510022671830837249790717259560836009356657383725384761746919635387905319105742341015084158866339355365390240059169043492387612352003489045510840835106012834338872443379125957111520905571917832243029327744884657186144782448411323641115435228486238852336372464113674418425348734256682580094710398338071451188306516930143076943143886188547136763628398158609558544089195513968361454642513540003119495240844874087073777614641166857238577645133233581243817050919643907751070842213675713078198366762760361838217405311210205110076535419628973381153164918994092512050766289779480809577247207306050762558764760641125820387303408792938391380503794853010420031995254283432103503940913249638348329458992341576131699560129092266308174132238279224153455252524627327562424519634189633466988682483386332969163231719396267701244179013394969732592486683285103616271138106792746717530242411621805171159194671001151649573768319025946817572810052803029034580790949224434646497700028356427134577899700039293635509477194672646432248698909847479832939293218413310172799773808611227875792907649540128455582942460708076280041770515481286544012002693944025507623170077720231002008311343627682304649530260288686449711557330796638403235352678341189557082060417061129276117333786150915278193369326568112552794660385406261133675871428857730529990659946077193506443101829512541702384638379394913954344480502179377774147167403245619810885837713528060993009058368679174335099353978816955539392064987999017247796956240841289649328776362315802312887826879087814805113467243361690768576005132912543378280661251185120508785151805563450499842097278049869055103904412016036789776466337982476034238935439067934436422977421046269496048351111203208844355303808228476228662469049704063091995030625031873576251823088736204465964159014249289563255498073105581484087796797315662818231112724582457231966664451988462358137996182680257825882749946375716297336854521190220267031135846546859437714551522299981966049981919722729850266035778518800222724650326507489592643995050710472231559301274519674910390018864176157320440732059387134325870938388874580995478075666238965132755128353520435571713988740966858634882916254529591686006428862611162416632390371710900267025826479788630022688862114430311837863683490216905694137542329947659741881147894765438435971674484066168862628222599296402629711963411518460087236724748637456900449664657081922080746223988698483567149705029774742670287712672916947260688707752198012914663002767363867368375333449788065571169559700999762334438948124117980389893978541334952511321829338191891321308341215281463260026944296726771428840565506007097253027316181592654549953334131401214549416167841825191150769564292184010218463924992937925006851425688146788059255802744712132310612915061472532745631632107358390531073731785089152357569821769117640519107955971649743503094437154254289778680583611675288994695350758306270287286606335857980097405781180775830005211819841293026383661358886611597929435181980831021304764636593351034522915104221731844657405746706229161140384825368827336593763229478543364917175770479498755198060935317786501035355819085543959054231887362275376411787474969608519226995089530025391903567329512007200810956038467333565418503723344752623903378140063872745780437410592284080680434915933073477592736112688161590503748801899243088487436375780830992923871056168373048644315917353010347645390815659106908823519933903393803160224207419136060719911425477876555572283670974675588417556757993596209229432799345026496881994213202546926443975101577995026867278441973700867837800653916618488058173329091376740854929673923806482797018082832500436775066149363775451824267135482442916264739821651224556863867002215893344465815579828825926214658343919891140738042709657598651429867406086421752506671987403982509624278554894162740877068342771865643496472061826896831945085268561454226677994396510197108679451365282767918666740354260209132875568895216831539995218140827240669669271029298502317660603358932519481864873116801577141470241451665553528230240839888681951659018859660248497068854043758834556422091704555090086816551418086934252693950510272630469170692541018270504041636098809140086329077152013025028932843629891070010952636397450295862878209560441951676222489239507089700828633395374137535011583759547763996363218220213518276052274755355369302819309479722762275642595357634124098763971030076996147379743408626790237664674466584029226843817578351011129697417861624629752127810686832793180902171648913959025141317970235382810710523213876597127320678112769007936688521106559747460892979302456568063251680435733847665546488374496687451469391231600163959706867822846970174815872154820789843753615118674255602385446160039156031401385899926671885445208378376596601428454226554889778579847841482179338342038756691818493206024520614931224105415427124750683319654764837370693612789542809408983243897386761056745428270130468288190581547639074403956218746517537004092038737927692577035716093396311993492780925605442716441871320649664864124243545361055467903686744984216034188742654844697766131977011471560158244592458032800591691356166462554400360621614717209077611536623555378140876906412177887549000862728385948506099181674863127057329662985510293569744208020517932506346762443580396632341932849962766906427742137932697143993481208416634548683003069607272163293808117144727432040495476269896369753575696091801140913712955509447260107533744308200155626648479091158014380861591168307442647133944973535431906509965906939839549275421790530189553685156634766505614186730071436405640572456023061400773068870277386107284063245047657793325681756779409762667449286843400153210877768739738681818380940610759997699979115502600001365462923928022417901468580102585404308424626535660787548756806860585001481652297943801762861090207324856296039190995872070908964568355027922307332606105818582482103865318222154249903661449778252967810557947949123213377005232549736395987488216020896698726120877981786259669554115779793327086169548185081652689482542392290302936429991963528172763481415938840100446892322772372933284860869236896229007931182178299974513513675187962762836024115358491310542332630027772593975579296405420202566342046181108154410237231396358984221126861047312780258440787108132416265746467965597150564661706203879213300931867387933578915697351456025724710940076940600684417834260394854988236605198113105498373023488450826292691502696815071815687542786488471333984674209513659079562381323374645935952331743134320860726580664181135607204330014916145687320790600561509952393416709980454289897447565048057748693515764041479001807286921275350495967186863477684914867546395721518174774923964434134312596077104256144085193490848769760829814029641877014839004246952020136722014136972280992248365741624164753636934542613634202968230369637379926493197273918864292842681400468174092678065495956268141074688854298853550032244094285005926244682879762206531310615275278400035068473643463129588372754173876674385394554015833705883707427361863125028642380598808495601534942828879495111586972000351552476226593095165809122573777601545465536760431223977896558936370561597584416088641855165574318185812162874022921377716534661742599604627855395119291914941280625769070932918631886259136932232401504268699164348359557391485622545267932001408923251642677708050218820175620914436881062365425854593237138314414599418163320012450217058983329456569428619232826125400321723377125279925634621407759288033720995313983666627403836645859746319957366478325640928937580719830139523818218122041888684180643210016515136155705270136702474803835195893216626581717615201618909838697048034405525382467580435615169380644779760815821563949296092049914778085047675741922076806237897716611997248690486654598490712772109705289171069826017990908752627656813179761989062709809512792668691541760792212349439080314108982459880630892604309843133423121980438660073926575225247971007889999100423804559928956231365776539480492446581314282446567701491591923069572029326755075476807696642138780041927674127772149191124674913051045332242885804492087226001762794310618793711532093594188116103086036856939809387527968593108251621187698054658270322898490691231701834752029544488381012008485873734187578792179550803689081204624272419035633611813754148307580047349235465799377788077636738102332964710550445136310851004565220813719230955907653310657415506046971394641123496481107217110102264397160559474001668495006041267816796733044500103758957341412587378728098572052344929851741279878981016243843624067187576797167483245022199745164417404929190250826253969114638555429468142859236832084131321683113941842562763504845717230391328629953211606679387030576194253624411051968474119870922154226689677700529582562013316392777507573079344030723843834098759223625523891468536627495156867667168214483749446229927599333493839417282161184988956173305412646354585577666431310503047662081039930566678959466159098739028606605035799758333582156730056517613542141157666316451730859106157502665024011412091959286847380753432996243048347895594628404085239326238037425083765537999304294940764105408413134797126374378703043960000272435047757190732313367809262974426694646423263774404045689097011330114799458853100754935798467402003295392591281813842188628609383113988594634701830913749956580695437099174361589850235794558354046875322042843008606990342232179046676877593288324899969036506396249120324281552369102012839154800682685715215816431977471390432468882345314287729311049839763694121447382482365227304792167691042257254479119503839485876583101140354629314998220301584061746801416632426778286268987813049148416924676947054328140360805922278886261109649799775041477220443650367886082256732245605791551859158887560668871424512933100788107805107608025046137666655062645845258898014246264755945700234487144382617513130923793647562563873133990191256171712281236743953612020265861540024506915142109698177349819538313844150492931020307934214772363920806623671984209056475632451566252953579183622741788364064687742791486207088698399517944581709456874010425947462159539216954824675690747316152706981987225919988927250753534847795591942232027453960155194400438211309672681933243457784290401171964271374696119115257353347558914665483080820706100512661536318261022934291800229080234120719246127703506605801356083185003079801232918226883989434831836567771863466303211424826092335208952661194850330362291291486678294598736751432303089476954790435889019582205897872745142022137563880613832210117092662840118945633103043606380655328779659324017857749152610337416991200543349878096810471459210069024100624020250335580559669793609385983861522632175391741578198638840817731513095409005098028393730764504393306028211837048512425743158386131850965427880279220203757842997585454053083799916068930953613562107552791860290373269947233710218719058979298691569856550221277750956899554109524929549435279062908639209389164661456133095845474993225484422798739691909948592843299128455457308037271752655693134701855573563083127219351131971338937117298883958451249165590955254300427624090276427187475159153336890600940346914824375043792821533106542632224167043848571257758162471911466069911206008804185117997317744320095744828444767921963573535995918081082412026334856502274230794489483648888695413968941964374463930057040757110700012757070461039000379823441051545280464177422084520745381858210996811783259026154480111046168064515415751561215240042177240820480714392644975407350829432336499844928193672490516107122259772148080509140538429604685543983809093119364642199949680801619564639519201335575141706436984969749663788388047909027224207348479972249050499953381753420842497572300161498721808425498096248412222936070343472976198557635403634171843543903247810228207550574329193388699790825386862533528979502665703374847320984782368545234062216891918402476574019124229809792063084645643705908538976787330685557305833259621928974205829617100555689655211372774759466756315912723786795477086642299380541030026561202698936509749860940239475045645341055002386827240519859371966606476118903482267656551304805442790077711665771679913281508488155846672554899345188205788136925060762614965636242757364894567507536176801560202155201910424870506534118565891460862283350541068767661508172566032899368688152295819152413262176977320057036676888645259927906838871721303487785783523235121584609105554068243518049821109039820166653584902780689491491324326898798088759034246795759814634315804068881997357263135971594491989735268164540776540849829959590428086445790692532054249843515499652238275765412290643336777749974499660852299739992287203055523119626344125724266159013406429034588428443234418522532404900014643112289685811310513363553883978456568875157861271220676958301822550554505586168811497132474349512874447583789326626458654419675656725080939905759585551533043981596395519523056407122954114795689982956562175289803997278243431318441434928747420436908250509190045663534225561668299212736008117638143683635766617748364258225099213654694717370232961379242529377583153002440181488371380814728626564909187145295524406052033168354822416539901416029204233193966451111644189867142032044351956545312124697166147197508092048081322230150492220485645296781334994559897241645270350971901119037348887978522481228009978074262129271407100000816895283464827531635843361105375139155185365065282030327203704515561356336969355986803475677093093549519039748715578115588375575135955896148870410888574197958150045980180708870061410225522511855760943091992553319476763659919548864691666890906893986311207940669231374265595524353492715839983338979082687367144017235895591257895933859996616095769778168802029370029823491828863519314911563790710879906290637824483794615445749941228794683584584755999247037977113753411052079761153435194854100446432663800408217200073570883726347466360171712928605311854725529901035031016066915647835933117008827860814345027643846115591431575977284913521257792860336175100103417159458731084289363564206450697613044828506200769959825351386177811627062411652093825119540912217245613122235782450164639820775666466132319855020781460964505132205125749873481984401167198139643899257068351803777719191407699094241080332074841615338057021487469891137789328182916786858198835561263938399958724251155715132126317729417631850577407618936426523249106216334490612288625553960617604155379889045697944853545250275485722587310774255141956255092084362399278128367295389308895257638331031458688111439014217500501835914256106432134376648490699112856388843231099962881229401768777894961971038693471352444839146611616505850379081712148168745006326186799058383856597414610435340400571787687988142029205712126762610791165451580280127607807992152510716267618336555108885129032870220465609862781667741084121820159841956583971284622588769824917430127003531665344639569716849281255968467315621359020156569419423387753712851241811246681125597508835021068118516562682891513738755998640146576486877737195239834520139723908250213086194984390628551868815598475942052086996392175435733296393347997765250964149522534128075658219209874046206273717390926647963559067053655830778846170413999777281726773730069880977920823576632835315119441567923112839614659694568863209555043778199033431969679390598825973480407898824460880816694953925379314946029884851366853552764677703918627802893262966850003939359727923982257528843679927303664036553767148167693928992668136580939805163663875547098303523972390643696706518657461685583666029456843610309343533909939795724417545775375557244914691470391835386789674709436671980654517860671510992680981480593676948732876089552708470603162438713624813065987737348871410768676627100492117502256266615821443393541181877248886795799893919483955624212341218530795142804460340492172754812710237489652865514117231711162271830546778095962683548971886888297501711732236933302072436233675932303058904457824605138197417653624273922776786661177076144111901243442398517292944869554860478172028598041508741957351155448732608351875578309381544303536557482860406320455758386387086097778316120708926297105319207342359151006979699046295933656313304934861896518144416647932440203415761878609520035252575152710098898264021314502556123519910735624982214721600240904777816736380120860456186244493517622408478859198737360815362396413239113742800924010805579637339132499557335806327854351615420195830828596391686401432673404495415130028672753404573536106970634760365694598500751201226626727762188543343031744861919441205885995203776649137299488654409471807893922471735685369006310399788737660506997158496525670951763510050613942054843227031910430728222680899988905333782912051477601335744663813914682424047028627019941197757486532480552085916369239070411400094213264782666746191713426302315532424738267981524249005498592472120874554861156006483055499972195025405188025391212995724939218463430793963956095208332098872004586733385732423035210077492334034683515025978142792373569374756829062931329095261607680315101058769499466901845607940671654200151581101076877748857851277460772220192910318910709756481936731689041067967382410173326685164807293157442694402738569518887037544192960673666849493070076925062965216533432608431018800329058904877882700201852818639405458748678548359719880128264706052847201132381475345382916378941514513659138650192774021722366498470884296578464021983907437505044048676958069042076569690410746994306673277253222299989299555520640265937503519856737266443493808689308889981879667546635009572781280791382721699160639981117414385346141740737958632701756395166420423071365749316089558503515095354494874492141590944701181835690727640376809118019533915198795066526580624903730430205087839279108630060375315755460351466913479471023032073846967632640045329206972299622171037242997700496023587104842759061961780406423608153417049212941992682631325685083137321504418764036627521676040269397201797754331185487411831952495013459733578242040542590037139229454097033737598976672450814732194071378337208822898059231144889898809403630335614733465472870488784285419432960222772279863142832345871592157953377328208648036546752918519662747654538939030932232179882962756297411097488189279064761302618197087033771918937336507819147008361305202868224641121004844530124732218694532769895678149688853451694979768160195977038753202703004673097339824844160527874743050107592204850575801897349393430699335719795768040082241092775140249919651421309067486382021814363509848648362369015563450806601411819975874227891692734199789197665370339608010529042604861984097940354158586875152105038826839095081952679489019863159612226643663224240125053108083331010052542006292615703110545642891712277733454701137784789188403509900278024532521969837770252858622962267966259651091872012167428517469052235668541958080433440822172926503142629924959255906969841223856930027648693956028250222230133167281927265457199757926109429918021568481340770994399672294853422032013390543686539709890542555990473071861998041284374868434476652211730794202010003309929498867605283071877624576521802388424192231371448807805344044638484140617689143190353932847039995391112885758882737219860058357819740641288075870523717984621536155228147427272818013572385268197941259944033840807043676337477655710664067967652981823909956298803066417301900398739416602988899365350314808211991854481023519987688297717996903049381848896872172182098669731694241184665842066131400172849062512563026006757444832787266543556742788833906626136218351583537709677870324655364323744913789047300570081870260199530941806642823266197572114998184204891095219629822339026662792875480409635938530654325788287554082890826948836954276339508924322880364392871126997817014834806971151867669569628476342124762492695051586084105350456174293499726601819793901461143602257287416924924416517836887798762875878562529867051377621909642721561987854290139211170849184044699686088365719874764104619670452008113945189340707977420738946629434920655016971996148326523735525378129585399643028787009466082496322623844076469732346476850828243922582411120091548198472020839647383335146248692399798403080388336503948477817510230962073409407998661889555484460231539059463134725969134374299809072915955699479228086778168049302081385532960899143114255752446291059166893327762956099158617044852990624595777632863860274862816982957713893928797374335479702584182895073375747456703668479547563241052276653549386572584594199818474473897478480184319111151187747648165551679514934025994545504708951842129262668135401233470258367568950638263797793499676457626831916755375421079806529692489912720106842433511058395084746422342752401058491416172015736090609612149414126295183662983611572698483737089652056953060680267463163907220726687929478403000912074435878153856553098941405690894737038908493727534312159602745753398790898125867782701197308246099820486793109613620661868294098467390874795169239424788923371128489540918859852283592285898240832405858164571846518339820982262480925912192119665793899724422604681452404152828929658000000055591169735750326503139531682583606244513783731138466464215150893785369739636668677733755606645868893518531603580292649888419950221745448141868448193394134037576426195791195505630296924270673367189708715664497829739443876288922504462633414806917189372119351701300480278660300030392791115523773621402421876929541578977840857346887076397009476419862725364107911523854642409849345096402406283136913473785063570349414744338692639215843703820804604223866968879533797274086226295600761737367629255777231315435998190220131935325289559573643026988351924877165896526155217625084893236399542630162911897940446073483565645468748819738106435218913975655629455023367882520719248573821147346192279035877989710073361313738624417421848680354761273656665200545087956844392291743203686298067555038398189699915071228984818028335819990008558238075785369729057028804180012677587538322990999286637878594711913816091993124907534563611343279778432317304403993218098715579906242539694196529789862611256094396624960545849256337887358042714640144614937942258797047556486290048341023986251879923676681875065668585413941614177832167418640175308566583023775443948672604260412918759003804257124658528138324786681726437521741857027770797682358911499442546642811631266701536269328345842758242680308753658431097399968250077510397112576232801345151104384529681585378845147036262057967856662253336043925748761702806085495845959084133967190658430286157145254849901608564640906840251248563791483605462278029611996544847121321307990096479660320695331965855594992004035118608212673786051477579979548611910852648275081460948727761031687910552523528946433879913784365893279784749574451513150631952365783793991831822660668779181899491996783277710599836216684688996336866020684614129056667890831795345804223523272913943066012808883217603954633693263001145973431954106643232910637710993594096666941970285585832665563228394656011976782924446532190515981639233305454667598061407854171143994934897400916373334848839558078773637772845365879246061699113285694384434732211099443670234188164721435669738380155582879914695394760015430128378997655266969307126708792381619608682406691293882166360104062114747925171567084418272583815006554394122514186271516055394118539512204971792016971624995672018443436374278807151792050840214783929531070904314600386085274501655729420994135255956747485581002603863311698741638506492306239334415673005067051490974062985004514638767879033605236297267212291080698116101543766031413954220656506825284471964624531305291659761640628158683918248874528495567970170335155562264620447247735781463428367503199368872251277992711835730606304692891069474149415561014555215153889288585220569865493212905208451273859249607121497785899825013730066015080305916113153924297167069456603487766284679633837960159598383977908390328156994620344339724033443445100106458832320091948677084895687665555885490739656492986049139929535224888882166336396350208247863936046865787572194917588840423274947015394146445216101985683840989957982544334282305249992020413891956262741138353891635392336286914237900434046051579528179770471370689806275537611129908365475459170962195746156698965318761732517651765064676188175053131144032486974537471787889446984372724293186110235967834267761288252533085711288140899061688526839501821084247283696914988818509311850302711522080463261899958501184632171526018808809926962105446673462917769756785467929761665599564067018935193070643134988593376090283436127894551646709956075749093444970182466061352904874395318765966077386292027700322831577404281619270053264684331848941670421665633706554837953890070277840107812804455186342680330326514573545483268149480502228106311755062613579465414967697112367855555377282318696186969516061369178371423945035495109216517088531435917744727437381358597215637252823870648476238747924978951003222994764324084784202357359953142403641027124488578226164358739104560133084690530251794477094699386485686582974925315766465118121690545430137256989431823094045714892571360405371438133452158026986336783750446990417095636796172897885585558359258967657842254528632444193324762355171309766737183921117381191351828297432296866777189222033036282518661269979137165970053689730488476131085245953826884944066178640920666253072329306598935181295535708612856780832189152706448299824006334960616369744337886496322542306225378377122591450530099288377009091872168708229729313457051506161520114349478145421610585632084349398679704338244332569608138352504076862193844523678720337771154150027225263254042858140003969872941517044838005422382853546961066467628702267569522557301695697984649861111584583379367600667567019338508822908656339980720257685108156457377054679820212279215558441155440725795610742641100272413872445356408906131921141505207301776096700192837002220646324951966691629457578266600644574704444435523705002723490822328333710430344386058921831747902869322865687484627917690640733342100708453266781929419829662240077768151385340372266484749776962652456961104154662063543598514021713726110314608710089926469388894889169313384937126976350979776098571033901955739210742273111935880345215709911074252827600601547469988635283340491138852869170113128980241363111102581424962622181643719589384442544699125196100446224914660458812973805660152501711937919854171137484656808227636799185754271897863422869308750074743307546704666015097374453676219141280928218100849339715436903160415533696739716933611578614419841071051309832036572352607131706097215125216011223653611353264991938724905209632704628437320775919146879611487588443480629220796013570974381291811986599631917064712584959397371630099096262193718871284400287927934594808387977290746287893631932612509299117569961361188142122168142969968436055100240751173990578303058057094284521852822820632784278292692473914255564968164121702660608437811439664300940240116197272510796257220291805691634828925463622761559967836231329457361927889446563803473832413611156471277097588314340193286975842127205516572726383817584221908072961067894989954451739201783178825003712834516941689919049591402693963346625696938224796060714367628445610692955464118388722808302729607295694527750352475900527027508068356098813219525035484083665274318914744061884928559871149116174059108690037119614488968879140302534583309276627396539108030783045913919853665195276949619686737035066956606716889376314688304389504297799560566290545718883153827532416600770065062654302862994761981734627406063585932232001642594687240465548078527676952324416328121833426562609740250909955592810508604821248994593007737589903354564655833663033170192032662667591306926976629315281569526545345988550278474109024635442599128593995623196917823289915953571592433475011912236525654496401524113114391010705347375741864591861094956559394783963239246299801237431731644897708225815610703901711526793417690830857945425657856363910579300825556127462424502729101999407166004569523156587884056874858784961522828224166307368193146877624796455023250968762835203681994093694851179182746914254522767858530671232990856462720527634267214403923576057660047341835116925244782442478590380028727056852605998664368681006882066285396558094847832368962886469112593860772821419031403807042295549162987967047649504348283366494310614692258651558440918554007995295250970666586426650011828397169742411471893009304672160098606634512718133394943391504198507721552543747436687477626193895954448942376997930069415287480611244774342838214331121370470191943008864757909450230913305567756370317768306396104948236615272031138545322260679497550707214693614791682999099021233491086485825110898806265920303983448504128669475439253120197245684507694028765025574330944717976740068225755835548970479581541872821964319167961488947366133116110275593330819552497330980819458313781272096942454756078665945014612980060355874963778650435196865052788526090905408724692444107193672237379530877336555708070713817636657725287394891741938406614209521461706664449259016150297441913559716383806770293307900264420344196974488502516221921010972492575776246713219470113514925335724904310214054248386465206119703503584108428942305975579159291010057993177722868589925806053451300140257260946899399782636274055698182323317565140159568771636714525773224858151390642533411163648874316385763447800803550673148314172803720106321069942643542306721597067313146432706599236330114229527556570456637540365829216236973198509817469694003181940709953615068844723142994376119196740862584947606375050213623269598483299079293929982769796261677767562862541889025017355841839452420513225362999806992206997408773601325155718003079777134439255508447365964167354601365818578263475689394639128839012549378852731229916622268894712031314429839789990389163360434229725760229017436412666320654343757692580541832281013092363816021568268060222360339801160509807730812177134003519470561373039907351130543069242472840758031891063348859723106036959513308351036882463708351211521563326833790382499805939673012665155922382265188527906557142263667814803888425844644964262184919627376357572487259403432998058843610093888452618193637650805576562272439056731618918235772775069500927950878707668747837713652700556191845438827432341948068639555376710591289745323947626977009395388847769009467914370105399116257163759380807711974968972601198042649381869871492582580074857753133574200005894513634564316996153770065651883237257206456561244901791317702587361292679685918355720191136146186005287800853539952643197650568437676046537546550196275783381902030412435833173686799632602111026295132637271932211424875437473897326223890971562148732700098063196111653977721869450439549051342436024265310886607608380614862818495181095615534477512005557805492700370646732142349970835107063958474893668073603778529622105026417908831161828805560632454627862777881391779854062420274203823600966997601745913804729916533106731576983795894534452945637411294388343300079905061915611174987811385428394876581817884862272425678052884416696062227186401278014903724374292810340312804823182235434128742569076746206687484917751985112769022768234420103722354919083595950452719336293711734023653706573108070945429034422119074663579862195450552566871854815153974156516996632122604791909261708012265072705773303289728022658469529362411994968913017541321970376938998761238889709165265622342452019701286302065956215762237013377253311510442896193110980860949839113666731439722873781491401855287245687070394250520642443323591451371646829226327778605741668352177740039129313660493964154061707498624532969348724421007345538041043783875913363484343636743195568584300668699667338775966619837889302060639241122133129871353838849898875294950087462726774207324063483640160775951756861165542946278538195083206612315566479424605146232434585551116890972755936784237867366377676695726286452907621780588352210917831061428825706889518584138295142869661646947916889696694538509060320965653797608870701376826585287554974841818714534477192196706835664848005614414541679508842375759879695566366912006984114613889676844822050144594949816051639685839064191417701171906889804398639764788235865840828905214199214014893594608398848939431532216943665691419428950026281411077509084932391951820317193928856331647280060439102972210196435758362198799462966981271363713449300576167930594165300544694320597430208460644122858034648942940736995617803955281597438946606019125016396773374696282518742460758509286273913575497589776464449320652033878002915934995782245874977911730370417818845345774293374787284710269452592535655490936031005364508926139067989688901668299018384241596764454679519016390715227632030116530556076928418897679775319634533070595453464005902350564740922513052113010999933084915281828315179386367524318673581324532494536627770368724548544026308601137001508015240187537431050309566149109478466199609016950562189027484838198387883462399445449206663730260066472700480791378340818035601069247460657953457156184769926738624727554066154388257327472296731053022838256856023764357774640704671377969938196633118115266439624816983935604915747246218097620372679530474034783819753055959140663604684907683595040340631398349771047011854224283000529283510094235214175571973840576399643955085596050038412106625818392514044117956965018350318628433059999109776555890411532188577548639689169547097367363550151229898527765273823218908409806822441873508454495714894410106862919792108030980196943169921331636216374346474017231162095777447668951133296437757526378610210297342020612139028120633125450884978742728319765952036605739910210503626874031930613053445230925623847210307839851590197815790094569632159884019630602739872692347102174901991412458269320522793669457914984324848568679272297046318900204386559529380331263905535049038234923221469407066271011738962219502741213543376940257349521119144081007325606634287133603031490165497547775732840181446654691781115029914931687561098884753541040070973292897414666012953239467914813765128910942324719929591782905708093429453052669358423776606208557267152542721000179769656675149698113108968029469145059304350850156855094014701772604635430259778018438059589788668088181654178510798802355280912495636325147414090596097250552825171330323081624090775136614523871661779619530773112989099553389771975433130216326747868726056620331735879634011106480581605147696481913679511443201007449893123677622259551422259052976429702778637979752281946533657889403477076051446931219592723708032726157357993669448227592597344971884308650041322325406329699714938242005727325430846940486319388049040865705475533620046018336533197404349668333027312876086277771123342769719747170065098248600950344052221996509306501430756297542407670120069306884262988781799535695630289677998720143688975187100018605248171475693933087449877934270428818737933982059599815136021148050566407640547408391239327648100001911005435652666029734138419082098972581120947912369276206790428908841430731455523043148049852515617394174634491933634304123974178489687777179712278658996818299525625177076457891366436140535072898513926334149367656740887890202016613019320843773337611178229557043867045069036741582676793510903400871496241016022940652846022216167642720750612304720095557111252406921242823564418169396929562892092483979567745030030470382885979240477656510192156973286555061032665007038824955295716826467518905519030812721956277727814981172884805949411479371568689021470109931426577432656107697848549799128470226107568502700058369874785967110698679922795181578725876117340389311381861420717797961723240559788644668503512998786849284951090288696544870021272437868342706538814072483939554083965849781403492848696261906194501058567107096553447155635286657055435356590315198236333297379164463525291337854946083671939039413909267088201085911416588220801182295715096718895884663258372823321050709555923964353562572253213870992005989695562775858785588217581275009521339924452487473656235300313315221210820573324772354893893054062197093510317001236085327217291065247478330530800883634300368596050051173082498450235863938739732572536091886722317727146670941639689157285655956658329927063398110611484652721463750912883090907105970098090440928731703008578868900124087543432060340241570263568128354336192334676085080827513432763948417334502136229176717681093058868873582693855150609492024312643985106535203871630943336181191612122473038308387577102291311276559321065574478068792127706324515641722019917682249395868636155754695092513674328456629248371230229630375114048655255814372269829337919341126043901298480217104972736878228264430969823409604492826149525548773612524164914123440125768490771924305383719454480227008808798583249466739950398735320050888942002755799551236654156757069484459799581654322050597115587480105299390163426508801770775372650655576057659019856815007034938916087981143283115340357146249976232904392082760699258767467043552686569183606912494153201623271958051409310360805737312891803665547052813649033544315989639228424971163855575655556561314649679997768208839309104538500844791807032764531324957238088661744780374388242314228853605650889395602360230016309859222442044178788272354280158378536549871967751328716664254068762582323762449095520641504911260768826584191277197060610320568059886823070131998459321264846973103788636504485582727072923780297802001505917288469694773115602783426443000891973885748850391344774300617692833258699245271414083823409762990138684024047731231848543252955919220219222407601372436089075057393484696051812279543052367290777669823954036475492128261939428688658349340832494724852605973466601744778781364655973988846383479433651261138911784445583355100473431981335509823719290652439331318207603541951943612288867883664790223181610902893488114522699598460847516276695586445055592585370831247374158961444989365552002763401840016602020158136987240543371422453115366138102782627271330688285329181687629679311449767687669325522491333274875361310657163910279983992144408457375002917960043631204364860423773798857055258233031150979297857017575061148867291147109823515579334670901746709461096600910451063243961340493418384413033226089547959984489179549473124176058490881438827893267024036517353302839670298528296737146877954407430059781414857858490384109840469475775886525273498148530037884330318378676600130814459611109409207252569637669180357506707946521124846392375635348951125902919588911330645844894496194009029594504495373878113297783981751386193643529530942455452632706250719697467552139374586829373327799141865440102186037098768785521809226590406725080366216111577659073064360465883547554086310182370335863902042146314790130568070443424539514199360814638511851763493598427897067844646169375761423640406408531965940970539592793675482902786335875900118129251372528025689014147228416998915517086252928189511890877836895821888992168821890770952853862980925121209795704759546313604874982475450349145493203774063778383396547097923195352170538484559207660665324110009305517385673334470321923299918842880288054388018403932209767454823742294120575833810755117814110272833636735410110370349578960123356208651509668405135319472199232858427201790404064498702109005335027569675580210975227979723490225274934407916053933105797255769912262795730993370339029156694479010236046680440756136028346109597730704358458590883437705549932152892441063942019809263119145743853124510823395529309533192740242121792084890570307649574135420599141692932592590158031445293650298329235848038467813643180768968035918350690757771386961067272097745266371332201690031968882307073020870510562802153275881913135699538069973550627240557808306487413805886445055027644815904959118148385550043462370988869903739725588513317445198599374258103703530911326082589992971684132288580160054009414682044390745482340760492039383056278543217675539646864198081939122991066446002178916247795844393254263478942396960916620993019205963206657291456925120092753440302570901014420499538021031531102214744588198647181303502182552344782265059045351427221741255728239785226866392887315520528284419895431785950316280519706145699018897611716467942546599440463648616340306755137640745223157549816472343567123447501344502923484121395030214339246236716550871832652146255598666943383256209541392799194125128104607668108822896991312833552516488142432882025078600689638057659703466222277752113654562904967136359520853182608442474064113938934312091954559408216385122606603177358858737355169015078985784906295232878166405580343036806172549255729364836426416328724892220830274784531518413227408951956566511767666715154859436084591428007034127878351587619844309352258265140016643086008459954462767025016643713232044073057701437582878088328225125396471311458656474119686369151791442398762234257540343292289860309873684831601261540439336343071407874174902448611640798289926017099182000159766660429558308650387644663783424724561921271666387507334106403017907759545306647055168065360064355709413394377797116843329994652909654392450071730266276098839786069677011859864114563981519919676420663991228442178849624074868459604168650731072218440179321965213791743316806787891329123482688656528141858791624859160964139795037202840635365414276912053780999907273984164790931641530580434379915626651780197125654620933586900496688708682512828041000608389094536805822957755971718326439059051980074253040574887380220902871238458149997818458523398324529646967797944482159271726075991898441169275887526551496103611883695930136204868519088261952252502872912391453819261954427648735899200681033584712000755745634706431451925203785966954532140851500934830420724163972561997501288053039637634284184557249340344675379786406660163341621766946758213543886753041480032143418618004358801509720487999150404186079506406001651917726109327831847494488261980408293858719007890299386401987291273343408542018599969175592751874085923413363118804668885485917916899148415187483854019689061744923064003379385675362239861611649949783140014632280138086835587408009845385842972285860319921185246711764435812658345021944485544048534175491207418727285554198663786384059200754706342285393308509270633115416504387234294637893551468333463817385926730292856655827141125910331273816053823282837685458094054507580634153232943647614219783430884390293948567784952404436909440755076179568571120615881632480275599208380065155727800970229245266177260123083873563955458248427063552589917192982139476695063387659096178044419819524773813697257818178815050189273159658928440761204103870354776974168630605761074433232036194762650067429682672035649456101012846950093037907572954381292861761717222630298837871894533610944581717550770557571065216191872301359313360218909585396771043023327884936194389151660715662185026785995339233729528254532209050191050461830208508575638043364234454797130962818686053476877361464246414866728877813855126167224908933570910235858055815470545802310615900328607817106796516876063887553054547123074735425475771346084238951433279633047861473973448331141812942831862679023779110326477310947901419083404234996279408528545245852898707060058539157512056188067508065362956579422682408106274931148679234231356080805105406620176360058275250685821770650106871874862009349318247244675358023021826925280560539253468180258180621965311023986806960043800398818303522221757919198297986889594596271083829289343730045626704947069012968969479527295557337567815202682706336307259098749577648979171303341258528899200721082854767577048211168616080176164417971270635403653045846761196668726296353175573267392953406643871497414114587494915039221308104826706883578369270578884789511563760239174588323561929079746302189639862996408017309521299182640979435394525163418714042907374764212569598527883455260291502618099228804401833712512036044592380509055160814377425889074756243800483935991381397354244021969352294761364887913918254016937230859391573278250204052761389571390602785208223281899318323620644552921206213932517789973455308320120829362382266222302365538966830620527993513322817776038405935859059375600225690788455521914175721265807788250712892596398977854181859988047483677803262767418166918249705992927070393165342968071217957726338257186288743293523675192011394928032306924785110732003341314636008983428548606596260677569287374758568458475771521742400910087118765090437696471322750632105202495702593842821262289182377562462288434155741336495547796792820301323444770443284776616911936788703975472052965077957684903288229024831231596382407591485729055871582290935421265330939937640894143180157102649484339123374329041356691994266764556927550313880220594365857078431783291039028538925779597286148553013455519030456195595240930154212064459344145504005267459584158151974807022162127411362023960997719866506330602610144979653787001172776722090968666706280959115792931593099223689884362424636597520702575223439397077742184776446126901794720348797865885004801114032981586058488335114248471850750205697738180611169782955929394837282774208725560364942468731765133055043528226806272848036646831988094656843489382952734823418243675605658393487443014467319206250245403143510365367874878122571745911707970908721741989588497786506440159303407364288813236617273470871689377732171092126899335819807982599374364665980617177052222964677818019368627705760575263853302956844525983437942154296898028333154403730952457568448750310488569772110753359600571127691930827962765159219039805394200948856191047187497296008621466580085530507755201374628393784477621065854726160561219267402274593422853454391819041548750425454700210281404246260716924946677779669006880423077551699284545710717555126760373376119154548251908004116478294893200283241437616586107667494084747078489030075610025602732526054180065400670749001532198876448159853395495327298341469436002215288946279700356377292471440771278811036811362126532334806435243623288210777721721330503623644183444548532859485546634531720541493852767741776097814049247451591445703229955209888916012464628826339680286902820686162137162911052633412267493235944532038649225797971171378344561021027564525314441974934446260078061473835901972040559625732884393013064466945386134605524402920217124523714277028324611035400034579532328194887969214177512664393155960090760333489624222920772571272456456753099642469210290253441723842913163010009183521802029237848953417940776969151056109323756592252375695254815608663964253834933480749819668152623597594269591858161612390189087289990514064313379151343680805873735916694927957363232942772119916632913439020185525016944737287855489768870160368529965498054671938794251791644617985168599361223810130371968992281139578870187402762005663302124702518593941524090838766825789012657134823862465757788373816765824977355396489822791194629573465413180651091230134657269306032668140588471976743295346601081200536831514613396981614312747861318287589677841972706920000803047903702810608727834579813406502675676640983078100176850851200244320130601805850212353020813677963969330704523981841823868020457383645851820110701918089710124512160704473133524427396920339035946460489961133100779090857799785108504733204726821240208647729120499504297511230686146789210541899841422692182104156826034639612220573927297242105664154877122501998782508641280092494798648804033775449592012064669111736603194426578540466199813431587334700232289703842911852446025172305850236116463121517625901141123642135488950021031764663727586793518408649403669635245321241666230262502218198601844822813222341662437394132380574796012656537661451097675746158842747964359484246141908685809423066688737199704121546741306660896040535744654275827263043251969067743482344409120441385629284028315943762034478302092892586386428532705767701708778865531867750361762496569620578750027187490103788035952089424216638749361074050312836985287797593040218327138326374255782219930624317553023858868276548849507270950042397663286078031476424550395306160603032783643024201009482074252346660554613821099008887763542471324839601989440875158635288183548865880052941236961366909642261043206046780362406208665442567403356685815875040425162473368012467624837486205535407486962773904485849073944042014442954866038771176490664972072320500626436246564800187536256294239711204214118703929629391157668883752189183873903462844401846608852172172615830399154054856397402245602362676119482838704024304760443518058708119539988460395419134175591699486082417626384291130766076422988398133889191061749934199047131082668379816579525007217830472677451176904680653310758715496170369202905504002384807590536412893407142340797628244316229230219111152960504839335210128343977614830814247486715723138387833687850963947770818343473973840518665757428960605515315974166699969557635448394909977470928317630119916954860802809123165390118520492089828983044425001616142912610755791986431144588504614252228558008462823517670525596768176616265571736510410603996957766758138988097739615403033105277385160683629525409613388512761775737198824423042085316067483308740807748288494370017719321785134611397378349424334549147696820658186024544876516135402195921922875236007961505258632747470769761661626781584210195831409481293684534197669237769968228080495771169995437824719995872976345666943010851534695949893818255103398077954073387763783519103148557867407501323944544692080576150346074356554160738946913948552656839672488344968600587094280394469727126138684647509900877381576003930008454140572554104574822070975150231596853195715219150200966552294517564798195570494908850848631926738769261438738191878845539107854364471568570606438505958911992153763293307850805368632893385631829189050882786234363749891428481628236178273863535542741939921196320248865633433754743562866905301586873358746633653840342922051965931012339636789972674021873424265252989863246318915368993760964006366220936261197528348445296988603879152442818825109500158269591885371191633272596260604584021341406106540047567427091642523400429426320117750821108185886834988497492672836105663936071962399084307937050551618212309626019191409493327121387410864892533277680155576335419609361048161796731938423629422063989479609821602010598162106217700909539857600107050524374861924065016196734474020307784743173081450794457464245568338123788452183996067319574182885159598634951219998989105861214852764805680972379519735845410278969567317653643579823166505067312206805283856101376470536785764704388319933063878060967889219222133121460081264986788015860302304861211594281642587312168238452578933027818866879449690312737186183538320759240738728709361048821788730633748571933846525576882734967705668808489161905099393768325294425364177492128558679315616365600740702434052437023886406653551082451190127178791112099847289151939685006138847715771845608114589380504595371150114566951218473291742698201455286839286987966666851729623333918938932024235494451525773591710415443599457691115888665987274887586712291828161000285118610216118043855324215333985497851729543756722727829499956995222003277810662326771369691432840346153858113576525659416914707036160785522383277495051868217072056699775097978013635685442140775477804779913076336710764726642150324055992549712503999416146668825323683201536573468281146534477618272441550530134560741253434256219523854828070597787867450171351984375547491924115488309662524485919728073530362628460274292655787981093134439512713136681347404033122284496336488031717045565293378278791060626072741075427515329605212854734719484083370240305770074897185787841109030654783016536953474657008186300762554900204463251159438756375225341947983950339151257501849195664433543191573228598522891931761681754958718894915423298188462020807898262244707223671175834650474404846516632117419356066915047086729178934385051132897046544211926760401592973713567217020287812535613050777564299717388723566266097897083766295279181874830214705468050594520128368537708982190248383352345666979479032126614322297525531378561737406309164710885792315754339444852229233630821578922540199939057223934485390093441276782812994469629674036660915698297826768117929911070302991402171689951454069706135865491365293821393451507885140598343365294004606150903318654833338165205175840219162233261534579634509421745925123621383729065535421528676994747484202002661110701887764227753934336405588461883201742062233045008469728960091744438747047449450254366212591430898194894288494297807468940492626424652099519004443330654283597235214203085677736184898499981578877343237148014038202181425533400379017717037732414404629035623572588048745103599628505018071062566288304888390698468250377160895505395455975288926116313076480218072487667215589564803767178061265784081922115311719127860118718423212349289308716767654967684569708748451414045507473008487788257974756897932008287134566790247625624050125436668260636226724857420152987210153563764205814792124543166216857636570721749929808837585111791747426835182675964586156969001150352037805376102914427626832732614437142587452221659323515050582027105203122285247801067404949998724216175374451455199082867537795812097515421119204373515088342240445587107875064760344868368884478899703638120434165864140344492858719417102037420742926134736403076296737649246382688839774770533805298740731924393850704984891357699315102581488399297770485907727444521146159606513238745870191859699973778079907083700777853271217102888127750149320168680749177966461752597303355537862285101670784394775637101387061798739406767507628822172096717807095287916151660209744045150928753632971439882076387731817520177038318960884920248794483247533494179302883721955619088330310648654107319727842695115216478741269785895675005711601776454152805267834551368140260152446393532874587395441668357949519775854360406538390005498353681919408457263513312434968546614823402374048988156277046020244644741459507782365731125079401393873070800440896773236443594509579667719296524426808859231266697622592091007245528687379633299998498204292004520096952689415788717334470572189549156383168913444442764287760099515653284937903510751256219543356680542525443766679779126741276562089432813523540411142378566842822887952748115006198157160320854085261839274112633176429248029209957067680618444734182740391417888706174402942392830819588945398321057021066865285096931279641860221085829270135890641135025706443578463047736126070863856837082734827281651001260399843097307979155494759694714826535465153421409954648976640512586384925931379854852801789020103715413909919321377932009287078615696821848038940945933938138152382656586138310903972471489336316472814635604338223621789199624380379391699555432072765863689725850957729311387072897155612235933894182327219471082261179642784735116847870038250756532037547617641842726093297585890095151023012095268677869003426566680927528190392543127303435812093514640543525997633921572578020175973575807550956735210532350124649654855802009955300544008811894851152393133934977282259049598163379269375848789905538415624939183014071406177145775779762382687270195047515674572619244955156709995098323561022431293040703101394261417464216663431399169074492377764147579261008764401438923513256965217422422460658530687604279115808066398384257109710945921788886336275939624386681980943715053854218361260699920705090415323792386691382697024094764193841400188080414502421669265617284762292058484375624472657773846373774116617286668315036210724570620364226290711154355674331665077029474348366251787808481763583931815765393859605858706012433871252268682848053245307684899162791490510964789813697773656238833791855176172307344678125070664957365374461685311974429247024071030518745966582242884590092503952964640592638127288995616149323549490447816600442093755906579362728252733491411473275732443740210950488805989983578268900882404367042322042655393905585887945905144510825187386286897837002542277188609282592242326113833939728104955711988618863437150836646936877545726317133119866246451287621425856350413867775581272106030656135458894685492888419025361535422398314897902112295502059668330710108916589433163425880533779946068171531659734121825710697582079055400237724615160397346509000810502328578288936777662965415117144370112330523734235180188995967983484982491968732892475122620850752027526609720810262531666556730027715941930691000267168179159964497128911231535576740607264828377850581059456399047043872270049105862067999378666348483697295174801602527081722058194270356280664338828701165983019658807031787126504825868128462195723340361945907924888798047405304524184937129778022497977087437640377204338001585483962213543155987501217219007378246502659995565504066975367174151769472977903597995279423481448914211397062080217965294549292305887754817016989187052239194230759976303264969275104077980476750038116350275036057984625044851674090143524652292491931192844937968559645259376738709745284585840198924209046620484266179576095552738901758282675262898484816145315212151259002099939387577848391971719054902996394408181343071800570464360511757968562207539126411762996952622140203434657047551457859770056288075988744039514570685138237178767867404233965814500558689610228680345066152658658928721218657763131264137864236007609531498868294097607088698733565700681357750548069989529201033056055525213850299468089604217985488419259166584915404718500041304892200632147357355114409525565570991696398312701742370610792774996322274022299082245625511602211866176928255444436981406009700775160584488731293907097484451786914566936025374917508777509780155621163245430177050935060354438718418981931036790135234760332346215465345085914288145711861100252535957500409343895972893101859154840798717725491660393260671041616041852650608296987114768421833346140393078840208061635452571530334728059440267946950459264519068327020321869896372786720298999177592710972365193516308445258329779223257694488091590259888222878983935847680799873195645030124488272609231348061841256431993182507655464017849839837336998259567587884025585930469707183486254257069233630335852102431161118232900694364998270321760372270717444470762588625274609705851918200523175448145307429419806557207555609862596932739870189409282200384431018845268234494172992279564573023000282795877786451111730185404426172318869228093182397758091023990790955579888034837390134169022706804012593233880079551848106961567683383124510198340936055318401402903144662714220462207727969267200453910292978472927221243437063185293030052555588625821517060728296190103834666415661176155730591718126494169668367323997650210297797052472408862378055153978586739331458567494524955896369846812643851670687356398073817516315022450698263024445530309298124087525769601941898674590032854432028714230475086549067567854283571686538346738165017250202027442392234947377017184147570902623788683307394777462067695016754169469207125861092297584308992378760486773461714316231619069446152935246899566102924152276271483194681421929855585661104772846516991225646684921954048081442139832121776427276042632717847899063532506075168018519847073994479283517866848461731926569827095358909901341755198211280736578977290175349066309325088322569691760992734563024529423479644403076982077441837674722727399171506520610288736200693223585144463774452457014691146033542362269995411988651017871096698819212612741618172068964120899888188474424841599244299653465482816127735576211060188230998219183890604101168709723382987986102952154800687986830469614573455858132882632399208804125985921544240919655867544801276418735374785713308128992960049797239194651484011558925660354169762016106892014299822819636656015711581577317680478148462852633248767961078796764799485791552462373963743670411314788640731012228327785633530161413665706108193387713775794409337857761836940343797568609341265546594472246297943670939344134115053170813249768359277345182781913578775536608423601063539915325439621252821289447258934159877255118960578309242398805091272594581255147475848119310787966570711395599457107038794789170837472669611368457322900644681865848046275519206692900174972025657862015919719398956831319001055531209817145901646295093178748227423384478082887726902676200119943233671957140655745350443053517647428875512899131979223582754921977965489728825146309965646263615130123591569359795769189338263334886838643899794916223611695041423188343979267855619040399251044694241389010669432413611903305321644651727093389120090701969494615028393470165542881661126245471677003001955227106825833913306110805493035852131509087139608540056514610427280269975723245082085994411166936466662237120010379657644034409941580622439477099190092856146157470415969893813041246171633577421814586929239345116556799863603613315317713106652977079080823112044212260077748811986401776636800372113847662080888264627046964755610939416163812072712107006847436476004433690216735412654574810320270166604103133159996846992140057821242529506203065107158832239081748957670910218453245256001199067940427967441028288205612269899351180748753806361223624713106726600835834840089220182584145577772074162340181945370780028737713348357450702867730734955359509394925115621964018634922966516519840066539099378186669422166505759499780530343413801862026685151718347796518125081726765859639319660617863550696924449157946549267210442733323055002620772796368829718536472461016694991887220414547461368650726713157569586408476615994082567972548511687055761374838547064875251490023825169868832433476714848381573854239937600980315725856161438121480687771013266405976912507538403643441327519796637746336078777272896242271373715611113891935018984313583146707839322504244000029535493662154425345649554580104274427245322317749655329262147788851864881624572172392578998093330724226038155512600071039137150490215872907413511048563478651573882781054266217317360885809246624479723324230156442074036170303644849962191224100199791253501531547380512453596366198208048546273904605560219395044770638862792097198424247740174145852965781400854931991133788134480494084134689211861744998566903993484184334195288060826037340958166906232593394597341304470717913642735601397295635081694527659184518525930504810553058171276529695030101755353137722087623690973057583373579960753184669755785831921158800962456946721022461419884042525031715264272120044432396433234396400819133447289304578433776323144629662462773201628071912430404628771074920522490586674483967447996151406535850321801387990274718940373388605528276916106768462771130735241498143865816746110308028079528948598183363839916450959910345712279423448380605755657709496642223152809203079097334851285194364553777914595018282293902886707275866158203634405547444982779615173047211845965702317556408959220504214087346448211504129739817561844593337154969889534376885443744938154633759262742884897129212227852368779961896333063505895886830712945757824495870422960796539304428129054460321490820361111149744160496720101789071342431083389616694576879450955982244532295028208528508892633575602842709377254190020642188268217362659965263486825843913422009504539888801296450077583103249037264368514112600133598115650363604263953416657688450537778903302866392850616778044970240044691533361103156238330582390658220605720166289128347065933515916346536538714845598052302960162432404112296137077033591619079085489397777033822261653593251829329251470169778412543070398955043607663550227408775283219935926526825543371089730738125816790033575338408306349028682462475221587087642762435471882497500657144018807938617943317713246860996041621889204099759364387684165958286883067934687029846329028917233323188862444963460745559058349776752885157105094557904479348470417422160280754490617010766767024003843916763734983633094000447596246051646576076629549564032894710597834845119421173552622066783104307813947557596724673075860745252747716990884815420130758045733662026302488842230809407236976186433834751691909095352491243867897732366526041679678718652332379085634143156625045283263438531680398300773269813080028469619966435002005192356265996865310426057302777780489565893764673925095505474663646687040282091121696236297292447148080662937031761680459835358420421951132197291520853914636006128559284015934421689621492900469380686679244354323948205742342860187549008056967260328975526136878570091550819798356266706974348599816369773960911707961486844428154065296534080812435399603040373959515513038130771999009409253240987071278374554500766681240017612351761602483807335543290204867299803772059362393839674506557732266865610858314904309977758479766445405631962109015421261468308820515303303046428634481945595538469962230820138246838719908066861632211120169968731973701473099920289452048105994038395437604186689360073534373586164474065051146860887906364661229557415766032762469612285126412679580504714725049940333284418483100781378657326777554153125887017107865043122033281219481026084495594949724537023690573226628444967476605233188666957976254394700971560463322360804065061836066865654234403054137102010438820733861639270535834960708670062729797810624203328754660083548849627849099028910683397107946084797266172633147703790288102236423372317996632541549582387839450693030478480591607530909129741844950007608646223590304515542600341211259367164621907458779399071576278973070362461359187713182858658750879028864497927283347616452422616709811932917012888236366768300928520251522794029311266067137373822715637399165112400719574458816250280928356753562641032663897968982359671606086349917864145475812933214076814854277901464727143162398946555579644856450494914248360403373750275786015822248761788767657054340735976935979718435665477199189296571720659001705816941757481321496592014492426090896250837571769956325538047787305830912930569309813915103856840305787787388865969749652368230883066148328985683197485081643764728309999239891989298594316885288078472396843084706214769155878532079120194616840266564066316094482807662752492608765772200989839303077434039906850575808313355728959962006443082188553726529767083215559639916072607286633259211616487113594425926154621583647537322390384923230532423033465494054760996668182828195048883143408392838403505895574563619148731807143628397220827270243695840583267967523228807539809089697136209761919876171099520082670553351574803660930738211797292543918988178379301240537518667231420818577294259091632530695182006453666929375118649998213077496253292625053638206460675796760585039511261896080194008249309527318342848666894769898979884636315240949952532924517281379738232602482205703976106307586572389862309826224975269959145562000061461725596024211195965861410392404538539458906115179097330797581870497789748763516115856490978165691270097407977533610749565902137270622585725140168061781993842734433448426896004087091664328435864447197011398919225014304504281128846027532081938017382970082454818996452408412105664040742786328857818625873306406553738333967368480223193996154885802584771575925849852116232341839152698254391589918892033931585550586716254776118593100886032761871397402543161383514369765736871406116250010664257040461431790968064510397924983553250640503312312340443175542980078490979948266729539553597880492305034704356393658522918257000539269393485747077484617132515693699717390677797384683057921155945792221756021884225595230398551429278504630574760177932779723439342455586111088526962138779144722348082225990307020645822124570419863834753984677699228225565686243472234020700785266835950711566309474389861709814337536114675611430342046910559941548279766464995357860561182847769807666324225214371044091037564710097211205465521267461494148923136969337570150430098377700493208250597716724950628658922658855986449068963068002789885295853277995927266099337964087754838905176926041998904988237140293436044029742772152937863135099348315995353354956750594421824511212751791634526354995188385743403966747338860338433119876376540541032901147109768808250911900692627994603072419080387378410256328055972889003528023365183019969475430105201084593501780457577816748031121229946996184547615748936588335415654421109950992644724227188149283251274366627543926545006975124078742419642559689635514840067869881354197194211883822201730261817637457804286309921632314148436320467678101605962553530328843211475811569784139999692735987170492468011837420475662569517819399475062563465197756181157867896581758900914785014282882459738363127641570821577391308484350764309723155123286688875382918721688266590807197976877150077991610628644336227491826287409096986828680471612088636108128202004301311657070771451886242859745803485622213425863215567312348659998876232682461293488689889998151388592606717480990167357603099304019172013467742106308571384153083163760952140542986309556702793395978543528869835110989793227143774081308438567878156241543734624120088935361795071040585341567837852244819694250559986209117963290548105618400555643408145729900758862153698762651244190198262529398298790988880434731542774362172928675695732461050662901465108525540835374781573894423664135332482803714113254228345876120421830528845369498958506798679735622897100866489476561545173238199392777903705084603764560080544621815889215879139372462211849254199742273322073906801868253025889911916948891934021675601306115027859171750336165169334374942403035349222136477037112479501111039791509987340405928348956983777059029473438783011756474325207748170528402618278073929181165187480411403192548339155928498002258383794737006199778702131978651501206351544018342522616066204597965503115099261877214996046887697432510119939730596828880827310887438301824447381187979396610210475070349481801938624046210540074821790164839441087489082454044664319705695836392479081480538683663033160144410311133853403193993645175463666840541168583554580621442659817900883892994938431498012842623327771895802911653236649940414288700103397749443959258536746167829446185893573864033124900890112143046373602377656613893197382145409485294856734626748026766397422193377198259628792854361846667237254765546372752888594701641735632565882190724397267857879351903800320538239671938087783395353047850394548864082061463342628234701379256427606060598317754179274281833210650485380810680923196478256119404581418464709708306185790950965458207651255106330929094763777739114270263160871546751487424725009815780778077372758260302004318330216283042883782553498828591092551421327786471029079324034612219862875275425299716423109266309648526429356086762475923082365725276506663940039461378539857729572538228977649350425611199773947331036275247100142185786039888571609439383364109743423670481706198526437584994141741015960134224779878850357264320426037002476304206580408967504616939703147173872251540082679483319221239604897164643154510021337845516588912200415881566949812224528680859427553999091937987156298018345139936615938775138400524942422588124312754615644756183572806665157846919087429758652810853214903893951992718229536043979527163131578162057444427222918765099061097738840599965704910766549016334981941801328022467942702294099914351739135994925213841309951821516756142578567995103883457382972826387347333560691184590317736346017285164905202657582560016923470923811599336296638672425449770917111451579708857457240936831420752146308262921245302664930465310494429720021748654413214459213610954439494549332528744996428427306463441894405340764282353477326351702513685465894828896558034786999368396795253874529352622559839499449345680179996283999065352260674164803690890195501073071393380579426786960767166149028836992604716683204277327071062052774845309808188213231015872832140477663325159138704417660676451760812708733280388597147404430398347843728188477127631766200162482428784370611031626318609715054362849510427336719254755694313598437527413427818998678228107359923053076790243461582225642729123990771253070584470878849403639923723148614711067139305632710541770751269655955363473202211767875946020733888304057455013008086769853879088424140950278010177860686031710059354863548842875528903994165097173196928926901829877762670429619718061039738715150203989278150680563904619161839736840581828801690302528161596975757050931844743318125898072273251737815461327094601373046314616304803671072946971323685265111006274624308271305534826218256604348032478760922443883592815723550327920658259316888843080914877389659499969288767050329716708931935496620337548361624873522192922914856259419706206245152241428346098204648333864077322121064082895055979440246359320425665802060892452664810646565569129054584545459814672275819149044891671635321833825021546251650912015530143135015025083782604596302435843905324549306513038629053462017233313339197747092932144009015561479643026347010043561898069658172796450893143148122637360270587476278485821531425941214545762992837507952205959278731364525449279798713099038988184796707356982670637648115206063469621602894689257666200370814614708113216296625165836666050958776607874808876318450338681754935091723669145597503658231881428512892221563913047934732318886069552614029850781769472364487063006398591305901053107681217756342209589559189722449899425286595869157261783917132322495928084084270008125250346819104659840359225316301441178250273344010966823182557854314087330011223336361952722894878849657305389539853716470561527437707173655421582350348343689481775259303761000494462587249978243734455434288405903719873013528816717967303015648794915394308700590871126936144428354485810491500972027484717330653463683622386198361618262275020399413583893669511246303556241119811009640645690640699074986960871240955636072208215796554823472509429138887590247279637211689386802885546113683347082211066530434326576277039312292394744565062968573828031525701433070403563828607225291172983163592723869948824029773172876880739178304636855337213438555113045799107430489668041533666933084569855519864704585861237558310202932917415590580974507701340306386214027773345629580239041250326304624310035279112641086918170088189756063570565309098122976055482240651101603747374319970974778259563993699544169978541059442291612317793882736299008822523582834895244670601979866056701806733781508438234446969498168026284058934258747158483599119855803280086657042116261380305964893247632695205628957453307696678021612417492891113156486866240944572929253803081955919146457950030653082509816588030735117150369796175098037452872375479793987426565100109516371715754535460144813093587402525900184304638048513240000730259405207176210946259402020836893909752705547985474218151408198941463046652862719753767189408026005401235185433340583820690288077638493628757125974611420088090771694975403683130289474264089510699713122973817290908261431749468797562766187441128633851855024344279459572148450960823652712228269196487859121338305856855493682034547376297721978059262083803332266323511536723683951407281522369446779035750847468415375721166550780833244110024011283699046317751107805171250669023879447090383891887220667313584253685524012474127657349607274989386984630690989490928682733775756846821752625587780465639922574992120600863550563857573666647787197108404680675892630765790478820426599086386669864519616792255929132977920995901771123422982955963984481659109350102808790356889635910678092662207083360659627732149625551452333249669709573792208946603624398651420290127080853534665212899827817900113752496418116108780769749495227688761538210508094105888541578022986883398661950565542242738941755206914622683445590387630697093256424381583186700384455080182359833122016170526450862058392495818746408804983269896505778333951583346349252654780034773467821642060629766684618140802704495440832884415562867459228773545323546568578150216637999940120984779115553155365604358529732040478298778697935466562392559292763606095026661177203082750014649609788197991981418703534102724223214052685079676627381547225097072052394301139428089492288968234048248074851575943772277993041508069591867490019297067602060030196535726239842292796296145761581326530116558948404750110834192938382619152855575915599977257965777047702122915250562898435872969076066884973387805502005149867420719905409848793559901087526323365835238683507117438471830760411918997731427670762155971844801261935060970984388654722136920652686103174158911862825864261550878414635626637321531045218040636235315443788174431808337022699472940064859046111586395349025970968653813875098057824617309361543314678710287646332217410081123988788853036492995813346536579706435986853468676876117578239473851270979862099169675799497579968297295093639797157645732625547973619084671215796872546845497546584201437447255235337391425556639755879256220938296647320803996909972138423343828440935846409315871512646478448313185408663404277799336984547161332328388001713017246625694530420141465791541835276637518542895394404386772754921702786438173259385242374609393788043294871195311996576392280672909751084199625998593469064117364684596965443502683167319577270798185749541142752828908166983080291375659177800907438966503099862685565300257399815127733136563712237888467986010795317309044926834694803537191728398071393310391870215496912026929261545313046376547151641369691270428803746059579240138068939058523677017825100449942594573314318287782342093183437805420877576105941496375017111093550036930800057468682963126247734061527242908689335887399198227844169934557101185281229044935808114642676153331011129360644883363673695826269778103450235403043825696418723961139581877619598389944264291109358882973219050145537042288521377986138671002001542717983113267139413824374714704025892300949894032849319582524327758235360475040989290740823984757039586474772227986496073431251393426623375768905215836253346369798729509621121056728176749595812358823259604659340635047701161334021019552372449709777860054989150267639937085847063701337540290558577702412811253869824042602308566189299969245900966785634705110524799690604111908727808885715086544440446884895505666309943403654936906014652092318460037602558944754732042541298842966653984361267939136039008816224808002791513917707234807185714698879833531978442522257026262924743419060644449240028689936911052332437725951105509152190667316040148918727914947437157985962568343857295373321901548170651876790315522332479587835907359034896593293242462880348078222109899723336279818599748906009740242976806627953365244355820748971518861210125116695444667258467456835102208584061695905641676343108040139683479848743848901510611726522259942212471734611591837243450956716322277902168430943387320567033311327785747104019294121811677548110721043687649546681595450372816336813476094413165378519536078519697963602150628544208995883291762301654436783411847148213304700319195214189848437290828691008393321437400178259773704365152866221606991233575120961206731987414530640250685136748768505426074598635170450640142121020696527769081264108717217484754571959660262130807396505400227678776566295607737349832284753599037006913930295455613289501187499927684077438272545830054655893599448591342513961111202477441176127642764053752095640675492872846997675721655906496658914460302772015820896516387251288204935717422396749640792555924776392318686406406528768817717031443006021733476393392035552813465793546025077195266631547218610090464774546674484730559498494273040667665116103288335531533282952072946428180347100112160966499946410953825773285894540431365241689739764786986387571431550724799013406095906726461005813044026585708296406576244332966935963466141561166387196713312526973969144792550112236730933617069911612993045781794696478753724515457511457375053343835798266173035359287053441810289839919552320247348678912837462086240762828713763324594539339105449906774120097161077965129267818875677805507884652184133356423252531003271063036241745610745744400223971705749679091645594085217711018786181634069655387064031699409356414379252713067361041957343829902336202206623941234393063793444387807278543891889756976370303093345795130906781744123108363304869538609763068245662574445525099846736528802033137119890148683987081598645287073617058804832772836323322100772273506321354683455443627500909803546938944398731132868772086776473629303959352031733145577882725465700381754817435821443407851145935830870550449292008742082247402420581216086779825986514893432055222033816856599693381948924069587009695634859316939671010741004992447220300020133544803860403603456479780296558792865969000920393794662624019852015107169883210058365477608613029133034633893188666586087976894586910812979214369571756777967673480774985577994442643453316052603658938318999460775703133409414683161506222557472493024117957955635170040665492412201180172617683843158350155158920591919073863194979203057058401087928865960372938648955520534980576202508188730543489157784231745014801200385495447446668269878028389291575871448982870938480883428778467742368590186922795372903056817732042069269458593688457450139687254268267903546649200757543419069903358951583151194790272563309312894193210531000779192732890715912684343649004624927886336465337698163765366131854255620595748578988237620109081586788410899402007389527874666140128172594027517868081987854833644649870380191179837286601109183881260666942025651971261880247301768638691351372111165224096581428545999736753109825303123938778215488880521648056069955497474496289253230957149547585886759007424641292020216555872690175643250758963149233602917292787716760851914019307822293474114957555023355323572178775308315344008595575329864453544586563008332716509638696647997329311096951254327368984684543766794509469568391654627261102088663594111398313890233032843500119088258326557375538069374623265712903006498377970257024433320234794805857039907906898812455100848493217381838618275821479953088603219612155340138319595550551387125036413403408169178356859793167027789579741002507449091826766155525778655882204472798883633882696260641538407011598536745066131988362548142885355761459224702926609209440140976968970558979295286700768455955134398166844516828266506064739608362297655101608889852059908105400017751077769180497962772740501791943000645360555951778898692080667887601249039699721806340074308066731562921706831538929898796732703340387614726147292162940186199277251144519962094707838556371179582152031152761241346845786876699929049009041665820649910982122361518939870816856774406968917472288058823674459848108620539718293018715858544071345285677946037928803316963399302627900763664141678854986266031957437093284825483403416363043696380396937219840416708246441512045061474565694367636575934514869255423248079282244568115946939178371044068497059030206972366176075208881649310862876197399957256309167345140568310711396090988579954653497152647167988059704277124074569976736876790079529258554626835730770192292730443535929330460763197281032708366000007132002489470257095912158337535649314180315829981289676720940078725935473184142291726113425890962260433368775272060758918595911606521601978177348481452068686210754777805899705211130849299884962360096547448531403106644135031499120427623330547111142259466944653870489697372322705797155123530834409403613652653037435398714091508922900422392033378028240048085457559413793954210066105552189366993229264510703752486046678058140392483429319272865498899703325081642726073206738288836434562271631917556186489992236435501432708090313361794496563970991691794466792567044386907097843479013808214832308750768885439003653035435845550195865185328097094676527713641983808981236158629079444315629598482853709731877121930099181792793426959716498447925550486157693973670725544422641580668185418549966556934331418975124038972218204409006176100867854999321442936704895160240714103769010263893735151473648711497021735357709875794477135983293587689011363845229678614627900114641090959983331876446995690795802112643485755663066401519951741909116024094180592473573738864478942562625290524452976794570458793516260127288602727462312182420775754163741780228115703654553623205885446403029208129069854205770806063524844742246706275995345425120139303504697567073148024466434051890854130859686354191808193266200687041179013358139016262823799759918217622413197695871776681264425417828552762034539985057902846022422381371331641061055214477634349242833607172012719126333960392513007579445721935939685567605433722334551534470070704136812765679558109877800425140177912752364584650541575711612593638472880752537665027371343502374372419061561737045218255374418647689632798177780093064607328525805499143640821588186187573193764789839217931143527794579439567564529568788187276395972509143936764264964635265189101062420826913313794559295902496001659994092785136909649585284558370981311773441851177305787692939657499340094156292784462242153950340240060485159235925759486158868016427269777753390957537046865225835137526856315407581750064729264256814300258033120669015300323075216369415009776391312099270219376323341197481262902047579616082453273904441895888616998430948099542242307581944662122446398474216703640270003849969029606220134063282916254962785041127326505681618136569885402863765756404458184979151400385836672332176200934084334964601780056321769798553051246380221987727214696850021282783271010392421569290411960936960267478358137590248403756052245041768285649741372072579350874296708044515264412439499074085616240144932099822863112761701438054447885773789701172415019919340626038705519294576858227849192563804145737970076999025223997918485983627027689895201742530079927538565728755702851763021583752094567961384267785357135260571170406964514337526982786090741969289721099247928000292918771036041649641499848149442127996104095499962859952843669530322469920862567242087589446572208249160278290236563698884289076452758888279758663017074357891891551992684264766082028435710094110127771395665634357703660665053148326737184717634472195379201617281067552163274644693915403392597142117396358213783248701681171211089139485708364202442349131290657719618100728753956591174372843038508583364026170591404497936789781106839927918682728600971066993353481828729759384830118780361119305464556142980281698570148730369277366334735007678978325143177767944520045573190772030045341886874714600560281268033486438090453183065598124305662349304675467107833192192835253775482208440463035324524025473942063086630708851920632875580241333492045426125356586380008249910404481435779304077745414999181466967487831037391893840741377370228968746774310115253044910604854198495777121567852013190790254848497329824671022511102317274117018314498467826641528537600800160744428500212044629908217334664945220034084525364714541112293631493717866387076783097070788288721547022531843063454149818249923770996370999648485858840302049356380770948417140058440119400041637888261037246181877285761861285011305872295327696089321026377038048570624979152592201870996143314085713436180795868477975856555802939649120889696436636321473373010487580796276252846081923030178019489799388063560578827611483591980801862390300410280937718526598353104546700565797725020277261630420212503332422131240109997132879718019589052062617422881027085483077611755087804393531205427836669199443548080445787615686779396677025007510943153361377675295229446458848046899234920551911921280815070490757520344594973752014140681064804473564333196096662832766331366742770932634112241216200824546984304512606290269027699588838961689656098390805467541830061548242095285399751962606963873717136406071664094251261382129671738612015468327157808600861412351184631913259725801499480989897713890052738060917757741424943792095301564399004990203955042719171456455075653657466145871471350617909098469640785127064239361620427895194237450775112801822015377564823793760846460942001858390480103326854238413133909667991633676338170218942487437933894491185349829605774986275871646187730025222745251462003079191454852839024534887714880976144803795796178596650799106679731695162413462538637996848983013385889989835786598887728890638280814930857770658969467338307614158261453846632183267824132980584156279673047913168048851094146651756103899979117974274306246668488946276025165635713384452250677461685065166394148107382896111718575425052645826887263389847930892090728534387603560607297397236457879636927445801732249450926497464379269497061665352014382011060794681716850136707796998502641947456968771379526862965530075041648714429643326314327079743755986346874470029875777904873474805356663958383118963496585148559695383073431812520844310184365045534999631207085660170938608390283460501489942015266903346051236048880226152396407339974782864269699461259261248997433484076951313161212342784855740835521469639592595826885826528971396413118798748249733893352731065423025472658515649806431760422667998208956070664991836607839583428122300178878625174218064037141635607502070853891333552767943084708229823867358801487941779777656215726786094641933833725271868543286383138088077603900818790939649457330130497549403893072516084886727273442731713901464180030066619406988865969131652255146552302160453826311053583555971387613614957089902133652424754085462564323814284572810409871755678837216349292592819148179437574299196822328751509718235923232239034254749780217941249513708365593000577858978608124080812800321627958329350069248258644604417655762569416213554512153578402651217648277263803939289528312479773673790537680490100058053537475610203177239584190674228808723857098407657276928098033249713519000324033766334726782737629742768844436851014706587366321841357444565431561206036232190959673795102750942706319097495314354670741632431631699814098861265575290197550749793804156854635974828227457008206348757657862528713026439192900208618003324500533016123950221678064776365136891023446041037059947973258809236204054833994014657970629605210424845544890352821421761665913481059368397234751264343690846027477170324618519337685046375843782874699388027750841798917953489704145256224039895220656332192318480080922154836404570649909081408358359270957211078255685860581119750079513606842315771628633242164992008687466042648237126735604001717076270498986126083636433013061142437533312169492368554146879795965692796589260590695643070443207562915550094863383648657920766682636558559567535965800789773489489135067909348855233655047713051279862535265703571456218012520245369285614439846066802716902387520378506493723963661752083886394812658431639506961465545465449234566233444292015725213346880909522379317757256683604364066889102760947508727238580485071898702277182474078393721415080393348380253411559458749626945521455898743340319086801911792129232360932855943769907384180050343117464252765218690082266981359922637177943611885133383378100295858143972584223201877999732767678232568169601304589850612808715041310590984982542474252675507625998749208167726815421743278150100131475868553067915776556231271697457344068621935970821609279021873440244809431822398892058440105457771315770422958169127594118988419363907492772580533800170034726603076241945951276436173828029358426507324672274729349702906877017735244182900705542733643727489302099103932879711268997690063629596674645358962334332394030803119313491855945031267016289550989529327388703362111812251255884861449586361792358729730657218663876323010441251568438978452449159116727298877086350269727300917588444599107785909441219310549290780192488277985817666257782878929702956098043802654090762470294344451366080368225017560326429570562164267382896773522637498017662310589848339240088536973127714734208895201412410242884781986777491701685340826802420412441384584039863971349875075958409464111581590480063207954684014503349983716517546541130744306980986559217956037192045769602852738836193037835177027789897682403730937477798119021908559412844195712278169393587767292654518565743137785278799559766367090850294664072053158514431028139254341947396110530060471890551945167530259932248402306298028905171391888565829067076076598390268967759252001608566062891349262867240329398161017515977754556836047603094937239507448553963518021046631706213526274965166167175155319193495052987702547173318468453036776538173532176517997474075784800777847790169342283547267105051879362593787255672208221030325447834446417605296296977565791666501888094215926406675470633575888830366089234634548581869269308809947818267030589802713297994952696691722636848563787396168188169324287948083267465520915001862281176757176635873909399088576030945453059074673558103741695290797577490781166347889408512990220520373774181023513043801699028530350152049922043932174536718902444654099904694569285928485559713317995736306815477475764117328011673537991020811978493778558327996409867219496932947619110486861827993495845868855297756152286559918134436823132813759988350636247201377824162871132315337950059025305641167829524121377271354693185855089638132571524873992153937840394023277352252677384166710246253869188161399295564015712255524990016441414273655029899451916512825989736441034880899453661929701580224162872399964371512287922054897947587462676926037670803175612836456115019880218224131213165150383500205898029963921533265584351680177165640546460351716771713611961673715479093946922827607166548157506447223250599539791788883441834938550437798201627495316902436594264405450235253509780441588861322310192559315164913830188382222811077982905639417131160885393700856046917402832380241729388882383057810398013991107055389818859931342872367286257773356331265949650282739686193309322786175066673444847752319341636449229634115161135808325385255332764308027376094393979775148496445195514344369293208440810124920872155178576713808746580949632779508494960942289349219866008206307209523458151476825266031254953589737345112924193065928212599362442203711654871494040756265744188060429833636513497637399682931177336499417228445178051968653551526840028863907689019450742677080846491294691251532584208301983653971724710060788789377742632302434431953331041649332732628216303670754824654223143853093563816717387151293847028003846186402195731606958921787410262898056672273042745719960486769130091177639929844649612049977291710106155793260381969384593439921912306223379616152603852416420456257511723377316090790154085698586589336257405225352146856016915796787367141052151738310683829949273778096904437827988454199116460040633366271391764404780282123127963693318384206061684220003842094205044613095300194807716845479760781502931424930062706892758937597437181397955919300412672602529998533891502497736975615961841312206998595068903192913748733100035759454527982973498815149152453167782405555776437201514405074002876398869125611410210252647770661929747590200153894519120460489207565423096004528730540495899463894742430815713311207305060302101867017336172831988047272954107448399614565912882345469857563930905613532156898656670528932990036474971649440545690519201561803868226241303336587091883582918953264994395460462292046122983615838380305107157258878585073893870113325326111199416993457634402164316128937895637114773986443664896645356530134704620271855257413267337506299769191970861700487734252375368503162094061729950015551537939251989049040144329861894453501301482930767766666342595323043472914625883113120295162200814164319289358740604973937526680884508679877712002741735927477016887898685029953755700463085470139996555863085140526668997629842125464843246810100385705392258475740710776193236541226854034107756002460128338658426111452797421777333571347222994292723746547633751065643047590572007441817217804656589095828323083072611731755189763995446677997241261622455360492094872527893632366767982864185265512956189093158312345240936766690945643059408780813727113695554683466919775748803115403497880164289467044045945664774038567231613485525293893195172744520677031205736090271195531252855045767512897667300473951090156491059202000839648221236151684618921035521881783953334720289856356628320017022247948616209850561117762084035206314915795724724402640166539993338451138543138163023121179897441056728161862747916436978672485404414831254485843814947335066467902925922796892609078407788586150033266913942564749474637521730878183144563926998305747890805982951826096025752145045127130955834198275254366465105075426460569371529372390775150285609465478491244483186310771944008157235116453255930330009005331672376164015217790336208237441731318041637706849526968199425632763153555733135199101249981386269427762224403059337782046339004163759529986244423713856682008177839272492117417617469074676151840773100375984523797362060981053582891669116209390324283609337707652056576363264728580607637907135289783789436071077345026753409454181883809344549784491225976765188166470511914263261734355334503716285033882938325962511127711134016847348323878714699938069415708503180379425120054338546676470894682278784016630226660275347367447176294907353763501902832150079903639518949945097959732001217127386279972219242666550683495147129344237956344751044953910121118395447769833014572148418132981480192619326142253834416774719751727703105503244330282290067151667780113543861704621814367553800453761724100311249311891758219809396653037133729872026421804699526966048640864449113597763288777135010011241003350635241335022319306684107705870009582235737470241012753122159959580811370018431545365019195975711302049403341045784288135628063729626605193550535597215439956457227730757300828225129777137765248686832871084962169105134803402187766149215942241680226924149889820432906725136583229917232953535379857329863091211966689678811165558485372595554695928321348129997714066825865843537187975166987723047802600203923328171170063403542588220814433007904697737380699370435513666300286682239823210989373461157253728073391290437733166929915189014223335789348819946193706845974663100571870016439107755957114586522721526065487466056730011678712035154516923720209777707589287090463669821754912517256577175003513077442416571209668940598472673667209242309348897304719718287767396797581559276394916736652632875955367036607916227706687182329921542093579259351858197518240476512688141907666404820571478449005249240142263542484927637862315065103405998504874237850658021472286396519116321136907420919007963651773783034808143862128796794889505658835185484268647545102517940795486721664711993112612920636451578675533964719880317944147044613467819024255850474816090417174784820589404551011787343483655566970801789278795550151339163922826274407186590153008328677490105609370134145848128517519528763551133252690487897745220340379721882978219868550676723977361176815128370629150601336947356516715136801672456743609795229764300836841778949822082351723021700942219470752873359851544518571423421994432182067804677432124118458629230928470323648038369992728012753908085506131673782063840353140921634938432383573011719604320033132233497859346779293123387158128760307069491921076169553311038156726479633605684349335329531334294716311111934875693751806734434796731147259983689813985821459380597644351613869885180018953996796517382487857624803799719287773422816194177047629919599237349406994773032083067842320827270618361136923556371459535462636845747164220849811196284795925150369048418207357525379729860993136818395503813730694858638208114255121024942228472359201438564066364971010249866806749077999439067661876246223702453742686836102960596112980014299729827382130165579439439321258625704848553899444319232527764874367671089915587899033584705448930213448339570510003687329810603665813273589185252255830737063284745713692553140687571765994341088502367550332525245915716685365459436681949253941241337979598810080330113819694851927188832367227633745085480374494320067719048891024937350404098159829140799948974516300987455683737566464821657740892108915520543358318791299029018451869963752374786344543307320999716412028271180333522218324443687622964809368417826987506116180782337589454615692735898920852567734309757543331660631109614514119024892143391238666736778378207018187781560498142645516965185965090535737827380748381505030372622397288499745951917416218739382981451705780127511675508181478254584497684026171766370330387129174364083166138522699216062407659055294023193335261072189490497136668432708321024010445565881066528706219349987882978967782376111102811619849193188206017111866214455111586899689923208476506498730563120039455285606450505910290059580939900289211711335828697542931362094868958468354236556845279979262995564547749025959794654210274362369153327359722978570602251123452827860990659680680288203420628791832687424141677523947647536069330787743411620660571688588125011219027362886414113399810000769097608550542406817543962724321318877143267402390163105368349272368118122315600063435659448431740491951152884288140435451698190148693682931950076736755923654882342173537546519311988750156643236273341871273563333762571588122383070706712628176169929679626483903782468409486608547466836001972045321881888310095014511340041733078402784130143311322700039211547391020881462106811876292047823410375051564009256179509685164040205178951231915477237086741047756352985864073664822330648558527458460216277675646676400617235581524471116320072814723629023056899321276331778277227545658507918819054056097977959284184207723564503218468293907597939463915004753891018629018559490509393018004958492362484100189685651291909520048445715578379071151863689584312722977542960865576959976708913488946933746748460225960454479243019927705492955839435049543710059482324447420130301406957751952527848311503816731702821300237081435622832023127296612248160570103085343921145363639768730543780812927601885943403664929098735782207869115185095227122695957386698186928894387676994026594769771368287271084692089871052359008418280494200107145138292087889167386133115510778938605340912792894865652295358133079440511122836973722560726013880146788773240294446773569998168188803563732280169261294316491309118248811916177244193573543798817299865703615099127637909363853353752294559448219111228207775995396084547734720670839420154911756958474727942045162792548366371253576876932938996078716134177961286003450698127028677756200490738636055776362534790546721273092534030021951223934467797357062170316482843821249136680704330336686478877819112450427009853079167638682282305508375658940090825789658256807478025242195063446849528729826634639510124186881867930629120628202062510738068630643406146783008677243947609565694294141048113260396243736637005394411955266023367697512866166792584566577944025459326920101835108396120207202045922104741186973523012899608352748920055559802059653037098990724818190341057182390782347018623638469511453930046063100695427261885804897467071584999501489087991574210302974367552092122276372857240721102158169126494418467750315478642675173465078966740484767611651378192500073655324680270842212027866621381331100406813864718133248415813910436843708787395600268559734243477887478606848860593436610329650643751434745593051672643874052240611584318510113126906636155237869716854403181355648489462736480497546776477253034425696541076185034480390100267028457838489850579164431874827629896369210408905215070751132135713478133094631949915898821122411260600412711744740374504696224478592940980317140661923009107805352023717340013856324184588972666782212695864762667627047044669643501294871532334065157372115030846448717303250567468368178922354527732469784438118527263257926428214859372273116009588402662265994688676707229888641037387912777944896002771554740472958237350132842001361504149511391990007794919944640111424401873430597912401306667817173636392494657461226014539233703652483549416765538628957676156886849508610800971337365359590606525121346973716626009612890723352607553846280410109873996552668351185023680929205374460618894810402267184940664383697973504443272362499174863940032640628018189348083379202970007544599521100441164096746916860433594889543002875952897783616586417250885067318318745303214217818229281836282650177098090322779624063799117109386326158450969240753193072685837619590060780892340270552121603609350571164142784070614348155092090530297736791496447198759981721876066769733406489461360162076775207845847252727904600601969275892232241832526512372386508420500869103402488132759347998227823597533062691836166594853851522033399971902566649761033579567431407875588225974831406550067011112505963637016151560720278130027698019242384161815606731822245276125395750104135251996013082865818593869807709585668386496098039204063815984228249370134455746826848318337812658340453802157923247745977488146962581708235016861839095233628501160357771482215884334292535116650301042377360152989105072517816416770069165686886684881886170338834166073206106485392794909660055394655323156280140180436372063809576133935801280042755531127673654364765467860419900348698134152070638678012857489025704033675972606820543183293173656821087800498200007022872040876659784542066694437552171201250799366566491756873123972490523972744682130390693206808356869666822616901782447082291985849298554409068174495841540082575691519901607071565763388430497696377470847060238241406841415781955203885608886076684484213714063264273479085448184046028641466638565072856954099603326556961320293321915184508868559620872239241366881624367489687249505489821686787571844533920330253421572197405421197967579262917958462553295248335621179754064572465709638369645779486613416603305761366508771332309745800369661878902266575707139999155774418777938763652534883727451676689062800024440574867009128599942690492570870322347386798565482737446497591547895234525757469375332247694392774770340240025720839700367258437722047608953773278664868962435154390377009510885994878244236330494835068032922777903823267608462700981127017301999554540542785059559800688850968955868353002386638448299343872792538943706835333162489397382328902479327474048331012009161588363861091260307380186580942049424214804554132248539855332390604787800196933955126254438990611427744909368345775889998437121005554977863412755392363865003065403318313646397066285258016534154039060415345674924775983294807545249707934664177883054884038194006972453575141646940703612460246129551490229696791218122699975581194321166321207556371311293827330203054977781323972889954602818668462796427489000270867934595614710266539210485305765090968874483895192826990551304288649730134410117808133135817980598063588164344404912507678167826527091332934120740995968251119343804072478929737234428434403752572056588864853022634240076766520306445871243041616187981052915308361479275520908971918537419091314257789910196356920543073758154585668724825865588066736100884387476278863505904416082876429383180062610970666095771260642493807749884584561180739254977191662794524085145695258386664971462918468285423213504338836838823383478448019408241312243270257412880227522527579541895894435160534953024141649913379775015274031362611900292740698633389211923265569343118725978315071215048337693024281113038081167310637366656851601659110027292181211963349212945016655337268854658614939622001332584706926333929392850869569917268031936838174634531029221105839063290081583672355557141998028286243743607169065007692210438695695830446257374274133425380716772883645943872422507805670316872790938094267581841188667468572575032763790782035885959510543333327794095237221013889671079839024402055390868561545618354079245096729106410069463991034121725026444281272701322598219004296464566393690386888563000427476635409947956596243206056151337735344044341204039264377284578109787863158729903879602591896891991966245968628053762387327130894870261545478040777857251302134904622659021948519853062221385107403566679205416301164478174602516937846191243875467988564806998972802195238543292427948405007144298965494465073752477622086048457442526679759634282822771627790832474862716486428662545320513146549589901955801204610815074634947530760782310159649153374608261031775274383347894735284112742098839876027544055422287481541929478872491585473969811417989690075658944131615459757251072777734734196532166179619578873278679816468635393943253448080063118973554689700763189867541673715966169906762989124197739906417126932334795550962148553603595310173707892309453729066185768218401120639607314376522016809812702375950797504987630377429546591183988240685609955248433864967384806151040494968490250933445400411445941537076963640217632812193854933287368401616987656530383288396508558145305337468432996317558771296693425740807417944988324210164281110964399740468428421018698949865192942878550844206478266389367648792065149850413298179063090997613740464920905517204746950261994578783849241690695887736774906201549719869245231876412671172753495451467788036795837524700043067768907952702487780644117520928832521967012796045607200029072820782527375644954109471917413986225871584136066399271979494898225917800050337002262604927292018884588474178932652899203010885260510251742630651641445187641305760905174679477551592004141477561674173610126787955587414932364007853657658932669806957844244051201938681583769948683998030955077431506222437469982532148173468281572165743285321169528088909858764532578885985062454638181461360695380010441124267505028100263120598030390150655195960633626601694557342448740992339143617183240494109226257665057494035872170153479830242806779755747456629158972793459988144296022811810033761519189461286129790987180969407664041296099669931844297214013302819540020737124676789586859424874274601716126682495675786806223317246045184426766869590386544008126107255171104427105339749902743950106282100522774958864185987205141734371203120542126555231622078777243301420572251933409137930371248892696746680986326240542973769513660302271525967585886448068858087606380609652010746224413544214642017070046934163531080768925080916710308058275555313036461285258641674516644386588779307344980214883201549592741257441367466661254531199809935827812699460796949173845650905204226062040627434757026097858011509637294422923572538711190067768213412572730150164339953013850317755030480425735164106596029567785155936045717744085144111704688447717872227859801079915645991620412019500947106503857079506612670463208521892285964680307752688780627271909187555716018635803296784742192641281995798186174779597570739081201343357726062534803603126004711827487024224218034366304098401108145750790627009411414034757843074107221543814854995001282009739410015910548971817853444089192515554022957912582405202014934866623332538733507198084067021623436737458554278217620391288600535732184666367936628022792291361486151567277647165791998244686275217174496772989781691193459740128411508853985438695477969111487721191380171305789106242744221010037613929602654596227448194820837948353159093164105215268191779449166363673697247213220941787863275387656011137296077504127015736328096311663017758784652751007378462750650252383214500861975986801599368905314767718866595311667996283926029708247988375163617110018358326438958944372836473385363052294816976863950532427182100057748696051673828958918963584241442696162246603280517839924988497954762411514867759318334916658998855835003787606231740098040562371200296390237526298429824545883011167514015982578461516216130368347561117647214250240171086579885897811722457972858540809607604528048411432784979354746055795469487464040816420162708004667107479440519486140394334081556587266027849513015179556466005502910380136430001365364980887455702890938199409709251760789956357309705319575424767634024165200922407629716762113775087935360808057377761567623987473031967574019242376901394554823583198780815981169646690754847299398026379098241613678666750726403028294700055182701289116061404147733212656089295988022015533827295942096733677376746324085273638348370030968997755061549545833256411502607999475524975331799333493206056062205229129428724524626208649688176207077440512298749368360930200306500039961502622950527611902931460231664693210276029523318396823217382708385471933042619693547075139924206625800528440677057922854426764900471915316328572137921617631152451608421853583689899166319533403389500340994540328977586405495090084616244737049631982155770687889157726934753953828403027361576230296644666156614281083983709502801249490846348620180678469161431634159438929351954039817471820005454548789273295423301202834602551672256685921735569455367761304297669409336111328357487256810013547288531605856522126057515291684193468789644742187987051842278747510683414952085590214984511761609720062511999589775680736282466390455069787769109363445822132843315431701129392962150581877659813264151733937855434107321190542063155813349101206580210312522774245715458922646804264653069006516475478232807582078813753164463618547159007315093478338656284131616670437033529022336467456698777434109706484933019302901088119910776821634523103786496578453855673117867457798564616250355810147043182883114304394393188389925448437097511941540713844611471586585267357777874131478365357787802986327635489078911645058017228592070830193008125044441849565226049779320514229086391203857665775008550635074376664072752635070345111256324295778725501022256069057343445503655783817785892304046067710786974347626899039911101327580632177768792314079095496973743677252681985469921897099409975308001432820213458994570000508185094443752821491621364037672512234019518257734561348196450317248714136871788725093070970212684421153396272813683409656562935828855716355814084364868968111230865280218690333515661910580609665622781053816042417822980209984558879854954968864584407882607699961587784317634833300173350397365996595649371209918675377176504508145948525155663788717956525113052244740608454660017044679724541945502394122821172347725314890858675884864014876580841096572992247454030468944136100144546787313398933504850076458229460909292433361706222403373017444303435526417531884224811926509021635791164435422350128674460336128522391147651220461748920504452528577858407530919718494269894058347853931705150965693908982796906708814815300081648110488078222930349777724390349597390610800859955633366969947719118712512996322282609631498098692409185248537100426190825944615948234239625835718760282127877837389384389656525107801318044258001989534682173639595009691142935944864969972537254353038384599243635468468872333776819970686933491235981846143518226095396239001632610076273093423806929941390235397758338401748305589995894545393421039869115931467944277908211456575020501560452349784449393816313879166995346732676605791051395143127937728973323745845033226214199812961153542458570498594601782770542297195761388016070536598710925310907919523107688945230213037597270019005159665239454732431192071545253715011433435655834362656773086424951628685603254057912887064247379970047182241321997000486526637471388600475080331832004845076570276805413368327074398190321604847431779340495400216170169793484998148993906797540845240556295815549822189820696573376943586434297599198076260492922132078568085011110561890804672248970363007078931443976769738163174819957778490372333297829526230404400873725695322206946362304218868613497351122089202800252258916924189035503223218946260501023435077113369122488352817039819747007667773011677487561239532574996300059369869093144601478988633572428438074582742747146267957913728771890655988839320808753898407280902855597351322863342434890003523867322611083615673625310331161976135767107028569427323375211749914650327263097074063304765200009711188049982128578876062282221202465830039844532460397251948359771825352813765490288593548883991748947958717531060676959862209100631123799529936524796215875456030255344824596074463475949189311430149314333481299605852526032439868574067719329294453717379189235170983375867199531557643545900056075880660249414345836836499784048392859281969571786872615850459629561423243317657420042081164184084183559449947339566248598671055691403638431508700453990623936349836839069412537978115984420584742359244359399471180095924146501731372821294682885205448814067084922820911526610579373703891585208377097967425319096528748822092796395448023564148516982444121425970499587068954281007854215194729318644243680679264978292294600891178961623161200796065648410892892054384926723540096275146588187843584551442368126014792795295427252223435439378448675900925136903457165014053861758884169297674666335413126165245726776356932175522066356525747169527799831782521103159636887777101367261442663068060455426641701935955556614956517362091357115377898597487071923753252641178290481173938190334009425507956095287824946676817227660474665094855933884475966413087032830417536187968230846988974315625277323687833014862029686658925907445964036327748289757427891483831554773508237821865957318529746422000718817337704116284345204284512750155994184485563825444928746087137038259561991017732359475039894900902664512968123350624980251722498338910750659567714601434347393322517900061126139732008615894324868363279176302214932664967251982126302558376610887928758816129410501786261057355071352654848140560209049022185558501398026718362253755142650426198198550960725313956461919082657289035188210406066435527839268066028963854385293971496948078042360060874341986721955264921363482935718780408614765249770048352387956787254199190976782064901586404750787030599218416290197686684331079611650784180986658043461605932361882950161533647206683329910296166904561301394690504416354233585501625652147112652821141219679195183923041331885519820027761818606956691816246244167698967757413474952927908782974156352925576913837748490723106358904225803417478866204051521685418214949343740858558451102246683016624265771717520671053381998242065289672089062415195660083641524828266331990772612273942192515484633882608483289528804802463753551518232582326868513010865756184271206709234935198463847377809740939296236067062796915312543739144751860820767827922126414271756352456792301623045861367556603207980591236905429510919019770982676735943973782875339238231148659789889605334181570797430283674981132126362935469564823460108771175608647274486996322859591298319797083579698235167514110232808366457097566448783142442982356745603599336687236722596593794688859129562382842737393115668453834691684212383406142011956191305700309422184998011711228676381678474443006651375299214062666837213194338921223981807567873015782917626784009072209636725857999651364649999602407717646990650159402641215355340492134554737962072734716400310129020560171499876073536990509346299972793374949546855743413283703007207777238113700697472336108259584674879901678803481734348854633097153771474017950453424161415165333894080876729540288951593572738615548407666707734578746548601549599219910513167062552713044818385971545691379287812094735335335141255874201982736551720063828764082907591743998249670827425194899259899075020925819876560532457250579512753005282673437112093716690160474716286257502814443697811153194336219159040465671083282454952501070426211067003093524403020002517877011985666512081748868820491553644502754165566404630181015940624082139674540818844325098954173604955132712522521670299192942731334729352296027369625188364055234357784717151074544045804798720700665461441194826781146282301886196026922394807035898556175277196911188333457006628260793938598946330718854762593421984464633125063218784998701317368019395454889600386802439671587154659859810819353791097989413991619659677852578712038408762532998160137187889840498277976903529054356511164910668472991364652694425609007655775081432481740527768397892897849616076972552615601346797018723666099743521004912865289774415939426724573369695049426467664165988548925812657461163933172624073808345555867620384340302804777067250731810564543700226542674739386731911357983543935337480425527890727611253657026646576954058975439286444245840986313750210494661673014235862394225182096480471969932058592061638372660823482768518799465052091826127441294403510707485632311931113809863718483452861162344505689412653185962055931018281888051598481324067655679932942307777512198817190146008364467876467325951394654723427064687364751378142959003904275836811346830954084124059765497930626571083649698680334236534710286418135637936554726516890229165789562375174568954980550080635521584945582237561005377436751766312543631415535783874715187136852838024570470710186200137952183050687949672181129320592627752339840845881921235678959028403917518769440614025099663379956878989732989955413084969066856085229503956039732107251980845170509649098075192887204405583039627256548121599769078803310516808313401547201140972751237707140435708414681871613630946388719694411305848714380013873092441184679116536963773882647956661688070852213874515472776866991990039889401518734661827226294234285309300275342316166957691888323014094691059439712102980897238710100571583522925436655797562794824287876883854841853184190328919199768457988674277644841174076542161111601222480456772670567836084081087628411953884443671772095757498328549163477691957742961131520215681450358820933151482113552692579989225497064012222649772028031654420938618893330425366509236697208589086802595525307595073225939320172189530723967546584192351434142923528859189476591002235448921361690015015916059811321940962608301816908690650263949416846885611768367187559078289703774714884889987828324561931855131903624887540956488417877305198322900265435796936856926671701276914947586928703478362418583584694652442642562910342613097639787571659989003192972429741856085618506950549841025341602906923867432738620625064497006991940609648881232897102576634556825987462684959316726309580266557952570802184127206566892610458137698703647484629455684580137131301595603787076138266410779918965393359707543753257360757300678742973549536013772065617193213776320624943766454989587236791527595378097191467890289583526354563361360343928551787222124702584175607067249617462779200367808398671535023728579032388572536952451772990903283870799121890305217042759260531480954371802321260366021417921051870874713240760469269878905916161082828147700097335005249524335981578465639693074849643201595357339778932702144084438021287825750258736869927826362510991725668014278767063965736149753192291183215649601716171749645968714178266220625504946564201693310944511998806162726775260205876240252447122715338196237813871844269196614595411009039448140981741488297717778718026588969943848085853286237403907256290623673091113095847197064790343548573554650636203406003004146427344354132085380960406138344248802863956334505308826391215709570483973672970016241326092688893519922645303240738076369763300305482138575703475908336250551039853189793292911287885231770954613914010102721415690368370154808087166498651401189124892504747788861760516826879317136028455249487805253268196561892694272445507038689198831881324104551216741364581872430895956576808104115167248127899554780409727104357329552952312411741693778996743525355100100825882101413205409591574196272401800698786232902196039711245876335161708430733452293933572566098030052501344835024150926247305311392348836416555578005854323604365770252973722610867494581423805700972563161867041755103355473581458629345449715321182626683093654164559055902329193836262849747701085889704288748810029736959971855731773357475558040067010185885267197371630215611962529883402003090700535634394045049900787872667297510453719209539423945752744902882797741748730095284107601173313248922440486171757176861247214517029003592801596743462650151530230713499312368965925005982408469094930735738104298119430129637501861649429845385679967264215937007316882570604303786852956820704911914491586594300619718811674369938301797560583319643172295551622344431037513198097985014230625112954101998521241472157241485264866006007579930965103023560923782851439636031755709877387322167634442358638278484626564974799407512411282618367745842617448365534573965501894651237352219551872374774593810544114991926652111951418629666071373033629231300747918908994351104651422196556543008237195611972913633875434186273532485162495340648889212737676362499342924140805063831625062253712321928578682233743288332967631868347931140484938598138346461614107103329024266421630564452641837087798743552392638628564050039397770715011870780496510831193170778105560757203457825817608637289087412156188884825814538355873623276550525124523087458205636426981075427811722989106600701235440174182100699601209404372103711372724166414640424232135249554044862082101774582438277643796376100487321687392922099333214848733141902414637120838079363564968843029397579489820384886362447911147101108581285043876637662214102383137347911050436662927621062862831125470895804360332411622426443608486817819501310582198446752650747568162418564954829690729244076592344994327907336504732360034246295569880370802844829260090066002186715486325486431930678953295143840704981699797428902783569398202395857734820864192342155816795685140052810353197974680822963832218145898491292662751145807530629596251426806291037769663972286046052303884158855233607184951434406902780136674738088014120943958513210245755604487169528139356415001729869538454949999801113160121169636030595483629631633618806537184662928560182757090871712622865634653929105195870750539819906188153201387525556029484313538390144252305931285053805569524073955255385222039040960579848065727460801747310649932084816956206321261775912095989567634321792684994431006846615541880869762796454433764350755788017663618884771903573735418840003620931039562254317636243339217419701902524919099015855101888083938312256666545236523368015419586496451185111936160191576531943039875571978664043525260427432427611171042916667307841006045910278104809732745662051831659377116601271020744530026535693090107464716078444886639652336166626492315340398725289933278019422050011378297513875336771607392147816107074235238395273880305938062289547976452744959114215086824635239852538416549316044394072478995429377266297198480252080531248183682772862085950821460805572906380732922816663073696490610370017704787861439095653263385697621730118057271333748625972667528131751916881602346825221668788455449999210578363052151979394284449308067928108155621814392529035511873492646201356330727741871406897599056316395366775476345872048259997709795389761080458952668366875290274966564000141612285363495115488266432100680368461880283067926529362423913389129200945840074636257413929899809502861385452876413316910477549239847396286607295573232227934635781188663974954827443256835678105946302700733006807792834451859051398490161726385131046913089382209819356083562869412897573881628417990780662208667634181069894345978875823321920402128680673972550808282543271659067508908155526001850891629120269404421231540031130562752332213361430724136379000349051194641805381605565552212804941959123513725281782593100124365444862473107385021416976081731243062900976308107451193945407766628479347029800397121337865681498717768736419870900854205546156093170245280521085488544232388765371135303558541679548916290931443132931803845668577531439995542348090348154449408401222060060642839306628562028088692303521374065689978927087133872651781383776821622200919439931704497244735580058200243927637420446117813093830889391234436733740516917552934936692454376188389362388679666344134365326022776898200389073753124398585198091203494959096677737081220393474615875806988034997810688253233089893858541105092589043011517009295658582120002782670508776810791453455916279345518097629427193464485429514337864426754565593793950834921787980686470375435947566198266556214368930607797063701932866891313865902798137603493740181572837161704089343315747969380519077763414974616573619546413571582211694584727372455605906865969290585104717054094332744802537306520598812528582613916372731467109573586603177306368369248948861899036775431993276495167780688926600560576505937237978356846758562846324915797793632077234414763854176687308736764766497419366021410895738105661390620265782182799395396120982970472298874823653966593963648348829242198182223645587713853507573249656088157218262075889283169564063791990414766755728185858100302340136394214979089219997191334346600692465807942715070345671757583493833191608827294149652480890482788941694689160610644570587584577410309090153950881231463226925404940818077909668688859638449074904470237880169993454662470605889699270788835220006723109425123129457840111955044951656567951837999064751707244662774280199219502782059692831745479975843444512255546766943713671026313189560796744863038613912732494742520402947428122866953396116890924662470227539846852434784732070962967653681172114262338387228788738251306766229510640222601581415462944280994682271773424325875367069740373352250851324871417090403183674809053221176139106306174921280001822820410774185581889530658282924038451999588828996663364469049738889032391924165270085678001199769896000879548095601430439004413139983721307632817362092592792769673589810142463290816318888263799208201610297794630481643579013792919305946893704709804600965902551466369833542072834622964242788787649515011914879905823679284375729515108076333606713623985798766717079117173645138884574665762890315659807688936518510702682824649103099952712318898479179719970860828175884646120187753591528620616775322457101636471637613587833011531694371952269986213876718663534409075695684938811118219148505351722131805524796019473484399412672813744767211159182857943453159675988327966556888302683117543450314950920627930341863418285365286875181352189988199893530681181188366515644068874367356309146666238123106149546939231937253972030647417612523250647235783582752121234616294578266281531230862281591644127620379526447450601411680237559073210439563260748088974165393867059212667183348176398490480737574438005129024887764576809180546723315546642692836966637832650678152782844441482225714337348178250909907249345070650395183669039969823069409444669329252058266526576767083908359530101014107591508804033417417736499348257884682125985917338138341829510774977469137316706479476598404014779475537014014604002898606472874973067589208933714631750367152203080784957753865883096386391458626366662479701094523222419960158991195790468375555465248120549422908488051523513829958544181909680389568562088470126204178590425255536262244536426443987401398095618091476110320805559593561808650581133916576484480629553514935876375845284317602445629583391876291446625557722216795496478665447741295322019796732903316208324575785079131977070558221490537940093941733764566792884124353276558402582892587200448265678218879926453743987527498980896342088911600954933564750203358569849889247145068662965635033477771005741355215483956875239327221823891088225445146235377673452702161298945731818153345523262717578060901169460929022301461350624670535388247608645492357841903341483675945741578082750301324157007973408401523070472593646972654416485008356427681460772767026876548310881882740790386163186654672409471162035468788445274286672402829397479070511372200005540466090536993480078421265352276075762459246999063820873262569168956797282257918280953910527829582868020685323186968627067293018337999964922653888417926486676526225155452995824829639592473908856621393095720350187771196637535672369426945907586124258064244636803478434784975582951942810416906568439915809493144906601353987153280132624107680920762254855637935797893532999503734020743049105875573469972236889286011634707015745153120606502202357974027337531521981147445007613096722265651611558289671425652730088433779720747075915757669041157135951603711932012239966799785921555757003233287242190363928451606687463244634489196331331326756270610544878101763597888147356249272994067448121112702279171285382847393795564589773002330768121196316389615700327254769131132907102245723468466142625056777013217203717935164026427254290497610384039061936387596782362806925658607929569378671896366109380811777713051163363632308916275014386143931969703929424270430870499053646241698510845251780890012656271298153453765427634114013201479415507393377011707497701758999333053216514166425414487273416859287470258554778341268261868395720937775394943372231871389796495021687665765993677525482476271633832120429237685503499776947730948918228680566408355958608473786859384461568274588377067256592715649195703838231694977942973268919153704320887954176330364026528763765332843145097805762466086222590347090971496571491038942713841301038480382616872650576028106303412511764638490127706564543558303072283851846147092394520588638340094795107465751943008144052576814549815195936534348724580687586747305892499835759357984481264722570681288367347382583003503497382005779145792513132930024597994383270669549657013433939474468554503800361497914579065916446894271380789070881526958818245446699363611383171103420356084206503476306707336548235783733589225247958887656452927887880471388465093026991804769015400123188281143143373089257722905377006072824695259012137521588910185674888297889533167055693182298206638227764641035676988619346399262242225721221819609997168238269534043734381596644684819924933534459051235458592280136618531853003063843173503725025936384991128303917512581005121282896192200665565357149457650476065539259061839879868461030244602271287352936500068731084251224180032137110474593050702484281632636535528590796489929451915439492947995723759937311907804371405264243817435908629426782350322303393479088992285285190769845689790756873215714581449908959589265953525954374931860082162428508193199921885159214602545044530102472547188110901335634833655711284347471532353284157061835990469875373614596760827309638464544761599279198039248875798107774491879807346406805024802962792140574217750472657294223240062206216421196267284288567263233531348226421886605122712984958076860632536258574228013329173792061171122523035986698422264848899701753151724619791320981307060451695683409909015042489820667103452583318126840298282871483980870855775187821898347631443098095651883861918103988709818010295882148471885328689601042787272081711379418516550244632118865989716898188942354195311857002149287734385495486653564217767674696316613876354345256208346773992661792028809422696269042967603598736737876579557720184514991965998646342907406352178585350757309754841085746833874938032173466582767720050223440475871725940743627840145040359887446057391099257838249852425399779513109165456109893682417181009163936388150711162762781629975193036757393461498859134281347755115382145786068539848380415438423359418017186945592974873230190794142741612521086415525040068030497111576850248801976295915762147589128013594905404835482294470080935120620854621564662934698479621582176506633624958908857603933199884968499260689362104605332445045518037688872874401954394149255552426567653940816462029391261098357972210519440241947104796507829372516395722318345258287574121218346138950088707554703091387191687324529706306406118861371400399021668475159899244891004744100749757396196058571429785182013976869079281493417109048255959544671412811537975343334142840963320071230622295372396763198713576894519252873082818927434354024956577318248982712183395984182353443105970985837901109104068204169861859608885494133605204286851469628287677781331412110408176887892149225801847767052948933329331014570191529702107752534738775597963990873163458883189899909896143452542207248437553626448288635291234187814707468364725694515372876202179528055517477093277766465193493896957267391364877850729617402022751367152997941970328553003660662520262496296426152173794951761558517156698972671534507012015451416107245996259808607469197273831894150539197361296871410793500374867116055293281936682864225438192522570557447214415073918274942564447559529273087588666054499777379442266612346436195424063560123168667584733332943187005497014327782340311577391259025810603908428757142345689565783363323978656787688964635964664999696492198289512355906384943605080259783961007245397365776509797082631998143486356813752976365792774804223677451866693102181966442265870147403690175907799698340829358200486989790848716126273073051291395456084840138749397412138347883166116310343457384799102314079188743736412934358898969353377712459701180073594706432206008695615714054288054393585752359734488321272548339048195744056025198360248397404540994278083534972522163485712191653921061615411721316572026130423929346881674881661326366267014500690774086120566634030508126875203568952673345758325889005041807331600696734485750354780489579949077610006159780359435564576835059586103927155966656570816202165701175835889392048846974216000096652143991661454015619449478076281643467794032212466130455568435919377500249217952447297490977776719240855088794509765888765947804511180268180676192198493192365994826738701739232601326445623702671115215445738784393035605595912649139207097089211996931429104325968101719017346128985727408968015364334813361081789721426578976991502387188648389853478387047288175983432298459960817251478303176434904627149100664079433597273102943009261212136641701507525703238255427562629695216167481588758679187637221763008793535624815746846832570194281436160032146993327026197921946204092895776658120699151051676110792133849323473301061592291741613450869810416429441304210489287660342855279665030401258431220574298834001617269940404496637393820666108694201970839683524355725130095042433592711414522734999458555339655733237588572034410939334938418360741863669954995432843071632445754527877927296648742724190619571728235712340579316830671090185397429334362418962655585974447348189856533132434751904689965179181693104006919459120491605033551526272106130873854439234730336483798751911822814383915639306842300738805641052722502944930517762426150476838448729608095446472379912225879568482831891217500639873539865445346999022263199638092743692388971419924972358241910836473579941882617956073290979828434584472053639833655018672235425651055537424901677149473621866472942601931043794422732039808109630800526464931940000856912028078407428109437759765677378768719620381758834954140650886268318239362489241966037821245905311417331041728297240828281946595111106573887533693606080477867289559723470323822200823968547371773681714519641403790128749057986093613956362747809620104617175845712703034090334177230083179123060164348548030949754434930498161659130774583202630397113972046910075877801074753043082953279775495479293049375129175027882300737064071814342440032520005160615894278698389430343909848953501112601213846442713411617667377316188349586247852560791777691126190304140191155050967037526886905834196588642443047340252043093027507870226027682054013010180595588771421288886468762695251788322802797392233716388492945839580067465066113430188462090793857989380430102269615139582175926073508889785191379770921956813396426125674151568685742998863221825551388459302544548290172160603175741179741180983717054037645027360809503083106158828222901223401499038581223215983550167029427134011711027545102519246833822236199645819340598296126460422362061214123501000551666648675991519387551001515302516201053512616179276332133352450495222553842448750119710012749670956361238352892380660667722415042092597740550683242478306299972683126665318450298205870939201074811061687969242071030027647967002354159856044198127768646267478438744338989863116863502945139296523377223630467432850598788948442206047283039533738145633320174205735322275572948649281308584091213479857074391821404859240859700849301934719260626276826982351117689656953452858277817352179393080891754874342791795217187662271538280071090709528031373408500951678130604702830649290332649058930243771402808054335529282051498591209121939103916985113252311973457201484670041448478443894755773427311525883754451967385804849673597605842191624591026885017373320707344055368933897535968077090482324050276669223940136461192669117470491895182832112656452676398071820242586261415455972486493957928030306358356821847037178174772717705684032448241381264458850211119635306498193504060001863289993860416186616770605011852899080469938443034499846335627271780114687457078792622982867555268360486149004505575437267386325292157323635297958473091509489648619617278112920053634962789734520328103692685791813811634539951593158043581344190405985070086909294939863557824267303923469651261385250521093454274590527590143137491671318993764340756510049186382161274693687741222794797948672795911460038511373037537534463726681101016296896273412470001310339743507652446119826381522006342584874394562346635905840382921232277073603108108222443798939296801115841610248811344970116248700823555701426568209484239998190300324798129437676290935953399809373949549497664928041782054618443583383092204864403792417474220499790521282665928343140570459487498192178470681760907189413218090719971303081888270990077981303282336764169732793099595042160760796303483454203004385356705440898157012934193324087901015168696011057165470710794964071996783043345878793907394880860827687840206949468046031498796234899159233838634724623273218368719021002133263102806136723342378473189788651840895206260610330475375119737919789301234040173546803035971005992724889161299054105975835496205664184801558178558053494760663408005916097943732022788219732017523762437275151750389517507455433585276176760374176262332357001270840570850921127459712985601836942884910993122542494132298555271541155442028613340985796153427611579613120350683976040436794405332205648649783950081759795964890921250773001890972253324534692337810288697440076806695808354230092585990523901677981035712849749803257047986174901146639593337083146061429326805006881480069098521679630093812991054874722812846286133947976609252686689083103546740148967168802421172870210958009246664636810095266666435480039209493167510930736761242853949939536903741777702976070259179813501905606602933289119326148108201819784675917789371666759612455688236888394243404601577397240368820760782268037298826755376479656814575281805749754253557253820191782922793970541382556370530752572219829106330770681789748699082409111239276650284501622310666619412416923037441171153278712927802887264392316311528519181797473161980164266919422368069352679249786106118721924566475656200855284725386308324477585507076386792555699962480581544481557327577971238823194242891797397710995185102690203292620783306594532385951729363390554223674691464476307416179090164154767687079328686275666986577906188318154624211325055200422229760469789946334437771415696930072513673747629476992093392723632284367750785414092693617061944482085124110535620379774073594188652425220133727624600882472861451179421647173277260633856625037508531350815133847778368757076430208397659164427867018744836269232244869595369487793825370806195618278067659756038183894509548659125613362717854779054283694278305981452754853178277427724457325238382075162841199569481381574648486502618610936915550980681147276514712347664251129228687749249427056727312225828500750604448144786969463295399534476174555372041745806136447017400022851132427411614762290444639122193030245723545942819641442707053394470543666463886131106827771149736901427838075138476615641733555528226229415401208543725461329908265868013341104739012756919153045692569513278279943730794910153992972666364735935545618337035247335104635283340759361670794821965523061224869154716710707037001309869857841175330550200279143030020553776763174508299918287743793069021120774478890040185054570077443727750935396812214105403424797072220041864325006597429230893358477380041167757765274506753957520693464077991891558073950505097691765567312350159211041774204543319294455607530188587519677179735398994700605380819161911064572310287692103875790076977331877645296853665301109072580752579829496347215957085456769440544064446481826902555272894998927912835525144722695548796150194400197851635399566869127573594361524491153656243990483230949727133272016138202456742384738456345038058894647708245730368923572569661041818759674782869347333138867314741836733746879553968900340050712251500602385956834397491482781034635564787188311110498595574202021443546280464112443176594810879056640159594578351864681202581016660342499774794653172920245019694914478017313771702170234521549265364720463544577032340288878340079109928350305315502425881536364897586639570758702034606664587033990487757066977278914235975919761730081736730756522540257720672921898924319377399535795695536081368943966497188854652951641552412080765266450415985655616431224547005510858225150323051461822949261615565878256445961827531103084936696680965996732118437574106672000806691964663044653365563770234912438116690440169147022340002650027066398034072739807917238546428868220755280564016498527052523530236092494250150925804745211991884329828608721780055305073312350351681103273627910529159849198617331448971370917689755936391328882345806366986569622153701151751536476826659933004367817763152400468189015009161451671515198706137001028017375215522414171088467006061379839951449027729595654282305483938190174911329059575432748390221480274205067325942744935374842025896027502704402970591915856624914275338774878369412623691639613488054011944689541049607828623810242151182489243955273056758529832122409410982283813560587809237461698588364496331147872373774701818365783455216106767147218046804077260615918544115082354575403430749255611643469419880267917714724327380926541086687715406233621244343902118083084581137143838224465806668949303388321963183520495256080836188984297798660858791270396438396226972851936859939566479689079740015882783736150849417340187443754414554719529139053424280816711723757668491306027130843284480177879859878893389863675954724255917262039407308511313346705459928903148947993414977351040185722844666105243990149155892206960462011364404853158732191766186117438047581017344793365321652294081782611575699298912754397575738397383833253123254954106716872153973615442335047584847764591552302602598567464501657389284842830553061884187867944192862062843180323559066161205798556051051036186345265672560389750087651303071749469791553519685607817341150110040854516237951207708887178985357232872585884545402043802708308837416606122761399498590291487220490870750649947034775397139373176753809182512834674711185439087673150253544881479742380324146038533208550340752367260805022277357519745733158853448563850761901866939573835198567161723864258955495801903510753861397455786135939721824238108198624697308189904903814739555583059694399229071196670041418253708335755468785525922716968764233120214212674838973176085681479687394724438013622277051727731321958984372670146580396700646752117235639538349938046848457187621685087906980186585760028133465844841390987548902020503094291597706308006470194134457980692227805818108606526264363281338971878148629310477412147930963340275198496956753631353045132552207846608654053315903577877555414766939977267492650950328980548773886683818226053624967182708547592958060729185064362111672776996581953582329544685295798050423741052381974461708081945078069447392668346929456795906710823968251315385628596408911396201592828625087729755088989129841351085963625559288075969958408500421224363572119777457027217256856431943594182654688092863176664343817015151864668860764234999489510877718973651845050931491445933134062071615257888123050170472603708554592267852832891796329401186518294175474849519641673193838808286143300618892073972896578849713501174584310096919151439786300725243571862842318454689959691554974525063661560946491489587906776950702472071480643324976437181912922587966105648285972764501162313127623676151092598011964780363425378238804134495717363643633777398873097040391712217175201640095331669924568837875626697067468957000871801757739386054108064114787730071030781935819029391226255104024285668674125132116775840277933985740217118671884682313964818622085883821248656661181619176336883591572095256006358866645180952586720235640971652193599690154837790354973197857426136656387913093411503123374632972722672112768746327168981219220063050713934664242420497615071269650961153832369422254394929399166696103193841432377548158223330034199489803410726567676662052102093316594408016919769491921928440928845191711288014955564127720241196459126624231364101129616990821935672494843581937827666236858609829543493604192809049488783092009882931529381926869432815940473438907090200025812285966890801316127841738965898689218717391977326351782850949360132382295554951255011365740580204116850944569023445453248858478421517887650414266299874054418188624720905240516337464293753832947231103589592608033937000068955947189669056309047920171667537411542065160771962920310176889870951328819217299891189958101297860746688015036392171746122882059350124606420517426609099726768475540238779395021794082087438312383876501189073797057541675483535272964195023366181038540438357738931116459073384814991929004655136190568367037192903086717022961630340986188368744107986475203328885126911826731627150543233253489136952334481398909014224470581708668715253778709837106816340957334648458341971732961968136512218154567432926964527323954192049799295561497997023334819797981458746778812332682805530453824490130158097959247189548756155322897370665657143005005699234742604159545943541960986664953005767451751271088937516327877348724250316010423631935764276917870225377628053870646883084856732472464909039073710836325032267638407901989742360091242943512708867088789267728926063285515015831610709544329277655369198576124688342023988928335839917810169481454525305319323410609732813705745330990111527505183117773813964389319267468680109696065813858709352408255929419500415230743246804356515673456196330909800722057466841418753564899040549065619163024006782215347470068764912251746045801319440709144985484636196429277024318673891035392345184620149698509784429958052331814276626822994982229356271340955016451709217280863563430053473142613435044421213967081665807556894504127756433217237807275059859443039464702397701553713273902265823818163337749906853208406240407322934849715345011392455720495696342835466141067758343046570569446489510131992389888813981352243637020770665399014983907687007963773192212267230623545561611635502294388801379421620614214603524868421314721105542259459316300388521340320235878796347535629607451778068794175411161396761169612801389970749433155219962209760074071723217353801908381667669198340095571479172684149225523247768325670987484464051937356544259022936300384181572762253210581224868197271586422595876424306058757751854430424359773637067185553648403379848088019798400220373557677259439929093292423211939329876905383143716741483334520151909487063643021813383661033497006451409541953093028799325150362910030348264175173351677168410605497494856232424322610766418059772601217625433474834648606843372698578037182636037151064686326627183337229367908009184741458092394355950987522676900767835105505180017508193334403394237552905789270473743779269616507287773876141191152288174065802337059768990373468005676661157739404309832416013333452972585853306379408690138407205617250126831164473248628294180190336097685884381763865156906737864153939220177381655303700506799857363371121989336048044002134272162699651911626912649529079575181974050345860458091952712452436850547393944270014567650643743362847159862363628219422123587990661230258226463497086172088164823877831605880110354734821284941837461241737673257152643074679460794714249500094588858961007398148860689189125451242664049973498906931063069197367345513705324828320877288375910692508869229362548295652268351858983741996652226358272807833699976789709980438386203270168165407488996549009085792015190960855727990325506217022656415505284205145495464816096619057259769702357526477391524044815278412473794522572257438518523553798906359234424475364481210820532220662944315855049076461451856076384489046585633571445335085554132422690768960023273347114002274633204549742644916836411515151899531948816112949310524947587932715212350997404796068430760018788939511396874471895757567956225138761382151103403727684390807293968876281438959540787892250355501217362988960735164772079355108360585005943100866314236837135527032335904067066373679548347103092747868456187746304536699658065149705898407229929707247614657329936575082043903137793184561365404589727635785277535270008129501941034010932408326376583735260782915807233422478442800029979480439086126750617969113463795903351102246582859188809973196841190899379649402621956352052730856079958432348404489762300669566539813742787713890614384848123372578024569819149852250169825287431485398478776845837472537850536168277644979149120872826605642880309008835259459012183918601366298724623700916141234250788658257606471705298588516746431682202022077011378366009173603399266973101920680287221158415671036318015149003749621019797410478092390893123955326435340871653311021745405563771097689844844005075292765524975925800007427185862504089610172176220572881579530838025218439099268365275877841682003674236526368329969911083778777963348625647233651943703479532023762796997804311978775631822405892690003513972195382446205895365662798632219036899555066311399721312338754397080946439982872625284472158869617694785374726446676327512367224715318436561426984627530354552308718711727382093112228581172540743291729998107409838604824173156920490223713745503204990031571821452412964649804926764695715362397044415054645339807607684862286188177451548349962190679723831662121165916409316908826354783583198885563051447447594867121534432415212973779682982817587739927122977726247445424517780262715997522402808022187909035609482289944003721782436181697062475578582817958799978814922416978040455514110311580904624355106887867470220324910165931734730495717661387200221365600464398921070954895374790505981309915081067709638247867682988342745155099715411423830161558897581659840170465605020759899106290170043733337964120659966227210457182682342790514630089365422609447428502603409833170857114296382760783776376588693520987766829258070772368473767368496317174396945195253521906691350025710955612731645871493387806289302927419852928491414203283566971338667491642614323845677810437642003152795058517585000379462104545021977795756632745858489487971855858416263517024203862710595056800943904940675232135256598586849109220682241709795164631996355098788222457998444311175192843257520608884171596633183421530308882067943597019500080660823609594819709951142856875419945835958235194069727273973484927950838786666021950079856838962476810735407720955637034013577497842477019648374330823303164850230361425842208708950788830505790969869232891742062330486385961214730201978724688663832199366251714249638427870168054598510377103013551580195339131419612622171607936956459124981173109037434861665389579540286220330472309583571328485410299777443157154944403022789259689362476274234377460650089883154924087434945449745993229679662030043901990045706876749711123428164133182256482267350592017052269671481194683474903692311904795544858229581391352324852488912453596498566471989995213656010875100323697766595738128806592566309130657696316848511570508395412179822834015068453632766971302023790558221833122309408431934117267456652053984585317013621698912699335483527840854155850530155463886781783901101616545083544994293197225812407485369818432072636428801143014415435132980441255777697799498404118789404411204075683121932597679977803634363258477539257844197344432888561788523044060950787655776161163452158551043675618871931310930504998004597262509439294834591645133110141176914060685836704881082009030380937589087999477344952419834854737742123834045432090816325559048902046038118548415204018694305003057296304770646505495661672351100522721745763055746865500662713226075945748505417447571388694324055046784621864626175490632531177583163819351530217264445827137436000192995480325803546107973150317001597956328662123699556911525075781115454812328956261270885301396347455006016168190901876549996933924517757275392168226706290415727421423588498876945078700959294947829443063887022005601651255354068571269169995934468047339193446217043272012567984033900422905199562498624322061319345048098957113376647327135037451984255121851469156882969298114925221012480226161333964392849910090032875616106125259094837321832970899338093325502996795661115119074952954611115510985224524611566134249158526414006955656140273617262839210742842898522387811473408532014070496130707019177008877276808371661918073702641944142402853896971875853624579837863140212061115443444839937053835030612208192560474957196705541109320853024493089158782363141353868724404573206293275519901107523565880043631275573710868905448393613671058975882892523450685313733935929536474028461696424878826054256420349848032249337023315148055699091179884766329381355360857002078788515243020222992505924941857863514308067675367645028558628692613932206626547283900602104289788304513275410850632086889175048818904377425345752231103728598715826963152540603145588550126041175644957072055230099558907638523490124109489558717920236448084959208075085363368513574107988279094948300672069854942820694743939674043212385584389998715565967158325835554529838479580817789047730336757747528320203743133980022635974720800997461209905818867687340108495058112615847099711145596449047749256239328179495301676099288574116673839070229331876065997701619414300842632565246651202424216035360702349898201139565324808780401100633042608878061068091307879539905529783572612787345277207559639962403937004434052492225999646627134606507995151942355209520556034414609524294374659761256210958589316626670200473759412069779842783970374359737780339006381314169238658378517955249918547474467889148302495739931898485715517348060776631079469335730690211605863734175133265859890987592738485672793186197971171959171322121981297490453385970891546445151253464786187332448780370343655594579510991371978826446304373689719526543837259314178312183702462619524700701394373445857761244671854899892570966495267528836212480876838348571334983042973387134445554097426137342720629545641769882368168165155465303852683313804110537399398184709273065965626970347702310044154622676527144487746734839807516032105437555788765952792631414115066830996332700952844379502823900071906489745679660423628047507250270319776954247508851368660137101634331209681169606440170409870057016332127646697510478332179079990970802344856903806598038041326066727431338746531164004982391777314721335022063750329096633115359404981120180580990207180500418665647458379297576192842534321768651649504874441838389589515425294530072060801307088114769408587239575233854588705633132920459853217243173682447645195679625508753249122882316638348882737578445048816550490584195769101941685268341815065746953189053540271112130792844113120928813586366472807443759972325683807183464462561765463165224035625336322098717821134023649839926670134628238210097119366174773054060958876881088540954026469090522104137610624606068783757968343545251181863033476987525065589315805545363783603924305467538633578333660458918147177450986290732609916358135511400420508537663264558069580156095909188932786550012689428825824550952985545989933552732700322502894236988276440681078596119984499486677743744329031722742939373408980471881822089390619801818024723479010238762598331049240309212161702290082358842751704590192993116539865828864133016203580549620246872151060782701837950437647003144881894740794655942899011094613903469804335809550749270416635954036717142706237230769783231565070357556211282121801017155549327219850567431072383468782443612424080085905030494730249258474891173918539519468054881002052787651704371255408212310544632718430527339831633428507729545195770161728359410321321027323826228480352814998128482665317588022672240852608530466627166790628209272868874443032781873003633983836056600968901086020232718616154470715145501909652395988560980086615550190976280026149781786521626359003370729290267539220318754855247517069433844087810267781299179180658183397974977315880921341589751820391118143309869082537209833680747041946975930306615234338205051024827958421012732143481551427288427993998886102167695717795145938081184032113932724667427260474927838227791407459679671909542170356825945465461878469778475808499586554980802979338636963922838517872058318083019004095588958861035750044617257700740471768423989821336275508897161670773527265539235938908910842465355829672386838744731062987866379493738506504520853322793816731773537109907823175415816477349170660207625486707048761947447015473327669657414755979691457557554284248719848118246431006908111623910483904763512634361990874952101090729501870150500429489879221113083154701920915374659116510209840837174589986857100469108098942197115925955927646316207191087183623559879932568458558865460828482337637129059700694202011110282169319098463434485587567918394791441789054897487409412997997057503801467549288979163332936717831532911088922006939294958003351020083827204814873308932059073679633035100437183267124160400766137832226400495107468468895733218366586977325272121315731158533117783158230129205481842923469406666368260800129453996631418999006599425666354362969845714437101130341394234010034856806139881471712346274561338562931988589814112937682546749913358881150097112095665155926444785805832233560748695650472544207750259512992778024392673292395019903882971164891140918818772665774593522712001410916724715109156424446581080348844580238654535174036332558078184111916372408548567122287720731391542863884067834200307675951135541862280455242417816796745951346597703350045487366801863532217118980917217550121505936449824541630921550780118822713416466547529160540283997110859421978063363416396876946034425297332582325663378701197287267270259531326073712634856158419285415433548543466361216012320226260040840693997681134744800498643625650562636701994370969722997946458809027368734448358803873791891209164668533610770217339968003993463787657584371637800616852203381362723769929152430169547920285054019151176410378815309808716520407626859047856887857668171431015423728703460863418975171944422992271656778789808135341227425642445488322100575896440263328576878458881261639960261403573066108102957188174697785540596668322599196518018050362786188969558346951785511683058559971287356759336519342547070998777576930668784142112906485909112632450616397923525775377518833762957661606367258309952394344285774968455083354218501452608246175327368161067740628437774688674878957873368475234411102026732661261567248135136439719843914227434640987632866032677139920486794689412654985794669300265536658340111480706033970842243463510303548393588947557332270646616250160980707830016946905674116474854463690489051222599711125435956076153990182516837958377590108855471324027700717951162709417694112792278884482346309916870561542037803644355793517386858201572332888726375601987161551848832548217152540027360313865927978027403708677274070391329026807199253944601058189416749640438782775359893199717318924825176171133818455221317009812441584928519145662479854500537095399419400945836810053366294013590411360794402101942302945746036749910844133458973287153140236293637918574651175216699757443013573703261638583917155167954442784143455611617778856406883612767519907229798460238142984186459663909240708555114443422775533061986546934763807071533591768934918505007603881859317847410460644609762103098848497286094127100019691735968945116640978837142958936427351018246540618319401018595946600739892747898120127665898646786671082626427396768292410683476988231768679281257421310293216661655120528062398446626629807247557826174795570550547348830206553258282472397347585000665037678788834515002408905410086406550794857703209259278384885411165168228694711467044136736102252473923585379877800187511497071143839797205643845512146064088328320967472665065154019710799950636051504870033586095596491851134220807094803925860195506583379867502125057329919322658033696178302293510230993844082790705810367462938304529811018432522045145858616236407009137324914407908996740709831604284076320740656110342156290778971989253842436227597657866947105037387822145759441633433265599896164083753352216927786143841684952808045265050715948069898103270233510508978381439121913272398211430296786616695259072802147848370075129361003642709941647763271499166394230360530727452228116383762404701356795678580167944434380073322820905257641309254907619839935569718154388590209747047166068375804528113321294680293902983803140542325892215546208375947037568809585409555648668746752407946122486030399939430998527471539824301487745954990988160254778267366548199852315810241455452925722662338136919155590491296070476006502043922537962791997845483964394500433026122364041176291834948617921162748941967789505813754053393376669431864432750814153507082434554054794019615362762735516769906799714351247702984159158615204226196746455556125022523914872848727530657441025345460893005014640639537434183864889840274074151529062107491815031267334823674096226110670508306086977838090472880096690623057215117162900346994720738132183305649085364370351674366033789433344051654157805170144311163196467777208546385955503508081139840359234207914831547403729895985775202123348774796644521357383175922672191547801291915009169904085132641879556121258413330467502107623976866082391410627059684543732855857003366342810990191496221090133009264710457189095253772643380706566625629142717454789194815552578144130385151455898127992403878932071251766813903490876597695023136175937419509714813764723801085126970087240492056360220513459168478075635403937713048181996542921778514744668882296417680350788445105185739640953085356985466459254481709938216522106701749125060192381929010399665979513213589080381965879181111226335487455569416075832558946212560383621567454233366574491435917386068143995144279104198085813200643835559871201949804362012769847324152041720913666954793833161447325729006532507512691514049996236405498259656151832751040604651827256217244456405848852260035423077306766357170428892706983265959608000148098457007073231752281749587139924154660410072833322230966738633575342134145089756891969305835337051235861495212131316120092775025865001346120080694043683573789244604849196798030464122934839428625467823537773782958398349479533880319082684652071143193374502623148130772015905327338735150873202154175160937158159295604300113884011006570167708825433549371805245172488350994894232805371779646144663620555642144802845699580153646994472279607311830351201620898396636258959589516300664716765347950141202060288071796734027237295578967141265038668714075461798167573223269814670192438777788650130100623524295837636891072891995953623528025484314889238302731597693886618464398358293419603950569986101794317589416163172339360928086284092302003953153012763210098287993191786360139791442898326829001466463024838133513034298086670580441005463260793195267197133874237670840600906495425035484889269803389030767989445090489095436482406890325482539918215478393771520661817727218517864141262217076538758050944764419055807695641982707026326404907459477766859816529785473103472016809554522426671711543324760432098962264312008338392082798597519203823519581367249733017734055161146658207975759745992382994848159872862291640149795798541168109455623003140291837505643132878299638922642387105612600166067338417186461670624262625241152887047188428925493348940683802672588579524348150091096438332420643521466623246200955419143079345088024760940566044501632228865034119435104538784633821963476659647781701279028193782442267864898243177368062036757364016534193098248768988028809214800382083207478067115181135842012094494995045421889242442275597662878226169395436810180298388724727623710762629232752284502346405471838729487135820384003745568150546413383339670652147551003224423117041678433543955285474037442628059600849447869227319800139219508516271419045414019287112384747201072711695714353513135141295745656942371374355229287878154627162129633835912350433928386030394978797544562404050509543520315691256129666568115700644800231058732346376174548095989368366197614230628495104548635220036449969965299452126590327717188676946355084864439257930802713388284993750285205682032986424277034555822116572422527217294198411396510987243967986859409615837907493206740497940571954213545316131331289608942304804144357830698918466765696810540748118399210176126083830129781979753182285302467273848656442003059812459400620143348748780200240364585069374211654122478101661174769017799927082778468202711304787011258642340617984068249772929713999504376817381284278306534255717778264011230006047774977154799190398283787856587652995370184116863067243148946824642004613783729959862308840405686573405305503496307010706824366341460021379420189291704655429531463274556018524980481156229943642681749598776148733621517366093945600762820127230700706043689102079357665730026018457852911297536330360831107356738372528418512117358570563557294127795694189992963099215697188272895362249650829703411333118811046615492673856784012220853507271758505622070482406005965016842820513915781799615625126830569912819016404803419433212193934418556426093792552925080227589095341787606189212516623470026893396502903141365043694868812277852200197905155460825552707524273397252780223847147593601765529560162900609406611281000450165308036704267128002308730684731012566583967117625575677267176335013184417200364902620125079639270339295627386484066232667702018560027786870268047023947689533796479396280705893811027653260353342159730676206920131113968307902195630586813791313450175483167547923665934711929161752300332714930581717805638476793852781366347977913363830070730225391934619306836410089159560052542642840539587589917656763551755761229963991909305067383632231759471839870564056256132393768738615204339300252306602022699913977875039291251898453523945692150324334135023415801363727463813730956007773498669005091166112239428582412470465520327482239608253115466839058315018495852591973560747259846218535683615432665566952396112363643232302645867969604466398395975813816547972605102893303502608396067993433102029997857827550742157474745941951363713379845848110340067354937756442796735980704076784532700670876038604222311976508676421282270623524239661384068626072107068769049595313335975427557056731078931960858292119854969279247420142479107630269723278399053182439372175847677823033081132582220481080927484988518824187137664360030843024698657337554196679408281321489458029904641155040639336829689405993404423347089900242792859335391057731243657334706790417213055273958943823111254321826107815586545382577513756033326345400927311625180781279901430712834229838284691388813473748565080322151502305145498732000909483784575676778074533683028986707563465412867587978502858210502900886997257393693633781098083578046080600772900358832702561826394943744292481664450515306851057870189626159493116146199998638349129427425372169364355905828437748022246849707020248158533416712747965635168090260459245937728185263801086917545678393292747127096460867838103415532592704098106877138717717076301959424495954058687034749386599265550382876363447551536181897911137878897776471599612557198695567498392652783539920840322152396677678716730357326040757798538541410871512651595575005841225276488832002626798421165056720412562848033883073062130795372630333580888266168922849746536194186943616000389378887199643535422782605378550107006797849686018536258485664687477993896766977877986890357808034246202163738169930142476766175149249830020342719422031060234001362115014593473297454638408041408673224948366133454635091003399473762745603895312360925714750195147177608342889883629183959076778102475428661355008584596061858346953407505773879629663562904236821083033965016872448266677039491358681858319782251273290583449612046324858974114853805083222167742363152059373833221645334640037504341910730811885108358686238398827743689427067092727291423062748146581044039216774858129595907611606321024242774417566868764509921858544628618708572522270674699110863226081400054163420017914403346974860316253318370894074268899979304959995149312496412356325117966683662947650681887620557904994329375725643372080725802333024508516223369973936005731118203574355562468442461963977043535636904692449742681019109108349810262291834248520109470572955600614213202248682180125021862822465290843360594301994945783158931446174859144241994544224166082596957941449519085818478198126846519411181290088406440641555528236333969272446238269472598123765858622600600987875597636391601930165015278207609594398474756552640577736535456380251690988505940056154293842750343091756884042301626734147840207904023035629597509165170108998195923838346055084650032032473987644272233984176248764043152257345719737209340492009899875813055625598251729857461833143960385331694602065769180942426136716504275167525577851284386152113441190848088330475569131905974991264945321489373386838715743194002946078789792263179577149798908993461379441904713854802351053150290048686265750568981787461827956512882691035939505547739042921638818943398685064413000575135450117823570477916199417349537515593833088179012315178685462714092346259648760835025468778609406162930147044533902301761502943464975947344121856947624379251854915828864159805323116132734063415662012507622929000745154179772561445718961722801404464823349378235545496482855013424663042656690659116609787694541886615514844486525212955943785477321565901302554660980811929316955495005382683337151495411539577570438171094902144027796677285166456692424881930805660771696138795995701289379715653465268819263218246393131459729606692202004014386434130228512993224722682141719592787869872966800603651638337654382362436026526102072108577394383433541268143579782026282183738773628751803982542809712336365785806314039288403762609089845135476082597502612701441155127746481268681089251537748907807736616381215904160750084789750498288689180397529744254754309907821076566569863532556805507437823207204353951048839700425584562018957795130904308413171919024031259092389640995496008745045565911648017969008754160342405143886218513854418790078570279484569823428898893189264658766856629437383450760213921723205151316703150352768623064673641039631381724753891004538588040918316188935268606530777163132389794732483072753369568794005253118867858078183774400318302145996981888502533999349485746691991807432867111905045641058018211803571451436808447611305840983617739914677449785143315789166307306184493893574665813657445091709329829343972648308275848011035934779813010506210582189814366775889392103202558525071387563000153105406252890126847334320288541675208888115486998331807557527295806676603538985694026271237193854261141433144396399852982568250762799838540816974613941336556012911501925627620070191625250151958831050168881506668742700439784032601194817581580452839309363482537640559367786179559699244753326269276578318017162609305529589704706320799124306125091693024954613966753337795545325102979262920628136254770317188740419210783422875128712978128089079495706717381090481173547694586350716684132454508490973319789756330892954404288040163999729903046407754140570689957108501803025629914484200708284928773920301771539179541675404319468941541757280284146735391327091617052600862077778129691902059765783151151311608541983743092310544396094753122459586241895653258058960142522761271626902830308950240612339455274871912711914254002696724315627861602036109712175499673455811086916199964654840285020688483486948814757994273753679491924026288741217503344217931815069929673078463694909894398707232046962118950612218487857154779024484168752344815366294034132596595406020959155454752605947064041592682844106058590219701726287816576947779128539635979548342506985772187175888093825864232531828441604900681040968159982610242647301876799964782623019802098806646696431046894095156939402619964669020927705508048829061854156480551851280836458478828836045751407553618953965648009236591456714995597247878237481430705511796833440897080840224230407816076808327756375800216281488009286802179279833388199198828014512671084008228252910833034005123961017895377628795227220207861579816876033035464994524235588649919008217343078983615794142350606804914347100544395785825805457899707104818995690890473858265447327136149939426869458398306466351121807740334094194693691660446215641307800119908072007333930118701581723881612076444704862349041437335446588233588534472421927479568836237246807376057729241364418966311575196271851469503034663979167262115166145039180049532536269597995741524599309239053605656026776698045499094693461771444628173368929980327436369896451737650506023657201103999281267253260310384275948347979938533431059100721160893711803047019673988713407132257105199117643985865252412878810072001941484784960890425604906065069099048747210974085014320415460660436634446410261333639067979963274670295950234668577426496686429461219803634532695774913852977453088713431314149044715997719864126375544425990588292339701988384022433625350750290183494074121624317772073323317310320906519334223874255923823733500816691939650103801686884584732419813218116084070642161599105283078281847064251891310696945981092864339932237293599898463225862429428893101145682020521907571716730197174963816127126142780348314578477683433045139654727854191412951182166429878698431764425617465438299264875885614381718109962083956048962335736064618581782471701156291244606734320354725185456634158255591670101860312928613578137039604318623316897106600803369434991788367615674566040965442505964385432707549713605454489917768000133291734914062439297566357844129050774091022545340218028466884092958142809329348695159423036489325782596592576635737061715193106291695693009313931381591964642433327942071985032113491680904206486351644596713264366237489163577310307904326465847961189586680497678961668993500737008902541528355416505567963308213147203098032100834988365750012518635072906421151723606036585819119374838483528828215955587305373919483443461280096298674607576375119043130116481599741578875397883955028592056587611399300358080690149938618104351217422761798473749579523860666201225664635379627412876170433375356286106976923122290538604351219012276068353201561367124398457315626107881115178748121163533941440668688048406402441528650778015784916907552259799749653694252374380581748671452300135137921522086174737351362256974929536738101687514408395123961905160776613058223848739032108680501258473083784485880304796923096350189693423587018680318653567340852018228056313879011294803128408592636488957325293774721411183946603046153417593114412670661380444938836819592961263509688686031514790387891360075373073831126836575791798890482645472759372458203508122461970735154418368431071312287223682699945390218674080463193992922788543264675910355274592541146513526325150046940152525877076674369235991192195429106457744237447198174685619608963078779783870446854431971722865260731192848107379460822702340904211648283818957252886798286955054191317814036741333224513590323149721437955648969070676731841897950837219833430473796132696116651854875042595806750330268062257548760117104600973457957595088688089486487567523693712604416290990389920368494863003299912795609663554639281760328965632879388507806685329434715224938042055640053089953852870853160588039477441473954367008640045967020655469447880867739151788340110487126501917549294086074868942067861182615942646847498460888215004845017457572538347705850990958989322970677942904347050559684433024217105593308638210567464644195940247295613680643526644219098880953847909537702203823733823142473281998708909136237557086728827006558916679918453763478064674805790871678189752520607848993643006675726428380817535848280708248394504460369632680137594774495344260386060255031464394004746355064701917081543738369389603578332777778766237545889592167314305791561592905072276555367777516940625670034470161408128742150534003108351472916978293778759174079350568614483813907403997654823545747634242905852460418197845317400903107412675751044946177531617449295679550663397396840485591465700301439620889823295742424776292626569626589574262200337725818180764870984532118711416438384477553808013449205431923520125392539985627673997443903909431693940800802224491914819050273637092765805500439183308602148348282192691896125688414301196866540881726892015142048379924858730554479385703405975198469807970326865220253673345295915629613578927040692108109785503593631265069958001412363295189306167645302448499263760854086806193027167666223828605012883339674348803202783413545318620715320845639459861230426237410615885110375596698659111029479239521230873672641974623525783425714637431684391460461075140797026792552550449471908326073218879022609798851699032989939218579305634141671685501916695165959300441875352201624786719446805320927902767295651551486331978833974432721493521888288479607681676481076015600864096352160954467344538851054311531170857917114075200181717632649025317347720712390461962406461308691169006247238359949264006107400374841199047719334372473442196358116428214589819216255177600682199285594514423842134456166195149612064058346085812948420721936116789663591383475843230345818538530194106418714065690331239973301296085810274990912254576717349093112907187833948486060470635557310444773317326235440278481143526940977521311680472251191895598487782199216812274779484141817680497873466867168861755861270493084155762700129940349377840985133311927836858925091287857683433291359187458989555129656623961068659817562898724226704094487470710538572642741498238536283584323417674713520767509586831198825200963610499845598269238787604819989022573250485845487430460953677087619093824997858547644768249097267384503946402139568576267713810160525603442992344368428453287138196377657833072125173746854526525532917982317807030971190180569500224446459335294939073225616353003050772297117189140439056185821979958382361953786834960413634211988409042565496025576421046077974216035544553246068672577984741725772654623923617974830459925951853741958681042163568092344368429348397071205372672166434289336074136116466834041068096189244618212044429170907877069112127516143650359410330680150253492492942910377192858979509069489811538248004753579704956704812057115161035892944831692391881423947333738039687773552698897724512295773039667590652935058603351006445084954794989629938127414813836823951837670578079846550702777129987003255568564166394069031685939237977817844878441155254510279006421798860735939972786821585187729031912700521744710885344429152910039942668301857598772860097171257834276391342846777201487338232069868271907110116186219769636868854113356958183909641741195056388040652097130280972670967054055810690252371473992182967724269656447950274326715527933229366225759240825582420667404922600453247066182730708354181379271772885917640256017838160279596565731536281938950908090672935323786398861973788906192662418086528616084570160004642767376957871418633980374901145353848984197716627448417969583252324407883332459074708486210952255946122655850234942517087082856047030758082567279099837470213756705430596637112872503628516828816977254546775756161158603386189333973497326629290757474727105465479961980652712774558222164095452641765808208671893089745944202741541428429126725144073916928594688130836806194515671928916738368330469232577572319488519866186587940876970191804939345122913130738487043115928206288098936919254012974642787285824653284951418711732884772065054061844874373016100230516296082095499082015573718369409999009260574184654432065395030277970450973115007386920245948856480180704741326724111271896437995444943839270491981660807323867697162367479588812929058293252939345772313357868933269329422990597750723782838230742801101665052016174637952352703819187101060606116770240220663795560840186543879899051097012201617920261484722357966346084167760705303310096567194966300472733340764889895678480396007881822248458290196618757159876710023851283210190062098141776680714693103847451813302591731334933906823922454599026070777200360376662212268879969411812330686841128745346687274175533786659662162105773717390937951776301575096546187521635338803348811247637536213692458309425764584125307293657104499599224946676284045826648804504642302222187562337621591776517302582209411608822909826761740733666322291220797857333526544354967039057111379299472063978347695623180175329423105240253306354723777576665793772456046040222957058279516349633828702633883988942005105694998351062852438404831645023381999197393848500357493145886512127796274796682962395724355209756306439094770116315850238263347843476626536927384657421026391447433891349675496321674653189463513311862687279281993917817041042993601506425221770342989876109789323205081692253478200993796123217710146471364395649775372763461431569380928645635112580095208813640105808856553686334910993844695089514573279017374203166054512491169341776205186762880620163791846273748251809039375487078371368447676047456308555980110582060977180860564639393128377337198896084892171053616329441369650476794469321484829340175715496395832706048394523668707881078851387065955557999773761885118563634783464744588176863501309267861982808150671496563810486594349348506816291106663970382260432177593779976022632287673841170827924727792030395586932765129425207579794084639887405021013829064246896948982883416094811032313050891422164537902871941343293732116438639863743809912012821749867993392753133540812901034876572077293125057391260872768355313699755675256428667916317272269950283274899825887480390641844601545226637778287773259668591033307976604644356512961331585641892522781262601736784695042241708416635139444699003009707751945567436993802709540582247911297603884049793962794902401305730761158100395321164767306785649809587367516779120995808600166556597256094933940564886916666308433554621908483076234655937939650771199409813622407091783936107659711974780187826038865335733654434832326997265653587506376455076237407969381354871363694428007569510916295709702179652337854877412074795898056897107539604745067817258838494180775478394389939624222275988960075473590541157203534457888045210240331249342997979798992811154783533848067520797435956285496675850794385651091835979555567925362128271459212084715145039232878092186982039785285542755072784636326914653925847283547868790772766091942674257869969548975895568538198816683094109639525728985889455862235772333361216562869147402500255397810345688575104789155698303174111550609343718368568271445839224232115095366434445210859274565433205737855645745740072423768076775008197155610004268743492745032360003197495411734906177343025389215816367781004600555547486143713520760992868281868008283212905412721891452667874161916634234516477227575647688481273860704760666021808080757993395566286002775633737667368464431059322058880055144757409395610781967986076156910608542941192145291126104422152494348621276871377949527829666397934677791551004872176885438857153388466656672787465466680204835032407357755981658926224621739862057627950219884826542510624947422129793609405475224848900444939900425904244288129334158547816007683991500057501186469436620809445789344407295770079432964865171942066045531095922705399844631542168882869204554533867268280205886851799663086040408842378681330849613443211962416118550972137439213686614206188047138126025068620646177411850372073010068300498177851154767056277142842518637898574919320213298614003181430796169574082928165969229988421279023939873636418522658700108495719551041608536299876487025650996587930149579347265022334828658007314003862740101172388628713178995547553688672412758395572167072922023186481700508305455963839806691447531783877525074549895835372644347902263666756470716227641166088681641761553267018112839397572478030899479208783646714687417925143708868220769008460567302609675380502356287786545048783817489971714664763148109599665299098969253378170843132167509122227364096368465433465907170584180964002387194332962639842412380590533318447559283136980589253160846383478496951189699879332291905851689695967870443989562798662432636945111159539347739173379610233056462401508423689332117993197155142075081497751286265789744656819797303545563129178980208806276029258861073785003890080157244280140356403820758155008343351012467613821268623342536027111247869471560087336786107612233444758662505543540582998760376194042344521805331017904837339403173053357224478852830909623517474084004001550132122549128745187805621673094904382039005085856316593460326175341324013721198244553349264647229507013184877840420797615138331669960793579476179032573664397171801914570807437401140240945859979707910763501883403790478158342872725898709059707138541612621363988307182106648463393863415196035200716448155361964155952819160052350449477393011334940203748652709237954430599560206690079402200017881863966123991284256252688414397033131070212528220847131118846892626709790490637916212224945806050502654720998490640233464070866965418744307637018348812983886543923311137895489306586746628164511558515585179575736696290642376519736400679944198788074999098625352159990471600572274220382455713520476820664703264091731468647898201252468362019971705031063341136790121254913637114158777842872454125291497058383185389388065437181183879896034710652667585949169660317276128260210531362911554518337423280471373239199105681127093059033144933202847659414661900205221229838765953492305260662904076397717807525813133668619312991392913075992555117916722684552953631658815164462675028934984410125052418925508297887512192611406346585700580718509750228039579734925275812006905390196855496905252408563536426045838934910590019975020635890183423330743178604807123398521449135233695355961855671826385789926731520649459339841140880042460182933295800547010604497359535965594518992300069303938807502889151365194588478401976046361796209288742707224111979927499234005952558607553449380026246576790388087831065356132948586592761686190370729431525054484702501675701753772878681883814452064769816994710819569744865431563852925417868362494437403992895662775448924825471409634511890489407738831699795514295103738393076221475186934698665504124017573576287159423440267785491841997832852462426074349005802641461168722498633273146572973696543499896680203839595827399406203065611291229057355755350974733050844806407411309864188499605612822763114706343836420306607408851020920547365563994539908657280895479408655071281557775192138057813061984864782819762688933107500526837961432109504301869381368062299220308852705485705779306896774230485492268819896410398949616187312918214495153355379051586703927949890433104687898002129364206557068237122272610307824413893940597769027818337393206323788284833597505901186823089725781859037028887486887970896856549992916733600897601098116334552998002483214979097944174193516675438683948531759270152894139928901539510709652391675063107115825659804323835239563869923446538506349788866510327072625013416371835775622099204366334262451304539323513336371033975825811798858855821606255329968077697475517228852141969712297267043586524812826079957596436502460871540981621811206560379214289696034009477103303929724503506991022148127607619727755170596697247998278772852230651839201818011862995124903891658041923357372559244413948530406588805240940834297980360001159765550300822278874409911161229532454971450359923249768368903443618113389796974728963349090350775570097973599459537279194228297072415356563210689064203063733987597831728366124864594800563066496452066638251953875731970428715865850825959191214089986205276580092547337825290788549690188568585433420353496491198355869668103373849441004539714120655948701411046051310698370151769636714183385490725536064556301187480299555033227381222728406016104105977460773290781430240803425736655503336109332810872835090044031088133252584798781541074714257765320147429974859185115508236048582309957941758952278408443615215535674802396270052442975914446627632257801642644289064915874596433475080590255370066527794883842355753396310065414820639437579295692867415027213681153222794906153412314530723830539082733295878834759272537807971925914719382327040933187978019444483089497052730877785926109841575947628208179679401998870545332543495215519610288187241886040729400489163872367331903539788577311649346017950733226456832030195852793375102957078394986192664950390728927601228469902285791381770527983132897835828410619120752823313419416259405358084257276638990291941547909065516165198162698275771734491806574089406719070294527073213124379336182608896789238657302196799233127941695833610856721822890919378581206247998652061741048882603414692559839362187202184250108262124163474738184014011490647202142066521791921315099177210225050166422999880725296233104229860230829311521805677708717397917421673083493997771918361041935556598768395171732926209592449820390559700458905108733045079166936623225909360517867493464864593134244443690679853727320296999751182864164274526156170243582861935136626904103157454998603903423462135920357452935714184598529555382843229762567222419736638796418371188937372121644338465345517604110138806297477004583345807068591388308746142510971258539610400972291572632773896209105183242531049231905805211501403068648197736287549279002284195322355687924723520749593452040163543982491191538384777826539929904367479111120156779672649951181172581477939077887742977534637604209168355441663678401024704654767213987021498551073233126256971770390317565833304427291576869424692074987973028974309578401057628724182993302644909738971587727747886875021358180888632552772234523575545149427802824077004393639054265190553008327105380602376426989261817814533041189945115258163069394904334149828787986273427529216320110960865109713766676053908173689259051303681939106918885831082451378646907486119523968497602357647882319595587789790094339436491817519312134847078479166050287244286062022920149332354465207929195740078326755855711907365325822867060260029277147395977522806685885923712620790664237023364096632202248363001882425643810757091059332770995732511109310769445195025469686079121434822652190223375929213772079327135642893258464971062660982225912981868087816338711751051524678812774971219647995247564238873918648542618058813337204278753012429668839582902552761825661485395319246715799030370388046916380214479888331216316497172417667029817662787488688803505492869957692147124604982523160615883901304822050207858992764132635619545202173883179116408157763107124435633499638296011454933152450954275896192432541679025634580115503922827978507674142573697603985726553340882975074528285281537720537610096591918902378110529647392529049230134262773716168309138522746970898178808867601808552178024569779308495072221052671608032153192884807522248319888854006477921540478819927154831100444510910522013621981617984508216741758193546414924505983364960968115651067004569704442030532684267546421748625548563706075658065990777411172307587576285867709890552492554064267978259613706612023336638041579036527853121551146923666689647020249387118494996930650489927573189399400817359183939727726600893000334670039067544019823936922086408113017351215847723231217961975401192441456089495430151861064965747250394190714932605780957220991800339980033550040185083742922889628323996389914753437403393669374881332791140280693148442691043403035686411110460237199860711702040153247490163200887412497326133907524042832767240096843292421020553042012122546934404084885039825684975601260319884574930779017087980248305254735741041236908009108140439029093565981654032708279616237552464674527050156879071284262193017199210210721968651913844638365511177856215549805057334248700773860440612226482376368361545835087944425743793788917533586323899372919677032949697329048385224119073274632883788857187953696179987894620449194797791936973216139708624062167864617888492403798761918568159155718786899287197989239992832645241161964133763367486995396478224054043822986508016255277148641878924220987468393705394968829760522296269152812768165900999903721962546992599672680788234865038242100098165922252591216319453208790882291076307055107947228141059814372420028526631605493602235238397613720854881419802205181176371650427492881820915461697983168563493266872954404542684636329660078621740281575953719152830918335299768114230954204172705791255125051023905113951715777526095785028415399520918915030415938542477490410915873223248541712655421782939829176772877885921247023742156776013458360568288145200477372982801359613657912026415933685677913964625039013680699383357163468557699449480737158267738344016892709054186808498530352577746440681864558768447952033011832672961614954247312107993895686999053254400319856527900315029953837621642304122291099979568002543633405677608966575838557071305288688241537890101157605096023039183166044712837708156322646737075146299873419958662877648231842377372612048799208959240725993016859961763556633368210737824901939561595163213142263471335216235943546173406047515177665827572756810499662946891393138312134251064013427547135662527072053574354660511672786354573250724330143999995848813957902478740028818752469251205054682642754009121924165819398016644281985106568225460956636477094418818624234017285710355195828845201767763598342017695280495474546413459928569214578798485214681147921747592201931234769746430771163385572305741209454321978582023090656676972495192781619608729740464971900689376172750939315126372456999914121122865571072858068579929408429333118044076840193796387656634216299345804130826313538439985444059075017660436597654088556866542147395233998017961088907963926720736158243103225473051797308170663226587173327495306433640267285208635969023523298155508854839071444550573184659678341518420499861568534662779894005081590882071687303553531938174134991550317286568474287575687528009767385522739765894319589305738041455876237921252812449403893366972567203522225416111420525487501773781931125750071904584586156873692351228573879851040123520328062840860492954509871279895013906911596463751153154674349294219775652821156876487341649301238128282036393015307233527363084085770243883228801054275102748920814620744246173666499815503313989746612363437887985945510775875180809921485164508456849738620368061190031289184705783784833778517904534597617619876148328703360424633260080798361233048545726789111666973228499726125925526352801089362296586600558149363045007442167947118283131989514519380683857777724660200685545761610405331035770195580041104703415678200866826219579081698603599299428652603112049129175146797090447203937059667813556389397580468197462589750063434185851067383778268210841315516264432706221687920300237196065894997492134704102111680022194491786304005721141882917239818429818425302915464875856833468086082090121277336269484773988068614786201488150952679605077773218157388389572173722225426095081019126272565057397621367008388100153799886531845382176026658777037502524710794609585205164666252460063833355498189006823336079222560288052504045029256683259248962964594385723513709325437899775919649794325763848573372569082875817770005385571846901185884074572796971966047995102689521886721097700786826371662610998437144108544794623188765058143081455667082019383450545450800702242460881369799731524157403515633244624304394655043511091370549642479121080884421373419571582220756513260979588704086955546747557166118647722366779214229383125327657667569896986163811839235109472636436253142937872869597379196951927103348853695718610944759242258440972583623963005235894631265994109057253133501376809061875711076176571139417314227439947903727876711591747244844949320382147116821505801182408678975104634017568412030961198735887234691440170449978787816855384932807553862033131155622975845300880351249411819807973663558445200798060081502350763878719834718652707376013329118038530937867335226926294676400069657889011335903247885303345132140315001954061239836872224127961036725268512033797239825694420709334393060557365272672549696392689509938761563370161628056531382772812426954175912794111051816205749956229245859344647598877194586718723285943931968080771376160978286953229652336317149993941100492131568627415713198476172209613175125912176854373293855543955034308777566761854258757670482133288349747294722835958917674091593586757860118873180799220609765470592859144438012203245679174688907440076032561470145766371263245338792712767429072604435627056927969579415823366500286398662727381408542190791771646444068372921392723183114234711853761761470635958791047133801129750122303416492881574378069500169783541585087774406917087441802301410154904629387855963261499830091931099333435496227372528532456463940629392809761244842576564599516530314287897612862919414731155601798095927713977424325000057337630187804635839765705190497191738760639529616537714303321161575744731912075044468496998995393233393437204738494144195895156070743970208776122048630974532350154343749297878640609198277800065805802929284578896318754357319716902506876943164177254553388138791511064275478688472694815756097801114007023508367112114360517975507503583955607665222178918605633582087720974666027686648522754192210086368107804981276303325760653409530231803256315107227671718582576348216751605457125016150857356187110133900267008648432933929606497123368779055111571011738575389386201818218033164833669230561580951179070732590800498261186897395831717902348663289384188874965714933237113054384519810543409459771554957003118309738087210136104274731384607564134885192683990507280063344750140086336742722531902794201922646285809009107804732036177488591250818035933253702616785589111955670633927895128792734151242536547693648619392371569005144111852710269941928922662405185929022147110624777370670853384254007952409344174354532006316819330332204922198353072458353828848924610810555892954142917857027624889239482099456061553940566024711245130661370534538611137132763845956410979851930291617519072172980159970189127026960419884627470733955449364224484961227506856734093959203589579326681077580665016896012726408710267078450610607255791853565940533004302297288323379371630232547184645272247477232927969869482274081294657798762288308095299559732037495875466606729850541678904382210614667288089829151362959524296056749656421620446627848780170057140849056733195581071991731126352868395495558507833660470981155746359934234543127673891386644084395851867176978573960880381719713998367153751106690852795723095808212189838713048660573286446092330251595181938425515520144365410023792027614710756305170638347337988481637259415920455988183016613880685486840488341195046165165564403089190476023119533438670998623842258344336014480816210312096536512387875762253777803995083354455698264969468430507332548942477380037150638380748958062475181713421649045307682228531430178014526741988398214331673571203496087675127390609856635410628310516621935552288471662909173261578049223190874034869621424844736802027894431411397620433392238500074773647665087921544347099713532087646810595468107426036953197178867254743574292020290734059119736229615231978135808853679443281539816073812784439321470154318639893868249011412515393270302014929511500124377207149897961525963959649839347622328894767027524610324415171295846273826109027119843764167111218702871928503484951795517387151010758043922565818159708029162229668175511789610413641646691435714587216906705219839722794571261970878178210568360668764751759773452937710053493767320199483802735467434786653353519159407136453662041435738237327998121266142754667841092725882722722011193575118788407344908668266191044185656175905379332611733469610598672690881631141817140543537941087985946073704140624127074466331442110262887417362828684751173202296769835406536236454738344636016483327973355717905542491478528643418470887955460432515419849134466814402446046841460772123970271770171946033589427603974860138614971441983548281445688057467263015040862982519379829964350361864223819563069846370471264189544448385401437877742036431617764532930712997144366139581619274805570374781886265106638536882718362054085290632718012245561093157336552843449767899108731037178823246158207123379639352237322361759650453932615088547915436299074374303177115523409067074994295464027605757525193664443217900687532941647481147559049395251718866869945503188678389903566625049956980139944940964843713795272922199795100445904769066679154008088137556882577463618590569097677377673599033631307394765132092220604874009177474981297066184700378758866242619399444401900534550032482358356003417912176395049116480038891204642583270993653896454652893187580823223592563512953379166163225219265198439283616911533103052625767055153482385060579586464683632716688255971310347091620765602566851741450875025562379639183888780143404968741241350562918180833027194950325914032896605638360811283426634529911104673939075123246281686352978020565260974309996231217421519616913972560941162564169569903093663087932728565291223433547257012311446866799806456908704616896786455222996324793125613739757870865341644360649753403740486674621360479372055417241778858382683858949635447647721852768923133368590987198380274713996406736740995140168764193651265560342109223897433766238599681634684637135185644500553017342207513572779943804370092162956424003418471505731830740103067883823453606938260528025212239929828240614070627294860579897054582664103932578236892587850173556353725569683869385029065166642237460542990469403251129898490799141360208709653354821007138630747535576601254358097256892179262218166101145743778438961903293042157485658544037993382091670537513702287088556811771834883690291255006425439168816203483771124478666852143888386333681030849267428464205512264875268837354598878260901665059200644647309662788569749475242272334441541371956036646182877481819467500734720733397467850442317501627490617268819352037488765550930447987073033329459169813540653325156326702259788925793827655882084367681061443753319185142649770093767174959882583607831035925598226896900402160955193709768138244974438118579973873836609556316963097287915808741904948118502523452895036216144303144352074257957125412274728633850808351844628734262256848929448049355462756621493443170570749003570266404265344800740380894943205321375570864406989533289461265569474121910164283941142593793598913103747339020934493978325853451389237922479677195033578026033010565794917052931104816254542049590634255743955855154062690051304635059269036553463987615209898486098560055835941276574479950936474730426647936142386649898807283678847369270103391739849080766730654324400104693819301949614404894079349215739028254354565371382876220490425482412998083517353895732494102346085191012445112937336933480364007713549116786835016771277528695923980667879364093781998489181034050710590284253599385263932320869361777607503111271866274404495376260269925502378665061841224808209365364990151821132919634498792462643747504511690922921461836521395824831802723310267797082849367932925015118093900016217439955373015397547242598635480736895802548415137931357935941796768275179949703596489458939868086094777587206280255263941238664222023407115283866110966939158710125488977700272089998972316189686323287823707397057705803511708811407407314570782030395749533422053007493681099749436163883179397345987891572600554034363724767088624846092230064945665949531947477800859439253313936863848418123178569060360091698927239577642363005042654597426745171967858130422670061617308713657241973304252440891515209649342584112847309995356577842881380159615970939404186704225100097183069205646781209534152739810540482464660285601658618314191426068210538898500891465348557176100829370459445596088028783214586612496650241897676439575873650776132418233575281909237182584200699776398995256281715556785962858687627850959612793227515771299181110339076635381916071551988036484059272014931899638450494757935659216788828842762323349112170470173698473769744221306589994409923534689728034839199019649879815951176376929376247475798565801355300929441410596032214680499727407128599442341234391791585584153777734286192616174972997630004879672231079073962728768880314512797053307325437113587341817592895660895285786236488809912974815085238074858063983768374694561735134067125654073303837383851611689785503877796409718514230792532184879366210468924360703670989302130166687642458445157268162523859777888870853827650009441428008593782231397179840313498173113844528761825336348410839953071965582269033796232917834868257790712763489347919164052188671018085573423848025513647845161373989144747034479555285794150488116719753898343496780367340452437060481075509568766648544580402823832155105463032038538807449005836922626384600534844424462583946404771884585957869016822220010115368218112112077776486252223569107067219041395643258468805188108915795046932764215790392012345994749972716170960973052030615359205392571508610053541625937507967216295795534154152792521189316846848346107513578051282524319368926333148010782696543999331279203125078390170111503537421567929224614691185730532867938281205727127536047785862102320292657237250681339242042441943214394059446655780051664174909259052756356521192173947126911906985403976441704543917542150869484111198339496238658492518418628499920564631507184442559197156538902082547987319542982516830176071678505361421610778881524712223982138592421448390899487141755908145530742825497610004863795563393928445971889095258629652127261632468299746468786785315807986130278541112079009579889095077898647912802838885500568315401043638931275732111262376825229919023954284230691809493159176436437640073165570795217797776729386949932901503147764803379717240790759433560089702204733187084280939575790777083508582824176200547444428604449361791732405499154519024954463853697476688600332284820898377484131494043945766424826212538597620038195258696200018702087453394894778664877597507080233844669881548883555653984686160025864395646419751625087433892971551516348084093372419401543961595643068722367259661441315583442753415602692820835078488133504235839614285436166369142745093776892358167938329054741036558649097454303334062083012619476907042938002009360062552236016985216006899566815806053117819433376912032720090853339886090431162547000211316858459798427044146184343299553090128383254719845668936126231407570269845664304975441498445161087084638717493740620657515339234086261203292294879845562129598763981558509826992201487510565215552047513024856554905432007395996868011631581248566707288953744644625430094432456472746915806418583550204414828965633972253831187389667701213377433559161035389642954485737043562325205344525069709707645822734520824639829742842819650150697679748643309181268528173398558753092896801526545667452630883267040229672057944165833208684706670192793186804652414002173711369313468906658210584187388720277506325114189395828843005041591730024818914321067829315375341563438454794460445863140779037710355689640405920324180645598959351865655169600609810918698464962941255419660552246275210332777091388485642311889920172216997828194456004066085435769031443469413891404621871093166502600162772309273295753539614093273369812295000550729849208018481918273637838169152044506407372688872742404613069190354805899859268509298430800056986009561671530647856728303610286403909956429858685535007756729730109804511088472800020390461027475340111474426314504206655467678815914019214994706217598969831680299894566648664583508462755311764627528988473307698659131515927041059414180953772770125528289108185914248612621399887669506608126855866463317023436826856666242636030244346262948275713722989669696810425719643009201895221716199124799273682323597990626450992854942846434892555390708090770021658704377655772572505778622393937818875830556427802582361481204308906745119443604873288350296319457906165388489520901731042268656988422415346971831307282832909123917369558586142643851622933983995321647480704400067854909715480574853139992207197474439091177193186583104416442036391946649701820326317905931511772546995700698761145416593087640824617098189030476740182206039233807835348530440258186161367030105526486486452459701964928379730251987048130068529693960390712240693440015880847649121870939732993737159344735423157990873148464570184118425181750883101953768535201971827444480648319702311223502735197072846647872471398553884077059571051511253140426360799299592572506719355195361325136289338182596380464529962893512548345041316339599369869845115180998620377218083737190493162292757841152672936004363637121521042003546958403500251128813967903352135416083160441402078277151297839128409558354828730726592874050755146945668763956110402678914361762003174845084533463262336457839197560527744854122138796788866413256630210826126523591391174005555746084616791865780654507921386623835430291007576201304259178319952722091714073468025675173353057439836590082008455466044458622587644306860429591512834029902611323232615213918296999937281261011107753382723891227019786602072357105701877849360963005631054529889889307843627908229783371185330461842262714406652386010123394164692653741639175024487515311485003104675535422285109630601166304593910071997597143831775152821635341066403268793019728763297487277858257617489829699467927524843675799004095139552865054061007723132891540741276510806505780824611460499195893463058916098165458979948546162344356384940374037974449369275591285971729218833754363394422341772652668547030184867348516924984785276211197364022101784280583587696003254180987771945423764341272063505181836051729664573150222016110979539710038186284190923873402502364439940111453876941530478756573354555493429384025613703648730425925623442359641754981226045022257647138110651933326932002523192646231840548324082874813623121907230029259127203906103515222223096256256582985414361006257379787002014242224645309308432266733399197824047538544586777233614086653364429374463897519840172445593179982920960147695806386542051634508261603915326177302415237550853044880702127250226861476030271207373600177320021079137509248874297103141066194210536233259719139283742595144043202295998741894782562170835648507326932167890210684420306972305068644270655944645200768815676505764088489124997002467632244668883593665890320401329632225143410492918206890735667133868511453320396292751048007239531102452654835276237871308693220745923782757062673266159103579654967994972735869038607376119493364309840133090620007604243873209116994362628864564851296328827072782668713323218960637568077791330595811819742353032720225936940545376196157616248168819090030513572004542948668361912358635279694435406567551059853612448485567637285335971365449896370868665504569559453255490412578577351670407555058081176263848551281664840507340982720801497358104489046643789778006187266740214357523773091042852512205945346860243467235238984743511352581559123120297952263409479278436060529778342315718554496430475278445323346917448414151056286981448704073710061077232860379468490926445639487131722603577218207982999413026253215049401002599789909927854734685578653943645643403309072907025947009068962279165935872707813069511339153967294496832973641107181568778475515426081633241091291834067841320423283559744259875542770235119012443500981232143865835165329593545750962222261911229958952433431357702027434664824392399471447820974435490830554283161130244031855101967274017873508868206362049871272511018120450149154269308678329197921420354013821904904762152238484490960141850992504802958318435960036086383935942468335869014402747776815471076367258032592035660852910976942744544035231870355940258251213743556692993980321772727989096744755851853851089109322217874959986948365054961869362340776432437556946558169560629588776370743517646888394308294177957639709635020918272911937127920738629384612164035504973134575957075302181928131916486608055499629483244961894104565845752279270216029588867822065261436715169126907639540593775433731793756883492074986109046624004702973312509236871597049347003296555538816681966038103167368686601431483330562625079395070130623586822461326257258928226048392697653800500821733479988292471931300611978892444665050963253457150533465979632849713224619067942304329183579098582132012076034665070243570964249632480086951942337386094341701656606451956175330293014271405530953832802665568450744807211539652992309032371088837313433545241004373722978565695424579370377680328855364674178435252026125505088435845605783066561786037083416776254498560043019997274731837674056872234002671521104748521327658156068458376614700936842859144102414112062339010178280769514656977344505276018950796078310665396261996568439865288906684853981744859812495938481277007280054273277136550655060298312477150779445791497722277352887149764388840200778862222751425547448742345460746403678880289374972959473415066141416951760387570292833203184367112485224456010708564139047741553201338355395100991444420967624421430569178942606913051301649794147849688865115373728708307171353609860721391548729314980558426382679159299467355270978475439819418201836086214692743014712047849630347027427334283334392126555189742215289881146974130838864274861914401785620317662449797584607656017010922375970681537615562931548736323137577153659845515417955433788539214798596778135441821679640712276605584816945976711885143707865133278189391923906930760416661400808716537030053491094180170127358703443608190228841008783963505945526685823064097667825943888189506867905728122328230548920882613117538441635320888249521207088647840408004050730356014213007708526164755148679357139533765283638982058517224992127693834159323752618833402660136437924402406205084978093048492923699909039667217570799028202227627538902514534584445045755731471288535210975733402649927075243946055998124050240732053282371096763866957712025225634238286166368472631752827223256302716997764696244932926387835209392660740557640490817485586778183467350425738741261089715986570958576789864291211545459713453519430355282654414204251717943496601436685985671707954462899929414081261910418998266566378065501778439176865141904863741141071475328954382262794529938169906523856074144395071288418126562768895331560782165433979837048145053351438840726372464521677287744157191822702747619212350475826173614465561630530117756288377273223384560984001016537849252697916618955953775338831652223755048109915946824053559849020977485567813275907719433280361087967531620418257309778065927549722892080473385620639410283642885737959513483205954889335781492414587382800123721496005285936963835670329094457619227707635768978435290438894681234658952827736357276432560496311079917645458968722675002276113927802116156938688188618981945329740796060639433528724021219598562873367545728662025700414376898962882896658560980132883438966836471538413908829574487542075485387257733170037591223749481346388572051550856632341275767132238743937504759021064363726092435272815187807912258453871744453975863172321693632718098821091579935834403933207461743206282868617247189850251724981244593005880726168565501370457654264658297923542933591957694954975130156272448353377849370979698144018191272544228508581298614749661177822419654466024990219596376198035529485481665815145762127876597663757471681542197670331464840158708363894281290893603853068720176046800182465860539784971968266661270696807334141816783853241834902928013084099218434159096530479384365798905098784155972035997678946354309543337092720489383123310397639656107487299767134593954663299923357751951226787351775617156534488851249546136936151577087798642377770121858397245315312733864493678497542524061262217457734966672471072281263568663028524303103736898902383019168780900510804423469059989531111530513589404737898183217673221170106708099464397434842872728791588041835247596751741882132739833688983751486225446297063776722001810191244276988095935553172911502407084540677015577891404074602863276790109304854044069198841347899934845845025434586812717636626570496131309055176668551191693351206622235480946913716738874948565268672982067699307256764819572136619762240200709873883255117006883081827803833783381743876403895018796143202844701562684813129229105504161992332397884010486957846446831176289876007848331171941937969476079310640536920186379289675651109570463912600024947416892569366160173911199073249222058132905329583604943834775754936671533429638951504268904489789613222474116758615133112405912639779658799024701768092055431447468609636846210880937411039845310166386524797362004405155930974393017992803550060852237811613510738938506885315840171519480898288702067225341995470879486436444395335996163346153215089865086133596927479355976140652320459292377150468954703965841191969878149971103486203721927167473696941727238869146498219744077302459921168220481469312594973366170274754312843881279283510928698239348840110925665798190800624158021322052222680438229338639012403222442061939422083165365568081771740017211008136798221008526230252136022007061696869971040822735993476558471361939106435050383284451633183846053391249982440484296688076382484239979211612441796663717401494192395311164085550807346637197758012347501650463156428245431145529301144348453080231882079449990468472439922011938371729902481170762556172188527334137736948994292434292396349790148492989718531858620177184802499258745526051045506511813956487597950374011857738599577818892035272791751156899276090366044104226558190566365620790183949171082735808035618024820484405702053641728111647582437438687956993556622227841646080502695487682636895586657797003288810851466472627536413296714309284001880725031985807356621019897914048723286847672827653045583849379529888977076213434342068604967420944086156827375462474589323848451755675173919759312090149161451708313192667380845807114601752757238644201093879125865405205493564151716203144394405872510640753101078697011847342204399238162527332455424262010403981066726238715352942509118338503059327105711771305898087570524190549440332105705944130249809343403184167286109067848070946996907132452089062356551063655569021783975309083970963966222734655677122593751453197574285841120148220366809847498298333614761409116076392095951653146419300439232249548402444671817544614555741840599903621010166488488159495262704736087807723874652303751875068803344690031541608347326571319905771440596183803230216428890651770262723767857874837712024914095046658854115525239139723460686604205648807493046842233726636255671544591915577368262502192645765839207504159380260376982443837276629431233163836059406434130663273353196723967086771599953337616102337777511128230462401502826926314159246400675442472329460960737119952421837763247172718914110804653044622946463608231420034863581296004953026613812521266106714903480055828236221321531627515430969908792819745747482690108636249482488510586991328235325588580972319140602788777644792290651938551042690498016147615757693293822044820132488453826476703550763905076177633805597710042253538905092242578301797256465658617301359462847665322201320632056596359031229210354714622882155171282950565043030634310021845180156894025899063954750960494677777144653783695647134961951058081559558180695726737965715983662364088365729193847196287248033831565161311622679801666547392715465095867787562762943325041144900470707693850373446666329702365119883392386090890541396990209140019651848487655814596681146449253816420073268928405921393976638254036744518065638814903292808823015560965302391561712523365882360682786464512604532943398648625970291304094280493281583536438959921624546605107192637895297508924919585594995940222392836953001879624206135661658938091329572624114705694932680214856178962343133355566433720018775509163674191626624346228139864181579417601967043987444868485739033545487126710727831236213221524494646776063286443474172202988502129073627334167035871576897440466679099275820892345711531506920749528233781173278693016950216401004945488966581028326754316382746983721027559785340786439004917085714726137435767761597449427876290190641367242757826223325005063384911516025613253524580813880101087645514179244487655110604785467089038979758199450464973802671868242706072795333026975716651442114002746286326243647032153550649378874691031297132917573380038987018549296990863930741684351875712384949122767185632763920885363126451681032233139730980880352859231766142124392760844736241628412905257978251943064964595945957142626810660536245178100044108663323160058890201624448505098576086305385310771665613073469261022396370709074219643942507727921641145155457560385218637784297391414147072768983696671507669958700365753401992698183817428004599627876414709413671869109523210168872715713254359808508577504909383550522425479564192498184495047952973989774270600058317218653521097911536051328755859982148418528403550475041705733103563754919607981536789280488243219319210955829543099950454477222214295156773915273040127108717264675606169459810281555822575687375466924774867769091467128133509989262046637635718410317061402933117163602738808555335479480024670857920040967729244058991763703639817806027373752248919166111769539206136533779836585970749651649338959268458052781608131305508105774038249111381428421104276406852097330391859434133827282904183527844320760449674698440885952608908571853104676032252596937694872863779956065366416767031880622445541689310745573786844744468163480111362292537717478934768884176663826948379425223607851084201067611463605145432933745467713796362488231057560152550286618378242793249777661608043110601510886728732487355134719422491913881121945654994547008323449879163801030359157039956349367989243462439519001470792344372873458803748547326060915117774923616816904587378629296290007440321889144237497432858811276444479271296040935122022187136485696106884763787063280757304227241332631757757769545081845872497635984962099032513163307598899063288555888671687303357522184087718238164147084852502749943768008750989549327232298734624679141255345953891762007977049216129054114092529385669052500986058510650017593034165496832094104720191491204175140959807098490770552437209911675577988696446199325226543781886181346236310755960730771014134106720726864639412509109866367091336566318445092685868533991753943169788531543969691671532550480234268661429011559004745068092736935934625029304212902226126791971637857675984978942327553091978036330689999976386426320911590909135550488061250736789812747140272364554035761515126958129897715714251286892110810950534716155933735717932861004619447750338553547871487329718679935934058794712584064271394552836708283890734710107921295664170234710515959094206448362782953501295295056361169095057501927001320350452573270489993396055901763320134892015881830531577918819618132539211349642124545702473485609157586499735522775679202660991581314150966387489354923188629037984186337748465978096260518550084499817336568932749600426013673900351403457315492746146552039173905985586683793537210281956847287545368266071666165273201554327405532334388784113239434938956539881417821269770128660919065725353343721947018240110235373208035457972211492983354792337301040753883731183679259667035383256364118950890125236277989407053383193268784740774701030705764433750752109511076787167510904127457267681860291147455897493599650199846422634352980376192520258425771553954072643072389990501880702838244862154745745108890621970028446235381404240888115858587078691747383337584415542305960777453232336831388656048705290906791140401482230715270266267391100651972811551045128495170431818484613107005585583971847197816998102925428650980365645223937705580822711999331130998062836265302501397856271458906127755933954907733321789366561718867724564889658630929950292249956916149841118386836874306220737907183159988835565653609029964048449835729766232881837453559776260356336414182551868464532173049264582796118368200301658179606979511355919386944649153312741997058938374008733154122937954541482200962569999018177769641265671448620924704163967133975688917322131355388404882509604237981880426460160238450578806355306402733037485208698721920898299133629501779295773825857948994159922080042386488202751082439475490499861101832829936662841586488826638344516413610376630827367595962463175577025312079399776793172925007242217790088310395090809596578275513723742668920470652386546137859649657618862040088930357137803189311448974117721645412615855862277640912969868651779750791739447489077630743307394778772481416174611440171621979690479332793123698972581615356699275049239822991744732412697324772309561659376421349629119839518481685506201083476944208305560419603525875031540837208257638749231630091254626297302300380839727776314051580216755671081889428192351452235654566360378722180450091852388481491535837564967212878728612411523733145743265442776979356701002781201739082723314836609337230973091563812821297802170805267872989479730504250707362253874172629067580811333351462159844710149081134410523726165873932113905183790158368040910298714125114208301618570161383129665729485286030237274904300155230049793641321526540805632499768819869367784741150390517956071461052335995599918554037352263058419570295010394277174592418603387414891666238462968537535311160064940786332994425470659145565574536395217582240676426670796327561638639758319065419059264053121702858872489773593191547990015863459604966129214885422058650787841112954782262873541942896463179099917807585779572391459688594712735744833318463656842702696816396202697317935601895047570676674023896030351563264409474790951368388871969958618568247925245951793257573151255797780508914714364430092935414784196001515229727313400937204365064065710759340175962646553502475168990331963455563387917687291368075019127073947082058188204936448620841128437272148473491136271453216808957622456574273846714566954014967954126220579186318696373851599718068322844716653377069634676199390749946085069250352748827080835647120510323106790830302406639253873630958646867082113042221431067307954488299370215367795883414254332661821181221660533291762233512348066710531737564270139839893137756806680398757164471924431201022873783770000268375177142549007657154220954051204939781780665989715628630496170762614024857838111391922926718277783166477611296019488575883978480355249486955072253246175359211490971836958131893394095704991370375729005561006880208138210974984566483328650510248346543053150586631074482438205865501755847881224682685340073220903174744125470992399167035678112415611894755802720169058081651519852500253817547445507731815733760856111749676643818529074370832580379054068807915755935941779743556848659413996181918092208888972040843611639128521008057475820909897464170324675871107887593818648144905210160947075795036746388862495947735420650505695554365556770532863461864230681574102911873394831129651874621269549442422985933269358471059794500135541999702181321894053284015694656050404341437883289223012630728820433289660118149167446491302492856624797597417443778750332003759855587989166304665069697399553672225254090587241636625272133823319585792807820197466683586790932014634102270800906069543619719966977045588009078904015168486342415245063864684225787700428884829710236210172780161611264310797303299828002595472612464319069141641118352442993021587129511383810138861589939414769874123061911057371935970425550423480489686016884281379999329096419116292970872817074135328786469850682720307281970593778838205117276640642792081055261336109175192912715464007230875560599073295435485230991421496564723822820544506067998649159369387068125711470749252619840536350711836288072237775394399018991166489013108124494073902746110494411965129155481123230726809104452010572996960228602218152641612954902891414119291776736785877059452287473253534575191080672616150485633645535087777213739502372325789430717770570270480537726326728559252431319405957843971410835812386487448545443635308444133056608191438484071302980343889530188962658077299579195781225852998367588010318155120749515830966896908653766605885206120047666793118862886753619331786585093826627097356131900017062688454420533614083198657538689295771400202293117603552176841074992115960535594287276679473268707211552425248875892480960390704411704398279035751595668582054747005826379765194574507908985040034785085540965699777013358937346124780241359840063291627540972185009799951267295683627648223412693700445417302327415477900393519542441798843074744159932959910424478703394133489731214843540670215941913569532482450734429971885311956176452742278884648234730968360509438945676069877241239033467889442870105614627931553241131814018134135098685161701143841988179556593652209990997410413768139044958435798684734739467172557392151290134896408669471872217719717104456043102214419851689632276880916232089879375056008290971436731939275812564463992788011587904543341717760490840108941073844044977950763713451580785639337174748955367173890334024992035064081996917496079631547244342874749525694971649510542246776142980074751573764082308355308273968118227463275008249574735069131611297803323422936895126985953296004710325146505143570902783040799860493941824580601037657378540701486790259698991129465099952600980277429101255893481497237954576948099140871682815615423986358895601338659439321027509853874279111594717767371502448361990106581355419027850093049725368025481716937329258837824988920950937870483642921552614574062151115212364491665379869306964924552018691637841722858691431688093617375420153927608435158949880363135426202256159719588161029007709774423569417581085054076807300927812680513068907805941784677784273332141820884900554221773978254706692916011689954162895181854979991436088550357193244447314111834832109861308678619181636766882561527130326416623166315928577791342817993247106433627666531502728312672678162274136116482711280229875494567885088229561129594397016130699225649966177292350635374496249025320331215844241383048817693361708134120803160112138686067857359898589262278178903336024144971980542416714380446354644690645062803403408148980516203418231670309270814228145890037822927964923096020519902171496372800529817043146176301491006599311923796796478815158515506867612504676416718458066702778725804081735765726847854974947184814216168513237698329773829879540779573845193032438231792664696489922662300951652831678669257702863045159758205860638559121592572005977683855312035826980976594961304416409370127855126558234904067172048202062067920581277487579340310954886996982835280859539862273678872114396387398277720881372033700249505481106477192749125383182076523449193942074845632167571844938589921987625615040305922232019728493257158825968026284080953656776143042991162863875637367200040819101962597320416019276537704380566538943744552580191802532308651164543738728527965519738627450058410917235188075213634639268805252296412243902708342729719955417375391939478720805942780570755512602642933731537351233499846714240815320582520383028129422922660087557005770262612047635297934061710594073072658332130812324610558128534446631180802648762674615934423645203980085400122630386169035127053900862373484196805257302816074088918167296753416090798284548442856499732158344239874374947644481938984773109952926446947805744796473795469504759311365145229202426541759043766907681034490008885003208258796688135718668342585905990515979381673362948598068346572989464930734057636060242413230269648921506641301158618357467775816439084325915096416127063634714075636052620539484792696512337441067798098742122700477166336566979145447416196981447714036570581050863365298382561951054411649263420627444191790004596676364734993924831183533140308036049760442829755679656378933425570958231056839508442483970113613449914912091960621004535038205829367167305385453982307785313678769143979143368820502820859154644980364815194129932570205740597067396625638078193050767889118718233096813476012685204800811164139157601568275259476253243574269157119131455465823895529612154795682934573824422770465742756619098753033168217404090635603004249308688451929895802785847799423705219284146586268404578091725976388078257990460872687937648006694330110402358074493125792188716242833473281368746620755168243337311030206852451408893909000417200461760623206887457172972787307666626833793465343848290998442170848277039623617679021062868801591003452481433213168287454674339890497760313242299408955943710868509765765792106631632644567409497803133572781142364718096545341629028619115533590602523505503280513578611547162948211456579879594729995300790735649241897426146148802920765375501480108575298635791555007234806824983990996777856919299835910818462941768073504310475483785627954238541180055836003676236906871551908989359032952387175689322791270449497757391266370316318310008332524573435664995092733487442914075823249142852835485503967671462883362037409286631812835266369818347846038889831517074431337794920454135767127190733021614928602619131218058936376216426379945220435336738419955748462761959814652584271298123455127553291958163954840315095808426415690794527115815731571499255973567257413702559957303661520684089610958837470969017627685498926183705618246120268663414721286616607835015129090739567161412158386193064481252531494609956596069103003145918104835391578449024328337293716531465621789486757523316707481293745177885682933042043481769973834445581795589677347979401225312094953993226804979276617192865361775626894227902189965592728774121962380915411999958058318104620519649716431106881961920808358244892298944141400061270969162339618690757863969058498397782731929734593266350905465871591054979714339694154706778647234667843983653103841352981651417612657189842406391182477588587898134558711754605530178435439381274438856674180728692205893111822278328905801265847119530824899648546567691054550156854340609259208385027510512577238305233426933925791399756612803171341690534762230601957219404110723145544847692371045492944777781286919229543647356987857760558589900144280430970691115147491313431971869614103039697230920022783660136659348326199005671619852538215058707797166385073172256303666803916609789494423377858039456179606180368347133529275842968119925253359507687325871974655992970329256951926017523212292191713458325498918797212813369488842555761380614793073572579125019112201256322072611835827344898253713856124427440698897492477023205760338644918658147243252772065389293664190487235609723679232029335135839614113164581092664167351792352366504537153168649660827968280941017785024627691527609754658796148873125524343597884655158923411182275501866902413099162228067994471177758720012561106645750879325615005676732120571233891821301209057808715781841550698144145345586807422572325883509301968669435882124675897648997866597657002890387511956154985088048556699923710011044411558259732723554545840265655988615102071705118032568699029362557204275176190918590783151801889490883365966621932504228332144711230780056344041408163987211323978268643462552148784854628739281878748918294665921175502003952826944206679778420987609140589239784635116075846478540513186346021844130546934882087526033387226137606768754240474478233674134281741324342466160312187730597954031432018124952011454499468362971614976091235688256068844772726463566704186580431744205157614541911572357461808360254392233039268189251101491112004004110895787937739653619598780888945394497661610870898854824735152643428168933937201087232918311635222462201205664320104184976448910092307085890016882660835630887058205194054403393124829642557976390986815873909109458080747082732994353526946900709749224554329235017279967062305890268108094140092046319094215441980197695689400984608979345993399109670218934715877309911742800718935475910948329286509183577739780599040444756922529468548736676472561589219354995308483238490246104313965598330875315306124946842353732319556878230144540738532243462974533021168009854701207260203794805433448883359779608036980656600266204839953355529584852957001926617853675950322811168934394879955988112085773556648292367362470781880741382489872055335594742466732224712745562524553085163120693821102829744849545424262238932944880932596196303776317420433655282085280481906668934953774589123043940028738555852023964945173505886187873656745185886146044849717249054469351952895111555600721272303900367271266908304196903723634217589822611488642097781117698970166926128405791631351262979079562833523680859732523385512256702713491171354474547918734814449785212363108314485709292294110893968005369734785404823426894437579584502225994530325037528635038223874407540325485845408011895852849047995317308190768763871854907866845713214807690228618246914290867743491115940453023084529241570033888328884865861737726974216868690708628783544803803854669898691196872374525217080841822435742448312835342591450332796452351696928439460851071238526357258585527515214367080618950914591668563838822291990257596079760746808765804241338368459192103810051340087920002529812042322324599397650437264454961275694145021991843183083184199628941496521489665410545133034702006091278031914542774956457889575523423500847649481209704153895816054360671807136541037925158870792985482186986663423380053087784973821723343746830281693300062565942572994787846904972629248166803285025260691505738730942148973607572097794273879860374421956162782116268994552690559775428118001857262115964526055584833947502911656380955559691858337044633144262903605295344319367449984199675612217558952670471919966706428574851685894893862817554546810412984398576284114711946383864796355055096741879940998229804740996071338587075889782291120532192780245688438582271061959497034389106954703777490276360977544430787606172305596895338585021834225551853264997971925851924005837642312135237510918061359981403197482680255113879958195573106774969244571841909697586858067188982995364934009112761700718947161128562694488090786190065957088871957901993766396904387760513672714330652756242657673530244141326585242089551026072677546822459411707778336872504661379461273159608909032275762298715161504134703721095698184794225606559321235956215546834565704117583366077961294107553056774028031214293790531619563208729683003122834821947133012522145117901676928284268579516033489601789276786261955859735782162095097514388090304899413842484242845444695213366308052802079768752467755103062430874660103737014620419432166692460200109103542911200706813893509865305213743254781080037157681008272884337290763719753270503690934958280553448521873825971432082133903314561217184848451901320199847747955018488349683030756911509574657268841680474372814369043346090945667826442646853303231410405349579318397208034071671670854520913504993113759501359628183397455005845950324277985782826576496014842861951510198952323549732260937254316748632954208392933943711980509707086936088106819468406948230365796442108456732370964692652701087008704231020143021235726647114441215950627877748434030698146589174567692908446138114591221178090318680550476844986347056159630964096761419282156705303202003085706125829505085745516496701701814861003226574475870003209188602037105468481586416354272465929118114816739893960885332966824699309873900409350720947165334055766785045380170927381106346034614288614118569245514497635553977894978407839726686678848497100741207889829823032509008903823395962652794694905993548594528740296294284939166571620415010169362029280177357310143755070198183146225788570890566528562520040886367945770127890873069872713131049586004042104173011325659545894641789459632949888441379749233242117528261435101720893541057209931807958764203406662059068889341297759613192230766506422702615746711073770861005081168014815169446860386386228698740999509411307291410304865297530761136328136748343707911184622045940881289124702215457748731537358492782394078216136261411569097400761404483048801667547204709230007307895732828421356287930702045428696577742306182312727967608016007125507409861563485443824033445524619294529862940188503373145723876617503918824053574255880602389216101815314191996906892819378987180579946907476274024197674295157589693116887909158040658857911526749813283156693976228785190283109628537925405798795864943063875929035588729845354479471363694669720757574729037351701430676140638483574314493477506717113741076919065659418123280061694334391586614597364787374973166686132348511626601159183441051001573069527909091954611736472515469302508896158722396001760292903220728884201330905490712546644861373299789997955278126021044632429370396334087332903066067768460601119631303798171730063742815918585859829288793296938796529707027437456708268259064201364074461999041516733503184674381288695238049773031271968869227384262150904198131299857227669299657936260783531102552826050924174520329437810191021339639793336849310919978072234891907511766811546836269615567088770287897920645422586144614217421086551947736440621623131782646362241152012484766991320354827427956977662161246974118917036257045812771447478114556421485443305946717978066437508004930883248787376457142744299376604215594232377420389285941538351931631080557613728506924280879859864568288804051246295319299381242731914608165700858881200747220548397089899815920472426948007900853102957909910526389255573815854760285666769717736429855248472820176925138007432768349712700118816483024003493856019522146820976910505970340183501211707009822104717067018130747208270330273276398272435269127857478324820512489393043157563315552980819670800521364651789473479042215967895763865979342704523521261567806477521353584965485827551156975729782950302215517280047503069423654748473130862012942998208487896590511678052505141720184026415929227609380374577438839309462942710390913819891302184233365912983465682438197692164801095845864315915999763322899953405217590685011042061865207006134275066856920292164310295584361005639305412813629008089259902979088176177681288668644631627430413383691403039888585582816883464595549007798251946916784752174043211870877940986877443555583298517841537065366499621012644655138731454533698823301102517774833842985920064591719095321670793515322595040327394727222196222196530272072462979879940655838708686651427866268391183538005359666802509342767698197721598193020381766279680200716284875900520215813243682068891823656045731916239606975323712765753459403349771117541525815942714004796978879016841079742794691010807609063344143008368194623052530990116665809616815703105793467371502285718541133216044747440956457602759212055860841466664876562887634300647680230433782489753263698921213033225560580481492727433873585383604030563704862414113879099039761635290714882835888177107300927182073609821491488464749701679005103422333613423522463774469159667825630096339440832858020674182331900128921115789951340525845202470998946162946182966867079765984927341301407794755445783944338834744301279360219514113804844502102452586992935108161208987313899201841332401504970344381882096579466073334073203935590862050203817455772495382316217146941013425118915401504722844224343027013710134673233431519015451341399695686723033336565538572965190487120695084054759392277718702841238848152267345938428982341312983910962587758169216342489168711344492946565432371075291179628419973011239866654547664015462367141304638685061775139900654574699827909382365916875364175983775414995261149374383376680518779533125282697926562195319741193456614495359824770146074361482724377623339259447602320725891204498230335240786857736569308975286224598560429228834729984451196254952365113356033431667523963947718229670994926196360622607552373093509950657490486251303018958716751600202020675539919928539347369239516296466538645180347931231781867174000163487514084156443498850259573698178780120739712988646842935724578392640654740012628191796978348877806368250902106770624913637417657021969995944558699025861918967733193095741406091616448418752831734051879132781634302252921011694924702448562359706581690968293696280022328323249945759604022191175595553301299627678527008847498734068221589465883751002473220156586175192360348962377549448527911810450289203332979125542039472896026248907080118353268436481359655751519627383383245612990957397497220594148266674559194773849521054787032863810118280224816890409921422203161267780032841538325591896212216916956544673179688126543491383801253495029965407198799721360593489357452521907800048855568932735831134167887484399487275891515862076268682506545639251265122710402550251473373356057556381025385276152218990335429473360403289465024424423125632135811853515191047234428469874394305740872143700579959840588816597759263287035031771947515002032029857668432893324104859818940778476780667119958062547682806080541901195013738976696856117696608329346007316901154921025625929353385013387163004396525834993577939118648501590734516795718941540814813000605769600303504405865806311643358259311939416502006514860124184640794027509470304475023122200510197001966941963432472533414607128253687157396281283132446989310468276712390674871315823591253530040744562817554270866135722257399477517495663692027443241151221182604348477077585873422044835306791078191210347657630868941095200828638645402458843776420095032541787579183837569000636536672583772644553842719832441539342492639641488151784160260097982250167278427958742737664674167715942010194757974092089782046900699838498782704764732927096833278912971610521048020618676411729219768158099972561126032337958804394374144548068408861350326083634759453734910609212924402167200672737184966769004370560391725939006247254925483759779846810030841707249170044482025268861466283365367601634229065279617467797130437789096884336030921090056552376808043195794169794350999336612875169189323350139217513950029933299631839987316250751224831259692391794406046509677161043547314145317074255653361155639826695403124975588152788694281065835288675513852228623091335092764279802329432345365138088890945843038991881710973318345196708094905942118843679793503897285993298358666827293213991740984959729607495536163140929160955266814022936954100566504503615603241752727624496785010373391530707497800653388035801842789486569286707733237506844534911682085695356201989230096798567187943206114846422762753860523627936128457802738561707758805293916917346582836380137400301135949279750164355549651378670605444247209224000907971693671253193412165146451730988665157484293764631852633381663093803659311875637966652557728355523074009837800355781807197249748355918717409151939858076068316050276066772970557604107833271716544549131543487491263969248790354916742517738641185849780250898572292757289488255476874293998776346193966414708006142268006963308375602819832849829608603944457889874390871642549434003457214173582865701456090367968962371595158459232312810261288251428570848105579485896188420127836832790945868677623534580740227484606508738157050463637023804108019630468668668255774419688048835396765936905521315729279909864946884437901389624901834775227132771092584059215656421080287442421368955784312806404328987581817744715185859570515765036310378173631194473169843359338913065261233504412577437643199773055358325393150085991508613890336139699389928585570655706126466946761942118537835744734029633504507844728973699320939523423663076745440770553730026104736044938944661566540843421916714007712252745316150272458709012390948135454130086191491601877951230713507099624555331438366840236121865150205840742295432334054061313193729978030738053970426648114205072243001168340898956187927678318176837508624604267894036951812447309060822571054154069086444460331087466150185711805849196613202154477314858591726594553983067056305049107842409311235845397852100409401730873162610293931064658047998150475754943854326541724997763593218582740395668132198881366313633799265159091746114964518545214533090549124766681021816072624868878527413735684974160671357386109822284640835172241541687659662640450209294415709769612114877260290751993493263212959907543484152124721607172142496383318521995133323605851633902391997279555360770547938678653941637193216091416999431940678764601988603132956581091549368212372831894559283039412207794667497124691877183268948138918328205799890354794925275294546749184180131562446361856702592409883894419797582403745344896901896457953672388026582476860058062276363662501973781135143906935381761559412085202046962423087713870381384344143302832672094585422488833631327576792171984166743776986329322884625288556386319350248338642180063250710738538915335735747511660271555945406458663453774885203284696580186917322033234449980816519447100584438281066127718020109897969185860662185011836682207376440561215946437860886829618746337493235713933127735892595136884658010426599694554408637021294318186724608777283291077580581353705182352881307801975500186722713344127870124668055111642632088000839827336680612038676650109842587458982694417036917808797185315478190625325888524726606842733915305537715858013779931666651314647144687364979958196161795267577559907111354167306088109814557058815225283282063398592423482912760099812760070415953212763777297683705880330956053052175395857753622683394441968496178679186165998485965787563353159626367114356310012907071630631480727500932471740055101571442284544252479911045039191146394655756994802823913491419772460606486805964669547288003679385250191853036455763306973319620301579909396040747144647299424469231378134593406954882812318142363235763316247023656288945200208921540090135930941940864975600072788940820325311559432421215189347266380170375996903868284137363980006429065344698830712793414514209011031142064271846836755468259694357845265883355649522016881114109230335429846543485935321012711880052219553152191029079023449348576782100886632863983551711919300106476518272846318871877721198927838964171407619882220857809328089928291556350457793393124298651057989563090623458111659463507983766240306035616413407125092339958967236568893771473843935914330254924511785576914929726027710273541356051568783100777651790467970355456828412881860188358650058548871046462351193165354617550879490434108231329005709789736677640012548154704873197951583281076975772480254060303335423348879481933173978124606956767009837520355729572711522575073673792219819496608636462257925754731556816727653552804321141971471900511957344247941746448985640266586852843267084468703776816870950943743609083911198588161066494620293992729314053029893729465080139212370491810071603859792301699443906693833701741240749112519999768667829202667167331835858467578307187442249029347425537585737676052775714225623984886375496644111255029758127544773908685652681552623353863481645227932056183189073175713640128248424706598110347819138188699004872077674282774969850155054460492061337265053725135039252414234530320837048195655750241783363410416503600268369435833865199573671051560251077129478837906005882641418521178573170398966374192742878038533514694319015810583989379045956170155681604128365991423301705280556492065572802990778184263935413047558632980258042507334613407133099194426295204271307757693124017643567103401086569134560652077318936337327165336717046437982011718087580259476448364051815915177820396675913642209074040105125304987017570336589583056182947497808760167523854641228529055752675937377432516661473775506332797377347218553481549235066085075467593615765848057529877096653857281072296109126962051495547327673305065970409686042504882304982021045031181864571047318954117327453647991396147800051623110994436133400603632244471036125146273739073586982268583877183040815296242153651123253822430034946874117053693541592679865540922502378251163916523067982062407089309788246646412569021635663994093046804723704541627458140736332769567814717760241025691610723486252896854846346792493176936153750686754531049608783500436815196363983712483600902334140028643180050544683103029590121024400339544815106383956200121806702144552310931419654503164811073066016522566638762734939723942976254999407592176376272791585020786247535214838680608527469248778842740734268377335994071044838358579275118320262604740469861888624606531520882184892611289296711023302691623944684847081562931900973382625655839581612686055981717622455462658160100941422044900162210772187328368695656369180887107913378157864986303546825569307318286049872558817297332273920584385404593524798029341429987117984898015379666582015750558302103858157915307825349532508450334067060156885461260516715011407377377495739249251229775619960697671878750627375974328350909599631887237064428326961675023015336822762975379393230943551537335280001204104360239521765129878691684662391622104624554282585595294111855530482009327746823305592157019337607586614284079759052143971449983693990284772407003491000584363094571425282077912112130168204202270530293508175564199043785573066905254132029423734044906430270707707395658171125479673761882794333449138684365689247075077196283853531159420920490958835342628262846452143765809737464932925705281263354396623181285792414476622923841089907196675379347527163250059130649021766247134816236959985413167146343100344685152619002027129871799127894314565315927001639902122119292425728885386393430269161594274877601627125013650954456618433551342233363386135892227612830405239895791838363103438282167513178841820311015522518201655596604292616003342059532385459084241316484694887903003576754622067372867602862697349153906103392031952255820953157937139844120829585883404377096238020628492744679352218594246344084623623342463446186741687075897384892936490746153638540269211599823760810227369952406232509424248213957114158682937300432656836012863096719948140572945445481297701951406318604897219692163369942089060980197309255420469905389618677685068914224447397165084356976481674984855912398618667694274098553295372132801394329861997807007287656270862144468119874377959612840541248580633232071398095733928242399999948618232508964530381099508014266087289669740387772959145317366546027982436485300561647976049587857257488371221694549445313599477051111596344488688447340387285112976620055812531813898373624444514237653585375970715554761707870195906010507806680937548955057515920684336146267253122190196238437157063403096156418299836406646053656704848129803590289047110920427512989818922768854998905042801318890490969774166165153422927684786864125625348814102632253986636290754210299496307968260794894376269882188334544746176743840939279774061158896007019990717957433617117460242485129878198597699184867546407930763990947799312410122164088241055275331638673819033944040765688192607130855367204982359926105134634293541752013705776225154368375072304567629901223604988001329629912973941756683852997180465553098441371419520064602975927635741754518083221138969101710013144367488103584906222297398090085938094174100649821867839172557531617146336135933426541366961090685214923730389124554376176685759236730617895118562582734942139368830446184984373780465202820643019070818586563714263772166974326298467402137443569866145918744782655457226373734408690753011587439866822365377644332511448600150362479005508948400773382727897377184684654833485267946578974805464123899602231226765319768148931366708834528902156763430491901794797550583282677154764899189193366819800226118656744634258224125847266473262630453693729639773028637434610923410432719870269576468910236955385318794486045418905196968366785482716454297184594332462504977737876928397272309168665510311484760536160279886532399403187759716112326668025039129875705174132028725892078316668083557103202584848111682531859879789433294822658464620794644350852351454762410397899524833218453809801440302314770839364866052917014058255561838618271897846865599885193425709155052538666087798812274054849105005593411342410254333708071181372419571806880175759173608185987402086458865645611406167012041799841219419856961530980365822970940788441546193970937067836002249772565099717450253252422596389656243347298752541636200456419138072594426812969796619350810975672402057026248882942992447705972851218470399199770743614143949351365485210024133925976731420567547533720161122527223719000149310750726948051069572181352913503160463615743078864601208748406946879908402252930168697827746019302851875645809297169322572369742832541336043025434567119907718087142644050132088564415965672248393413026746338154004444850215132118449440054865800016851848101570608734619415489062209364544035487483110449013577667147839953906113806070695290119092767257817381041948659464317630405914455283257586546782480422124850572674613643205780754856200315407773190525207855880192923635030489391262179839163612217135429369104334763701824961921072639414590130794999109615071600436944950305053522246755603553303478463085325388681531712450597248815156899919508857956086163427839089456467173450557777009233632664885037554880498025444721864432979839124519905103457909567689261905154448161472490162776097106736946540318215569105323201958198754126414073921616413094546137534721962473258864374713599408316511021135651324345080485415213990250167928806273491436351347004647781885510960752519256581540642147534348982419996213169166862985005830312533093036001785548558979118580604883489927744311420782263967687442387482172215909812354353268067315224677276302207152791176080638697999886686041255313970178202310018688318832299513701829208636154553763629470980303478550808759640395590725465348212672197494254643974664990211575371000236299608318175812910227276542542849476457941523381981471612799965832268838305280649507616074041396945218768585558368051368076834821789675388348109435347513031806350070592816214164552555299360008267905233348379447604883392112168507952490821966688094600939934913156671776635990429931190346744152689880189402617689697859474025334816992341139805409166287653022966781250679705062806310479110849034890676216104670972623604577030844857398574858008803139400328790508807198350300676393971023115368268950216509671083925961105747536111329327669903794896251152934246510873348779360227466392150749843117821736125670751005925333081257709943230391380625781563321545713466082609770551365912366487106122437579640724602528881996417107479001106833086501993223261812999612920036231649655909675012713158971682378478801918956956739471308467416929645200266135994645418438269021812779396304226807689173990300411411050913801756192106080492330427150781570787676594326201411070321064095338875735965968063578531532779672815778993524761932646024244053400227642144903393725431031531442340386382078320015729219455140320876614258232544369337601949819699318231395317651861660405216571551029090595726355389001644328802477397169352505642583354281918758931578664545170181922997262532358176469868284546958547168250131578374023352284962295876726222790544820511735145051274531444185511948133891420123714225917130844084086601934768619685824491750416737974543127166329391690726810134651334339918877085181513239168934058044342748103225941558541280148126034818278310271196201363029743672822453699892787756250163796639887169287279016396768766587410567828580253180537821261988196212204889988964034919115609976735439388551613951628075029861690955566031467161706073554592501099282224826477342564528250494529354175818428011003187116479652565720019917084592317960131193166431608119166573979005136898047450808773604828749341135064233511696243222224178489412561565248243183656101409016212675962602295127421022467170916054935557242864823883559529338667199208734250995766323980240752008306832617464560615573496830294974599317709930471217318972155519143792618552458852861145237993858395774872909480877302168603135673668735074260060918159112335252534369842366303569433314308884292633518308125375286978868800812651302054626409182507546067881006385943966088202095330073827746570432830108399506239335747898378503887973096917828250896952427626578393692463560251784347996968240557315870150056780589500888340791689684427504548166996028957800745108536980775932001858494316738260305748358860782827585299989835285936343301097497603831207369912584754315382168912097294683463166191920279096790810337754426000439101004228620771603467977104322974047973432979604860603441055181570901253930432859037215838247685790328706160102082234716323033608629949439754330938374342183981364350676817033170176433325680877865026848674710373752318511247625768179152802865764839855485420225688285234733733890331217932845039610769787565127878085865674642312110442769874854946952195856935842079561982731934823032804764858052282574865823083329800009075140105790537685738113273979030518910144241834771205053181113692756537331769581759464094567538296860854689282066057805613755510235986901993737482722800007682728297725978648392566308049289835816143126891993476321129670044656403355140002540280904931815734653085078058015405589155477804184899766132209957990336322705426957548167777210279062500404188048787541671596574410252155365006320624716072132220281509957041993990194596638282437449106389002966143533571075956026691790615604848482157867775179251773902548534616201041961903982599671085323239837666682124446372160158336089715600478823758814768746044520649056056514766827998621249554584794103379825775368530881682056697033010118026197546257633384967134614170536376722648542102592472672557656376334572933927532806911153754687263306800257836054609500105054375522651987888052292898002303542152064099145153590737421586883913742596422664079974921074262048821709825039671916951748719533074611131281379790983420106783320847418989613019485034256263424369861347592031813524770477471408054944363773252023307471845777183359947971325646448755349765084073862765625448052670633253855714281628583324981988173958794258834614263024495535840679467553473208392695790358861992102476191613241423027818449436253333621819500201486017434443373857449885961935226726781214208875139227236238949229409169013434969419887137159514002745538168758850273319257268187193579909823284765843583687113570407776291932048131589762228275007155873135335149138098038878044101046945561565379159773842276963023900134412916685994153691139355414044547708592781522604655216860115361443207152061736415868382668262664407097887300480771436823743117305533109548732112681381540156394384747600429842012092846188916036485734277925247969835671208940359215247401245170744309139167568836731950012692622180714093363467904960836912289876053490358983452986167533632028233440111790204002763271057446418253113621622829758762184723942158433115431488021949429791454854156380519514945524589574859207665409449171855252649861972239989657775242426189081142698305046124224766518131149546823835190568825978368969876748760472155697905032163964703907460920726779862793667389337672516270038129258722710183517379687173372414076395227913721008670935147114988970660223721703654094256296225991039350466837839074518703127662626771839271756606618172561578765581681200558495254119757315470087060414990597211616217059191927638127033802540021801324502713285863633059087067984115048775317083534798189231218045188304385903941018926486156303725983379761354441670214604918180494424197790959119331431326906928138650612228403273135986471546332602435699772767698519599652591956232725485095866898133343451819760673101391601376406682745166536454606462009563038416203381812235913572540158060244213437178091206179087622864274442230784838799042917066544103421674870032033486584866594799873025864730566929076757008536748416068110336129648338279436914339878613314179282182434387585020845868195531512911436355030367457094691723107240562215133713115092087853216296245112422740141378422650206413823754844148514768212964555958222982636320710454040680419801680166908145774289207155285670653678971251974107840240556037488148586489594019753641307866723489979628164778110732932345435152108615272610991549735354562598589746614630737331035152400188267840732759343139380007313496353170840573436446531201754736540804608432866253655997345118759129929526185161400110769527165257343537799590351574229361891223952173180991824994192491326374137175570919088118109520397779508557932613487471256996421462388060150194333082436460767570375437396536434544144390401101825504648105083190798479860174949054949639175852310769926061748669544629967174454789034554223967157958306405026731346823484561805025231923706631585229666807129169573321236535333786952413562983940222314957651477947183787598811029400216334624337815068116050104377170148679034160214934172912233640401145325857112326374987582736003944439578178481294577800058301461158958455706515197509756585033726699505111354970782866361851480416269256967589236839046403056333865854864273015128152181639497401584822924045882081622139779874252198637759549101851720993434010616362651379827480719662164101133801882529081538086426898614995243847576591420237725985982631196881831453627313750177609830550363287537340865292010683721364848270430932050498267089462574780093126896943096861054294846024869724277195939851879305287699587678170956687002689621833905796642930703470885973841450883538365978278790874295768499781002145630288143841917478274916302089598952666516254374079904401390506563439202863073059011288624923656510921165609870092774044379315397226900470507893785932616866351251394829849684445135963580304275314145782196749533238225564173307705608911393557505609347386153335018182037598011072408197676781760351282705138625660735216990906093355008832277610562174085158325069114777058179223418740941010430224275762046423436758474131449969592344862822013948452573275721404369400811679189190943462338341402039200273545104668437192415348965616982238167803271552540323999169745008396381249465371526191277471605878613361520864478515918240558471128511999458581017891066308205443311477952723078143357922418918519428647500597819809862580434726479760025113783605331965439743001854264630259354402996312931340249429934134881592087814838976042113744201205659662806231590852823760801902156483036030006961626150373669526614533689585509255660951442629726267412361649416525395310439969400668707648404972345590991772762337091323811016741729754538501898163577346663752958569074645510086219295865061381557406300450133434024484568801451710172696983060909788392184484887258088968364206418208013253835020255375774266431536639426396674881825936454973368802930480204049711948550492908952750924105553331256386571684936502074118083455661783949468802071164892660634079753521337017494911787998346398914532817313017796431190378116968069723377786491029377199235925201377046428105849144105062135522355338435350176617545096449406420137068803577944788167882029899669439713507770154953147350606465596493623510408984122786410408066777694399997600156202082973846895154902383898840997740007208936228924069494131526512576508838687451239365672471492834674549787606079752606546918753508332505443483583149593105680195143470855623610054421340588028511367461154754694731392688907963357035877911331042249200474487832330141603569121965746076049217149763432247879613168812512489973610049482402782952358165579411400285792047414969532928350644370978871075894391705071349659667046093910988774396047955955632325774313869697397446422916085987192497909025626063686814188336515596513554001968854921598961721342237261673933104867420605245217764501884754268250886496199183495611374706867082112763534105622574532842609230626047256609514428804372176676383740262669044695947125234306721339108142817631211577816955966870238661426235546527060210682977184009946632843699244445839595931335904538502511440186215159938100699669838589939939240832499700224149076531861110231427412752630404875098838619698765734389146802120274732940235897102667496376954528290290319040013010425688791625826746532437149020171863030824387172362111856837245034831000745437756015331502246406390742532838543234442777423651083704671165239038194811532391947483385148454943350907675172975278801809933226792240497977068284496544769762299056112276270416467318887742236520334501317186185265339019385928948964667846403164792168907275136954945915190666427667550156731655781369150190148808127364765705698222167836667999395247232581635720525705078802727892288645289661913018519494447081477900778361675083121363084086463391864499069791858759921056341306649377335953057550555840832641497632636615042528120018215945297509273433100326970398024336668250511341151278910229220048270610314648044609321261755978675154354623998365038105416724769276357561801378841548369066340702299655807885587119524330652347087723119586300729373247564407012761381826862553406509968497357150619737578109173515257832299177571334758448518861425353903330023927796629656261308728290931023464463107250741437470174626133894005119864362333381529639117460080749190668854526630741442369847343562696224793398999709816723865929764681592662581337759091318526290059395385958895686779857860054570674337796378441221616938193482089353172249809966382573023558441880738222927136839575408139331576195323032248029242806047988028791192329141762569258280522633068613314841727035081484939825901039865776042696589227951666723114756192044198817056924042017841918881116303575216547389018609761498785165724342827262286527906104616346445419076407697291749837097773106249658155029365115221590548051392545133184768404488818731156266871995445122838326153748197453416366024569040636320084161659015734552856216037293321603572456817228642195993329557912342912240064825678294870484767725353152322260567528496416871376652681966740836080944340302767045672005735493607606052069860075771914122272506467105094912770568660914887594902840837335657431202712542197236611738990778879694018086775531022746223407472243704604052912347698747979006466445880528757888034642963641686778293645511226178430902131552569629294242314954350204771348291831050910866672141649611792894321711055156531188026938796468046042922852194154324806674283607795876143525742407562557341908237324245256804334428799099440812003734870076279147210902007001573006479632984188168034699733798301206860301452370089624523609149396372287902129561398145459512415709573776896227184258196160664958875074858317191745966559117040086642112140316649847823498451600739032621055652576278491520155187878810853218183551804859633630476464851164202932771833566545316232104949304381846070940624596324139682296773494180062474073150867795927567936863491022576442335896639435082201425103636654162191248872752726272498950529498309426846273707083332640652858435876643553496292228011721936557528255249549881074710133850997174631402387548689046243917840636074404154442238904685018917985103319516401662187261980712793983826749511764504964575803292442886070505901235534948140968385490140303288498252016136023067930329519175603604818989769769845806962309876667280365363298688460668185265805403176460297465336401680331287242040203444169567480279430451956004714798916839735000413386104013216416951654687356804822390779970320017255117186347095625157403359076006132188703515549640286407280250609371952832946109417525411467416732060120109346489726712575011902506517545453074950834405147737867609705562053490243789973576256878731563287680356193221928065146753666927845277737010828605118526408584326564753460177499469306902659953427632754219036288913287081792240703266102105496827664974520358398884371365093598994313580361289516549581094582507061599221841565354533341190897937904236853024476629072270876431647796734313209387467371368930761637115445388245305186540901830267475159915232339843087185560609662507104248920403226040657219841195351594840546127257632682257081120957359991685946978866058330793144133240637918206119330310538831128244715978980423528718307805405524928536984397450226278901366129385057573050880471577778437894277101507644407702829441089853337784293384891539856600516833953127851191346232396407514629999848323251427557184942358513721229347855387868645881494282121415179280443990085647536554191011581399333389961593875785744285571415265743364765156418653505799917340474931325206011101299538057013024694498202751828307260220358624931854759715893532619544591618189782612622329081365547854184237183527736239527820298064835464507655590789218602722844481823297463070976314170627735219183881573126843116365248641617273381098245684455510376112013207105012517794789596865164984581881248424320482000789975989989475549010418509713506577672230538885331980338489555646269030567079804764199121929733051567653929745463300436604615008001574218696314614742818859919013143805870140391054112612276310661973392167810079070158894215539350921853357334527585503762710979501656825576485667814248512807346115468783820355137058543851179584451481994166515923442443009932163728125656316988074880390227620945728846157338173419526941297123002084331870010831741027050518574787363027041850933280648277200088787722729048426101508893215951731053202323584233553360630105336309963876610364487644520439713615642923347619981526706331760296103759945655998804716100835732555695505001430179856910725386283413278900992121041111472580541014473935539806205234036224521452930602351027033571772708232662165970341649430864985396342455343524902795719005082292541138887736466068875749091984223842615001703007734912677358607307143692391590760312961527737952675292139776171911383951373783024250359374178402529064552844037833661999388746378493397727087439943101014540952288005171905384551828875876804236058118523505276508434613977122052270468494405919612511095082216715238077341287652817499767601249923647478904510472785376599969985246055865197145081624375068376596114085203536354996513038521251948664370421586864377677852939173930198851175624788105475493110090483562603428097576963563786969117687666361872598416823193951258419495345986918563261580263892013115705703806727961943902507727298638670607495963349715990398253306629211393816585614911325179576589060009603218679860638269343127181713410657396461805233148180960611646016122572522838680043674382663003190682975118961052527081417710989218051442994184319963537548870666189774130960183038479931986945170339491291510797011579860833984678438740536558720552586424746691969491804246033143479237118390326745591312161678864030126220899537120322179163542516557300790708284325135592260124332579219074466692862916891815054220695482476878834245207608201974825426765945805650479835943225781372532860949068470557012705030603225692324608257834390271658111489500090190787651100856133539751139718191609423061920781752196484988661375120432196307785428168291659466552871220509332760144246462802638891412916613377994696970013201445866680314873217429817896445409131710517030614875342752072168012769081468956849041697571680603744522632658411164382252116214726758953477307690332603509274234511918468695914599575928847271817318712266723715045665209299402975827632462904459109129646558980670053945709890879918522507854546670687103207686743512692236034563367046217687456216409041435086588145165836927514026950071932918700721407958797305666367313233058564668088680302035437217882383972915230556854425549493796599493080347555576449118729153872273688685917935811856125279023543108786188250065619160742140458837358327061237974434051077878614456546556102070434343091902383938212386182905610879916253648856797651952067916159916880616023239543081451374574166622905913193963321255710164306915848504430812903649081626309797793955566453672707318181475617114317456027439644750385442306248631775042027724262981863271510717292556939048452651513178889827311277851601494467761927499998039940067773886393171718976615557714039540977186798490687709184385578377051224940891857902743037299296042714274582689660597064328399183955694134575510523417483759872757971233990442720773725406049518183928556435622252497781136269479914788025141207198996344589468604608944589039010689716710740726101310855175632586841357756841693273022578385829591992006854044135831337310161653385287409623746762795066485379701463959530665321765193574133499840821667838736865609495767050755835133567809431493529725033908120340677444001999965512847312453278646148927299454333903530249262468365479474711615596025805661589525105142662645533016149403786883030381831294013293685491253028436580742105230776496493209734252770773915217499199748419667651943544852261981842677586768693806194953076835911819995592473584916141489031753135953139184065681386129184355650316749373597914021861369646552125348831184836492757694485405717509600255684991144201190015456526002232572829626750650579281255704585383649350351737074031141985121292576646984015228985996849169086603020315674955925242149559725277673415551364257660726747885341006398352145489648186605414109736581078884336369879941339859837180274682383586512933070279879976597693530719334539326019048103950874017472841742346337671179025483409424834246276693729740535433466506759714032734441368074432460139738712732966742990724382718594803489361137596667298501464875885920085073252580567540502375134710993314959542683848492514780459954239500728076423625499659670930135446304554670282851119937180185197844798260698014242428983703377517727503577637271943511451833348129279926380879095075389501026925812790446850858376266689351785690872315406560047900568143997048604231715897187416820697754884277293652713441601003142460666503265321751242083487682895632990017582585893197889962523191741808746948106300130500727820460201296071972014938501908144228096614805475486192544838160427677521100945931092644670490357313271845266725634423010615466718712073668286741902715582176910765405733819729973779977316106036780100393122733967887064153064788840424280761583519474234203144712583316622945494578666980676955193707928621939902289384405696979376528692287487734958958453675685114844860407259736868218411761084838578298077605703050859431189409597695361566258023674821522529505299373757152902539574642466405470661668571220737409237462201634859807707814938616701841581138601753925363863848776424291067131759842395570392343925396981037886689278059586867152937605191685486337484350032592528774499812916417373814662107874597564212128850780150918158303317117391777458360090007854794164106824304455088858564863100960873622801233989173364686626715830009259170601763817251243502890114521668464117630960703266520682671940392378193298042714290827628030938192093621955672303560890611809693034285468624114484181904398899370708886708040459836190775272915864049910448602209608170909481372964178773121236632201372060060116258287359954219808276775900853480140704018174768683477005965409820095724624611409595337289685993288561588522395144941758319440532230880100287725010097530960706326037771611106277186405301774035657125067324740172658991787763532014673199761417206638186358713403689675776150567420911102931662738659754841989729642212306897208896995730520415635040578303558240626059816930331607680860930330917085011679815465521709617161887031640573283609415955962216870923681210031068207833996302639803060425483174409729113655322577508720983906618197474027080328135065920317877746512004043323512983330382611670220300837753231069764198486869015507232780430751226245496427261848568768465899711989811739592036742405344985608597110452247389107101933173876341706398369099016746895357492100187401995724159742058244145609372598119293605718169527414666233076458074828177030385274176743657568990390505305366855688622930902744087568854169861084233778948900983996362244374229274697620051223359917367628640514749839107738887423411341835377915965731475797676706711601176154796232716364692668342575256404585210572548061801184257908709305729275026993794894674680966087631462741763378042726355136150626306718468902030038715997743955114839561928673603379927877991417197699063123450819767145136856822464384687205600017313658762007803070106198458538264131816234603435357050205286969792086242318523603318177678862873193489506028880709120993653789033938482535887864449933662444358577238803611016814854660670068494388914039678714677791687793519727001705600783816556842666161153132457622318159465057574233878339559329207972731078198451672428585802452321905352138090036933965188744617832703107520750338441599370790195125909048930759314291952495539404376217457683607475689939262142898710883758524573505375750862252704142900080663763697154586949799405399288211535687431009469515388638604884073811713428379330672552095592526843160288302790341730243402757599785560991997268970908194409728678561626914629087454053886902203346337480449328167909162844770043935349741338601357964842628424781390159598399882039563731013501025048215925964470404282211209056084570799950563955515024984247675689918260707017637735198500129068595561071785573152391558306775599830605201768523081498339126143603505767416260142853238743082751730694406887541986367517069822482426695004265308880488691896022907497280031590842749605165919740989559021457421571142208552110228059854451524489909432638743953840610725590099036714882472235086108608189350142778809627885446408188117378208852248114708113666414642046451588660011887618997717813859275878681573400544900676679396971894095874608274679555315808962917928969658186272204877649800053987185667996222265398719321860271024682654952098586818875173906461714530981548042966830235503627678749618810732247008461246843755067234124717889043875456069422220352829604003952956817127420111685664581638130030253417411755857173894041164607060996927826326190347851926334846362717354681437049445828071175538501226969962566750581185152360002851248878323023054644256442729684344007866198069362932064273493232779714511455770563155394906585571710147524740153916989906570472521024979628180039481831285446279072645901540149671265172529089475181008044383148115548978916566309948067489494716093991104119995987912547982858152845817834514729316386645372646856576668487476463515561447918670290315547124055265551454305573209296084383547156217068514454713286071094839134387261036657077121276765147545124660820858918653024662805202488931429553640441720578030442054371130563991896315286178815715928007006243972493883414891081803627171481966702704489519613092386708071612622848826819219336802441931183343186617391274151922105645818410379562989012824816014892629693764049753454713066917374593895624005628117879638874120013858599161464096648059594745086962521032758582077120512240483607085140197410828941356679147038799269041183937506593567150782341093072310815531635393768726773575783363398350082649842765125931463896051024996292435347448490035095084936434825217261183850158214938743170822158373680911352783306345187226658263921731360327646264132871718676739313696632779668834868276340087292568277719638393466405906509500473999999802585926858771574386848069011592812857633012279460941966745486791702637669342305396746507405299892375362489562667733734549918353905155897075079133946230308703731185735532641189605286747487913191034932505926298569603534592833255620245806270147313024162804327787191140790332251070445318000014954961674805444466003043874785492275363576305272861437239056094199575019493515768484107238574498114609573220495560221840686007899858977893508500259802613217710948251599482806623043726276843167294361556969884877051367535598103665253877655274963631211871260909026031073635178567406861054470568212619964408176385936397999900291598793373294563876531891378689420273561202108799355124970755276320386523360636873604179057612631430256872395986852693995928818705093727628392603752796702274018076878940089531545315195193983274492371121010763261015381963113359742480914473090520302606783199663913563597396970418790324317418203912812275633327273025247799538888424856278066432319765586992244835330510009412872869818270184119866220197108631004048047959078775380727438697816248118606809087426257270899971037957956801093059887956636155471581319239621883918518768820282000299546747562685975369666210962337465029148445899788097661306981549591246697089572978732006209586698513748744220118543016086544975937069508925733777678931798531907101524623343976510551126206428230613354818877824241883026051858930827443972776180064254834115534049091003325539405011376983233266100723221391959415064028968975652482595689501140270170773743508534376394793675949862852297051290374190684116719415421722614400211590653543313239004797145713687978100225942028900898822662673635120943218041303580652999785534571314465128675878596451352349301140170766455344542525361602224274256784127083740935859102792208591190523248782142057501329432604195435182451839339932117261525702058975031910100383011783464774890836620319114651794441503733016094268800890909281024276770887882212299248553259691586449253290942433723422090113219129809766328698868061299380687260270042372076974633778937356435362429848701296961762284964872699158138627469319188181557917493144709744870432409498551876551404707045501982272754444933798657906012464043862087069851516252133863362940957956021244107685437637801159751125592574975767466021999082617656175220016338553674360368716642572258330286010577896872702048212598910197707312833693474407653150413736365026760161788150965067064077596170106914741821586477960392858740436505947352439970454810867566056590808080082386941838250483874009313560741640188816493375059945422664674151916639342388133953225817202030454483899678648507745511400793853976297722284959621307753508474493933357037192544769485670919670955872417321973426943793290992025731031358372226175737955617909619029667964787167988189572402101854077886949162111621878702348669738904872838548003340206855953750003545626920333784841710336954184137692476112019452049309640919682086019088080174248825032639158831158149079515512514316316107021279524596186449381504139715550876496471240035467475817377974593491694390906668659205712186727823533627162297124676954707101372853686543687423956389865108745945105522190433268635527259183699430319359284249016940585540385238697345775183663948191144369734905765336729677896434341469850676871271347314458170518613919028621052905339912318504847319968873249285986513440773860112700533453133194455365268964751049868230339892998923103417707234733122464820269853906088305373471425327441829174895761536402044495624236114188973954217581617307692682438043516246647442172256094123996379447107179708819440343906992032362027671041662252965429898032608110235704593369569097358805154258392194953057126792297703625623707062009228405209304376303560656375758558956912420243222691143576054846995022385529808353733018166597061895088074388689111181933501090648450102364252274062145518561640134413898591551543763931140977341455969556332145401241611087556874096517456478828064582477953342280976407544657324142404192719389167281639685455537208495382685288069805913810145818431138946455638795214107691207214032945573121950740449818384893513779477468414272992277525724289904481341202680185905988490718705104789439869696005471861060996606229440947793042303243215810872279785768218485744812439905454410327656632945431578871932808127254870127278703827676854420506215249357529219312141846219954616751959995044114517585420205566519159395862052355954018372606423590185782293894132748331466741323452304279782509773320878368330698368539866588204977354683247999951366948820408072526509076404164386822284484078315309818153146716699805045770190059699400177176960957321479716845688240477085462154747371400325455543133564819477853179275821180205269263124109203747373001320098760804663314164987973205185337245737526086277519432490707998237573537471994361719980898136850493703057878056566713668397871068458035831982420068886571249905741309698449430972239456781285289880316546290103513764641614809043898712347176556835015241883185567191265837004727635629217436333872914168237475588897694313140394498442396338616251680372293707106852448694230333047255767377317703563963635264459767318888461191712470666715899191158434943084782382657169787605230638070847585958968488270603769494407173653190456664493715560188199775724547374063852004540713585037132905129788150113982198057705760342466461208285187884816867425615398981587033524725087393399929649002017029012853291589092790860277741662138156699062540411641893727122067969351855630271210029155980242241210078754183557488685282094545806361889957643864559042219561965203726069785097001323896614638519006331826235534288870613839450241278926183608549451917832364246007913584179662379575618017317906289276126115058057614401619403119763418525475409152850799635412349110264157855406647806150709845407658450304404409642290762529674702638064446009322986291103665618612727719438264717617865474338085521726823320367952223838427633303699525624342888699148071446436861742855172650458873299605333706132181517308016380719919646609358182406778196229677042058999170695479938766169056893216218813665265217338669348657450567680211689169446342715294475159934340048075686645591491947375868384325650518453003500078106392507258304013519185186434172883482801112475565384571268258017146497256790402722487831296168319251033360495799236436759055289810998280321311314557980392789622814203883702773330960650943361800149639583754221681203488443360163460075097324970914851295966716123187249532344379259575038616679414431876953946304541232054747010517600262121636118395978337968228510744971113427031926243725474131363504096701001029835427912646743903400813752595314188636977038584949800218706658364214631846603390704980517915144981184016981724881119243540513099595695570854806588095034184451668785969459863333182794836993617380008643674564442305189031145633516216040863550865386952005822681531600937799820111777721623163429757245859646136338901631181096379546680781693179965206015509860799253485997705467455156829386152009914251193819614884147211092087088520042823310305781500839947935714998600175560663133778591137826106291778764106906397879576253898331060775088782211526001866216880655807814204694822793883644283538520014303646072792575224295720092802337382093940334210468037644866085252434564747012523980769411422689950899444649490255994764748336764975633937158086433388907056234791026466717465522249542196195495812817140483018379321952283873502038817179913350721673926872253400530662851831434562792797844640984702270808165468331181440325858077210721202351078756584028234923940844221590390635671151441118112598628417330205075483178529531001701360387940953173035173591018997414823960750184099536059693052465245456071062784778299896004094666971129142247361963215841119132148696030013429318571436233775897134612453119525443093091578308183897959942256496869681934399123693756075385138309649734633806977638988581324350198030788961475210763976368218666063368225361687981169880210764377139650576780320536197336636741271965927878118186371971789189715691426566285742389259274150553796854760737678000326261717152772529040526198589066236413063975506607068745832205486313308383154081898828832791395031365961528664239929155028014827183978565524175546956149155129650281285521936843477906293803018386500336353100876912955994306690704503937734162489723024581009634910918714094674122912548110011936817906905653306572040985995061546827639445500119665714666376065812043224906844988586111371882369954678245075621005302652736012574246871072022827497604255817397025543688681834931344769122451953438699081085028295704023170402704104056900263742810347088549517556934539768468488717614545742970357413272894076160455207393114523251335571182485278231571825635920323781219164742070047399847743140675769071465949570149167813526321562923382305868442242979149346312977064458878799667081429525447499807703986900799540635715413142773639981753528759331825543583319686136283983724434776875906104668416448769548543956813127544163585996539696672347509778039475503597677105367034251971905084509507144612567459253290471602114334548572425793456557136472484201653107426122372484478519097496369051265159063876808711271221090285403639070786142766359857712121776314317277966532939800755338691223991208006038710326959800584453741783894447996541920374428527358116920810123036941832828550705831218006067034165001811769864075945147821941483021630303706705260716716685049384732986128963613148680220236091988549641756135418027821594391270961431759258587653192779081654211269333058696539457886331256985784274865097488727345077727546142944036557325007139479058823004180282481631205933534915606260769460677428374848473550236940748448576841775162470829239967237828978335069677952481767651529152114406759784912030199864557566262456461650101522040153827055173780450437945697038371259482205068492944531681336955940528603264946498007322305072021923900208601437474351980769363096480295343529695729123261741906935203336313145704725576253633159534960903505947284026978099263708215149677528819679152814362294239187573717574377966793106939414810215039207376506891828695927841743423026392310767006614908085362540549830414232637036566675773201629161569996826675468471531579876022081395316349124079015990004037927095661150079107567765230646781699877677237974935433948460733643210938621374642646555456896039567387852701444295670162678222226606289679782956179006386298341905010074939397735000611233866393388963810681770920847038101159482172865132656280374192621672275516801701192111635952668629676624174790161051707474027381895261861874056885398481335660405760558350707987327937819854124044708391523542125572438529207302555062608811215164995173212495923664425480222354933850020516623934547638477305003763413013792579652805955876420917132722337193355628197929617917323107604040957532934002254868669991543290069228273165876322342174978821506711106964427615184882624279103642759584444097734912306749005530333296577347615113651701980530801669647447902376038418412428221540091426671265694243405187120588527253677288918325645805041331828243435371376086616572077881404320339302835606302853268937189073528099752818442495529865208205934254943861546405975393177682471953903621777396525264060375272628367402205973261080279837890581738571449875546330226162768274931643343146946727664333130401944217288950443355878157240410271131474451716838627760526806619849911419835282426078989301071438578088531203554463466715442257020866895245202635002944836198369880769692904755590906675787597395622721666815174517203213885204123453622515273151002941652918584044104230732632131089114473785833820958716292284306831882506297930174087219840964353415218056680987190807350524504976720344277949538704019903496364259632080935073270051233162237638456427628653048595080491687902969554615353609504352788412105306245459404048743749372796452839424536619779749698671316104182960301615856879062420672635819266989689301595792084051393321171305658374025857332774816377945886909365462535308273412267894597964164370821405356089452351447318232370044519796531462764131012289417886949462999366865732478619547749467136921893840338365733139375483550818991783433806440882939408602560677855687445457199565484588277043552799120823469104988308098761905774304417812394063251359307193247012134974496784681083372492523735773534482995638231346966693174118167880353254888680704004603395830904214662491406388936979351625317472038198487797697614426916548355724381732791417276039523613759834382213323025976952920231994646739518877825890212054871415459598326221227703868816236975877957876110381445237094972782522781748616050606689001193278392050225614884319986038328995391453721093321302807234402286504304230706860851187075718785007034027761446016498069105189856104120558066521149708332773514273923602274484938565255510097650599727602524831252862296154559829304230659812799277892607776917934160856165295697614175762991364300918388288269671546701834611160617564574003785198435964243140773762379837223061015106823112006650790565217347125433035597042228419587477171864835550511658910564295702777647424387632127472182582760726254380302353317550098656044163206287720505713493471254012203297521350725539046640587419215398561716613364859393264092689040409819208994854407583483427787093190010905607835456524542650130991044621200985380882853506860306315869573848673796689066800489378313587870886025740609143959630487622141600884370036437601025850757637410959182120440281448201423539685244696116982315076973210717926434916055782500794323158554348173967618245059185481834265611019585925625915476784716997238857224866573178914480747152513305339499965023789661110204004562895132955355038816748901778843038803939535545244270741238151613142524612788407581504901917903023312164217027388104518673290517566404256222608171260276228782703572297803969108502464328284314573089333735611082225124617444314313160094110833108000645139799177642999544392220704702515486498214077937824947448730804672468566039663932719505787010950572583060414592628204291952694867568731039762069724654987930620884727824959008835822756560254628007292523555981810477107114738973242949992153283594117318224098957788820623882861108949736798509784983526787219210327960729295453129722456902634250621465109809664809024551203319861819326218729965373072424428842306929964300861044998447428759586767868667019782762174218054337251320475346210683182073568631687971306746475099630815940737835005050707022756799551734881162462170945537581842371050183331902991507491944554718589285184417885936045169031814758105524568485615794798880535634900494636240450525649566276665455551551875216298816093705326674405610198096435819881798179153092526472270450736484914395699800818084976460811524947045435630919959133399869559583745258639786854704867346209461007531450123712917202053086716320899191337300585729700936194874888621788467223278279219365503527136336286237766304082478384886590063476576490358847067357005274857255264175917001250724714622487667643134016065232877601229365840086293412244572461725485205807200626563182185657036167729231458778234145442951153377634196098316262438422059189720430204314032190152344343035521929873971051373020323007704422685441248674795918762529102261373367009038463226787765797067807147866006927509969687385311218147203015209441670222006027298220448555283268223887629788997868183406522514160957391182817473031682843290251054678361167912546029752403199465902537810165540442356294919549854455830736623550989355565886893486754517414911968548382211657279410241090471298036091628656423604597446250401435693390452166037316792697562956665888511347127992982388099843652724241799834890495891582053750449312290654121004509883997817320513377935854689823983139004501399162603035317765828623045007170786931351176403663216012199016236387676375393613116135774886379699948126405282463884103992291250805717163277415532075386133320657280052322067629307399484836122264061426159903917587008208855434373479316567300528131897340636723836201587130187228218621146980446646895758262083962506527292282863092278105597520724368409622592845325754781654556871459564060567088411863008414631284821649183912117042306849969439740115509913505727299957117778511105661384667640079166806693869604451697633612768105066502033258589173567203776645107541535412146305055151394113991747375678550383110990684508078107908215717356408150057704383799547250300180998220531032085515566947055689738358860447658222577623455968197206098455066013840166872779277485855321112152260037618182794261406481767933672014562899451934744664195625479167404639592638216037053169439866942985485873086858206541797264933413985789229293002158861816760704671618740739138362717850089673444042570877079025440059516176980297585954932921503139242317192999570126517958168692980014070665518219457921459696544455291693394941994391278087726852887423713044671265492891552392491597628687715560276534200541085635491491601696973225443921714303090811774541509445746471922119339033437412605844822439770491644812392480072188017597942581608039338976404866554015694341130597077877912467427313059011046825832191357900896934976722917474100978481725743826497743245082038003435749613114311086297226371683226945630336162435957005812647208710697871875005522335985785429585227827794239470690366859585769281536299641363064363310839436784631056196993720129387664587014156744393169611366585100101899566749373152327014996733943249325652387646528971593880047024389792094078559469647485879513732930660024009699453431289433040152489064882261966840382788317601818090110272594652094427796740247597543662070210778805927596358679316099624942236574883144517208178294997862132709493903621776068051893597194485226587504765916472987828789247658635888009144167188136858269356904676459440186943910600819861641812713190422547023585528929199616861733153299297308375983313385151882299312681628472963859225613739019251680447819941782801071477358957116816225058316397609245429313146712220852958428200181691410478746903684046065129048288333856471406858714540303186592114773195345216401297326676625935156648104119543945431465138808749379093794582306295352959781385778583961674423862545575318100462408695553107718285520309719764955680200836513637229895512346593368466151405435055209365656069343654302369082304279748166882604391311797830077362026399258800084320921347705564858846757340967879889033597956208700044941282762082353346510297044426874637342729174014359634085384244192975177191001450281619740764588898070225720864875676160614736969660689110217922683509448059883323766776649955630310728134997869403419516573609959766674285616510662840596475402799232958938954077523854140510082848407942969929633140955538056917182549792342550016365609535035661866377292432890441869699342437918502136772530704010846549814531811773294535685016341527808108509635480972892339119890837149203049169997114523982631131463806591434683461358018944667792212418938555694023606593778871548687775336017833510797111560324984118563251183621849946970632406587643028172486159622987286387704261433659628723627143108604117390206070633614400856708474588794749297113492531412847667336124543161421110198439062088156921377611919232763621285309776507812789047332906168340088359431383404777948405690250099480769668712623302041615696628946374921859857315471235083363312185046159377826528347963949183458134610569790699928364703413276591428731214459074273998444715263926770747012942769814672652570209056764170548684341861378225248707313356060038439748907451487591558902923391980711428659316653788099660714285670997386233068286397548726515160912842739733546699862150167691638901827420371042788275448143508094828644135083588850425857872176503141747128115612162453774064982673476964086294397179268757358525696477267890800844710766065956254336516618032364433255051642738872518312579104596111770795657809934820796137946029920174990168237433865657805294863672709731122389482876666039645513243832933781238431024971649469305617794692075172406295342584167014416690634683836935456542816908646438906589125154801429232222132869327449962701781256730590669578889717025468393557587124816802199243505560199592443178092853792120077732635061477925265025394293397814922441772608872959077729349765852978558775174484982665537603523292650257987043600270809494670962234950802510593187276109207872972570264016579196477635408504686955717855678367348559839624697852113596440952938281410316671442694480081266745864948696184089592284118091098987554208560863861480551072293318595215522782872200152480480644291750821489222733457288088002983518774057328153857042219119525932025959887470593702464590658689066465728641244311857048939801274268047558047797419807047463571998665662200334881726603229185486525807200389917932417803589353534496653281910215974353921159039059392961722694610357438211286803983208514267603139347776506643223622815038004305756023987433552630665239468400962754714242779649884048725670925259374287800029931593064254115849631681612968428336240430195347351899230834668399811699364290831224321420780514624698135159884548207834896371605866298979278457294084778854419322422155057437462678871487666593235347332633959449887397131166095880248462780373305541162258280153223058065769985875678263346644040118516183033197992688431496477574379456035085805379537160597406937099337123113383532638254898120149796214944390107748856722592088460600845469570344573403312700644243752615418073734704479472128731545414078346927139270379436486552160557724882807434802446733384660525962002183315906270103621416332376672866047878180077999738308028561557056972366580436776778832783152767146088180224761682615677884609144897314279744244424906813969595988532545084492627019935988556100672257262641857993444940119056888266430953012446461369618675909789083810392692286445771402238954336270600309598757336309491773051932817936158964345927643515430418263904852657182136020607689196550942465633026011585478902565210204376337290899663438796563851134623858902940357153906148748228836486628393920811995388888574709710996865296239531254163909204640886077442841730048539864173809960416052300046292316291885184320330222647334798107338870357628618642219199471904249732866914918284843707349457094069358154791676914156507964872122647334025709864147365259722719061399643398570955892054403783888562574691593699321071703497944431028075927867390416782431860241315675325161378197095368859712259520477886382419928539725897043250269297215072241942831588696856463266564043398336975635331301581918128161653606146868205168736797054367995041283987967791887742871544066653799084088813775063793455274959780049391991056992605132057122584749264216868697874072890364828281384449825689718458780805849717246725932486768442906470256553952227678719075218735677023049381805014313364845798375292118839183912884360048420782258205379126752668233017116584625915607613479210233202242512182038823195153424052502575406752663204855290721241359826117705857133947101431447788315834126427686616090516730009104307275542401297698505836413367608594137384206690441020167901261142561053773972604832715753954406656576055384463414941930187259552811551426505697061294245815161476106503478127795976224110154255342141128110628815319067725383385166243509848171028253183706225987330474465264479733107461767039619184390249200164338885970514780911498466479596841472520756946369152039294032022354106713034343337735082238575969931121818836604609639420212122845641613414033938920721231327806444237839801955876379587861300871771687835075659214014153600195473040606007165878640381957892432684593214231469820445316031100704019571900148421311382309868784789547597178338827976976941429213424664890794566202171936728740536385115758485116384176396579144906156546678560257233889029219479619143248046367467144932473767571858748633606588177298368327387559089340083572091745601693841691847828913886985715822557779122484116553792296579246418871407363083925880167658661698650762324218032035942022334551219336910012089464587767847822934847423201448606630610856540597863168491594745615641876243397652538738445506400375248248572028104867335448131391620807461790379170455260745681271616299568458323478609183435439792492565955592471683299830830799304874663994609215208787081884708860539152972458934872868680873642618821810586028898455516652417655135948141856241644303360116309437884277820413734353003424778252453637448615576098669128341188242022941162692947287668772027943639103414411067046476062393167503713960912606090716741280811744043761443758717683164128483677784072300125535095953884459699755771712778744703824735579201062920713199738184744430558995419874891070941618574535941859666228837429534499406551513280789450830141861049089265604285046280435184807226357017657593803885956482708326277107691145117171978211915236948674807469178550161705803937758321106864842631466705059735973853936682389845644352378587695438898563953368769757677803684443935374276577186313513669318120320259962811311838120867686209271861726541752776043940984897049677451943820823205216199450849037221905098175622590552083551501721353198606102861290547510593600594805771814388031713321921335847431514188045377611244585429756560290911563544385104079233606205281986557633769317249190736143821603202677988367968948934073326704392593036583958713295492851823975828013541223423979480783010061551029679099042408976763415763891389411932434326546192481994870335399228350535474526252899029785088176586664395715537197918947214671781949093267343668201938432558658915489779436997489397974928847448017670947072081080933900126812011126582782016130049159594992234561530000481354274563966520676834691381611885661321577864402797853569108679843150372839718222061633206327615428230724757918994943990716992798107791385643580157268682345430159726956086599558253159677028621202228842697593272028414135160506448441455868938405742280654656161108301773203202431693571166042553968566597041064624364978763411188811468640910339782748967254822206335009491766241892316946375164942113826790726180638690023858083545590481025833786684867345839524452259231361888377765845474778199198571530554563856329318911267837358308970421298853183797984960271196508393326399150348236476845630351074900323232258273171595000397825230507941424954327328396970184629454315775333341372662391734064289956797915689736313199786508525717053310539828208718159594836778558149615754740178786970250410358354292117534931708605735608351560399609334622220146369680104046034982283511775887273619589594377217551377038955892023765242168952768183298771866997951690319273726712141284461714397629395666455835243245383496684615382447776229813405146907537500948131699375932251086518881664256840780373261962533748652996059066055528727619084808293094345240564407417324277103127837510011539923155078245915323938707487483898112816772173970243474270616970893843738898410163639630112101347602957059904002192106423157906726968291537430762133330327065476436429632726783715002366777909596928533217988076741837114725270604076295936339912151257017245284610066887761572140277554872581133497748534474666377321413350345606825579615359477648735327501726851606864700603082836704434703516135796779878804943173900067261231997867616622827590400008468620038279812110822566033255159363355400808065166699886531418266660464894829039001074055188736505423406711536264921273858765022551616535290394868716118558341905366706731719294328266768449759363048028641561907014063117550015052039029301363929157516586481714937290624440791956472915665855081588297883364518894041389612065492471845673423961164824331289258870246784069078310164262799177714106388663299448747117822800729156323321940636273572200881065587885640601175958363245006097323024105584518113344753504713142613798867290519261210996455337080023215236409331003106576530905159451603777467008910981816530818134454473783808429046283902143467478634089501649122241400133253513576484927465832494391098818905392466052533792749966584723843973228650970665645451446438131422951681671574903818226578365703006523094028484630757413582329790401276277385858656714214936655783135480230570278774600439746497796095896167320968638914623246103117526999988598954932615423057217846654080437965018650234258895039361214384334520836661417058653777500936127764716656619796753215377626455801517215800590037943220548230466212183915311796945324327690641396788203399098401250226575403040437713797763002122870858466875671941076645510902185160865205004232380576259571676996296907728973187512135372445932026810897888623224979826075407297954100491057676115592043469871932709991291568221847933814385347869814613906457712246530942386253095880626220325516415498722622933750632857169572820196069922446353263450910949439937945194517359435458828798967064148760183365148312769793161808293127106354544474531241086365194758821609820331515137394947093709241418738809937617686629105268642162343660682927556995755609589524105405998963933615438007732885516200941438931738728686765987235021447190714978729040152176999581821030192963332054834232883990586542464984738074577662443512783134708445588968395715137689625687570592990546378398339626068330738880059516136777742814861729153752135269242274132176294431666893832293670865353797968386289110749692501875998675584336327524100290959179227944955320679714403227586406754373426129420885033734705334422439931189293216465012325031508982722721789236992977897296057836355151306528329135309204532972815738035436692281168434160938714731412309709327237488963004600739104841701912680062827457748933314779768333378981930496209095817566905070904980927315390874339984027611113014285551764566236277895732874963456261894138833916015255939272716870376354244227226753378128388205316166874265200050127817451150825077853406748690408198268881901415430131795293014094896597420052429628196748030002991070680911031050348947831788515092121880792023229533155517881967864690023058095186785511230347344232863245961022462169626011255452864153359477204754615602823291364806448116398150013052930835962761830315379561328920856682728868201616114934248804006365424234356083437139881741062692609169643622837126606176064543372248084184060310728678494469979990941713291298202412449294355363853394224523626361848253126855372820763155924387754716272617986342365326167063112012138440525234000191369584705317069411803719592896377856666421290260118929317895981478774626687030563938208053746530954769429262848946167079104223480722575043380524002121014429266655783065059442981775595698571815610828746087112979106151180491202464941817602439202204070435238769779148476839013063634746170083839865292312996978619643312840709519060421032634300375807090700148387762748947562069081634814377509432499165840483145621937755093576575464579804327162194361922570663863076765652227929632728848208015196014527860232650793131633743300256195333659535786165915440824136235949981360379569375759792877229633802953713617464403311226723660133768890498509767539739883771614697856354546098289828393877673196780415570271065674376970923246946955386132299428255160630294288907776697645189511487307175006360482180278723923039419991136470474663835966723292299547930998309393182887517121045120186136456812002373204650198322947596064236484078094760148102501727607916580020298072474611873489060094424136894386664546340181610531845557970331611259152717162971401511525593847885583811308030633785053762836461002356703882773841104991211058195373362177196036002305629278758020945276901299250818234235056947105589744288119170810308375535414929982491741990812386261415226866546322732181455800610045465550768400629501782760863892994136247479960734131635493524420657494805954073456247538444976919792701763695270189945181866751309794486972394872906145372552630223795312639016198446351693303423833717160091552660985557385127195154504860789479698864801939737505728681590659867496420072540070993107691857904618599487238532664554775805793991679444118340186576631898269448382172680193216119780243462292461295049403751552241832023763298158946933857108094875401551102692040710972633187936300042804645201825703013408745509095943843964303236818425254815880534322030464608718344599517215473124959275306086617648928626784091461180208224964247208589154635347592412570129525052401178512357257745057650690536272044358599441226595308532895711691789704511898875337927634430827634634895304915255611071162826489323350537398277542748701805755061979424268558637873949231272100564208051806897944231540921504752067901724109024782006232801681566985080709682326823349279752101245528070127861834909699936299423345420776780433860849154360339363065144722145692327136123523094913197142296599720616779646626123144873019334876503582743615939955486127795080332905483699242231147489394332197895038959568421958955993845571442322140343744727140470216678646019812488262698586758600591674857030133037875426487754225775369976811358742073338328876216162983148032666258078778515956015026605735863390070168188338321469395062245582817828551741329769969562400425210534314409657521922481257850881762948533154565406977989867284755506274591419995147460824993999747057900036456943895508093324436864406589836027276135013520501072424112164630089900394806301911572746160192803384751889985628091378892510494819591823890850928144442761859421408239655113181787487808689163285900757562646448578389583638741564095806571677662373004952921964683393675028353878109286502641547982755028458997717480163077951859696989616670353504541243295392573030795260654946012438801573150352519051961101156371713862243080202478188264596669140113023633826362369588051788160262617862486732992668879619969032798934313853673917572649935214801685347051330779926723816501398693806345714808824507494027523740048467428240671247352844354483403392678219892718551062981189263998212811316269065110877948464644372758331439704714563560006417525195523968462917368331727850658548810975981492175707620179929138003894658623246851852256244668500546344449089568719012995298196022434376479095906082630271225632678935590632702896726410868787999239993476641583727947912827373799186315634369998047488889218389670698116420718520685125024486663192210278240778658561204460926599368591389099745560415305006030051282236918869416632087510892939715438317887359988796137010206276126769142139907768054968885984282213742824708437083092083136658938579462387741418739528756426313706996470142689510564531020749720398626250043798719692609912341423979736100182195389313301177119683201480983421363721902682420674281392728629805457401244564406374724234230756267776311756126374159333304023742481200616835288003181040008936434117633073577669959870476250292969546996675440228765376698892802888832456190613919212227484896965063422371897207634078687675116609488907132475206264756060662544916469871263746001756540583356776361794302763477917722339643793469053056219563196388211960907618084858861949658066098985331715201328736497431846063497772099072284086018694887847373826752451446019244434037182548658744763522940699099706162824288028749672841216397669876150090237979468710376212513250390984151636681672952838235000939002488019558615491137297755469962452018918083180443768444919766631908443486551968028604371262911137049391803404380497206125830460841322785925285022950781571757844295996522033681732532176702509427188889179303956526057463550844035005061953712843342097819262178002902423598478352595393815497393617118474282136045287364764864325340396254355316775503736094495757181635930369919992755696712144665689816964567175980059503794743175918944208173275129328706314529607261006793215203221085472007570309884237331019522430824667535180121967222487238052345242974987442825977919105100356140000957608058663323683094460776267684882098931999034908432369112666753155832768900138724255244877706818032649545208233218789600802848801445979459444959032207024131123054153985112736177236961731948547911138302977031739703666775475523958643629228670383097553465755398199517813016582764818157984073107344438136955674616750875753107279640086335087997418920739304743143833827471128000397998302482821379724572754704374605543777010724292085753197143403741168231261938344268483555288790923406871346040827871916690732029006571067040879249769393727828613853128908743023133072813478834630919066630855723306558247240505965780491912809852926126889421336850533424251943286729057862011866324679371001386585634851726017207921797021331337667875116793045075110158513583244719755329843876454957786140135869361604744373375356974852116485318827915571744580979673771723312364939088202322386943154474877503473370040295755799103462699467598738973670707389801074836452307983396930609433460266976366286163453546858939158516288616956614312701949809219192723520033010504341066981105797446046319408865337858208332702552460183036659250042787296666040572727777173992307355298380046544942257330074843510043487108331120226156606954238408245589139037736648370277677248681529308125589323730128902642801443674663830210902211943850310230799659009829032420816224331494081903238143404661862977078917385315614024955206504961074630892677930895871039884218110168454472417134926610833522125326218626369487484706988858051334406651112396865466643106720697739472255290888712789240221150736710584644653690105835826406263411054159050384535431874614487389898987596389266015586461168073972916066382923064837147435813684949026249639037740332898977979232629522368704075930337249743349377294220099659602012679760414150809866967317894129888027205552259444455144563353279666708539114398141026865503956088882187038874994219338050474494405690710170219456618712291681834507482516683258767412094725566437218885092184022399626300141024696071779895627745848137563766362068624772279850458716139893197571487990053725817888474599395422836361502373640783978264888945665662138667268381477703944627132297207865786868104013198602727593071374193874521233659269880583985375156963437521800737803635821284626191061895985143934245968002369103440302097691977940129104886443103409143822833400089041319364871052489865827609057495018645687156031381158422895779155721266981666500114123469296179541312881279207296510312628158685704333301077963161962016368534516818829743190697727211054717980566484452331740729093090767201644839509811007241445561321416491823677946625361306231587562366545183902918133119964237165136458306539007290590306867853846106015315357125496477824793196562157881650495275865768470001642474696700175197001635940073655383823451800076082022903895459274383567243346682231962412395693391580475968422087289127958989175986871927775345805807187577773167885017481283114462054668780896436671445212001939594758562936911938000029003912442048727708904476859913244777905412360264606786211914008328916181393493603968063224641217579264151551711496709137269543408464532276330208593976916064610762357691565298905740973848864811253062005250493221662172728079692083526082427275293229302021606770914136859930617635782686266806789762917882007153946864036175876589948186176640848379505673866522673474913074852481757019328962416011360052229700950804451466167455366865134529646400674364824682518985535124763273125964415268032208446838522668573792920383569136075635216251344013448505770072012721413828361961006010505110045458924197307014386603200392842910782029226268376711270197684609847273741835190617488888256300501292084482008229865087819251389385659297296087849862491907882796888654820387851431828805808244938446101585268453926938034053203947761427345869158607315249045573612533097917874083739717591959444457499833029182349458716815074927519937472265215984034176782532444738959451247955022405254993025177475273885607725959224461046682653406672462285263671145450153064901314581285737817759436893520081342453089016240513850657819255721663110625691263817868495786531544554717158945990579557760083878177071295037938289976591989286053903561943888047254215856205952094321696623988973176841675999711399966971209365027456868767759696204705294252120481422567611391063681565672677504354724079198947902428529619633840451474528427248656211896424568323549428749594401506119512577548538418067230732635568301165175179122990971077505804537380971287085381650005275864664354061590009187066902534911662228251925714141137041013287273646349123328374476970799943709914807351292884739173122014349804457306346401821210933612422983487807418028622002426512317547714087472732510883624035011992694878184410272333569260729742169715302094624114513031776484832374203254931313948592260907989149567896046264823096926116174933878059749521631864054651643025706197744786205005822213199487190018158247834031733547050590750947988249171347851724033632673870344122551713984232624053188463097251825045072293661745308703432508657702873753097965445472690545074561831669827609147504991175772739045132836626745163073588244505517807807472796923243920370071382327103169372686040699401879750399207141843350753583836457679621847127136847900261054923291877568025754435230735456238017748351851132287625831048548078393513480302291982537229982955100950789332481917374098136153349374832411923557817163400525182425990624344200906596135276957916398256206826086907544104795379416340293122465441561738018970807836782408946831997880491751806338675362567720364771488905181609352439052632416535409215982082613501770439094400031670090309516355659710333331698993293430912579620838133079486430371922793223367304656254311985129577404749273858257737640774195049883756265855217748158434656962254296118287829824149757577384743395117557065860090100783623191248360486738172343780603439162234611052608726581209064350879924207833654745411514612048796255538105955985120972375507919099906262073723107184287516045558204019298077828422864807380547308761759071287459965443372986455014805397613528431985248401020513790284896943023214525434957481597232681999073315215835783524647137500207514807155945168528985509427035173426240245331883124491598636320721574544888952442720556548935921803706105393391363099082423470276543121907092261711001616753968667389297230738092556549858517304172011627964447709133901626705917613537782330690968868120308762556604306501630629163528786290331509063457891745806215691482303569281697073204679566156493449724851269296755685761140640476245995924093767458494234714700672074563495810812005914958115309300053817894421523250944237467175683745607846800193520683050671745599589615358514356492156889705708923301423459007293106758895822731131069596667642177344351540168396435564844384792476523523280412269945431234274681841239464754682689278010436216184773350634656315128195997030304715396544462659508541492135212397159848738015112900267241918356316497836817138408546553653520515816457620539306878168158701133253564204027653891149403480313925927972249868328176213847203641389141330829853481928207226185202920352183257553590179316930354963398620752440809223143005250550938550416357602650580275995919482419832638379967289847202719735704613660887913955106920741930054358086400008622536715930386429748250545189289204880945867021481004435237424914995162639806387101641880116092531561859175239465526305833381182437447423350600595313609741806013027804761453626054350556971634948371024882560417364902005295056945259780726951305113417897894087291569118298668422606952918805145561794063546389684570633870710473665717907524114646747222947554988107526551691391496135362751722407270225261157171450531943105089969418923289375678689326514751426092692009804539360054877895779941127276725369895416648586469043637003482213953339384782945601988266717578721522587532293044251068725185981344248912020241689942518548378880452652425989796461630432438574446152268586986941969735402041212011853785364197125662122917314709770374682270102447103823217554360131686107308353931918987681936505396364530621422475738948025473563482367762779078590293494389480002593096209823188686306078102886748874536207824896114276780990580771716644211222595079256323067766841806930387733538639005209979311999002416876746006590166568809353951231240532930737910556150924111705239001411438073510593381883749976737829588844476929093315650090825164334218718570941803048041214952632860029539279680543035073112364864096263997473010112972982030697408874223631403068163987017268924253600744556777360378805087508586973645649232591968561438268400850346510393951836798288576592520140817036867974182599744520015288957577811397166635825946861431848003267690685714793269353714888754368297265257515058877605479787963290180910425997607403048233596874301332402668700809101836642446216221271188585238037565107910240250919255073050915594054332882176297597728519478182621231021826891797682987464669788442412895555417938397474702939919673140852526332617080866356919922037912274921579197690715445776946675012214042421355960447720944593930343635297481342369123318721365659884112796406958617318074148036520553292363965799457915524668666601461917361209510765159970347615952819892462400860884580206531631004331246309070364142632572888048928308658751763503464776375512455776210259815143084368160315717106553808014302996663587129491115175448680750921605128482141515809577032472471981271587902768472505537065212002851872105968640286308649731043222904713671006805897407088671096734607603778002883902531439085484808282520729256948124260318377759929019175781218069431333564234549730970703600301241337923240670679045823873925167961708031365059864273708174192530783062061752415791626961656327374701655207585208764515537951850747663704895185934830996083713177506264736604787807543838499850230362578933561847586129605907836881915067167816173195190722610124966544641236447629866076853961169326463673196336292423621162383503623040454433358159566884759651324448709373152714022359867044845869201908170261721432213737841614069070843188666001377952129816438555679661622214938889376563834308207507915357541537244808367810985244670024154044565019404756836218504831708149161654525394956447487839145046843459181920056073376420772396556631598307645782949172014507820256123997177640360820547513330335127753191675151440593192475545842864969171398837486764368147253604822245929406989125295621012124984902243604776313818082565897330541030907136504288679296920001432280086886631754844288184958682952601451671633550439780130903293172397808533291497737984121970741864724880608091730100091738569356178709208897366882489692489537501826122122881111038397648579203700922285851038102371468880354390136677133720447373854699426487552077225491981409862509579827065073522435985630734887780128589932679102167411391590201600756194222602317879026044414245305234463152557649109539376078332496536123014306904416064429665210685524361719340700949436812596199798222122406916477111444077372442182361704113074747046532150990901147850170731643937792219785483385758563101004134798912162744896393098503900057179725339714336661186628030080060081241590876744097627591010711927757115209420687244470540667925624677125326770875486834567402693273365017154049785511579328772526922779505034471950330542271743382858726277285496607413430539235709829016296436342047302967563325313884589251782927356961648164823571727655027737083209723918143942867265209335306242527561488187199571880038803537372501035636997777434255048642505461497005014306054551378606418346702014049633643796159312179185453110780024849939905779286626597665755681266062632870700043828003369156739701167657615450945293694368753464876187125919972230246461148014284066575652545939893785430236531839195691740492901878966456209330910338197967268304177786527196953841127023074407856332988933574282856998400505416439713564369448406661827092324061570306405799024422579887674499337965974998028757044155658969362039311094419011025533907107778384330368988205740539850921350277834910592323535913048009761962831532409257118081096720060826519927819848879010026256243753547870774438425040817053586592215160512837229050368402313480672315906812609479034955226500478433031500464286709091713918580284728133846463853448462166573874925552688815100359605796525577164053554963323642165208346532756382746878889128359584972719175674521946779473099315910536647880205048237265549150938000530689407492565389731179758131638489423816996112610780967230178572800305363501407288724090400305488245883635670067888049392834755886850493961248531440331370894884673798332830138680676803519336636699365536292422248624083208995937691362612343632057750256675607642487221732967368397760842308011849632458166706351760412334705023399997000732951173225307193498072548915426531814727051606941779262556828041812322016202170296803577539476663294314784047193205137840084941122500862232933300989838940376207151516653185711730517620389196080698350019556109118574914408955829840470767721298989990577350344375380035570822331665553505139164589682080645651189305440503384076028034186730825776910378494608319827004279569897661188995236444325820259062096488309250824221335338651935611052643116162814380753363265967831925681094852897561764084794969836054912805452254687583897412797050138826904516118279879504998191289202311798046406526432756896184030633872855137077292157661756764164627690906463673250877769296504055102774340014159960729563726334163418600010398550400822027238740513557059106918478060407375001568091411652718612704964819606666016478095890304824784336238170215123044297566302930150165395368463308029798869326695040140784769552998350473942924951615616324553553844238778677764656529977137621945939417056966512551746401602030282279638379672449782600663845676336819859342501703765741091840236363886644561128759329355337956917803445102273167359255481820564694665416225210980773793387380097638501898532360940748559081506195940089031863143999177985619858547477172776844571300084462931733047335895626279753547063315989875924035865300153848695877164522880276520852482844819220664407376745314323698640623601885715161896040687536309916391435593789860398977916138208239482321642185498844205424808187978720931257723428689955814452959429860207945195575964710942082244810683979831997618374759430904401466103085892956366469403107535989952884227620827363065657210416715507720280567441368105828908472236180020890213030702104950593462962364203523201864433373048414837792252753558608147737972808095476303018659991949942610364583061872175560281885589526486822996995446841293876731605942409182045514145044006463994402263007564897944983882328804515694723571330455180570549224315249377115124575585333626534066031284976336263881676254025282383234431944956412408315552080143503327386364502189424165452785652147720904632615472076358191601983613066853632275647928295010148744342852275432242282931297283666734479067453058506164730344703772835424277383558997800191484393351604676428272627655114819749542884605245001260515321571364775270411378513338134119848069904155046403201691740277578664079774176208016241821068561479344211236706138966925590212776111751895224137099950006674156142060895260337240636440878212696338019961174001515127429454611994176157765385815828407398519545643149121415239289131810767901199231606365569128390826857488815795865760469371240922447918487281161617039243251596251698312952472344994289817852222545411414304404218477137089482415580041157238559632313574513285338728280753841066303129977666981028926515401141550153832829428989096169731351118728801419003043825883918159267901656717663128225330867926172900161224426911881877096134274437444986404294796987433932725803520934065752606424620927054410216771782908651204541287691104896985549339453112791353937932944717732796921332367075998653027379496166447063366385558381044857115482843248043272801614599115592287212799943794920393532436053347704482767074878329571588223659036335182802619205663560731814451903145868757638697727183789815250716679993599086352481072447660665773241071154779803442158923303852949121568723578514693224503277771430043636886782423701330707986991231261507555715373037351764393463766419418480125128599563214905329003397559325596918538532713576182542064218726917597630322637872121526463349668884736978582727535299783032443221295731984188771577564229895127056710458945648504402879733567722034522764818443160004737483614318851500965660264452169944185055557390013644972297349463243499803787988725959936311650955164090417813028939621061265957742884369625980869398850290629622683437224493293633462509540283569680269903127536863794936135560006212478419019785755988037729140027510988536189112322497307337164668156849364313436465736172529103515607805825102760386868130470772477471126408102819402946248885810270017167737817581901369363095902354389784585886131053534197866031501887529877618965881797760083218484169248925673078072114389565838872093450204427487197124376071879719487111684508026811056350148185455372759891324938984696267000311949830359305366586331993004088610105057292592149517445644556462026661701826953933368939914087842014340174601885044532560103966007306695545072866369289570930457903822584283012195911441139864490502582770098500523057685433585091516095708846784698868941086330700012381848955201831152279196852596872596090300439800640395974689503840223417200906045588903226106776153659983732073530695274964269718004039607927634871355169448148660417435852868294864918698958844617271783163730470365628893492800508237331981702537096891187877790171282088881935581592406335272231066509979197528096114537876250141140903247754084557320057618190509820907265932227367123651183823888448991705751298964130528427753691185621959740169039695741309843970132442807146136432032489365744969801116643440549261220678757337375673571287443780829796064355969846374602493489951186022098604065161856013377367833492833568188665177343844122781034692451435686970648262833573004610390101019912848721426298982776072975857529779977198922692473001052345439706105719068624499327432364559843067549605107474645554112641986927885120261877066656345689807317834344315943458050237217580720495755458656986138136005329472668545991120036723030151075721202629209559226724538805361151701994224079197352759583763691309920344501824617991675038484896079306230720307267475560360720377247768172949037248630260282935351523785977129187920999863188607198928920339856479052417953600711680563516121982588066817156836295751742307982993546573773110405997407646171081345447640723595496752101060453876610898350561941131702503115113933606140615867350221665886191127334145087939955511713473844402774998755668247396486145991921134338830381896790029663485598652874547914205016789068528314072091477459521172844265442369116507345981656684884053777839077177478162692063052703199087149109971630946741621050062408371056671917907692441440583602567277403778578980838108190703857483650773961749978490474668004586167166960316563211118620022713987055931298194964611853393036323234011070218837185213062007531799341142640222422061932793396996356344447882405826595153893801593078251287542203605134151431377962897998153919051280300467429483423065899871932573634126578701324634671705220539513780411973391842006948975118879526598530279777691366493938586249227561274797875750698236802671353856999719840645730638606638346371326723140557726825676846999877447451219348580161066000523300691683096537438255809389257399111565783381673890543673903438318916041135217851049353410194159320968988528312793425565694799586449326728756047711286441675852979512698700964801664434989123726019386025191685173219427427752061329659670647011024028971051665987487253723892162657712274822622746933603510400769138261083460162528388551811699876024328725602380033636310361182362641711631816495850293338324948960460503367807828536700585970131406275879852784933523090627253861678656247340525628162040464330670502964081886065681061974875488215885716151945985303112594391342272382176060850479699082689662704992647700480781674413756706303788894605714012425314760432029203843713074842246903630644079345073602494616856186857650031643139847756160567785440457464827874019376134334962640800332390840256384726090573516263073138865855068437660911667979850967857979977355351989857891812574083451654737963994662791376574174179192787996589995101549173318614845009177215487814069715545560545784221840239555253459566517986994915069547007860099811642693949814011768509475805032515741066655175682904306271168606238302974246366438204550321734085155909624972967749420566196801090764919354643225892129868601960799029827836382138239649759753338811472309116263963962691538103516237509649398744872828021742897940086166896515878720735306808322793692589302106319980156727315296328746363660642231832691833168048020728493173174032749203406366146731705309175137722097123520406429979222634109642542929287516839907754098885379890941196571625922476260886599332278179284679002206393026709383202354453736277171459060846428312059646661051030738004523762248042827630463601866064665490037669318032160372189430614028699020195838328406066773132234865867492515374484560992979407270590040336859213599925638040831864273277017648110189198950729798546420940836731962972014941615627450315634633933787518680303076958378877974092156890498397715624194770635754683568251571068282149174517365606932972731954093673947232691824586563878072700609489287102798163353744745323726084895085930810887990449719287641536101997564018422038118395363989929842754629603226135570370750228350546506405075937304007463502808307907048349199874376102385775453240298507513918151971682169032654600470160275535319147036653343104740660602531722777820133560726096972813862139817257745488175260052765706064354924059254419125306900307514767045109697768423675081134867241714227525997583805492265087279180852614741931967741577685567083966310375597199234407614942243873158751660398124613044553566315727095320394617273597526766349706904196964078730329548917581101107220340047803947876438986460166617840017293317268351704930447634017733905003088271342366088862712046476075712635581971002723415819346771092156451863444897002035150652940125752527148377731594598824226919111972524501606564761209131329674923258653838260020893675761664842530855348539064197949905752584277308657921429572155967074338073535172907021007831453182474360425266973579160115931142939057452100188821015129798069237532500736930419973312864217083285855283989913446438497516031806674853668776348113082928700754556702500115647598501645979286521402959874696289215920716572896463105727127980741672502317616706405450517281662817730219644444076543528567376092977005734004994604069031979335674446609070786733547437567460867825784156386637711902888607527471774124225929227563377875800236126541915720522372060909617902494467560558780248305148610130697432428287093697660832016928132605597791560778504119177420008532690092330868886342841213816599919853664995882776734831294452059637283754064388146913600677256620641515359695202776352379109373111883302741787931655804088682370264188845033273225826461268201033101676462695799259450481441516773642657719250188186070572099768343385266678385103264945411431256507035128128726294645500322887751817412954907251347904998183050339986198716619723520995329985330362255037895576967494412191034279339247748139931320516047608893300314012851653439613064303863698090076959432525311817553851446636065484965874417097361100481571344513015746860929934647374706357694568805366837116403324143211750543769744861240350881558387031596302262746419669893966016038116098385590800010862562117870217979211050378345482607938192364078893195459287012507483987219946284689919954434763049865257789775208143181683062137790021749552218561799534015238961090744949834453438676680396575718622847172327354021762307064364890377943119464701481400125352884443007179427189536099270685081234555754557359950020571126118563264126786082264845582320513521320250525187411007594166660130486407025458767888570072444067738186410095518101426428747430226473572268862261366689571170091341707852110955432210709636327531880496703109429888741043335059687792962921879572877390780344592547400842459071861793220785673851184429497637060999296062546735361929646413644807003163588752880069582869457307992022418887434694205277975567750629976122583587693505601979815336318134734196798126003557802549040931647962866725761827378380450128621677874786326673666322149945937050296353202917706305412283481289736291200509408049206970877754799102874657358751011622602793678011209806416421488362931632622659044167882553816346638205643077862562064950464780539562032149573752670540399586653319714088822149730389927125558558872528559833567529205400315343904394713936213319991794685003069336650666506055108835336511140113332940400318702433582848406072276961688133293275777817602160712766395404157452819371991297772480086024809880568590049934629219839034363291336952638860766214454921023049555237120570007110094222025321533306960214923254753576234794852163732323439553450157233987208785087176493901366700630625336697786543652387560704101987366065091361567279258762958090256048566284940634208794405683045998086379962353464590835464310645357599283262170717953125488517321003272129866025329698487159006618828307583372213496269571138678877852569528424275241133165679078249390338519523590904821964060068801680894340574824336360701658191059896815302695102181975052915031707252797042290149586221427925169680448404333292259632801656918546482391281312648282341010057328698168758177385620685308854389395118705896775353088853062061246968267710734219530684368939201570003635489102769666016459938153161525003481232493968633718998127337201405875928406207021580480778631303790035792779242031701307453731303574018502569988486963000306849380894566269822761828361745686018785184575767038056489204683727149679020684142378030402994633300875357537619658117834635923362692034864320557975476220137552690553025128104063538168982387151357464992120459546375530826605586233105932651485671894938723608699463405200232057446206164550106844474974736789286347968193857348025862989013916405459693583620655011248034632826767412076574075764578099874782084327571683894053956074962831679753911490732791356894370703089915740450581642047340712705778410420381862886720069494062928075989863512925039962703587139293249455823805991921673263253135951643656366149765393228265723230680787502685084335977136954326286536347634508073316530167875862236180474943776878919468655147470688505145381265581477032059932582087775691870322744116244297707031112450734299525483223135244241136014300969705659748030842741472223107002331994939238391049896226901196279307201284130987007118888458454653281629047236054705194501998310748783024133638639752501932352401936074042100770615544701356781949560316219028547442713111240293806472096078895659873507897502883128297298058815757539861991030396259016487977103253820996891712809686085995547998024064550777288702621440075110999929818614477831343680577912770183580606393650014877078446612071319511317402623161652521610636187045854655624485577195989655119878153430770344513846220197601065087843825481567090097121662898618194861394733838294761524313304476606650925947365136817355024698127627917446891665393231373738006128984623684822467075901047034519016721208911083845064597552421914066125253996287865356654161098612184495843644759320601574621011751156331917569245976016012662320810361079470405701602831622258411450700561327176195685375813977679297022995035026999850408512436495201988454956104672837510365117267441015802952710517413478342060963673718201134911054057915174003143879896294292766477679414184778395091475562423310177806589272523162721957515776927122112980068827479005790200845486350161290302967271153968495094782361429996358921103116147473945300483225991146421803756508311104182107603875340293656437357182609772983384770871099776746545018198872635185788627589057431582278423487986902270163650494241541223191131624880663893798228655569379042524551487007220605320795318898618666611045428346611281120772880277271987276763304355743390422877534096823794826283185815092245252602977474405155390858344938100163790600591605205929063446939042465564871871172430406898330622141956250488052323071465743992910361025384416569712995528050933464344465698743830199636253416942615977766409911350216884466175410727751359423623072984787581117355520937553016094026783269581062745056161263605939878944185239747497120256492499816031419697890131327058513290403650808932877224907630322642389608844266367314599252965391323591833400207002004725906924203082374086674513519499840309553618576910492553398997014076110313897020940705001165233765020848939578497616767171913458034078963611952043591673608682827456053837912037937556625799449539359601190773563076655148787250382484924005281692138398964099285712820557875794449558213455374027167199983244498710909624752492814670860394433160288956123639348353479669724148578839256751409559537021039723898310251131826311291833325951854617137503438503122550799315788814100569470346871298292711931945704250477083978759550725791804533557264887416845299878156641543922299302137555003161245605753747365051647279194389156346903334570909272527292739355305594480479836408131093667739843228720651198795106443274403512273024523116761698602978961698054770672731636192355607752021920212679531646322440291532041607455018533346076264345047285291958199044681005295330497990598092777127369999425824179914800324821919960980969242503136723808659635608699068773107965134966031520838039141091727751007485764346155919815023416041962581378052676673780338569024221813720547028739359204258279598087816616140490020904413760565242913334316515315936708218589825235116108943050873372766083913499797854162554903385876311234672086462687459933871458773955794621508501277046008505287183427533919717373774386524224777978613378293519529247026092845409728323478702181751568882416719859436879019498019986147322478388800083988166636548523286978874676293161001373031354499795907251566720310134407783830927212266983910876725582108170882307402847329115466804890158728516945013481844414659238552465133042928711038829361946425323188745117032190352294963802262326239282699370106179903701864909273885509426636376455607838828093986618092261329047850342771515028467705533431778097140961143089758585210893161855842950231401388063150027630288697126232200888685014549431895860666259826847248315171857838130041859618844164272548780652382754785267852823910545030350966334781536363082705431470225007313799621565921278280627480148779487203850587888028280086184619918760462805741452867208992763315044249023454168483004013012477404047084839463463963450771985372543921529537951255975095165188847607989500051137330423581897522885254113249956721820378223973768082110388825394951764206387375081757937887981608780129829174225705301400198370684339241267877251765960330845721815676246283656992857985045363389285097186347556818618943261076661235483592399760778989275387500716957733225034942292494842578321321144210226555437284781369920594465574734991642684831653829440837092311044526796194468297390213631888500634304464771882309907829670192861327118250357414571622779244937293080960883780694595517788717342789106481280192676664473346269960447974120338970600778800402545449602977969377064152097834964417632295366051581696849601406147412276333494863921779914185885286042380923328803303352654560257002577636199617409543054103811541750139430159870371858127652357364954579908915507223840387841938745364543429570623688277849443649118764151226313368064942764478341330941609767847831004413612717445964677857830962679609685461796606610988673323877123435154940288840165157304664289954095482978995229135484560684444737385507823966797900945172229491129827988005006023400504982708836071856206490525781522412955024251312610963148778155743020286838506960330481705995195599678293513357660757324073106544562270759300197450195817816038696224296491191620253871918979450182160795219268384022569303515791804866816509165290346577360181618680251281065912409724646738664098288469878269188294071470154178030924089462359718769007156875742745188444205835620794579967200593402555468907668112798699669445962975588974382637266905320992744245384871424455760386481469474375635359942249315436767611642533636803795722604012953647793920152373930948514481178734319531274799965571453923037886949664461606008002776918985261316187084976288164143788499516193031965310672231648049979302747469390269620537945848377872757812560376859688608129744985037231211010337828209001274000980687522333497291553683154525952333687090918641953445824441110732060458146492618043726759441399999715860790484572144983486738290675331227790003935105119907190705071965862517736341036191588372018040249979573329126943788093361919378989090755292646109703229864332379193401628125652484482310164487694544832665197973119459401327724442960601197079464752224168425120648564318801896184836319786493297762171583582925508719030075461358320507077551471022082124571724331336499476862888523017611497703901082580281752302432398030999728877023552874038520228634870981291976830966658877027178168945342405708719840672934103930771846136385655645067149162664294861729620431539099394979600406926866618970838149515499495165685325260534757015279358004588424867745223228113479102754722581679667180027063342963382460260142683989120092838147716880604134435500458223388814208476899933944142502335297812005214686943744927145491143735353817078140692643277023816784190258018069815006130261510543684078848117590833868146194392459356208278442885877432209064812680273535419059604028552750442591663162025736475038916047602624926216593678201637403993951931254370105182337616952300210361757953339904021411972771669224626370407352270603476701191238979339856901298606525196862972715897862038417950264272039470812417411234783349348263433832928990728199336571570162499758271728837780654733391881729202163627585460692467120509519429085246906962072055009008383692777824509057183213780610946425341433673479148296105281508402303545200629662855502168861321295109391312385946867712924708801983919076470713177891035356227263487565248704994277889776932682017181270919136689530445230224562846784031685849823082741702642481208235553663452462601251422410211079224984716678804519797583169607090242779814424487655634578061023522809720836874258569480037362092167232287492373532769773381071643619796815522723352691454800410443071740342599916619773733850848599936165779621065696050303400184236253757053852008500280190985789471517765251057949630264481600301728637247570392364009636727580249891619144149898554731425172186524743142595337296857550315150404480334432635737229656286180704765279669297032237818323328977481571287241271438784635593309476635866454633325039210933350210642635660394805747565147172322931553079094985808808628814028001068034059835080266709772748676897348544679074084962224684387376552407329122946508620488622248830679563349854238038462657310772562400502704332167237267498532134493877085634643481976108036055423208789044189115537424237331354707771574151995894545768048200886754750812916216365086021937045631501064309088713470213978684571019584752161523008373031609234149046209711254488393027023141414150358045353323038494882809771273584963503676951481025795546398152843348348296002262811374016206929336726319777490411832854058512345388533565797210529852538274542175439252473582541240522603789576403250417228098815234987487928875949514153874637405976910890598754936047433966243881000041849512583349609844261324567856783970190822880047031872943739025754439387673202746208804254108814367312108381924803293064779709533365692947193733482657152652757502549960655191268810622374795045867806666501546095758026038458829189087783596030582759182246842813177267092625419820028404292996136260861355920517894310921514665875981074145456097010611525774975222631849456611656273294999782607968176983960548904404037615650031355092290150250291652445639259346365641833305320451711587232551627099700017634547714800574045245602707617757204451908840632798608049127308616664269334924774512179148731681700372588696305242437921807380009695481564553260124992654880725313427481650938595849495841096512539829084049782276000719341218909504417621921761139743830153114283833952144747105572383581559581099283945205618259199156612410639536438282870408932265962488840885019456670714562377604148463586155091911586939813652678643598075700820719408756232674306187915163608854200691203537111025677389759676583848692373764531888938903173679530278808804756079836147851499271123441939737310839070008393376561670226953232061039998440329562261876752232259904917791976192287536747543424664558515662093546449901827298698573529319207455678464400856691735167645595914729447811191373894186954151489085845411531617747811301539021287652309198442602718047982691796954530551119580828414520850878017530923284191646994609965955204213581392050159872639218577419143591254734178816748392397273611200107090868312708509083168539342190810129375652310784078281242212762323270554459180753918661499784195910433742775417349531759396215369174227410737773011110613370044363325528440293637131875554524223913568821762114807847907881606406947751126411301779375566516066271940081987169446490540140017989328633682414900306473537722217904121557404189329469642367487800618751315145682969113998363940294713329112124612603780862546831978278379722885810464156003442487325539052493021676538105198221593792233765232841760873585771278487553235651867007780405988035681428944212932140184304064190213449124402970752552039779146951184144066608981378460050458722360931351709788701346400107776166552712156167800804397434550311600539177563914055311026977153468802727824192818439723134819942825488008332851103700885240088757981989097814476458648111155628483842595606233388791981264916072706254714242041218510126820114975341111723570213769401520084174855920225703976870170358480802203247012021698115803211915832001150967523150665872940848273822956593523855047615577444118606294907296623043870904144007975353882609097701710721598509749204533121925239406554122770004911663347327770259025606619609593757260332352610697238303356952569089488262326371739366615433609385362832562012992529555263255721264633498561876548634468323613394246551419790159423183358538571048858209159828411571946710392079154173577463908856180876495418053287536476785480334215964478860225551212094010109022193043611285011774812823674984345014165063457134200775486798780729191502131121637855677107566884603579202042990214984542858018611212551977361565190235229065075151716385427709980569658743015971208110150920520484693902768358505845561871257380789310652201031850184341823734801246059131157016537761192625188820800550638161814680372293713280331672896460632192045808574382637966424591945358984990765224210706178716024299626607209703145745069574845844619854872326008014155116936903196464722920745381427662641267573438165636992072425735622910671489019201146758785477116961207573467160877501120923789655360672989486529802411316191213148904357480724605915746796689314237132143839849416586576289362979607256897312731190414446355058272687426921812941669225740074893438505683859581451156369831134673983558372123040303494196165789486999673594743168847695279689788177647294145503911091336392219607962076002331075837128968413201749263575174264834657713593995693382720271453649202946609521574463459950733390048393803192553285711100773236191088004373736816994222882629934743027013562199910201930720594381905669570860429717063628030283261527435801127049070182389674607938187407404903467868685717336356576772127147360748764006444665316444019841244508912550734543095040951596074384661028275372995396966758538727065359824778942063909792850432249712469654245350578976300622302434589898205322908784507184415613942027084190393826553142561653849175189065082553036038118501048874215792057761842810824840728565593364249234961743333515115120677651832236318832417059991584014085748097454194822119957553269229595897906884566965334689901019325640590947709499709749989562736518586758134625704029211899475439250354849566667636452037555126205402971480696380770788616858756275623716506774572950754377567618695465711046759309147582944915267918227322479579281578495188160778518231600613944920016544040994210626054496255855236374840974666872903025232192865936090147524406354621918040195288238570329271402900453389258538207358430879601818099589163505494204357940467765346299447421989590709814806314051401915450268460407699422865253970556244591066248460302743497407083236691910301651732166164274030693743831067199238748241958694184658332140310396897498469814422304800819978155220465885032532250062708434560684667787721982622558990721970577948839668348341947526367988531381775057818974910948602733045503966473622849182782030308281291710690036450596576190480946076126597847977048032250489879030022064335670874082834813088919794284036979699491216841374175827938092271401818816177680370818776139121111090757141653533384302725704084145189038275598755917285265758482575893568437822008853168470476482762130085337575810928968621372530251402184643747797526297873965170226136893128404684372600947921172353895584883197582915814787464446916249150230856334096907126923233098620776625099499241736930577909073129007506063132549003106978258985440963183832399713290016091171484325947693124613227854546456079133229543323640949677608829982239822863914456752262767124498876575356107323085635766502402216535107890706467017588669047746042945445114661048816840807106197832024065329610437550034170133856887657123688424807740588204346186170053813931606078894091117348225044641661941851589492660208856990174127443939095045356670715014117800895880633166958102042926287165969691596412973705212301323575751824006025616195029774291022313062658059927008617130985876208164571061148606831578247350794090615286612045123969275224917126939682784414931767879689072574514030513645346930485984143946298565722987575423380836599980225660252474819909344912360753330943596642062121661228238952591158290330528752416525943609743366576606864070574860398843068507611804363858711081564920830966087718602295753619504091612738714232763852791789465773292540129833544174851301158732359041869305487929269516949030549863716412427560286465734502919000576139912436980107574455379753688360235645532928922497963108048047607472980382734580256991295842746346329417716168358152923390622336411449882559108027563379033871142676926565261237410285572846273536343854086576058254024170031469060485673913720445566773724602527515075056677105016013111187780748526896346539117070039920411543105892356859168431423170786350391993115702495246704150818848604270420520299659275030310402699701820942487585638351769442474085074800587617830519244845078117022047027496694248086040407018043986175141084306126970865450040631613273395227452831739317918409981179144894194990235453377528566991792874003461587035585756402861199475222341275430144652423322586189223383184906450983298247991308084554462087225333949117127709344732433566574189120294470434223220617963474669277407084876852780929261292681678107129052153564435527275056985631690786076009241037415852008536894519913319223601159023355795331286184107790230132473501592389633182974799307035069845840787488827402311699752143520112748739109326275022020499021871793978801503226081138662591396717155445785769160707943964862210620093755590241447001007186534693068495376078880620782852361544502786563895754528449741003772709282685899647375888989322705716570499497387005793195940889900069377974254524428430464726138851380910994036591082383391859118495518248661444620435819880811877064083118459015035260102398337202415812022807544961915440199584068920044822585894746394592077751816013093772367464432289886194863869439225930889485072984341379263779859644513373788842054105736407038719120837962934266666396390621241509354482700366653254895837948410197365365306917537794389443029692247843570531335112901264552913314559253086229154391850480187852637941210482390942468022969054329786402957182582339751263069538864953050176607995764348376575062295298077058360929289832361713095832706552640344033140399788858872632207393892623213203494445830919552615710275751261034694484362599268715008489695212264109767951505142640664114009371282894999474156532493502330447056057415039371796896984791491187090482377969231806417145949822549592542399839266067566220327885459444880066589183584288177939085264040825170683298091447079888462350284035673210315240071849165869751854316652834618899403856224015687898551696172839450643585686980388347036329410974935122701293834870181545504128508291359359522967073329582081222132702919610169659438576774617119632233704248998931016551000687248857148167885285886882129344863701455604772224662678015736111353617852709171780250701322912348177418107187914402043245976772314537215798934103983622067155811615371009427606346611402479083178049086280142744067710231719120926205151617669012198516829975584900900918639692770878860867047836359846753317155450233400960541179007002142166441596823704590617691297611809023258221084846774130795985784677602045316094674902545744870450864378626942834916190426635098205280348803705667762056645654806992519617068653763088079421545747316737254729381901694765396872833769011457775268431579025772477519132870087200719278987012478288491727759356923057302126582062351412686940121457111743529894403738268019993593745246441312258838442012547361248782271697920648492682556265369365132215147919974401397595427585847169966975004643204881899448243678872305155349296693649613553180111388035220600727921807375639310342630406809656913187276512893892999296122610968850922108419180649039441648339160735033925620365521518831311868019112350420597494529074620446749446718273461283465101239343474244533494447478179202754940236504274250958429749863391678099972979795792384586900114138943553511472255091734404435451584788370769044003476535130869047859922643597503133009610759998615971462834881879562571767985919036573534762089223202728913760369762514822184134522495200559654668412146295016140236130810806811261103460879052405415557981903082202891364301519200173474396326712671740883907779887292599652502026657039403700717591457678203054041587159062836384775627702112623653719341507737076662120831666825206925508618993857547963723021856766303125320327043316986784686895652273956563996860791236064350125534276370291440874519725044719400827126548187409249770866723271206479765046583889471060457229533173211282734412012287881278798650528243782846410177451477715457532181964042035484117858718069903519202957966371397860851124796070914019449720656257511321206537758912069983686518174453645954188278900048010043644521447027714809251198058098600240842031369804690574143200814072774608436788200058593777204895660484871650372982377565418624720423686604136752276545269952645792556162564592837556732326491661677305499022942016113052521911004589995930321639531502032736532676210302541718174014509999727351509131214513215330179023091809777550193824414993128008499378594228784031254671072981850389335727751170227402571271597670158220806869744758955898927808437610386346883840175586074278552881769355299448887762282795370397445941121054247919787742922818992268319873714161241270828293406907725512774215162562443558587211060805329161143061286378541866483804591693939407756100691372588796575835802312081336825588477517464614561445168193435465662186496884298071432305060944849344109362012378343382656790262429387085620733956610313306940371618124256708333966263176456119955838543315594225485425502771241444932265370680224670174052305052952776170593515998136346203262337769402029029856909074530710484024963362074971623795377814544068568710644050039842238055459851238875547308737736721253036358735243954504588965061134036510965725004831875069661555518199353172499684758190562890239592735285258893410828172117630642190864037603303836534254635489655794059840780557810974548558274634412748681413041660741976945774471050608837622534517253709897503895653858220126367867181137861000090630044254454519714763388509885670373325267188108074594496669075303880653523137504973389182445985524907985884378237591916592837158773722401169621899419191734471424385142230472507746210868935970783040121248957490792414141144361108507469568594910432874649610406024122775975164836803404721581486225807000221335240228371043585020617605613789604289484006937149012157248500286893488342661466370082829818381961347051594933612128735870096971152303040775931762501892819653245694916209833411013750929304897391640481457741140607133172442720887712470102092523847470848066268123222922662803041338626217297035846260336764284039523582359578774732714619951979045625710007989870867052239064754645032885897486200391509382908771495126941023764581956202246087875967451968927445886270771349897183980871118848011355192424866828431067796753023549727074923547852215254913717172498642831036856917719666028499556736096995217614947590324102636259630214571430191560664900131827770303207053620674800885631954021856841892316276186366452984931426091946312042120010175389418927676512953152158879814435674400496695024476642870744784899338929326945187407565373356966290638745431196233877860553688903913479884783894265075065236448384989499179737061835496036995935355353096287790654929382487661624451881938501224463837100505564863378312022119584789423451741608509343071372042647159431470472320830046247068352718383562635675594813927457217473058148492960802988437272396377743880967596597188913047722840052837226474592120492792883556504069279854816925768475543594256492094372750416813714346663214470521701938688349498559446752840993111659014199452562084334212726893180809516580687817793074055414007060095959098905578226373799591327538418176559856377064017162922588578405985143823324062012204305128790427437561077806094992338976296712309466399397389141790033148336864361099933845193356352562888861696272778386848714027945352407257135621782832918621256432272646273259150444718415065064163173303978404356998486614839854646054232059950532157864367701298463417744201095138275114240720465395326894735684419767423968642675799160355900817526586918430889568258387098605803885620693917497177506347360899576300398920466018836030638659269504018606282894352220130489849331143509102174460288767179562092389642029636946700200498536378218959003251433513272370622347822118849996768581800681153522261459430455972190941660739051006956735899380060929575579394507365883728138223086248776151896907869307295613586689311404497272682774511210083349934037717879224633494726101686634212322119043680413329930275506534994704260614794113582723468674373938491062186354994669833444982262349035288970827129499178101589098595328386292867763666961401647268554285502702800847781407903264759705224290278477825879168104995720752103655969898025842517094926882451162349017632964066353053480906647216346780031030804640974620959030454419485339653386711148156471225306982522084303276571834993019858460556651144510422601011114223618867781706296347584620014340612063013360730839332630948085466780215015363546384429614073456098006158053852687792312839456815408245147566659968382536704596748339638493250261150067997456666936259908528964514673380773481651011897712779532064864837132323093154536692368737932940928128257096785868521355114900035102959550968190064855321687962062837358588889888764447647769433447080268054715405941548676093655298821366297712068439225843112026727135269759418469537804216944220296061076963291224589312267779373094120846009234106798735417207224040533875862171125671464848995801962952635870346273122814862945526325639759109808444007487019401639318334895938010719794536597128585216602302590324160513521230935366674383152567132715653935381891125822261178806881543187382326235690666514785897924393169318900778301416037557446570527084209685086834713031184037513427679593918603322556237426081903406600973454233284262998131235793787199439501136738261056069217074906274102588452452095403045036405246834192152676772806042145926850938205056133401242834122331044966300267571260292548667741926824697576682175614284042849437005679009865284788825558104247372559415968280694206718981197009474007403996193304791571580601820567955104884034851008129959335131693105779997203977092139949664083615050064466006268192809040704363925641061303318574628487713582399984790234257914024014663140690468227679956142775288441690348004691918068140243340255817861423208881613068187376771560621446914162263368478931257615481753970378279664044379919589787395596724859847296738591599837089261287534941968007084679641535410602963245371453886684926484302283674018842390279685348066105520171531865049192390363109825410350083221967118049734463254698940513309958508750886508360794290749747747413302540913262591813729653113530985941076939649147626512890476732509765682522289071545607226250977284610338133927071829135533003656414004472209471890796270254136506112545566935464631530031990531212387873700275650001472320415406178438599803286494960384504633900531388286323064343911122132826197066800974008715853742234985629189803555275307003828997690600810723464329856913315045047710030225650377695574087132832534438071254734022086619328135240459545671719379599174608486557006462333908087271864893421959652244379512375630301017167276540592340542480477655848043831448996399569676980641176107898080005027555581733383795129256863498723100091350054686939613840687598152233020598561732576544905860738433158948559791249325681507445275272701545134702299106968638827705543548272593020315640736056339545244490588673823248461000303253089088914600582985606899799617750078514303807372111935280383377167702581596416351155981828944884836760141674383918606732097447259848743601786504790738680083451835383340621345878055963213970803599570581339387997303782730957840284867616072368565155264789269930879904313805306763808175255610855680444174649379503736378132116361977144128599893341100731064115253637899534600357629739463959154892548385293107255778913881986041274930526775494093763965951912565112642752427192097361304949804736442278474783028582736589380463998943032776273957500882027666126283833700546483490731897788201879237839435616070444951703849142156160596557627786008888408644950295493548607173151757312814986330527452115130782593731382513823100279931795878556397521227647226540980851144567032862734258347972136158193159935898726498718747999306616376877566600450418279247351681044167027767825693465479347390820883446247055776767325111389407592918184392849078975646364616910431103414828899196829549490097080175197867611551508191124675010015667292462080977093389917280671041883541032809273372418303404829092495139013683571265371501524885835108741132418613204292515522955281935417545374798057600186555421915902346500755559997076738381677461158909548151231018933650307844842408387799188275634715931907405460046194639403111929182952873266686087568782242805481760045470798999497130379115283521982451327306276096237116613389595030404735819059598293656219117736793420864054132464511612851922416349811007966308909427922020652887423980292981892366103958721493838592004818130376200361544365769270684211795539847666769397027326936978684601161617568647421263723277273243595797465958392126112314664210539502297349266052234663001927678422892351146638958814089404056070952751122479752359595296229216075693970083890536286099344811676880153944449778602089988717499459320668629945530337219146384537445592886797748972579332203104426479153762624285650750504992191847456767238724560038243154019731725433140939047214545558294242468728625094640190444592600514070207269717280616013798388759276690501851604589397580537098517824452569681576983101468869191436299077166579042909245718665967503298823382312599484288850928745408215639809048319825659549174600251272562873350613818514423154440312511808352305004347804781805242263038995114351536207316491514778740969921241529928778439722888241409701914741165050338712340266734255756420313510737831900663596209742565169304841588267629551114648683725024570722874950399020404075469879102241053581564561913661118255992743073682983124770867146830709478461657378860034732180765655352182984550524639967630305990331459120778403784351774913488533579103001800067791743673445081983820074935723762534495015214967599281406318909097833060294634572137258411025877165916952995489400216964057249821108196830881778953095968005816561034510143386831572896259648764441594624431166416328802736767767067295178334497614306582131293253764494677654275178240789128096115545102278788450659769490140818809314041875707143587386626127411707733399786802467975126577825293253303139559608643577463686375700270391169524116094033094388892174705537560316664820637271753199360427827545076077363759285149494141875124369374920318033155480884648276267390753160590682481918084697787079648334375763728846464522520583001391640619152474038368232426152018159915734267704966970094516825601500552504548195615783392609667850498049766466364943937362756362239382806642721423638362222154373533863280577706021382131531427351170622086989262370201371866400046949888435802042599583591652161348771567004169377897969097416825764604566968896651608615164787923238588997872658768706614201716107821898008406336964841016011682032302671984342259542570137711643251770345045756348097111802068434142913309599935425642287372560755469423908525620930149417023979621942779124719984082720332121541821129135805071574260888524940493522553128637586372887543470603592091814135551148941891114184060148333985266738467872653137647581384082658248593627923379522266928131307642616221116564160144367529401548152639069976941272401420771564592750863993122076955206163277585122971586266069872427934776748946255608648725052503882028408889377410243206903484908174559663661208364189180836264374601759800414752280768801852842010298656416679422634822626233112886663545261633865014708114777138937115992601700707050436427649704304844171362298317627090476253907784291090328637890828992159732204444899037223880413313807865953708956525160753817314746707946857126984761597135454974915016368079107488038762761769294274709600926042887845735573420403213861397004265775136064741577384793597076684434131281066737175258623740408537690877890432968405513367766372990646527031638296006881189782666783041305284210987569311137500942902762614092415234595786361821499621159953030827407409309471749523708955476601664460828783975146280576975013361033415002933960231866176175915086469360650574267596286144304029589341353180189380887466699213999684666777972151853891292216330553637400976579363345997204791916967599703581499281874825484836374851787157257274187658994641677512136795792001360382206202835637298934647047719695848364994507601337446378388799048193731446810119346761722052352718813096093597969420231006281587267071988615620231822269414537813187662909472711373896571331394737851329409045706240174503446699467573674778481310966326463353599461803402114180089103620818864026575676290698203793967220649322339008628720325617497083312464707826894043739570558237354154725283089666754822420144681379341174391828562019843410615826306205366382959010401290759204803575984230083206024482124718349960268036739739698818357736501930869122158664484403425603922724506769693126977553019471677648084312134661143883374211845550524967210621807592161772346459208513163489953509131108932679044760908457014846085262764790117321292152890352812536738754848742601427667249656585456974650837768534702933620176287193795016517474684639076464729454200328594510369025940237172608053350218128109849062977853783571995835850639534569233229324605998852539911668737030919781513477621223402723395430047166035687528117991903771031078818381171611667896491694292310547899911740880896707055432630427031381457593343276566016559527413641267639449701273873158850523489395064028674807882352141902467155611329956249572938848881488189688231310373742644708677310809882749974554877317013002421189169765927441823244804150662585808076028187518870370901087551113360304327592987783488300781901290913060205613533324834745449004613081967199100829713060196993658027472512552022167006844215315519060361059230728644635906424109103029393262918786787242090185715082448467449307376677164686476289422271334922287980474028481492208662018769792952151174954439828875476975268851279604898562424526411169585396813273960089866771849610632319145116614346329218845140597715539707892090019247006657088123962378348716409003084981549503864411635812024163630634042482736026091127621164359707405953246264786285660468722415755390268414078680012212629613703398341342931942959084857157483120585934939246427204248445431395062296065481612011127924352427526230886703763802558318086600112457558545619174721121506689513043542576635614274054263035510659137244525565425099167186855271411921913344134601068055710089911933804096346545193635096860466246422377990449876047450102140971597364853029391663080148704389859637916285733119643961904129326310582860341992784572065771056127208111933368683510087318406953493667246277418885602495710683285748895650332186613783659799169521234220407310456898893190606420122717895414473856317473353941753036580176039044471229644751981288039972683948394378867702773582536242928121529272858655140031642494096654164462650726758805643768853121548812518514378781168087134378545498271430989998417384764388228297054749268429406390372990633083519429525953391927641670728205346332554204267144165451225823554254487223558727535157995388886365258534738168285358076947984473677895518942237988547781993775685282649382418107963239277105764894317739059221320831551008204352474900398138939202393528709758743859824569376593096107489307931262668317291200555753116018595078702343669485243780879567145404784495214544243014801872562348085072835231389973214300191230213949470090965809902018092074165236157071769360720310102351843693164292890983022716512218015247491006166746807988017935890861783682327676051312803117073068880274418585121203655783634497235826907913994892038133977406905011897758550841450360985505036995270907979490732445082380601099199958678287108902765716223825719103163450634660647761906225243394945067733751103275636680515444103348267335885546738484712416696079675161523193787052849334096254991359630885702773418171486553374756620584076944877138498625008537063407377475572287058021593405820480005025934627481225153415870859935867455198507335772512557788971576631783320012802767722225579270200398622291762072573058153390944019690439533226880844049460807044754435715398515395806039724820457061401272840978882223147768530267036688217570533039815534105922060483232782206033058061375270811634324223931316301723457165013726715120155702084316943265928969083176332800102628846064201883543443800822959954948154339642456285720867972592357381189292620816039478765843465727647362436594074252821881842038760186048015978209689348623631522163513769529566321453813864171654350508371532961748537639780291477045124562474573610326362731261857712637736472327610831158377111674379715586828164732075752457890335041330335546107591057552556528520740439510244949353485697606699540557614711149237351812676437094196628175196147139065214269054760245256082085767209945126413446658777941053596447074280592954707003247186930379875401094401502622998086139044049883448713595877897138224663158508093927885226684539542315796508886246610727887409508908753031534242467912866862722842204239419685909059135770291955384150571467330293980208540791183870615385816938794763783727580809092919910266672069570914106863914798399563748723988848861041716916126140930494227977982675732199392283498681306439960577004042251124781271891145865511314601246015925940507035788592727650983239186593268566423871307273660852277329170378447372952303272735139186782889519580625701481952854092135352026284142227711064498420551912056118015149858282402158992290417598570855008703169850649515536259050929200751214195558037463209924218234652199742467264939687456571270289533775748242055388776017116080845213808186589169970729901084590709623563364129231380879053660545307043531859339286514999375217394914986386791256071965963211635672011625198772667903924264702982909601106842446993570827096922120070510435981974493649025056007549593058738662356964233099913252079538906333707745689141404073901044064496066647142792234147882742581192762638507545223901626167699752093385012156854694363195345585335541366374946815814454908892990784794695316212110603129497196700779919463813009850416394186634715842601273365395721415222558561455584441675755145088785227815181802956759325230886526720064254644911904342723825146449038531646359204978427110651427572131119679057517012098953952643365136779264991907379584020699909557083837221198133587186398395505883715110477428215436614400877417349384507866411662333509716508713838719743239556459168747837084567637113990694736075704194886207784240296795079213023083570226062501529589905040471788138624278218923907406766055118915598778123027494576695247272099831998530452869507343000289822693197396247997211406185121150999555966184878556784324205370843535221772419325944470953825809722423053022463281863445428260167875893591073270984090734039203851746467497191070089001792225220881179575136339394222952341264261265395967291971000135220207230881237885393988986537886731617935936499512940564051546643661562537927095284237160054736452770351486763683469009842233819248850023042333443083647280219280059777526156172570172717823407926905121442904847987725233043580898780952513207673539043207717372170489546514981429114998435038271254592913883596016328073974053193661809559903080505611947799996643612470830776800441022809539262276505551367251728460102730308477092830059378711694072236042712518422802146684814194506726748343808625176613016735151851731734138128439829415020241083533659938970613629110689393416988002579032822851632024256709298805220538641429982452985977224781490263018931989004633138750734693055539573458389936274658105427361438085632888095522345228776535075561527955869725748349236629319677690195061302977779261935087550894595930885597005382267012960633942519007476100353593734832147822854264110218154404839421028733661739801525451181495660355101240324532706908414070938869669151968029170911003458144012842832933110089564792959825549230408861091690604996292625030938855128882778526328564507797685567909871600809201408836189165515463140917550307912925182709847576496074467442943532197521383529499721371805832927751600100059349682697771758246140923803576926895723597628461235455556085157637093693273279469364284648507188637234070586683900021815275926354483492311684075581127456451318458440538073364103235562167176744352528204662824686605700329415197203015943699281748689584148556758784442989931855406285222486356764834971821582828364939120483139945668123295111056237732023933818769506055784883497227031059628964578480657722303865344280295116446304694138650153259712424920430357339077866673298008389262971138865480429547659276361850646158724132721965192411477240001423852542448116196496169104870397774013265140890298967407116192868644015432155167202788670910529506681708579860171492183309094096876552088476143536719743599415417123924139745850975082629698143262391842762749493856683388890644480722115970420735042917476492933244200712960987992309251923468048308538520549710851705843050132180801124693135343102539261194973685310324822204904302326037014707795621781024603787912840800798981620865481966530949001135869420590821721070224536943181676214724734168434173812006677388973965048316053054791032603314399913950778755855659947610628838315410234246770381332104658506911538849621274291874264796554114039172427368118068895618563606406496439099081590427457132649785135547216264705202321647422127637626544938759549661710468723859805265735765482678203477514821368383726472450583617770914748891734293405624410949821833963203518507219166578189488831455659226917178753146584647621873693516752204020151255579128259069377131961103704163919711428938170928830447171176062859343623319066105297929566551813148396305579552978951692855010939220738750726494375974707973378450089094716390216206974906243153076282039473198686818077876571145286921017653081001188475241902541460773963826856355863405325015540267444448919711383093322068361132632248446355896156951381135597348049141238141750755102406437423323397016958219398298967397528904313895902037408687552364421906369428577130479682023123658395413816433892594636367144849987772138696824118915743580927304848745456665592466320263016283320054140049837198070227695172098677170216857990616632619972017502357986651087032106874588621985687741895735578468375521132751580275040567165563955147010029483543635011374681281290314496473280438670635932333472225005891431720359992760978389812603344463118735309301087903428343110510968666538892093443644894155228470035335849580535393440479034828062760711449431731445887351166659398652299818643673716291702069159265397140110916679054938988365728589552312648927629776679571212555240150323851200800788278112467267851276590349292748993173256561080688564496645641359774609067547157581731980253028841324805718194978879571757557229331286699151284588219046617476120208765810748426691187259182054688184373494707072826677820312569219460403108250815184881252504435012849238122239987505840385839134663139564190969052774487067598435580554406109675086403014615446446848512860995746093012015687292076644070038332657457175985821631991517074268087484110468834868315293715266851180701220599197756958750736862391849463682673037763892090992535259792558222868079845498412848501245417285569224435241907665675008826982349870189178682619431413678596738053505824321520611689333604569377416062826983192702027402542799355354758287651876472078896614915736275791558860016322139440094889522919676839071256255399875321713215807507863443127218819066053578635639645948720286605419267452403012546685262467982476673306055349342654856448967586399296996599275563668472776495393660713516214176242621964757038859898653907484665563229341601987183702958899564510950301944598756183171132798803011601772013669488316595084570431800152275116431167107124562234426354368124734635927897325484271951953730657141777729543808880592651256590886909621620846097036480222942421062355083045971690083897708958508844633137141389882029618693558276429736355023783518338509048255344120711629569582705140318135002820432051638981490215925804764874926038173897923905038877648533663085462217196856891844405393264050360340877494914451652713703646483708558787855791899467579204757420517188371603960567435206320733123526347331064736669310818926874491112607452171348164608736318436867535443327052813383831317331380269255540427867707332666595976778868979946142891170719883651528959108707636715602525826597701426219173164027802716273740380186218205083927006374039505167419012976122387671808156006447148271045908550379322378773022080791935453495338681064337673688136447646042429119340964833095730843359800438491679735503184033728234896783530691637280365354192353385062199941342763849655285960756537356617909165678415927377758789458648376949610752354263462754869252808573623556788417385924436205894879778577461325240560437231288008670039007660231552925765179507193076206374202859225977576726375403149820489957369438662508185462827429544209590718326699660506033853378876897738122305717926504522726876662589887682355182921303656011584583811807600735052164745520581376180534240308859509034780693762084559671958042163434622744876359883775027259612542800213858303474950339943330565695853602061497942850086881921408297995555150534245846363332719952376227147285315470539544195005766202857608275275918384520724714816289202031658886816467148004795665024827956723964805088746258559416448804087956282617792487630270934687961262786568993915739909656015804372771419567031770477959852413173863595756883198424234041213637982696131589625995838788618936149578245220738364696936210038706676711177182292004345872278629188896156857066070525287200278594005912209030089655030618467917582004677601279864922634484202238871735623337396002022191461009462262736127286857156371793471614623699077900635020544489136594470331960010181109942631820186111806285127909453431557543441520443551624920955365653765289161435508812870919454369512144719650536391093679509006962422901742542308363446395889056348363896202960358241504093336887247848476355179111213697220955856926440621082718024576593584854546344118181154541631883937565806498369604295930695715919004361952738326472046549524765439399797897339153042333643623121934584082909647332454002703668139939726124394467969892842997732748452735686552975827070908109758010457880585669971599571614222788598648973805918141831738130398329601284441360885924206410881307178740091712762269108382023794264180739081270911976326161677708556473419630188622462694772324501592755498885628418103182605977933540300923051754487178474508444907492725342952056023720950574541917410319554256895625510022034643651326932021049675834864024046735703683845893281506418786585644951007920111726117967800744480470669713641998921459313696265663269989175167367653640499274602600566667188975700791162959474202346673835530521375784493696646994860115147412142442275577039564212659231343418988602566188446807494165436452715319374528467326695747646948364096754261164503428410635229940735807890747113945774960033362495602331118732635047364183989528140826284145397914721065316169299160045938784012579834428143757929942333505396008862806683555035030957659193303656505541058700118229593447237751130988291897486060201650538413624291624633011961446429712838666256490575241671276234780101332170072414841041147919578538559553145600623702829104240356066728951709441181217852798520603061840564761190583825777960036939641074007584825943934294414505999955432036618306169878358893511870823496372828455722450012161871559252591025294727656100850224827845766718673053344989925698564499265833775184935670830379849147086594317653508370960456736176129653699921213721320415681024046006691910173043899815470267884864118656101764357220804432517432528870429385834132109774592264886557261205458540244006000355343447487367231831039062788550178385388001324791322313438365793274483656801846384093258234106692991617575252165431140508422958733159860371056176593060724256120427998087571672114383044091482319900307533659853929229757024050319970537066018488339817468134911249176710333597351093751250567106503477224289400679114882669965496206359807234738059112856770341220840680718452007260947628023579094937920351646018125692034819606702215998032708723556586042578313834799599340934296096694367721012299376581945999291232521101738932451302497704747207295357969923396701461907285654530365226558049956339813275801569052938147026320900735073551810358619376868746827049241789254676652710616605241760063124643736603432288226570227657142792726648193749410865244224422418342015979258421043692048120303628769613229664289918164490195911011360886557668534569671981038202591021661839809417708230305514799647411866359558065921771875928369605044092641111414488758573929048586265370802324519614754596312270539925095947611024338708029030907389495999238155044756514459083838870588034874255319850901587643016723430372998620295007857320527225442835612786338272703447153901547515760486817417164608082158549330698397096117207428420499833207601763344285672639486761395286321739311128976227732947392432421954424351040837605140969182014452702941543952211008297825936118909117991378478414043796838650761919419377565550286704930024188913154937688588391638615325105166095468755060088541452349025499049449155425001258203052868208601368653653722210813054651796658061557780484669650282387139932311841995897414736408993785336457641301212508468012441798933810688026918398679563326184521158507109968239305176886229842407054180806449146309419996110207757810036676441806054244472222691655385552638088977539826708707522800754804059856725141118698389902131783264615099285084744149497133066316165344493340712261938963185711079254289088375216295081689029536485114821178881570948298945756661294513945946359801714710729780266977364357567931779236132028827392715578882656598646600574621497151477434017046636613921384681148326145523859540612380502325054743591534390826883975655739098042119464194027543820053547773130310457037280437395971423992186254541742568531814910884633349222984572445908784369937109316595116226204729017660810905095878273972159320154191279831939948852509857880794568585416177456525704210169975391536752640141987734528079314432262322404406914661119228006265788886184259014480648824759126572641274642115220325381459989823831145532082146637194476588139751400118967903121852110115408840945802788784524444889218719036146855211594149451692680124610514042128842127278676231694557264833032137767706865021603610777537860735354693198038983726857406491487149108147354972885921903846371346869856678402372923342517243068080237028471766119363632295532504522634692932567795695396127892291103346497862051688270837233500679366028865958177299734134658370845666003378007343909767114062394459733155226763583709996702056421788585202963545059612310559490824492400939140090502827023309394847037749436499037037150476729867644744300187522656941405505446187545949567748315382121666299401108733872026335398781523132146113414490936503115528174064709841818826003025972678021009642559693950726753202625108139656716715119910051046280412254347447079327219253799996580344567479309118560088309462186689298922540003670383552612494810528272167591553310771999681969560444625618514023925505130656288139249431917481900284207791944445642220154676179513474796919974777794444156247352358831703195265461370623047647763214350738429855582157139379821924165273496781011241516177944509195802523944004462624261142505921889170626302225721762575277164542759348383031109999920044082365046927200567432831906662935169540609148091547032416549295811489498099947751444586250963132357525880187331172035415095710809295838909397642548561590545564082670636848128570331719272783335053465918459398336169298368521202833531100407205620732210834085913286348170424973824123145144699928645150141016705247615213271496297279921310753301203930458444655745056360637524656152049085291580289281325665468059792384118171775515656815981133908494276661416297813358917359114907023272269133117383622644814387293422667892433480697320078958413446268478396416257322942217810982745363470331286115519565092199847553027460387198235191774317524564375617464459816986201745918530205200305470723790264088200215174886186455860150698125195973065477252477731257375871430496790822007414115371727834048725986242944696345071558688956895681016721245970983627317348919017219822389160077385965276238360826338756382839761263710081153078938742238440195567293234121664829476421865446992568928264715339069196736218303470583092358971328078353273082053186595443417443117651104517145853284794816570051233715604055738947677307087512307065897918022143423210359585460820559800646425930311628027772798435433493925131572259739714912050145067450421526976679386494402331032285259034357121216266523942195516869487218450445660111532093020481646066687787646564814442899965903292882756122239400292130894923979769948584736240777237000335938127211582142293484809994350511308573478867760865625100654919657650398870507762732288071594357269431411205274325538236893796309609713706169082608101124379820111150476252367986038459239389391330366885212383569785854601578206277570943746213156361765871201218831727018933001635262253159586165741909100186548798754181333294804040265748833549463525487514625567334746362794429349841859329775049096071078235151147358143735086156751156606657939350859079622308467551189236396881555576037757269795266035199882880690086606828249734463689240942559099663698838345273981216908762065300364383841704075773293785807699246515680128995411279553278691276558449873271186050533888575052523556256323589014262550018366185559840608541204727348095065651597631326793474599691267772259610942910051815588574194749466949820042423057591379749382891361501314692586112229140665003081601819741646878667720125106753150498969469437070919879189687580566626706464030958171467793470436385762293192253108218283650139708344847829463942025169798446345775980059559216930522363673899007475882705813356456947869717160822508371441185886290403455180495557815378102535370701209392370715680687306329752505857900187461282637213556737422902710886798192394414189269472588856460785259747879509024101623895214062329892961941421556573796229262780024677808889315299223697613760296315455636338454283313394428281449583912082543447659294874048878124546059371473242570059459732459858984018373500235881728241011265805349065837638202832012836197942485601483080766621515452988973283050714200469476824746042308599361042639674275719753572185962204971759829526933580129132456540147449920894052587486723063640398978996984532032501090484239819914582975213328750495429360110359296920379751119637499542865075289709008777144943104146292161588605571391529439207733018857820411909454399645650883016347435862531603039893963454107902684422755638115628648559304325343731995794958539055135993850709969598153477843324034331104626798091182271856965114806707933038566323315975192698977619537294404301449888196456753738376449708834175452625115104315059676590260149217281836461403645726856175999191972818168583125599198384300726900059435550026450295714495949198361252570993488410558207306609020342594828064928297159989276677588606723913469230360163770965374366806672744594253588417007792515494723298658875379079659677618401471758454711642559552519769605422497407883258717212261443976883452161337069763685214967542497826731339303294558728592437177566176215335936046727363318673450439655964722899101836513901785864920651099798717385068059548424511762874276479870737086706689716630536753614357054289805497095875548805561202373128287760650981305620253678112998345209177823147568016673092386872836813387709023993694167474455034023076471898239888097476926478463178363654765179051766047071578482842467057639290384315976432446825855108368280319882939517152982496059948168008612600591270577282133333489801197631417593801164695357706933698739487926157049545257923637123489673098785066942338408675883604578020338446883082686443449227459997776387088861766534954565897676929448355005784617849734739813999970466904521705667658732000467790344903454225584409736187785468923005575183177260024136777340715073666711571327469685076273267033403114868241492066321510178670559582753356101043544165556538208920246519313901173599482717068466560677618152076363900084430348931369507175405974422340104253772473634378988617576044644201143402884148880513271016629226187436700628772470499552501745903885666999198797553311202832988670169637207118426884500884820704324717210368640721139469717838450736850188373529989072606439528702286773285515277011344454278126633468923024884582020452180260629515705303321326672672114136142778406518937936514791075610074425930950280971856768192557662270412735853502504692392255686297268358177141476670524974465522243530214750867765338308485018371560971694760774703996426446696333733790119007736083152402884726961848290440601194181357646948654018286616405300512796817386129954353597088415946238967874586220984342093676376425669780623448011614400326970930178398290462828878665799347181146483253521403002158281875463091378552005130319393211282662533481393770815752869736901488380950399168721951847072598770048459723555775492160206086877527923555464359101466421283032610634407193579063130640273377362885482583553443066230219487131126206223897194872767739504202074767474391040124286693004454859875245267296514607994951514700481697005076211783342211039396596924527975352388542875180071315204043029744566966818677685721673860388979171863319486854687827643296460712575806651663186525895987848001466723912836852947432907671372987879603028708317252719207614483797681271529139206949895080070030672751098410205156358782824863543591484774817867317688923852457010056118624458173854031373240757057091406822058326776386547228834605440923931860626411912209293658363222177644248860985350532864435572973202672101332900674039630159688726135165248103872485115157050333556558438636094675029478912813332326987463452199840293036272960241187684479459207142803983161385026288198729743702568575232484625852352594165857587783955244166517700000384230316183596339608701409956624177407286515587881077757466778570820566221953839632544426248096231590266901996079230240966823010922192903524591391513532779481320394442528993929788515854299719857501052194499108511405119937103888181180625226737545443627943684806988591332670274977811951667729206922257833728689207419780699350002399127450106863082558961456469975417235073625136884554748430716549370717519683232200394929202225130306733968605488627853199288828991981179658728494369376809201454417399755277630658390657467651072476324487035274101424166286994263671281568846918810303631876726038952842939936863302454917304457289635560446052210159732994193687568854044420384196928228687634491927277273452115712687484657326230964660372403996613319389598759747075411381696519153861803143594321920737395496384421509263494352227496684106529435454124342957936271322386921798579630253961910513112027977686379602032336904548491791608752875722042335615420606715964372736625047848826487758708535029650355105077595677209001735168557688365558821702133484622691091051221221909483350131365140843677499638866686676779502799042111587112060085414945712852072212824040086896180022824885506441122279090817098345893487492839302035479152782960627382659926490240978656721725689239416043996536524848895332775701509092024545816237420343926340845536300546029959473768751597642477766461837810758422379617584616742084948282748159991875287944093228963750295384346397714225932889666578450410687957618096220772605461041228573419770204104149406309578728500425318905917402292308931751595813317091303849508186799882969009196838916000204656757012923918624373536763713513788005218165323253789487915195796752836289043246449182476250626617564462124509903086161701630362539941689425360846999499513695522862920310319784840798827148254016187542824181832432738636068608968961664741386980736415786332042105223666251378707186002245948067779523377953328310833283223239029228508415196067986859122401109527466447994620749386516843848899912168396093078660684777321267255198005913121557698698502074023129008545058027986211133024313279025351929420494482162780845837440583735620408211401306807697069594420610796730115574069308279440976142307221254984122490157500624582755887879704501893782886439438297913450787253976448118144503330947170243542215738548705847762491423202417986630845359722101877510319079307073962322380575876716065049632332720102853543057102429498891215677889242163840702682744562590099049050496029116017433993472070523015904439350695250670906325956963903850659619099631702306512995195108812126145366353781063788297050946284550142101802061821539094623820322543511097516695559256701333153189221943434909914662180627837732765108211858337995686400026751773752961317217125660978787912330288854103600568717145961639610131915403360784827304405061637042948898012146071116461231183323098865968540204458968564521787247626522129294419098432444863844138618325274972630990409481864912686964116177513479742943133113360073754548201371850983263670304317487256032094606849708441984032094427319389722000067221706523996647689557059050236199956212618616418699044864894923444542083397877262626653275365116971458199541048887162516930633919099427579949123345481019160193786221342555927081729854357823866755946238088344507951117701426806395057416763908369747695633374366887953011716711982891333284946196686223397355806611490197511363583184976953183348472829608248285811014582316774955953729884163146544752449699844030174041687348069825400986145168961848786469724939590967665305189333507163718816561228344486831660185096212237812987927890234300337022296180112414690164586003442517050464521902999253477203393269744957236496108972930699064524566162200025450986477653099626411930229672279768045839212974501639020220313051390383445474329780867555868733898297158909386511448509833233630191754421597202386993493261469416007906060593110054496038329095809815760325733168170261014755176377181790843082389011281080428226943038808418188587300947589701732764605446723661882510787744270480926723703769496325180171844481692718283986693508128730724309499949616032981621587158880246489542911397470864174902811697324012844011612230498678629312779312900202711490136388525020138633099844365998659274494273859984496895940774208870170236196925768960298724538517195829268839745726697949524185569769249787218141262289601367410255780778810096740661253924997338618734232926345484713697926243520052310085527687904028567575994376567123612266711356229251962279151720031036503872011065328976417974240038999022990538389530301914032496278943709068553916926669116285483632876327027533562868499513867647106043687073395044508937945569354773567207548029763257722462110211700516079551226205769715434549709890869209757836397717587733824123036361516076413235069245921964961534001596432335514890185370939382072073118867270036513032163917033852667905554416153128217110611068786590067331615098678633740422998350933518650330759489719164237210692633275361011471712495953034567291921274020956420632296577331094470468082438855360801559465709462723631943793378950564983913505612452399479924237859129600379693735272890505306790273051458295416262092414907752520509392342739400319803987455414393158238576703850119162043543356398468769745304480787691444226099763549325864960077951922444213470409572163679823634793252620103663064591066504296861985648260464018618434395242301028512929100714224714420462983300258147094969168573992760486513973124170831957171151824077721913642279265029922701480173044009866127621024803342820701744815484953722022930822368417358684331119261807449262925792244704717276617298917035672053997087382199702305714309206744872593500199367637070674543843267601029847110230874648751210318015323912840498545391839568924871210912205626964552491510652164630980610900552233224962120120580764050700126106445848939305682967994150500238128349134296504794962373599847630351020057996123376462348042893263021930863857652617605526297448634368436082107597524386516268032078819523098088763168353494831189451432953601706323762515197067992645148951011244021986838354139285485914639842991833074103992266449509051276823334858331857228563601332665693472476955719524059744556008310751742055206412384235509550983962142320821082552145627044797860651379820006827640496097251671612057362884188516829412845320391069824346802473540174551946131135914222004903213852479131769547804333117267903046913475494983819725491729710999241597206014461980557795583028604577031187409482430631747785927597354798213329703183817645064038239359356140917298968036830246948697047685195499640108590157998525457602618793969893381464551949490066320891944008349963828964559806964457656444199017777812284809286014299906519382385390577250760986178930912995636791347707467024750091177247357327690922005149043725223158820407453336264193245944508230593160760316484828464355120056266453355310943685626868211751155610537321040632456856112477587783056185345269642416225214334455441689759891184604964250769397534579019564720534193991035460684921790819626842981796722715020240387669748283676343645598259477542060224396589764802286986387009051238000867064934502455959847348973586284405886950530491435251998169431529757443746086247041552361575349717538677721669275224876015284115922827439571472801633034572493479397029490818037542858935578346168008482978634370288076598005931865730463046409167437583861641474512860203665971773149459078036567547421658021410080862191266462041115435379503917256967263918615136053567863486590252634627766809074060468873137290346366827884589550915134661192605041843750434366195165050558206949573284450255078732126455023310925069816963419540614377058383784294996211330031311454553331884224274977823963894704446421117608414950024208490151959066506117097734956854972410770704221022470116793440925653028244425579762848952715336920532468477217558795583624367194208201722400896297885828487526950273325042742821843451714022508472343819664463239126008901475890947801032945470290416834020890889441674384420847849576832796540533008270138975685011921850581825068052666863603705873139178129306020989071093361922899089264133517339664349682318256857924282405727873723282760582038827906800335660486163523850353597336464996050179294694174190570071281188686664346896037759593327399546934866208586987691822704117556972776162674745977361674571093219869204602000653551595275183683238183269702206453910518314558572580864562452933357077284843495284557351404725902552695702230906285578260192144734046879037703004605495129713321600513151464196960869714348331726256460890301239549091885911287349598215769175380664241195071437573888181854207037196899060518376519771199340907538661077464459688353797804676021602296645200508637649359349224604167216078655856661990881873142077400800893143193584214338960946839435705100124669410939449314737996087706622566107388069348360977533375330331252893890914540309167405376747692961676378735669170966407659675177792676387216817562084030046565386088951797664503263938117953727246982191078446171788860720498495966902866674555635896482573889143041926048594497315502942996659969222655536134928255634714804203519858544522412335570408153246069449977267082544726249007021586070113059251890002103962679452975272927413009942556034735432526034420114728907443755738110409883652258250908363828010905942612592418527141255259237889067990800160023043085276728079801934714105214927512588868237339442172689965913724496765949869229261825727555472763719190597787954465767480811368562576342715686294188477409924440207654637476458500057319181788012683086805400712496998721117147034429245306059439467670453296809769070935233539113633838067015699665175173798147539384974153031789565585257908228384879779892256067879366647450829480961050237220220412521127738366739923292174461617336045691670159374610533782666246009376667845594327245767000136583529161246817415410977317845162805201039349705650717738699859098642320670291135782652707181862619799056479768145855217174911165216592082543967115496558626507616534532916636947067428336143002300271692824336183862150911017241851472875961974752126049651821480469492050150274407949310924826500242767626150277469806576607858713717691283289034280910442655633949943730474309794846422124561397458239403659335776604438651131193597906800776383482459449273904009043498414832675055444924986457194415556416181197019754398124494875773585323805875500476833111909770478415986605379197820743656234474041939906664473629961869230946664228216203341174013255249400818837591810019345686208796670997986854294710194722359462061729762037128966214476151117086185947104333875690615197601951225788634145653092683655110733666220412634823366489551465490146343423504998425159310501670823429250104692437425776236555089471484601965219303722153043572797690946864301582760245417976696914309487522552228886806670608956643929076742696403062168430710392992931893487690526246259744134004619828955669351601948781995928947527864922189619484026680225271860948715138772779428630209318393548323222209723660127845025845395395050757090955684842749424060774177575841567383093953094829224043560123579798591926509800609587348791416760593050797790299964003026039945360470004784889023320987218031973841194943661544108290850496007049287835830041409400110936806456368366945380004108265209923020554935816028110853741633987404688002785876773832540402436143901539699407002809430041374568461527494623135023672697659195433946406308213803483278895105981723940566679800973414919273517038469363801451204315094050373940945003926255986581593747917960778440555540451173370471598679986685486130708470767714496365206620144735214472114981556333311664721007483019524433959116627441829481064089438492921986032863189009142344679560373456623298600590018387056599535971115678942665199582987633096456199108215880629453613704488301532010660908484379365457393213587270696753056709586319543209164397434220954530606875482761426061269314456235545379680735201112356686752526170841945966960510446408888891184610538632630345003100938572066604160409756201965525343449289040626978474775063123728846502329042533168118963937239497150585263982980807346084872964497446764649347720060191462716497963097923461246647522073693430074947155338084264250652566352288552713421622072102287850149505554507917118750742024964332962067000014962918336408098192952456104139546002530646073322259262190855025288722069484010226987289816796353009155765091086644022236500007537904134542515308605318618198722150038672456663421500153859836100706165806629677677102136416912026465957549932064093112098200566373753705913384131167123250560702347469702982670033744747282570864029457251173484941000933403074823174409360364992904446415070937271630988101292235587994922144464701785649240271407883857769291713075706658800936589177508690333674611735988677057022105852200426823715948141692397278539467081775830715622884125861232028690672831254856310189645685833414770373125194967103874382252069682541839743615442217192275660918840113016938556657852876303525529127970891268090064712134748152089731390241051752090319076289088488814481823839047545056425325850799762614996543348487453885851316932580969490825758147409288018899423217230218850962864514954146125110600051414031491821435016120592061311141492039555876856048452753689084402643249954792684242808065371202818493700984561859047547591796597370408722949659113599705095401146169215740795296314482672650726392135475095225996371616102251158173308644649313668921051144081405612354603188188709934506597212252959864819739169121883859860687912629374341346870722771402024967319294468647433660298167346065077301646621403267433324188370792254333841724337909798105487327384796462957591384862311364707195767663329596284670982064548485645877432062968737584960105052653393927231312416175886959333325764257526999530930390053911057381184233070162567189424017619085251307487982128609486730253954592564797091926805272259101977041222926510888171196567747884513717212815999496457464721230662778566219635735438376770724942039188620085199414294132284500565057980505490498028143154958677861281998796510556848597490693357864867395957922819133890154107799915454763826519926585017966055247914852058635481467850708793399633859460538711173896928173102481801640194274148502156098703001377283820923920316089553536204994102642738227564646829236321886123755184593245706441561049954138533161126579724514294670241137783164977115039533918834022324886622196659437631700370780873078818389600346343656910422913535063856139034209947975898407511029036060706239743409712676536674962658033562447156108501786093387023878169296000877301613614788713198987185592073465188746462833047928319723314823688713649555097920748409770214254171333884756322258574791852778514842776428965807334541585419982653076799105724677143183799739911498790431661607707343836586133135181505192964045970347826140522044945683716284254172633839677340006298611912127774215027079234568676738844672814221129114418012839930668982211675826695690237949291413187435152238186824240069559219991614923615228081127305911103995583438395304298060771538406357906801295603005238196418912274113935513041451706698418419046565735154898936047578077935317886531264058673357355949015578552846104303172477860329434949197819959068083002639973355455744628008828476536187680003780337550908370762996524222169233557530018275779683717592927054213043911342537564829838732633307846222355438413310293503628382674774851491459721722476728780178493555005717232600049435537489269409088013872960979604304153296491169011036597992124642008003024172767149376303649527190929728759277546187134934577227295213076623295211368154982469971520205319390393869121569101755370381022365905337723318958110794755057358090352727891108341308645258357213035453149119034046641133946986233515749063713351022905613810330269504578155949996917678376872586476678114303928337087660130802560461211696150096426477996317638258592473105210429928665867989343962987052013082596471363252658312006022018910390817899546863437274192696875491382680313010074303348936179611397679062828025622814137311752697176070010767928986715530372590377214009183743944075811003768963674300162843346435755688143819624669234380728736617266865974184820778439893236405063980571170212257685227188457930793938395990125732244662093999704677065095591421725499853081359605961962792463407769436549408028517961761871107763241331203473953243815136266005263285401897041878176041229168989213326183516166391055826267599164353463853726023343390907159346787373788261563469961644709814281213493508530746233517322344300206387023933678166232899225005812152048547500207326031883853352668167764465193487526994096222569699376578957963548670862830534388464739937296707866263153804146972783931479027134430022167567974148051788345788912677686877694478123900396527303841710962382609878224612790533621210836022081665108222201452835407040058110602086267822900681113386434617814233860041081359024645073677684699853620735083301491818366458462211392285310379222023118815874344316858847450405543306337478377441391223267162269133203505499487211111808423992305061505402664002833969386340442992853972698206452579874631117556224160370737797842214811584077631401721646404253098315238127815292570456642306188808149961734120703753967904532871153910118441540812843114677729693033790934197600322578274967551504635378933381345507285727618652412300642495121861562929030640867453405276579413774066178724541372358446527475127938008490832394376904860467957941196168135538674605278394106464726697075808300414330318548004723638207148114445120938363618105584500587672498913941304600239965972080200877280643504447359860330975502046425374403226232435156436543514863403892114479188405526070097962726473837305625788716702871913877475126245790903373924253149342266621020145966284783540296835720840930966907181862083036514400798549676168204820353773749135545761618894723461544218766290311415725180864681270559156969162089676023163440744158417463469827597488993498653737223232009195617813342250343035548425153942917218238501863900213095824108009563612302946153817630553969628016870497213650380106805149965322781353035776677792726388731053175907043122395106048125577382377283522335184350396228409034972335901486645885377218554607635025963992972389090247847318012112347853127317876204096324439535256271366545595537916360882814511808921859074866496279600988461356651365334749226918617862347465333245912821409279948386772848672372829823862755522477072687187562082276801969484085471527727782360941202311704941211854547549280635733333204455815184828035664105467556213862517083515491917494460755425662674977365750786744858457020311474339954651228634998905176959516117227130249737167508634193302595527664790589063867657978142682626153276923994127627002494888098715035357554010605970957633156664927377093109091919007602022898304871218306493083651163200269809185563761261690665901683948400457057637123082083649202271324097190088996027852157138247368908316035235487131795383319626970234038638857885714089311959451567209029336847503435411124051747626355599181865952515364206330417865055164141193484965429489288250807673612243982035626583643530128573459166565878399233319974354945243453195749666940588111518901961666262701270724873548793068071749852300699211569697594829446974742100932473259556711388858064402203012809190518205219461446115909978076315827267859369458145376951390151072858925003527476877385307580523326602729876447569233403749584241189117954061305521422398099467044153858594823424323513134172097430900197936538995777087580325513459576488629918158996542743558485491961427563515474082197898736282371929229146388944407687680971586488897034332511646959697204446394917834759562396967274357443528077077305782713526068205956528203267997365509752623321287058395188137802807079501142377246822977945629153581083141635265717070924528166886929860319953120077987110283775686390418640594867956426129130830554053136981647893835673624611463686126506625082593075088933071514572457431451583844126984226456550428741964427592374280293539823352451800728008263899698932026452003922565688569917819672364928329925452156986411091913992797186815029983754650204669987809749842118489994240463445272957190774793845254244919799802745203963182845097651858083419782695494127168017102699531965190249525352060358616441003659773764601967063393747087262266732142246809842794882305273994370990738262880541466429360750937474219889299950986526793331640303653350052992077601808649769742107630861755576355723476118116748216046239239319304131705780645986406618597685791613645566140761293900972793733627224159410116618968075181602897777865110782075466303529367375102838894290453928729815996965120097572378174278485361754209949900037522561026274800272572836882949323384519432525280420723991814099210810953152851864344438334733360394838244938432204678019387456901925554637271137740285568757492549512051382899941198687209243169110860531034010967435849140999031020276977576708078928027467263741854927122877054368904282255367476100338050170289154564288806582231743282590064609725813645810730116708372862224095000300610482509713605899013347067409555976306290316533366887660729387266563142470396239850672324631135623672089050041035343518679117531184778717154771898114386577578316676774745911125741227282423946799193067740773276409827799434760871661234337973554223291193919171812946188331967382556139588236873013353056172867869937366509527745893676346389160859174493110985323514095401416773868977983690240467636147196719596576100382059031870679948361273493345217498189118658876227494883948020147630526480673222392506142952460024905654851372467061376336684685652080707031875441530928345635909205182923605321063221017026098081204766918573289251453192257161649349260371593640793779641410293838196407004952151419851982216348362971776279929443797788563886935554881074443990573554422931534988738162306911035753642152787063595524848112210940528288114727404549046130220168911157078059770750548364793297232451520369263674120981882321758647217450103200911287383300079001901419319497272573020058296656043073728327355695867476398128429858199648236056463672754569157657516351369631108699831617188515500839561721204712257405101310962813370874008693645427336941104770681462468330162813554489910834570266298782582516540251218059982702008483505769710129883334960912498444148152000246392879737040334946296599030321069928277765104941385323299418328444642854076482221770013913264646638418935656674861134020611000239595568638448842732539263826573862369433759004240383143060715033220591617696312698550641433532535970599869278382442560861208621639579424957047227689011253760206079517946816781414323956791346451130254471697276607508173801537285802170154094471389711990910221959348381338618786678642702565256718522513373737691237433396397305874682777269535175775935879440481208016537220235805876500483302328877468353864799763799855795169802785730764350081734092496592061230156108019061845631219895011504577209950832259474077211739010704975485203525702196907930759046672016071605175074456925048912790260555691622559416682002235259510830695516410002676210888542292946008005471963602315120234247206636006439028298648439539717946569144154122556775814328896840872432513068782037064948502630432831469685825491293344919996644734530103255428126580452075484087383686055697109020644550048897302416969554500939072129260013646806177174677917580183830339038796365072223970325724788018334145616715380405244072893172266798932475288873195227859410531470100748140372836647743320581480042062863277148537361971265065777135539790276340394250056388206382123213211526133264751723304056368216690116192951565431778267747152785177656378663307230163396721849476516921538875194294447563642590001377345099746262841886640778707073365017431260558493684861032339327928363489980354947316151620329561294648547135002613938654736661501976931092803730057927747125753242616911198182520878527434267763251840459366634924815217174508584809821385237540653585246928658873159214187570453623462593773945928127804794499394923954659527529209185932289910610191358898679528338980065485551466485485772513977587529691900302538167418930688876054527085842220431379727085141551891007017639298970413990162669481338432804878759943114826751001068687021915399980424217398644291135770779644789288603208866751518603789680076236433333875965475292423149558724518073106370202602425782662832383653199708672033170236289837526759538826243231914874597977623894962776888005391227909433912416482016477488743749331334677657203852009708929722237294319018197809910326163273251386169588699625991556376633379345229923413744074835779730315371934480748896105149803701633857753816382467455818613069028515664894148837997722502621676130287053245888280897309267747861629349894372007188084621866559480063382556590577324971005557183516797799267645459774632739579809770604888965078805896195965210000860259457084239118955555122321788233210385390508231871364970137947438055690117973326997567186098344139874025317178662048341443451787841229148059398780131597987426805425965247141880949449394491752348153263838626342281275603832793299142822626678188487772330045982676019838712976399110972032352201986653649012363222268781822365493785209260161841436468100270003475247218262118512424765294653576903989684753754358274702168519915285133629920519133213029642170036685652993496592959166633480373436737803695793905250208590296166176134708301060009350301207369319993738148857201902316764767844545943629349053108475284912077761618933981430796477362214651004421587333620299687155728927373142722983597856508919435475564332714418326730941203645708305078410721975349882820133920947118284851831873966377588739094300889025911031263762375936581881883283831948339607389049794988146619639431643025618150423624849094243773993159259854038572684931722894614017792065499225879670349161688334520888827877890220593239269192912261489096391940264815319661068356732856960403292611433147620158586617149797245867088256148699877933489579393983925391044105899157656170949959519341171663432119492068426947432878909323406427208617092332833445406786815796095899324993981558663093221214451663034840928901986003948336040242155690643535375139931506344243359895630681909555191904773112740096521119651645759956895369887277840006824011828290775234146686542030402524859201418701992249134921447718480648368257717475640237908182685343183638485500590636375137275845871597335163671316219225098667356532302409385515833870429360758136440033679192818537027839057767421562884009016751158468480381015147023744146846124542922736405068982829908100811992780969190739441931416168884782633294064778885532288276631660038415698957403358726957031756635184812284998803411371755758949438911315645451387108681961305600918805044812133596064829005047583168186964686539624035290093190408187771940403423958453643645926410168855554800777466083621139807107916698656586373193115583290614513363782637325367286693686834702086259776109609198546976012234460180551994953621546512544756789099129163219987314847748035275980215255297493672995506868100939857418324665408462373402804997353556022017862722954818484141159476823551554072807289483664210108784387084908391746280228761008056747794235092785653328889599426848324593920178668336778648677204499846101488878266886414748958066915300603757784176572643815002664832493979778767491259310560539726460508436570034365001679142603101696533295064045271369018811519159015322749863591115625256592387248322554013307114626819087524013294184631105990810513397479871311019721133771867255438808350387151473149384447233315061228490590735744545485450472923365060517086239250642625526567705105099727448171177660877904031436283795546807977799176073584661264417096537578907960843984637768811396228281839305943304640017448429800489766082199360573488393675377356614349054910015564947881319548887002131104375813544259657685586614881003823100403427719029711256255503319652167499921627101947200047827869514211835793172605374348099333254260651588094143470661544465901777761532364327619711290724968164535607231246182087431391095251629066806333715473694048598703726742083394451822707456739656136799864408540966349755745522682708778810982622070499489044635946824190442399178351398392551140912989068129926098440019724626365796053512975810006451258713236683653618433344263247390846344627937179358435119223209269239577579699458222049657462784323770955719746676255728373115292843662716946353123132320630859025543305185816862143376216617111615696722617810062707373562974436930060604105825575747956636216992015173900554353266677321703181832575778243607358934801618384674118452835426788671958831475785047967200000549002168486158126680234300361789495708747643835889977549911329334349978833678061216527828445822090222389964641582728540279408316232805631362309161844266812536921423867303944202769990295540066968837764754784939866121801211709762405819405506157859918867592544737030713648323885771042325333100723286114741679069999193260391782548327297115857517070246578440936246025389140287412574581837723272131662515003194604753197583029699624229940519644179750386567151614211485844405560798194993506999555140702534329188198416075261478104250436651305304317776668571011580074682860174470394098515949513868463812078156565769259791003864376400288308760762091944853301225105616419652498789910423376210651187446370833604436314612484291258192591944200857520064891745066228163113027995771396580935510850872101116620485800967101849021123209172585863686753605713065380327489826199850759356126891698857944443050144826712736917996858632670620695672818845361367797922011222219233445497405944664403501910574747849018557001730777011744575482846130463693638859263605462235097819963384525438658475867042911840069570187178972997533226132262870410080859221113495340838755663514518857336371209773739004485181565363778670502199598488712247786010638170465045522166489121449279536019024074970544689631000636910844339594256194643257577103430378674469369044218620843492205418896030234458924535302775880991924449623532217519617526058160423448288505982480559370774241251734812059714351577762206674883773622182801093443297299726247332788214202966837819388786150684054163083717284075895550497409783939081599187989837178350998507043964134928229110279175824236016235935231061178799575911402506676079128742190064919149312727781717229767629914073088697206567759804352461657524020097612612227918113088500166943711876374251194502861667717116541501578227575589309449274788799575996193311465422492516565422148974521561519981070883365675635676930941666683096149309225741136049399483323811952726137838637549113939532872753768746310197467922164883672471103448364109426712987911859707580768976650288348771749936778937052071483032273101915989814021113257096025614675692917098576306843884997879127585833067601042351046248698640186391293218689110500698161135139877452433500933452878715597016681713336127452646562758956777864486698102853105307119594699603949325337959965114512321351761176774561685762029794546406839328203677826501617780872195607299566140101598953736258523711536521880100769970081311105478946687574784478743309155635354498398729111673531614122194517103176803086678168723530036310821808308005477834417887147756963806113263583779493772400794464382307706415238467892545484897020484730568223669896086639087799683376711147334680396732508305714280334275106578943799951642683700936737529914734363376187182117321512323330430117409807943493408458847334498131262179881489255856136502994450474733748301332060403030613649153210465658325187188208754681905935228687472330320475785107326766290849395560884718945362890387794897182463500063797039300324749790996600348703004315050052293872234990687516724033044243930490727910912720420098605972432217263587655231692656251170454520765821122555875047174226561531956226649270814537073981494654136375598138120673978404177677172416838069912662341715822611049855552586226433056329413948522366421403349125383838790012163236866392074538470467512871614203689340176863631455730137627482221906327209602132150755825715374605067441059275877369028552504274750442278458660533858849907102578095727011989523040147321706447258063755631313140251061963973490519668263819028495613040811922139552773600511710908006101303420835417577374175245748673832177744217260541704243870751805824304615014755700042028250001520078827870101896451690797586856673549635555781163472226620551530780117324858285099462410573447663739685466495888743693921931459738099272038618656381476371523145779253672976538971607231995380506673198215176195330200475737269811429650950623970736202005372450140618535852359769247413603564879700747933692546674201170664399425488584065728299360637750872643383418517672670839710645779177477131661053134639978251525127430083324935713368959515872149338815315037110680425581398900984652045693318369008771324684357907358394384493613652846412006639709953898849110295448081253556093540903219420080920677141196263569454339821251223912154110179998345399822034738962590209432102847372077645880783964360288417027703992899936186475892391467818327065255262162717549478173117008543288006152018034255447234472268754760474631733573570082386243309828616060627338687276977827129056303400427614182518422643767198979332445408213306264666151576247677810936064722959462464286815285623281430005577707474286842324925084389302157626563462870617754497741426741474239279462525052206289372417280251933916321931334075991838176665033949342851693757717486797527110608214775951755645907145071046623338615857607956153004874626659523691950537072855529518261736906645413415120730482156187552157268524104878357652036556702923408517874341457797360324281836982640304542056928443042488289425937629068564766322623075318344546983530018388088338006973781187755735271939268438272338116313974967840590261115369497028640095294137749711020742222014403157633094429524394126455089795859084575115994141776019707622474735794605166378775028103758313993901991524442878090998675790443436542298796304144569835798316299936555164977675915543475247062241371037447987545218427660161575058562498873221839633193467017196531766709878373102526092509819661004424303932221423387241433323266483518408207865193602815781698587475753962279639794192550172350556247217889650236934502765039335051578930615686704700023697403279558985346513899294715366235254354826613669593924312413503550502186319340912777000363340321597417221763696275429504815080039666850432590803909955903882230292495274558285316916104463827676648141673802111237857330314769761032664496363708198539909668539738554384096798473964199883423818736447545398642415511007223189094335705780688688153230177903297135760519540993184748973657167325896186572362470933172152715403589052062401798628567376365517132634134009515592944953233516582440827824893754286464047556292586640638272183402408817963786034808892896279458527435818711359056790767763574400338084690770925322040000998066839647423440788852499946219819135583512056480198030682080982441824204645728607479443705107772186573380058616231574856579085309081530819222299011662895013850882860937748901242532891407655837511057473201421287137385587446192161321482619745283109245330453894025518712846370023939505017211115071957590005935738237548492385709208909018361744537530037690320889658887931748600066827300948557173316047898191590686233361394731303284286105920174163587519498416103990646892708571080160642285931667920709666300377056066849331738501342489370019622698454055049200035875378073129779666612064691458969767154152131808195170597645976800598899892372649819548901568787232012928749179916400644903720738603347289604179832746375660438684717442300806493473778680269863140637767907818276827353556482857837000942938220582824090488468772900908224632490339472952269943140376718131461765716335469561780587647285498378352819289813310011158635423077673774920901435726696225852629057823463028175946441265066935045756929884200329898275704641792466822065216927816624582991272103629405054772894694636739111328603356606124541302338836201416531738401380787153056588397301647460531989326324061901537615411539363328426501179358813060469178560002839518918893898071972448096054815366912459192403969686761943279664298276443339183704474203528034018077238620617066858716060929708215793280296055305387104707195883652798385921633051327941115616763724967504520152676911307928054149648225230510073329565260448913966675644370876287517615268247626624567428680024470838147178558384366231256051865185135763412145406371060228733354674318508322713156881705124605503752246501061408229592906105618285544299316279100553162358734109890993140938934700618057070609119382632548500380486978219502183319880601078486891644455215661851574456933028865718916550118598310530310345539347312186704734448958455023017597106753027155540328678691927267184304680036006510294756535175567234804501528113569361242873408119837392109777882579989127008927513248828087010139762029531338700976519337634277896449518504650546391040510498849389541221698181415317146864268723682528382029255628120365471218702579492939392656150426931887416108148677171631436572749923071276466002877578619791374402938137825242682165402245551265657746876735830159229736384478620390600054280148695007420037645070374240370950966816131930453702901152991438925180257785064047301973586473178614953262250891586294267279976613794996436512654223902687877644673534799234910921079804840136549694446752408072996621653216308930056490939050310738540309475511809027919304592348146843753860680988761535555668416276469029414105181517020148021488302648728626436916100914308265644129190415436276336012619610855916393486527363116887156000521333725091660030488815945693817882023046312712841636944430779795341271152679783855941500168896786672535428504581092292921534040469581227354037950845295646964582544835468270628653931086124851767268695332314622215050209515255062636450701092049643115056214710182162173732881733284721795214814962696570854599272871309678094682993861576810492523235437639981726904552589688336589225130656064924828849665559959276555341021040359318194660655280131169912962487977734840182695343984918451498365412887200859673680209406100659548663658620596446324794558330763160015072030227127501590106085114669091671007021485266683988977366361412351223579310212534315782304733302370413845369708373500062003836048337349844986731571898816245548925492466826289151324111980991645205112659267205868184869518921131020977083974403634195689104518421230989250668455722212088091896448063331858149001648499729561825743000633861322266533576727139447667121575459567259731863920157573087694592166058360089655223346528368830225950661704471113361329799659781688615036433991071919806786180315663428612898511677895288137737683573216906260743225070893134856617312259908666655417944419069058456903821565468168554120777369528122044332428507360618332675472921304938306902717291019939428630260598312197628745776053497092749155203244008888065052012788771584748946441968723036725338431700896900663039356874094359740198331606186690842873364278783308836234153585882290969096339798044275505915106654184607248399328829090850248422601041347143197605426279212788282178594573951145440918932800699520884882696843059224746260894862009552024584079179437650458058992760513834596062519167668669213727848661663233289500692319238072497419892990553518289666348875676804866866971524418124549540331285582200719984229367990346697284361007019559923206116177277973636733827675959881645050576556258915988775937665797893992112890016274522602565823397595829682521788295595460847383692745044052669114298714204753185118735281927547500614447615164386025312037229946914938917027359950464982915740563899909087658915818990874809151477093372300695205083371566566339932891253679118518827886129929753224267824083404828344330294958500336852971266218506042597965429906365730221004112981606760112965553439182924319441495566454325699388230377458200487062257191236245340760707248016467848015042709832230290296030876014987935941337798592469689926660004965492762939305264168806773159281575903724332609909529658440864874494540749601837796896722654781440448550775086998918180820306093489086653339314425991301113396624366461492132473795697981305138779385287033227563213181444948962582407717986991223898844602756911320543272352822761164667229006359245714481934403553453646346912277265665877692409513918095567291306144769210569701897514600596956858026505407554369286907512097663992478936350889283304289026287142375436376483284022560473877642287531464814263567195428967675942419139131029504822754066624439679915074766418518173631811614891362102060740670260089822517238611375398234444338950925013788776961738905823579550323068032475480214263818436520630105895369192315122184179678527824541552365892397766479133257880567679152608391115514652059646257486158691248436978987373765857726861097559350413737731001948931909481983029760666218441989053606626976044191739740580203554352614659821187217918057968616108305231195391106629531567373622279401909311357922098309998789259228710363250472534767914814262689099003100093179019844499249976211712653626524856439165772138667127405628171686332436378349272892381667845116184202278652292906347690605940114911523030579250662288717006735363354494909189290925224767642603041635283584715884406677267471530214455211274027722753248980691614441715375362902337907035735690876616349201714564795604070054507222294045656072599917550612419840430635611293465775915439334953645503390824505793088928335500888062561281357370371415612874394107818341602929356769410203809177742289423829346149125010043465494659914205652686329438868814757859475013061880815789828228791662193710671310201373686976372793971868736436736243074852292277762423005955847519688808871124633507638503805149661588620494421816394728358741372575731381628023324273093731508284672417555927592217520520611281918038271411420344526911531925125399056510791469782116756152721689408588170186926345490326410134104683695206082647473999535626452673381464871885166736211105222115944060638375784288196131240821482889280011688460431883614008496012741868014350051270552684733537256376251387356890368594891069559161780870211512804953475407923284810653470332039631417628801032161745376257425628501735239335237317515788347262983003817042119065613709993461031845981889490044925632561061446859432721405224426419713841487091698444635307944699026945028277849192813918932404362199884989030515679939780223317063685498404321769688744876396917764291794793303932478847701056232832504197393500341914548990651074444951808650340586110874581361586101005843697023544169380089942473980358362723944172830970064957314724398747323897879961229888430131134704131560675628233934819431899946322812860595508513730871629301586867609996037140331625817632060099717233846912424418774646827456958227052708211737097789793101596969984521477654999191640473764808075315436444157003965992418466882535332186478557308709785821325762439506619896121060380155337154482694972090298702640173352084070362831289964364527699898574507991873205749625549117186012702825225288443232612518421457563628494154648690474647131019047090448543938034560784753461343373125268412892048059341861803407902951404638853440104659716145829204974313442095731347625533977422630493329713804101499547891274519594706132420138595844443155967921620485200745125027145435111514801970226695453709973351992829726911859135007732975786848348631317948739064805616018478126074066313559171924673039640615395101431707074940194447396035744278958751727587300414610499983706951182580941255154893240226514832152814747854811645969716737168700561902557494187902536587415240699582345685286660705049099995265026105145647578457274885505274329217657900472589599767900218203503180529794040441079547230852237807578549598102370351869065088404439283909575854078212719679920737401030048950222009958318437318234647553051813892274967689422311232302592131369660913999812423881402263619565210165843679710159987362654459129306296173605384035834213817089884521643152711373961965430303065409594964456756932301239431910070750005534909861289349612439493855086218329468949027334923577808657825500618121470023091375588888971783982437144699451028130288330650309936997042500694224894809856572588093675701890267862182969172994000446767252722902540964520895931019794818702181040147911801706601982275856128519284761926205182330300961815771429876823601920321873418112136810265537161240137652653075607790200505482499081665309109820631218627586651941069607203618589525560201703962719180264407344891284045621297742158162233729933282195865986070586771620561938846046610345715246183178031852484961831759481865066384276313949083077102303856983916219648022965016546203197928150904720316440837451894829679570007649351036612925801188436093923716427366515785588385243798534032096638654751425446804855108187107814274090112256379840711006677270052464904902755430197017388245783681045513160699518705931647715112834628580309927494620917623612034290973990918861124203844248491946914420448588724105556728731068986976088497510306346995242303251814903371516432349347015978492993429093487164468392034470917460267902005561813924577390015707251322441517589331808212296231894943236638554064625817792872759917575228598155984418530715540907656979684909715243805437478409118737621507326202261700146220403328508247453831096966206369809089219974738507056529770766397265096811658400192644540616024352015692036008605352549647033975268097870324986593323096621907142429047411209417367771225716814866917675139373369190084350840634227030032867905772555665191177586869176280425274582071279556189161403527339321018300971680834541716939055933389708676762280189640922713433303190154035986603807978667238616773101676559291802895429084405722884951542649140211109848715429411146936549128777304011228387628886133802191588510782035361747449448388082827731406959583951176014257838832155614493117296284719064178307505268670721982053848253498993538273326355149379150346727477414548497526280822609314089724121634755927311946889397978057072581660096826308845297900934590785610567628856714442877081078178543358760186999380975380592597847458297208878516547305873556494386893507316393219822235038650843190348220556044033778957636523885930731227992764112703055690188105554482095750679072727715173821953529554206075081391769586208090924017224367883521513145665881313341982643166863218343830311040820397549023208546131441710731462730045475287134295303388127933540578299303669126024478235478230022213237595068770878606617051076078838898465603482512209877149472423224318069021044358614528850502654053712901025009106988372054276726878564169977419221890508450474609996285772287881908432197544911889985380455706852317103772162135017717079233720452086734227868650467610757455168410084764282307722397164939289625317691453559829876861434570596270347973645495464977050264604215699759934228721849311930021294937205913570328002243839087936512851645123184736722798310133131324060803629066274409284993911693089000218306108073656639441074576656359834393388568283913595923724156719020227097589182203832102666891824040319278411964647272003969445235867852578500517330610941408125178714937465442498698656114654145613813524008378905303371604492759756436974867148398505216905155658538150201895911291162807600368572514433068545783565407973718736348063216295987159537594990445528846680206143278887537897481463898922912871224679914844765415415454788823849150442371284406946438418707415613833064297794896586353298295420894881538287723795419051863448344954497851283455182804580649459118425888190195666303023134838882960474449548129917363825068770682244056046229099219005028482354727100180195607999516160639492327263004732654946534212081043612012214231111900769723207653991887148569622190674024842931084035238010341110026731502276254885826258702178016213770474399565869549266659646393617490015510759584200156138683050601103747159729542449040989311803986585229799079592430016095509948581170679460011270239878963878188357837458656991081410257466780697949637055297050725104616110493664272196241658562274827026711561453513806760690974899969232783730929973529176551482861282105301719659987460869679572238058251236155536596212365247721718903270005006137644143869109657937405789154437309503232444530861574910564098932405451698902854598980300538634675573307994868771397999811602768390768195570800184444830771199779924139946498446775912301936009403705476242675354798165121550590293853666648936775483971503089343717568248816911972816156779809758906514246812211319158704879821809557547810863095609360008127559304139333307180553625899747525336952162285541845920602038046327788869098134524324356373082337271125282366265628092698384729267829690324537582388388339417494525889372207784091123472362361793911001271298049916313317692523765467262393473115310787458086109142370109167632761356161170232597219952052189917766009340382248033091338364150782380356617737498940289365584328098417354085299358440114468266881252844532059347425334225727381960333732365012726841373562099909517978782388760837109500304897687366955916086242284682275668857986560729673374513486767506637689053863973559097195748801498717537086229573843135863381871339290041864840833196267157961226670830400067474857057018329574617304849930853678195195421389611980098897685681618271011981648388064569572441269954759696764648745162634274541455522829245077030359004157680914323422630310141911684610487864662221432021231590746541111190704855220979348265905630309271717338971255589990542226443215670016121228846216529018109400151490929363263245204069742696188252512335408747207002071557301220416217894669275165310192091653902530861335721053441840841185041014277114748979579673401086389341304973564646313583499365627402272306720373473765482182514732779708601640314410394277890726614135276426061026068394759045808783810539584274423560604027767075579217105507898580343233250858477292654952033252454578270243195360178513535856804435662347042266412001236365988301599622247766688727126286213198793928947891769467459565989574381441660843226571923508573476550173673789390583119390100895505117968450078264291170810160375169940946343239375562336005881585646079286071329516341674678677849582671716569462933945015242645688935016386075853942865543747304855886750706834172205225697254433816082892932457453353617857603772972303123248940619922280054764388706494900309178901893552052263301296163717011274057999753868850928722728511710641816668482775774650972892812561964966705398571384149732671366084259649639316467060014110342327720299483946243224336239642039102404744642328069968183474788067093921474805747781574876096831676653851965635973802713626095108580933525203577978308646145535039250146547018232644420625079757903627285028928744767121229095084218602655527791223555207650544751242121445036256510521374300279369342009033187324509338912108372769082602979362330832980338825025346686395871831553494246645720705154242822706621439604792447709822424875055812437943426294104707323890784070450647770827943037235385975748968647884398162260566303185259963035868137132889458257439357958990247668178208963925839985588239937913357782064693503215177618143790765435781441249911838596817582287842314485222134909344263652913888455921556428710309872878424687965337404772418731251169897708164184382094638360922354612516383549209028134447467643431997005769000923677861603044008116634646589287692126852769735583234973299468538986425974411469914318072563860703312779761946525430258880885876825016920898828869531230449363924029822189554355796341453143887335285499223441682086213812137920762051892263528094379358089232315194312604874510590118684163354711182693543596842440119205495310325454286296444268809422152649039066956740168690273277797853265782166270474745672956910606511051572487437084135118545279163913161077965173656835309357250071081002762155976500606888625889350594907588405139999035345079689401561407797112232067799869619131659189321321496658507107205940444490902346602892081949196109928003358417819355339738789581400521639771700748613468462820803095860633037174726776888183747648510670230220587704479969182612652136598261100709430526005019517756710506017380603348326160340827629274010641328444866834082615286655607472474710438284443739400918483742582790234651905999519425001992012323266264012047679409473358126421396094737354224688551910205481435496370968225463207138316156864107898600563230042585611838368645800449840374697288230365396915532540826077830178290778899561973455571963800163955990983240579271727047039023324173116472484605899495407543807085962666716193234692197634447919294749944079451842660485237650292115681689167788145962642571931902929022379525060640717667506375458633210139980189783544796233401168522765825509505392596983073536995953440846177167980830802742672521494493970707488256427222701097487775352844307679466976879110840607024141884918838144363912906236308096648785090768560930484880528126764828761625276565441879789520899925600991106016905604767970294035538432663108682367989221977213239172296369030583396225371153598339559614237048640097084761466829680762740792780459905957815666191163897740827425067284575567761251557868882906833567814108421047404727185966207804214135718075368731766171943256422725095571732001339888620962242841188538739694603554539787759280950645198413923921599038723428077115135026677041688952270625659122133206482297104376911753745097444124633778415057020823548155894321527013540269896988262536815612787300101094036131513899057016215127227772332262836216424674889888768950469504518172195641728139469767339337205634576860872027055942856912049854793253980027119591953254247283806258856866265622962124836535882180370468683963737328400919821773577272533114264761624660271817110540177358307711830650790987086414330937364936902631019192730624767834494088803744156489357041247607644118095217931222314788938035003855783437224726126617136856626425223547662926034865050664495568791785942872657460019853556869549810752158863359818854612414417979356211347416655099310357690964050752124696280242329894550079654877890443353257254527269273028395498647198033464045029938217970791105350115339148454766128909898681131700596634666472145118222921341276019032181673556375977306645651061185611853901431186222693682800985143035774037367152208618711568535941151937223855337361751644301433226861284996720967790944095190911172088784207746932939645145189953816565082237376396226972472973770900877441090838498274013854805385096262191617421593214845332669290843717921027461094643828506513740616651462756229027110002924430905548973575006775488466487529139451190061081107736135121680267585392846666468310912269275419787040517549516446650988916521883942303462812628991687374072945117267418437448584687763193334455943216563890310441423585228867729310577380220521351830652732014961461157553390021762808947211214374797284508156901962471949239735279760016484614584258268771376585495660496325247485362932286078565940678947844611176125850184751482534699614214718058657996224272681643505544980518147933227804822722835318284875301102498919165648927287111602539049187420745702748666410865543704223957353107214795143070852268528667733405420973510786298823041899943616320357513676388231940169056159748924099459595677665596238587531373040926116952036001535007299887205063326485827924934802492454391643507563646606424011920310351348011035736239236477125515418479224498734432437320397511779378346760844449869572815581458252572445825964081128527519584369963106682490362781012865056139433184960936297212073023478376898939508621442169153891409254812234714702763763128509204897567140636017974384999393051155532485805415395743534837700152321832101208342642119613524591614565428565099085840869997583898477246345060148926021764495297113966383280022227303706684655547331620450888241626214770547440622133256034510582685473139699105409620328006357595179665447642795670176466522418634197353491267097476673255460291211208689826556665848880180543073199908928097529646594111662202465895386807983949493358584548226184422946172666775087100396043065034845827105420965410910866287489414113694276811788370684421257836629742405297155854125603412327255096835828457586598075359422394444277164934481657265909642067167771298400398452114027582171254245562679571988039292051141807115787138634718825223475550512124898075423278129252074708759357706670684710863870148888803181309996079665382580746639534027270253249832854012278901462388326985332440322769714776171918197995228430208984113871340452096301761852013420428258112075680168901359601612241826095873304103121629905372940793153081160763249786278707362127160888319563048145241805897528599083981795450295239748983586745744620358669558753525331315492627284140381732956150611967587147469281957963804686634644189495451301390910184998587512407642226767607526940953218606024946567152012035205769287302249412164671983920711154975255007108164132806111733846348999913996370936651901401025997249256933305897043049747521708758689257304205351263303555899989824073125020343934268969430101288551860199940108718174611157181612975158382139995065135332729343174463741591338877129105573298707152624024834430601729928403952008475394217548616557738690148237101148203452064372147710820652646615026267503422535225398874089644632319716083934304609036118650616530279230864150579912899545849402826532308025090716130886101638334482285919540606799455295885960559225497278315707513005171725311317402812906580559475344701510860889088712249460797470787016043533442462491290761785074148701996302646358102194535560867460748021703777220622056664868040036615575618615240200596584528954424349050644578787766489935737619552905801722669562274661829951864245225624610270337203315527637076966442657360586784310446218121774981873286694765592953907481641554890805098057079245762568128932665499651541655944088600863408398178256552393819269323024220445576048725452802242797330209805557454464571373902223070522587605036847444750567102744962669057456835244275549319196164398277594012596976198236615710939338524130224898271779714771553223275708560768061400112513804042620490327192422448071758163521209742249907830448896417402615251422871086743252491182237944889516327480174562902841686354816306945506853001533470075789750879844920487250705586903692310684174074624100973379467749579768033142707006286084287691119808908482988329726909998928512140709195851743827636613631512709500944934229746804797941072558811108993951000308271991173699308315821194712574631057478425510133045606580099847777609624393014162511252560119678513649361719611751935500004770208360476155360529063474895739504465446731711575834982337320418276420940702268481647510379888687123224340033055655562037829814201335643182409089521790414082034468421906792719759064772543371938171495358591862733809146384300714110913082960568066637256158934016727242185254058270805389877978384758937803008219137336024006006825411426507767442494858395685870736639184396750634729770289694919942013275432312755651040462335130892101424080763132585386929305663763528913773972417046371752706966151652079229740557727123268091322829458126758802685564458829518619697575877971559721020983112178318195232192041695375082655343988610518047753472907889032854560523726204037329548109785953332285296918982972933921313929902147853833621758129410907871556025636424866874601306092687439705728167997912199273784749259709227791629330810791160328120187192368975994387124263840641252858415372534314660782741751809038610467607677560607284496444547316799589653613979284018174691914682031829529340918064569398566637792855807896168625386236617686519023655104305157384281298780508531965316357037857195042723838160057139260784367467108108854038734466253795660368205280876463627750167309646602200882662867032860219675838553401480252401933322689750048096376822869973064215334792043514987439457717818624909374821981689927305954245650590182735324182918627552157948518557005462845954504846504610123911159085466834170034455363550948586391109686243819242492930130228206054307433359124697826473954956650687592193324099384124706240179086562022457811798324287056362485139344946028206016915994127610813851484805614502428378735331154290840680826560322562886962361118789160351291580255648821282083398253499512867257394683140746803498436957780193984916279313725232033286874519269448866167651512343242747908972636429878755811981832970704353166579452920191656368827308983074545941950292266849688399571527118554542853600942283840256599424114567246430865668229512545143859957113995926456250851701453452789501941658208134674281210346291159129114290148797133676062908712990148094896774557297619304809994899940122292892672095266032580650457497697592890625862385266576900169709854808929301850945528320751439029286478275521738622950826965013708171470539063036491745946035189257836665809774355340783730607467295772337815568222263457131355371083784399965678125690737272733272412761957404562932708713871595420129204956832218509633652538089909636502033320499455697712172274332755864485419508177477215341412355939439904789160491366064835977856125020680842213451883725518971869065191467231485765580276201440494217693041079369769624739663639711310471827024450848767642926316413426262141470512077340631890380424698898998202438518624997543526939988839030843936605759393401923431756992129438322678377722805289509791351719328448568410963306381908072280755748761547855814547041309130607437773673161755856856335307619379190001986196019858340286691442524439940856275909435124963735730456913269897070187816043209964072839876918314024514602792901051047192155410257580622521797267138895275627088331344156914842260741219746483896099179548910466250422755811704445072080055197202381938999048176512115893463275630453942491762367768285495253564655784762263725476864142551005885213105110356793844275807582488310582452275218938623767198433904346381764556254404744176597707492117518981296808529205947403241076588959382971256982426584647870192333566335883456108267809297602917377263766473645663153037031859960656307594361788260357154374124486923097197177680318986582893223470912454846379546697857596157760389385471218518481920700956107137158968791793807010272357733744872235721139115472436891643583410401559764643111845733477473379842015218151892645501705195938208535193986114826428317908414955199204608821824306667673363169916325285755223364833364192698288077036479739113496876232406871028475353877892039003360965129477787103710941899895495411142822777677516137838120212925948087035427465358815477285259154207408966679057336136011753099095078982347056831582169741673776454845319128565008690660632528427923365288605459958478336191779888281441742656459557773679286958741830701739661833963063719408424639678771631344525499448490320047457007165148741771048458106333653039408507753266209884079087213237984227891251124820288268092541288852208748486060440462597116867680432588334231627392312681541577854644562558908327925932519946213039822091028412204195679276542746727648624424437542532800027599778727830103744352374232175200233397104958926102351878196747499340140493222486133902996893625393782184048390090205641718050897931222476940886898231880262273278586760735075111368676558452757700409143685855701551222061565912917730559563114029075326964194551635664504420273282982852415078209395672297101141234864977562659833936010856514049061602421819762316077464411253743925327478354163548400661792443471705880872295935363636807161925082259681365337475884123684683288990299813868541744224523222866566977456967999042911860238669580772946268180261577754654319652468776921278461025667355072463045367403880439536990025114309624463096952192134221269319679970263021644744136915804951047923911074974850059677572986547288388952578222836929551459523301191049042190191072238627576544522935260884021855730446407325413733322727157591533982148531879841655344654708210248253662409357079351239593042923252692638281650202668281882854075193552961412710467716893458135200779193458959393863240069070567340638031827709354507391076010268485482990817505749330193757205336310294232873661849402800867521680880129588244352240241764926828142930840593071140886014618132628676599260776971136858307338818190236756069632132717272502654798305578801251028242371077363927656171623529849474452347206826487330881325389628914282280715553221196619702134149244876545466842497719802464162166755034469308434873402384363059942941632586092776767870749921215792398054832144789322650879330389519264005954069964738322881002769619626709773605585733343357881645922807803235626306204330833890669031306626013026475464099622659909479295083102871356610835937782759786949732177654554713773505489630411870346344252695136608500333671510764142142542634519625066171757317300659556893949523477578495037170829180964180247506001250723939042739869950651698307815381287153879564893376995316582510604352662584660490950518754981346485662618933493312130896513916935309805389183577841022148253065905309439498428635609223597332834668929044007061597622684801225185960044325266117540650895853912345843942008699755011997224277923025595035431138986553147073773255716291360071979628653772829961298361324566381141038157563672756229388376357063327551050373206028716870400730398882826526382289981116622527715736057263034435055706791156233022732200434599126036677861348254282579893420444790865856102236326624291999328427501430391827248700843564652680945017724398829930691967876254030912798135470759510000114820301266459063562470794064427841066965534747170939741062033501903247678320569800677071127741353340993688605968932762120373783728479051010944548821153032869621678322456933244710705417265981296361954995909256460335578639211444697072800595439401714972104522380517506037898556596540330300211727691990842960717964734553493786150131200914732941208623355414302630279019171705163075123519835736853891023518665903720412949722081817454840405711941545118944582767490912433800486656340980630083205963024847873237226577923369701045620149199027033768232909005781780617285964890622355305637268204352881911878809171876195449462621768134439562990732538149626427339641289540264808028006148296161612830873635570849442132743812261917528972041614664209746370568795182554150448789978995118155275683968805337464145011427736725362386878902487766153151925952105793319446477182444126765735527839346512528732729177008436962775755684073770334351403787594297861823118657996033575486643162427267882715527941893054773410059188151550930683625568213359597727463660732640622574677962714811121701205781843404277286151275589017569802813002793020572238417285394281933697392780182493445770448434286018848928703613522062645243058664376154159444970465161074239415082488982401139043430539723488700836371527957882688628505208981711401634728004611657099121608956364872448663804946870555087738709493271846918579038623669054518430829139682350259540359708027796056344837199389119735934364482263075344500188993175574450300438842196765304254558601582852139563777732493113837846429935210139380253156833252198352124221779926827131649206760144577740788745804597940091294641740582176183864327580101355841032572753094130585960756413184868243268821595117086729965993782254574338481968467230398133412637472129810740690446683363958836655560801331615184645418353094837413475576841216892716483062712730607676566996026414970620477211647859132965842483398195398432910816355332929482399986816775801516962305603658841603601409297804511179417044296383223035815973207494849032988854714709954394236958987789236391611269667165495519604160537662374387253733622041782537897649071874210985181205621507231141930369499328486232115986316085202436510051957318656293034044818567762367264226515528514824344252323761714485597303197329402013503395703662785639360470890864957519735691758125379983946577536267194221991511732759006157450756838281751075615455425014501044545041888236101767946048065173179567586358270828922827256323622580099503492074827305852273599871752916542356848942157363535011290867835956932561869701640266161470439046084036887288932662276295864341216573220760455258840731590476967753889907491209145395378639361642752397130096585484902862519899764026847606250254315738781837525135920807821473854224524299319878448309717074566932420670721043399380019504413662075238654839418130806613783745115899518372522016178587170267515786017657693881772997213341789098592668658847705300018921203147784971966863863862889400034970203704643653922954792013059483496343393201414578699629413960908235826710482792723509608309078150721284771754336119732505241303558413955700755845300304041613039711550977268785554547566774830797649965051147169445352724247246961133421383984665455379394880522060596424879678056268487693195500011319633154308221731000804135197189312737783792495277867489242039873239385224299660505849624321511633103844137923331122830269271074354324233629277058049163689958427019433993086645296446020399464515558300632411393763663337672174390753386038263461111995003198273249678847853563540684020071741609914216261899693457955187281718597520508439324704209423467620421974981017565191839980991913830724879750234561660580329115830044725045025341335586955647280096538253067298784242779461274201835693819631491468832438576417452846831510236487580036241909378112242511763434012624055394500075515353062556105630473760418122526255057162055976347949727575123542701359834126846046460343540697725238536010709820762271008662696779933663467694299374356071115845390171659656922038952950716206668130958892551928237979335315080426889716586163830017858241594816415911432169161916240855374789242313857203727163517065579075108861831780379848316421509110955303935941790932391937477205295414339597570440796138518175492880490518861277525186487494763619654620238719894131002157706194091506302505577964575112070995498592053881198978423687593469185655623572830302072285221541089078421753038358571655532977528807627453291030701692508931543202770753383512668203963760374239497368027929796112753541813203729856510712353641725294142040389541004909022400770102999180497079573125075454048004282368117823066976325876177109678655078614947659874619028302727661473341213902998606871584658194135730528208724821402390223268662731838930997476079605877146204248230029217082983592480012861452465319872179661906771820707650668018720307356175310944654631421221350775717595690461609787838820097401901890745569784818800391456712764528420450400695303623024516265401465003890643948185943732418129520835722088213022875231767189675730524309464602881886185582247019711651740792726738949441158064345552199849967409399777062822722088305306453782063503340730473340806234021460815707017038774905163796044290073679070033917772262753105004588820977507420819482214196361967759533390288079579697450171070108482599091956230383480696189555418585153532284959982270563683526149680517910185941836102604072494896471240212187889396620443891278890729167990724889524855607845298533902239662990645134374076703659530336224875200746697285830263017479572398281250440507555965174957601115149847388841109422898466412773936802849067932749312790999946494028325759598824173784393735747755531297815510513088742716010929964017537633880005361783221116432389048368801151036512074741538510624432330398595017343832094669087870197746817826148020487774988058152602383749393744625914371374905758936384082351612793567183502408157603493244801571226307360740411820745453282508106554092470841914460201076038847318393379338981123941151002676388974816685992227724894539088463442596191338433778247785423109103773199732940593125256211866588131147764014948462414769287706580803500474054221228222637669797790882566374939046358456541722200562524923549616339402645867444223291990385863113649322603057410128830967417047739522546009996997263077813609219033512036920696518864256736018018566525837753798458141862568756432831976831885215562242447164630707472324657767590373381213703371781354859018167229880734750209963046252469077297946613877031918073330325519681099266159159495412616377240162567140242714889937229183624076881991732356876213614663470050869195427490131190038098955021912428993063174997034829148421706327068883127396855986035995656310109336253573080328978148213442957515064480777464739923084053577962024604738868053137295380125420363119184516641796257642397607794636546287155375153346723769650781683759044419073863655552568261373531685664101508613451371835360330446285303747355640667815865508545912761251749476560642257549542327278387394836197596116080573670667971341292608795715767988025193381134145154436232039630321947707767080834308623639380303936488014900658794952089463369879697376382124234418930194807798235706995620053175333342110056444436551265508285445528932010160166440830104918934076118151219415411833103857301935263917380325529283055745752430802386066511074464956346125743235469700617960147948700141859193435741944596218517918337844763332453692058801292944688713104676421633125548267265351418925736402314693987656491470190645546668851194940977333725421157126076100312201538529058681092551397766634790828518773441605926146311870829357921504700923279274724177719937047942444247097140836987808453077202628813420230935892050088371314102460418437587727073132283237039070221185129192454735333914791663386146725062886956131970869077840061109152491000545924499685901797304206705746067852258446319100813270967273061824923365553663066466591521602602516681778756027530625475183681061012032858091511757779059279254041339951836648288667755241510921324059748266576541275541142773397611385256520965478726583915705020494528022988818158416791376589787223779361122297028834054718052191695027061413662829918932546788617890386149978349327151722499455866103232070385945314086940090712880961423483188576612090098584435178032089175704111208354714699922735820944852337975040591837435682186219536468884776902070054746885007092250818369784448409522344970459502319440097145428362014875963782660615733557422239213491960881195552491918612609250536683144887651254128557662147073055617494680826892620919877313576299678004557342349162012799897694874256033868815248346125508863578246810243039103993889337963515774567235906045250662043818027049106496012665186442453310954322214607783636435558080389715828525919826495165976973537287984606861363312804452057036606658285229410533411325677280722275346784302136241170613245869744183795086972486745663490733348918004457683113008462549330083489267870363741495209070008946615240772849932552752321491274046379428988564395021566176455063380898291325788730412967290289414059074837942479609231553822611321989254951612384694182099006746764478634661625876396780066784837377057365910020290678694596886476414168122980364605746209338880590335795989166669242510557373952515104681814005029258227918853285144841033352240672600795164571662884099409458344120216462356804941968517471587131536823366678689210729294806129713738111032103703995954317137465457028226020567807634158812317442266068057707587221222048592705224296979022149948932560165536632274272690326285692226647678603019966212620375562283471156321168705532634324753368767626578243787968507242250801334292117430055170844446894924497401232581734966714484466982576091936653275522137205691178517784529927534870357211139874516947869760913552977224621029317663912406405406614337234406961178126074926601468044280807547012855614472031193488468979877493986794470563301145409948684444244821302820654112533221970206241371975554447433140627852988130421372465779223896199310372334098050577776518575865834880520344067129306834609089468743004282937582767654537041037388681692302774048735176794138419059218128623290755287262829844555268323198709060978521049140873393664228212015303850478226360111956325885922704310985979344172002466221038538002308010770005107821810920971824021451328662497025341920348538118163937845672820815890581323981872873958220793287104857626918709985884858109693361748428739115725730733816582869810656676696653228681456314570748850201168166193649663389634383475692125282805980774438489916423294159152209812994637103324443475347796058163340662577292538846370433325369443717831118850444259519611330243027361812988174623844927414538526758850278984085911027710181797730565293257224346601407673773705889678804595418657932231602988777238586373138343207045602090980862032994930586715003376125481919490464283361841378934164388113567119139984302859284511310792137683322855480377137174341242092880884594647958762795777121668648121808424532885398776478796756298551982884735302566079928263796223742889963142907319657559498873734500628192983889841739170965505462494741719615088935903983463622327886626853870499140305596404360756143578766074311329308605441885723180001004042212422467264640995001208564595281007855868881514348852576118207854912312841385555215184268916301279481482600807726740525802379377502348592925067405996830841730450234199799406313491025923855239773242909289505071381469553266191487664160548839999756894991113622119779991127735968858136876154954095443956233296963596136573293889101708330673855924518797136409460884313817720493382373925639134549811955761213654040191086365127265395241233081743607609045567919122589529550870696346517354042435511235714425073719937965081453328403545641839779971145517089302561593587040921841654346735608317275983541914149313324887946708425463545150300840033552709722113071156060558302580707897729456288597028709727737236380823351639707656121760621496449318671471108949169242959901925927191813816673219433168223578546728390207271044544618593612505350886956368850016077962810432714165743950348729586685619016110018858972033884669755503573783000253114801617762874515001595969316681584445488278611074567864460608562460780583854503396501991831503121155442526832200614320080588815804485411721191262499807611651766478880932803021827186669947208520147131482652857920354142420368262544290342740570802301145907734404937201525938715232289778183520539191381987901290875577212005165670551731742673896834131574835767324554137282879339579271327094936484051260318542874201528074127086207046732375385602724912035335685518550774442674263523600729151919482326948734393909140985980396106846363790958351435715776770659728997113001727579217632947015738317342529307413210747919258209430149810071652631110215125073755435181101947400377905603884650726728874276843924442713999892629591901233339305901166540819511458854028135089796092191842035073627773015943642191859663415000004288542713443850910432349732468981882751761608709189910656169961887714696797749969527164360690323843436499366324827917587218827830265567076245426817639328167562988052910246286550412293077465948037405621908688846866318005906313496730881654126465037005929139610719175117412694066898071715455040907045703634132524142436479744171368013997686574003514646024939065619910851881656484213041893961462428099465993486620934890192727465279514454233064117948121026507267314584455208527552819294291589330919787623546239525298143049996398955047928313550731176413391670653481689850590444203421823771832779470254961731707080254481468532967919356281152221406401881219640223306429663191950204407083333395611737805590410121290260588396546144972955899680637743376199138339934442625634363020701732781811540845955635934495264805216600184350106940071023475127851290996302986705178846740446531136778702273442050566617515819950746028158385717980186464307738489264227316124934863415181355798611385802591380604164516309306801416079261929150396217220095481819631896940971274462317181336660463383771166154231610139115548712174658110453210447173010047374999836329465600850747877443852311602483939577551609036094623404678879392979828905480415623434309957448426514858401853707467299981739627782229245432035399389111148040005917202033520214601077573214106398411455911190833723144176355048504437011384544256989482677505996048256553378476051271910448786177526963410227579038938029431108838529273692224594408411326340467926881864224841210607525141253688852845414533790108502100919536601436578280125144402220948679643430028076888142644823880759345487214530718744729397951571181220631392703907825622188324191286088594612440144737923931856755545134012142210888302750404366230485897006391581291504574589051091427920269997318206208935192856352486352730451582805342226360191713973694091794370566547782316218712835501593482339394410890350446704009059496230561726865300571423706431545514241929677588281742422129424564331106756642558977266714129079211181275318661563263030862860815038476824007064933172794929092049654048906090077177106776992313755235425476446923469697900925134032086125174565067712357865014067329634378058198715699447359222163211226798659900421321864637283995395520595221798091065082371872457496090670066792255331549843552474869141868804381402661287335827729969208502237182076123179116020272351546655859010610295712528179696789384404276903065759482910904964163973588315016649978106748126700558548820027287397235109879908280926058506297091488711207486808155114021498297965256842192086516140240638946401607900236136575541955239587762150315855500965357688381462643026005531775933229440526081886626873548783458582068194666994936682324187764400298077254073320578996551158038219786962833962534055181439195660124653536296810348542118402476181416844175393604168253169979625017951333638483322464568961394424610681157172649217679704430135449941918305408432265534674835351450323621599348146268178639756573237154672116185215516948606497005671597654632878973752112857140886533009615620568802641554050997483573393751860587668944059101358859026231361836554414532136103352807591200096238760059272451369041647457629748750341626310919223768678563046368096139668053291211125229298655224271889526030418841485464158220419328871253760595042213403181788675866141811521673529505250839676000004085694103990666925000029304832978862201951349945434512242696326660242212121891846691261066323157552491960193193387658134243105386704077112033578858172605559164733098679957003442786982329319290323878571393287037860548942919878035490118290707112083850379733911340631035261337632397114032051128183061912272975939823750372816180908426949374835186503682164030581674783961605580645975476810523563905413081131959868391153692413422993559163682861795388481881583870979273868335861341148894024617473716950812592109272534402742394868993621356626129278950490604419328130850254752379504133954085168374143603198133824965627525492119619398451216709234809847680503810421284101637205247354045688531293605007486707211197382419653450782199779291743449899071648246245861748061353982013891836285601112335653310306441549071657502238833048354123569068401198417133807428902395016204435348395947312879145865747053864298183306193965072680921303937424594670405115617572147805195757813365660223208977783479800967352277152122459149758571247777138454172970864099356480791768232116033743147783955129255129471727939284848554326814584545184039231617055182767756249129757418416819075812180890967715585721598828977253497925256361039877783283162505344803686209951989975503338160532642099239406861254305168034029514105709758485793001607925717560647049220644476327636152361171089906121227885466499539568149072946630085664167683173999120161261462124397081197459799208313480349094218330841256159379578926087613100652158152606186377124490877390455867163729024598603243545547301710916367139872796330509584059136650003494694452812920919871513552186150498291927011286686815708907060239996742701287977782686241563009686367666677548873569952066181434836590076722907265918945840820844147527456177230329274930932052742467037373720725173183661677989324426565831984996967012650950407653013214914002667391136310908029655351216929177816701703848199283682027613023987730361484875842916083507302388909790683126603000402715166110469927538367673034487602676675399133882883998022918390515987477366644986859077409326252926928111256470475970833407319098083351885515630344589979848472573287714558050914030702348203756790495631696429390590132069731466351673050981167108129407301017672246676097917996076306096548379386464375377191523783146988731280924339145248088176403802179310940946164145238595831692857253373389457592284628305902257483696968780266500451444246587025563587681848017727061002645344585098098561519882170512145972097246826030321289504079345520501422138091971691903824067925960971849237593662499897710767809666704938154073412479459569075578636446320421059013609133830812641983233511430111044863366749346163930981495996949517222653301649678947157835109602899278637947398261359735553759182489089693684079312055013448949786577248237931363181257450602951571593044654692676846346503105244429265357908300985336721281858408413710645773192010931171642657034353468492325694833337649183467060293766660638366176912295114170514986577194535914768925383023757551020847821098210320148716178122181376258233306417056275050016124179880008919408732576126088641929038395990389242319761646921149128026658350830373773222789165784062051860490788577594679861754099637430181139863953382498848524295155721133704489857381469095766268201083832896493414601364027444056904908365661742068113736345541573672751102737816843067467463590175471783822925896205504366586278316384615530605832505152908918240643443559536648013054824496175817451836903995836699968494888928673415054101424728284939257571771333900441078968555648033772769311059587161439371956800426052136662294806937348284619307774303639919478824913519088537735387641844944568578935683110087820870019473715914337287179222101493651627313871599813928029169921616421178114331033348582723165793530208348412937750648220781017915156809425913772451072399566055844835482505811798402392957699179937752746260891742978813701203357394888441005385464838883170196373492668954101172371078398131066396982880633800839553034830847898229304811422722539312490483014140903149317736249594370836687473320941003634729508460639054421083104894140921571135101403587413538274536676835250167808355007684045684854566434173268594070186783731102018706250795972885555142997967375066264854455241337009935745248693146041810564749144363619552432497333736876113916174358931647218733296991419797393765198368016468134963829874684957695293009289495257983570463717568779010461927048436863437438771771642257809444112335690214991498020015898933284667284578535907497826555356619163464708456625007630445043602523668341287663714171022964261332183369489942381206081719050049663334511158884612840086106035130225708661397439380226376322847236343422653859866026527876002113703796448454380945035776339588533967430453324010929862961945876195859938669260536795975957878339110862718037448374143640829050334880024416866871867654606372099430066027023576645695354294137593492349855332229708162705517512667304661602793725032717392334153414703425572636589551987501444177056398771889813124215313096020856708001593546143645472220178540046117168905699382830722216362029633074370413395850255409202671493728946466621134774739444754903069363864837744293432934776393830014017463117397991966564726515039683206235376934121788091795521530391897550696219177444937688088434363362683995201358070851983051264401629264759066711355938113055568068890921662637433417191151905701436837572281188766846868590183926026645057287759854851215243657956910584562933869530601626028491756614918158173563866101627210481263359636352815897142434026318966317342825700216755363149246080229611061966933153235465976033275743892291819670642100797173876256074006157616602286770336643479566962302534868517120205757319365219223181784156015596525200935471625098166255446900649676644652031015601344348339853623272043198271090628830858583023419920692898244299601206309006857969135799500333073109976219760781008941140798835360856998374351445582494928690093031887976396357544057957636124035019576709994986362108778391624258982513635509132768336376252475536947163639202283723162992319600680648499413792876597911529539921803455179782540767884505694133947572462810426526838733603043690696937752308958606975015827456930713631135466522438929620072517750750640603900611753618961437741707715682217329070487994145520461336728761091637047603265442065701424519464566399943237248181283729399357179882555018913635986848722567501228204745501319994047018091025324919698614284914127479746234447339787490361880652660738386751012720900511625983043069177658725654076927868143142202646285505863095033365544107757030589008298076248051331234316067985776716639739905938495549751878867815294728873044588161756236911301975662298838308866921530034477712222296115141604257398221834836348503731785494453046962629947985839619768420046705482054380374299712740286536228806808526369280427368345907384518829033987389718416733942716542089339365782371091737726280353348399254199409468246221629559757332092395184088092435934039151709317637686492571123468898907831720688038455972538482561404876064796220851516296298132639963557445477986349366406131666530002346522021035300117868195042224941548014797310284242843368104531517792977199117325265935232336282668455444351379708509424710826987397230101961373884435881668307896019916960171681161440378228738270313118792933609923177062405146203388645442462210947177693034596710145980536411118248449860138643133681069205398038562686698154003428370000373563858761698495418994613527467641154926944489381294568759359477994648850011699997934678237156019760562434745837401738705730435022019300667524487510733800599470800687867864701573936350928707131298341117804323378932083046941755203196206622901480881892805878979866065417935456867755623348242199336874815332413458579436961952135015660602829061853003436332239364010792752019755194346271307973452568287161152702657693994144813598475116810235338346598010320317801096310100853364998292941911779332785060154717807521534250976131848671806889374308755819766239574630712628158197601932511037746225680490215856488107372637728100176254802487966184003642761752168466529637605840640835986483696933437890822870516083201610337744736501453237169634109115419137431925436083990608723950436719473068001299741463961131140221383941125278380131431183149978616559196654810848644397257371198803463014484861773084375157403871334277436775833125963098923134948193031140196240666749772885437065482155294620449433756459777259650380685287964526359284735879590986869033739329354315938788774844831690619810805720178256638397138985208215863164632921185974631761297496181862940129511326876475125142550421790752159719520063325714001668362509464403874675097124318190010748747104427857680619700847971454492255672867106187380544478773793061496722591502357524114792727557084960209359350429014568280918270489845820384931977625792467080305993272414935850671652312878765384444444962212330578809620354275297726217900460781143282854423245091304886339388980215462761416606520433113665690187198807160929638590142302340247290949493779106115810652481068151751143271548262065004567535965748574348298846918753798918496044378712557412099756818268965007686719775752411162263611195907614567689273121091726176849518153860987206751444402165875366435980242721099304716401583382082790183076871712950140419200538037741043764480995035210549065235068715568421178247423349638113412549858411218385729692221636360995447400346074513027388322203729230701783041263913452714429474109022833714682463921536974004768343938823104150176182649676999387480224155881986459298256488774033306289293379660877522392025804137337235725008587217817399448598647766945956428303102282231161555450549379400010790191596603629405081657176903443423586289763134682626854765644960000787207972051694675346249188392928898637972675787679160300076777290511937672123014552920830705028959835669468258610157176312872497061004278939474124527145518189493979739673170010730899850749896191624176715253771643790075516865077464070014959736006306749725157634190131392713379298489970910271244206000243550709318273202210892403895592574491626887092931142953521431032256246253859637108786323861145305486121816790391050719202240421994024552434425071788169482911212419070974521579080774135052893176172688833824011400473937503196313751123152957990296002801762521231411076373264691579971253614671764630775291878572121864698533208311402342944216819442968502727459030399146125266441904560722873528634137584695161856651467093959705094722010688710039515266299025867748030603501298554563425003260638382677001810149758742079531018316266176275808138446698907004903466506924046817472106746552309169528603237083392273268001322756059331646506352608326745367458447775559428032136034601030195355119405607754764896310758653003046698661595400838694071294438820452442579724559254705372861582822666947493356713388671855389716189749136178910200426507610283787358791160086031085794735747308282711153517643348636399915393572228716804556527618558540630491259367392339612088777684153962980527092186383777300258153066408298261951337694330052680466382729656888140784322830642627097677442965676579558552743498315054812331511313144113524968568947677120548806476812997837881720277726882933855114586669172029179779954184777537229244544707443144188712006426429298126701296247964004269691390681381360300751377183469161330727018069974887416358100978178896537177775865902385165807535129239374950095080101996207938915207809303834494090381151243088024109328895838211032984349912800330044566018089240727030934853921595848242195163591277577957364078784707642983224088610097369121924538284486269864294744744699273199885029010216516584585679985760409585419098921484506525012102520805604429891106568358975742877990808518860531721715408608148772597930762304480623951488159616652188730216068823231793196394493162890375336262839034131780103309242051428889686589812206776285280228207614844162965042386436527897420756881715357545587613450461746191203711973061038050069673123177468513577191828939575535377692840354958698095508694962273399033168747965223760742710258762112827854445992483379937636336882025188106396049328998511708460329968539632590456969375311842200539934025468021338373668115978507211069773308698304317397385935001414200877331060377231798798177824248477466798598033614168351272025960328351063623954793459781285896880963378551125816204998773500890745624683809957396797356422218548483088238808392033155347040997648852660983952825095103388166645089425993533371343940833578781365087227136582773217325350743537235752985313743854166904193619008455378442512393936871815149465645709548581203803312434306487010632171976018072001144825917349894883235366161938065611621485330681471125361750259437250516205832286635207616768070713659868461726460583484510080952107737619459147519664314232606570580207700905822131158012170121191660311933814171360824204464368397937438259869842808916724781846754388432482612802712160305984625155203732339110367614429348523022496923204448176060193557622333947974171213715423922503216287126447364924904911925653304258497501436364277529205793787213914031222680553654967023053623137257054410631422925593226826308911395315790593562304981219587781143833319687994982663647479655711251727081790678438902882847809757424309374417281732588955310864898269235346711303367134943565868450937132140817378949644622565982194153233380288310220015733138145532475440683565129576989174012679631904376687307768193991232120539938715362691603637405460586341350697827767345425293290109960478706342779220354216703513600389314115625684587938405880771786585417595197997527548357469556386879752631218928054103596631636669677409303664512848327712691624972253064804223989838207910705104809346457640665698327065566684591260837907128514908449862255090823512901858401501612139220467767379306679399060659913229112005864110179681890357111871239921563212899068302693735036178580187970725057258534542903336899815112423341108772868557381860730695283722081698246125406603430035554358504164943253547940614938504338069743979332330956940564914608302958607308349558737412548125049128004198349584866708762875311961561307769237417297687494923323354556722068871175317564633811345928468602494871617452424672606343703798821562146242805718435791319532659666230236594376392618023691119196608775760582445388411608069584486624966633216534298645813082426716104921282012283113210401493541340943189637026739707972609554818579841498861593290814130121350301727874743201782235376372972312383732152390351912765021331471295998627898900493795953765272001570705401434603118841676969190639722615674740480581456560830359029213166609743728370211520670945545503915223244878792630580282674334110007762616391667968500247769042964977588403981684806886895731442750352617406496453043531704551788772304580517031498816298066191518673014724138386337176694177117571338824447835619625746427048273186230236063225945964088834325852285644264938005564638290178466994751365397278221799760927666498895925831786822173327498112586454866202624552986484321935453415881568241337951022252082826854170507541335441403901015574769173822203200267732215917157673391887933299671679816209918239720146707917961711174536352739593325329469403057453721480456759153439046537730950118966666537383562146439819722677308242991651719638499939240666224945960326661954016915188866312407363325953912709645131779191160002043069119914621809689605800803846576658823579365107053567907924353651827109102506832294600643144198493554734383744800180370756433545418217403214642802600921118076577751236832367708553780755930165909989886383232109589440483780594242453411550067277861818019406002945123333673854587199290316799091967335407467392727493459434084719271689718295036954565151763519594963221504129339495387408734610246551237693853570929262489328919278435217844896602695272954285608056175374446726027741509001413928211283344779922983298478302811363435236801409756324353515768182799113604233901600498887365873685471922457922611783559989703614596430896477701756826947623463906389629187396543869422509049006589285973926833647073680338549422086719888895905336458861145248450697523826472486802429198087920863195531591652523871019212733108255137295746595298697188454170231327897161096256880157322059187661911932239213629952504935000202565467646028770310706970414749708390471893613558279479914051705530299676179186108856844423444326589793438784733645566989231088755061744714981802758363987435728364398636123140337545956688695574528557011081815208713353123426834725479900301549459168199219366842658887385991826458769777791288213370617228075167373112288975671440778690935356339298821235231513879187008722917788737762207119584343032961007829068007432254426472203078640375310047369311978164779182814996003687713749219486727228465339364513562801387338611913635604478038304316071240780358718549325248728792030897180855902862091585780894667362959425291174298649810520709006084204517742934496562825055460030157182726891136115676489182353158976305085505449570066185371722127816635774156300722297528211090810733372410372624161322447241312047280878501662303240548663787609223946480810875837339671780417103987924903639834482621504271376717899630691936942224401350120917159938028586754125723408094132026971068651043874950348865930414231822793275035022702661538735254099485719041830658840595887215126371523290714823009146862833814723273592721443919141878927410888254631902207016322707686350885626565031938779072776153503567742576181703497439769067496046185426333464477646906795857774077763865088817748908848160754102324539607948666168448468082474761478986168142406593196901187523591743877403655637927105826394307688339690129427166027537607410612063813307187349691266834231902742722972007336548712597423024571746957532782497055978115627703189018818377949267984961543313998720041323139361361306668260015701101051219543630037180253481956461909974737076613736982017422854175791092791167947695865654564911480592518679964581716303102921471801685772169522647634875201718174170612752353422788990867257862310102964318636979180335210196830597335709532361789873297339233090075918340965629051950615646912015503317974863839911009966143242646572067657601913204822265590963728396867645876413637202071537169155372080019663677938985601733853910610499360272463962914778962176848570308248408979344551929317224142571691834563560878574000559568803173406720057213935316883091366763143455298320476183606288861487526382738825120824445638644248049210856090301454588072875309585144664441497391366334644841311307190084805068893488273458039844130906636910367957900727095271793945119527739910952596279431412875379118580513945324424289335895441309174944527073530288065055541321225428182581062015786005610607435810649049040396941561449129471091448500809582791490172169028242037487329781709002618449494931036902149674109986813022853782394410885517125158770461259568640846004712008357737402548408593273606848625365728860371696903696915635290074656958728016645828054879133869063022281380421639047579555592241214413291295986029665535773029047755733688040830143903944064416827592884295805438367362352158798062422600776735569090241688649246082162688962317890146889712003370843645651303183010643353514511829135537238747166801182014291986570062135962730823467810360004801870070565617700408821637894397147443990304330186417862952438331745746039727536770257379824188633341020476419262516548189309117257576777229567511470946377061159917491474233242019098893376574362696593054468298423501236317227417097388682867961102968506989534150474271061101190121967144266541876360476106513382526247447118681566850061776539975334669947848758350203795312702889328766579933276054443554794782385618520503924874507777014651376494063752067914983321103498074101818001754925026298733377934998717208534137920806797955036683610836530351152681301543729872504597407859711227049667110070113255685296573889596166488756787096994131445123608641872234809759209072651650714899236019452566625207098499744951073445328800082465558485113086487896950149847885011343102566137009826835612452481909780558667548084096992030691547971195139483353107764320003681981796532598570617526307497290271845880206561490680298566090460394363009428315924314062593375930186096846180858756403285959860250609919333914768274141154893396917759663378726732567100579369826249682388754546763204046828500405638191441233884926650659362908463919268434747106923625061793054200651376961923648582240048626646267837693719267920660953320581221493168567773021665050411497828852640727389477475512755592846154788326192264505393057595506439508546068652525122213228526399114422316636314334286728278155645163977977889193508766036693007843542307016094062121685496545268295345456914052494383785531266823053884751181077853815765293929812920733161792381120163422864578530463973233417563090262008244506779341884723777329840678404787907444279816299744321219667428654109252470629037530976911576445876215743337058021146388575059372441225358007030249007149180157367665962829114670574512289445668641871494367833577341813658954920782265909395210027934165428800060928700982356542224639473402292926385123545240755307336647314633199275232499230605799939510093918388554062871366424442810404085226976179402251416951619029790134408040699246173159332033084270431782234287715713072040266162068326559699841219894913875947368733506918990469321592344927308572709108583032198401544734958127946433804314244882517136190162500935025052839217458166421576594173581852358296875625601001753519465575468076133778658189339130101884451982119954376843571405872694962095764464546775683226481114472392312315349598561921166066765791115464877811250558593320747036530342354648150766701753632213712908083123364857217985095997433037141856093230392523154127253260796280164327839878305753193873472071818585336293591545404919638140787514107301451806944698993210504601884936264958190812007957535744831156479828520417862757297667410024320747988255343251453843337712896030201211357654834485994997015113692761796984446146356391214137081235721345907731833614595341315154716407670230686571986189551740800065266061012933838285906201509092322403144344236174659026473682347872887294084157929127224765376906169148098686550881421444955870654720365780866697953359607394363928311422896481809198565151939980047721157094958416798935659272726738496085976508429058498687670823257631991354404402726681567630206692265205430175612964773406308815955036973210212241290168494856121794107209467895033520659125448986023473451316107070472839775189293950980720052351517142235143418134114314631055183983864158814987012715567564456113269250288427723161666203962724373840931792575627300138172487371578325476328494683098048570327959415189534578763623025970397157826053886382973869771474552119378582098864917828992962559262741087903881572210298312302762647183263858674076773649872493364911013433846762315730522788135581984255896100423280595988043549090271321201031397406745589379335448263262920308491433019967978338654081559800458381959612314982276349671525151685050821345649468018236420068998264943881798755089047453039125273382833154930137212898102137608101164933169694438581982231275704585862297145052983780296165556811149660441985202112094319520436115606339097999103071002561001345695815722654022583210097113508531518226315738568251453397253694571410842090855700715838479754930614766522552315534025393966631434722703442755195452834782235964247785991696487022588792459583060050663935442347723325104582557557046464398448480527326946186568426818125929126431098535327785999918354591795495538729397110945980515722608231845696097951978727452610662819355408330195230132259870154268944380626517492737361279650602450793517704998853555723809219444615011375502796632187852221850432554817068794699910274039643143490581834290570503016219044757310779006618032969186952086588848790978341392424377589512713509155316555804715212575715863567878340593892407388745647710062445091684422811228970345154937053606470105639457989060941954104189683715790610313654765392193920518936099596542681793928689763996102133629600944083076268425349772911283788025917562035972654416707495254709376476616443740734353398742231766464029163228589017415411441567658019572131985039804936849355538437206437798691443394289022029043795693977850881863252545850025413805456545837992865214654000566638899218463900249793234008034430445948380871824286986807897519202166611549874666320602822845218658383631641188573393947065747014104981367535289963385799567964881529786098773989879687595830371696220976768526419717519999284618643906240036349731115099956543876691185610473322070507178904619384218238972760021834983438821111279242394795888305739501322060691429021211286646153330251608089978452961909344693483363817120322583673338245159602598572379202046405561517113785766185462682059663150085631713093618733088827666464378743805722965240611275880269528282496782327805715803753960085984412103667967056243283801973660147944001553604493825478252360654847306357528731711278276719480480691962490676830528431362198721222805207897587941872257149731327782535093815817255062697673470130735199467005290088464658134039140288290344031377625871718122560111137429983404602719647365228282915842285721852996799144575680703764679888670478365049039976355289052246042453013284675602403401191794037194737500612748021772147765864893957315252565535075382742850501202670187461190796117228642267582672953211999676691448745696841983408796545949631622811832081086812522818749339328653032909386760450798787975040407532597951127091035669194068951259293239938078350445269972972447949791074806510131256968750956462970874914256188225075600053484868965530112163140282559600440950673731735744972049307559598243936607166565303118521473470798078964309138603879967473475084254831024285018992088249497519999033361354875856746459423395932091699155189465211608817499242425329122278745421566413659973986227831585156373898543051981686182953209270244738442573996594093177256428870069465360330818994406199442723903322633301040793271303356597651423505711467312640839375019736425721947933618173522581841857966708612448173791285573767935909271444403361583901032020788201419624276269184520273913645614770672474915657046196351568823621826145338509088757181811702973663170080356602946927787076460201043618599253781615790829168122407851755341702031738862972157025506811941362212339696891192302969737391675299112528255730559301008972129875592545809168732266582037661538483366319837768573240760736840160956782799605959159196777326034451899195611782321884640717940695562186305519708533102854173475434932653771921720282820395381123660614598140627547597640397373969467001043453962131736181691209579794917788891841632650209021385470722914919439237095635526124259347193810603178079366770897274396147666619996453165251778677742525578706193960225491935447063887303455645392108771252178687143889717903704090475148006865302543107136523625908228326276258557919650161303727740670768570302931339692326295082386102980405035361156313081852049190601645741294204694250928253664470007875885052246466768691897239028761200074555245855385283118500153410909449762264832603523845151852549242295650448067646477574880177534612855382367565230003382699146136214543191308845131903828560610397303438747361372752915040796495065548582011587023244534020362238951589284607257924360102363191687591677478968668360169589993049321079466027969482831785578559385875907241991841876859531988802077380136176061096034654097148982744026132077579270466690586027663429846552063467262605034313368877371525624227085446253634055042588624920524109207697577534396850082168871720202823163184060370158781647720044287291843955508880360709689067441306542794803408691568324810575222811671822625512492702829544300799560306432758969420167040782867172071025815624684670738095409273046252234363843571309637204381109922382169643490984035683165372121148203718658323617107884518114732486431407140157242280204628503412364569086549943718061626428998024350925571615232759620198562627564561971193034629764800451914604015698832376866511051785411917627416747232395555858008179966227911335608423739015047310060737733707639776956136793551035096706170552626411468000972781749048387958851130739308565112060595135837302485768468435971129376729736607047378748482486415313300963226808504467662382916122453800594198210444412777020340711925005122709084966855998250341426669368000334235254477988468740892262000625725973362597164343221820549121064738515962341587850228595141184080647455236393083422287523031287120849033794768269903674960877172534496682844040062069786721905879225404134941160980572249945418446062259624693869641294264735730562108632872487464765366702773612486900065251861511533171921813074892781565270342272223034431873348217967241865590145552618756831254766744358822637640888742918706571096525526315889556332774912430616570289580534774609819269314741156881130385872719943211771709292611073539077127566543363431884801208262212825248817003085455452941772471485686213053891880977394838530720808036009586007523071143367743508174079577424593230494516523959080816640237724784460216329028181302125056549244852858371920385803621813350985270664145052808385739102535510229412849274212420164495846486727221117867739014477856003646606183652093693310676045392473591586169562075857828787947680497689500618091210931949935256207747496474417852857411978014689211703484041914694087808668461128681861831306144605424871740347344489537343376777258859512856325264950939407189133592610170053952705774925707602454878003614225360211471534559807140536429282814937053653508338656772272938775551201816869236197528741529105625540201684536706294911145536302302909405588596025988516991481862243777287066961118911187960189975627069954632858585299898951808158224051075480512928175711730537262815693051605608148757883784028713820537483597078611139473419356594169591906720266097969153775108177916453541520668177759527444006268006737475595831611431067171548862165866853956356510039302109447582085459108877085340114062357452702009205622563786686730241697573740589062503686610728562876582724291906870517947508867019254319675277727372003351375441945639819886484646715245013011740046881035958128439511864568591216294906026689601611061460363160040118238369169111565676096056912292232566056795036503503458873025838461739422666139122796547143771898050482328310965763677952122479930515469262297782616971774765138070988833702535731163289673554795234322484166477680734917289497147922548416800519655216637316942341480248513339091142058800629829382904425071670661628099972179421590015992765350881184372263629765277574912454539849665114467780587945124883310757917918777547643732294056935478233151231046116703424807816830844702544267686781095589395540476160405096596016168824764265808598483981737011450221014891514201366785716965049070586622452775400717304630983319210827512723218824989385749837780419960453830402598128830468024447289867885741606517591066937849837877507111086197381462067873149066508234801584486937353762625416457338208421260584556171238097474919479291043753858468772305529139194722980275322268347398384437465939769865357770942151884387421893385607264088949967190860452040190446435217046317416708692758319705171198298070101574041911554321913004334409711959037134346387202385860468336709655745452342526691787657576479473310177045941362855884603472992544264622465887771103785480536320999252421841972437913042771782397490406777231790661553361599244354864929932591346029910608359464127640982799603875441757637951150798689425480098304026426360010944137865300629894695845401688096072675829371161208374074324104501959860668805968045938368189579896102308617777218906703718015222880348847699526091273151464455115880570816064185580279980266461436990767040809442040774581515471914694493657175632128785242131156347675617791908274752255044396727459144946059506609573079616096998719546458230298210677908183223152449632703506687270393680208217816967029880538396337962599133367065880194273873445885271150804187322605592010743772778241634957023601921244482522168944787212414951866948159561279005770888936769177567126991927242300264641391538615304007729497282127278653812241835302991093293736978259546392170736715634945754427542414018458619178749322733326308495311904852080622474192098121271007228025311488001396390326549327520359969561229929656149274959550264859879866558396703222828733982661869142476676610466867373760616509236628060842384389230876704994211810448570428770248688559679470119794251436446453152550604378056619694840352091104974967934675799363294814005302349877875259135321808136766929794621935014561091823305710675424232852481106280904763581836710300316502421868068654527899406991688759119420865265126013929139907679435771420305678958504741611326330619575197559755236374053648190650943616261400957850083184887479368222954245898225874631999048671897423762303773763272288242791786902141894352132468161988451300905840521973428843757895812168108095960613942900343916402888354885218571298130397479242060961548550394156737064357098585708808551173757208293318287049445362468098778873182113567613386504144986205330304430163423929550599785298854939720713549007002837927426292986183846299685041794615128258473617483731056157248269849693177309493664866341747268338299461749650342014141280625530929169055885120000728300547677259726995928633950602324627461907292553948950236519832560550859883731815921014379481195134312358310847825158190292616845781588790470779727336300160766711323768979711038125543454167857247080595478593454599112486101229491937440070304398717457112247530980595636012974650567395626668238184182031505534864529806248614076980765207080970909647086737346136113730082767375193103883175281254110654689167314566519345104511258041444371607753309175353093884080387634514353092160126434510576734148265471381210156746510084204698359959996965465033438765130343900510629551842641466880608034955628630527644220865100076991868947875372512279756708151872396678596164442490626645094170249883529137107952929953453548365717085322800950888321370573414249257734517366041717251058188813987144820339008074725338032771817139580082715410469057109630430830758532097738301948515780567938108294415212111574063205032925099561186072217730454013120071601523417596286098787340332270290079995993521016386399739334713157648895224202360669447394039730723292581607616551449791595821378729252473185928993404562384630747700658637349363460239143016480790828773049141521312467533392083304616154490974873266177602445664672349377548563255087466615649061475761433480516443432481042771227811048310222487665042041296134915630813714876139495021141463310123550683992171748997561350847035991795417305173532011342262493226939796868342559663785786972255819960157629788494461706489452305524785830365111136180864725413091385752847840398117859088959777131782896604873205840746445619921238321519403565787208709434418992514021453198317973103607064143350856396711836459232982044820075894949559710671206212085965272319520881473723653643410239138304474499263371369679566573923615426205178767935962057403959627024876832087584783139013432117414725180342274822338746959129958482000879658332050598055703863756074618650227283303719078833076964151669750968695702881078756808563666222140446498811226781980557887365746974266954843124379053571853074993311645996307676406411215938593394060817739098441781075345959228351367152786350313903392715280967711152407605881913587474727092863484700145059624125105644618814347686232954914666269018134692734904199019559583638955362714090405152643792440146315821220088962528373330409491692374417076923014807147505162689351188437855902073389817580830404334593070283316560060975405003086289798132372916301713982443408189348218454579713939215233664752043872705200899300722690604262684112416313233371380685296190627151448516455030781574658000362592569803969686329078651586351852313215439356899167460060245232471717288630215457359626142565087292048119220979442753621794868031054902150319610884023092779562672015701994444864596785144366169125557178624379108611624456409483885647220069043223791090096119860626534349318566180133865960426498500252838232266905356619487209118221173350226663455918687694591401446267689661376863748737179497458218257152537098341941533010222415454601923114487835606695397550945026466663771222158654187123072871523521943159010757801542766689523324001919986475457084226371616237415959958606284931852684064168713347523799755332563525471733149187288416351700239026370454624897525078320217314402560430721679805238672114563816544060964944904950197456528067963053778413550888534145257272567076712064177279442024632061727853753156533262238408760340169074933346054958319650655685200076162142147937165487598133865581695603735680426911196792247649595901257240406789170322809647005385839033946270802509015379199029209191758321411563668286089820607236911647982819466036933079347673909865207325967671705107057706315879960069899791507670836930985729265969740638098210481864694015118662226263230885038374395119128381654314550759828330322020674446271244915026589572068017527981866442888841384307542662462253274525298416526943100427459284059980173869283546358467384879745601630011175975010778494737024915099205350453622068738972167143471712676090994881930763239131620486749922156508613708496999494099582904717566373709698778061260880680403328936485953505185013282626334065801611658045154083091984342292728172897120843674427595160118096338812674819497298535328371822900458914925818623677524254902549922430214978267326105996694949784028678046159469161560937475132867534407826031325818389803595046235699465904144620378330711394994772968312925605657217491809045914438822735221959468874934258333855229218391156036063326016772740021941456518673060432533474064071911549592285512660139486391313909722204990640823883766350623153589209161118906986921471339189756479404598834984516348830088783858620136340800671184090887036434583861749414909172685694514772040827738436421268225203181525215157592489322322097692424298610741608285459311802212068372684315101508961982941370682449154037868275427267421531900514798156171460113553847806194196198710391758597256896770313356917493023710794216285758518295020375488997448191355639543854718518782444614971266654020805253070947101148861607834889905898095528831613786211497157333939302110865654069107907610829608621969578431172316712256533917098456273290159446296678285616790356442122877138301603820226525155002304214513242954118173222003721038022104627261771896048254782502105654818143069025140227100231997688145148830705777681485766459783523231748893752559918009705389854525507609320202605400667529668035274829808418897757900862271940018920939136870651536570253732673311214660250433432028207565324844877256384797219280288621001810993903837152975126541130135178984195092760735627787479137459396782787461074396016513409578239718201130647387171665608964026717563080839947185031744710223074621904146711721302532061771381430933531099204556486193488576258106765370604093823779718292989845508852221620762668367707707604369319769262474646927708599748880710415446156198180961030924270066902794169845696790511513532731436031011601475487755304818719438895171451109549597297452600822143660269421617817359472903526316064034590133256965557561455285397109137088390883156062467218441685266929485926596357509376541011207085461335783217651208392156234786212504833924947672822995733571448686320878083964309864960817048283292542360955817889412583725941446608375333502703943464513944592537063719367824589111666629116465031846522637152119081706422410385626234713558425584549763860282295422931423416282755276350963989823160886093639447372161508763478854511779081740797760145642891026732247061099411980155091296033988084671112969459917447070678005603963307622500893657997265445119172866025209475916275930285923407630180420037678264358700385852734099208531066553861161070065841449686666647072204994337229702411353645538252893529948191920636848012553939457745783610230826273590422388212476972734551732732530944696685636803389021434113095476059519840056894261025262668485586758483876796268811124753203271485242427280231693817246906281979865547478690753477837749641311344659826444014448799530435062827929425645740335845808602852081226800710454182711812274815382453632939834006844144902359062734906415961847412696651345560302326281790895214112981961138764970623686246534755246423221188297577090204087849742076024500340252516994571654129090080038621205058607342122298135958167263871176268040249408652883591947005560003457526515213612857719317340782836230629653827850720490497854661445148002158610233274958555606536357254543964616766248061478092774956403751864195146828394065846945780641449894830325668649712155690733277305654847228699208222735220573802814581376717133104166314779092314766268498967756521347565318830494992290118254526927405364489507689879484213673223798581914690706514383524428921397905536086171483995433525614823393303468434815646964658081931696612753869624855849545817214753316961955751552812498165079976037202625786707806513265233977146092809547014850175505179837612344743200886139645538505200559387986076266560991871439222754263195354564570699866937067330900801148307591491334036944261145154683013491284290652771883386621295253163359670281054520269182404472060678922805497593118898820243230785265219767234799628847803316617024401858511849710560122739421354208180737353601094106036592228674841048712142897180357775882372242500059121868903381387072062944761035677953746971801018825719693255285392726544630616024520025966460034746642691290726644138940817610336619957374125242706795490082367254151459810515439691130505955800460799158166967227241030272303050204925012806551889637176493751527156842067586072174605290928560346182814760197787101855366734875955521619616163501079939479671833941571578058093185925423683069841842450071607872097632751456502290933024408719744738297281932901191192064583304861799550651544189358808996719438895764381220773304605710051151095340976967739554063208847636711684565356992218089279096084060868628359670413642187352549083863414653515282189422223851116927005899722194368858647515963352548670332138579419206545525475580724630269832376277979552110321100045739936454910848950837993560916784063705405602900603893751702000298416193983761591937253980393541994995493390698954089072844072331321236535223715241799102345792149624303017172331367116053945235455697929137088035592189146765724473209140771489636071476413371405790198064570558272284627404425857186566098184791015573132648384355494245654125204131566483903131683759300545493756913337747639339136635823209047122280175100625145194146520373487772265320306794353265704376126463130519183514607389044080557580364035552971071966672253016754402479372662993659576595658923810202253964783909959674940845560493086884183200746596124454775117152911282538942494870054091418359884395480575024228780186133635427224397737589003290765641965746228656521340872176387886973436247535113718041426850658619993454094574972693923740867253527929183658092781816848559111573084362442324804690585201728215894002806600734986334328519309927432363427176560689740887904181997444602122172092513839093097944341158812535975809198186015486470365709077984119595417665174595439523950001374287177368622168096427184391790845097780181779258239765718298591179838542945891051895802617251672014606126734622835438213063519326563826149682408683035755014898957326219368464846587990034518694658519818015962175917279914259730786759204126233240749593945896960089126009109422532101185811579547635726658084747074724218067286653298104675294734927319308182047960843002457838045209747805989562649363115852756614112024695233430500665620082854661306401996670690543811470864898649165459105005569457950093477220676970173297300886906457911114816442430265943006119288211278184987415276800265427791465085166284978584919058998324056167872758684808299635782186908521080944339657593249198304211251523470397711154484873279088300907726895949944617450740432578417146627630524512078780616067311849519710857813286507015257454788621658808194311266238202773168265492167042584008871687182206512896437841805292575285974313032961857447923537549941319830610432679994460769681749051232003112079070056591933379063343432309489285707097082005529894767172935544729275901362483837889394606880141831211686510924462315944928543688686896321868455454780414156522411340744701563058332649016581197716150804723369356359155575075907140750332038580821197781892220109234543168930757184968398983003238038741768629905312798889451160089847046198058455729372959490620308991902572180765823854131945716637267615858339343230964740053218975282303326790201109299337769138496104865133328567592216103090699402628473564954965120195135553336480995666685358121732826124826542624899618158414924409890288274321975730791581939124676321298721068579226373141055826375003564432527169640928130389128425146909813763946900707721599402613713581048196864239361031995293929509537849931889975138250852924990665105246024016970397284991715961867420078390822875594223002300708172060976547999577512019619441258207243987201884928606724420437330210935961260509560183051898336312223501240871233978426999068488550011098747841946528011239472647524799498272773617850459499362410290971712431995645570539622706897015800307448473569836749307167659653471613220566302815227873229294372633191941686476485631338464792416935624600485588439741574426776268197949471112231722426625480350425863621230788283835138335553993573758600431726008859850654200405260494276596161364235014672256297984871202333102675776812116966001743404280561432259379589788781692045554251157589201490129993745094027959651266634832198595314686801271664924285474397874438794798710529571569294443244843225690371445328395151436655448032072339442658141572629384226127879387394962799239744576669628387795757754408784663292707961080821219461451374659600244623508523849945240462765799579937412158094937228187073173055915550094519770707244296547124483896447027433329165416331678160874495863520983980328858016383589365849809383454373153367571443251256611912971524377990798890303222867967998363842233028788561439448673945237174066755106955856587264145358368439513400962657872393176143320813614812150835537543878179540640581699316462202365101868164144423279534492418293217449942863504534885311508682419975797517350671750962854136997522571361906021352114570611550825199819786576512569172027221409077818851593105938004222403645140988405604367857915928717816723509949791744155863023498897767525620276035063621094700709982364143981085592594239527034409045046453239553017912796337155285931100979144215949534707950014296251209051511398994626257269175173397231998400460451449647496253454977529285600358225943261133110629006438689977887777764831802297162013058347502662786231494766653861928952269416750081886599766131448355658913565300915860790297791193637982011135020253927702280901351958660452111598979579338999335914902919366884896861796375801999025793985154306677149997768058238823531684835107680627227242998146782385162837862472932607574874384124325782785010938064821251643308659415186937324688337460478483009297785485578283384449379097815788821433921897695064562737434864388978932026094007538475188577740986497280576900439409122307457006435927205054509997949329337213634201176833778689202051842436140928119205674995684384521437512963394120129939216310064096143880295086870726879662836924078914188521488023851945132583967274576115667385092022190306956731211662405109019122926060542718913093117738897990495673140189169787643324506098374502990837994897646457206678797936173359265525082132201748209384980365109175597318293689191468307176016773176221688029721053207966311376825835848828016872702707158592909722046571858156457893315928725294320306859701563149956369163572189984527750782851999378912159219268724801928309768767715206469658191321766323810403765067234757199327237919694090370495288112378604549056328286204639164682197482995435183241004172813466403539861719493228440869150408942187343011969776801244572615546536982448315415481838251364341499850904310130391366327548858615636706162276003852001683565922438068489380824393364024065688505254063232440373594589408490732941883172006661579782085696326416715079284905276204807679425337204302455297698533252264694491764188810138099062104752137064102149502770259498611150461613653323256430316348229136253210994309696418793972124930080110641102519832783095890451510626667007042524272296795638369651611324418091129476493961650117795899640986961637045149596445390465828016797268446909285703111699408678013933834429877664790413613358909987297987893805167358511753446498587383203196723221976745034582111430261922908134062783257079191824671477815907421096157106158883995374236678239731235807959375753076754648587554487065744785040039836391681976986324856550764522406868757300301077348088873373455865779859315281951153854015525535782238267435781125960010952555924289155912246913197229292014152779025672860361485640395369834266242851302367976093543042478475392107202034836695163501181477528239924647287794173584493500288410510356865728218981696245553419582272054413275262201910849115069215542502099409331670410843126968267108483502244209866041597370582901478738876817763282612130422003200740968555838205192612889449024997661346614063528386521984287071945738951791196519979151523668787533919402378529198522965808592247879074964944619970156507885747466579092762714357572348370464608617966107562545745947299991734157812933825580611473955397104049059874842724093036688135362633591970839355504703416488612338390427995601403270886751748293688312184942493131625667123551218560133865177228896446516491465248658397783256423931040084068050930704791116804780498654133145672459653871567938137592478986105599123313660956430146679015039974802506411557666993170202127947492038273345542406438333090885123071931266200787245944763694687390068922167131858580151408991395278158857706919994338614805965857221874462010782571118912316868929824351907053848137690963373278116739813985833949066029289274441030481653915914562254657409409760497096686082840584267336243972961475093480356898416791635179926078720975152590231113759103651910572542885844210775131290726140493820518038588875402208670204379138320247064778029842405324278062234454140969877091524795862411359379580228532785143797445074728860121954923157742316371788899928818918457838125776372233274519740293009241340366921429956647667089203112971986065956635845651816362998922095080280062117024344176200250548252282717589190955549690017664674966568161398368351087082545585967258039531574952427360347320082038923194017956123934209041005083141376558689412978990097699221353482435317442186852425832247488369760643183495991778035703769368624235668652121512190068075909367296857346898546566001566179818273781273719103265907684661810860296221254807123676314860842373765277115366006909870126379422546302032326589352846910081147684075692079900550799729675826272155366619576612907511887677873294942904774611230226002359843568532062336541843520479194158867438625211248867996563953759311237981901607003421702861303376400055170548205038187737607417943574807899920210675256006126517757370068625019459766926088606070825450807707887451953176247455741703178902904172473981736260530277984716182023448949025603338153112926233282770969370989435318942374689706506470795716437567801864149947288714104456451345196253609244945900527454402468235556540310420002169908675077925408077846276627145011840703837569037393723056738388300306146497746913538253397417378504163599089571649814519799755780033253064473433546691075926347150431850052754895025263568990634558896927482658716042540394265109610776472358887824726363510896041288483260003276788426390091903640938056741341009482540674758801834006547804722748698826761225757351979866284168399027193924700132494034198841697991912032430735116598819928531174135499942316156645517781739248455388293480913414974572310354528510763882659529610621785269006602623171990219655364244994790552500371984238756456313091344737469109024641880395982260855689548556158844225752062330398184534075496377100951405781571895508385966565219401557908023169809118838748067501376727938781693783572156266548037937942818277755954178419327230777982725637389961234752191966306963608237757995641792978896128996208329204723704786158382282464083004269697074435904500772951641453271533602292814944387214813019668802058753178940481485899867525566501473513036016811482416466656410247347740283974183026045556094911325526271410209210509469915956883395530288378796778025230294703084670122552077202147279222453033672107619126514639287435572557555369801280445546206455336409834306190127613210484191935447303124756130319288541564155841612581148511418561134559552554753836370693046537835515220508189942498814499059959942867844052317917435667179016061349202241700882085459029923052581262196186697389056061278246956142746416853840224435433607035280776950156789929144834948272689937140731276946830061713777864944732771967097977247165831696424348194379843323204676765130464476650735230491393534976134463112856156328499399231803714888332394996922352898025036754660195082436040323936783867480628478687489062138580624727902838869727590122950609880387153707995236042132966480912459756741040225203691016334481858738529600005191824561946437752413634947282449944166837963559623190681512957723230788213067831554300366728062233799604417773796903860680362242592380204404474527022885825921159447082357958110366476146686671780700561345289305347422285415555416979559144084718573499570979155729903315579539837661353163896830705339033697775428376843834927577795848444593104243759884305023192703706740528959361521945812667013644244697528745031391182340022095208352270479895223729056819567350056415517989184966123830962056433518785903131175051324412647421698736269804780066294304071150464135446597795359253638637672792945747401170725499318481897858156595943191085049555002465585302638407956956693724013335623407047490230490656980714034942142232231872892091315102185044690717349231858655710861786392561296349143526565563774343901156572648186273365833848897447839197281635283491505945049852039009095747969855242166680269171813153627662780417001114034807340342394587512361089372521104555630854472428437490701287207970924854024376628064376458634139996162951370119608806385393675458995083467822565520361426102665900279481982609104004721801480962022086818396764514160224225597135475873424643480003939551017808261357747087099165501783285812505759679265337683890122818798077143526891660994594596800480825276068111902410382363817762955339250746777901874822560176009819197239145718457784924381770970600480775599035549298415135589887175887712455435820294848293698118411205679024892460573579975443929757586878673181408397778632582179767997421884170379003994379047813090934086840667089232719443272658753323305355592333154866953695808607436282366951563763883886244426042368894472342384907360660308936402855600835807646053811497279610291836764330690963047986558114545309575778839644099793313385276742670083639837481773120243476420880848548795179542965800699241235161236569998247320373172147028629618028653890263640142070497115971139986374106913266894341238690069021663992927796394161070114238678818721662237275189855078455670579030599462513434208750736439502219164572026954089866695248902574175963866189827144034110061693695296580248266599324811362430257223411844532674626856774124448244169209839326385429482874112811523521717694100612537338391752656394018399889173827625151013596280158445843467497637366349467983499640575170671595134326606648281582448787311704025704627556913068616773916860739806216929227393771599075638575633877988658097837256968656797146626703355421616800373582639045272691753775672181949353266322154945639862502013342379713206345907860853393715538396310731794600457794856395117546899128081046877022823033688902816500756292827331343114324591713360272449101581413091239559554184282391625091535595231176495055745876646638782312297964153714482104951161730774495144277548157299133019358908602051784392499913409016600572023624747379224706217977289390398079860807984693287832493410016748628765780519266432992568883582766647948934124236533894539742469395464416995199317915463492024001821346318403896647461161171288870503198176668865004792901493993509066338568108401215986410039673135029828958396169030571878192330537529591924530231766142433601626870259495810828323983235211377847854739521958603279450575562429482294559429974928658058792944209111065001452753264879527109383132581011445801653185637400220082975489151553297879554562077322880257784628832012762880583210472208657315467553466218955275944624477899879038068460206789597809964662554595742497998691211400465255355636766862980238813851100590988021571907951932919316763692775177989094787831120846503490459520646018320088826126642262530468703901538651686670999776857334607677198196269806636174208135086758718768654613233895735758158363131185137925441743679983727042166695759452225299433416410329170766045135563821181672889727409994524872994660988344857142104372755232152640619544168980072419880976690908669367053416137821573883801041971166280965147735427194357987371907692359684007631845463047546885656327495088211741510887474457506453539345067398365854630342892821178203536856550979249897713144108810957413657693255970361870171929548132927089439110859841544259017650681867638805563831146262477531142419979463581161560292787946624536540932930571260265673742462690939362572199906633026616212245796250884828547788417769762828171748643838812029675539670797517264905147760922036196089579488463051752654080993178152755274369658968415715079061066958322066039826511867164363157714529944871083231686637211381673125654333905014530984200667717528004167987237067850387434743229463912133489607214711087056828306648515344566849645297579979029768696704691596127803571915795589675395427387702097511407887430475533699428557785882032743160192918428336430689875287029314909135129581505655219827085370162375278785679838556051663909457404672337750362674993936657988255718850098806695533587444240911663696215678914236612186754078827318217370426152029021922773381556907361274520347500513591752499593523911293276471872658047091122405659894624281247499946810145601794508084724703134684463083854052604669891952872682031434364331385590614388581847890978170685269082847051955397342450958753797366674938096622778585928230076304650840410632820678296553862692386961923328824174643835803131245732897843264702332604048685424973513997867204723724739813660921267479168238858154269385989015261945078101403357383122926354627103048197673061962493950288186735098469965261700813568158254124516159487945018469241183604108621965359783385819726100133376483193343913416057563065574575860888009159194181890340034738508101195427171403629998162688248656001272865246853507474108314782479884798042892515054990305691109195445418442367867735076107571683313518575461575686351531840778168137014623704988747314421709807835823829691084083358101724599265891824252942860066942241509751475481132462249757708470327772049836434352689943508011365400893704583751383060738480105347097030772465684627807053151966756212167246900923351829096397176923874132034194181305588023113576719355278554658756011618632036608754098835426946715215930071862451432076296871056560984868792176349757740860498783101815512327941699789954875977269542044563332897653291963090061559649999100208372901626834602124416962988467799688757594898168118991412906072876865309571617114638316553334724266982379316832311105630130642066007531762002481098135965586521276583490589228622835423414870180604758668381715277821631631403466532539447826395885900766544243836324561910877156194908349725736424460512396582287577891891580797591953413279333172901995472622931439279199523983758299111911707250728034860438660217097076500485219809090464924632098441592559042437260699681131744022646787731024203502360923580176257585010858190349767520971804097027799126863856587033353793507793011598955638514018349354516330572890682333275131271562825260322821785859839202297550983123602069182110310966969212565756165253537147705058297059891917434176234044473247314652838579250039651320061561795929469067270233813118387758120566923011483319627714412930636511498308444592336871547633421446270220821890937145292975901010513715515049458308494379936400778736168126745574110539271881115448359691778993328097068571260539558318540242745825292556894745046924382584397806559621911936292791606249625196573784499104353449458293407506064790027497244325462507526432200529266754430524797190988495074693843930745450400191199060175967320105521419673611034497156033183985051471765388476191593755719360253919898370151840182001024174738517495877764271573724385025245818770093597433707460822260327393204426619240239941869368172410788228648608839888539362916880951692380611038668873368972236637094276142336552080831155950000055616188326497168595833677337900533668227591957275510912437244689065482145389714535109252972117183998016465489734208176759562127626768128308349691018363646025832971681033871256130544948756299256769769745095320277869250249041676267009647860339897872411591056774584825677266687956848672522747888674448003337064841723097004382173849817082841743961656324176575130525921178772159862478141388315195884770545719127755630547915003786035357343912157229544142631866436776308474259936687450840121432201229627367203131657493342409002285970475240021723827338967877252465144340016234036112382848429342349081452437238989883413562696752973539696302908190268092366818467117244043502863173598901266661164196896947140284467199177235814459541693038028595267414365982384610579216879911176486234454275774753558174752292090025081271832151891659965578275986619667985547876558298149764135187776555754415119182680860595133964348158762394465730960180644560658605211065560465738177005986847831591013130115736468584821937256975214389372669942043452292619787566718829891230734058575944267185966236870901170559012293668781093469894157125389409045301806173419397111523686975595467245652941507908704936990924750936032704385547656333804022128122294330332827352801735384039634126132542325824681852098732917998895801920474823719042789191979158337530416317204882681434249678734850172271050887548721910655967285382432344783090110898573669871161478982421639994642703775256193801347031830671200870052062723326987441958672012094223650595263377705449029037307210508655729709163242214387268257015106156978389543832125719567123839617970243976890262247944552429284075830474954231660641981866486417799707379658207269857002053209925062877095898345062072125765421271318558403123604523631923306265420987493816055213678115336228822330127214094951791089774667226503911300996063741260694893276648740706418006591356217669579961743638482663916265732446788442955724711672593593183010531673033888992164700780290487844023623050437612483507272166534134087777078804529448559868549030958193015046289522317853547390156527623462214980232278721809975807488294549211828621416708053115792819073200140307454042291805267480412483162903456422043859488909529661824957117372522552231489003995651781661499423097630654575151882744313093360470991245035679805945325025547309478838566854768596601674094072753887227099514278919961445633984903911508548503869809743821068946724113724767014050373744879654578834449177843495512921277410133911942963822530053255710403194793929534796383409052535594546214324857556517858673282914748399200632263182506760361549591064636006980440666795277655086147208771771920014800612684689368667095462603285618523406040104496694017311515736170955267318693136136629858146319727704154640952049579844201659713508439072052241905463959281033622323278890478726704347857663151175903093768074634239619737511920956860930060854325251268538602675814661195607794409387472761873222670788046093286622088022210445035255896514360623842479613449994458881388624445158837843244609362868321525994771287796239883466315260130792353434103949642497490899536647442414646395731556934538864463022842515165180650542903531590845221792902869702445584765525992426253392967195327449362385434428008427811375193513650753535164705715235147606334130077820532690485136933843772197248573377359342095362848163994032337643169294651213901724504784726173626840256440855747594411015728003993519642858783660920542803473860968826786877330629310395101881994308198714012343383475190493321066610931303616817433476337278574112371212243430062499936676543767675247580639654133435445254506807766680826730599520497521297149959331375963408987084927515903231574313879595760866532754846183271064169741875199125736532431222194309094705572741299086431567865044689065855250764632836954672166569429674879045119344485587083940453262641162145203605709651004724160591810671173411851285625414675135225566073903379168229230982080461335931139374414118870139132927201997607384593101018729518034561460597459285562648012150706691207199132174524923422128898488002312938062837948073348353220306802140382618588153133559567848342945226835074372664020486044279554136191912386393418517337288711628427779880268926239560704028233768843051410363608794302599639089038444807308452961374348570356917934649978127116690512206102042223846846482939791789740222248925997931114607945972375372306679243054173390030331714043457016995245491252556246905363446322455657098549640510159015827905082659579926940034785938795569227109148905608998167117583609128185434888799489575795316161270768430519266164291616265438419918629587802595165885382050225768932175410635965473529653394081482988704899454019056410236401618079445800060217117514653387130225893914960513857000553050006628124498867490854427502823262073382399946824159263594887613656123970581824096725687653228882572123127920947869599320307236197286390669255136192935034248918451896027997928768206655751828064924755253018248299461101430522774884519735686671008668626747316534200738433639503821618903505095638733094639613565288821609679195682427206978368507707651093012099357585766955088412336256667497117060885781702038659974597591623037061177046227075959773656263356675708692120692742101204591023282061618264225359057698076083733101326597063293961365648415119595764725816694532892416516858352500801433033297747797292000077452799336420267181907462397736976079009998169812402169071030939589103690087218089487817471395878096709288120256530271551232825131762284591670508620477626350932018193811907073277999871204895806870861754959541719571748816367197755198898468284296739612421454837572923393795634393054539690443568519297136982237725447933309886415284151126831837508798757880390769453586895613182189439108295004113955498215977324945621141826414511386020636167302250745224707868964716015547145056537608732637044529779599707312167288466388708221184641880238289964709215389614559318067431747757135869078674425781638390972792614371413079059365528245182668012519190830799793262882792375387657442779768869128288452742072728046842721906812014145033515868151795055837419118953610690615544612354397323899068210228734170813627892951577022422203196968714720601937363243862416287020573820463000157100049612755031065857838225205627255301551820776425345995463005433888630755075571773594826777185087988094901855175994593864780861482603698805366327540422690269424288105688654658497866323830507684235252639603046749709059898483241623065877002235045921357848272721181447950254626169009002985397297652586013772608549339502505264245007971943293695063855130509538378065450863399566280400544398392346933659043634784078982879133528675852546132274356490019723041712681766494228052330434802904240071020637907505830095409722206403009186964433891080715854942981668981979584068055506692737604148559660768990037255742922690407545145648219601940562301109007196714115687602141509077008863911138856813018342028489727095348452348795111364602046545086042109419542945904970293941317958269530192292615577696744207365387991593958491066681195953398613292096492711969498216148218916148809085885499699979411545239077570159516414628987563277227911801339036762771417690875489373543250902470929010913171450023265018599721214323758660013764959506626752158236540718082360269156335644477158936016071550624959724311296571982449140437719621012922955432902661497362335319367115197958831942396294778969978255667720669591550894003274602516578838387244977594985393049729043275310083761236055509139090664837514272598341171278811871112766105782138950161086238556205871092258239171991158324593370798630908374512371279765583753385519507287511489271326681975613355982582475043321116026850374050973593787156262071859971387951192775068935492385228665645572208120680225043543269100619677388899897362958431981900848469915012575975644057102852650250684629059747197843164757538738510877444405412357802972528516078715730189475921767121918787070102846277302516564741329182272655980000720173523670667950030587651732467171403420643142458303850658718985124735290192893618009980442423175016042786129396001760974696812078354870122979278229034181854662564240204866835185998326783999762178321207635468258823474750150637212321479005008489674333370582888095435236451270041054280110361437970358390734619149209848935884501826439316655346191579855799366533243959225187728325846322153911254453076813862113728546173811952317420370454691530519151368759606731094220702498316225115108627888473622314815720043900362898633446625915089659590712185445581949104887368351522610308504059602121803108070758800201884164962200225806655128548143538841275500920688711544796983018120063772939248194726422207462972114666104817183070426295060019281127604082310520710480311070444980760901077861550776339914736943484624443051761169993378993832373040567351543747547388903884525430745143426011688968453491513712810690682387750025330730540881631839651336652680336513988528610985585164995205816559039359569387819797518766808763028328688159891240423431339279520462408622807441696789313427224602670779905456483543779932493013545587746529363874028045212112334498457292574093437737910789411092996891838363893079109117333213925693938465519152412337041888147121754514670495986797562018383255771005988835944292445778435198359422303846385398077658014854561451977783985712175923280922037920062564777519118815200913288396371633611304744795967643385826488172793763690936652539240738130192743787372554743056097469570361553094350421081102490548790707812982981825741694776247541295131282669013711102804806845903065957141821552786226147635079631540213183403449134205329111412947735807480289071081635079540964488879423477613416311936721634153088850758724143123921979685428415458826600128066832396902923343528485016204020052152042442046450432493760541561939086440100719138003964843367849039545936563306122386502113245204073503229066922509355118916278017362511869578441788675184290940752284909208690035664791086061663946409409515191753973772443207703476204472662920329299894654354383965117538424510911255736086132332489152892503032175714172660162468343975716681813100027234528091559068220432439501460258305670962414929855354368220992658995000498064360658552993460869194873374516918835768997302016517310062587336976418427806849565462892777650610067361284893203563414109655104341450278774684334979471626879381723613070091211372009655937673960673675400025161595149826218526322690296052902043845426058836878241830249837600620379640993768734224745872152951306395208187367000195537723530736133979280831093687862469228267408123644863295903363922990202593959578435093361552226425201097812824395794674466082189245054062329704585882777426452627176172041034333114205089941146895326706027415421619290684225235738558238974748427349269212299970667833228440055282819052682940712623209650939587845154211077627265250795640683899163252767638187609122813287206276015340521625233919352154678511720270802775564052129245172593030798209425427199140887479869125546362145463693753172497296806290187364810243657536021782526300541711251031233950077199240486622203463770620010253567781825040443109762998348755741005387041987682599558038446595572026950662207863601240539350401883336231273669926017401789665028601480523354299383334402092403274568241038553551618761150570581909289838168974511451451335629550625922850002755819467676985864101928498387857240491697197655367919326312232941992066027227679957558611265710340412666506021052058321943795556986012017402430655401535555363304714261980747942432902045215615752576839101973660775660069727017275004722095938073514507352203827706754692212214318855787497446985265644363219155359202897467381848842192270934655184646110715131473774031271471447340510894182389776688341809494013856321303402087632916670224529620063706310448389631848938423078087327591251268522782440400811194568993648103919523698584240814215978494067781834657819878607268588728134666351203072418584854337778663040739313750206024128392292642445923578867622369628217974963082759791496380642150212160291659585642126196441629185050974958819992566367211392915719279789075585923123848160756699407956333196912781526538417040639148325074947736502219606747276881714810526155945578894009329736895529709134422228972021155888956021959498125381495501849720205250523773429384683962577525723645163564918963236666905679501318858443440500771402039825825886824852916486491909963422361442910052757088910103928563187327818196715074226410101860131549213843255181756257747874301053688902124540189863643697400125714353047404990308406910210758355708257524447562135805733266483716029688589952110173488853435817217826579272723030284334360290356974029046212918568894071385616342434173780419088455991293062528366069797757481273528812612067382482280286930649339573393558693604113508265604687851382147740667801208286947710760161645453461928395653437509577695101849727095804080600659535133782676505310925747261889023250039160849035757011859208988093253420872070462735461475476390643194507186622314408033575799124948518046902191721174014942834338187960946468533937705117385757399636627211800953659392147769959721919875606067017473760654031829475612221115895168425267393427747770602881648901653241183959892932427434983911759407564818685364572236374736526047357845883055005419177611840609678290480464806488349940574169710128112055006887480778195773898635735243499018889046914498068485499611165367555134260413883579513550568024897906624068390002636370517038459798010576043993616745548263433628711133636873429549114787972528716445115507034085669198924166051447059182355616248786562930035853333694913378987579437351094516048519362608001962346909544051647228846320100120996415563702082702145174263983786775853602629541118502060141465276784268626481681428612585204284823104731297390159553201973162782862240060150110093031076115367138671930424766105178796629785275985672489127756046806039364331544263434435729724739502817296967719237397644993845795831765935766882277887699570706266920370404495476335670742613366553422057072553996721359176472095138119062425824833204747695485351850611404655151879507364297165980354513609565180373347275599441142406653652939399996253362149060566858482308993601234025159116872599316506067659518032191660952383010862424970006806615794214615162744517338301560229738679629354334564570242237941406171687068518486372627813884787490806576930803225737733262170392717880609321892418173286090472998354112355775557812819283512097810677674464986117270320607069750725080151507481431556799546996623065497474568296960839223008996142682839277389112736696573666150391362557048247437588875884375149087648508708631262908791461673724375936310705243936793862996453413080482388735019729284134536893562460188279551686647638207096500124327337001572054444157693507510360831849126293131031188661325965839527452671526565175358667869826578171894718741531903894785934392436186727100695840455949843344336873989376536485373803618965460214137300727538670856879285638949370077371708916572670906991374538772620429612366856072852407768171988538086403514083162027901440504261583604683883786501732156444634527067270181861120368017995806689017948307540516482184939295788202201379735487973338379513398345893512676289279617747847556953681874877145175911557620084155601231205317673872676757921329788796953080966883433660504318466193394108256511418387739692864403920031412512315289210994433599490772150273142608821793829688287702535500473279930558879426902849593645157378294642938891622795818269758182552609149148990266469458263962161252972117004488074396545149699876198947944020056326286800755641627868547147644154663248485372289737273840630117120184939008428168798920903693964592676589453795785378191886228626896053781972764686825948301085494301140235792478343498942788330624710610901011833856844891140024999784946320072360400768032278335491986221456885530448478426579054461333292019019610714140944539489408069340461269842189965696156896339887074121439249177089370108274753259611605411862607892505506700113564424993294804601814112353496580118466301905895152648392773426422435100459183938539826469862352168505901261270635684380707576683870105756612101687192571433323402541393634079268239485307689372968148918337392421573945283287128419573756721661726397784138417360809475753723693913717318457283639489496002419481059301916610800518784381047882189183304260352632167661874551978390467070734254694765655544175322542524058367506308859848374256785225015982010622731994082325310058207862179211993446027273858454781357302704522780771001069850595314816660817915124060206983350315688688574770656646858489612015896480624034830758905750511647385656353318108100973076734548923685777039927188824193487117333682560517142417399379853116636016401378464135887630208957868209720612063476547784467352515805713169095287827505392968859492739090784351205687992601359764126566325422706402676638154828787076520521992125115271825449836280745698233132426240012337476376110516186771960666943835256423858365180543936812354479948117508296140294460471925388304019709299588725388234613852953090226544044007072803368479475429438161369792444172398766601384625488705309216590105983260571135597863618847390380742691067083750733964740210910037913828528885520089872989905295593532385126881626767264671781141567870450729768871452816252606260805228479538781406238431205886785274813521335974558719301743336846880050563336218399673698850464745542603053016568938933682919238696903149130275938330421518740366228149090424788808691192116521006500139015771272683376369369938196868142175226776200988513165330961574267801405310702316971958993756554158189856344766493141557443324189105797010525424483495777656726186005279710865074379149783700759905177301524217690797776294622081835682320203805788659871065090142994758441547956059835659405684695156518603354743035178776314472465130179525773862380545502563786319812085908241695127222375342679735647518860247406002611952141216725988061532703454427014772420892919854714499138102840243823788049321596533377559848822731075696883222672449169049699352311040757814553955959039109780849145508898355400141022754273122851232590436449094219734878267659801455291013647389785462222373234363115310355717932266726889066213040634656699960397830370969272633656395594696247752977670591724603861849760840120170418360280274993035876740248332299493758516369485081563796472651370142297300781546648007104086852742655613212038707744996704394046618843546058960984351021229919955647187877157395851271015426093566763211019379194755793048231278011535284273046369965202098125670996311437273231540531255784859331809359950873441671585576487143309250971154955501793961818922188259829095984702097821346121541535354459519982533222804100867081464843183509550127467602067663729180564499131336863141375252523715796729494028849630230582600023120452243216089659585063082555219742382234877531423921819226974949236242544578693568948108657266592831955293351446784620254869641798033712257038609320990897203685749643119433712094318605964802337632357366404140317943042539541610980749535229851244551067880827623194909543308121163068466672806107607297333278228940951594285460074972195462861158029988521633293494883063467647480846098740103095493711399585932208080746476208366624312970856880415637026245971474506670310403614373699115500032360144893447301874254657798573042127585057815788111137056580614135750660064722741652354272942438894110202199861341063204743956592572601285118074351030015561442521302270876451409701521669229388485310826803039569263031008788709737306612487028184686660678939777709337434498819269825087962917626549961867522799740424252587154222724336457637587331316463944553903352819626324094636407586046697159953105246108530380367109379720879259334149538929877905275118630652691881769730172346096952913702298795119950185573494040817398185039793372869768738952043699764733972988807377575118018401258989791083171922963873411302320949026579045372749810871188297895968084289389123319952639408935672719754135196551092597627977698180240045617954864709833087959184688315201290764380056028358396185149124296165447525167879651129985164921407155365940515662462145646927465922157125820058896258443712595186037050823626203942067323738388493672006042213722660477698209408228348545747841146877447389887700466185861094631661467735089053266165225285362119810530301790046779251911300342621489589870724925329909252798953097305075335764003425653254634044124837692697097538375045907295546237757569695302136126175473055953487139963172103024925800221955355361563978919940188988937768063400396360081198280111187978170757372757896744108783145540661011988944834428497697355134659312663294889155870661276288759414878879916190387024022844254123018306313999676304813941385150125774545810365403324294475938870581821859416183485483310772890105026979765687440193360443490150698721429403942374959485507004109158906162234401920888978425671029054268319465232423206348197019158012580619027335680940138452107575126378569120460835409109136383889753906667283094567345283937047987132107108059011543936365309331126313729443735986503477865843647005797456420357430949072679383153018397525402625358471742311114672973648418930777305824151297913455238598586453296894760818877845126796968866391379547438406323788333685826129603362007512071908239257622031919683042361021698905358793481023697808278686510768163359764968897048940619305126386895831767754684761753343811558960617365493006362889408651271481910537888600683379838586913838930849865948208954537469875868882445484802659571886126972173312938289952405918498314106092581891439195722950996398353743385389601871378532503687730159279434697691403891870715148955539619169628003326016508914103066657551391175224553255261419466669555375623475218895075847001464486374828663598166200193227015345489327000284208826688114395995833724635658903488640855717432410674985175392945002824231374997256640157278251439850885479233386997989818397359161320077840056750472195080263635572447498778209688011330466851635235092697323196008887377694135038571612858203665290939763502740359440371690897176168091224451444609350628714561253479477200461164359834887909984711300636852501833053340159943297340325679863173473100645146883148118576057822265437898790097702322041591349501921989083948927532382292467294161711720770327854142493057766403457069884451936504520375929632554508432317198179644239697036356153956628115757262465358095494884900606670654499334282200706854440730317888654963477724471473150391639039714356605027541308179882094493249432329395753839589998361708584188189211396848906954834411245164026156991993589502715028139105223506158367888934118324403776239999033531628878710187062433277722567789213723427159901330356021489593961937710570049577114670027281991852889275456177177872219992306995525897934237964673515462497880198446443593820799742974603814986154685920825957095229899617530534737143178857266294382240142525925432901948827919716448841315824106211826343675355502971951643602323929761590707110926618757005979593421817875781790150819403695870830830036331242506472228272788951192532850476873382527636463489842520298534934935756686003239646519081600876780594146061633776249056345321131585297765830836429550325328281530640051950392710561798719193708511360269828380666422733421991378348798643633862006975806305211504663467927925249965052302743500430907070237904066943922015760323532543756580192416910168931264876750996814236075829228958341979590243482500806081296615192771464770116080917399738078780657335364900545962632033706973621099882207057860469031290152253696533935851392053601332249157097396262452002518190240807824122632029904903969262510039402680158513457848535005986588965851904144774723324045078985302785906250115470460260504069828193530963308423009193420617617499257885672464263277676516599027067536771336758129929571606955329024841624428857297456463194624702890764645265135124098413786696026705757922598679674858385154598057874584597742283842680307910816373697224349066828321009989416613888850398473413086728553383314344787476127554631973855688464435599468021992694518340318938241972083301175456690689377505838267055078843990181059698842986683153998692187925547887488232965076425823406263466485730615111116123763953896199262982769391551367981443397255715978852111229103742969320462541353189422422875879722358497159319782530520014000737907452487548371862169052524778976368890679718284763443372893151937291439897060084541854416456461369365603492265568990740042651433857643275629995192287484788313369163018113904864384506048240835167580590834960921695776498597252779746830658144441626678159680046201396513647478011356154818849243001801050092094514155817332316496279272722396263972754325970509716342905376024106423454206080257788981410983593266254313281912452059104048575702985260116365506127488072435072664600944881123744353904340640180288310414481613741002739291600256833275684267875847121420804329543143386929420008531319303347854372089980390636675937199044078527983780183308718587045746139009908215825148154634571821644245652733624169643909109683054080237554643685180128213953590698163784833045873383278416173885409471876111976725265637961654879389755732107107549203385685719472238124129330025697694364991408615382169347466037991296134700725742502921552524694817239022415537487384498477375293025701518360607657218088249283220925185901733939378656641851729599734808746895071027301564331628679394916077276868257850402450241736543690608538471831978967793852949153865423030169305075778247498690191444330956724973767849158459729850289266678576738772593214391715057889595015882140581926616544507928216250625535652887919058801131046735867295923572412953617069583910773840379415355841347697438233742729320164055763396613616331411584604488558466358134378435779771481355758999756767398466616666291946570746675907723044927922140575609251219054393304175767855921395855028200433178914298646925034488128821501922225137774419867844566407626680962696096550573732635286047712979118453568941674762647750589158642947949822971511649798294225070034277787984850462954860580602319941102434871286250059189048018897220792287035615541653314488822295430629656369042931507833215782983075930998924942280575607330295746493183652550397130111338209334947765623294963951582662261314269028030326782663475204562184286505025261240781534905736897266859602084115957718925491132610742503664012745397232680376960347550868462292736030787086857283766712818520315441503325471537935131425160590892902867021709641965280382373550200258901522512974591801851480226320930217363134905261610877551592638983799908569289291855231876193705515031327879856500307079318501991385669547398712921029979907434861842990972135866618156497353203703869927770273426250360351270704381785597047480484485077809586831638096878657027576999648071130983908772285745997103854765732465469059343396842475701849030801940385591420730603374925306623041525199972289365276281231540135041258057848929659196886428221940626321904573605727289763712875598706615891655021361229753377985279808147002058515164605876845936268654677987911209304259938609267257768435985880914613294906255228706410119777156472414808763224518621743650317224065866184497733736651232057585876925008291194143364823701173902802551977691277106854328743177575781531807340097068763917263720991981067480182940065440057291460014925411757743750275944516024785334046630492549316381036507681860281418253022900392095867273965258668534174313188535205039946693215900887526725523758331513242917989875519839415103546778449640733268258023245154483545324544995358763254737392491954586138993369235436799278082840330609013061042923965580363184482741339324894130232363579285851533956382422356911112923964409029496455714900270580518687127245413080268576329685631744847322821572155541782489432913107894270479765763637755687937655824053022029403294375445020636588433012058608628107389774253091245409169144974727684743017014818827561627144692464110869930287519053686896302558245053002237884012816837818576045456295360663943833718775786982687079240819026695838957873989690323287444287052937388999146165969920454375958327414787448682827920635299945153108103961317708782465551996632014335055865039491843338292160027455268497960148253322299384156538153820166193652580463717280087637942763261389891089827645493961102469613247928606217335096980018402061003372548656648517578546943277807470998407587793733946706477274336697725492811539647012208090190995153784781935513237752929151915948981452334076814233312685282823985540388012772712009064559996471688914798395044324659054710695062616724066091688952379945482430728306625377205671713342812317086985846085813074152070438644036964577594556903676546515902106715547374204855128485404786551866512689101464339139638910612434891984799429567701218011474336793913085687870038430124390240449455644148781951263468637930098022100079505343184920116297233755944647721854923429145147530767180842956279582188089690600495713775021121729384063956571997804800533542234751652049465482288284918518078569050007241712435181536788837760291266396460774147726463780212399452209788942403710912763566803903477934666726760190913316574832163384928384902439983946260499637802148655295187322157538620044027229563778647288174002483116026669736663752868606199848410917352979964223464433567957644747567780742288414650732877841022714491447906104928999429873822364720064380205819209486528222107784765715949258705380893701163683962879846364166465265171185980957023881012598756314771391635617814483911326906836310952117962624149409507307026894952089907539772554701401036648339079724487838885936754808371367374913837628610606792302037811004616426918764482588474910122473521229465063810738481774428771737619479471253671116458082306402070248297638424969243567288433376494800118975229339626615398251081800986965664838182976172475311718752636782793396414088921366539677726727683841023618300397115598310663201594278948410401706320038338526292799126851006593490305421300761189609768312810821649759684727170690979285445874508294576929037735116069491863983214752407462245288093545406306496508981778220960206810977861703019161399180083544824997686090481352450144322028300704556542723379911615033622625978718307727908936432082730361712571172275056332534143274197405949959262127343663651409977098159736052129012982419811884251625020462990876956776776488240368784249124031407508372753013360932944953106163210136426325779387222490285045878756650306552803135627986331247782777757542073554668981851420683028323521702268793631661807777339548633224051535386302676966440229046401638599686741646889554353997280654360982485269947868194887639561420453965452558611164585282365269989605164360374398618107878058847908773861231553662207156276346229815068996227352509804824200270166286745817190721640857528831227654306628308497882364337257873952137724571014707949939112240546362766801883970467740977062196121547038306529841275533139530789441810992633361059179246268296341975656465648340658495495263860692240195343230464952411979592680200063282432452171607972462078210430951906749246477483864178277859447112019238182146177602396589834855102083343049624944045513947516757244171006915717212984223286510995508237059843753261913831982160658248740253895494056040697727634494389615581585601261748859372855575960954593547198971926622937910469157697768141319900439705847471966873653116310220767943994556798130637977419863419772639151048399785682912620483463941052328380963702108588986620517553995691331735365743398925203499210819598250411914900561658093069873249847005708490849275341165616204989879592855665773548525617495739370628811112756471996441607443348858570072024104011524887776538344730940730897966720395186334411146783528508374694306565018763279864586729290504071506566776190488425474495080154009035971834217856166295593190874227530108695710027718939546896624750564112226755555654153357468392685762034164482587952098015534835529573664613454660697530873186678554681674013280639875707659247189698269448969050617932272930889163070134208148530270201583851633940887204422427512931943180910985393933424575828174683174612677227301320551112465528736793401846690535892754119087231696792174633192311933542038731530570465321546034569584748370229530297760849490338830058795378267986174719521625974091564462065093253962995592146454886430604923842745709758119662117865173978885576702995904377129796628864983624127401549466515595047539899700489588094548422911618627358429567548881816679031863308021705528303838635100310351271865597513674375411229411319522200187672037739712475467629099585610651739531729658317504418997200269573049737428416039886398600062703531539470679481185889866078753426961718641101123285934168610200025638803914309719916216537403977224118621878667622599290998498896366644274792838624496581660010639867555323243731335293705128692745175242151835853104439901349514208147687455790960810128676123549593364277133884995872933281033856128090826034690873515291676068883973575285856248110021515301603099448665186320856106063078159544923578279315631922586281965592831077334727995423533715382487844073138770783582347639678948953751356950760447371844552054495598062110068804023957025834930281469468345590045199531499761012372075380025015855879838627285931972268101253824938038046597675081787774656430034165948714209173801572500078766295176170985623605565420372605781368000139111957459201165346819064317852532936275063518882997657601881867334816248813756914021234224341037750929521828378518067287737634238308559379396626217345269292659702063023840177000049083154569539226719428867802028045467652403317126422693354071506837070987053977732834496005551761656295350035142009030556725006165377095620697068746579032902827515452955044105522935540525565167459889253272078002075136419546112266565449268310282103640495269805884792568947914864912421524177368052739686714035690319072926235179912137016395878402933234367796420706615566885557119149120474999442107699031627120583658483323606508243626229226397325921179616355355798040627218334020223675811275991478231545752272952578973820198464286519070736197973638207194859247103558177751647520387104379750842634153551344332673974844120979067669663565378888816347377849334492554028672402153987381563316995909852898895599856172693955353435108451756143694693627782642318631875051337079229971295871703721461001700218431032576277365027881339946884614574031224466022539121597018314188489186461645932957249672491539621768481385510999315952341195642294981447798066177574249606971706460806831784826445059288843300939771833223125608331476138360636519141244822895342158107631393618162087281911909501292093782013180497387404393497985588743360797262012571874436794763313426655683870360434813516310055781819683208110826774085963387522912275242252638432552460606181428395110951824528275399310069369834766197479040872133238443715036537633625907283050252569848172687894865646674657808997848994541333581193131770274243224970407376112484848090806299535595834954786199821462954927378110204632948523286651360251177788039910388497438262778407678401344406535827709774787938323779925177912477995547560107706117835554595588901848447092096657349342188472922006552110153410069550521562660423752791031552507011996840051237439116212904522094305217478188542154337792271694420584991967298624019246276457411649659897878858460032286978272682324872152518248891257830253993730295176197519632214626812354701418109771692349471759673847664312147079317866133286887315918656048140229336385550007130672783459028889864577126544660124930310088282442512095076381309340091301493195763083319851973205575418265952846521245632740168005811338831247700297222260458875662889495985108054183654444492525138878664821110309438655242905951232968008790993706693480471432455011026095223091459803291452913529742663680882119908569124555344386146929806071940523715756163809934642732561857612985051173951719442993285873998447820182313818303180121624263133881137296262596403850752875067368997060748183587194069409799145239873870224308552738719060021185933251398405254097571944571426197091465910164617594865412903943064949359428904975744584856980366288322801917274354958444339467479680807311463919448667560179638688848080372746152415139397910369719269942184272661074054321211867530475823391558487439896530046087390068530893959292880379499316076349852054198995397876129145397316659796206071283375912932496117083131496979164549654149743642226435156898310168582715242609814988633697075564900394796866987002188750507356194731719383680006600597928905638129429976811780564310832155272898855755185222030108950461813250453701417426182929728038143834955707426494847814254752220523755901077525893424947949577024197407577327007156686015757980748835523503921074786379521210438181742305475782465694561888688219546132906369001371279907908288126336820957073463047725520863551651895609685477819860953928774056587045012284154360927252336245709212587161290741163335718024375321292371947069999089546649117399950006911367474335053317584619580273199485193780919654960844380700102710855799839690413657020570030475281427610675334991576366211841898671848177887823896203050771007727172206569329224187428340467250836479617684988601043493720087815651350483113260298086474025684008513544838744582516439556039006365320447557310544529708775315075600944732097256769061121439881508639179365391053467266891902318633007963682900046523301265260556506989453294597383478788801897020980954798563634671471005903782730040229720592661664685712849280983834040094719925021357197085225428580143115241704426958622862583652838744564886518893737696242207316002041559792830459635085400382609048706003077619290832382168176698548238176137543488492636350982311405335162245499350377062047053976041328102857299031585599102892718220343789614232049644325104788262988703671849506097581229163046418350480990554867203116731346703113547701324170183166416088002043558154348362985341455766165856407015294210203189040486761231084864864965015049795576322624565729170366358655026896909517681967593883338112992685176078884963588161214010733489708087753052797570666518099378043196659419855493785010116078163204348396530782164116611711494305301841517485266653383439114387700328084882440133242215124066767647820953972434904857671148554054344740971745000467260067495515337777166834016166549526827272985427637283855619256184507275448040236359511611350447488734870714600424572531964773671122395263941716562227966501026394901071709697394061487747864610276009909489167648588652701034675111631188803441526096855447855431544069311638306642103726627960118774300007779569556954012210203469882585525644066684332612645477716363367470991314968398892120761255172845375348092009667175005805756867934645180795853795802352880735176426001820431468435462009444924223247697287366252975249730495754645250979774568601802779766440102188975050230285024258555447153392136542966715806832616370306982059049477107354419283102759489477108450903275485062576419565755962347282403973084769427702054455697024170187489095267026155769718960579836808694850023768101387338192068227345333092578717276448484736400372490479113180521900706688719996644251742819464028569857981293210341746403740919932312703461150862477774531419726031174740016549733282560160713638704582875780487608315318159173945267997439062430859222310254713182119336536203296798497326477803744757187856465735899726958461375915568709396870155092881369087465129186199666120112806327817489217205378479162083040404876555617347346685446992750601444428200381223351439283857563986822517430036792171388121834415304868392902230598910820048474259991981057883083692601160437108195104589657938951526301933421561916608090709341103945591633015192356175650570806389185180239052276642715389561958791682108005039590452296755542370469061651010329249276163925069879872063149603024996263327131611688664513497336092469317852294117904279126825075800671992792832919523996916309726373316988838704397025876064899908533587076154318637867178033694113428751679770385948271338850902868334957140164193391766913138886137707142572999064741600557602452586475142979982546342569441596125501794984492091468553440813205209564438153961462320901466554114867593087318970098073532610999945325404569265306709873271526685017072234857230490237863103237826124351681764489261847089689847550835679452819378116630419306673281981753631272761450841055380571950927838438821073839712280550827085871290931440510695704208736696164907000342464421857725886867853424585064480513972396672837336875984292895123267435880540505731214680979171452347950293866081860524349312205863445693609490999067412486387478618972149237309681158780489646928990359803428492841887490067861372945687997340695980960358218853170463097306880909218622848373010732347035172415458756274630053040771717305383413421592389801744458181379318465478707128155719094592692928830897537773494739331631581710673313731332004858043685275476090129936673456278330215027071007738197449291505729107689221131703787021750699175845301885579576002062590453433203698235930233718889772606979016982703950035445121930142524656316289466392294587444101067555864692333084623865896488523881324975279149171424982508086857046248437586705168562434079091122562734472339557628839499808096630688512942716841431201349928639519359082330780186970708551303358297556284875434415423968430778059224146182818549280386161807639979018030202360531691323604417812742393779096307539931803342532391890946223350883334715336121761719471479488494204666362432164092370082474069216108857541774155413342589000536652653438588677445766370085709023576291867334384125151697906801119780281899653831633690788944690910649057452030707607644084102053414307161033103803915381674124706932422651309819444901634870740948599205028294884824513858196384504218987713981193913530057561790945534080686076216766312107672117801701446281196859742022414415191086397079795311632543527042497344659804241360116860885024188704099765196283395767780116207710247829460462157366288956836769939418459656047030316782939252137766332142325752494679521946806780744157651648042850215884845242665788010680883677985124685782238770106011408121483779020197473719658638610264723975566457658693310442554656021164103623702093920948997558746365508235641992316980989851238221788683278069896760413720901367264922495749149902569373513282828809543918254966149381302711285167620648240694153577355537500025173730294002243958225574788888516980843763843721386576339385042001568093980478132234402556407821048916083824763114453514764254946482764738730868539279766390810405909447988045354030511887214748772921230097016780014289592136571094020686217702683174197509501607285613956331448494480593077540532178081137734212323838366882174434003603132095834117092591329751403970631200984524357575683283316616731937617846150932856587512302585877601380679454916104015162413530328653981674667148972832351801123765441036095485554548219846377962596742016316226819359035061623728209260574365011926149481757003576379116972133577847645364704564892498215710014294718614406768321555970070218180374386085259399862208501641070072481394775505187082956821849659839013107798659753555932026048421976795454490929160793888727479702167901624041005550218052245313904741725203502039114910003260434034145794999418889715717667239932218265607158966655915013827397512190847224165455472699628282350089088843152812847979538906513185452278722204486954256364753393483665867279123624464545861401447002112735004487247857446716556894812652160992924701077759776054512110771600655537673491293194521346195172630991213013135791099890323352712588386536673987038464714220857303139180437402684977998063739888651968540981595000614907130866186175572070733355243607555492739939481200280864729796571172231405496164906393436314112705718491432438376483861568628467480673841805193414933967767444861367461947357923450268295703790663401819840993514915725191128222564155024169871767940314967815729355364538247239157319560387651177912594552006291945324974418431184205488879293251648846406133169954220421442339553334379723124539683124374545385594999390539948477924071685184109081425811636985220859463044813296779777852511641261492777605646751920828340388923216897662783481813691436419725062468959761676780994793909139785731739429291369782264723019800736821255998867300081283471450709781443494945881030601975557744964099265109265291796622263910426859998100703398338274338890468750157426479283134329299795646587442934130074869814515143924745042121136523118689484460443703636751224359629906521786491478374670312960952302168610964021457447254135353602076018481906425015996451300605936167780758548631256022002878588524230820423889624730725656603247820088461605791330058636519827451350343213764298648486594676146318409561746835835732642492406043512082030973403036723292048978418044914386657116777395411435582944480550991362426162349417081672183846038085301468799793243925322882178155025797445744143266304157732279645832202144124682063828021654168190611865919209158979535559610680601199630855830565038519023357243972579631476178158828547538001145207788610809219253293213809305727169135133405603236600559792876541956483708987397484999525428049752551603256925775998157434320075254263409605546357038771880729710538891126770036609473744494377866956556393303802670000177817616727249570020041515629462649869139999451371193674880705250819368815709249125627964658054093577243829956132223798215931640583989614641772688215231348454116069011158358400111365057396161602986247599626321225637252932196185058889136787427134345411299746169086863862691714884095880668338130459903782797719447331185541563984557752751235761510368239687712428643087027933791127306198907466418946329744657640797727895182357874379009670121055399873384700689873558728639032536196093448734543589457806300578508238906674854226226985085853884841984108287269713492113055306538562989043320665147286082348708819073028235512102129633068910252935131372155182325570276429989888005470168518591076642564949561394386094262418417206760983207465270259644373515364727573042222512304237162475982379865561246907725401148450248979166166903483343178400653311498003010146070683815788728135131272999613438993116132419367788617777698859293338901237991790754133107018841073090938706233298731526689918676708450750152893810223830393536446382339875064609064147050798720990049758664144124198793321273121021928293262877049667225456323999788594385465524401674928215754325516869788295201610028978754466830048185609986953021087782096260546869859921425818892852335741468095445373760154853915505786262153433522133745958101005126537537324579328903263913965846644627806072184894938162981233854504454457867711335203396855799390766595606309276416119072871635683262490830275958437058840160555937477180893299430030321929553756282778229619351320912371535684128904374966492446650161807609975067622685768296067434708763075850796186842420985858751093486409780037296537274757745764270031258821683458926541516916871619744324217997830535813714059181289924669704756760743445321856988732258848637187415549331278250598833184122309939910847655320443842246552975842685042919759649235758900995760788871486866237998874483208704197574333603928271291340090191109219254547450252574424450701915927811217981920086506611280568641787522098550573547238348458787798609598741653013811722578898717129114316816822896395516886772702497014686414171562312434592281211467784414052389391175685201054473256467073921712752069162829933287582489635760000829478583289803393092592729383352525987241851275555598067850740308222288913552211143867213114659052895237444543723283250427338561441816923216325275044543988966894213144160236852767573467568924721801695157444777913268700880348856557809444605748861121176106871421858321745760288815643231024401048285992670448100929862108019453683030961876473386496794622703030309771757774922144423141822701544077045445215349637165139147580933893530978584095191129651185694018530934278947014624622726245215588678133741577122276767616622407720175018677340931959394921372560309695797203620837616283436085355924999216257340404372254225070271702162934978078158030109048057949688042330922561546833827136651964362417330656498922621827456087440428733463397527734471501820057991054460023327761098933538127654485400408365330142570980138170777814416699588591939649104069778721378296803744998540089381473749870762839824808152987602737974450194161344809513724632126453042753634702859772337757265329845278982509610577306897277608194226467823995086845340501817399318174709946361562697594896401918376804658629614801757373222771878966649775845885026752777295372685864626824061636995369356855970308622869058423532856639142966524967264125948428575701925887061165456389434964125107291364999306759271919170732433298400505993067328245358646636826616195895679602673742893109551062400725604380622926045020456702633732772473134946017666216775194613529744792020545955966421130238771091809584686770198291503017927537674451336607591805504424474836380943952678050730994495462811232260442614635697436291158398824717277366504684845526023804513435206368100593634458910085491814557103846303012697627889702375672386368615978585529640351076846737940065569936386255941326971184529909467134463193556821739265084503552350587745933491049954767865512399769863411974143116925747935839050125835813796301483290365289248116425964428387197332931177540909444350178438167380727943933741384786815062419413212250306286069336036746470417165350022747033788698609576731608301044766729807278255096498817773831842996696045785269991457696631133454138644574067076747467802198327966656635257125630181234565101191539314492090799439354855274144634913727871701928053089089848322498233948366916309739975884801478397024007046321561602763524157860749904876597719629290594469530434177657738976926850366272015729686458852638643329570161795521471427307830804764406090000894966409281605746523448225556585325205492737856371778338415995324315088921600588882936043392129420562520290167555909299418991100131050567393756234455462632439421340495540127231210761769978962539577565009266131565157049943315183662105126226756555041435946480972521651621024323588023957095507561758108899044189937567363276960329410631943617415324728339933141749328013322449941211768159692090212312630995158247179967865077428159509904385540348300254489414691557790691554485882807506368559007686443888480536741146292632859536953552413380575454650367369520061752070822064295116191967868424250061442419283116898552329456704968718020955097745220377658849875538847378172966070642768656677091142360162039597967630030690818035826030420893096485837098260617161470721459853968668475902744935097581410749738236140437670831172616043591620688758041251671224456644587720366670771448603676659629251515435934523271752502127781736637705121134113428247890813597678839975955705018381502286149984348348374275438248571199697769659918091996602607214959814399969682335758266444084647501684474333536422504480101138445995462172725238948732245108523332169264694998931764859389519099545911787957379504601856813708478653159719006129484475570003775693830915268939514361795871065267361724855951056786772755119860774776296738489313600373457479509192401714319006461775595002752882701573786578071984327609827347901528417806325011318158609490008906522312326913377274513448355907352063859134239972239888285778071745923986464376650835494762082636982619532867521809619931284814093564479504697792217963028902796396914850725421490283946552563513780519224144966164851589826933867040478713364110060678225689691478915819261321114220934359571151503703884763950896458555673680644155774732988024020358742482248766275682086007705572492538660670610296894964983765459903956971935111209058102419416831520239782402735856693932643405219428329190074714770716332901031106036088525756984228935473059973565663217612948406941871367594279687677314726389424719928066109910773161214990642349084374092846248917171475416520615296476982431172771934231641341787206990455081618430382982118382261847688452427425661225536167424698162843129935343185665697902339931469507577727944090730356388769141099475165705894069654894744167416440806928367794843194456065381740688445505258702983928374187555713865730096191161284948921076881637819617555852622187378372493207888773913060696558087137956656476110281085962629017581644526451284701664534437468683831359738179730717538325160718302414048781976932690193268901522543620842224644926113848112372486948644784648366199115411086136236456374259284323194537046514271651979225263865931380580670522950997312573999053176064624029563674533323991485645605427115465765170973106233291219316358254443793074757510603372875684993398768008681521789823070103079771988415481052247323800396073843771148199418434915053037076291070045146711296687793446735583363514628310449479060313350643980020733051196529463669897942361421745183723946106212621447698292870473949830573322054971731944309258841991904116005415137876381886199988882106937489582113915328180085775431756396309381099377780868010394556091241116034712138412311545667066132014672292216243571515126894583054010560860544416457861814328526298175234773400425151989248253631075885505381056810322444939544497090828358455699459950885271690408107695451277904830670808231527421017386253466091143784588521585652390773440819452447426955144518058285540678005570889696237054289327427226026609667413668394138899452101050660308176726907823896967878335603347180309290968151352531227432962498408768325718003331218519615562083652482910696784267515673440717893352954017641192583656206417754751650335337121985492436522981290610976856027316556421454826400502986115660416026944750090012524301049144392450897999692299154873713530793638582343027167888353544670239166136785443245403036052456010187823053715310017160583597237680745733137584104833096309598303427690573951407540937364660834528895602317756413179842984644365141721858354588809440644589968190365176772184426087279858018919251095715096195013271248335019987018409844191573999564274837374516577268765428262516913951589702868773110780551916101916915588241246526258367197298683724090780919202196002605834083478955691309631436111335070534568766319463223960766902213570910433647293142263259558508349476639461770478115520473976301334907720048161476149959136580991095672407501675516090178634331289896212555796486322501085338650192632610642339867591689507377867590451341351942917073406121277938727280687950604582231064733471875585391624216466556614359123660032137839010221751798945664405257816587310105905943392802507769973089517425670763597728827146231314718830770157099936074103775866918229159914760569889217663080829169243490494900884914896254867936748684241886981040738457732347141314324370160668793656218945411958910485742438683250327820091346231677310549434472000216589638517807086594028739314194989663598921217136540746268642449216342043994707612334374031647499345913860327502828581807722310590263416424982102813567784613064146660898646802966376996001008254003206312485255502886943382506129922928655563883019986861433126332107465148355050584224753668204321387466545985185012398641449472208676264050232671808389989852050768561923969884145802541808076375901393894890237904660794135335185720957648324022249545933524065570880435550875219527120800110371859621850785018484510186812895649664849771489571512163219599832206906466059914644163747241913067068949107242524744104769267787927951598652295783655219774657027448297432753883461430198989928194512402332571098226848916301438859492697603543151244664993674065211733926644953117467213264164118231778565106737875200023987993524097082890751790243242858708191608244305781609136035192580576609745365295014052528511380350354496779723916487027741234156275459928139182374593300512307428344157125944068831776474248347089993750763455588658606512653472306151583917267867067838864976030715891068973922884409889193265794254370452080075473533582995117553925196253767957135837224889770656145135063669015724948377821616368224117033970762615320310595049346122370351128050271410374063120803439106196620285008531735911427413270174704670052745938037880819161106880615609010945807251047093802556105955344593265738312293558485193186353843618104230565214593258884741248380707091926743514098304958931364539657605499388160232373280305461123856700518498711228114921837383753362218826139276748736150593761636583388994325001676533893557769884761567211916262524557517539075199761578286038775633159253259661945735066220524467603477791741483475484009355534087902241943154017133089121451347888585633431040035168310826785469875622842661234782811507180088376733702082864572812017043939139522537020494512217066025927872551401802448270948465048909937145484630705650514713374318600672651513293244975591467990548315780335290760448237605373009206294409192342226136171929525755991108661659882632197944956323735573922946704560075147932107163281499274794898300056454147935409802437479718508699180595282739888870520542779493326852946853095339881289886046867563820525292356176627408101190029893351282192542091920931462343977380722512644906922627895242831100660839515396907553262846510122880970632919720561741911109680202056226851555627444494260222062763577201669003762867319952454126514663751418901454229375826777100421460580898811320427131444680782434558648939607218732656922479121072557919606493913037400947856295979001903753025609790835496804299973150659493635177147409378118794747660929366771122431459701292399767484603557895571926190735857574468158118169867080445786546819441906458281976580075894169896357106177178624363465443398013318189173400404144003608132591254093076322113270128648078172220633412542615340358065900796895542158660622212474698026050010654845528528625168212919737735450206998241543851809749754662417772200977213278621813931181574594853441449059008013110606756255855531252440376042125934310662446829711778529980666477096639515485515546954123057427625717163526754334104847130389710464517720269837640431093907400679033739453234292502524000061313828543635664856246978505873981057540783720889025778431176228516580269265535285972360213747364969906128937257409137888225098633078875669840047717249637294486216629004918741249281726022605053213673243207514778182633676379785920626469779508710363296603555522424665391800257437014634357912631927779318417778995751758225759871945066065744668397548263047273089159041329242118471917160911932102139593238629874322836049516740660268398282496709492237446926066896919820997686442738141098864730590069071837194667537475035691933085721149400022906004613733442458164771046389380927471615486316395391850476043227470314906074993615515857409087777269061520236745220851869534085502047960460061370630871135791221033062852253328050082186453303621174125152928389432538440586367485076265060016128770017150085503875745072135477617893105747292490661693574485558433184654579029852509323438623911623703987179008110281359700898561110651566891238865617927550193065415232743908925351906386740362036726928951746359757321983778218170799266417978577578915823802089703377147924089270151444391152757739629827678399863113556679140457088985722598423178125175160978061286162888859689206738660035579957676192315578568799392857956629014814047543105283000720327036260609648433461827563041557259814805861239242418346827934539831790570945280934754077812393896669632775603664940808962434199578222079905744766427672752337728136012754213460454374569782232604322794125248418473155677205395566839305838687542839507283731501215057038043900872550869830258907335696176695441886173119732462739068203725176242268785953780731855353718155257607596642028883241719334977065286740791411148154910037664298731847122637598898158185737470448172445260978662847794195080930743260816979688498569318785760825915430998599018344975168154583364779331031041793280494338859674129642583677724136214051374920969304805953400192530262661121980934768436916707790729201448397024243286872938451463124473332040749599780620916430733542013041715915169730728751632633955114165396827652594285361780919407979380434619870775507247050670751370680216896558019843208409650916106201320428239384690446852197807812039978186146450939810618984894429802833151353917304166549943575116423260401476838194460910677366700545248049063996532313330740099318736978236241959618710102638279053852519500786771039761105120212900329622748268878590312957749616725608641906943813832646021092167759855770332532382227348675346113821928085252779894334821873257240077864034238847710654088187648837692546515401630944907698929745304432355325370712441738004346664223383719591721488523248286069633203733748186861189499811532089903240086579226355548734656524895099301888978359715919057020586175048938421949656658646483850857660683820374662206853344615663339643784983001478620697614611461262661581832819291407562035339077294493736690985858043233860857981855212422060967262040972736966587493272927579758581257263474648992134633137095856061848590338857618939479915896113931797586066922373330270967462028969756286709808129713024910456632256215533463521481014450470219636992029745611645316590412362532951358694963081343400381126943084437040303898727222746010886608709597984254199261214030559281560911490988074603876646755761538546985773511380405909743452660930571843729318219624950440147808566203068996961506460763454990572480891994196968765564995501605564377620306833652899062911057348517850532322339438058984921984556327801376131943391661579350552105184059602458228652210289408511566698066754825279201038620220336600180998293808290487331797813202193327927983638373108072035422987637708401193440625804269793798147442244860906392698824474722568035567608713346718113941347655346816597751752352156400707698128763774309223308460628774032701047057092342344661780348791090042795393599428261644604579928473241153275991604348902996928047090777283050722438611570673848705444421406464085885372727024014672467993391292061315353971970731412364226379606994986185720380523955883130324319576792951279484941504529061658613398091252759457094497321239850767574880151480642588864733335984602588588812658088511533576608020430147567665509591984017244121665068592852574819323456012562520887104544175528101422121080151505141949858140353733296424591808083978544490837530552225364460721361691811049942586637478408016745578595985296498462662955874156143562910701089968214543406888640897062998663457796527148358850897979941513273987683535708958739204193154471385838924311902741399400768183919059963810954395640302783337750065313940532243945007110267193766016195585329575038518299185297638156445412159892770108132177765372160186599638774919550182612891942010191598632088289011510606760664266279794573721613678220336803010032224146077009187307455783580748830139734464604724444854450155462239272583887591256382072419585231302588303867564394311516728536541897119677596819971200792139089590743741744804413790902234852766244583218451449360019805980321480511306961395632916793454443313506593100896933731208361172017762150819950532444881106788080336851443587277800107111764962304655199697188095547992096972858043505765723278624790204101615736191408528099643581312427462032744748883654654477106211126027570296624777500226494036112420214074023837408739832818287485372540057190463548701234506817954982797503737346044662802693664480064510082737628068304645564917149694357617545632112600795254031591182310143497218549915284186665833419974023140427007199967843989228379287145957647108640307720266818051099309685024769212334775201448157544764957553587374941612684255307339734418106482159136552347104968625966917162801947942123908005091671961883637708783417712705227753656811886195182747906630585795603410896730851462500807277554773654517455603749717361795165256699147410907158249193179628666967901228961292185200587919189421768018591852704218458004554791735312100977561252558123879870648145937466549241132945213275058016487925473345576233338427178225577925372602493035464241163292525192461037927497868407620135249266193943607305638488858426522512030776691186412139312606419461465362906356734450691127226459777305537358343815505130206723653066041240911637313323064315363758148295740947664617966302706006447736793033316931654717174884647996010678702102983605624352873649502967081592514280901919301442872033907049696169070102662784023241014095975153204976678949962322941020646888180849843955699858390609353926026485741492535838849890304005801534561303708735746374760563081020401771997732791883851314689982797852175984437869861770779678641796604163947326400239420494100247930112535322458774261432065665113919762940494165808215931554204335304796808751254645790417413824972922608994887218639357421287185592825854771216624380662482462682634027861900493522685118495073319556916772846963537707405276138485893377740484663224336157467720498295020155115446903744390503689446750916639056921863839879713712811252630701987428195049906022188662020811930308565241797062776305901180219963972100501619298405494045643671005973845159952766464795163945799880025190909736410058062668925721103868639228698719976292407627705960240174394277820657901073139418342155303102091738219163644790384867502193688805623785824079594587348429186705437506274066946795950353343228216982309296817212908609398067550707733301340109219568831398630386893740077024218066598224675234735979158384913495932194699391840430601322047894094285696264686178001124913838656101918516530765468146944515780508675546959796015230961502221591537166590556592531006254152570890499667677541640608187444317074280747959059818191903026409180923033793494328714503798324609965914086700161187632693809122735607451273678837100686104167865453599008751715128223498709311066659807412579871596504131366417884725766607127184108519071928424501076172253376512023267119273053607501160004287138398987082913102704305102003314839468240461866921175812395875389468828051956965205547298822846748968901218960646176049956523787146721599138644828928066458899207519875269494095813165522099434969145028578725751030799903634987595568888915605968747506355096911949787791408578925865447965319778593611194916621232997204240225340134168160057677435268761440509011412310734257974774662324564915281709638731535647045718462510576393048506285346211066128854405193813575925135204783273979524801431097532865914239909150704797839392848498224269916020509835355285071972953129099829688053181976643964618474326946517444068069895541810365440480101923553967924749490628310857760381411053693082525342364595825673990165037140612747902883106030321867941225690893128958530009623822723945511295241325749019883638117574509378881021604285802162600120652203994758718320397701014481721669889414759223987272256292476776431949391308570254756449683265482617644438516898891502028035603925485060376656745939574531255352586131704770114218271971202258136358247672509349001154038761804680780690081512848231909622952648815149826855679725551504028212684257233744975591816888475151911146093569526234209136587734062256861018934562857211250598363615193332547867452128349832211667702451978583932532302577235687571996089611698859460137257864511848383584307824204097280157786179115452714877695736005744655701601530163350720856802858843700031402801483546794288667637085944183284393844666621143967132716057288751896344182767939814909257219692285621129167650533470901968475925225026913297883222032541408083302522937137605008908572880402459915133428161837088430932602116838179686641348518530341511113590321175205682366843030803667326822723875426518360195737895400020820185640963646050986288891131373974909382140123922798713127831885453871879747794469319807699555729352456771064296286897512434914428568451682202725034096860417142425669254757345309903508046021776189070520127701568745544076637161982833309549099553029858691579682077454578727862336736323669874057114361091107065943971122240297311088671547849720905958841225754049311853328184734791336155068847349667679292882269590596257563835447660567215465277842515177737449827131042819188449067264520416269297818018934325095660129149785054348455792319439201027331608612498028857287306658807973744835402341421832877722340159140085151649284231931103278848102062995621622751440405944965391553979970450264706217633266898293972638538330739887616443640914220618231115071894808361861900564236738994756117695375061656014281173086527746627721004375236796315487784186030559750544777359793860381793056236290192529131640454406911110835426779896385470168980445257669999539945748314410278569743525697425974750522621622219703656982987724477620966758393897910042096335848399490021256286026591687132221291826084890530827070054709597258877726439009935463033289068579099070308469402430108232425435821872177892786668876332091878986655921471245281122248201530829564582214956209593892686474108882606622044738351522049510655011357479169646879031340150151022653908528890731111452726672271107200313081264042582774402263821312702102300053377949175038979909556294313779622311638559281230854840242329352701257887975164300928616320804980935006913222727483811961566903970992363460810286309430930024489301509564267017283754204976403145587732389344233469537384213237357141888261993666883053549435804206420928700513069859062498770882636191626901440949509648266297296191834327282926858325261396206407545401462237306676643414868077083783553202474355059582192231827138859655648687865309302620096824011680765074016642098469857051403159921259921617271613373963404293966579002155811180153102875535516029002037460589629266673864616291710715331596970253974168925890498919279755521556842091567811177444142219286037249045286590615950286048140968881433475757376482202975716249771058216621516146542653175936983324589791376371505353552864313897068893587975892919266247888517451583652353014255497399795387518771343964811555013815419360693795855813223253539147916420143447516251054555628449933436298489963365357470001509335427640259568877620645688704840580702390963703338949090619670106540120879962427347597774742916534220960211539961363649898502297928334386588973213918744848360562064733024488351127327420846919105060047231646772733186984425866014380799462580004450312012325757193752531640824790743152324080026111105598340628403620915988191211036254033314213266398078018286256715442816788938994803040171805726028466642473974854630154719570105367929352484642787881858450946806960807190392465525371437987899131425962268669591983794234033634021873268166385934855635984912255051101957942761783119036618280434606081154120822239984358986455477138783337714933717444390900319231202413252396481462309152588330055593665891336657118404601945219347381745182911437158671616845700794767994142291596866775751955825264526161921976434089209507282558997353577042861626892215641419891967065706720565952371024570368462290389203551005270099958974569524875952367791769406852448857098883419154435317339389943930939196656683330124465067850320265193100031118758619224806214519287050514857870180673194744678568065855681144194073637141305765367869595867715775525820199626656752494713524790797498717020682196674910416746279981518711192391370821471085245838253889089964764600519978558552233074405406517525012621541538512622590964162091161607399082380849005642473924584456461590338167692630657433598959400165310073119673676134329154140009348363588840524513808913020365860331702752246323140445297916024017224225838965468022345512974350954143254630812536233933703660786256496204433605215880355896630226243922982814780860746431773978688134464568368631659762166011265739273934222947150697638457448826982091801446085242145651148244249877185390302113788560816883530470287086591512678895094051024653605765291922940618200792016955414927937496879669468753239086313261840658759969619619172711254412133867527517896459907373346977683900659782517762169114678817087977169272184740796714597081843376866271554119456088679919363278400479841226782726124873501792889908947902859682288238958071142786673794666570035337201369158778288750584259408484439245763632915359568201396095320526954634230464411878828236189822166973017170326195296077313372206590390424001103499006396587011944544112759580243931850722749393847964038449540555669334207458238695071455542600406405157240401876945644143999900957239853378618961444258937718041973856622053013671098600625192265865410501733194078777685527258475557148241739779108318208816948003622000690079923624314760043139850735961427042538522341380776038394130122243872992694593726705426740095980267758747570812287893998865619032268799313381716387511811509039509758735411783241991655973632584872413627699028763582642304317979113591475553463749349112547025210633895828600786358989659414659029586603775660015925172058306708724472619015476175679313259270986834478230529148274567704333396114661126092368248002022404081999128482799181125252566618248193496152960248773913140358411951315826747555291116146038896683145023521698386724050536150643733094262552734712056581945330619305465182357936394368534326401381725233586042854696518335619484373289753100425158609084506633236382674260460140597977108922103710111282034730925868811150494888565785166728589505984690925519646889020117680290865647814143984055611952863915926317357292901115360896677973976600414684528279858134768630797739181981229258442337296363874843644882938660932977236044600792838964794002321826940621088343899390112378394077141287371497707615173298086912882038175339701963422857235162179945322847148444873957588036602472071756476392885834025083160928028361238213469029218769145247311591023492637636979404319651504010426885018775215587851643397556713626671063286336398593892794719727189802117506255781383284741142910671252502501124853620029314954506068973192221937012844938583591536499590375645025779745288246162993419067348440216925644562027477578721453010223255431761700857042585185962228005531144016301268295378286288451179493860720863728473940660240332060323159808285626642756501814335610509546460296461990120261763913350217967240231201251783872556084013681068470857865062384042072276199800180324021382497369655054552431270747505707682378226460868830847113864737542913320515345079661988460161396539440460541534165298691960861128259687263495183341120456761993534985573966009628216284838148275364994403163359681177332010769799449653531894212825601176685539270120070001663613218050330114438903841389628853249202594302454220755950253280444510165531965063999748958061641389798345732680087163689370494494262011502202831875028091712653447189684573945290382850096931681540295454746762160979565946709312490521865455053297455810431920467879889371584162202796308582365491954393301220612291875761949762779051811607010595938508570702189064462442458975292798356993857294760682711022114851228466192445810580485430747785630628923966986516646011911260564699983110350808865198901987438113175678186681194804283034786895879726914396005544720302044272056863779276875772359708666292222198115969113167406721980538492258626703592836868909730921998911932793064710668908620057890251120208634495609529699441590230212488296979577678696811526094166205019338856053602795897450239957699155291970438466099066952771488746205797047233496838085019879050766722425402283945157108539981937732078463602414048678743721787099805424087930191255502611005916195243648304075123133616348185946541354950781652009086948110647298085270896005469811655768327124458932989063387757968753282447230616862922040685792096410315169761146623369628819931900150370377332912693568454532333271462188213370683133530868546567899941833447361824989030927655261929102370482295773087647729891040551387215170699464900407232889646762737100381221974232553827398385788189704930009415864294136410892853301719794561992928137381001544654047845131758715018282744015925126238252503224536066145399839501212311796393595300067207741178789490523405595285630134986581560362705289406781422167134829286091166376383162533764388553458394002537912914395011038736513103623540150637368210657246939206422801370564552570424527809771648649539968875514423588524385669712858053754600796283594896643803294851854121914900690593627366155269442157422088163857189899812406765674638021149003428892304404713740765964271962970066020188873142495351281187575858466897658913876410348010575843580056523751249377457875890565316367627845742043801825793001022857649154845141298722140244316825373577710106275363987627989895135790742072494193505445781646892468488618823714697396490709685117865379054047551364077458379836688190091012687568620023005659399862568133039296284584719401203105871567895007702984138326702105238305031974156861032169182457908563336928569988223811727911170877175381611081268409688703392166161458200114207984758206732237292572192287968066423166254664365389908738594660377549899918068014951824766673198225080475086371579588120130187497192180394714647907597291292637385822199439998558102224558091394281324733455815493622186098319663614570903407716272872392068107075867683498017642608384962868244266771381748475953143837671095944610033867656908697168967609359062970671381196152530006089200750304950670081060404186934112892432297758172827667626265115691824880996918069011285930713957168848439797995548323745341735364566189738453974882032590039625842251196584895462533609287607188817213414374692712420695101361319126665050950649996232247782820292892326102637930475443540968541582991367871365698052119710964731265215288761609215677080505475429326852249704455419795641366210391198266759360663635803458015615926043556796932711021165214032834978567041119216765547051761383100319339712785103201116348721167337779206883061306405655148304564889413993288386673690422158502964480144371372904783392628545520946310912284227339812129165969954296534314363865703405846706690035923409509970617719723545367434584952257181100013385187277524704483910216817612224599227765671849055903640824309249527445060710780217764552628007729419299805206935907526054625822326025260594472200418313367551946406543749481453313932164855743758893770436704233613898625805619879669743716055946585790139431598344848524225649641910134673787239868966881997650342664045138775662460829201457668951309545067482277898265757818625209799791500939664923830373477652532277521375388835586915666129987466005513260642118874223669351422411089910348608392477106509501290690812806873575147058365399218865412322917283686960972776539252022156672802696506389797631789780495125446101919789663238383973789754026781473084363761795935416572927054536686015383426552815300438511570451316879171613814702199591340866990200052436472112146950879227918092593435703517992590344827509952216047934828514304253250646341051381508617127426591571679340213757367451887061259286673285375092713778942711399393786285436027081791415730823738251543483395239547174960744352063332656792041501381173690591097582307250436348848145987222503498975712238916435850274832404301322565791141435419296467154951642058090340832777297653234063102049842490213502136146152033426884122906195254903585470216894079645477291409958229434388050715697187194344193001565191546173053606870698452133133776983379332406653011951954737377849359812353079907887031087063393793395247860101608134849924727614449365859278391697140529877429178844585807697679680816675551286448601582150815756249209276804897124133239338308869227696608412111617992875934997973433903100531905393993035805948735773322370553840918287353076012737051919983876024077692243130806387205919464590001661965687682471575331071026130323004487898000443383926675850712805195445625826962920823345303730478075424686898944377655926868817593369122754830327817395224018231123944788217587277367489289323626957239802449292231321886278979765781276594903048116450805038859439951884431468329803924639125245484907319737540180918570526836744196213602603373813781086945603298674704452592628484698044085561725840300701383089348996917797612569422645818867619929081964081347312708123007718329071586140012172873410055963508925301199136578301029186648594148837437162995844413962993562356369842668091604802214850438338222843586483251355460824668719683893430022149103421651658713688077044855414128990877086656258059064744318328145269865967791208482968828256336991209218812136067860469277215347938754047029427849898008445175574606606227141576725278122159358447133559016705277683279033956695479798124167405053973017596441308760988292800956646825094020058049231548532406954810494604366747675811039557621980437463081735111253663528213910618173056029819037526976821651673484038672964292796990005128782213178163684673385164924992324266704468973990337780915651955844591670936780185989894850537122400850132812883396325597045021826754803455223666818278512186996752414195068238937887043089010035196677275821173248087492678237371573122460609238812166228699328727252399566722685941949113253441468870732524659394470252094689773969719170148059314782999046977825227228736314911639762960597313351822584529933868994577071149418682586848269888891462544509630300933866631321199309477839952384838374380903515357897805005710442509830668453505981424888087990812369053077241553306726698744147704817741394788746210694262497446430381610505967958191781082221403357527263074662889943003419262204472965249996892811800997563395928632216533196432111111728151965646068693822289478194564296915161289478779032605416672973928237669597054458863424437837347766493964002006975520505052286889179906114997977731437147178210181033832782610661485548559756115044670638835008715665797750104742983406048818812509017128160266043357434711498841051386843128598607179903881047193522566386453408353046055856856242461516141930886735494782236785766465173858228442257217611827305040464686880401652867042352159798196024175304723862872348910250727338238292697928383571480544896192079919141163943011801325918135325825988552527796669292738053360665922896473507179325339027217575590503224668457351270294379471268340845217012244219193257171498072756451188000262039723369074089267101764965419936517777294317617046756073361870951854010828166114487429895004379188939206824532724021366488408416110612355476471620908193504948041724707396094137061983480921408875443402589753669707472184190828165637065694691911153272342187455476769166963905766682684277135183640850544447131975703732753541782062137955128800295403273660502132534386626965712642739209027075045236572596714334162664188708728635354191725989022315530014957046835623028291486729080523054836060885979333408759533120700238409265882003936054448028471515221965352173877980988610588163777985690608475086042317255650150909349129488985090183068367775631429448097503015250823626830061167709328436155134422163915636765656789648062588044717902667866529511423081005613732271374246587702913715273020984407680869659454675025109963696567664522835264740658976949032338966947287725596189729100532325514010210867612264633221977077516008701736675472191685864701109027771720952072065787140476180374586410622016580815310438242149625149083923158252793828201904150968834936816027945119635269204886268894945966580992086442553672991903289106072333600184567430608797103889343541087306633950201585925983190290443958440374246257668886779725746311045965971635886397148905335553741877987920339431557103853987657120235324968533386622653789091793653034601289647997730314987634884159881496554985219486452744473124003667987798372407045510995280340539736283234411746456143888649856470341726230211391234668710487503497413451708689928492411393562528011903287019400213983567276436771549561300913370721732944872368019536232367023711312112977149879017266541633459678863303010798908545443047995069521488564048470583754894549049864410366706629673085422843799533799528946260228798641290295768334390954355804751013607996128942631683237790218140664152179614722679952768802447569545263873507972938914899366498191589344025013309580850816010988959477635206252138088084059290107291871736614811572293180021177370738763052280061735321988092614931133064173182590129256313360833341398587274411021094168990924354054439689447492183479511121153228131119271477518480479301702004344686863528527659454385084374509062147152498946577267114314769609947620936474300232813656446750583989936770293431021828634797055748073447755238700519814472990869129004870906468259890518638932293826506064186673641078810732503139843407129992056652481612693263656242823378236434126134105556726753481470934519157534169436704112328809793868488707859190943008500038552902197673906039049078376980279715769113782906856525184844125177685509952727495418424792745897276460187392740086815710963273004063303581639276393053808106432500008615374734072945986633094790209881868629825190320208024891872738017130466680292171456632337776791995065657736801727861673062036265480098525724377070758571644236548539921033573822621162750025638059845691031892981364251335129807600206930057942781751716662729230783933166036735054368450284289183938989038043804797364249469783337170103670193410463266321863329030335517906093845338861070158472475197775254659977184114486413872633886133867258865177188695507123524008198361467480355208653026839439953211797939285765228417137217360520319118443474897548654872450144141737806455064024584355891419502334035415447127018012937350763486023385618968222359474081231036894354416440427376535849100166109697053324193311116655899602725169895223688656663157719193445393478174114274107091720716025176919703155944424278519179027981370670455044920966286841511364207206263982014577472737259337216840359663379297421343655636948186885291210751008916812191991325258982606969919883134251765878334021874842101717215730371219873903007745682532773704751593216691842723268005412526255529770139773602090994641707865751580950614883529364051850101176025921656699091382296636886821566946900456135578623289170661006254763061367207973133346474802019674877854291414691288680263174500436126944221412221576621126332513168687152012605268329364805863094157873301231335907867971822598832418886510622259923746743246488497724609498549707997026742824506264180860563999775609026964690395910450386799981949324641624295926438771472239732386158655543006209234755959750897429532785443935587114094442457800432611050790269747654619402074971072090157939552413150053832059800582695089356034317615694752074357486578013122423241532329943375135574239019329360623938775310177837918853707228317402457511010407605978253547278302150032384260648677341646602080955922137313472633130383819072814854649316247385880162437770927652876178822061130920363677459544146765157352829764758579718256092446756090937784486311761731317150341117469494295191928586293253428083734138328190797550000173877371868288693834119144159885258775426399488972974513098879069660255722975939106993125468581753134850677344638023476551660722439820280022827778029838889601059217592433311086134439791709639530021489785428698881046525926069069269028799358928295679861911234931872296957808230359608222459417199196912367380187615179814284244918072797704131616557225992821216266926878689028390324927724339750901658423613885586601404871405550178115367557545787293249622010921855678740413728911933409203247632652742647401323240496784403951122317413574338199448461430358838206159983117221569833857073739337858749991667421248928031506726737939723070101291171612485890421118006371313142635550598402479616294407503455474548596530099538896845922749858147417681180637623190990247457876594687975630755565101797213747873854657256400889825208511726398900222670202903237942090372408723055088027924243549815421452659385260895200141954607782678102924744290792960757995901806459023917609287367700454457642891369745542438210568766634497003382401850673154225279580386106902767922296886701662343209303017871630458659710777811413679849268996164218901231266880496384535766787133611157753297758761509804385228432257026188124701720984657169367804080723879885028594029876252441609313977835528927203606102189524014226166534260951153794198164451312830665802849528443208827304747763443508926117837530253217983501782860330614371824344753257917993123730309428990389535320798430885237864846824334461754941959472927377960019246535536917404257312535135738561075651601431921532782203688081695153122915614182245981052893057249161137492324759922223103879867751390669460125628380713236760328909699496296099989489783248162069286247133088233410945868774788788571958654453787976067134532534988363451068864994105779973241714259449042018511134861131565142943690120001374886038265203829152328063998162242659734679399284580562287118963213868194550869478373185471812311401670371839873850909939446720018842633896939996818242791960582385327636523177538780286532488407877341713006953321582974852710494648163724019065254324024965384736889218904321584182343061622375329703285278911966920830072793507303731457587832200404130678235941522956701422078791319312751781142430212800555002902424032041528726464619503258739317965187665565218227396518236106664230097237277134625117885703566226354445112524382450548173054621191940332614649823879850975548708612338890434178435318550382437653311114847036426609392877743617615483781953648958536619879923265106037236210557973930676892774328817294930519866982926331752474212436428050344746008437391546029875010245008440314032714220802713478257222372455630598876596192005203871225435567561481661317536654692637944406289144469144587601850167631336583203890687667522251483255222674398307195289875718316395153048279489836883223510557326408311036674379649512844312854783307942911821773562469635992341817515860594636393526675544521690545013354738511421960013070620755399271546904984250676479104433229067212210299768338053267287433446798737018022167739959955841131982199859361746827422092353916354979103120985011885427592602129239706200108259516305627952627934289534742995205911529420108585100718982126332019333437292677374205932002012687188727578497408759651625028001934752198390217895393966246212402181228139191276177901567885546250314319113029886219743520352584165516730030098970492531876275507550021129523990694238103670340427115339745486347941117295827730248403505820771496488207737324462959412760549222105800378422766494332254314451207575832204253391936611662878337157820692029328740809083465518202465667789227975000542533362508921650682146138838873037765513920842131601094613503488323936478266006729834925182389512914363015700908525489289129726125131635371589836266828430404499779865459913887793526915991031971839727750718410383178639793001584094798828148008028053843522284208555022585959981937318895660429004192816126176334696876949282470062420131027653754009587531772154557074551952829406793898304376167208264158242483410022353926304500158782514534056683456138122782031347551185875273137491807570664669575040594940501483434146277403045338171388665124060992482771441262351747426743755525070283678107662160081788718628426943807145438204613466343818881119845843248276753468975922444143778486868900768016189456249753742301841268430620396935405109625396419818353135924021358304669716007476651321453347490725770921841674502090013296753788308176535539578322345692053604758470737645528642410666300979824965940476734157643664561115359578721215251759869093590417441457093741822028966645841524645561316681585370638300443501107027009913396212441909957184110664388968654297845095392296526305573703015924419020235225243225516541909275407367879921361327979471800389565825252093625885872785409279629028069037171518940652654186407236649058918045556997590347872465379231545307320968002493944361083461493771917319021154957926770541206580381706095041000893068907828238772904817453086919661018799300228984283586260935157071283401514680151617874721470021885557510513882147905981729306591410027909970857390840868910352456612464920175640949646512112712093134711454249689340568033660566677353470290889217782786203988807565898638735210109759511482998678982230869519636378775670497874151958896180496370273312553147917321832265593817308715467913073119804199438242565356353839829509623364976792708532708730514436562503468178279049241987346639346279410688547388280471636675514773008098077896128875348609405188075407001601847924496167898586360975911209259892889182873826895772143504471623177618875002089589149314368985078295475852145548962866830838531038416725874531810638296244805669766989213958451537135864039942019359048256912356803460521288541484144707907645828263751140688821584560235683704899032910858689720321445507030531439833907895502978774742644194100899597366525778175228163253362196998564360919450077130808542564826782236918232750470670983495927644178938093771686791618194376717716941629832155237549302282572002777720156067835993641515183489838995292096785970617677644285817031610651006032189249564731113542944652073537182837997960576968041200049957567873966969409142486109833508092648424667963269521136255535980608944176729930153709391321739689536562623197444498086183279719001852660821104914456003627795512805676999114242217683636434126854954326111503295254611248094038986854125320314413599484142268124091924493960997229079695380911111773732978825954366404916812054787678648840915387403531555297618108204297125142947431571128279750942783456416313584484694176853770106715815372582115905841344694018786732219159161659947407450661802239570839892970172333969591770425978450452800487132353758047759434979986835337731017113062361522248146373864859424143964373652872963866366051299500677414153960694937393721102277956785788026868776816782317100108150768587458290796480754170994873045814309631556226602653332048611065108762604744439942336012483689661343664200916275890768977851174139566190508823668802712040879854899877099038665535581126078431399940433818920650166169700453896491954217343525846054110767283322311264890643668830271463101171736180429827644024681083600282863306030394506167116848992364986658085366550735231147611792119112031474759155117590197320011829066639301416358826359496674186406632256631091059279453607053961086619699329305418141380079427744020368021429650891852564089445752740883743067683930786762429083584639408332989081315833006560001093147998889258202972418021958503952144079482554380953749800365065831116241363089760996673416300187891033294424562315340153764220261181789856936522194732882171960587818973136292808615236185282347752119970125292958573957845163480650927565812610264691600154432874628546817591427228889006781029231865522959386541781210653791769659352259699809223331499966828979281450838611298318487116655838089035079884393468220985274762711342441325431622219884784218447778839040161486243367920735800328992682993342440827301189706665654946254768866568637901058724498257754830174490319941882290788162115450462159736762700176534384653188944748303181513606856501561669921037641298724901202560446536146487121820999819964408733533610053609122026515619597715369613350207478275790887034960702706929968751037630076010975286470140816321038227801907745876126227339232090173913043667441291020249115891028456142927192259910919007655937405436028874529967510374649307104465248799998448513704274720208968685090425463688773406197886930403023636319115114774463443390208364235173883741467997091699106792267376941550081323029206898527501397781983078526246758844701367856176277820557885430226469819241299710100261241946880439257260566670143644704926589442369268324611194610235838962513578072373027895344640228694444668312559166755741446012825109930167220891280385740679057834591868623537521754355968405400728215751847585454934213156040991043996095303488350700819234913074525079518114728632885416805078888153156952402261055522406999902755162258531495929314971515889288657925303469059829811857616951235913991822657438496031872282798037661691026898725947439907016293287583895172284298009344981690141562766668257018976050328481798842215439989416938538957822107942443875681494180811095263061238055153006333666624820278732274248025331946642916676723200660724467121023471556593882622504924370327112054576292432108135650673310105663954366684810902596073376304100726263332811762130187200800281906514774762004022228518747502569270148262020733873640704984121746428183080401233481836547270759368652480547448672552568406080309970697045689415582066239250566254877631950536841966046835647429924975708861998027545047398928874067205920398254909074645118052967124134630385210622725878279588068567279067858756998411834293202433581182876015747647895064047165729672834975618788908913904112689674576877108845024852419032789094889179280891627015813152322438794209062026393377664952512875913676446398928123099195966342479021096419139112411697555061983028402247140791010838175432582845006708428637444809768699430187219395737647559571814412781481719032165383804311982361485222966648767188846364620564807982606236312880837816369677619726254573991748330738546870212860602345035671236364978059360215407559855954481093204645909044247714994471268463157797690087193660794801639177544284361882738538520511677741847897415033231638612071056791419403850656199868298495306510295039932572884259538642434962417648971321166622578229682335312805278300322994381445005582657207019534774147047751805481601518413244338932016561986979879044783779654333763264843495145234571008248167721817487145485936259739562100393488348361844300040632786917052308296586813145785175805474591204742182567142849076473965050509820521803790033066778938807119215721975006562650622696980027023019459761614906802296414079799893508244357556980170247929321443912448792377597416480330529024304098520886488754810663257247923317645411777978974294042280275242109745403803815447816256515291079806144911540841301673767468742918115639604594753077894353443712001746061969433069256288624275005366809440434387194159587716754677165037277825600631259260110921163241072079774574147354666483848322110271955911775204426979094215360612595748280577484791270840262801784365892404457126931549316140277843286468133685296212770537500460598827865951560145258794785930396040631179712445900604596344657894005539033459610329714121554274390868816977886119865771413661359640122279514996513294949752664367638050895151791947162817825871519761588099248086770846577126411786463262626019827317594415883545764587434457669024146424803618862650652732077923684987410502605030666876762456884570992818096421840383109523779333042926963696665118831648902192192885861087643958113823590518315700413484303857324528606611288122860417498063747564595231513903566969353917599183434941879808021330206424355058637504601100236765023984391456015323420499789901244564104330373983121045572129627864478303614147700947101904593866824156322457668691033522237188853837913250072215452993819684846837317535408657349788686735256209074020722542837898207209258592386142595771305553840855825740599302200600404723069681535167831250803047227521341658203177146718866401130014999645471241209240023059568956442379955738358752475134359189424623267259475920959044604362474171502423281715718333840045377715253124722854627379671306984423529649170955493727949040575319097240770172414499156868588367291473357704106276130359130188939075088712538945290459322536828876384112207830541623229102071879783841102096905357300124814863227442777985775057930009880129611957146123679315090819585587049574140618213530882598961886160472828167509344137154272349441720080404161057475116747800313810084640769509071255629807701230646088455489188057089203584869427391326070950476683668578695338264006978040635154557327251446581351893355855077142559005963582788729451610397599036435333931448701934239004741897801077239544989458165285825763968804425315966084860269329938563435916584239770504833908961342478677894947002926340290159125054134256004786939666816661522606731264749950200136330517232676216155035589610071915876887848138303189095959795240305242679653747298122973744490589563967976069729247519369612785849349583494868939127714016186473023745649270395904820327896733945408265442290400758017641431291922862667558810917137706621408516698733064981283862147158472218935908226559091881809682184399482074265170323794446276483088473958363945985740114132655495355890302819573245813738462199266973834208451895686661332697454810692298709138927996904636895232500284737874978933387917126560785103977790415748487072351578759148614192637600134516478938554395357626660677376237023753335508829538918108837687216897854683401374534047319476922945183244194616224745635649681735598934495819975273719673783358449537081960866163971443608828769374457390301662749394688681684561304335258767687080015969243607424960725630254549890860455835904426620957319193792151821587760753438912023499290217084619050093984643208652532240375501677784215995738038446774857283359183918011005108175628280063444124270326616806428865219253199877122302592998509048657950570247766939596179571104331301001036391561746878530008107111053776545394532501537400389812628224134591571180467161055419004844169349303128509967375659118841427298619740453095647622008235191149338859921555409765991419193206050575027243142153779042063406926943924042698544267972442287491001777655780646277629262864691596098625944140221039367305676111159511030456699251641979988390879689741531836033867952487668220301617175290248322142408087349737831229190738149253523035183933831070166602632596221821886263817803369929505174963983421595545139232172019221156957550825658524495695826770413026942178310024151224073018683570221515343708294257464084098426333550214576367790303813418122527335017450017422592682609997561276762174207427668589457778771546366067712529745694571178785176130173416325205269081937290021882307757430687793802806924841272402211413317572293731122410449560883915205084711724905997320565846849552654845163280620120215783456949152207386405665796214492857829575801710988983402461348060457885277925054148318998218888186206030536272211660635218881825673978165736894297409689256211533036180659154766465712104537236590314197422639910559355492670226057235223289284499201078567700590745962881725077164744259539630211655833850720462037698414176517811567374691948829642866510222569802440819275891062119228906942457050253883642850194543611251047635546080917864819252094669888218575515467321904448751560367952832362002434855562707606642921840359242851684205599526888667273303156751978478608332523414013794239390484489819281342190485805594277650422051469695469919960801853175414495963440468186682330147287397812266426855590005666918984187220313619884037322006745057524651374625959044525736545484339268523199259882755623350096432871410952188257706649755446141615839698801579340617116581327961529919718489242976871577784682079322065596552546124741479201188886660819326563542681059285382901029719637254096743381960549062420290309597043988403958598462366695180721442897198088041631406953459663052382616628842038564763316668540839546821139911448170225716428656340876666841625508720801550796944107157141234174309701786375701132940808278017433239924584607166477737472634594800330678064418701630533161554550802534428794228106776839123289130923664894719267434771410782450439727151567981343708805543062374311168681661767598495147540035594833412446680490160632922232581382896448572029298394962428121676749119356703981875422804289988227848487953752992716835329412339336167860424430933852789211822512670806040251930820521466628220783347207373172465626665234234042172707402099724001638506663447206161008905356871550422442937327924230663612002190545920030309398033493436044339744731147437916642336545582355338085942355516679410716149565328195894747142471266940309735857068342672709475436147525138950804809087612080082046101575457599995810514357487046099895676592178884269882702007860354538036034565231681396270796564605472813580137821224483643219386164875663261794910187300198462490775251228928048508121962824447683206615435595198354733856330030952490081685168249290163252049464409510081140424555168861513601307000498552868691594912976080736852725017640531068551724259182601320270308918428302258929580008339906115487833604330732182500081485163766993412140096714731796307582903537645561280959484620376335358637476852976509053918494699476971018932878324583705805447904262413196356400619199651854537414750022096721923274044193847463669463506569017189507428594636030253540811017611336113283436574843655980025627496385351400544699291907118788594679770263247133600561465618056369930649318398295864089749117581712951917990044256482567319576717016967557187400880154285671527439457342259075419476645583989442227898360906515335633906871351812299918491409248992626354240367634228448046014399720795456800764305290543612770713464396447006394979609533958255009391408731359494440528935800429424603125241728075558771783725868525735166921659370872548639639083540560652975462993247393570653949283124511203671912457632550830055482439248960704018832783461698656091812845953483452517400055727139908278236598340891750491560812617084218606125867234525544968352087464354517399149521194663564997567997131120321907025109917098875369101698235853086573957306530343265242879642602227842244187385754719376055141389011980503702164711478164813069164244872432436534285556293825370774181770424665626299948251249848584491469832842838736681396304861123432322165827794016925226472963767443194080616523088820272400539754796604401025706030866318184130441930170712613768976490794580432374062078808328660253197583066278880315733200815492573521661774124393896715105617078984545312637994226553641182005988191851169303414919870492012481941097633133182894968578042698304478192753132292532384783147065217938381465231477953519647530620911888110313823228746648633269435152217726154819703637159215700513013442348880518205156897711710703387763604933163221101685134628108500145050368832858873390133062860060258190195485894920562852587936693459394012403372723951143228180228453960796386912900538204689626587757837789179729453185798376006707953040096583631818973761215830175189370154804549423701498282986318707918102514924243186809093368254793181104800111117798113349143146056803777793210630539724038828639836024843168025773278574473540976841159278979687529056231088191865930669503987923018483804392753335231776434759499393721768407551943579380637113544670007689991440386713545355507320561609987349990568960664753276831507230594523527916115237309768829070645707041697930494941761197168039696935050439192793853597691929580425495724937703714302950887110737120884852145371025795807123709739962870253782645480698584112693214254242128299577070426225008854530531812941845763595815240178528862774645390262352556382267576456123196673833220044136458978982031868481208243641843584408857165080023184113887868006651530411076063039663066512891198006035120293844808596981664178831119308111691825491163715856342476764871705107540580988317771512156527909631744275011524577717016138690846970344395386342433207450340284931854871956469194498328823176082869553893310420153630359393453288465407610584199169096029529639750293907060916484611803959253161313702310305274726639549353850202044508861142112350583969578911493977359197153258996608879137957193027534556717236766812625789744320479865617521126438469817650433066464604749671211621580558325558439267473603887274221863874304577118452661972141543133989426889212305105582441258904577461690110678955561009398860530256795120161454071585638649116435675243578684583823280119645222094850334565675004234875512801232497256185582729220225615385319906466697561407149871637967875299198631596546969949228716985405064845939832825940546358063999161844675485573491913011362471843089172125660837594868775545920167464367897133142393204299061248898454366305568821875193402239127887582299537762941500903647662003848792394184276548998491368692678047401240120667316900482575888441412779480464865340650746613298141764052777501294189132936157583796116775031650080686604142828329856801885390485341715195415682313229417968734856312768861123269167646303038886093856714581882583626552643496786671063382752606312098306316179522499228692394196993880734269245579531292311679334324984573294679569251045373183249179879933850107140018669435063457930817150194923700675323873988993316282554450677862388869102444606463027788394684361108912454261948549004576740728683445016675089543680042742838565261019762007792059856865656290157422656678857232075813238398435135302792506492002920893752781762209845344925157053297281943260366253081409562414639135725543013825637131904762844642773589239900815236102804035444356474429016972466489462574120381526510413268201869073439121133396932908624585048797372838470743544323754840404593050612157898191640156664576663758741389652991582216553063265537252463663250242075696837795217497635039929401341178985369419938533148554862646908546963700325978698365372700666428271724060134312551373323565659437201277279440751923622510793683477066689862477876869130819414966705873280584222758698427610575293266394004762776626605546589318887408981011060249948142119345404940189295301721608163038382288170868633552173990822298327204970448750495179725058231661639039085717486270569993986013967604836193557554337945665782080679917386111927149206251042942668066938574855848285405620408187014687216686554383971325331519876667450406773632753680159840708470769055767381358179658762000082797894928020379960601501842665695474313978774122480911987273981492272913391924087932205201364028684102611854544024843229377348948314752774578495608264671436232847179714320367907083660203529568092455675960319180378151801613562312231576309034044340756415620449412743113618521938885358638629662176233124547089998125724722905976677170809414794364600135735813271044441861415990631470206337477213163183960546695010071077191639962806927566572561897892965961043296917725354590936833639073870800351477386606551973778135820165032075117824381045078917930845961809687307036979007162349716345081768240286719605797652192165057754213727923915883034081985803737677983404844952022807276985909092951877486589595245275563292332810443353341078799824111547605681905732769338669015666946938010835791959951203347603710031391572286856388912199020012133953688140265553113657105976016955018481270382808223476779023219203337813613063110289935550698156745612729761998148836396505440751385455731110915441784974411493064113077967258855170398425584696108212565825294547693509890520690463242704602767041330579209633408013857112892350588511100022107707571223474827795958650792465097779984654528478462011533157424500551658735337089512022549562107330885102284291986161855980696809944489547409040612491544079532138994762948704727423963464683427001705656696433693861143369755091647186500096312610479779714435748455223108613495603200552659681143981402722614406222235251727896743954116200788312217377391121279906897625206122647097646147622761423681733645452751906401000607089885007793360494376472535543415435314173568877482564619750008257284040698044585891072405670940816376314036624252748288319704888177097606471006631940646642159016634774552639620721178316908428208576488507541967575560628092132265421071798385141708801138712791137767687373838169824499002065679250107510074601012188097758481700173648184971856671634918441984328799619473535518031002422804018487409728042544024666156212758618964378626132133738412513099041831954925594193566543115369036207076802860542136624980252750041117526815120791947109904861227559427962522747061709858969826646803783071803327688488803978931902714416276340410429025925832579730434869823531257317867952447856322766519998061007635440057383896110735795762962599103545880227099828318148176535658824561132470814165801793223627556403788462785526867265495642767542637981517870857329254419314121066106451644981753724192186446042171844486361886507794033128823655475275900792569439100130267941555951410339978665269424306704903174459098716408014439027157188842603231476627219861822839419596277601556854576134717403038885933353446503698153518926512892891721456274236097958877495818464956059888207458742609772325742702697557416360927413703328527228898461994426567481352831410548265427325341661646882676722855661451565871424181554853694165089870763477640329154750344695368239807689886090134477067147315418445485535403565626328355180371498048257521701709277709429377546345235544326522402586601708561416341099928942572562444719086583157437363430349736707338466829522315038590922734216027103375058077523657907698791623472163850624335331303290043182231009700154660391806834972282664417568979204891845572329140942265160366492423495686299870837407863423959502603132137591453439075698425673245250930380333952192420052170249647032392524010255438272307186185534725856493994859241921914658363271210795251046451189825838871232175117718990101596753725375541644522747589446959848995877454413516727261561738051360536556484988768601331842807617761987950299098412177401922738870832188374324780542542324405797542823029613429486759149120231671924856035869294978687990597595068921587194560417502486159910742662607199974593486388053010375304388953500487667632387708700174664051233029228570157987982089157808735764148093812575108955523757653579165985160647325728519094038866117536104287894410832494238480532286388719532171464323828242601055573904704937001351829225710347988070453094324220604606980167544049769380175008071424602669086083708943581755242087132623453049376073303479779809183859318537656712128375886772426671474380633835173077202266753245502102563116231968215133115574032581777087547520177870657004270028113999200608298143918517993968589976901463538643898618571696937810101935968958702661864530246492301971867627618793667926035556327644195017727698030016556662076696275206256498550077059761001101460606858506215844630764831647393095410609269421957077600436078632514589846546217110224972184654431839153831678329429704002132464980653303480599106982075787331923444651453176347689709573129827015273744848327094630848283789863837396308695582176112223572480255237530494166961791771158182911456675328734178092686308900372426396908081005071507185986435857262215355158292259474222557012731419338815594313794051181840894733618322134000205062631708128627775642331206167181133333751116190544856756680920940714265995664768314056191104644789301487817843886557233029354407117908900154432594764816955281273403506798951715038242249960621046306255981756415376366229157098366605263238360295008036205215148783604124003503392194535860777073243627338644645651592240771699770894004597911732243135994003951887038503529610567456269752315365789232043091436292618726017621761402138259974275733933428468924697984164982280924086916504035453127964352449666292397215700731744192701642802410170159256212108575477813918968075588111093341442141665856201615900052303993126632268580509930829792598542238388649918416829236969923733089851285143469329591309663774611237354044329759419340404630333389427437578521497725699452353337339897215818592113696146466893200216166925462501048139066466896417485205973676351906792191467817495503265809857407900253561915573407856595370313265468014877759159902891413032701236145895518429027152510611900217250847398395339100811566544531474548750719064828093151484000987332308587065925390387711238022601156096218552832732866026393048185253598987929186223342664577818209619369577925588517357649105098118619956593119202091435585856082317496637670545465844594066882738503466493768864223555065321679735764968232809662232570812873519753433080056892195777745313109689432384363625066893601731144819222041233614097601832018705055687085725026387588405828905827372296706332089602182562294827990125066608072908131832514328338112699766265309489387174365687152376934799925681459346432712564038052815604716172292981582061470251864370530224748915788151172372986894968971626112932238699498580205865594613843205012335415651958206508158458155833709560848724823191681757764118000217591777721121952608219435915312953804775719486138434138265479658919752456942985146633450062845318555550623915833250873931608241373026592200079406816981860072512309765496513355992979724173753539448545536113499883270226607690281580509136660175489747054923541685751237879878429774631681108143997881224122311501798028646124887160585927936963923864857681553558676478262369213690087385664093697667688926298957470387407941613013680964976991623102299653751902553086247512722428395901945687474208782655857600012366142428218661811970595495331574752212196005081639131785098931185894506966920206373151143983203974897754233317933037563772439791973264131785453040643900808182256694468295822199594607610939130524117172875308867776673111820033217972020925553077069187000064748178405455450261755470884680183577296996986152892718685171730095347921136365512769109346236196093839329362971633361440717209849543930852085140522429173512491428333000958043134994851949093055576760841735976140173089899974765010377967494969630744483549930011197889438785859791602555739154881572736228533597783349649603391690600989004075866227344370841815688606402587806924174643045136421782996349643326213271176780314164749020731201788448538595004710961948554829506621060916446611775733967194129885397803998574150398148728890361028376803025362724586970641693856255404749583728642420863361016491440681268320185556143243202792014467474358876099657579143683591368692121770524376511881778102998436436520040618589920225317006208090457562976805603268085436126734934322962630068841431312002549956128536157399948808739009345448727717538774694970261780383550721920076733277498428040157646438024863844804027251213001593435819899330462303298992279274610024473129390206422562289535029117222815335580718624194163829495663739533206384423485259238052312592496828847591114909918156333152910673990158997325082817743900975874166299919554627783693054161038857199871681905539247244480063571159231427228109991066747478974897665515400328506978602258612352476938092330397753439911912100035344687274886557357703256518017385873380372469086856008011055673924123375919668066763455040335972942416874174687455080617410842661772738576434782068107631281090234387968321933602882965978105658520346979766771742819475305893876612097239630939372179014604356875464861061913182554863767285183303872158251659184384275912223882611126728129046033543300023869106673304595485170326211640125163896044520096341654867103003423839359149451224809363914905651861087971799261956526470383946930675690211370022154542461442156504979137852821368938696608948936692433342349146849344327434771023967471897844774959704558913902787512735767710435010060610785576530125389552387978087718187444800148793576360626268531536633707988917114121175673511746368239867729977799118709353522579935807406958134538372076759515000250881881749871635510450604368646113203115822210338165203315010017444208428482989736618177212734990319047043461814429252528875155622938009673942427892021969055451401500274750195805579499144418230189006214874243431453569001469244570260912860351967251679697276213320931304645685169347597726414875418983177868917070047300338486034604882816925666016587497016363819327322807115418742989991279043115791065371265041324248819032687178383591003871827518127936218643636871932254328929338095476944303705019068513271384942494944137289784836568295942588428626782752418865111967997135966606254487017399490164740509270228120380531368513349790425381422033170077598269965283944892950061158294247274808470930912308137077747092871162851137448245437736897118239611771541980066675024942146576624633370991656095103302867152378700135861413079688752092981516454167529046949888642340165797075077892720473065685205672318857976382747181547535830275712546281221846126150094334767228536764702070819199438560049102152796540546745254370005461709850293821823713699973008970656628417597189482480689081444051199555940155355892488939389358665012363166070912468179119124045190124211940289976716011293011914199085178802847977225004063141111388076368605404842346092300743616037544389749356186357556501475630203004919395626136838364444672006764066012159514333236627197712955391204382108934127980008245370350692007630658506123257370418361591910600741973724838016611771575622771675945512147912030845184160996683769392887006803775312359401213004044918410848583284377556923816938959105564524504011806651356704485890434594526860134828951805211568354547825498795543136259000927620274745390690871047934754324141789527979668684222378616685970804259912747018512785044643117037276596572392138904229397993375588446273799907060357517629394967509090055960105656913951103135291348374386489689977469572060944035081202817658265991367257177607009549738463067870543786631260234797480253238894579148216415724346285434382373450846986660357959073612184518649397747921567350964678736357538104291315842702816416606038067747403545032050318986771588297472257655234862302862904407607700391891404418939897879730992420809211864432498216327467265177671150916585794891573617083483163811988062849844425368707272666866623410877673588125675829392793546213632605670990634410698210593314864156727944018954609321743589488207670986477291089275794368574950191517785521127034790602713425664467686157837891242430356346989539750519612305314609369985761610513198779602656017645104644966091950886552097889952423645213375211136042877183772614557151616635997884202106794144394798622553012117951233589129340092415191976941229418966672469854756447298912443143428646588003417143056089296945107310958202417304745007980842740512082812375693167795619351362052229347892295008275145532962521043117187239761304278924777207034229316815791324789349443266308274785497269362518686611663618360331745281037721955269498822260818095410943360258241441524508693932137674255474011767309844023606763668995602733877487313310823326251375334359343991554857362105518093104570369359473111395453463334207299330639575666154647905456038930307636031604722435773013313836688463592359066860529879593616375080426617245579575710650100752902743786868133311748491673250751312531024634155150939637182872857183523880801601794487041754351797899485103469486167429627894632284973072568799658547859340978906052715019833323730822168565033557197847577067259567101926499933057864535671043001761467479796870689107986030900161642902247659224546409871370307832333201524039427047761012962539647426791475629822686446628744968991975230347891713876208455183661079911256640484989599230814144645430360527510564242125010102453612154774379123678604558436209792143827177020010493229442774461754142076103120248713811687849917740881897737482726545843307118050434373950130253194256148483841637742379527788652306584119175329848780247448462534016198084006476146393258788245617581410447864807402768021532058733972404988722395369482319577449849838203313433980188983632780848909786352562374314106121063330076853432018713944913450768866810705955835221262679884841848936764524680937138810681914382726813880800442732959707758041047252663879348953219648961776892092677355789043995873423544869036899605230518335742490325875573275137026540629520659087707031518133859799578955058263268606059035474188234475800999603601793339673532453649809611442212086492592117402732182024375979579906475664598257548872420834770403523167740253576284938427632252175642193512297487454545186930014218674460366977053943418121547171313684566305499025507019164491836898769966045768275484651544798462116998967283059005090546535943428132869611093954893044709948295625264965552149338266224818609576897532111341034886459485366732875209099659160725336070782798197009908666630254223766331570993957170649122636642078468442130275082238762398746544393017683117278960966921122365047459942431599456910624675065512862743855856456096716710342738101664591019374560126811203787172076832440996004418611332947871166403523303535903373601054459595317923199821908261607107681019920731064548305288557215323602846600971032325863642827241654938103855069122736123897242288424159414628906693656766153102604348029527925693974245140338507999335923074261106595921475143909406864209067918300105952909938648806937971749300564362302615588127675843730840566842247123784754156606729798823067936255688057843507904826592537783025154791845856557480984163218867934646973494833439929819307704966661657799451727029510863659330642661465746583950607476831009263344003153431759075196066684807804823594784731073991355429109256965738217302380234776932564164305723374537227264315748263677616007959015484817021504445686073582141902475680024574936103061849628577289069622756012280566245029066351927791370537863472403392393414390701318026807341165491898014645243130534510756995746220735208714521882327114710351668194157866698497967011484920815309155617955383673796965508603425697873375845841590493233219725754792755913650453943709578701528697989179143682732196378865908751166169205665873620247958121783269881452602336941756355420863395913280786123293857374396128921615270280630455808035897194114956076064919974883867226766352828242261931000002867192052355848110124274014903678260172287764116204190940793464423706267829077662849764204524216656176704815734538678275608405879212475772106301552754505527414969144476889958879486525760434544761372448962458387870726355406065326516222020270535437625177203958915600399140075668640287907364079403283135725788438158326284367827751591595486186545508868922219205340766066291177501208367714455485895469521533266551920327024719919676303186634760142397904929340489149126365997352728917442560560562660554683334889495360657520855400913234815627442664710475208061043960885286581736846238630959814204702272010411898986563750218713100708663938512056326842615300092754028522111802594602771586033410352745944888611775826330438106155493256873229762984636272639834173654424469319676538460883417246590871227492396263805342792240599497447649810354758314780739741820372643859932037055930334293381010606999006403326044585104103280235299609893280865870849889919209126293050212377224345350876769252518250361546854258736822113111781275712779521529779657735891030643410084868224291126250828445253813722490075624355315918034629962151804148608207904340754774333418286429226975269252200932246672441651630939661563459473214199699934611050856438738340383867166936925336810906596150828018147445773129619802748732438376273040631056806345180920705074397650565389468251030933569199032565824222320839615658874695724772733424921439974698341630550169165554084164574797355239415428968700117077106506053967716396803447140631155162636992159548949463273667852658630848234749024156592142041284853943402907159902787955428681085979142942388471689475892046967926226195112030448478210819129973425120701789694477927341504942573916045755210047443727051621626138424226236096440168616471135573585215290314024646599348594897431323999112189524414877723386868533273732889827885665222148282801059174181807373104587829558315360565052922588498107327595914259462181277448790135541673289134916781240767666923790794301685972434154441794805294087964717599122997818760905054288997080124493225375997923257502546146471664919622868738596165065914222789271795497371801848029229230904191495881322836926220969411984376768813814235664799805071487370039360925306973575104936015262646903245857190103871705515788272070124055385156792138870009594334020650629904249086569711763825241597774078243713231693144819341478005467698138880448807123682224405226059286222345134434242155158586568070790592995518177322911604413602190690289030549012460006279222674576174089422241823470272156223785248573729822678770071300910026623386721512527250900503826599015519224213790455645141969893423790862561272373845543474417112614235119828147058102121262133908210991152923405174735560692830137997941567155785865068633498336201122911178746850271595314552593323224588579180336945004318076664996123489099348557715480783501185246382764542525732358778587349524627206991785755079830764038345478349407967230345165540371631391281310898918187392637745683454672069897785015915297043378988098428305867721023173548135200238087903793917442414748131686360433803658077018514714836714037816993536451413928562905270305391235087732949406246500688945220045869981381923449863103234612747996618618687735945769300822066728046650339764999643733234604351189828793810098358480959360902356099114939727809820418789887813013171730522402183611906996595088931259297573888680242944575151164869414979362972271856492186929630233967465926246663250366839472064977633178795966975056215113867535344672042218992549483712456072007125478547443387430904446967264794381245929770322980645948257844160224624841789259861626513235159243965846842343356971308952614904495279512843349085529207049907681527632217970515907217506738699777847535291474028136825288581682635151850269398819250556839043615562963922349736099775844709432699567063906548677232856300809514631527851238313380110889565332064017192174685622551524169820935018786792113863692858794684256366979740045126376305158243938251418444950989099136496460271286599862157306366164850233861764686038175295946256543130144079300304609475486128424733235621476811154873635407526640781450125492593775336745482490103266577297084251078644003114932794232997090871814571936584669037397848062804299728734704069445377699935070387958361815328397177656792158978125743246802580657179819121275270825347240213782654878289988675613220810111110786652894430862594183940439360675140694152359610692600833701203604557245063770146547236460202555100084377326177343953686769864008401818292388794709472155779258055596775319393210828538957630615301149021080955465940247560611592375915462479922090133276021487925499991591148764668492351759685588465311373203841665948354676602664285071839319545137892123151285594604741625939342204065360811437717424774597390243132773879664728654441587415061197975925659272465577393300619260298272206153616122464361595345447396578719128549306087822771758883923962677810446768692507381442248488333171667711680721032188147369822509369611188304671622133712196490964132375164672618401364199963786188747448057162499317501668957785977564846187191054797492834664097216858203761956787094300863924550906882424442086813098888391494766934950152733561110070900446942268907698691978995654632188812301926288249048361363215301572637522753656394701088035672760043779665410217113451759992916066195440106073411472769921878114947772822327857305209404770887929170733557960769509615795132962266307579416163077226312589132474198263692060727650731969020111758125285728019304946287953080337856756129983220835916979809425202346677868923321797320448436617711946585821144948311271599195821768032783895838471485499888539086934578782017579287824460011434320442070597421576801034359691264632416200877688498740094982023987726770089390258512761761858676232885431134436701188012543361102174724469751152935072552150195782586195286952726198284682954567271229762576679413234943292755061608770528355826729817168321127615707918026423548750738154613937323553398245059564921144522858597390578715663978450246714075689765276533117612452024306059641641440461316551956271289894692570148074463225635688893766024173329377323938208757473268853231423902344643076701364900932148015620568946837141836478231600452970049890163172816809117965107887251170976042469510197168517851636901223061447037418919790201879043989456388445459057297258125872887170279683217582966475626415280078581831202613360642170199581330157952278199619559007407260331189068751274129632925690510046333386845650167518757230049804663709590124830351636322578515519937310922584418854508618534047956992805368586381092525103510198152588579225137964448234944522624860174915692368493763726781582635081273743283918271418738669097910750313393150301227248016716513478458047070181258478056197742559369896457802381191267283042196803213853553675312944785238081150771659217348796922985152044426205742960940217161343955927395548828502665342054645778501827825838256408349629852961583474719160301335179509179405263146325155405316772122828125204950888461368520015565588114990890138643512300717552966797424582736609494039943250781537547823254558106450344066242028073065655405351878801877460067985865317029441462464312461262359408166665869786849678355047121780217676162890677361061531219936128549642414969423832746105739988629633575247378362226804541843196214031809348562565325610426938242760212789630187391817852072159530859154468653775598020408673027334908720782241965518991996437691057623056995345096118149655325726520665710316821178972018161441117377827626543213130987893252036537770604872000645480170129809238172967000843154402721978256316985023299115119813249332703111174889290983494335319196255954015340987822362400281029018821840783740287975852579122367983929116186008019842476359913197537291100152451709196159549709723866965871203030332837232126229341423566028312353451227445823966627220536985018971258370279185597476907270031696769542103691524470822667121034979786692791698824535764008349676343744212205945721563842202363786794130162685938152757461125000774536239709879624298225976486387830715072924934369548121955014371214385662883193716682144065993717874631722834110759660961434208776143841346407196372891874853038532019355941121101742269574480580764320875426096284734409896526711375630451247392157854855092177198318768327651548039067093953783193674970763946788432032702682488410378881977921969344759430729792826210202077294743927529052697428475389930918425847467197582603348028768688318455961590380012169594018739228732035286516184176351441365384346113272522190744478788826135325707830787492779513243815764386386837187503137884878456479801835599316393444155550233220138816945205730480014750583548527616811954652587850496332727200289425247378505710658080555427488249109216630065860586804781871043410124137279996004892686445403916083087578094395046051006067369731520813416589821183532302528094243826561376395494429002648562060291326938503155921735393002308907127130430487627298894671137419279356852750062781880025063575981677238423472405496852371898594185570150432515787277175561679401025295508681661423218134494375583178446275849787047473452845706794518286119286841074874755823713671821221484682098075421817681054086660904181829276025517038342062875767779943133924736212047363558127806514119093261597128616963939529968088254960641994467717629621646216843981658757088604935661840039122400622302371704120230118659544276487673027808531205358116917177020758781644114838109048960290921066023070504637582981059444305186543105109240433452719582173016458709530554382895153060623039670305850879673980500169651423026226197211958074715668991771513054893436914156721552583671732511893321714102943592318112380231232914198564081622963967666092085743327725398866058096508590082727564863844382826140630017355226731280855608477391298051213136626101296011373613200364132648936269771533633019872907670962223002905816086285334957884876231475489876719736622216164713834336662240872746368702969691527767844112290953219119852639402938492139937921409235139060184951129918735738299111761186765204098894278025088575615525186196555027167840844830479850326866660782446120973139574102972856591148458933985103481915896289602870614371256188149684327016328668816773068369034904632501919413631442862676893966003883005959289288994316395488901046348119595425577714904777256602097114649233720675830923259613761086277197715561358394140572399486287667578786386341908815495772310998425296746736406595764876547908179125783641877899739554427051732050526562743578349538499771169881046001726105293118217561561781357331779307562230599938151092162432628956441920282252481751312118157363951711210145263580396679668760277739137026843075118504364332036316827957504490995452812448259575472469460957085516244821225720611107125156708741772261356465096449277426669422052313263119036042136680573070311288509244222626686479571683499573033204547225881737824702760517078661170106698159043871469604674147318260213451926392264640942374435156460808430954174767506928393432523749776653763004877996992288568775380775676645626146850912928926747073156337241013645280662214454038624395367853791608687800126956137531715506313758787907435357454214914071411310397086505097465726382734999733325749319758559845604055616043352365439316725248798746127949920274227907569860570360251768075079190025501515956554161032199401018669888839337651624338171412795297671060176765653512410810097949550148786779094901282690104998863095213403115135659335967781399736547591590972461333049675955059940954781432527781930461661917168757625234885836059238638640735125388707720839020253501481880852285935676966949300827051422435058930775655164375258960073524913228521516849652373392855650796903763584588829087215168706648595957625959015979642268193353150453479583066747158989164838108519283214173435880286848260355350173183010616737804950998003835901996536117081543604593542076189174378054346329100934339858510632664575275158751953454176587440436479190409469045132582659853750060251087572932491748676946352544207650583646919318530109397462435732426135753798012756640054916741347399709283389471200673031648528734503468626472349683734872726724351569353249832769365077519931198139635341117965122383014806431625049862813906330190654284841011509496172667605189435886386409127970113534388402842339819071383384770968953990159965793407015001860223421439852854780086097700964054116810473821105746332667272826543864932781272362771803930773750178290407069840041600997521062560863618463659298208423880456854587841993784734763342203145012175854822166569146718751387006291328374712485941817207570096804839096940755560881993580280112819596602200323450469757402257723728311226437288343313496711720670544853388085171219948243910980634587523799608287862489802698073773743589664039174912308695646726062319251229438579694667134015939429887176666973184381871354338152850114812489147671725843407904597378782308397443279321044956801240397933762175797568308249222646485292699810097619772421738758102145366198861746134632729948187380831095969565356911592461798156514574779066264725313244273459965005986700959884139691376695807363193311174956165192180019512828920949337356995495199150874608689409422676712520284843046713963569466044065453161830586948163225002269316784607868099828479528506845298490527265136405782589865934092396455893102742950806254153109378887657408660249814450417167102245428460987953859919080408783894491808978066495586719924206175713779944188091494227439205154290629362563375630029151057146044729914496074334706487172155070659208991437898040982849191507857003858818362875053171010550376603813987035104981869871491578042242846987241024373990871159580333240554010477201366463525564164196409177806341586720019001032022675572158767772315099778934337576031763840803640763499505811510443147786853720060950705739166952211786797954153890655515876722259252477347391196857801912692124205388013659933119109928587660784492486223791755953053505070175563841216502996440982224634650595445682146655104376746043344507964709121256899187047811078729122141414161220988222571183930031118616458174682939785083313666868473289950302719008059287664404055372551500338960229011883385549494560090347078189169959469293279491644733591615840735502853559974973848131439111002111009616328424475866745201381896295064020797779220240563980092816039563203392070121135186231336372784925155588375253792105639581687376512594806641694170328452138643747122996577780928066682217703728266907043682701871471069505606430957182021554114259441554256809037360032474589027989297117425665739213296553460266282040895185100066149401858637921364533048747376050064667133607459017662656131314096827497633998279728288831418853938739704958604363372619194772027779770623730855463542714114582504843609755546919586245208783851124697865290519564733321107612825702758760871262317651947982997455129304892448632783520204140385557100657540870385476976006811405635547391363343966629299422502705845863085757482071844618382909965481507655272929711678683365721912781791743247275618904193495866634868409395699122485438598144863154648001363799377197813539832093488540286746750584362781047411086018567104021622046551076980471635334983703746194168185205808795782719931197549818831363368669645711143114815605826857431303053980895814868964253360141962133097419744136290816813330117961254435585942262402113177291736533096306294892683283326942738665293800686818553893142224660121104084174661356867257744233794216300626432220440220036910715754228987175721023087274761501279189773088190025375187543956195862143961362606089863155306035189364116328540140548467956715377983142079747357239877197888851200163171464363441832238093889022844062722312177331562418836785718105643047327470959551072625769307597368722529774807252181376897049724323472213027740985802742290154584698881449041752672047718240373759161920135569019544533383681828942280653341334311677623398152641158445777048727217066417483187927721894445593550386289339994307844943585153299376261124485539026987813967794256754995394566263516151173009928503474180037402704843042145799573914031355925827485013376524883042866408643726608408714341310283821763566575989078676633147279489463012851756416002472800517003368780495736423847649606413140506083601228501986066598596879635727470401779650000580342772047861252775256432612046057747804769559689973047530910587839993130500471671510719182137778855824854317083208617386250430297285167897196774953036125734549367717512616248724439096112253136732067279539037449826757653842793470893759440225729748072733433526052478219451465191204999685950071486583545297071929239207877633783121208244535107783974354858551238485769888575645684898994893650299489640983330406054792649475862834114151126751416694188854688369893586125268264703897285060247884589847951167061760502230445057270538571782038118026418590209109061708842533543963437228958820565659158887036800531758166527613622256147501133538576545528933236059653304091077278138915274742922457689405626706825477444659363258266067765813926626434522874198351790534577670432326138697805979494832556407646785405827761685100437607149018422895562393845852958882024015782631865312567728972920895473015834598415910645785183887730246104072754344698295743723505009084841085470347754665272196968974340734561533911438376057442470247016193112670186788050520616860965873947422935656240995368699400957391189216881040042178985021378963452997221419343554564303981697204328458607962642825549147124935309897813979076259896406053476548150860330736884402990013157706152597373836813021621072916463164695191460734435051389526337940592682973804227107631650282116673420214063407118714446675193630463215326158000408227109247059135167050737309004927188339342798754787866572041766589957858436652052831049420911224769018742703245849057092103096262150756397084891469503774973727001752971282911356117995393985853127417864287306059899073487868639223043502543543596227032632809695797836474110507726353074360143393823922548537749361993041251263578346389016723041532735391375864250520214175833166214523783529290798773343548327237133227743239459171826889493880942701085612518410969642618369814449678047872098402948081292574342353037729756450881786807275971433098404880646667558629174457622160433164613548060562977900106642573508624101169066278120628991490384208423169725411768155949259867832993752651809648892559026064775823220103403632015283038773702063812355970625087026467005460979639660535523417957466862675239494097824963055442355434258062394100217566408157463832994235923428020379845945789917285355987169758372210425420548916149046310807477070363474406089600869408270959714912853256052142324169200733474787328695558895931704102725374566521436630670111680825070806570565095083475689414340641762036203091020582110705684540975122841053881462291306879142578868033805484730718443597400711377190708914684978129829247108429818589110549160186223943888518342802386469047754433936273011095267510272683664439688723329988698319674465735910639657003506951575560506186880451079132563298242692856656123609943569344353674905998059269271762671870671131935395051628217578963777451017690964181894185191837789202573183591440201742862552174252565009644984737685060346703311768932149375197216912689922153428112471275650564009217455079748659732533395292825350578549535079679506095373178415400525372297343451108158445834549470124498647075481026501987615500369295748375680434822446548033601410294631116428782501267792475566266530558256928451045491189071927849653112408992689110832877263237325256232277533542814263432982810368803595326366620400442408489421588131600314267775768570636362699265907388548761754165647811630063229469417198680192990311451933116607262725261152304430719014334471213608435646644343674422793584071313922215600889097066545265700240364603397259717523615802824067038249006027912599673431955044309333582186887471271518859551998229724992829214727429824735275307528365428845037971829687305045228125837016983922344106975965318703230374255088916186755932758691389289878636473431887077336366678170684039244337871611605028835275867339558454007010227427008202089718386457289659139537188750119825830512981586478524797327616266907847760831669049545380102242026502348690085801450263223458123723367393779023698399146976031437477415544427524401148998357997834018971857597235675668987571769543043900555317130364776225218002709343285356848330265944819870122724439254798519696086560989701253726987064220573084857083381329121348367473241670933291049255323494418130330813561808064447523898413528258463018129305227950904028376788449808320712888352041851103859549995260163824442753710578246240608253349699620489784533160925783118556721220752029583424572888535671224418865697908812086014243047875359945622120719742997560992924590243899571514177070175328892769155370357703505152067171235527605584430782718167373605093618892178091715376553115440895365823034946943912029435717441281948445910968832033293477100466295579848417666016696843509519104939224111020974266582202421025910405048838268729912684147248713723361354147076387052709347727205577330504032270506294698462268342401246137991265588359087415819875646416030402577940607972588583015354925409353436359554062027080112178197947070660621102468917410773102113239831096692463475864626297056866624673286146712849121265918066612240618846074298371959542219750609410677573225098885987545915120458320193915878076553559876630767384921283653286992574420202117017200274317775905506678325374293370573608388604797209535705535774193041039811511505956142384774552613879252540844814992151570198857774657757032132478295850196223280158749814477723135542386092316132650305980320096184904452272122378473127656636477599289741623663512276609583592503340670476198910955036167773983841331447762378847417529655742240021068343933946623158207305153446477669657637310850047391215853092098593971641753960069114873200731070674919985561360796055584855520603491725722351530833296358069939053863212938175662378667658589976059325257793329867161306759525324877025042416145466445652502736633607850945423731163468013416419588820675008476075493519453373932445733790083082132403373827980833957305305463547557998784392601021849679174575976654903598629397999573951019080377597024242645191833789223962499061790039738914588188337895322814319731797627722926592131474610987743329693303107484501676411400232408174429623847109068469624740967387958341701176118471437958905255832609916412314042227991616676767513285102210861234998241461052210996480022829076471194407344801591727166539870944843399574900320194468647873202443473828825252691005609570890111743863613490816385621757202271060068091772968160511207481133577039893998049512631830083621791429659201124069090656846166143419041345419318800059597625796179455960642428322099624251234021115328730934621158299140046871267484311326736108629888260621513765777313363044915764177432465942473896925320259749999633444738080554810605505426650949455680575443381726402773974375755426787039316838577853197037753056261127581967241404125096153558937153465462566994909816624772740694318750002830772790148526540895099818959024139792423939515625577788783830115139057848296249920817903624621239276078371250425734663279610243053610051378237212593673748258788614795326847097015324282594661616110959430756301382041452493335711297395697680825507667530951317221004237653343576485767816061135767548020325745917184618157691960736627881967473027764458390207592023976471944580073972587071176651016351010141120142275443297134759139719189312534782196970353792469030214461119168018837045945243187453818316184810290596213654266784211952258374947207776905695363524341678599454187672028625032740781922059915026674534393821948577095778660078124768217457874836333040434560468650576230151485710128525875426756777297594293746470536633374292013199262559323864450320015502651002852052529205448244223834921429657227498038530421223911949331300739319372592117519906661406077347624884407485921029883167183754829681586104550307471990704528931932858927746145418836436456661380836206559745641182843914449662176441911382082936870845246521193460913901750885930210306184615956905303645323162784777911960630927179454851688279097412427159394709340992663170994684740692603396405248343682701572829355668778390532563917162345034382282962563825606209869471886573841119240562952358190501809643757726610189518384036700038152959064589170142089861433719247564466081200283041101762594567653750129802237473451659145980454389382087292518813432245647213911521171602670312702448109195589561217774035153814549405042068192780356582921896667195104924235829222335023347612996821602556131202471127792939366800762004602722607815637084687609194879758729494564559011612602592060660796810662075452771506631303020121716466013345911743459898421462524594543157264969674920319734880900541416180903708574916194670178616253283994813559640237493604841010174551357417207595279747340113141366712328690577063204438455825310443598484775341980108824479012450014833580101732227606049081781988556764531144508141616378884819765632200991560117935954599207043787710522320119079246786971433957124147396458650112046690998698412936249428852822561850627251687567767356972757156658540373621037837820079786760907798122977402858411904525499745237790096531037019112387132640067472974825730260732888296750180209728584600084691042196568688316604852339027748073750947945263303779573020100751816085514485175576519714738291158063010509806852220613218657877591011183693266823454940907315473154843444485949534248440856532135495694607313735534232367105426237928824700831120029283983786823999054473595167449312565645642294441490524391095130213191645556160978112807193149669547407925113417848204177573334884654727992582631774904353091718861817282518746733617387088183476809234326040299242836292147482923281930806295350609414271123596205107664658816382867656201385013046668032758202142965672032745320063478603523793337513906170067904598815765895388360466199572080950019036734394853116714674978916179093876901769018580589221388576513077413271453394857980057099217608436010805411472084546892589816540694375550142296551190390261456622094702622332605013822285610321269020067566110991809294141754859952706315004776799663686613189529531297640934316129915904649160543086052432649869842709162205636172252981879038231540356201531307982944186173137647344452480691060608754362735081284188758498369952332688636524042857600669587376636356949954390002036600275736489708707792240080256096122538108968437760610006229573904978401598945345519525908634131918166586645583697000638074149489362930848424407684645644689796060739104492688641464698553294141265806115821964499926929432336263996174535689571415724372871985602792874939077851554330148597228386598772058458062509861222941574499084983571424827797108832474306851681757748414596947121551617257030648290517422408495605309591494651514788073740872991845137728483969116278018606241419528807838607943749423473072138328039841442321347576097807094337188437061584515682229360866580949280960550317412587952920432470309155317509658185049280690299855236694234679314277660727102928421438681047457567104748521140812900809531438428885441039021120123531196254398488566861314777296356770991133433009104960064350835623238071528404486190297221586466062906155746600217667042541581006062591288903425522570872743984724647948026194487808273655043421200328961012628100340458995041770236635850360835466171519800405996489395274845430124805976315483718287540128399246815283905548232210599997150155833146584470900977050311900363850507338194615825943513425803639396358309064704471081922922738963424148748184803043199115458653494302028944633819373329938140332484967155232748326080513066688740158941841332819089624556202004169809567226745435400742438659183407515250589103728668733504752364636327302992088508268040544224824528199917924086822166248140543434512489983339805336516741918361960874379778490167013614381632015287183604285221685525125848231171449203254571288248403654090012463469090040280228357782080220586483572166669200187359855613065757895290352988535710562429621770675047565146998966375052114833213049326755659234660684933055054165106884762721727534723868675083599302953199086165945627533244073955994534035172359319397302865059257414658393636251424304907602231175963435110124231733600557111068934584557668594986657186635596836535502910167860163837807571892987986788005418193287467715296572905546783408026694449174630413238206268130741072582135433456999498986779041365551094636266536495899646197691547225023059833401882465084881613064308135500577494022788282584091271853078650189461531298957431045221434729093819383605926286406767308808566827967153727458182450153046394063255357769343808860289281771487786497349414870610239136628978485262113302493157775633968204691550366626032147204269594772233198543516918142304031502496620136894148358797681283247109069643874079926695841809980779564243675961125646789164390539368276203277618149883468841587088886188833558846312610925637862046124418855139883855381943179251187931780347291410985720872570863117626014493697505760687945682751928049857579639011769552504843550704598636757817236172335744682011216340434232309235078966419230185767792834396630386597588655195146182008658280136325707812954021259487642045046819709820075833980151234443375795303311396694388033225629409174259445387779841875781191719003377549746183424114566326044230156524985834788118981843620722711652654523432592730799336968962904005385960648483316057122356031675579290821482009374674355686791563554539536428417370493843683012223224563329309842251552245752505371760133301400313864588591043303382492870642648063882883535665018046042893687130260299055851360983218333862383457861292976960688708519676072169081174798714699743839372466166701248454186107581161927212390457680270211138422308750957954952271933961578627958294432437036198902015442876852456386106512853836531300004333223398518972110324675815765709286254830249697782890925253628144453009373803480942934532431167572257449892474455686833633776183913272270334771473235165265057051269954231388662079692739632164676860040197675671824760977067990080561020170819513529643474877240012957513657831427332693392062263605072162975973150461974670878492459964379394137845426672194504112093032970832854014749027082979192599968464131329203092525796296354882450680896840908262826421801854724620758995866226776068570987640926504218230178326575058255702156182390642945207663393671056339553319925665653114223665083897358455597104095995123095434432087322520611858469700535142301856108449676319334109433138129734813716919211945449431764582248283636542519425882762426966838331124183985435093397476679365670640442385854346768042122182246941136326462260299407978084059031452790045804543655963236920886553792913718205070559921650861469622538334188800813614148180394149786672906585059848544369328624241422572191835737558313836566564106771429568667260256267911293053193498931161350688534522941295026975359865732528035895552444120352833427579424067723411071858113163353595567754865572755783583048705249789610039623945750585662382771324483641584126974786594780476643470707528620780158828212410313598253789772209902837089136297551279903979434298605211673144928373046224263556024923229872867781130801723229253382301555399975149158626236118450966366958792650630000770509730335639223853756485583934685947852458746713314968211910644337722578034936165064424201072743465000385728448133528119304118740939505198348784946900353769963790453539115427082455841362936664944376478199828358916348020750598578223373288860978952343067364258928751322774404368630071635718725499039117500930493198604931394555402778032009002688527741129513288140375443327759559515158143559695872012996899852105315264728701826010629281764334517864061098578562972863771074511879589111364305216429403402161145802700566244452463588481584819101456182652808622461044736363908790559972236624397432076213373374563561476580792943374058224777561593549304598635612310638243111999909264769298237554188223095816729830399072366994577821764935284846410106215834548614698040937394316820848903142458947131081043852557720089361544900703549411709868051914304074337335907370233863294345926284658163655873315090448943987467343052975040222386991973419720182316826410747383109948637267899727492548648073144664706139816092796205487824220920716601707885249536400509668674984345132096060191905387344945823655457523114321574501676884204912428696496755225189884800803658766400050035783295834027811580211066790664536275248240156049624703815978543327682775097058788339958291652530814537386020565877396924378352308076542344252574438749240788294166264423886786175030895683742374806835313312567262336807687360465107285031147872903877071921038122299822343298427556180028410869734414559188179354815780085550227697433290666916923194704429013317716972023475390748094480563577266928336120039860729694100236298617704642024037297867818053889254509695405530939475905063173343682444243344487658453136178554474385701591505947665195788967554357452078917231189586384041468684002031570037236546598590849240307201738900620677773972879262844094686397484140316927722497154521358718563545166526089366017068372365589934324795039850737743910069253878259142161395007666015225532007798883324871927805081359780739570471790267444137049693711498704740761506660377872760411823437255813094656935712887293002509297389575053041128291763197225344541350684036725576624987091027622923428090524275707857965658825564873374613111857929035852364309180730143362467019637673295590746448664163710000429351019740534770776988525840028224832499212721708669295624732336698661566768078389174973243961731244625745108926393167107006191163651655402929498348539786058892053518304786731792968319701172943056702500351361384437301121336910539065322742176156261632562381502373975442385303906064379453483654014200598731024807566005557899015561116921895548845889441085071317892883684791839662442075196599980274675980322057842978208102156959182959710657352673555772696965606506829657644363516844744922460042309873518560226140693490533846969620556142064215589392522915072225127530973183491606371030917504372357593389488435671108971194276437256215615745796665580704930298096138269679426214939442965249532942125976671933079990674787061891891949919564388950728018777420491332283842188524746104831090633029272676575108366953060518231221285701612742185048031692406608050437542179569905976456113288242264173561594648275190363336443911744222984241474511046321200901967063812737769411911021842478915652026462416880806075522897981404893088231710428303927816389307305028230913891236978019981331914168906786262148710262831977982510438841569026243756476381974191236738061378069578592905727562658036781213863037940875148159498299303893132614116179990173062474927201932883688515482565327617837199942964995577755084102120708902232030011447627897888705003032079923698447162120211239189982832413229916759259531547777516831933849540809801382793280611942886209733741643570589677827603104831784749120205421924284777803240008523504999003289857735974015936216612067149868046360520018107654941600587731537764468129608841291576861736784039008295122895598679742323319098892921738718564761797511323380125535972212373484331703745665728110879711275275120196618844517594405562735986742063596796885177101811256607237305187914468561286960623132408465721246598106976862174267803444012340640469470288092067771794361435491181955303878448273282608365719480389924837602458881561007802915171016579017057618000630783681979022380785521699887702482974614219910517622047407115930879525691652179014590440788553504245649151813435448043820480902209933281835917504652074820541072745100453733785812227248050124485009263213277250577409639325874933967900453099466290413653374437202651072862168403331055554052125671723750185375625650759668386157958785017005427328287005358343499795667436911112381956538806662537048946911695877640028159615203723712772381004616317885494008972722817724604537195696831859839866691374410661978836281456499365225041872434219616494130037121005440746109333681394996645545432434562409146706563956516005979269555220787859638691814809032505309135756115074201682929761941617980475059407511925441008675287464045502449843000287947600696617016435899698733597733019680258169249185682743611862547441855580044369554649499133204601388324783857155725257233421789949562334597668480025090454639542791697577708624580770794792652594094124643351219361305197170843528319437467965682262785437119148762660604435583409330582514954579007020541155820892965599920707143249414700056441952299686729903723286209499162992289210402816707941601621446831362718979804154612436535273188341511377878916786690756806803306768646428130500991425339899253545975711717345460447005869293888069606218972362263035459770069524462183074808582378557200396237148502824996993373693648233292621140094166419831169027036898276544198474573245634714625857421549079040703737166187876456741634989426291235505474119985742978475393829769729215609344979530674542068256261519183758062943983786759559543598908185669395988980124037086545153609392934842761114475139435459264090060099336543779823324034650198305332940504402701755970273117877434008049047743189735773710007280104514412633927201838088034232019431208215105037326622230199502429156221078100218709723695551098573106605058075943546203187103327349875362521179203355862563969957707447161307879970589949147139475792849345878470407410384295707823749756630761500236971443692881212181059857139638395784541868543993939976631487492839609448128138442311519629816711740178702753907679226631551773088665520403292848454991761015562797894249640220615284493416404366852905748660053922802646308776953416191232646461349176722942802490390028776112077225626113771754532121648956984084303897736522882546877609932416316007259829684738972171108182821453153300093740351275099247505177371767429239201485666383296801224082146748218176183573328093976206160612158741044967716674834894455251142299199288314771473896006604671105175175091039883205144680630220420315677304851503703784928276035049157979498083297579855215774865230398861197488692728173218720777518998921156238345164300895524956627189611491851937802932681222252513598822509764655248922496414250543452288415597285549104586926988692415257919990208846932483325522280704329031660731222606891475596297344898808284660504284950135983619002537168155514632609191142086270134868697071250549374793875054677779007397387261927721845842290672411424763244597060862144918191111222363892913825292568969090879399335671881474601587974970456723816936596513068706692150042662619717333410539245395793278931104851919713273781737306346700600290140063744799452422173416312260987039020892052428401536628924062971571627737065583250078156958803666871502541755791043536931829085988215431228218287147324149885878831758290355448832511321088801301372928472816216482266624477384751008188569064156588473501234328517621676491778945197598981440360786677900310270207334634369424636059729600626130008396018808558561037289678299036734967276271404095015378695328306401845888963577072189766909914215433327293192571981843923872364061566347433874226774849781239426277264415682041430165528581086214269609362597005415629060394965419327143321847057733923657727203339794336255743253357154317961147655125808779508677870989562109492804472665112400288481880587605951310158726084102512711665816907410039905582243238896010898265314043287228085209038138857027157917971356640864632495314662240845306465247402220930084525959386846331593769720487163984866569986994887673331362836679622508420631913509302493150162199876019670994129588598897376321474157218044291072231012896997513624013322512898101203827806737857589261969998620395445842106302450013361219466257823292701948289035406003781605296580262841144154270353924082240878917110387939331396615911898111908784254258314437593782063220217017565241356847796272632172570795657447207772132408463490956255058653532497592168936452852838789826150149976734276460030406839337637345922010876608323690878826139639968648948619151847268028116994894231036698661414886500015119416140714549856590853050722905847893993302294485565313527507510662522000427151510632036202615794468002502227328415148072587260546528598678716463185387780813308674531316845779853427030615181784914649716470987672333445006207713412633206380501613722829360302278756886582543256708202826861171598370125803004093412964383029849575201912897642853149677760421515469175284078925888373075709290896479633098002918786381746297929758881748471048650381808810634646502315854415798836795411460572865844095688446714448027934355443062727181039391139330121018624787728421889319418632569663913413024685174473062894236049322237118493098722600869810788891014431260276735783048064843784799505550368197598140022887818754874537288222557801870492050133857870758991348506484966839029744924336442109865599028755000931163003189249546745734452112093614295384396063902150474930190850726790680154774646619350852997479462929886012801120283159410840215149181277520029191524699161357161223926030314858393599471986972169389887047400530186938607384610134653318291682563668662513564244955959810491932535707119556085881652094734345938767071526367841883761167656509410685640786048856204255676425288864843801715617627080543367506762999810451157645593702884637741534107619879852126490372090745530903983324249744409925398515549890630053305202320132081616069935020389654756393803017737426919603620106445735353277342374960974492680610533012905193958240145967985254795135024106643297887869372524076410588885309799328833459895768602880199901704033419354340804383023660037916107942782942988307455050954015953708293207205507071057066132045755212035019512388411401492668360069223456839463155923456420676886006655362825602766206145998605223498330371053965002156047100242946771615023090106941112928213285051650231967193316850611671407649949471133913284461381186693144652907716284948996854710700783925079616803009734758133039529023572878839861772857130066251161227960136649354429819142934588132690975241774805436216763650097363088450446859201006673871231871420297457511473224834549521985306570658479925031540246712510231811067688358286217315921004984462464094485003190371016345172696023569154516895870253852446766985580192464370826669570551483792321022575501835981692389840091397824752529431591204985764830834892409967888223459922034923064232274083800226593913762576534069745715244336022201216455781895974824230909914558236461741968587137416112743974282190750013681523235672494623146573446030792553530956220762144627760211482393841751948142683916111051267982811059656046463131778047159813945252306912505563972961181357438431050018986993245080404221956915650036348147837861621677134889217486028644129319514263792349974101690134022354831594819126570708107805393742035692193086961405568571328547170596060244855091789315428300496744488941143745187827031511899707427083307626547687982853879890335077661228229948110169176296159371804956794523847335427970128477309362662714563536072899565748808777218062958389685423190836482810705078686468361873876841913552283167030756348303356119470020369925562856007133942267095818001161883618971777306143943403253025965257690593874105304907043145734700038168253233181801288468467181018301339099230533926498288289593732409853182524947964604307533673051745147468127457677575880677655869020762904839395491302091934674499361716571760022802861921775186850797705235969490584628122408114326713734774569840206487245362364651695709679423508095495619275366785772502226821319497519906404370176084862235528189524731169939258939525082124296492278251615231939693072719800371591841368973358205045501995987127504414026307371152442417781559464992963496521098847976515798486853408910480840933903005458073268067036776611722331597977329832886296543214225898195410264514351461149575503639264447888279839272860573844511188038624616765345009098081189632438499382184574276108877998122048333459858330510519697709723060454845118112806831577168229358598305678227099556739263216910552786232241943450615036721089916587856112517560372125153914737573597049372651476752936233142253652602979747084373065601689070686833466555029560673576270127196672423874021197309635845227946866081745851823050392745874079882598914935541484647421668662257482590181192302131866881621981457666961394060494089284484048140142077306262517954293300822907265579782422141714589134533527721656412354334505583641772069031335130302865985673933458611420206200166340757603729758059452731848573789773980576031927162169758419292606855625328947625627801726556180132054393699817893862233720956947276707410648060018572242770546001573468051111182785553536220628438932779594059323055385564835622961059745969408481703002768062014516212555307763023446720099332442889660336844581486406236325030548805504231121875723022830394744599698746394695637991659558826997397511526875289570260460799501274614338497810289138406100526225878598101777638710070946854208392357730894320187935460155832997839317917016952759966961655595024975716822662908864208780426975617736296963844984308001098371869163523014192644922416112883454121124452223281702174002839125602045884846483415423235759747569237327513127827802393426431212057753235784747089362997270818568511451888591681945322049888995960666300748428082752173551402310475707547712677430091553342156101653142554479576447767667280521945806216489183698992364317585840430163821099846845898530202151102109333175753800707276938960622435101921659095221975201408153598371602979698140178861114283989347212718853654004111292999554375964335298501402363506153773536779643022115616638413748053971791481361008748076684958954514735225684387585996237579770082275830014879966272855457441368402782173392253885795625595391922968079172932662298343035498561895651908247084687514204336716581307647963687602545549976812229311200852385422884889274186945575302903588225982054502620905964741077174822109769825798396310244674976802373867653724233118551833545423987257830776658451072002107484610174484242451407496141275126693149709391392220551307769806539315558988954166014147509342675918556546661234117883660009271038601623250271948460972302307544400881710652655681272282350824246411150231088584553319120215298352284209703545215856324183812943208118078567571626780041635628614825701676429709974474274608698073505871566857660865057562126229472264350112257725080256999989389728187602653086663068321622938538022092998454227725995681275911062425532120014360120127129388343374945146074578061238185402433440653445914553955534446026038935529158332825314101717046101299243959318632275970147311600821486222275471532263424838296106946491535314730242798736347179260094072483108939129244283031778103128363120176453693592480149747433899094528324305084045106270921543308397987776901748518102162876100465121355272426350397022419734409618043718655772250104074837707963793693967951391586531326781476282070581895290623318466916831507122601798489535641044635828702816650762315783090412680927745239788982991557394115127181482983397004347796253632226179054796421611723776993828350607508183671329313332856674189423382997392786929505309679411811635034393365225579269379238603898684875622710621314997134126181276321822281164956062072922855836911511704898464720355025577410017901874837237777183342235018665489968940736060021807485512974812094339696700428617239478546408950572658462147797229281789327054319251186422174742037999071285617525588372419987061782218749392597888441709760673963802268176443286094585093296544324105780916361139664228619516774441852914060654724656031335196518415269292470987261166017501307086656939728384832197958572289985429377922991455089041766549520459004881889996503654705756078010399716304543532228986674346103439371948490732528049297214640447804394257406601941629348780352763558251472759561802415345991259375724993243222605311489985655546023370370885903292034896337068016150752111054520028268829081969779454539850839063965238786830172098228847228226588920479859543563257514687886411563368225815998596676418937992537203486152910656823128449137247126306608873670699458102756195817254049148992022464761786720280707507562822604050977418389992582877683506329118581644286924396174217660221994709274356824436877796671852549744024191970602530551784083826985853159530666975935250471194426878870934651444565646283024425534096333019809220825926228661576219857738954287154231185395547465696622287909039370705805155687210420192643527871455183164315368217736667857245059264047546501690161236469387709949067842698564631202515536090613439627970028122873045268787169119841227773276646337280940056276725876358901692593366822134857951869332756275621832476726235585384806783570869767031808785508975850222036304266465350631342766487056079411872137671311859985310521294118562664155130696303462672238401585739315415896443630799364445102399979542565040367264327221021520063429753451862414704703041631544895202648833357501897011029440652793003384354617598173862803793740186199419603604755270327602637040466856947823669266029136123598012664696573477090490810847757130120652390751573739970801524651705609854183782236116952989647024006880358019749513777688019034743750635974159914481770364137183714777581914212025499759485734318062423340517885122993724314092180063741558528736689155494244260948248116491983845814215541542930762530122077510712130717104415469398092231804557325091483983730567948166243123779285809437882440176447871507855672190596488112200521454507590248126133644858681975104944417428283256569511684331403268731751219181243223176504260605486892725779675609697069814190902148539039220069855898965545929206621146688878316737396897322570036236189336099895824098322025381343492746564136542158192468812050244908114356806252305247120737783196529785778029771918135676087689791126754206858776618877997982568783079767996349778684449543050618965826509622198009806219949945594229901403529218569139282844924263663567672120139205243040489391784824676027037457755003192297275307432406906567429353610040458842301186254957803378949262186743525827292875820964081458584529291392170387140272540878407916897094446663946022124621293282102381549977502536557812216107146705909202538364222825355183502684670917325171542535296966011268707832498501475222642043530978700704808158927013900588509585959451781043412925309981133301486602283754634380320493170494372785540914017737994845087865840821215417492353818425271999167767024901022905100478098472144230874503045154404948236769282618549079889090750902240106572366650434173685022201470842932183723976041135194602399291907278983470900355617208337852057256123728748641627314246412881098149955631632180498510641166149024369617473955298790290196476810201633966409792649102686815242481170823766542361220167066720034618420524659123794841214485071215227671632200073708747676640750460824250843887007343985475928902566106421523996625988413810966358173297121016057239031086479848727320063442355119099568085049702116486983867121246181198894310400382290143764967754119369397176435348839433741418440432996383182020445658085449931100279495540985391373527064717816590683405789942725736583916396974588798596585099114757313388833861718257795377004532170950604182115977625389214995441676177497308611053936765042372893095575883132345130942776070340165690165600570778642141097224276238564879548800205111133835262869357069783758493115351027619582593022306833912693104112395586664735334061533029965934148975721404370021215049763058566049056317766076522469940364085460126108264015285694846054271556773464530630540352359225579369637827385093083580492637275213531767169388134366494113590858796231570991172617826596631033582887575499113713512243204274556880560098692436766126787649128275278084061562180366762240754584703987333635884198653411991569787705648086620265601338126662690913483323586039085204591321102146193890394640592560740430543594013845110321562747469229085985355736051230920573573592639739509808956403888301069220526266090993531846303845422214981093174140766787019343514946573084380736761318812408145693188077627579704844381608967449038422395371449549064280187826417642943505947726869074947329132240064076267761281301248124294842284772281723082331084558969427208586802480963452625939488832581266740517479866437478323533685843542723218585136960475204384974119015752402186371069180154596409554333400922042613134038895206093749320057156800450888186993338350727370482545771501204870857499029063036354812541886790313673163951522486614347949803325010767906856600797542209249322933486035475506288490167554262848161615827736705721919188009251149105277218334239665170898861033349185313329496076803463687479448054005270805690691081470289369863599292424794431330110092381382306003307479359770340001164099427145339833925804959046187110280531041753024073205025582401743736957677645690985189240444220468296172927346471052991168455072842156116934834675074937880580120295402736950420433177369191250985072933783396060226943023895811261383402475304000249698330286594874224111593219674532974644744309496602719919079710659173488573610510484482290975063318964865581441804318197924251938899068890467417198366802759130712194053353352729331616234352620349352681704856623438697550878373547870129823180518362637191317474463513714344700728988522882231912662930793259177446300572948622208951017236417827930703182581834921249131421628668828889673175115785528792548577901700122803802663650478675396036207815626234742317083074679522151850120907316562714870048156612924296312562553303176273378494839923626188548060505067899292078690027310211607211758746761443931932591092443623250272859453174153731274913059302868825659708786387736577116058013224186799153155530665983827464929715722464169647490552278168702631251011774643084162452192392370097494483865336220488226859373040676993533474478288296247968314267369844451907663926990971334000513462687805831539778846668775943628920217749261310006497359807258365688291681655642952695337953741401284235723130851892816293084983123202835166885680972949526956118393737086699479882412527411808761196419269818153322055592217817073094216596530843927124034886512107809914402326966457922118744920137458444304889603136468124489876381516461859922971933457128366485898079670027219991965272603524745325936505446986787991927579465422698929184094595635717430971730732288890798830564468021922797796162627868502226246441157028393356985162916815409855181483534952775761761402272509621125495576728643739996845660945854293830311524581104291962071051241572912660871340976083092663055656735850382933707878716342552648711048914106816511410654936281756749321314739807978120171629596197230608519043666504671775856972061965630815363709170319030859471546546098545039058912715858724598957754512248549421275182194597665446221668076107136124739072623125542277503657834516194469355664903885773745616079097291281168812404690106273790564007671017127034022044129129910649554768451692403920052816066287274139786243236866673008034775069361510021605077293597086643055019588609240452027084054445955365946772218739735538144613410616180516268843209267491487994248792467603443333659222752578586943711748855624102026873323678359016980318046250585353021122063599416263345367207239721917986195392776649459178986509037503507181789369310746508112452191832905549558919960838977263477894222462465186829458660692324559915158471786198278064172502061767680031961457561490197895997994711335149337970554314030859485781486153475903322877265998745875730278732475248240192386096893410873884420635228672002820407854463206047518437054482122627828647800650430975660748551327596624765797673468715034776619365356241333044740779688312410027241725912201140003633475077300375726939874810485484096339576888919321201535399723847729196129582340918670022167411111079258220959797499946662990070823415759838157171226542937795941762917850667457991880757603779932587297176408981502454022046597255722836109104364419426726357595342848483571691733446925231827061708248831239255509364660488261078133968560245834235942825359262461385170088997755139853384349260992657849699763292170172547186722573838017942315587950221761810261468887530235966612163333046169183801776948870616265336858082770234184435128449975803464612981875525245259740989527135091408429621685952401245873634334065793240630332004025601494527628846808889719663218035250103510462487510320970232748513609365600752247606472905282506655145618408347847303169522613516593066420065964506020747023447008832759026099529972870686731547939441730330441818800333111065783633381074836726442867923020696012880672389835826800136535655653461145186924956153778563431939694150512482889001831481711327735873742051646328953108614154277653312788851256041669746998231016095160114523242800560124438499265263574632056539304240042080882541370715955841160769426750551263217618862603293539223077091839191263008764022378097018050981898475056662140799729210033928867665343920810959496676263960441587987168901635588728860151550295288178936730557681247940689342244935696004471806268415860334492461979557245646491727048822695787344392236790152465196201391648365937652932835388236718009849719010340560977297335985649611861328377258397495224610895545886215310853562014935951079103720691091279233371315080258955924954332533487018650351612927261148099217890981426733760138387158353284293182858065671180601701326390387343616353853196624751639060316731851124249891680879147204920952649333276419068897744450927791732662436715810363573866412285088574452319337604958036979714918483551423273200444333901017400118081749700017285248343102379008389819051245998075784575684828300008167864463032554406418400384856991464110342351628283086076696590970855570937515933208484595920718093195244014412890495536624921335128684926281174351681128948130898805246400916362737304635433448530364037176331772923998536789684634686323947483136137156494276393751487709351474465213969563172429136378949948090786776050238053724369457798180883069551645277267728125561983037271475348846645799507175529080091320481302803961009681708187567268811577984469436297902677419972510509370882169675960803626069307544763041903615026934413567038176910800488370448871672199574139002245136284932235129064754742022161610742489782870685333435967530523897359145213155748615158232234416616644208354133405115638925207889775593681259752492422082746268889145772029137058866830509374609320226772963405516643393500321277940501880203973731480472307496705061460282984023964172987240642884955412217125831491166063000037616779683754564313053955452121400894828279892151693203561321495704959859601865524488822873303458259331491491926045905956870509830350178978992110147061798154764117205943348664756001405047576564293132092377201964496781012477127375727847314237637341062556366541871814024792944589308825999763831138830892892456479675031639942552105304377058835265004630125155442246194990379140459247934684287106497417998895493539391205971887579534949901003588610355185799890638687547309018413273713271918323664340227936196459529777004213251934828699040009841564096695988146938987851809651975732996937145782651749373197351111842562466309006246095692237738424793453801622265402205181009295759811389842089741723002267338111590976815904008890253183265148656320808364550920396994376906588418879970142131620730127513769085466909129047697446165993447447486985267155584402145535703620155826074396892136056420884091606561982704153857195731301175609518859431362777467223508906804969629042558542706758505119736223687921386016398431514132196773850172037155810529964522409187895646556761521620821598385830822352206254285150229792491374958898482127979532399753446116242990840146540634796224579722225960511315188110933785010909818952265536382190678293879664306680182474381684985051384377150896887918101349044522303309232113329900904407888761521497356038262219573900254887932176434998475308350985877683175445029008576588050574811080351147403586931710803558341826448254011465460752899442432449796281864445944143765152591097893024071321045357820145736494503543171322313583736158566944460118461086903396127787116911890665328591100726550875358345427970243156674723302343037429884341642390119477864511065117213908988343528899174243557472688918712163708994225651959291603525141744785807445785146577017114880702667498789875783958252235025786649947650092665956192615933529576519887680414195343765376884916155400096542158225651981220404893297212322728546552897952626738364435962898363022323485308980822687627029311626052398858238955033067426515640763348710416439311288741543697306241580466915779916141602590276185374515654601196933668039780286554715572077237018941093091337170995197696538455157908070496781850174585705064895414504376090267017678914366705346710932511462058665746441023635998085155867481084791275977036966668086368114084736279579331007249737967045085166057761926792645835672746766024502678780587140351173772913259453315141845749151316097646858533280008843995886808527355987149195019338366898318008363977662637088529026096165931435221847806081561651956476787452153799116941871059250067927620683980414022892920109950544618019114107776271094386125123777444900273402731122322212826047607004905901144400481207428708251290313311320977908488454989626747876878700208597638289458402594892864495473531087936162305985334589693204799069660274028684093826781073049657219272726466315212607972586643854991710243013097551051410704674384028310358436845276194293750749790092958945629377815791386742199696532711222050598385314901508687410386052341899946116512767115825891086354319238673037304433403792533849802384327866310195127678263056937472507096643498945147481028262294498521795055245214729612905004626361436441596364890544759683792831533809391398846974771974739665053982610031760088836157554077332159325019610561592810954686348931696066916885599100811288976367684886998314029697896616867846097582154433857107933393012447232615847623547309377834699860832308161474592686417887855800886488836978483176426623035872977882831861128850546296322839287343622088763732110200391589877223041911797882881878659681576237977565170288019735421040004008273200278836175639149987191415055942209273246688409051615485318143552476096565366961343026566413251369957517363225332540922643155002301914209486594907848959148804325343993784778184082838197387545361479587745789118236628650721463846997775192444872553669193270638477419194767234310552723968500683504104788636302858342483854797229875583908651802147493173765763719343922417491222619439646215688564413334875928275834782884219782162322447099034271696190197259271943685736394719137777853627973488716013368353583009091194755116119878257955784977818195972150845554673270105090323223876965511318978640233523306003733521230195066979013419983997059673823557343443419156156752148288640832195182969577362682781959859491853265629721182172328631016788575360438092715835622471936642693751996142220386619217739093411605574328029145385491048257942265354565872671355464391951489420889562665215303270812390777427230163946780380046933952895014918843554622667162432451324723550046210282350354408585807548559731994099608900205636527893662161104717010268428025462778583286698577743469095886180351635837330923417003423773548629565958642241774547756009481629247683878212467504933473850881667806234244554187706545213514767310480779506308509207942478238837680992770075564189671800659598734197883841220187585608625523374319602919973867412151645240587755443703855292280465499753658383127997589835696104949640378429819614385123119265132815257372377983885079965338117000233657184278234625934056241602118551026847304316189119026817577517911976429270955604786233799269131113758992029567046406110564410431268720443342592788835703050161859337118808723373430681130127528628548399798031989782984515779635759178688454844958752652850252788453238666876664944537031017854960998414693287654927031977325308547840144703288744358513637554650811540249332762420619940061103207628203520761876238065876112847142460894915549844663448306282072230472135656732533214161119997178760319457874064374774638703843930219234043446330812204471868373555025666840981310936950949259863620831339358823209291685895300802485177225798158442226134012056381428691221310835380095346619422926842405989089554284512085985068312864569208790523293285515189639790850758291701350354482330202959279767826271789205519902925222424435900683004963014716529666534424160732395570338306650881837271783279004564253722070036628647647034727744633494092061457306052646416092387791682286314470878456564450442761320329312743428882235742953817865084123677517689390451800693781137001837438993652912935821323933272624351606619980591982890796984789978704625125304406045558017088545881569714337433127757982358781844173652770002630405071509063132631188369554479095540442549261233075589538222747688346777213229253770181449498950903703985644065509647316348099055960399427319913689054400710813847215262991803749679817225736639222562845177446931951350275789918820485242033278602759915417137914615393339882557302523586346372194019295377396446136256754024199498640098160963336886757713771471841206516133852304231860793890556119543467631397852906608482617657325001887668722840944754492491300405896286350237941277507792251116527387431675125618115336698369339922858657455840427966030679862940230634421412610226480258790067725370652548263850601836589687504616213433165288373626776997625227456932037163905501752724722112423491379506586182587293002623801492781317896320156160520900561865609320439404479431218419143992925638484933574596305573208093495161282271525043615574948442389441922352813326486777556568881235558592395307006379610329307737869698932505928147726990252718992968219905338504226342138466339469552363376424039648723877164877534247656634397536984695206925179667742501985285924550249057327090104823615001613867504725701945150728004822158204914024972403789354693462006777895113372540473804537050936025419920304212523409078893733241456618230650014015264162532510531488456214426154488681760526288409698363069360732430222039560994158527206843479121219390813901136425017995108585088604424683246821583215889386413211003106622345257043498401600351317150068991826284426189930063463013354579983140580826541329768110364841167758377805580661414306972747725624385765710170355115746288707143457898856062216458491824299204875880445737957825662263002884632768963133614116232087231495813111496947668037715734867896306161981011692083965834589763966399320700424848324938260996905704752018113048490236959047684045661619284915587546654009682880821088758241542873962461548803661789820651475710257117869908321497804303525013877401388952143480809066807422714450702949903964866579050790572344486378770212322659322434624505842269033860921621673814607820635485421604518111744925736951131554133660545649288984800291116562863812942658385674399826456625516418443147252216360171254936098956863075057531423977373351448106917861449865929023554797380059590725541117305539346239217153295370441593759649329546165059783982260713254415734917648696758432646582187487331657436480927767325947445640336480756658437655286910620738573926013270673351617912818175425324536892269998861134564659743921981916106899357375340244698853795523091646505831584649031825240926688100338772847673752495840633890846423176030310960600464447743445381873826039691460551080914622431555127439024075607702529495235201712778768199748868803273667190692252230903328170209271402985523483975227175062249065095241512727862859066439656888417738818961108624267850731253520968567678670948043353452486069505777956989607934826820769150637849105926146853859447041479294819493022764535214536592401436545803482139960589046684969258643204922463076923022465303292644905075887659498671910193674420264122664379494319643998088137495884507062687807805090387807571214527904182995174663479545622546331310637785064409228930971159116763180729700297832528012762272051039346740489116500976786869830556290694173983116844238613929372285371231348972047038243545251194028930440226715089085878413526692250917592383645912559960026804076830514822227261899788053931647947225388469428413869313905539832502504245661878435276512792556280393504940200419084565860647536383022825404455747181039702322493388854033903390854202595609850274451041499701629296041583405031274037585234699704230446229165006390679655051722537913323629676656730777306126552161982629358121913077105030580681493836052142097784249576445138776823473387854710365947440614541644872624461250097477327653307936857781342097928487997589303872955644973589537729474180163296896086128329872918063164899652088661754129890796501832329930157823089415665021894483725881391671830164949361107588288466785943017034750396902524651681492173512021473724079717012182538619171967293480139807421317158847730720317928045611134682746932900011244503252938550242784649251588044859578769490061490361832459187417069581722455291738660737604863987959136641097329045187110519417803141650623422689368311198775783688774319996378396694505701124397713715869701233555735706411100955589540861239444938494521575620367989733881744126584251847314652643239512357700618398079057710986587239493264657770807447260958988737898844604246328723133752146216308203178719233764710454762016469496660555364787535771893138636980724408197841689879157685736464415454488039458948600208472385156756955155559297356002442954293283429641331348584533711663611771672757053345119315560112617281011509057245814673232161948110582603365343500608516839677632477730977326558521515447262658745271017288823919724933453792638957719686827379217565280383551526547479412662859242684863046680482025147058604649959106315249763089844610350927685606421695650831728305852445940086999452698026762399451422786507537651051393374410833813721473890260828397071300473307570217451468700828419924490021980783997727346539942904029417542176329969397404531335361737145856134483991705355949706195690478377767801254970794886942454467148424243164309091633641434567576548652671611776384431606984965385674493312890264638046064370798452797861210822913510284868451505676501982940065883260381207731376757263824502525996194230054042590406410032391948502684172603679307706649859182547366388861828067195010591645673337775816390029314109822108454648619310393815221758657298223996798431292383770040601863897479643132421731756695984026328085907695130438689947247392734949105082938515146044581378342778967624091479768335758334567555355836765920149038074148288826518698771851706258948691140734963600027468325723748225691778338526841001116620048616996539821347348929389492352297550272972578622394442279504173850212548484538227248414598311879002275207320374963927984173846711394496246411467283999497293216029702952359933695443827835369547812397434894737242163966232695454755889926963180839818294951065129977853455157819783368974816335281047308304200101391698678134778835937775120234874461650460234964334443369147819842647994222495335236725927085425883358618886506992270697735517662913405771862009721543145648591210530133128455504634640608189301886895498462698747274215704216098687702327347927592691346396493179528291610122548513275128122425733865083806886351621564071018359063514130077305812128634749215514851407828819616517713313350333845368192751557120571295141798645262393605014648196493233117621968590500076192093393892766838800455570176334182054809135329674605432475934822575735123213863752550040762156431802973523115411219741495880399379203389313436930631690322986021726248266292788436520306647681970093552862412820937223954158639238030722363735081612920927431844863370403340340829416961800366853563038871596869895768699239934013212274423594387514684939010035309571775351047110972171317737024067694909366551170967487240313375377131612925934790069795828883241259203118453302211238867704143727132240723075205971130385561636424421723841491297473088655856300461720682265091095227262767852553363178497805631723381591727881940054328616025393378407356500161101417763353261272997882230424398331966252036063278045380524086083709321785953959225418885320337726456078529632860669832426044481968306463360140142082591728804458270174040680368225145725769508718571299339417532065446159787133449469954958222028897936191765508052650870337677915767162011582109227473946213846123081706559166252107482315036914331338987677123238846329154127496712532648734171923149882221064395448239933812966050463974704505095712854280373727927322541910843356494530196988219044273376037855830547637701363357074468787145453043606227676732576202017152041180472597690794879954432700094837907146156232486089255863652069732034251253918518044292555108719263646769594259569528562120721087810668308097196262637293388550309395232874752248000370009796616450656442717802147776998637491425032933292008732070745186544347218404475560216282149851189195414913073114143224468680244841498887330285958012302576485380605982755458265971367592751984969629614523575762193421039229537403590523117648199861571923780430390047301613840722395036555966296942343442262430229976769817833649770933647999398309957892424337450911025274570817003903941495525552891289624478631756252811670084306687872588297430409164102108653545551452403269965463938470270541039371738991038606842077050133429934198831105356227721959544425701500415607599827690198526221460846522313417089729758708851435878903713454546636616350549332300429958110600090699230251307984474499772207546006090232999378399853547127335586766776803438281181428056816674235444935483736986154945444850377441161966085597207708487810898535423602694025784165259423787511508430260222754870702108381431838020312007533450516011386802189778196989182572864272251598396501081997863207030173976129164423624020591555314996750503335234850369393090783687693085717766402152084686602581704223706998231767085542827365231537316899887548893192913225992712874290612747649745523192493815428353185035112611272610155211544128956121272736596422900282062624845934041268860361011463039502061341870914940501629706337743306780821216258310839784399825018444397603075128136597775847980768913920942505933963372794865572615322171353100923565774192205777766342181551201974006907092802210302288419843944044202989535076248461540525738930195265006377094798335697471328081960423935420824562989521329699861886368539758180534016740783827865394113943087319527245404563533288743661775577459425829308091628854890311589014353045741212554737395301421232354385223814295026558491104305796143084621075852027898335750150703280069307840353527036899770072060603727033965490941535521008727579111561976745386561207986887104923724431367949938124507222882636240088041113433050759853292813600404393873975392335149349396826461991088400630677645307417705510378745291865736012319823906177885754311233203948423656816285467056782162240124554240989542500789487301979846755603073157184490172059643086788346743568665459642444842691134820237768495206911202791061452708629492918526989461114076683560743670748357812249404018664375040983498261200004977957024574023464187585562727135190915917815042781342773103676715060490905235080724724299733418390933785631381459562318256756874219574032144717776936163809401392304780575038657801957302126777701163728696458064827445746372165209332780853681365641969058809185778661325720932930562431085558653862140223946560239878691048630868477144644342733039129360927766685298324607995839744033787155811800444122322009785579673930839544354188111657850761552801576561233610489800392672273763664358063929215572960203884602438137794606817865379232309844334297475720776653853146653331909719826024677876088704043580268925920286490362202782773596208375246966060192851204383976262825515468279023213465178101208418048667597288091448601386759031419539642050169003006515845428512769441645554735461182475322195598386363217026499839419909391830998399830818849960524866424913033013696621873626976100848952637772036367918332349815773725806028520494961307216129561139807171095798582967209310513808285988210266674944094314431497122551598608367550804441766943567232181443196093013549290513426965363632498943203882819957664133575271141513026862896718873493347382819438759907652737051278223140726897487897682196779226441191700468030389789722822449461679004639746776079352441695974924951176401924822447029772079829115701656659335816382699335616406655281599174999414357184453162185894842064508583550485321108049685784888964583839149693487548517306052731082796106556552573128693733684707139731754842923262537176051229997368342617016853739575118109445956187742898057412018021702668137854554957253059161019646078104355287456410330375964284142117957763080073997261742900837680140911834337369730296801571372811053864091862031356656871033075611740513784782235702971944208478670445264328525895416298366006287378576212475537499435839350730901312087870275629747583601319268045665056744900382426625054683944773190970121232653473248190652953144530313059129259655211469667274335189134634197544340812478230656237292602763045501272328586226022916583910840446161522297227379900773849955324264757977611811088460154939404066315137418267122012116254382116073836707249619270285133496332867003319275091311638489809317172622785850322023002933362413326462619184196948952136931267663130595773871223375966317606029787145030219824469321787078970982133689678432636797813816610648270355215111490054665190510504606711351073738289578024755551885230278515495730061993115663940449742513471844773963095410619835719288923323926644711843377774365251102166052700672584289581660753267095207734353773877372622935449591734631238002304183726029770185836295384440869837528514603529505438873409622577523243411209307481588103709737651558212583781684829417235858285148184695414026435502572976617689578516873187303547501617447494038458763480049543430686513934371325695974168994805734197479800081188390085151213649659818146053216184253973376205501548187132816462634828954531549982566751130329295582704950726166373807377156848011523024532132825307506283164485768391468886858661843064535239493411098617626101327788964371455793226708781171825521292169039590256825232037027368650838632957007322895984835566198433601819998764992965942820187068913298684971010657980673964315393717668025740115111152352046119826538581646076086876127292400659746293054738535372476856065604327707118115403232863677603390429155923108398004146095497124971943232500423712189501328954459206099086172123763242613147142594123041448016856890997628456120127876174747942947915147076942359637276403669070035492936542876527674793277460191573733249868154592650421490402574858514086813443944912355557619146574942386266923769381005765607964267079687065531679080307147017511013337038812734775820243949995016433829862718811400593958532670167378142627463319965112359004880124192972632165079461709932780518982752265531638407720687210664837593540197040500734207395407558233082398403201179857030511627068669844146619702842177631439571883580640523199540951284477525360883353889904745257039916954870960304535336903122563411742556348049284794995090631272271490221726816950360696106852020140156770504577795722506155593922765438681247121710491825441295249736587411398879169188694658624327250729310312473324849553109374842883889142869959711362010925490986271729089643060093975334427362531849117517234355542038600196884622828031552265283641637706405465291707701400596465464197222977986800580734095542063440733874445564584264449150657451303406968544031425869011214819402461429172807358378453880911184317677832633069108476591337970107778767658096261039089705902233380671832839841478161841852120277071946543407091866927624975816585495143671013369772432423624234662764242071625145962429890854243381979636694691047839427385104965735407660375335880651157220152609314821390059604492396348987844496608054203384347156477603833340232771812522040235921477671138030294962806423338925745082331520438378083380614595950919197613456385385503888623959905767026808010867311526110269166017385259400375643599043310166119184363528222042827295376424131688255984071209979172755765033761577948175853047022420220577269974615030721141903731161599899829382648328568626864271153577126554145529399838995608340918884117080179546401206029833544740489915101725835327986228334395822904179754182353717040666863960794787206367258688281654104573556879183270361390797812059346499111102976005277671891461808438938475540049804912256940862032191508698542288109701730653081053566362873282155178783247947512750626512124815460946203681269180191979628530160462963352350845111642615467587460859145340963165755109405470375588389341957212015309188311025070686834332989205990392843699487701828705858974078636945382097757572403210429067874928381313713805526245289140876745009370311839057195448664313977490500029003324734110509226259114777589586711138970266730093984843359566546645303327361147921056451726813069498074268664496289262143329808734806289096018534707456086973806333171974669134885837090536194267785972626064682674617812306716507869031156899067935420336907379476070050459270166372379282010548981117891016410432045369334161269899670228526203301952260361414311699632644129638757746887136940924517775916405728875584476627346524841675226765472343235062292446880584563544022702597709196694316544043208234285247034222672076671048396251377999498028457862619647975686035628650488268328468290734743957880874836197410465940180658267945264081279434296621230352541641405821971931290498777076133455504416610676377334959484515347573173126402668463082827415748262621025312338490788178104329659094753047161971185699064629232237857634625708647048658182150367746645151644070617568526501211193464002339772560706397701519797585675203886606302366909914666406866982862922543802431092063093915939186589841449199721041762844341529854945157658730862921624662212744003489139089669821899035322101976441388941371611847955049567946012248221896833043319305751793459322507547486819321819860694435734647068270231351629136827183171301961652725226235034395731080150415883397798293767161296101493671562371677687586045950517131714115287308170936103091543002727216463922822795695520573429064436388521988095635707620252822510906615459872950398411882208877639945268163623490351230052617761852714047988778300894746641422425092342744105891414681735547325162237896113553255729132018393832694361934035290788164904902263630866830561881735410974149202185301735730573081826148363963971986954424858988129049058824614257364458051772808700577860313021223670825086270068966808317283611599554110525486460562152168122309334198951764704168386540688398852842601564443217794957168498515026222491795016070441251423254949926897224927298225261292617914218373714947067938589375351324397099697763569446587811409573912949697978929143060949381336235721601227063324027104733221075177603073228919277847070334283206548315427111244569907654731112905125298175401248608958827649364341786443787908393938570588596722889614342932308447696149998274271881276687606260908758700534477229639408859267751425089815412101348344924097995740001330481060944509223029329609772251533532422680256316037753321513569784058659535179800368093289890659521465643500748404032106118953190939360746423966177747946583597511434873159127936819440249649574412865801146290283394710798570637966641307892201014553119917668523753835394776994437795343129434821671032831857929584494340803051576831443800960702214218075976728033798236894857111742034660103928811037553301063447011348314906712115577781070428255585229301496131155881481790082017229275663242654601934549110612817096542040193031800787174619180094732243209175099905585221561838361544139355629163039121990791752191924738512577228084995611840926977227059467059362429674397721118299095102511805173095970369569214501064621582200105510123199448616829827957315098696736328287859732848981356691736323269025875397162643536832951700268771471090325213707377439922309224775288479848138903953976661555894755692300377504707115527018246298636783385052799634440317785011128910111334122315711282673472651397751982795831386903936154198816628912541191112990441601360979113290049109626580882748980498871037953233983860370506222182439240953257589179932822571038962001529164928735681140819145312738678082528813866526075582670406481829174600479875775089597471629956615299721229425376587236305252358998162551872584217124148516296581026961066980928137742218789849253914998703972495982278249229532368589908964997987995336515231762425827593786307421955171381123778060380413504704771562218487796267561476014414872421851176146664279896908716918819647547770219758602501004085305233000724145725390921769434170114411948994499679506698369418799285743874813051597095511693388021465900483603485550199446776118101205154391402595652207279692452117000281658059241374469104980433218674369995515907215814960304936134127989716636292249555121197846672141298058862062385975887276161594411284504325181327931289205803530594533364102001200346507574682409184951241120002195568872005767830326319396176673407536962904371720636350677577105666991349886107645617618062936587455723534955301751635035593097583201387154253251680593904770875098164124925360173852064313058629205826435862046879250745261490359003753459126172847798502311978137723797926164621449210070054719698654514103779419343489706420735966113102049560311078771040648807320425014347543522104902402212802017837518495602531586580049350744778851876505146564581711449078131783744592189308399935141608262329423193837000988347413696131371793435591392517106281572504668970926984339460397581384484008367983099867942933576843275855197293751647971171060628993376157885285761082949562105568270759761165413880871408496539980968339792739701657173219073884554187799883978766164396362319483262218835004734175771793488815027208197034205952974612237341542871298305101914759650105948004066547745270118586603546524679363178889932216006734706827197184270389240059815528033787456664131219443196277920399620810125765655837933833599997840312148966128746394034426718573613233519313451817985684752859570434992966982496217546773255957496306538734152794227793594926982695728494150676044903444802611858710067230971608778989975441253197556228972853579804372419251438209145756384740343403838643826714797454639893568812225607347645484246668991166514165781905167827244035037374079732208421694306219261619633078496117300679496724548969842233322399543506869518310635799041489654050592701006423300639838972390648058075380239545800858549952366595328154351304276467447885729522031173023928389334787424753320023556314731844145491078963170337556156759003219369581409622576158937797305374423449290706431613696810572971155386850646199197473298752527120550018005363207903584712617705789461206417917206558732105028443294105603456595265899235361267387387504017831741150710565650194476421582175156607431508806652820104583703242056360818745185320563296851373381934673640714584538508658218611354459071455276586460594863386511198248394505480220676823810904926556633983148029936362010440721294071932143246142316760846558943099400203983307404794187677803483343601505910972418977811361493359835088274596090340949369817734674141170376487199500309871060290137745526720367812556566742271442314114548290196353485496947100674222158905387008670257913384165700636134808244167422401759304313062608933978852086831000638054052004405837891484845758058097461408668520955388537470490519782615339337677590704698228102708996973942316953179985065719526437618541630564425659297589277825407984096241955213027615226562766692665382444178156285126187326840930014616086778476433733305222002209494152291226168978650383575535851820545529100916048738978989148271782351757648932326607331820113697163854551788075668250204911651569154289305724827619591464533368643583172533460283428462001464357571128675238517445902190204996742056846276475679625417546428112690578530307693088649848312775010429526461817684545301242336288738919999754364320702031761324418506274346910923371902110667534186823723922345047347993315930373112780280451652316833317868121644923470859823710038721699256000007745803147907314577681318608488042659447167236915936832293949091674462127372339671167165556148581466688656076818805096642469353979470152692972121620511157869369903066226159788588285942788064442119315539649953795984917323682253351991949039989025862193333217462791252517873221356767604679171967491406045400518275382855786942700831399796336571742173668539990861884171817800559799612730142318804492322496471337535303878396665863598379538463674542086072979952229145409349622548382560730056428471414043713972884558132953566614650175952832337048625895369041916202495531981476338027002152518882235595360276896325826663549585261432950111414471589312207623478012886072296058239221822955742104275037383644682825998910638259434797322916263945651946211676180834541640713267194848854539616978712381326337681796597542768338283467214001488697313716507552776805972499116874860848441215745910893212204629735783909043830579214098487875112694867069198802514070881887028756962792419163700883948795332160721025453063009262516581882223841008193530141696711378710609485168036165684553504601620519353194403524200191679392386667185554997744618339376025305190508097404179570397940475827863155954050887900857413051964640097179244838324720170583930042543578636370638737553367854462324910305112566659657655701696968400200562223162084807486693061509173597731802382285278741307580426372210937608709269300025777756404818227613962406970423559360712326242901490223966362126130188863172394590765599402027127106911349024398545412319068826812870592535140089684904329074045383037443048608398112296993917879763346880203468849131402580282041768091213978856232959977968521807504399150959247225780571632054141172827846776871331672357732950524238454214161898437628759553443204979250351866128814827134207657114964624859834235029306100733028313799167856728794801509634783689432770485332642000471718575251338931544114610377303333755187399474847191541333682416107032668951420088610160503434076978869731423981818721863615339966830632175061151857951593401101668720691750606293904884958721236402761667653470878230392223266565359944612426365447793230389961973322294797209344687197055501445751436243720411110977507334384347581316348442084117845840923190552382804116093213653226381582879875296644559366403975904832348005145160368572414817857014700850758766597336288982452530314401035978054965590749394065677036260197374039317844813826612229423143491461340297840448555326715006880252606098114675854535447096380566636416254346563398450963169048389409207524584143258331538501710183609051039089419811507305453442816544689841081713488014262127465782273787886065928660776715679980345493531877785274289200526545398734237653558026100950451236366487796681785050189690787511971679986752155720604602953010926884321507073059536494305482426753518962233583902921120967115865693469467014214963232837237914283323966389767995768375405223279489623892663404507843439237807314251074340421381552585723562646065844094771398571582581088066647912117958751003757911320596043753394866330154498581512819827399483316513527225041756263896238833071816331499667514978867261065903564502627699437218739100890364012323671161772248427078875546319587719014926240741532525633185767869554280266305636661985780703887243631582922256632902611354222790001719199909218860883516063803176196157820027005119941767401373066139824821539119056143948467881608812415287280223268776126315333883281973785886922316523469663900638580239558531926455779346216769843782513614529051966524827780944646170895832369225017114861960225721811598858467735737465296107190839676486689297045399303189756508511308383048082933944183478379203968904410318923504370408822413334701720247717073417704407792866396427097990217415456037295587134583937887929404352517633831613808134945557717422863809572116492889537479401224601599904549164058361353909131371724413565032787897274478813443978442340279911514043545952318560473838279886486576151043103723209410758587547703335610613669608041668474160869700599594748089033584273259125328725337396065637921198606141126888683368433713194900340101765919407332980477684555210241482305161742195165484565744233148834139456452436075662355513950962008250803215178261293790994996482348242866689985263802846500451545174800622185919592285992062138962210900060196783596093723927960422554431572526460470215746289934799827394612135391892937938799744329091221113334766883582326452786304929925627336823761808713980382340100747109133598583981333025561733864275901244688994778755273031126284581202109945385495212947501553689029191097518712399654497314262046752990553706830078271323401656732977890403037767219296577389305579114343773320464550110568993940339249421860600229464128278441434726027336230657149720569807750977870366307476532068875453048585503543617241462259939535897627323536885902490991061386550297324345426405124760233486245040248720276302248202155282288254870288097342185227972642587369744683961868238215580727006416997020930761858513517556882275496977203817475329180602511201429105178704068885609271570161989583836785351271002481139108835419904068787099292406248046422127960132049107579190880110614098948497181361567036182138669060223026699423299962887031989617675635665708490925324921561950838965693778384241227557761391384143092925630204905851909602109389284038411045142371535706448843728197565971547949311802163708622863918349299518691543228084891908014417164155009227900043717238248721752356745562601163362290066812890227062956647824703838711061989862026193207404652101819028679471287104540721182573965930972267141536220554158226890594522989583747200751543870351472888728437336270460436101981640378305747907807194024926630114725954309115617130423188042420955101773327671696085655715168297352193912679439960561987337756945273052402822094836362775816025121082062852364446297618333356640112112604981593925963385173864294473218204582015838315859863657248491089590607139620603994711604571722472762969643935825686431211558776520916059941217625193120033174765886595761769650956559279290479290083851609399895408873086873270235967250147933984347222361599942262345079370939468781342522362014013270693369276220378488262968323052317422428730394844674079503720480099642401748758422337282847546253711009264369724481122421327319852769118940911209028904631553257554818463301312354085453172673936824350584079286196406831420239663058271052644838113849867673949841796107250325340399317633863018012356480793593359154097872765308504801326782950988933926342835217511047793763606010747448817539651581582175987906007597071871668827274678165424564313988418637456365728547016408870107695263327861442429736096981110877023747481671151675547947009663067839552862139331850597110981073556954846006430543957792236407245236037233904062672690991681115517629317988832301258646310873262242952235813245451007799967695434922046160873018855697384996682722058445065655701583213698034484872812330716923689358108915909034441485913724839388899636480325537237072379002424099692334751387877915394698790620097267514416514872358495795578886589861595666345413893845564484842408857435553336047385718674616171146888379876665268160661607544416243262752698024870299448813642216521081986674280771614689547332844432403726562686468956588573932739788683874082049271907353789026480244979673288899518448245356704562916011131116776881365794672958179847598611427404581105774650036957314791989627660192429700734950912516020558411603079362933965809260598848100114991682675749291111252674605609509333657976686539509106986994327989415087682522185989008965555670304086490793047055952925392783417674238716331263775825191070554183394121896495744004621339386872874103549906542313862074675107418703274309857896875443465803884622240142241235359798885597600858801576854865993922355284803564604825133758145425724619039473834891132517376320194627824117083640705148893046417049343540313871250773725251833171937475122623003462537261144160738055717742672659397721785822523660051114831344109936877965769402776444580653227221773909523979368004884853166240815331197093037748262560198012888810129224250393049180634442115455654060850134015292663291663951943972650409963775792410045231264189286229034301538799077546294262811620517758043606677521571643553005055147268641463003391049152455519089810634370401905037895748478241120523407078000935730932352717316147493611218586772796682538670630065972535993938130821056560030942173058738732283364918559066750408870089343568763641147932233083343537078301601406275580359548751798281689672162836650312921341561008502854307867898363774122382842879106450313316420862624034619369645625052547949789944266299380726304291445648101206416481271333971487979680175995822930985713354603779390062121322302168395428403968366493247678198342007033966669468953072837552156624838753476136127871873890081988109169328848943873015284257179043245275035256697935904046456210441550097599859833734574542704173544707397415997638755684447161181452520239702293836663936070387446483144755578569330537443411772822400296902539604497436435642173703682884057131442266218951398670809268089692524733220153156633249056782825072040099500858996744955001457507819728405378960299730270499903931974205292405073083883700799970470540794209449324705710564303942904726725637979756749461062017468625654944955980176639105493514305347171128863472013721948593912676882040999380921590964668750792877707465500003094061343632082602996713798436647451596301927860929237096079561578594431158233085228798240483900999561290808327966951195870591164422528848399178951583992351406754076242036704348936834859917521209180805981449573728512823733843023538984621212928968154424076718662232871736405818419615837062694927542101183558017007561306989497449746765977212480242173556717303568452078304849858899419521911437715805150677415229612665465377436219891277503049488791150284152163314614040709565834869463064726695665789092149806700232381011609232792236235591200711241954690781376131012475968165806647567138161896536708786569312908627713280685900973655658049216692093277437609373695645706730952948577043941556408845905653780330973905570776906542464030742947617670352831721042394003511661765480570366327476800883827293739173451833389061274722919901673929076385100411429110007966795548616305617764159000953119446494053292759273778825584524241079130190578479196849648024425794722327098845385123287557355500426149345935056933029419722601614886640545444014131003193000694903939260230885444371589077715287464686984841742119485937383661320828156823196399913530316014118508479288993342139154158296327135903075348567142207888427059039268990489023288934238477458060706987558919084127534626177953891810132331261652376904263105285675291236378330234526709088188386197682244190202094680197194197608200051980947457401331933385152699673048634144445692774701775464834159793859263148059056800014441972403122722293191222029132930922803461019734689898435781024415560897479796052184978158017789323066320337937189582332967804851476704394466183432883037281222105782094366789396177055259689589842522787305146267095148589477671181276414931127096554466774538770857184093238553584831367760015900145374904598836196686207416898908243568521207055490163901790328221978819283532730079880193426505289232998842206013979421164752493902430428065314348017315979152735267098935760477764744977614617810125571793259720175662014186806304830277067441792369588995975566038864175124475967501193897179304534714648668669633018658487472020240227580615006750576161372726593570831677272237864199195382459433580234200426652214870289303371852851786104224991844854636659622281435952321180294354447378121950667617507829988358031973917904579993652777274011261985095494990300151821355208387554925813211259065285626811619539844235325416996854274183628210318150111038466098263260215820898887615914374097109010613726634732712747165279919537605220976499444170766504688892037498791733919063911228078873739830132322499657202967412732115308690775096762049707399829352146054654321337095435803696614222504366120109202112892088984516350159630126324106421161371260465972731445584369750846246395128269274686897724737124359537350357571695658643567295243920786723853024066386592926793366935807120655726229894438657212665162277981290294189247380420788767680916350163544503049632078584258516772301057640294053774018601851418271304022185504963534928918151182718934837319368412877897607162222042909498199904973124827464348422993342214406079637182889866557595755690031984462676126639471967755779449410622468374138778751550051930236300687743915338965791611167131944509961047942463308474741296505145986216041230535774701709033567458628235625528146517045981257187500246595726329696291202046627714208861469659117008545796644756214550837887702942439868909804980797507310909037837286003235341994192353338277193109096583293330881066867062452618721277780955208441515468760284134908595030009594066809923692374185214920607013067128827594690904367730576729639451429697629281111464283556559147835353055802385460851830665895190883082179149513530858704549588528071954599376424554396375509120373826422402634074534899869713709721669235413884759747066261255534185682732355893823419622161499369964713383931647052910601515847724168598045601088613991452377457242527391414036343206361553654056382398193102169968616256109740775510200535390373887294441230508521784534089169136024533968517543505464576644856319898994048609304429565340824323035169589982066576654908986247343243934786641103305998634574983863082461595735043841522659446076518762138811364960505287991885610918228253081048044532040809070111405845313546828566173611396677602202139892157210334148380635552116597962883234449347355310808971862412504220836026640830488777766541661548550664345930887678075799894489644953678035781546884394339872694394213764247656709751000279784419107292107208739522261810138406986737396910817649031809867483251687070612778029024223703640835189306237707139434890959213152909224552823647679252718390411972186111248730417748387045788276966834333092708937737669769019685066864555408766870095019319258932196017184925179988377470426500892872801331296910669310458448237725369664885849950382510275395078724877456811156473040898759727259068607334920145247886829464921488823955894411148385713707918433169271555836707143493224408724061016203111311900567012964798565321216086287727978406236179313836073052265242809342426934385784711930472574411392432559013373362856465862398466215528925409042287641840690266543921051850959585324038015872323939085798834055646877830641350051331443803432363408481005645494241288545222262916560272957153584427976235700023310828965986206848168795832457006081156116854552632194732322422855429093402451499396546355494918146488861746939362837633423450082499899798915439523580013773554340385477352993253139567774929749370118475797951374360270035829654426384209699374317845084410800874841614070055689896180159204866281808471803014139061401906771547183030243382715895000592119102888477029102722113034645790959491700579273029932510290658470265193475093092333822905749702311036004128878945873154436374441648563551630913467509728058872285895393119511042237133022152986291401928445833922916022452880578048345115140876161230275035834788200444909554408450855706526882775403722698759914485552538711575306881877704839642147972802500326278266677049921991884233363132591904250083668346103343331580218590567286865686968193276657244666066096538396984784916027646332178114609183591337595329544967066681148042092753857378064055331543726043030008195175717769324836656436197422617230655564136923043262925110541286674253430562631053040841757197217891273911353932885571079759955126199739396611891119803766096818729161400139954562419871589165293169455974392771896020264944613067857458320045909325724830290712079374809117665563806164579861138737154780343445625492614596961345549491054986550985193829464501332991247632864501443166536753632571298962100671384753379411463754236430044831191263338028355527286527218679495295916542598111839436912425758727495222644210023097150728151797156163643351597943751637560329561226070808641169305128737450683489514423324634666928241877641389263294551458279075912980135561248531565881237750659013662405098136112703367423594546604712819743136813430359504566790648241604404408427231999340344397004403199787980462001267796993029927439159803770211774042734004351257607863637143750638595153111489794492188930341439817374121032526619128331531724988069966784141862699080914172328012881873719468261305567955526932325464698896866198829078632833584453193874745142752147573603394148698000791985499174945056354672131340668218935829345100646366379548919768749764003913452588096151053029370749036998484148655670009505263579009461565462038645129180819394753059221051763841485824180305108492184021846819139861428379394914998913004206163215803512758134848658756768133635302261761487090111568187619888256671161194698313971414677978297825006218302496059789654276774977838238980146876151891688937742431285132047240543629892956875265104041315809290121767848509453741529820523926390717712937630911711960087682993804327781701361136709322892917971074614421302259949988478123371905250995950130878753658389863246127462653266606211506115415014003157706355280130094768287231396444743756624263898079201946099456304840514608655499980641767649146889590275852562044015963969274060138154314449150949061591140295312934063577909490582029338480940227071624959739398637048928909040587546673552459774727549768342672545163500073679213484601835441489252764100521248790363600541507214879896480767373196096187433283112556307491227583491770011822958179300046399978690254913190660824086140746695962927671597883174648322850121485036458906870469729603815070385183430651213223157065788483414900332064804329174788184342374193918586524578469392202130223460561724789092965346077260344226689105795238663342034931258751776806109461260974919423040926653264471528923906082693475256487414883604779039643775546618113811250010024131709886215982884695433796073673849825588886068129096959195129884628182165229404922057645436141316221471765086041489211478685353901047058085924065620703476147208958577944315139209339508280590530770055548379840196538655314767772615352967184925493605086616732280168337780001078365609177179832249854068985461266529608404862425540333883658300236799248577328197714426844451248863812980218626704727896747658306417624435209639649861392947917041661943064861229242335991703241189618764130772611433400550848354869234174834661187393482353194776236354059300505638695360568064821065918919179666876743763610321703531988609944879629973426954521611532025608746275248216400600891928898094022439156495065280652442428830429323598628082758936442703358568711880313195544709660053782578061344348131290330775044209898858552692654142238480431547654313880726009193587004335369939899438034591514849283443108725240153356230109856901432657635551828067481962581125326714458982263236458893301042576731786197850122799811160158800527415458942423855437789091535193679940282935941889209066461290750497779598854422572520686583744108132081402191216034806674874355491100099241855986615277283702976050459931099573395495963649353704197211563530745097063779506158627451393211876636559781831727415357435307523481992761630523824915339626435279873244596687571985331979148291622576393289394852573437766243939014469431841223750501449834933516257790623084219292717521569786034885988693818479391942692149850537058014491884182715390947086158688278900093654852211660999795519982281819099369406692161375537305486111346908871229669504707049680720808858211249753270558744249888591064238482791595127882027189486578000859148192487355839637289777582947331707429517629349749544991165776758924234003163316550122923139745276473245763022105302374048696043919191532214423055201570360514198844569704958827340112014414158252510845393077534952839232274727730042830736600113310852272191177856975844858881602720741708903509498291239114479667784939086694348145680717135071633596152556844995040546252042886826048818245000817412268447059966874428874997664808749862090227248040756487118236234494741121120592106982466394547727241254137838381691891787182001306379402514728072323108570961024231246051818109714888371868797528126389909091818600464901147471993337490378501821637296795664410780463180781494070356401593379661075672360335421769779793045638792047846246879909198770645108191866231549418128342818677350647771446817467823342596245907865100823380332768459638761971599636356141018273469199093302940385973477744659486581677915383463984713952693330375763442275922283814042147823012718147179172616727074974719866199001267574410475431920234188165197267048064065479014011406976148317198907001937832032140855831367734957289082048343220460513064327919468499922751484158189854063123033602658630458685150467267848279485578019510074018773445834635502859749319301471621361877601254867366035506198443030202767408287024099231395073008409682943614426166904892693994083426032251914509207746053753857397966578708886355337308318745147348331070036251435671419888027202992563658847174306346119233466531347165710229170661150369976597668597574650109381318632758275790357561563232932331764183741390072161541823160056349411014265955177228122491484118237731555737328549055775645247946344600296859631336421605361838905278817834843391931382502590190115157646687330416140156479839444823673165653947572430498882904772916056238378208501319401734056583688224081737252394969720715023517997965281176663031222272065089686435227212044768933956769327378422964494860437451390232098265243135484626165191786597442785865404594841477620732807602697366480606420887644848436091603171556640708278141562094052604984491339569632652936757994169447373722444540465707411769008370142348796025722418732905622344847124510870851498667460200093773775731349174838521995601633535586261253974234967276490002241274854174178295092736799224161218591105023183959618918280378482465717219628931101974468964991475987264179708012065474149560991656069519578206266146427820366568995941641158197304198778256351847143499358429071872103069564398068698326688547886815224013852530462629382790854782424176051349691898145071755610013579746825836093538422143436642754297099170616331627131502042572364917713049117472061703602198735417304892487193649642784137246162507965222848096763827855380316433160900574706166216169785957625494669651354512546600403903163355777838813466163406135043042463879355322178468438730969793483696046236923387305587486021874500569880636912968776275023555516422351040767613997610062594739722502801481699396949044765271715985868175731760942704217663502138919145563946426423449523848725752263478141314996712687273488940967094544496059943847160395534487543778294497365635934524009506003451107105150325781834749347974990330449848111010358539248794576614041945371622492218565586406603184400590929197533842906749292264212686063636697703510327237568749772427200768997489269445958728202997982944520581390705635788596029105870970976316120455815493670119937349970025290166768075612623368348993403729014311500105287585114076311310256383317356124927868632525188012943484024763964030245479791517587611821559901014989236707721345637324418771353602922322441081744695030561240310739140608179304452826210677355852517457884110556143016721554334695241362251991062011480528304789170782666418714148430169784075142061759906944898692762088526401829894198709843418639350463956064851336943821043661754177515506507131919804068647199592645642676746284766060459468687103259791198285507139487529520683951475640509540827068562249461490038133949621855968819360798066632688895110572487104263414415341594697080359529078144536644987423665881778979747686440909249014946388171458885249365770504228241250354104728139017616504343057396545244756325992158163001253986068111208498237906904870256916422108638159224232113399216916719390640503715674695180182919146870873315351055064764566393074472801631567036908176168915330651234456995555333379184233647986730544556810657274749624976783731813775133823033970620792403843167000991791615007611434845759589885344934355417878463621637690911428139073062502848669957424013557044967728636299496703660883822321397390831507489205130431624650689948726217305650059724895181661602935167629153161269471883576504644851199686624133558745398803258029465387243621971620431728570421956936990828229529311414061891173862192216734415590379628921860069812309017187938433047133277675949667439586470638050393834475412036851683391764545231415084634751476406807697568792661562487264504420650025020189023359821128117386981479133776873889231258097818667561871157169220125099408119468338131009338439486689768212907463196258371871765086759268032709260801608655452364414146388801514812073688164719212261152547834370153459963947750837315526611206506895530394557112171437446944968849271953281683246813373795856740470074602687288013687395075945704870477334696324361280635434698917402772490751189946525499064678857227205299786938756184423557983856675275548268549112623967152958223027904287998880414310222669791084475941732508191184310989471085423923393034363751823100520815021860614106382198390935824261474159784345469873557646774478356428289595589246903698466713343408634429736099691337958023251237245154971845433351222470448495165540161983340922693634483692417417473504468014531889139617384167349497799792306547206796329559177186688535777016886787333720467060191820380111544207651026287452830848294047986761740032373904004149503665610092976221845096267137733670913250399559230229554687800027960947685691143657383775370352741171845556797863705851567716744733909510998187054861110548338988278608830918577730896714838459452409676697950933619752900524855670628960314621797385324975716413641238142521243688537412936581293360545263978128273638280488071473681632676695169900182014246935259577367695466981928650628743118836365670613460860567102924427369503197961582450627038472730470082097043374086709371606449880840130429548306325748157567867010059729456983486705882597279483975386274706183022478418560168360678594627706339694157755038400631640342326775718781950189825636308013101504592805416408617496449464966146476538508069366185600075499815574190062422554634564631385998420022539366155052198288787431797463101344797730581582685841573643508389118979223382856078138423288531228988678795955775298501592085454518410908998065358925958698503904790152846057125508899701773152928267005619289137668968833293966564374850349956369504124901839998688545400305921102236412387275409946166949185540743112755582761328102057661734448118294840308106939564254880120676585386677065479256745331633745087061301813718135826160157903708674988205319414805745650050659185257432844851091408960310892382055520528959604874537087825739125541710627024108116730303635690113732219971948807068118074364051082313951177189740145248951543117705942851146937135495244774915708622184186751605067155955149343632856015173463255008741695388962254471559259114048085688432839181934248308340547316157313389905545515896790645145349126852136852487821112264018743815256743067644573229156166543263879193453199878642914291269764489418472109488210046464846241149762182073641800676653233318266640332372054997014984186913437798640069501048837907369876938705485836846262248750292448258807770806296302227185011787313646072998768993247018076825829305989900477038776768763919851497104491447700667493371904088905364416648886969855889911218742497563818476999304050202011598750344109961875510639697804689068053459219091107729993982627783721524513356350874268485636723542347929884196883757963204704476745659767578173357036737908393942240705680461998130246781485588790079553665511701291520013967742622517442549859623178623317794572812336600751083421126722369430017823426133418982690464216736874590047888884137640957260480736136372943469598359206112990129011400605542078942995565450246974068767131083079722749305907198185909791885052711552443982668033306250843961201553631571393094199208086308566968018370964167741711860343619715916662846546329198999868212720877929290514369265485908175603377609814814635731012624964634711639998000262813933465010272835455683876246717582641662456963177443596806820228136738884083391211531435236731110594779608103083560746517917338884682771081654714915172102388396949073454582816117495107213203557448623150208882858547089291613329241971988673841305426584983304917344085147651527548747442716164873494584252540549350346555501701916116895054184961307262690490872173096159235961587493109147621966305056753992554491841853063584063222935315363530247804895551083826132281532195368193658547325868044892877710560933596530569041739219619271010367242331560945875389471937979864425962817930338771204957743564811029019067833255881278168388504144164746219308213235987002246945250660080587775121513347158549074600585823059044943470757140047052293968302652004416847089008225648310528518807468764701048702048116884491798317804454583199486612515699282822010939854459393756373202408314308034726687750592755084990310208945241177041565131510208424618864883490608845061685430980898204518224867037901668288349646135421384359801702131089074368595562340134092913983491781211665636631490582673015066163570948648112417550321929435069481688053128607945146719289889456209068437960874655188082214293589855035975045786976843056829884514799138293470713325176122113732675364878644555545360747601420981189600090765733506045321968993100124902439647300577484076746602360817974307386264671208371605825068376259920237260522827507828309283932434262165800769222676856236460479125318774165226988948633991917313833590273568120144627483331156119594123919218906878080714186366752373135830940943370237126595622160534949312857799780124273430171152808826778669624098896071519402214413676581159112916949054076795936722618595435342559782550277921889826161009943511521702851018558462229233181512187918271251290836190862900862162304763072007816388329556564926553320623614534960126655247541123333016089163850557362502309607268176362289124024442483525874689770290022835494248733495262997467199999492637360968666559154190606333110794985038418262036569621436703277124911763902515765964791562737760835058390189911261666879864491676594195075972824812466638224820016232210368275218151418965993797572323725601942459225103169862835619409908996062524912453337411018541922775523741742624948415595749990044058917838639574379795344455802913745977155874377285655702044818037202302377519822400409285469344917447015617956971954378862242243613657263450281938280713572253813461013837145911951184473707924454977230284274235357228867637539412564402926173176546660711398215126542116987885960135471449346961899315610619800221089320251991437700257654209176454050564821331302242765396079213464185920725042207173789947791377109586600598083648103523263401943321848727789421391363268928908571226513530989006401713262429644632448318398149723485503410322835409697820344376511963749075245014976158729470473630479617652092680387513934404084624142103846722395588796927083464800249830367886943948315198025816537203397219490399621612126527654601372712375009513671603116813611895285574576007585712525490774365014835472783368573358777049083731492633942153195401690017374127365760138369316079536727635032270652216099201439195534715523413024459117226862392846189112570077332085480467273004614983568591332119454967268483795593367900830069844926093181286048029775685366481913741881024116490237571790767394051894278699386595816795428892111256595828666333757598543957909161296854071227612017785827272350569781967516909559403605465953595570070072725604639923673290729235151561444939917668707834527212026422016889283706410098480609298942012014775887834613712515183188069327851766568374755607999053075248129790082342559512954043962605034857958526898232212441341224822871890810431938244911169840119605447753942840830124707043218583901194246348286312383986904110538457963186514457538318291021501038100476201948050991630645031462013700624061077756388723339327800340894746929110811623690885570766634060927964895224621308514921093206822178303122694954068324046886924990221648881829692332041231312501064992817417667948645996165443088600336254830896360383944365306646023658033622867844650856907482507075630118605422916029644936157672052364604925105426667678974110193017835455151201534805714373860901160228844858899765927069375168120818045642921914434377147271600199875517776329277995607096477751590029137081801388243039548988306451678843432560423027894279844208343133511294811888346715434488497475048709557146937722561080105963384984221104534515039301745164626371618078347702575981341917999524959611928893382177567283700833937430416141618474567514105937597967244459047589048829904941177705933810972997227616899901520496688234201510398963320402735809729662941690189089610369738062608216831116949469356115562545294973745873920787521844004820626840529179633537217256231053331932244865885623235355001736093271961599807644032402556743335570051988622972999931306940451050823064629718808295338251994083329098997670867122534393303328710679522116147697677270287491202469681938243225849053192078867379636498122447683325984609672218712140192903890561545995012834640782395148808434438185540686674981804719883477269271580859813845735547061821860107736621725303269570832519690512465304253933505937001917732361865854249122225408448824920030462270889240467720232936234260852588714297407835138095721436309006282098929942399814017138534755579867135541490105725066926164592145333630046026926368470763127500787840588908968446070695834888813675164779615545276210169439586683714471311962512034250831364107064289405219579729024006494157308458830644626770977280112875026438334200417804855772453444246980950815343547276819001288668938124358365291906394089772502788412571840830949116845375437622778090623923766599145402438923292341965791752360973641357238358158775287743833160809182810888409238263201602718213788798348950735762591503589066003472701918332971588908382509020769174710915338687757783218354354406157309158491358908907256665026661921571363426941497428413085631656943736970210988041268599006673396398929152831286046981985976369434959004304003472519603092530035956645825857300298662100026981469698752266489627559313156109004755117306687818650660817127809288172901439412325042897246866230535610170497138990146891336520116200360009886662092657662695893932534393120086962780552015561866650526970088378864692123523187209516588728510129441311029395428901542736370722719722985323903706931220386167981925065162991783308923559944660792565350640501970123202697965235023773432215184927820185171266086175075536417747439779254934341840716871141316018441813279051469942798760786328932683864245810331671607522296220445866380240760454743339088472343076602543608567599646274814530664320362923435762606741534260374849054537709533856294156116853002163452379053490501534608257666542741638860713794814113895809938647482166472518514345027002795638644961271257069716274195795239003955254913435392440298402917813472304239555353117892551062724554119165435939979762644530562897447962778449558220472212906273046767943768571416218726337331337181394260618406253869261948212198904927736331108368358615486383761568168950780944493619629013438364825608053420610355877102340276295544574723981728676269188747057300627987346491699314520353201324731743703612415570190741166448308236443686221152701254463806207591488839015295671867634266412207374835016560744061252414932105383264365365852768532830138134280950918139939315381526902275268723864392118922323415305925210617387221850285145159791126336972935272161314444500887621470577015059084272623331604341590152994274928061452316136014197663942771066330108271750404434822081377697179434087943784460398274932602672326584622748032788770320621061308196477250178226607699164652424330653145222172566348089187990723630654268949805422361359689322019972426881472667457215425099522089426503645923343398008117476700215014128010995123573759449711314227426217571538124836712793187650991775898596302353805277198303440686026828730652864832395725141713430668231921478341243900671541149702128773564898652998141386681601079328012513511952338391678348943812624706307219481151269087239850710795683731240516521003109065808162549775775500905128929306222773122327850859158139075762005292381911722523386686080297251675853905104238685616489327697900135115815505241782490500047837073334614509282015654177107727157446382424803112425269009607835032150933582850811737209879705098878689682951506297676766050734405947748316814911348237360638107561649923410465433658128990125449540464286813162797115136735251005644600558231926707205496569032750972692227475169653036190627892240811863163411037579015204146418719813403097079974872958808443859454203576569031440179885659207351110918201488937205397671473596139997311398192343078739947318651713108924881750856795944252736468301803945423735250144654088854667570300723074003642705529254087471495077316653686248211415570543084313165492900607651126231477255113971024036484121385450617602400191581904336483607594583818189124950327463917612218459976719485493115953634863893753669486435018417804878206229056323261098285951842536817146949430351714779134585784094112157164349325824415243819138415318145029242360305562593803065160618744077139613027536595395030017610689361444965896972746661441190750130712563570158321304946166102721048880065235429829375761448254930837960294505785403911211324508692497581908062804967044151872129505527291396407824915910271431334981096254405391933325135147873613049498911831207665834506586211768895776604683492137514208353972275612191377017512444896047421708617089872156980438223371747027038822205908885442658431530929066066984617376125528449130471461420836969959512505849423202766451328365143005807784036692929458635975456187000231435795212631974505833221677728778521998575752114940124826865822206119245755190216793767094010788335750333305879645932601063854638800288427914272561768931711720170403732972836674989211075355586227993368698169831285304068188517237024612889430177976284419927363806592584492507154982872146082187178116923109923279664690022328921593984317365423155204998596441607110656330830334426033640620919346006079932742240788201920107023099172521415687084353739872429576547514575129237534715977960606265086710781217560842750805787436114078895671397980573332274081651827454373841540074032148176821926526012429073315225640045860784955662403875172910359251865230727238730105719060140300725730368852821627373566975666471288941234707245008141230429314146089866022949613138919663227819025362751910769965668297981784982686771311017769629230559229489471240408220887699961933225832117653236837794768920119034564206461520789892331722446014397332368593938849602160661472904384454045288133883787432790862857853412220720367497873787629764382302030088293824529409964310402243718827999568681233078888852826915786033333054798893127921098991669537490402229700505273979878382823954255566263440883901582880509578750017005672326452254335312282519494502625113645126651667994486814061699142745953100142046186965625193659372285537377076914702378693568789585124331691170914199404690622904423652220542096855678380121432940124305589813535346275445145434941389394124429382865779728212904153942669239899356876214054555839171433201561521068835832278632290765995881475389142445844316732728298785573905735398970493968604221308519785965922073037776046847468232374054373059610692710619247863485228331119647700125391424342781645192960548968205620626443727642790302050083671879947165707690629953459601211007845955528824783680843019750561926175282322049614306127932941075053198172603152753011327538050565437608940018865775695403460379140793715310575829255737811151212817295527431530586300967176213940060841652072213695197207095865656025958252452689158936036999367036008456336353138082271297415295679122383898526486276826869598693574801193552160982093425477993483298580713557469994219183424277686793063692188104679765063123977380500177044079990011014879113853523277899578525621830594667464358359312000072555913692760105930218097412274639201708325291469145569166838857764157393033307697940935437414082965693237958892932108598951317086012365186506220268864636623129013274528762854694603822661049123127500777888744503665016432761292581639193120907925890533116655248313199619810281358376473871910064666540836243833651310932479008747599852082049512066228805322579183634606085368781420645385890595707706077779727070529589362625805799656644530048107587002899227669394958937909994731608059432169716455797227699260133124862237620860777974561599179662679700612708760372752347633477197013010096253476847404201644677611490322065315260598637150350250970060454566605401840055418559618233146029038346124277983318041561949396459982513710589331000845658780546242421318727934492382284423225930832774766391625002388342806567158509349334218880659059712468484817452675512950433846654472972782304544393060343977425371201335309855776361599767802233688749377664758478200289083724701019673764089065474339082911218921778065270673304678851070202937699657521813075161698732329015011789790777947926430757496315624902582790221760833294132769549083712001958050206502077168259323772796881933768590137436625812392451067886083545208146915371367861541318782965280350097157607738252521918986798317698048667039713082067100365578593263757435105537846102319794212772471882148250617276805664839149747462772201296734037954970505124380720103753627997061698059569052257409555007387420205666523167938538034947614911969365661509073774334497859374059501898886576478656909647557273125065534753483302781543187565205060598462803623127400789005952879715522357727928309863206546122239949676342140785865259851595971331187494343881612742853857311408507412642222453210029533165913690280230109812117802485396038699834818831606851270933071575014579104110204902463216640553582931547279633570874753309717785919213916190754932496712892869405298233092093928327311374966514103555542900196373040642588234889350746513237250211548389613414388297111632445954392083957025118600533510327039594929870379407293355419034666998817354860055885186057217737336105990936466509877595440392077555541365618863553003625431023026917686869702092171430918720411758005429155753830965231891877721702643001481756577232543686230379140623746207825342346733350451498790145525762808021311897611552910554462816033473133965965538056604077235725650706041411977070423861624162716140521313330528819050541646197146049225734840199837243613161098739534385103408655735313187779247604308162115485645185415330699873922582601111553322232548292205508892998821703941472772582136916055931620343447583497184467690672110335065869835833607572608301993008239807970945558132102339286049525578174301325399211102565300252169883974623072901248278936651931417044629446793278643249927729704315408528238191355213215890829539702940931675116902490535112102936509694235440607913253966641841889628715279933536766178499750128858299629141186483800938801328119554777210685892157601024560500163607564622438394322307829784990570429835124318313861612224462320991131515156837995737457356527024464758965492322011886213962341563296272717908675547564206070402807396769740752433015467641492604180500388677878813884795462782890072283643597183232191743246715881916017956983163727949247694211100549809208849224071472505921319000782617691389034843190549459045373789430571004899178376349707927545140379654146045006289227131812145930887675560904415682882730202384196442379813472418944249860047874560179738449316329148514627049375151886411288331995435856451738180289691556013461707288327557050675220812297027290004738444934789618411684250590336809354959112782163514050964084473497953890266583096548168928296427265648111629779901132268475441959866881375461436688367936790272848243157487032719796800326498537478007046213659756064819213688000878720641295541560090997986841074285476695768280557178133936760468869931939858958243567997292138648208582937198099972837465744320902306770814120698667170217777422204175357679538954155409835438570499503488822632427476265391794416204309623826201549249182926631101014978982459387104845176706756183592860740433325527780091668711138521099431399697006201841019746313962216751998473453012300063876518935272847199355106009431147189125936087238796525279958122539366683611585720363839406731776935951126634358093728367997648287784342594733966525946437490766694834156754178416787562533551355403516555211412759213441782527047489098597478381387117955125498545078953549349906048160231656025006051297448247044756727963398016137364756701161701753963358635493443857735095110333411171514447253236836634307772670033642129415984568799570221454621377463581282802246916073536699040157379832148172698280075621917967838019208597289117664898972842461901230000321900901357929859284033626406925337855022222712880352233545854480984448309581580089278565932511722273187050097314353931642634469080539707534748840085927665351279052748465345770347081326761688685737615200101153140504597439616902783573908800147733697615193487860372974585036044791183265997303446763424890667711265360949384405189633278241843083854847213053241591192080971633058479963173029084566859230365159936338176080222585718908386016790829143495049122873787971576219630327197746532703417878186214154446299914794390028949588466570259870693598803229737698811859627346621786084798732456264832761518155537262832613534691772933487523184269161965837842093636174593266051801420781933061480240178389440639011988195847383209952300489140016473728986999505505741136634322318291252029487515465890432248971442926885942043955412654509131976880293333373269822198028525447388612676319638957905913696135283778836748688139320917593801804572729033996228950120784412317648612497193228211165418734601911115126377050940698119070551307043711028576031013669421138200393953553708958259376883212503405181700200125852901451636084438765357590813133618126359483324674498904272495157189943179762965085862227594639736686536315500857244367565463301928069856387360136422042790580599436315834722784412028850114993034569690090792931944809790421066650744025467023746349147922797082069684845424081997747161474094972753526259321420844001748901071161049243668006384120721309597903822731609473032569447666961859985390477578650631653626807123618690516026927213275935025617125914725482072851158669339688378176220995823123301805543615020353916567036749248556996163947744084246367827541073332430537918362982671424807218798576084214062084398911492432258154726958971007751289350982365950342070886869969331350031336135263438222809768491714434722099108323306729647789908210317310750445906765101747937394096632820416234738630490688407726374038306525460336397668473559908016474019485733413718490052359509550071731171497872597472996758059519564775604334453066364387196795296722898686414692496270083724269335112568240070879443311127044638728991378162582082172769418795225272367263061980198878327097766448919634259141392126993251970680438479820221512384666263765181296328838706731131037670321689116011239924664948606816120768529694571636768164196145610802898376034052271508692731146002464255612947764814482403835413350229166432729723938368573114216068162719440448692441450239307418056101399216773523619522396989819300025368271803028702466744062784930305184057789013215027417720716826120533414922832541588001992487598191101032119717342594847047864903569946247609489263032055399186649625622594898301004366591305628530002512727665505255797832709298571992488258028481745597101869220233638106814909024831876249023871554951865579746109801920868706873330222524111425353094498539247689197665549389457826504696637074211431752209139658567436655246679967722480814184777827796320437854766753080126470068543431252285410174048075335484135617048967886641507581908885166597266444699583914593706383684542935194050419017423721181979030757046102804240253131217836089971659202204558223442244798789024406159015981404329714864692585488076686935879048879315263794475340332088111710540228625816564292786681399053275843262319657623606719060099724192905659614147986045683626503308262856650399311245084562717351995855800959768790039998240681963208817613552121139962426548826195753202005765727948236916847923513474924325135210277796681880503903900891331173845058391915382639718513970195280468168008748833219828776745606996250113148036567372438403994802660786772428655863125572473626752731880651284535844343714423559838781379028417971423253000461552279499298171673108568311910728348343879499147829903747647560448984539463857699756774145600495970587824383951663212598252125471208875569746746162521331446102641626474282179744798552034618738110654094622836704996398917492587957148211465264450167567576077387595464248774886136634834106630496654282389469131787058716606074392022268085023385618085020223473350964217216750986373684430844243636383473868157968928971159700462165843147461753438297591655532729011984435399724916252091995796004612654980854750106277692391931421561202574898036286430793975502646288895192010653141606391421333346931582525016766094192442777373645659161961633281356986911381322576965178113610889278193216820755396439335649697996751139868138570432401223877091568197425071132887548170821160658587648499817826391558873296555243565356088474469071952834498917877279842273344475121503737311775534298602415289751498246647060225697990457891123458086108125274405814219059052313775031568721804531174011329782929789146007155476554412130758754856235251811274783214998499132854579050597585704434725336236232525939208782138174685809973421333885850796894648008141828775474164680350027298521911627224759363330275362375441660254783812334864865237173056697228557447686384208673018306529597171939736375804413777860226167530001436616362963894580120325477294177920480448250794808224831219290651572556773614316058297995654910454067889622168955918369666919094252552616307829683755499972497347872342687439398426547467525978315416536895904887044736695705032039416455703551931899827235392498988062451762529536506897522587125764604925558178653284311983954739661395221149069965251533928324435445538392866389973792838203123672465729782337174596529037306685631112784805711185310597663526409241128355254864972304036550145446846539484878020603011663418575910962442309512710887645726672806455573221100111558815464789847125190577831031541626681314352470440534088466521760931227797017041099727720358918198258685085707867266847063214313696638318892357963489867929486817456272396999251236195651737073753902543503668365216474238190799976331634841480121797702610488141096398697679040857281216286115556035537376651017752571234029060284126657781218557657822330239328341500507110451306886145565031963538089712673550636877480354419365859165537185458209808223273863082255424674028045506570970984137801884213004535929420313340602136901233774671198529718274042958710772981339273283125551574013603981739843263819514224513233175725270207045197698407528672141909637169988653854051399099321676334806897571644555967659805092057203250710269423845750547986670342655621465105636180867972167443373554875585016823965448363601409873405162024172520966892287469704744148084911950142390496230171567381665838846875492933453660044124599463256687114510910066571630594292873752868918255712596187045599813808485846645743797974554242928522369946431013556582500809632146604397682427925858600561592779903454452425009913685058337454112839737672855760900442849176973775541551072121518318531446109588401725521034593032817312900156144301877180259646546726997015188413352785977944077257803078216401202177342789123169411032961689048681423147982059793382473698937646796479317954032482709974702838457682208877102016653488123670289659291040638997685600410992075578620388692270657213136401893230551422656811138111407115336412996616881374440933448205842606813434054449081465411217422783200648774616385504113999505677150853919070508472205173794322604300913769490107463038981029328373296135562956726103923986510067750201873865501791383426342575824225882130552242772293333372597150792190385785930171092780255194973450822543047851486044925797443246141113499628178114290975372348553600171447108295915456086216792299234138532566456255883618403359678238379244422431357877033947575047755298503239730891545911184755419061119508210775893653268131767061270950647039249653011818964910116671143942423893936067520456917256374099425948635644122255621188079100171611061134778081127412432200334159854510049006168180435681702058338542511289831296449551278960891330562437628198292474254267739585921073335434249024302335543215508409954722432937153142670326647200207983817637139026297032814852251225005671226544052352616125193269642545396680622119205061800204468460600148290784357066174367858874447215467794197794136960336654713846018059086131126614351992744573738263708013980875101549247206368547612021198020815705712569292042400718147002376745330209157271724656557332344807526187237591564501722669665803954008336280754470305437212465886486693209018446859131273511758968993132153151271225616329037437624697636974702879748594789930108052860962409594544312559766971195614511667982431677908432817070744819214352269628256352297216037349569342366348790089635069192432046080068437946297254179544493781645748516177772864216582880478310551289597508314531636805606267527347080781744649386819049980514761584350575321713949224486908094226929040829632853051761335685679081840420687616981346912066101677393283187263978549478228123882951024722014633276078544061346211420370868531024303976949329621637414010943110644096108731954444451943360799345230867223056080811409049650135976345300768955753987625129151804527990397437086630579208289780973007857005214203212578252801704199250601547844745868773218509140660960899151252148730338151422791273115077361030577390922134683913606316532934165963168165452066475307053352654616280728885654781903097061378237757114603691085843779173152188062459286516937686509756257476580008326848183853020105136163276730916093998227581807206206637755827588305640983118613366237794017092294733170261215072384277714328832629197574818996551223299914440100474233994473277508911910355040286692590658141380948364769852138636619050449931958760691440250035842269209685231429755778326733508361401660942935571858319802665593188805729705026287745540216729776291650615692938899167343508885943555476906439540645105804980012508007586691979536059709094033215439686442012620395904812914762642420334012974503594060523332578625649657484782079648328673506214707229070831936121862018252532081065916976025418598608633028989010459141200319802152835508931337489747119115589399419352377130104143094695380817502156885283070476578188393368577422013816301502713579092764557058290734747851218795465246743399409308161563107253003585455052807414257834366763063577169096167503916975158307142203894897375568329014949907353418360817633995877192305258574165490493324197386874548742817026071751380158233802253524634978019705057814106408446884784875142498058887988943225559224318511475512829035093722047315285437302162802041948275541454995924117224808155618424299831123578148071765088425472631116631608100530301808472993291198255520846394488734242730776895876058714146689672741949228096676383072973427119751426379596206886968939964820782372253539893274613924572435319623394981807795048097977519856857474747940884203253779742625838668827343387086371819922995155243748772103368752974830034409996439205049316832596582711154611709028087265012724857562568320417256720469812624106635600646321291901983491065927349929457092120922084458565896860514950702332224190757385011939457041343309055246464819294526517971592938178497319417713682077796270510826359314975962431866763262452185130550427971617548791659141448628718629021324766673475166603172770991726325501788641490666766012786785530821756960744028281355565348119629276734846784732239816120821084145481544278365510638299344612196163853108551030975037436840625102234494091121481444846035881216441310779036360728290542329739835297689993696491025731296399078899087174812002987534889147931529039781485452302267622690027255439412631664532231031953410355493538844005008637840190465376597948595724723952439665885214290337014670192893212646488143439361830821232753260971755886825505563099620899863354183433523272241258539810988802686144459770517427842960901747209924373325702618382025765630684635004867206863150921221402184675250787688717062383342197425489366158588269374628267062213071084106271920159734099841517086380350112212306173880117852908210578561956200167648623021327005052224377940150217640833259706179889075810417631269229004430756377669988245944808084429883096567134535492688468727764184502137947316094674888583936465367025574104361553432156193196180587479563882774364538250872846445075855102062858574593228619474618582361232712936918574509152807777878345590756837559650827010607695650102089725693901071080244490172270168550392875783484938126655864197725807984385092505091952802781954320465727133607587747576400110823426456665973848836675223185368250739053555932872777809814237818979233094617058344263102422732353334080189154865017734716298530947966616491797668607790869441762256340356411267821121824676052421040451084347669081596111935607142346670991592012103244597477833723807959456646773922910147350925189162553116352661738133843032773648397624480400843710603543200900558908724116355637333776184479456652883195061735183252098587550617358026210525905539612054992786827674051181317157514552973900413754153279244709193486771964010132864317264059328439842805939886278674503148865982814445145815864922262569812824833606166107164954012632215349252040624820149776105691170272200500603652667374961784527513949344510467609805729767697478512376273163083612137703691480894104872503744405605343095364662101055883944598437194051704979257103118912248218251445370459336460809894378827231439757080131052717794721674925915414688069646928458570859539417681204634319375033489985210933406462805249311015206811933749861290990606199117694153243341360200874619670389311293926369411760083222486144848362804918309826731875033918887089089649789579508994979100075266821343387940895746710632779114323511198489568541690520906419676519461348190881388417585867888892098973890021357481595848822516998888483087906335361488838101234430719812174933472687929210132621782818838195600674202435823692431792330258134127646964600650475683899283402226402232732925135488956727642080915426052521722633184418482586107653762329289341154405181281170553929656014554599910278097326095920153968533191663105949627150013449454651436022946885192377345112753754320002585603619811545999749843933446140328283972933374029882713104476755834632124608766135721304860191586946100943395126071191233819402362575237621845434851862475478258137217709981572750511273533168640080800272478367762416572405956815428200086395151996977994889777759896195504282195652395576088965166317573726275117571051923671444924350447324608390167575310922848345231487055818156751460833797277511716723017292886272251897853576228718378954834805379921548193139275192179550456795748302216035347951461886607311990261148483983107682193928203726623073557437402933752220681113320484939164242447175482771283874256513040532754320432441811804499130934350483145509860838477841460662247662351754266267418242540803233968488544187664629459703373871150736631247910992111761159922153061194712843943950740146678700537631339479201947549986840525100506351464849874298579445892502961483675081600889751734018983751963723428715092217468135807957167992706806836997923242103107178018323568303398852674859140665349122593078185810204055333260834931903900431191923739600393304777863515284820022594817823333573562729092616921997588619106071013478352934820792606231564055888358762899355247978252505973276308097884289518069340831319532360185424093712816479529181264182702344034264119193957781159580983169231048635399646682362517879720096071972900299661623638960089209578245773523370126415290234307897427413171144006246071638057926197773549581139130567420893943488546999098319549612746507759310723323122669889308796825472842525980754470349324365905163221046221259815236630298211857192530148905173326634125615893200371778667502324724440850408321932614504297456433684017299727617620295305223872049726993944515334913234402114901055251261961988966655500932396988919956449239111660546921634305770702442186223986978809381176737159690952202194020337830194580841810387015076295314953397837650442717794446275235258662933273869744958910560593719523641690403737159490163673603272197598831060898251763782097625619039184662059227607183066207226279339688960212026069906801278609527821158418794603948873034942099720996652656697363183491152672479068391138868628669403656081076243259837726620644471290268185603824018584279459339950587806396763139929672941127383908158954624272024936730404419478348245462056044996740568323801382010293419642665850686806499145703600929441011127381441289219068241294650571933500467316327626324118775048019908281091949065542344940786097783814100937965967450251408084816040129279391273462640460913726705513819794495104765721921280186884941136300205778118193735720018916573464162126891548879650812297221542727762143743398086681430631982035735358196313270561790493524218117728729082921143964767857951710402584517411327288836261346859192067188325047551441916190530866236804790571530160515530553348398555593399189965562963335958468044107506581772564761845224099259581732695830699635429476821542347860759491012163283897090388294750688618640971580718033837424890923035256010889791332823565720636643999179343857851233023088473713660901855535713066918515036122366003851477855282183004274446032292145933065178996864562115764137768171763418463154190147273233664528242882682095108632298580747043104506333655865118264505610125422331594979089135212588484972532903695321398647121199683747676134538956156498884727850995967599939503737068758294312379020336249103548588467889049662188926634643639694576167018227235451983805661490048323442928475220573356607804133213072539796561918045575587809000087266861126124130101373765156193746792330375506715003561954539142263058249590154292012400196258267528404449789235224036349630852948422439097186001352422222263762891961667903458281012120890812411163000536885929468597541056208074093162377139574645596927011805462944598108704407494965166741542804012625610849688291492529949940673958735514760064347965773025696734489058895680915965259132315226925986146248432002509194581881383733768869004538297478779998504095131205126377333436687256344070716983999398321678270122455229057200239230043371887932054053138836299749369120480230075275876455762554979043280795831673714214736294507710453305835906179781171553759894517274725471086176541788046916308252209442194993712277508568308309142307725614316943839293461939162420723949322161821784286580329242115484681368978598038185909524453785252533341776147773722246288009323073353444312486889020287058146687232221262897158049638004699558587047158933635570553609175057840123005190942854717798677886117056222905483039112354090457317701199239840240021611264814955865986169017780806586245878723648282585562743619144540923702198270462537587364113758455190877604173150498704607390015778855087215405083402474262629576480422384239019911803061806639227482231567854973465338012182680752610737461562722670654748391236012564159053872696707694690319692645946413283443777240056623623744546468502939744767720686514300067484315996280989009643642310448673245455154959124675571354623341804864643644275611282261959494232016799041019129950042230019769949844074171118484550383274916428642237561096539393161267502938090352682447733166608811257827357397545007177911608903824363462867442145912995187450728916188644637888336986016690144487568454549634662325827165110861217674643565336974940665357255547459885812070837675477860952773422873293863950714029658774040525408029019925841510638096494180465120249602498324949249500652895437891269884448236426760790547468635689721080446008349989069427298567263048867648231025568964587862947783761661115525843169709904835683185710074530663349874693354901357485754853053428746993393577202808416993069145206982625963740262293555614909266844757908230246566261875487469066807060627044178933442579003380675286982925209401777801793868421417149659277660849919375062153676808193463398578854902799809791904940444744158344338145856986645653350342726849725308591764349363775399220327066299602145567065658629453907457777544529079369592994604230826111941936578646976693411562343249830722318404752601674757582672506902563098164504266387665865767359107468665578931388049897151510422600837567288015696607909553101145103828423374144723328046002986146818135078744058018611985855899110085211009069150652873390071106371214768099934427952466987497204989296293772563570645060626988338491621508003254179125285431321424506770580575661413257926484892624961509906370153431471652697133333175130096034078197129204111917416723033815142590699845185944329068072195085679250306137558714455024347907079816113210317018074735789394582503537628052413949495288255766330914797894826363587107519227338234743347173154042071980503085237325026399895182039828359866291238245448317693797936540423229916780660950276776952094030849797511297000150867621916089825643074444324119720880781802856874739784693690353832086794194356438571453695703638778143652628249673223573281840307677204808396760244509301576252128063885600960379281607547464193087716263763318320483419068370746417593451101310650449178713038735747320459650601368917869409356891444600565304056431959196345461989267772829054090482306199127408239268669108263036541623822800735404033061800244215620656890978711091432092423337681494583133765342698593570644176405569697987804416687977469293689323954132519148746048879314056979347297860906212211013154663853008456996813824489493843808578881717605631500537386079342529545617138874045930848633623805580471419472339148280638100386598990772510168977303359556658594313420946652418360853165696297941275503234877602817812757998336762167008287423132096504608398316383728460995860270818692473870000422084332314673248166461220169389004116183396644822261509993043741675045786471857504937010780100450147742801437947106429445543082595739064794285513975538264730536862189809579975533526310885653242221728108051760947583221166933619126271407551086270445220414407146992603917129300090456037544392904129223710575138844655598913069042541495523681566974316700526701407307702830748041788492727097364602748339385370042322269830360334097716051427428657534366342424907546629354433686894787310466532317838213424280467126431306087969335099987144400530435341790165420716763481585350768872003286036272484543122439693004784527760546422534511484050658609851165322806941120467314767724410685791013279619217407400086969567553432412741291091817024326313710227836528293536182668253129106235639406632108052554608220256494914357066870427051329144469699664005753066507194357924824179167055687812040034591119623142830880658512879357554715847539194471656554579640446022542546173813763016174264246871743939981309025178708755431900872976409696682192667311979784586147790731875087110292139633514826033774010533578924960268374603148279908297798334201560319579053242201737334625824084371093713692056453104906038576596295670712786991991642799331955506215559068013474243944923270410048382075488257761217505180082738588118834341840507525351809589972710587275784304282571602801829506380671408028439826763765377595558507359579410619578104642509827616912381929920258949361854059229547006523640686792088810253022592566854510951805824734100523169682575130178019570498190681013609662888739558161972562624006934444842856190838236026042282775750300351691958156815681394565755315271939199424630201859094121032821131598941573384126228619987000219428429039561837452220161060837712318338135348337387495265122270492293992097845986386524532579240308248616300072074189931869139498317339324249889624831952926806690166119236414864960765962516503425758218715228437293895731407980182730440254351425979444984593467711333745473131986053604108582124464896617322520006157444635024819304034481019611452349334339538362497081309567978504219328099372173590154829862861934446147564104989158745988380941738798953241803982149055647062128470909249670061122368275167129198494925335814954639287995936123706430568352081333121127584768012262757676985336169947501602013460645735833361693219461248682845155290603475666387086839164899716749364558902254730821732914210986511968133014314256923840481072556826565054727946912483928124761344032961139872326727913118614676304793950941820651133514074297061712931308917217045631150565727775331207461473687333831502666121624363768219748666081694863390903692200891672289340504659665598289916588223532757946878583766808091809513883189700541323076334546841646846019306101086300654508134424495119123810793538909894287512816359133527093106065226739234959822381845812963836171970866472613401070916266656215667284934951911107657678023900044358062167874036953472346744213869499734283538502659454459922096062812201868256614481457376814950483879385222021380211297183682103616720088284711556336219429115603890785260414670819710696042431110189472836922775272971033142794301191434578380127300562694177170978980537623793325771517853378545741781807105795479545634001709542707925284283481213885550596743376340370226630818033522586783976741889505644059743078820521105996437076975664852500333403190409409834299577744309917633038126541538135627167155509663450931217401615346597110592366929553677410662346995910644484645122138179486830871788703532203121664147871684656843005391997718197040747967993676301377860148406892533919699422638629688218539113800905014186693325783421750911663741803006149205938761872439108051306429348106874638580461663707946447070570643981711929052831298718930500195986654278121057608956355959057810013370531895754043815573019023187980773327786178434327972414228479357971639032527554270554707361608794451118713308621434753204948089946503478958171544284494663051115094984838543807164279418550145940239576297116087139913662210306328647823973072729363368653752201889785511160153924514762753514374692498730576530263495946500685428181063325440724773163964996786187407793086306092631132052824953730650397559704882671737640927949953391861112911946971231251589934365830609404142496894385010426360605849067149454864012899212076238176489034481071561714464978750913563601052754808871796821647571721933919969474553841867996250429197250399898882207463239528890897924184721615058471450027927822734696556259689321012872922085028868369008539663729083849270427887950016134221369502143570208510520824506904077346444562871984091688963272153620746178264905518103721782758193473436557053401616226663928397762092427526137760027359870634179535832180393911855446500395819051514004413357143689429766489780086057501211996274519308404738320340082530553655828761088839422190659026151391335944305748371165630969592326722026859725903119762043917608392053933735645972728230940532506656294999092944906691892916712022215638143320021114191873046357857219436434236215354186821331647048998447740019120186841219444623581163688182665761312274817745327408713797267139373135176921931162844066468885433956828526607986067986871040191113333484311097449857885727342848430975196778300187899176581931484974383509576070115775886377169529819460687373899109698848545903739791907039678150849229128451148608633327213526476476840284177460419412267856050051255191028614523045179070230942131018461725782037076121888793315984127499702962708534015159799965091841186615124391163382054223404335523744571372217319981164606446180435757372494942664861947518997972853718589831335491526250627559732098146804047057491973460639514131799611734485013089259786595815460938792551329671677136662390158235912545530421181635829823877941441538968718288746838729409488768249308305700964580389012731329987382901390566802703643602631220165578818814288594500206013199404537888113421741914222077611280613593224195941290956697666300075685979895047205719973444878033841531643785684282053172004057243875457508609027912604411811770147536877487975581390205343770284572866698678239309571517769916631491554474236558287568879302037630305785506321631132660485234968424873782532922576869985621872717972965715969435789838691314281454697037302398521076584554976026907511440366441988202596183142464379531961953984491952409886580949062196608883256466971613739398485215474137032790740932583860541243326034978527137314373251897237835745662486375241298199904830684277003356305678569284849092527303240865904920005907936502102955765809253398731650839540481635751982010508816724557670377103284306707436848397544445447920524452315931945179017591863371700357123294444781039325914853281958541739807817060981216313507483455923000356385254596069836684408636507131907799596916069478629341758836349984684364292059317994662525216843135172908062892041093720343602413259777730292395930943205352611261086189615101783537138392719786308328038134263531664544000096293247426308077928855932997825323727709569884514104149851652097347696771328098662966122849684842148748805760184348853347760988941732257123662600206353429082038303732707243831435358761033673289907858809147100827702549094429149624294974900323288796748611182795258885793858746784705848513475338044699763371894544624294657832856669465955651746448402395568282802780666851164356713984838406968972928822749923795948614565901383586304947180701152384483107192799335506298913029128611523406126223638757600823736152671509356357712059854417056299511657181408283606598692995935019813764141569151459186047354504672599755429109672263280271302669288186713919680149055371389882891171981388119379531522731317106118270089876735021557772849571459591290367693140116110361807517937677864376448559585864361881263917807237866578413569721507631556035516305585597447843618049876608933201777605880778000368688319090251472918967381389953306653367277321035883992515605467335406611844233267403662907875620582421112388255060651295239374234543584384789962639358099820556007041929065874492582095778309558509035652580307015347996699242839868875578462920910569319938686133210591646099283127010208299472084093724770958477369366037147868621660646696201503334066103719856084740551933194847094818408775583605384883506680253145403231848786090190813318112013488074547250515300154585648342945088635249185976645444598561495715088589472412621826037296717775231958161217503137081855141823177409911176694691612500440381722653603572591106653346292635452801432752257201218160900404127490107806200949880614825170744442745562461538520242072967710181157445681934576650621565321153958641089539384278356173627756091035556067324370361804186246148150236674082988786664184024603123915521541406640748920655222865593824035610655554785419983357794735061893717894295176640340614117358807621091048163630986866115152587886660871493948958705274123610632108221661611295008669908755111668491027541806210188860709532714370838565865837213029022300756750909449181175599085828597774861932709464840619817566593263237801176602402748552825494897352711232740644074442929495349724707438752959041752965506953312685153097097176895427386264045960916921173366616916749925611207710105104290326018117461202702346934880219005595295636465793437564949075773236916504328668623727569678677869929599357055627695354574412083258180689468005282036812485054419658828483774360555331884787484426512226539735628181241308485209210590384748441141115488802580292909067585133696096791966605410639346456868118556482167603502738730633195657308665652600973243236075309203274927615939178322367190548702503781437384647301484260145250501644744389385423121625420036181639665159827428805814881370091041595279510135619931409792863871637726011049236870823058597420075227012007436429883113533913364652161303402682944394151879416378148227567522411841282279697683863959838908744779777252234309736299812557959524928331136866089464989411348537292156787371026544432950395467600157822657375485321917732663028069998781037625528853981095336942642239733633132866945152813421601750658338991375864275979219307472426068697137493240362205621860761226541464563963499756531723658348401345002536473929210711440865668322284582487499005308918257656127926665090679778914518160879242580709555578336105182438396639521830784229184230025493184636345040037143854449179122771653385837030862982559734934063401734986200707626997925921623619456837683751024926325883833443567945712837452907056481810146375616693614939718371518765351158120629779822711368273747631658304992763962896850509726527901036507111165141408968948912628174844721150069277845720703221060758672956640349410340784990674133055199995996610532855315658952175671802481752395864593698812535291009007224355465836601810789381154116133253376895385298571386724382329446789005959930947252479651688084985406561465807173080144267641198228378258870418470431591728837089814695802444358915215319064860690892819106992067214467149645660536593324625055379536021700604739152461452797093459805064552021081148039793205203138197057830994660877137874030860987035023200840387836216169635077718504927031878727094386729814266819997056126853147522571496488531985661074677487845695231709687984213860889710451181120055549775508086694095903983203513854453885410983829504565073395101237594679664959283937431136782189312867693745094150869425979308335247632000437491567261033668262326622111279720472628196413888602248449668163050924720356197747857606467959268591083300900640412474328097470124309505816729050750463067624341383197560896733877000809484346626745276853752701241528735171020284490123628915263134103175050390417063777469591897697924201755109781756043205200037517780870627225644960274594875664188989216119166550982759493695626586254335297042780815160403267013757157634244997167584509574201853136142460342833877113753512391230989456441723159199415225699754905868969830995620194549225967289934772585437955884679049074172087899245284433751889768585142300827168187816347180232418318739290538972887726118338325417015581937897903758989476940517340422806249516508388547530724086009654804783832796783250261000836404626209041018949449630707655960306730969117203937584280196287820032335290541093588012075727257256305689884152113174569250998975351080954972115425665832313373819504365963665991500356119224228000485751553794106126167732187967052875776464777572784713275194475870392196518764624096776762879078870413538442504764708639000904970000971815799467359683544139831984564469326230084534526203778236199263032093318303902849202333014916733212726923468986885115298808993884170863496864396442217725537286322472075343319034710149526173476184527367028733169503562145412771813661764082098022812114478792530197547475501266376516526656507847000999761572857183362515410367767866501050735717542191743827817653371527846859013857651486121276276678665150330369809895516845782834875809100021255841952265687361558615172423205922559912248614652217767203177427514959154150979712491251047729438468388295568201978695151355946735719821096128397725707520971500151904780760821061364374684637451325188876323892188415772290819756675677195826855756227802727299476769430112181700989908154922959073666829593092246716175691909931623854475379154398482103977942940242344453914479033888874393393558275222776659661557170273867592302750574288146045859880088735504401552182667314228621116520874125190434375582338484012577305810270803738956416398985557569316558170161084838865549058632517830417167093164371196765538039963500646552863628333585081635356259021274135717260292252048414651233655478197985352047555162717609388264799507967787872016562565282761432187229891446176172945080030255089201798324770904207363130180400446637662921544177948874351635692239346317062910654917700119044442362065480073599911704474323873544416942867056187145524491252201470535639951469704792157647137686767877382926757942072596459184903615748514631628403342092573637478636924103995601786836266065068770802593055835654497720613960919244656619224776841533574927206857329912658494647891626150909065154500397314974196890841783427497529050780517925138567988687185281906017643447532202805791451395624901376304650036392914513709328209703226975440654015107721737416973749891086541618012220729943922491356141383320231198490074358250494441805573468249570726033821613090527323795130079280055394979853545270590472450347892320312204107309554874360016764705170876275183330496308836275755034124457098127402547585009135551153232651573140188259158546322936224183515881121241515557011883012129001495629626181357613425461522439517042530704031090113964963113894836461510687852117458810630907023971161864955052055013860667173401487651704117960541781290282949790363957730943783911144446403420291706783839625758310357228900824569385302842160615468865883269236597199454715771238538649236368731605547600883096177040320719022266885345903282874505896731528247952450934754476394639601646991083297934063664419722289052557505042609156650737775836827847087752957929465131082923795863524237695017604804772841478577898387620799855916917392612322145142717171449626107736509900608366654932285610685582461338440177433598866352138105617847941597925437984871618804384741212986070170809552366439585914759021604985498191918167122081891456260607416034197275396304746628146926612477056923179805990753285304146371350331444321350713322696269639710250490705032627482260260655376515058756422143382095248214836186629917289148453381426348984288526424853301949832371068977665945900442851146754534850937066696407682967783631692577650245517291693131523141127862033158732794526056132130261124536844526143981638103582729815761683273524936718614279967530019409949697032240610333795748718238876218942027168562479165348946551955319272365708319297952121816370404467341690755536277414743965059728506553852730964805827826699246101076243109180438496867728983008941393853584018489125146248934029812040876829233498476892158052754377493580290963556728464040287776761544069837606425321713154852292919095842488327512580860887706814067964254201624947811175463585089253958535680522955844235915163585936540054475331269602393509314632602140786468973139605541842569398161261289385898047720470653714529332725452800013415912034613905780117354442625368950674094845860908330422754335435319045820493929663379347206860787196865290156485925943426097931851409777525225881298734783183338691115797678267146691366222325039855364354824190952684874445023695781155560536297101695825662805156782386905289437952013494048143548311302419842525316452564518068106610799988963541997077325878465960489635556961507218181330117973149173133825011769196886356352527284798517334102442562196315135026422414336532171214297787813446667329470633000091381413253789396003042363157377217641812497227653193980625878275634615447252481474748399319811842050256575569901100038711939391211108956799086449594532488767418699232354544377968753332907834938532541961065188451241069898738055324539932912816231498790914475779567278766037023898436535077807573025521851954366062462620855820788951520767488516166958951775815079045724203000854801477498198454249450262915558783920478373915014748194978267800905032144551656538537311077533424599741053650639752431467643335722468736851527327581640732437778657677940754477722803549251492115618369312499112526075008442736775736991805804078037875711430856405511220101873270489522617967064294602887901880470925589051562096621124575046566960191674903896435588822075028257462990961360595515570474170584833115367935063020183368987095023198798715765284135959504707964733924281794435373891842599342141537575191926397165564836575440899768800471404972834325785450687674287202190194433015940773519910793555254482575034583177306680378601607390038199402077571869415933769384295550226208492989405932521368719939666205430774333980816106925823561064742290189223674567094098401230428182569554292561546084661350322301286945232386573280860437238462894302145668853517486861790514385970252242301985971824485059216934173435370757215563846477626475514481979648300368547542860824988504521642383775394544017531470044665361176222428828571404270090091061333113310030304589412580496662398981982348589176938480708682020419012851319814489602007738060999627480705428977494248159404068999430638024201576906141478817628831946643386879771407607012954523760219881600069920025336052668103814478153915171266872565416692758045627023302812916642662491710724202286743396130974583440070843859240051147171213987127116800882030538861492985314159389200458397840256114416181605281092810155377345164051707047207893925716960103970213107103257234805618460166889546345846644902234498182092539237867098881536828324745409275577850029135377376185223235297916321130232081105864505019161564834235921237493672665301891052817895350644265956152156942551688053409101046779886074590082598637825782632118118471991661374434488940003572838000718038294563007145002956956009921342008350117170940964673808923087507508448166389071599728489388675439283328345171648826148130014940807230273057241252628712161887800513069388031991855687667222926303006332073788159239172541486700123910707369924794737249947533193722937493470342993527331867618403017654386979629768628026553009585240540729797691884674920076926812399759491750965847616739828088478623944028358123614170479217981719025691631080708758395934671625984732238367526057437172804886807969150139099659633472511721138334878963878481987898052752322792953345536378954023274838961779917420501287387969632738592296200693715198229913344636823845801206412042468730873905030089786893750800127492812791692649132567138272142357817039492602353473195743263779771680737964859566564007121957692310130144504069416639123428568030894800335135769825112341357893987305222673663495480517557106228502408847101732114916032038535827514212806113906780459113729167141685664366315485585456653135507857166828981706405041098387395262436621671415989849713484238776423458538489762798965120588339975074017637544605257987945907824115582988541801932250564529840843770207650616813056705320794931847606442578126034119337597943357928021543692798648753882081538447034220796455585609353810780832180141215626334014196824243921676630028764643427043967914887895630405214177929635612254865421813149252499628969806212807115239815255649823674916157586271101129139348263472453492302550333566554584953104445316137551399923577963559280809254075566144870192496847007947677773573650857841326935891160449082701926442808670817195857626745894232148178905940608351434374407773107262791310511460485774511206233154393818175382992166744704723816399328561221393040460628806262181173413846625733287736261677973354453063471399617673167293110065633435331767273097519261617772367803512532763103474217956674106992567793097905799772866703060313063940415730609817946366544298742140795279911107537312537920826813310304221108893051403564343568764416826275778985772951833692455298794631193196221552560917222497237645837563863710215890187294447385698708105433446822907436786387819044644967549422134475734583832308980791419645611779925756041895144225348872431915297798298843225702720303867497093021097180524692540455589034141608722999596363871617066594418509810136494304423896263711993408096307655888088892213960808649060288044987183788466433374958839741022922393597175615542848489628844137154282569070480810642403091896802174307218250675183744898699367425303699781338355929397709320101076063954840380362770220644885577999824010545267450955429972454978716347912872021363599719218212638696484830615876547508995548591986296799858753194636236461955100155870812295097663652008873810663584310049439071406698559145941833670683982641661804458117801669888752026227214425621451720915327483872023838638472382610680269651575905593573450055061789071923536032916017913025598957482555225604848361875278777305667340194296610849618136013900204358663157738890499504201483875240151032758762804176005569824183458811833981262801445650835639037616124455244185640716724652836297007209810099544629880907444267586740047227060310693813936492003201449401248551809855230044409188740784238802320634399728150459884970173253955128920616238897450024654007445202380423302987242325457558728447925663273385125833116017134377395369513471865463217122226863535215797712791370543415079318755260877551481591155532559326416709710830113761295330481881891052038706887425648121731556370464657306661053696914617659559867694318390656415792868350650270686650792464877208838360109034796150374266472957967952733775937993178030545600879019657854191442024482933425663206629344564678127777560685497285890969445304540095633487597666248195705841258195226288114660068373675401097758646493567614271276664818410174769367046493979922392069145047653824600349732319621037786895397972159316855095858315241415456576131975025135467965245883790815856664880382012558022826988078127343861001699760032736026573811364701807320669104498582372548880510087250933965961124655058757543170252941325678344840647496111625945041312372749111066583222955803734269954509889755980351538158268950008656880687999422052811219938722390214427901660481575171022528793708158760032467767168866316858481646467741714989762339958112861212670870988832442939156608596647944748604421869898290404157935516980215141977256491869205185836428802892901000079849961530473684138163900766700764928390900204264687462233108568788469455381664804461563649984836602281749095353911145281093941022289593988047543815939033153707626276228020662022828000911512827382534783993538202792764176220120019241440294659207338388060957873094350697155638183571843637173066234065752149687667428479986219591139628065812496170791024980775828535531672761290370651509981828097808584460591921623856705361794987652306227520629135011699178235275633812436776535907980542558129682541511392237058227093156782887941719252206521798942424892602874353844330383052319971449918215027026620701709270790103923723847568362621618630937490412061708115287452395084312068709987843533272618808976167148343419733953344504190927942119857890967172053844653134230658194866606481225535813885586951787390325269387341621190460966607889730016656273744542388825275283539075335065188232522717152945115944557986282130979383235410046529669306441328171251671566343150554474136616381171223828141012859129200872604802754211788855118545504353014704282630701517514297378928023645257045889064655105600120936755183682461610849224940835950375860122072109206934245949350332314477139740728125482309914308034244201655909098868103822197437659146712470357642079840876827858454598608296592963262098105266075936526632239068695258947645873938986847319216602598099000442114202331794907049149647972292116562241516527595359646792613970542697103461299804322506032421185481789674278183782056729433034807956008521860073547270249758352072069635705119259419830000091411107617538456257120569823423590647116898097089011724116470205441813892937064181630658262991527227584102272533764984506090752073127572186369045921756545994056394927314727394301272424060846135035352099943127484954144228620655350867599570699391434161381283055594969480126088807331322420626242699184440736152444271869950089165598913308909000491097107580537865588218954922532374984011484869513451726127345944681182992005544557522608767726558805553070305011827527889896966561341114966285056333627022161432877482129185801315024845147948031007337409233926900106179128690167251285083155067776864890851310015154006489389675538290274092232872700724048456657002984684021488979534593860598803523721426638917359929387483195992067702479630028058844922465490702192780994460348668898359417742825915063184333238752893103064304817018945492758534829309482339289584213003056644586803236189676702533336910120214513084885254285435792842827347479315150088822917643393072540204361276385188718067610242027289583913262347634101880659758053078056981754118242560860937417960532316316960973284187200737131609698568167026493626863632918799740193135496656149905788112518856635041039313836564582021380343995221830578991997654928107505209696278142257771436816787097594845167709516918037623283019581002468015904051922384708931773293337140764981179486016005425996005579075810928650555283037554416804963841684426540509327323283217325644513163210200656185253090113057855529331567048398895318542205458588233054052449291650125324993092708199826750715670310943116618579333045088686201523012919962105717051315642740227459228145168921413040366419184771679577438198736209305320451224205786636312651882351666810135701675648752029374808462836493343223823722592205459527086260275435452591502295321344007455094284817487874853667561543800779884684581503790094593823764590811466053426525044271851530349634193701461468190998457985210412514877394438584377967882182619052510141666686713469582472848374646817728642848404008272591589892317695182898171846475835766664357604639387759493717457379279176437965688189023987329376955975704558213821928534471848892262683761681129688729517907618987492372617987422063501943586626237935577428829028202810443529809285337604014616283696042394624015284483717610763107646976324262310603338498799583236319629781928533069832742963727921285407540564850847531923851630621803475274060380260799277407630519693122191365410792634105294029263879256691625085041669168617521219239491547152273416275757418896183307341805381640135268027766273783161607082212291173544411310300435118102820560787571964393240768265874846948019860023128170639869486208856186566676603092900104565453818054568637225574539723569264641667523917875376827501752229138926057733102201796346241742555795504050540517401326905034472750211134407132323365420733618014187968433830949924493350192220282564446383161477379958181539806462960649339639418062043021386119539661871016313877155986598469008464683267651630877062957938806043382557603315070988690572221900945948728812803278740445079972201125325912425060846925014483896045832035020011566102968965928213988567911188196837855152566188090248180499680582914233507209583884365879415218517032432046237863587225454040193071985641833254198398099277648314872678278099520076806892098971806175726538818423000452318116463315523039557046831279899202595548109788472604778043740731477462565229703181648619686681669707846191282257556510704680711295814738799947160466806616679244851888380200623280758795618243116690692101830542744201983556100465018376574451750775699894624438323324309118096149376407074325958857350169775768510934139429963284219866067691979520355633159100779842858255843209778569059155778093054937440922194093201805919617762911098817711665743874928617543384964073317251414224311701058603351955817887531671002697040131764457560504375899307621974145570318440320980131326485086043379872439139777992166783029322434760253827628872578402938573682514153226232237589140852114672871671786994701491656596329759191720788695671701827162290048159127054093252693992731628659027748588668715066078714623884493138859443216669580865613919472021289235244358142947619758674727333688675427903297391510624715478913178872438591040506038789385009779093678922572380140034818933262891914732540164402693487273991793848326318349785612544801022703064334441241251324550886505611936248168791987844131303709798454040763983176550202317485054804617766487173797284986809717868423836748528019955092064225593150402134238082923124104116014509095415054300730775520249778209224626838105445992134343501782048560663365669957565747961121078714894093394234766472965924973030301266143330507761757690203884749785400661793585183524887718722629737996323268337083657907901033089328335714404575733724704530919212389514992866830067134603867675820592285401326416807235336240699104972726276961813185873171502169473846502461355044012868649605508201728229013462619989020206288686244803315197707645482900056472971966551653388298614024508057395842812983685117151306998479344828117877493780161089978991428592899029770905627789617992473700289990082870586613313161464647159149220310147586269454301530284872777854835777544492287802792360346930292043682499091671160959748341505973343569467145370685887594955754998423499462696665978833418934482311128244553343806418568318192521882425968458515245082745377602709789103411591456963662088225877874539629729209955751353208295845707322538895604680684308532456121208548542104023179929152546381854936045133145962185746725456983997525834841058348108372270054165440228810340869311177531085406256776127595324758713867857304965692886367987321634937754832030576183453610152724107271691033471709015054851738997220908471439265199344450756379472242910721628714040813058052518074855388254391928369479793094149117539411816276402989628035551763329284569227448160152667818720505799986732547309005736368551773620727951738492845867802352235356727115603030579139999987297596980598125450038363038018501345003732918957405125847871484939374978989965077995440468243664211791403112776891595774406374042312784455599296742177686018155884150704769232476151476678639241270925876792850162440141357467163436633605164461354175448292772507249122069467342413327544529949085603668562257092580206873799066617026764524619076811948622785800489070501789451820790167587214325380455496917749430819318749602450316637270077412611011429317809381093294090437810564583191979133218243647456378501214259386180880990238832632118586805662743568266337301739193380581707263046133772452195700673836805972821673633742507531463705507662396782586390206790039977273734075766386192264211921981520536591873170977867447247044516932934331193327980380373480650207258735930158950188558826395003608963125579596965921993921088253469405060251128821734797937652173947949093441325438530930665356207646859166046979253017908822688775090511774566512765307018141285956166219167401320162292272483368996425600720690622267567467945571900992590062706736014455954949999330347858237243584843874027455434760006734113643549378001940568907453076351858808898749929763493274194545243525730328063570453763262360750590144054835110833490395580949574483191042045842417696971444880870291724531060134127132676693107718580014270666248325747356132035496777135862023975132186264069346430352815121306682084987258581497353194588326541295355212404986833690359478866692428972540134590928794834963922552121296886693107312112363080945892400418681529448631300801897578611717603895761493611178035769617105457522459136649694250499488810404373252994130319259195968092518402258240632133427563889050645453059118814869024606586417668722269065734976847497466164805934999858850314077994996534742635696559942942680794465807194374765597280644375387407559080484871496427973036246496758463723306358096664885787144961143128595339919481834773762145795862183075495593312676539262737541566926286018364882655301870482005730592107358135595378108930457312828107173905206519328824432019854264665612697996318293516872076992195865922160186257285241046703750592070023076248908113170569766347207085830506849282686197261265701475528184494513064004542240984879808856913224547958050823852161544519233581728145938185992535517530849538762914207496310059650446123855852678096758255709658061741097487053241267343436383213064176149064988648844330022422840776596434546566650874895079597996078520787082286296396089703813527138671027920529143865894730146315891582579274684636176932214065911545370306996134079444268393600906494495630226672815900656522371437480718007766900396972119143337961306139919703374003382743116482513338448318118107882699602532531678010650252116269389275081598854459009981628604576405240987158341591441759318904485600804960186645366142161765425028004789666085611673336243470723209085017268788561323668012054456300720955534719856634158694280035143672569613740985764500016677772196204765660789153290383815629764494708239416209743748586974942884806821221810342878238315945394598488239826457016266754898449131129225664577927880981110311533665357259671145088625122771504053428016154528750966029331009945530030611141768019185153832347893732258443538541627327513387946776717756349076872478238834711923342442847798019108053671114494583709116266099347137904512749694780907604867097070193526748577831069820304282676837514036785078809238890584102782313379097617466939534136242095196295802047800211013078174167286200833692472266085005040776455282848365556217099322753938979363178814309408709924525322360555252811815991469957823539270518781313979317163614595864369895831287929201322775598162552737834834734274841342373229454479535362609873644543004238497206687346943858840177066136628229518183612336816314884910077237791350109875104914073028647141269603398950297529549019648743070780268515518809015753989021187110274881046981934015305559747765959370344861384411102157102304139048472650646191393931826383663076235607090665990862726377851202163962849466951713719000002651625494910726357735398989357414882480271698710982661748712173460391106686320433451301812540635252903748513092283613572144570712334408196050564733228261789636811996104810547041017357072405542374127820302113025931133085560596149307636857341554785481983897309281820917790009735733682972031580773527229027264608394491008705985212620924183490768742962802025867067314263017198445152453813335922963932964958709532686540910240238799160735138049941123003664008032968512251863031911979874942088503369465464361868588805967750569037378094845828588682703029449479481840805995955004299574079903506488746193270506772654732061404857366684917198814060625129606336148129980251103094578530700810844307066672579932557428408171264370998336667288715252971768222301509582967725280783189221991614948587960823933188428115766093059512820918003535641614368788994304130276353067283723260440836774031165795216973010645833590705938338482249649141447985750464640369002643042011152121210278822038137516203688630756656504153963892456791715070204840623629765467103715962838731447768330690409469678638015384039208399533390710144262578581156869818404623465765680033317841277527482166844415227002407767455579182078963368398427504617732452113346621496382243061824580277446571911324736518290609165231543496762117597858608870356869108952374115270280118901550348090351611422027525276627307598602584311212053151869351807982660718202240540773449082840541102951764107258552997219036929421632923881533597931620244121094552950909786744494664366330693569544863592156858831203802516657152370830105013471848087540656789004686207599608710949517391385122154628881630600420284681231029024321055663404705963147556371347171933560095262285036472180227519941398245764210568118249572498146580103441662825640945353995441355827309127637690284198933371685601185595710991289287524615983895848930051909064922770232669370006546872686361569562730066108602520354792378967655641579732123730555603914567472025491082611590406461052321693378051711845932940921064105359119529526358195529210205312813350846202530289490618343566730629741915783196385703987711178746821428613115188568075628394224320697680717736335117844460963348486653923304269024342816233130848961169242720087520484349712881416652523530775003026966152703390944986427857729485541825881511902106927674319437353183908957620914733639262449099860803156941327209737608637505483645013721201990635437210042495299420445531934751954424999498587840728921430758561447622100099102795692954731298625627189132493542451842472997541834691954693528842398339752935988216100407844007032847355133542251657177635588332671573882403223533546666297265658262548446889343712464516767175819644137626190105796676192856688621540852492423641035528352751761914130325977365276728023501269599857720584228868131923279970953605054468437956557773563973695154852065511273094846326531191646721322418374032904486934764428024424195255674299642647108238871417068122015369369264098017994127626694045617832655872260446173828726122542909820212938014484175960968362631632321305928992438154708803440383105935871308479163731996190831418747107066648074106661745318490570892621440534410644030330365220863308782468296286309601125341898823330488983179822477437284055531222368329288901409392895653015314969978344053435992679786558778175554426021339990395393896622996522044030589523095916546601821182472083593416899151151914455693671157299375701261513176715240184060582700443950415089955652959008782078960459294073173859278631149077031442065955950698355821724559013094590690309627271459847805908282935875790301905496436888939741967466266922924836608167772053762526009342700503516177451824301335548933024362840069322814533145948276593453289019253398952099210839889006675164656870191560385017410594361840540894085133375031143650305095824882797110784211597983050285274125898051546687546403183248732098007419748481719635634568414742387248689988763947269244129082922507425734674706355426341131368139602029842844685721947346622251102430080371643803691301625080459908759277125980767233916518049041522665795821928092912249315602210939391287054930099397352023969177060518399574341541898471766017600871193115443298659993905324977004497339444753187075705108655618178748845227739915590818828027050673459525655619787781261557826326277630797440306902698163195450072868125983440202083023323897486564719692664622107021199164729576541635540358001340018800469416797499096910420915100921987770265212333166198245117248267347474969517242409741387777694646841698457119510595941276169272582455933980469896894409008330174246446876660643106625953981249545767301636206529037727028553068213933552028823074486771254756538390038726929043177492991824632661572284836850121144998320574794036619623957968948693515726766136604180522462940722727130855701123094929742889769330174673680335427163964256808368654669076279766374540159594422101910783974961253638101584081729498539201665302347117325715239661474443171325319433501639281008236382424911644856235930921939428485913497442463868567548239154463595581785748221949595530494212152520757524546201841582423168757733872368578839237577412982945247990939659059258976875436824703878063970181142105964181140338527361530293236481383620616749903273532874301950980724995593201977844203548370025338142821528565473231296626753478300241486572853769688077224895536865310277561596300002889746965979975411228257259386312745275356555102471287549717885896286472127436142193324749117062599348454400260960737128742642876613468519338207982055307295555843019687585038861241015013635378496962801721388296972500724679359823089169373484917988237980805358787990896653141345876384615824584350431984028675952976440403389964977280300076376046167269500501403552858431802993157770556783688150281222167174256935095383834818980828793248451756388145104502032100117457992572864785524774051358937689293628907661726616310667182892790650932059622888189894338377681251871450505123308732792222097720858786711199710717524244516231607428301604661587551580814047674467070801354983855399324889734380057921401317351281226473967299002354284664534118601836646147908582067507731893608136162668400856345228214901549382392929555893270598932596047206723479289485863679741227090079144520472581869831850574973587708526712759311795789600017128070888810775514521875974011921809284701474936086302963956548184230732941999564478861884642803839719466042747841271181829919109208518186209242604470083257553281430084516051935168793175394466637491448382281159855304102042972692518135601512333604400634188338526411062721171521586423176309574028713732218919090450996772701184550719770677994142531195355549766596762716965830595909624862230762544219760400680727086047426885397914190219269032245161868670857031976223919088707057712178907737417665712254706309523566339764047121211200494428464318611686268369628415783727637560175172291599171202789474775202452933148840568122745953402004914975136115165375435521863133617872716488393710298464355550850697441271960900136075667358564218452919304183861429942751523171980478941890773868335249130471207459105545983240168238231507702185978240812166277070554236317309124066047759244776636417788667486042972983322773583157767053064808659373539039851786076630124952912561377662288346422903929259214533277524754496834982993851227929727560064309485377194923483762554747997803762409583910368228890695108461160760696282640920801008984230510367774419723809315451410080738104861099901882694418626807317927131572479200017922216850079152263017642303982599630089350311874471152825849234374940064009146784107847058500546165495802127846038067052898068139960405956030830829782110081180089525563679459237286013888961589982505014532390574823491353818702171541425605952609505330781538439872327632375008802390578841114052416654943913077395674902008726547486242456666795456432914008292018651407194148920782122695317165386761330960159238713899988702655578909480644044303364276065975117969415943699435206840036101086140125506393043796621574832317782499371217089290578347168012867573300954731565864933069723419498173470787752671416711055575618569262784662421174930465454438818403494814675053657186714610393994613916666319066992613573586729575434578538811266144274771400735827443138023727806659785354394175464016902290769400978410902929827296750899776799240100542996209035322675827006701460057170067018005399843966331588360013297595096870238158648304677243582719088716886546916623936703839164770726121644602512016896685485387195081563429356498760513355571063953970816462280265133525671775836699564187210844689304354801715858669910733012573202759287940742939700339044682913212805240260681342079172604550447175275333238264380374798856966111357243188857317333604695473172750301094177745777245811687364692323071413079095183769719786990069658875951327752915418807479826049635438985518572834154853366721765086408524787888364839373074532485588364696559288198008211267850410214302805562381562004753843817973684790527610864204360986959454355222027506077827800225837300648273518354090500386941126766243164773362737223863613998713965474844958776294760526079267558408467464199452990027779021078285751817849942221426805962470183097449613657241547537005779100806764374397149030650772438232827945275525916181059965980928866830637619269300435777728252648276356468456298379684079988193702786063413279392375155300468921258975529413636531649106142206620484306555241819760400846391706567984446996472061549081375167710801085563586023822578745334107671281497017520580709828099669464164225763294170387600418608578315954261975090982099702333781415195584988903327476678229343437550929506972950944068693650184846460638390356755255247658232165014427109026552141093624321512875942807263688330422782273446371570082332890798581856802726811237695352967139015476108312085688814431421499715600198569958027638503499268453638196431669759037123214616002571739167090578825139862953949193861301821178917453977733050186021884883242695429218456679629826303356653622737447816422548161173305353870163888430631005466089877482350622706647803389037767276094402769676253346377371237058648272018062909261789997504361092373556928255830262620958640473446719935406312143119632851344666179135597250275827520757196120625221848217224471915921348946241218719953045089303986175332459114470426488419506679203598760971865201483130612492498436815337770430138474943759901750319605500871061428713656956622876327262078809798031600676594523520649703019772166242686447104829899473621220037607402417729124441267503955720173856952097804139146184107168584028436951129944441939710434821348658862863119729150228327088057912999208971103005766123213537531437156682666891680007495823329415010562717763886340780547609258949169583508071950332611566617785241793354506768932704820037097524206855150358744482899011555463140100953859796799113744586492377673053099007744569586988128015890358782165306875171885242667634833466269685053968243582805085917650795956212165108536326684140163801643500544885013785505060976757302114290799009897016886289052497317920108035640042161939697637597195334010753754909062125732411179362076303711754808919010280215186151097194947622525281976034527129650475682127874926242217242230367834475882202602505366095160124179021108650997212981429083503855375602320321763057704333749431188550448703005658347386753464985223701550509438737698349808839684958225820498533904192770959054248991425418832832977046889610304674932021179235289050691060330152394374186417596243664293222986527759608691916594317370250420232385455736318993306211551611523661597520266283797441269559561156528181668555735119408393527560868866127978339027163671785214958918784550265501641624342135793129985277630921894754694529038986858238165904717358611446382586244379818450458703320062077554319982967091749666583229834908339437213420166167978281232289527236586957796622300035259860182659074932627956897126404803246844565128037549502402797382470665061217058525640839690639376095583168019457162426504990049925538326738177127628196094314286024910029084827625487338335773591940215357453990945098654400084086849501755371120144268053509537811010098987182064942695256528385270589219182305880159609028159969908374792620270979426850738124764725938923937260339905185538341941337933603061921780119791577165876859741950028196499908097892176007943913114422109467671547261005027311848040236294390938369686581744574263189657143892672251807149417768830847730978608359802287016106172081777344138467179531658892301926400978530941849287513830713880955486224052112367580515056084833399840203032699359945295969741995866328834126270808817252856858636539740799257218133264633991012920229263647029319921537282378888683533869700671740463207352400187957640419470575016215321053742572193218431296509256539876473835277061340662787451458109499882702048333161468753086895453392492934922394907420149688812058184213049040147274436605877050349201068337191686060540249207609769642446650350490499229873988958660734194078267269429290963790423997968200814193230899845208980141639472741653475585519630126799645641357120475266646644147060965912411537199363828817617897376298728844349843762297657207532489711746746693354797549127607770192289497296636857634253788438593785468493911961582753871025082878800100266591580374555427181635365160702031812489803948809552063164918620213816960704989225490676472890923874172297312005099506526204781943265655862346541098291340627846636419840839472253613261231229508845127124488133811942539635319691428531143651596500229026125793086533845403877854569941624329187656776878026301055273305301319171187565512060474065946893833980093431614927812131362735435268924525140739448216591033983434442701929909432077074880399594494156440610110217811201863936606373833215040623259296146579222520760737112646463286339431429541276495504916580016509831162288544157089438475376563209748334579778560348731060589209743642016224349414150160071545331488502217736626438180742291872700063880625029823129213823269113569488375190830563484393382594092854649846974266687780341446819599505620099123020975648226592818281311975779244501980118040991038793514520268191619998496745715236540494164077217172343582311847111898603219277378111112313499297084267299449148764884500767963578163805772611571248056967226467879102729950022636428756062117342373041556688715985995972269527398480504207154045442829862642003687843438049309557656166461560011721830731095514829627041429645017800057734187200120176553752614862963214040041099410480446529448555389139751664142908939619452402401302784555673005235269110723874928803188726052455848517546423332161594887199015138711914217778898866370015920468913324934823854716428108111112481135532915238900095210786410223189490726617634888188350631434659596328161690226379793769062185017297150836723748949053512093089159747586051646437100511682121878905694091827849301375046957050607782078646097902078452682762817777777869902374441357906471893162444297682754761014178872111947306384336458457468929564011215628488833620192629844773768392585489720568969905485140879122773809341319361262090891558809564038364141272469966964993904206068688876774666691003560804906285886011932066658806915153497845982326526368641700095088336593693833017727290239577177347302452254071565609861729177620369073497377300530643718806119147905934370888608910276895420595036845089055258232217037225981007216744052727515564133343035044218392225882988942924891985346791970409402506334162683689001838927487901243928635650973307341761770134222634660425362875369150928418955775125079350844925182148060675491624034168722482131264934203903171730247133313933793822519407979003252508796965807893713502100530852923824336029419031501262711654135975971647070279559216418621903537973403433831554189235194181662967418320105002294895897556124676983220297618775358992174770003401697489413924072157681322105435856685820950693630264073394157791328667805453794431616221324878517318658536114179449884655235376734560218586069345194505576613405010752534928259612073093653596949229264235231961733359128326726540193474697731702718113425731638031999605575652328332359911214257663659266597426458820217148693206431999539593802828809675164681748638943718913954328116492053044792891721948458692076631456686254767108133778271870227568362697835624508560308873345240602558427886982294183192190441519698990401181015200945322502367675473581487999556281660226865044550926460603484124036120643740749149282271178786723136060149885425135146148255611178363678357623575288588486229459321340210571078272661090230349499079916750669260083764393209867830068673743861652115182400707099174282012274901263533560163901799567387025114432350198247865547800410601572026837648834502753327259529645897683536289982492780415917811960959131393605864202005568523227398989935600517166281200895867317014511639046848910451388020719004883878608724389036634289165763372657284835413905829056171708596159165812814849552207758339356641314181627140704047672974076435754861854756846289407310556631865128449870346511462228444631951321766646997843247158759355179940696960109125762199981368745597652415840991627976517428080950101154355590737147980611283721832346517658512143008934433780541386871586746138795116999125892025561984091008657160540821368877127675429514014697317375288700441566420119819701185342550025035492851435138129731311779152182248033878382508837878655567817885238811490978604051525086225764188639243263383413692589591091869313368694562700119556002833880995611292110755920902325042318928159731737290094918826400045932899473191474861636139521261207659039373643522899975048070925570973317288458167139012736070139731629537468451135527227744658500690782047698559559359833618232530006319727982664230751768574846811535443998337029584927551663888508987874706612912245249798580856878384786444349819235625986937869821475037811242472577744845280481133791807980405967507143905794663840057228270337456786342170974995103586675024462030661980742250887280973372750589858094879240978609499837967040557314040642002422108065830742489068054948144463268834091712518106327072029561098099235387082723076847782708756583407689718505387207538476955467028213555820776567982033932172519109389763310195034202700891322329947513051572908051741090437668590743969083588557565122211622623459985158904516117108228326369959958027107118358276553574937651093485584861250404540648720206385514198616737408908906034482874807874658390283017376244016642891604448304043820507041090043691154136355489294584294406878708237584694961072103153681272114645382687321859849886875932645642669467241392400761367463075030018767555973282397582245199836573124820085444121733826358216129336819987613740627716805179283880390809207027303502005051426220114192171803675213497210105898178633848703003054032006429161117201679698478422066348606679552470130475179298488061716193633297311063524711504867523138523408386788045921669753901737106937719358948017762718709183507657435303927857759325375403344028104027103858459217581237319402136632957015670342211476535464877550298019598993258861443793138039472911184648874514491653485367791610323008346850850871938762011375427378513088038948456581515002109209107547505857280440093045877928290230819020645606071168666331408382253122991672114451996358704071825169016226550972344322557388173871424781511856088987856173041355066430376995441889191537168885069537381472984282759871057119583189176897985259351227261824457505567641469502043146044267189850225761955873744255562789084074295831977970463044158390176922535307356026625784953683889775508280064240612452371874696558081079972549666768047656485643329907121194612970353365842094376634697078958831517313438864946859744787886903200956434872267739620291825048010343320393598357231266278956226452226721042676819214831799418050218180616265124697491129865661042334745489417950062050826910541349457645983043234265115885710492072958908796800858798073343650055632010818978648935604106068524077883529828831514224816913910426020218215916104411810345992049018534322932401267549152613327652818360726421227268170185686023146884187617744977723620243670145451126995217154639832612035537151842372963538518341229465301114305668999707749585716861855119760882282947293318957272702579714319964022001111877502001611778732903000990287702284730586455048061959897556932395585847888193102207304675221418895651495333308563244992200920518547757533939997475098864367496777478242117238150162213258862471970037053269667973576916223752514381496851794440225905072762592122889853723828398823504019449847370949250225863245171909581762038498878709695435190064623712551820405503466587541242117951119288180377995875657993444371255871651097240632903354016189081742397836686382655185335532083078621144589212211088327871013924210985216348669577663240760431444411872117710351252605645113847610728940634586559473018680873437816992697086785439084481329224070492760002260692720506439789198746592805758296993241307204560275069791516570889345277510423187704928927913854618570297532359333357485326181989225122400298916787056686330160345205260158076602723682898188626885622350267192714530936509949794177770590274199619173494961547755538538391613912666156427758510792564137164079645834902473778764453227667471487814601178632486441796944431522663993458382841478697913343368452543197437759467207009578186111976045499944528410174256882676490550286798214084969011575951901945454466358880632825767202494041930135543945251173426799455448066236507202042962052904420247311402593768725111782551692664585917191861312037501466030205631332494397107379650047408754516423074026679807594257577032034171195866399273761892155384701737124665153719306143379141989800629644172742731254241702733297784309246690906514624710823807406078924167448106200192051917362503582052997653543568132839245746664205733992319871133333809408177848845858899748300206465025461200692806973524392550224084760692956770803095365791743706325350174384749305909110074118621018291869140019434682832981389194204944483854948650194217927759556728133853555967316534097717824997862213459852766722146533872448748797819243036970442679133573130300420955639393107298735966620928943510562879055562460502395370291341675185522270809501734375646603801047787411772886905117154448879602074172051474606131591509398638549621220227582619418799805658527288943490282057578505246994618705662427128469441186395169770150548946494458917714890504787672556172198484665752931703131291341894003535621003043533245705576038148088912901529850278232570239466184511136040704615627416013836122482963953961015131880231527677349078090892972874779900341899151824742936470286821660933726367723563203718144543328986823105726203429541925378988565951122690511951264405574107825077345870521861223889009150086896877774468861135086107217630915152251362877896490433072019602582460464922624656677416630283327347611991955334812581841685003681297440367587371275383354186578025059072360867232201188083890789236348365912393689039103239850497683761918890846615380831599087466024019618891677965126402070329340879266787143405920963691288617303111706411280647880743383716379102699814015245108227697685922076380212054678939549800743364928374039609080926446398138783830517868887297578692866660097091331967876827377083643770684232486404610893033555869443969647489843335108334777478711326373707039764730469325030831868823845143846057794027920912342203096485156156990193441571636848948412205961725490754972590654927062091965549238667118488466992266384289733410117222730861676461621635988604190806596635010795190807957266934734741610885729388334234877539920285234876096368666213814517114807188268374304973168000022689236979511343813757865566312715315507604127232155153802379070022538270079851005874433925540336790191399851038373195463434584675899197079024799459385314905096010336753822091331567445270188186829326745384821050873081685894742046488109258559178957712416914149829009749693785445323900258703363737354380893152416675138752597027187983781799447067960578276549204379439723814540027418553309103145687005171903838318584096159014758292900474344646098272977720909733559285682588010548592446132891115354522912163495459741837016838732247511951867502308198764013786533980221347086400782683692045094944125764352067562506091499536415370038115144893413099520477477662593914693167227099543270351075626153399973312960702925363646071286287147109500622934896860575851828174569011907260174738193405263388518429665360031440172149029047909259673079167839554744888430825816496768348038628139687891743999259488697097531401466159235417956490466074834741333611523774899203582451140316895294834345266159344192249617334375662820082660510911457954253862068836321760823903757091508029527189000338519466798731363690697941898509266500760584593676135392026413882302661939707168537827972401759174770636379393914121831805291297935867139461105317976804660245571274175453242754169769057099101073794868944235379124147523149195978914375898055658710184682825922638067855567332437502362663768553026012083577971635399400595217171160650891096405783140343924283702548790055487476478451477982200516747971023556757857881701963847302277381431205956684489692953214764928760905429659023932364522287954773249677794236249869317766863910194926730660914886382008314128574627770929334225642759573584439282787976311390223270337620966434595762840317796762012893107696176024562143176253284102264192821585182195623085125144290400303510997032968380084853871091492353130713630641519514902362410539153488173254424962871172155673902405891061477563472939282108412732225447851164649367590778455000401969989092747221971533527963413882662268482404706132695885668609127847226871438796649607035952075699847831706716951764752964924242385272653548660283871930877333664327760264130346633011583198266626243535554917358405029257793509961050798162274249979326788597043712772650580959655538545892997023759010834272292136128957480282820425126618805490840404473858093053798299728135251775023675179569311047370063096016706268293561911461846370782248172999547001231712703248512760046750566533741479631379236499569812655110604939311048705972082037092469090868178202080176935946381650423207093975406767702101972508521341050992911736111519388717861007330474365222686141204985036052159064738697578610472443397892189390343841200663881975431222489092866572750615186417850700271220015820582048199867324127539639319706782822636062979296125614585623452102923333946350985090440236347428788013394744767640121444748023597947358314462349726283540117059971195934128122623378472756510299545936991531622666980777548337663042125119505029212841264583369036597446259471889049671931053352540070387826278070775434177245366665538573934928984303987194301356342333896710378158374169088503980494401289308197474884401903060116758213924363890065975125309988439927050642365942000111118298598211807574554636819935926195472691807299824756499580806355383829975230565617458814009371497080536132219026483907413559672436344941458481328594236969798389302517281028727414183797358936672460081811023962108307826341779308775920604922886775033249649699881563783459053897619800203604959144878867298219628329701612870857729773638582415662697424057364064344407227877823079261721199979874760854435510087608482903088681151307764379378366877180741159418244772265765512054652979131698730841666123409430397583032299068317593132171197332275301629045572027905869522230693103481682030518905642210080456101572767910335355184313552913960637757010820764259354576900698887016329477959412406157756997346244526791220297301446256159914630493996295592098154830956221791517478020565078184301803807859759283446146187200477502283499867519542025882768533525024345859944472181447758564292044269240773653268281431645642585306879932559700093346765001912703959711338001142101972989618690976606263821494319733108171137170529328943654619218377276757592307639744886203388082278005741853876647058246170498216519427231956421806943668381710695729894147158671892850837019321618568362429587696679241714111707686211261450349804129034600420351218683938246914798225763060942064299657165030828906542125729322616276850911310348339601294435222201008389745125303415865311273378544570372556091993953272444725451976140403756475276616974210264410588412761558505144405311172638836260053600938460529013261285272753184376002052413845586324910407202791714454048531048426311071998972509703019139387091342845480152943512839787032568006261028791731781828925249665643426138620584094110235108779189472377890223245921559720429970353438526653782532854291865542865568117772092279711515531547285010931200913821874534912254187723804026754969479138217836473050016332624239428288233008154512678672912211935993867875999806172698828289787179174555551028745691511312155917828452214014168299169983716214895054850781249468651515408702463121142202940853023310350358022200348938502728585713152076105651261710798766584335482087950676915983313624025720771072369506857871560549340563605443387453708403675511240160772501397249889546088852112006784111109395715292122917222641993152548060701807952173496370619953379181554055362804805704171200023340121838006032580858998832587709869987158261806977459544400439871617044679176323413452778282008155419494599508088277049354784338496477283448643457913579262201087412037404393157999558327623810878494582284966189014305675268961209607517823568238453703876141884102704783893846443744007086786709204867296654624373421948051182298630009842439972184262053577309730965491088132519442627781659739254704697574152214909964885015530624673597884471597274647424678435136588138390651302269521266908864342473573620203763592536193459497837754353456085301979588478529668854717564495486440176217874097038853491699122144551194386266586199871168964133868747596717555474639471701563731043024943840497021564123506850999962929686545130411897077804958743503461518718498162232026780367363408283345586683973682376734383067150573029718067382933056949078137764657757979354417533388761234624089225614283709884649389231830748251088081499674669401892791520822550616117289498813450440810955458383493089201260351428551378197364763442284160340416210944129815723127039979362986798728105059799287745198753239528486984143903150157273548672727406647360480689301978231688165989446739575174957778307417662135340143166868209476200847614801003863187861261575377852944207330894300002144993650463584293170903775891827946875122377257516461766818601592940981591333560268201383631085642241000330840357984199794443368604315360787735950515884784758688401871232126303328335281628769637211679940088938754863520439965936302472135970655420622439534918526839484903717936668174215897146095829790099849318543686462907360864853408647408405451663675313513753791534464845922862317529196084882807881429913732208496283954804788904797300104037991892906164875867686698975999946176290284858441907993027890682827451380125566911253364271180489246276045728508601053134600694551175235904438930957475314762619758171588354480661602260093074027949193988760981684790305658858674381821671922941580869024828004908450403042071631983980654926734784872003775518636449019685329407013822890387305688718752566445931118433299068838242868700511333208007423037209751898061328768158046614241730174544495571149527164338423079036872897601419205720852165316228217789992380651269136965311409568983532668263358548052164319291055869571957415392492140035455119681586217557800871301455041281878270744406473733008819429946375238090390974484388024269397810053705237078789308207632731103094141277041662230174245433010874315326672731393961649917187129566518010389452444962244026726468223056066509272570681194856883557570515134990621278076324344670903366755948474017157725429463919814082851262697455780764224325197938830077613170594543073681397652197872732826302461224091428819535868459606688411366594580352597573991369520014154051250488854544836390275119583450726158506044079826562462458095257600764314600681673290166368829591994916570743638709703993356994608329320959564241169052126679649894188222871180012772251918526133261012838812065263519175561746348805030629443317005648115342143113770985848533780282072007548012201720388755666301635420294548661498757859569375345842828753069340731289931471989703583636781088242351711452944780100412761929808478144492654202562063698859065891771174037161578258640251004859384237424926201238832794805085206578634631799910517237056330124566955287014967701251680682196984215606022770566027082724735442272863745215111346107193251896394584643674090575299231364745843372129700060017381790371753737550032116617064696299708534797659899801898640524414280292430995258539136246112386242684344480862914784834188074641525620347064857719072733635274207061780746780164637332589608799090956821437578581459952502926953080791792684607677350857560749775572901473501242654967969504506600092509897328762139699266895364226266760878122653831349898424860295619691621503133105334881945177302761470489363348396253652642551468922127448970858797614375693400794981227159358336417188462842051956713129517323464564988106622162800390618639337863610800996349301044399876924963357909745535135238012465457772969654417090268030490892288070977887066286064811205764717593223901917900949470484555517709053149980901136342574597772782258674642098167546968311031037960292227417345078772638751943797356067814652457855175169490250547854384334077481460914986666836694112944138313297733404655335937431840872660913891885637599947098025871228524758139815736023894086186948408616076194609756814887179526486387724383013687974300361733755633890705527551152049426833961423350973166308816476177992478811509558959358418987363847246601645205754396391201585678813762223870576422153659971495467514461568086820300106287462568471001066611576940362417031538153616469475383156970997407516810221913569297450394982079168426399049361396915169107167724954653872156603860607192702559604649969725248572909508489123239010767631809878303523463029606834383732956846735467504941125856369072046959877456852069760290144429677224794280236671110024944998997206438918897426382828034271352277104156076951529428357865164708325005087932202541962005036497588411245357989113234487818849732900443193379031255460567069309230444464518914978071404083593765335515260544331805163518265233919410316684692833677671632590239239467770933445896361713574777054928337356161661592871878482246561537049920744213335893509888288713104906216499714888985443304561300268526836812530545997199829095489356743901838953713027539239249462542812079262166837431261058391954392205946261174432453244592617619491353491381018629397701758421055710981581163447123489115863347441766913335589291206128693818772096626480707644967405846870481844004506258515975535395522505595199307218996086938649018416295298244504609125585592217967754498371180905080630382337869670087712802901647922999887275782198577895842125907341483808067928589126823900518846084537914849234883809629672888010286452427486513902448018602559065042437254350546601483655279690997562529037534754452007554971974104743852951937077505562136230043769880820738760634716617688940135347358562837522319901675833581983379320606728018653999250356636548541436487466283480997695313147144016165883662915548553753269378151089148500026225378458389433586627518577497098108699026347897024763090080886647721180828143775330964770816523682996722073594854006945761863988172262831848160187003732292348469067876588014721836034400602367537313994257109554593046280952557373614945921997336572316535342061928805082428046705871490074753717952392520246795361423154218780664513949510005668751323880824686522473990157007892812074732422161855505015069972008692499083789845202571856733536528875490386635366609300905062727407948770874517167658638700346817229788260845585503077383640851200401183735563369294953844799216084111461959079453737594772125394349319941940400675492242847834443153923254606019165637523778200729681686960855168011714283577764045575743919170667107231721824849493856864763967316590406725801489444204999709314537738388806484596385199592249195875837302958525020248863488313880673866477937282906167879655510547854163789933976522263287262133705458451524811325623344705882012535619040424018046015149056541642408020344941024316643890849879110246509465581382047281679265481283346550393725919240066817576831719601275231474742244408373281097710414103854178418812621787691125887723782562520087786213767602656137921863549094419508279218741449384660716554104452167107560722818467465026084596366133157887963810191332597906969294914102631601121626205558223897164707456602068367360132800614182199841512517629869636160300735045185295493781720665995812377925551443174743674892948374201237320752114676009276232668267364201452306474471845056960999116605767561905439275755669809858861269033862909169345031427926366178891689912942395466039575358485347845763318419907917496384291590554419561709142808614686418317827195570990246016447519285214944471317880465913110104426665419040109051885038422122950917064805044508940360320230740287446747398014147254211634152706642894711379448414165676304937342033859006021907949227443485150958608246633486875948933451451365867708175672260270273144648104638898264789045781001544754960191018110331461155723563590200181165674075066600653697808100426972877953333950055546199005540683046137572193389521883690825992115098992987825532947532478746600086439055305483420269060508941419399238550187033138714818131738578777769936804240434359310780041973586740278755348849233946830085254821814958515986668369574387133778168229648941886766840539575882292749356371928657921040603817413009978785140408463583174604727144591587074265001225426372563497146130253031112548378242612619306696838272269570057052873905245816220866724357310426825819104383214387056405585656734041260774516541932881557991971467985992840373355218980030119965545999187118752684351512441805949331807064676012875286162947863979698222433599308333168485493313333471248043829137709891879099329435575265864994181160068171178803842465987489965688321133128575336194013171983720385958929179627340638273567532362577985381575140846579966590776421050541817624431380261506563096319603236686586546251540572590042851790440936228864048715646872438490896386898633464216642139972298827452352572430890548131262796988620826178144485404594841098411956031407782543423928642608987573192821060743462001163994749390877423243702620186396695838703878248057078191223818498054829965186806567488530033644414582416464632488372727832803964324906512631553675357788020258132732088443285393053302608845214302021827229416803298837945762878448273309467933300365679776125531282566350391725994680064079105719865737485762627577344049058784077169228798152643740541725787025601135841653482531291431006929402339559580954118694292191577231595568325617081367631041194365976522442299690977552833848633549039731167741789233634115821597048057520757130294527935596056225512608516324658406576351724390321897416739208311012811070569264348999217803179457832115558248324100470842071745580130105079371745384366906168825157230136238058128834650823051719036020642653168885446455378840609257136128276246369775776289425621575258495025030558257565014441322930867792125019136189110433055264644818102153307943931193776806058176532734902789157234563066980342525622385320152015367069154414549212954713149082854847220864210855963448564790385207035365419172300575318620178923881795527319659682093609807662955070036758996540635054979015347944298586120306414095766049474782812844013587830155928383123897783451813824258149838927165435516133908015030370594788321202985979770768007759173952580550260530274206694407929509833415623198724324118130748009368949280655464570771620518776759566683847977185107652263701351629714225286682736939919031111967577724849804547124553538247239450627604844368180545935838878754470396176235437711816592765654565163963480083873492969184456319420861248014052577726564164941524780094854787407976047822919570381895896017895907758298736021208879538486728202338872682343790137574436866915769981804189275302576231650856990934144472756254492018817419815236646858031535802658736708958825279047656540333792939327387935075996548699223222020224628854672745742957343232632887271973277095081562239683639233918795835815016873528649804991026925384471980489867950168899366374419888068851965423992092949689804151250620077344612622032729688837223260040303807484314500104851120589816262525424893470483581010641648337248555802601418449026255381620504691588650078770647692300760822072978902738799032477083148549243429849972722304537383277705952501902433670345854225100445853346683266001784700580570783652124497504210088747521631813945129172375261736174627024247667149996287256549618893274451668282059579892670523625368703845243801617060325739840447046644085557516794895401814424029902135678430620682266874021927024232321707594155523711322407455113472660883032059014303963703535760180971605493537699846403934963946008140189381441057642179649824023550620819992400430878969861516845927348581746465270412777940885948804293762955044732577235519005869324018327431661194692839945361714071014345487631605998697797722868351127125904606290722057524854345146783258744138661543411670204414047488917929087241319173822955421218180602771870711538102718814031836376621169538010061369553628875498804062060714194820520079468362471747121443699643919587464502284781804633674913201208173332939957533368696918669547767959174899233560129758581046577049707461287918123508886548075121546649733402002896677514249417541366817302444323611044478213762996082360191590938804773176821320555721411610896086429507580292057778172883282606711635137950259289615202918226314646119414878589982631613882584601075222924477828709112231168344723328373407406273346088820962730586642853462838047588718443348234943777925059618183326108848476825157744960749942827148464344600118848898636316636386368494443419421402751596440974811152532625529204546477436235232968345112487919066913254797887539781312042785326261905377083519790412537769998654103678540443365949639679226391464074865256458929883464223746226238487102741876238913712032739811469076541840683932265296521245810937272995464151353991466395709992244826695619429416206201815041967530602595377624980616800561483690323080943061764240339034420538037558745125716765798749065445513941923820189759304557974369809510160679290179054568711477781361174245083617886438712071528876380387978719077190996304678592590258550540335543694745030398587018650861885879443023642526142676104060782107619379860133903432020030955855262110634284883458305371377725053880967601945903639011450732706648162643793883493871361137598834989380500305493603251010340579801398460098054803185821716662032009911427563027234937730464592381227946243148099065824800634059131063003737149805661148199668677684070610852287897544894940583536172188510300155130257893389117036669916629325271538429074527159938172377789028039331961237208266249045694485142257257502363921749220957999162212828247083735714825748576210833431155879679201521243079151870511261554285546648746874007666768316463808184235505972543694762570539553903741388996730269981735932677349368840199031443952815572464575337961808716141285250080448304713190638777546436329344623461323123421444755641374256446874332285617441215132862021738487474243565096886362138441106065964084064158725588832512448743829432284081083085178008870832323327604227314552897017650745888655789665496270845829527977381737702676326833358949712133963397551744385252148587592860324149402686007530173716248295813221784306501167134320201212793675926735247329662806901322721865113065365982545840220182979664585061624183334180592098467704327491994119957100029615524318015803160462426830902985594170133934957470676152175167443338138073245787970902691440267066346507268854195897474041389299365417751722272088443454838386053931211520839350093001059275014602917164718059030157729028059360214258440383158399687909190966318900287560435040095510967224017711441028282508769846608294452360054750110488326585945082681431649118015245092084337373933678815233399621876203406906306646301988285219393092581222917889865995133692150548001250477661474799397414604747001726407564578703114260705043585556289544859686745615102537084097302059439688415101408300679374668584262636194245183884128878354974483463267296908148288655318827986000481262763610853745251061412375380050083740003134750941393699911874933213740841793971357021785174644148186777841046044974445084499333417744903796077180155141111294954674739782333719572157534297129696119948472553085544270938544995882341542214949958111555893660844158907853875728284049671749944612876486821428867195033661072905370922041946564577815014231752038138140937228985756824648376631627657072556807881061269911124500099857200586659264952878766119278276994559176936319721921987386846064243299958689978629227853931408874543645875610579722283273285433679630503643596810437572862789791236987399567053053749162933325774451005018766501825005864346305540752426737816730063461607582821244216768416974104795971266685757930470957837272978723174402634720877419696999914444874783750187063812043738257871659590011854065143321453018533064566815520231202919555859563633228650675226090322369641058389564624060784204749564770356383338274521374356235740029814985701262601421146281121389042770341239495516526569925494324483457381952298798446974759453963149900365272902064430477915316399416800109139311775750150487546593009781266174609872333539924459566999904006338146227182283906356709030385684137751728917323460639183261866781838101849396996110531296632683283809132478867100755213075565868538681040363575648956836348046270878019006306612489261327994285166749113838782855184994956540938968137991794616914514869530869669676513527199698350484258171068676369012523298797032560352993428205465214077415027503834038719857363533866402109777319033454099354058289311924557231600748229947643159352071873513749749183131722344460794989683476787261860191066463389788687491910660065101274468816361761502213481193159833341411474705764179241479192793987618065007510592910204507232920207475172542702070657663691122814808053089761330514613047524395700717937331822733732724855793177623676225963004839758599124383232843206346227635031795062227772049887314628963035896451495103261706576696219622564059003444509977431007103688002668644859912748079427831745609894603134296176253949520912680407414563838456790161333234991334173619874857866044119603148745273653734991398173089277425816245981891917598028558373048930895314877334710711863438073504541015333626387951950589926491359367072866517303628481172712027805072543291414374433653848122263658183314567028972312207728846309946185451864722133378403632011061088041406356883932809514916088067188296636266278990228459555622443010293016261798046513752188979740607495641735470911801225137046497990619616589691085065747086704298423419718997269850624594382855251544363108869745667511758590106984596861894908096631725693737264876614439306426757645675581587284683978930893179828187949618521329227211324347151141600064928413930838419936527346547751047818544390058422829338997083727162696050147135962471767474699644078622391843822044228130395615174970990933366080112969082309180520230701209142944858039349048772763954593379544887427548113684445139777662664696817778487307080299460386896348610513082905729871911266446911577289846558341911005385982199056963506577383973946087756686307866101595090657256461188407969175295337189617042371878993047847837887297304439732170102535137106296574937448554532085156425869411208599145966799077224729990946275189888719260778924337854221695187534002838962576857579722433072252650034183173478543162356557409729753894395361823052166288602447108797516834958956517601585035651557994779490842196323353543868434710070352738056792997442332167894626199037394269163415159774383030324421238624367021675157214197662647167228182993588917242930131709256800674032179365627713653428118931213888520595724994750018484884764516000661514744055483419516329080663497419087237830492123706957475724357732645032787995556453118449753014262145761930619938280171228649446780236891871010673379677766768108462133542254965690663509039000115570040558317576169788497228846683647826608881138348070088017254641474755343234089571434614666212844275678690586521577100875822399034421609948453179768586583666251559185400374426762374226446103072215515726375905023499997204181067354017537815340368445973419544249094127414097035940750146603407113045379037005590959854017933344858081464964989710369087344712574958024943738562037798808162817703861312517768001364299566641932925586345889843734141629315505318379350450063707263550439926275197610805008726105666414119884685994027406181926479825003130431860649810559500994667762000718889979693183219009950360763463396786137256311798613016497217350185307179131578619089625814994381987398900547501468032775899359270688636032072293806214646064454778063342856283236067068532559263985261380121677107763927090143696517228908087864105971899802228788878909044660376471145089772027954952594042913095681785263297027861919208832474381960385486800316578588416569068728602807347579552411513292297871987381751357877003072122510277835742424638044141651080801253707565834921244209573997855379322205210593385098016193666035915415536182001315785346465019345076021618748719316025339763217592309315532959236211489516296150444337089405964432161674293388606082093810466183283686495895961465153283576425415379134876150576993131676080519677597654578460629937616081892190602343533650547183439800196086884113017321975349916609033674188188979894851407548288627016511077278787546517122422497961658556392088581603626252423531394535997613853620095125485120612332061617466338616209640019597340790249988731754161484232269787671091465773317273057496161624346816284903322900472354227210658943321560776889954246027168251146168601530092432353288364873547577075981120382250790976793926736288358958644135059370530047882758075903392886391223749621532450822086103681888312685450555580970374907178675673792324804860110412100934188996992387280084528683796087296651717627124999431080446652992147210792591757295630699319984931281672588918115435500140634651209993850114688172604905480861433469609893842561704411873546300108459371650659168536454357694063962101129915730682695710330847626823872496374405510279052620379589030905664982122196240134025749016576884881379721631929936621010829567766761402527766152630844982947126413288957458660289258851860808974370624341903681185531897981237080615151504119614091906100460135261732073551367228590480713631844327441499288791092866329574768231371181338110288317963710899080060423637518370359308235598466000422320015534691883674812938715088042038678185356355398729235402332973045914247669006059444989822455065196224972865033517093554795815700940982841311705104510566123889301178078965007972459567719895702373954542343777459813460984685536163227691166522810540347783870190550872128562229662427732241282474441075742246341276479937565185109397654068679309906024490667665521941555464146681539085027650516627580424208000687549262018338050564289363796173072459047959748194119222445715908869669385249849745156291838035009589893697030920651984674720763940641282308279156015364178956989145780683930154235251871397561860997805945823057753784119322108505543550720725043846593869899983373064374525077155928752852414951164836704365676470290783897362793800522976957702268478398720226919996179454516077060893965279543482710814677653139050913658649849740572214096560950411239104656710542913341562940238862952620300284725338392365013078057910041994612110669453840648195659645066575803436955896427421586193257858430350424491622221505187692536544257607533345814735928475841149903187435228623553307913564383207819011587916684412379857728915430250732839282813396957120365870028903864115274794993996486638788583329616935475536011018442413265684167857223231283558303075686822355464585817343455130985349101709420351686120701771389193789796369946516068963136210642967364810084191057886676585458434385137809026825796917089659351030870032064165122315690456951495607932812150637490169402206817521153728332742681238699101554052930776551340991128492506128311170285499221194293273414927341457234784477076989224662671185084785119502402444912774531832714957590929155068078428158924452855248752182819888101774359254953505697797507092057616224691060553476721667012142012787481296596795842676193977712294887120739349378419117665723240747601880643698785682003043525765249069232285591655548204722820039681984593940700255288016117155873369535922473177229679311796087084761788885615865134665528926778002223151416334877583654158173969691442698493918618766745614827148031364585108387628999722409067602218487847261821321835481694334521362080869910993029854865176676178344694908760106528811063733986796652416359329026934915843581554068728940461305096310684053023516431360790226778973443956502644376282129374387465451039038801238351553658887640562041063828251177855304823522329381972559265886920083783746604408065435864866185588286608734758881698744032090359251814640437262501692522229142181492999643167598053158520693235733556447022142759754498422952025856922238349680881092410960154167342685815706701156078461700162094471314940434808418859562886235763455558149021722685013419299495239285299900881477074593565955334289223568235632931761402957209098022541439765806494374517397140552357449312637906449579408470819951544557516648081211252296502416437894934931306272883031113501971668107388003280554472356376682367054151794655546788430549995959850176207323615510775410827172830358625731107613627849313339069407128756962963986498942095585220878195826610691171266142143201582353595450613948843202238440014762025943641308537755787028550986656532037090944206397374951241798589388773372051203941413075037854356487000566317509348237939181936801002611147166165333941715753458379056657032818804496156654033125076380411982228137705713027708448948509559609433939201648942544545543296354544475896455753822393756290849419405872445075188155147162643025766198638019806616379064334740200872436085014562325278924552861018588540826465647341530660660819430556177780043047678931786775062506534417781160622195752026824460486708022930200320499198992577183958253501380810253263574245444256208315151214262527620041404574781338901310591176975148524201536055286879979679662518640079087287760542428242484268879294886045112455496140293281856706098111768534340449949282572840737976369219343409458820132818105473016244374136595317227838099531130140769138081147390258221190361314737621448787700947443200385639920176477314496981259360126770733550647079065343916127384971943716139959931060561446335102375926807804878802245953640600785767102684576533970460671211591767546764989578714297707093271790824337629425416348187764267663618739882463201992486879871949838346485169629511711234523152514793135496813757319414715582181356850933019714343060078926354530429476402913635205735934832258620947722910031866165718948598283671664404620223055195136278551691155000535478774613883676790866592576858336196472749525309724334565412510072222198886246923953101951559383821691810900595013590602059017304755512243759016786440343422485646155124317501554031565079052918058799297730161618005717554236762246798079061196761003723707065530921706095824007750865341728531259396967042736276774297161939313406468873065368902817888954229984223725281267230050865250816363178600444942343961139614285905780921865801364381977971420654524234540220065909383299810372968598515239738714884666719979565266743092853477817190430509038227162824609454307763196154616207616638146670989161693665643991428727008574470021678449433326894275570588329818612127104852672233741973609686607115133194989679107892536171305288665812907656905037018686250439297238475948671007154853985704661451607132493539956769930456544477648315220798365571278932515395326080765530279728133962298635726440182103068144046579604313991406625715089864217866830388400864287298232923202748200402527114329086558213479202615604067392479501813783476709510498722182014250178367783228425428766109436170352861169236971562601186687389060532553761710150912756495465675166822783067679627365483290336350797382943168100698876948808412617976098437785327459387045895802324814989088936217113023332982681447652049944571553515347876074563117098644643393420794810259665937964327288077398574879146931256903257491555934947955266519650379094660435795740251810846509977945974066064539113260882720813155160499374740077590894401118910738944737650706338893633867728125922054164740530306816862018280246817176891187972372987086711549886695251982454933252520399970030191427130955552259405333070830971981166083929722491874394323878018852138510063873398816898727854071411453634677387052249248809838772628983943563915623262622383409042294427134403307523202332675272590592041790612795165222603781817741357788887509091240938858832311774929205460908746999110930067800234741461444479709898698782732477319999842497549967026381685545241066175855213658454616603290846764003040072316334303654177137891695171424902089889875425333131430782803393962128619335165976237860217355461285281677661047508988986193421576474319032086994811643427717650323286435539321686238619609201704828455776871015805084477369923840573870612560960360469278269478170470382073363631920904297391810636561239765578747262863186021739290565119338977144661205443366679330524513590157663026837147467259687205342895779677964235617140823376192424608689340448750190095578016561552099794499604797779868142822137585497656543391656487126507546950580902862087376135648791568016720900626493228205571294414780625095408773641298533406175017478025803090434806960702053625098396495461138139181730155437338256398196642935648306134528519301091698240593565161530044016200868401743795908654740145194310871586584050035195786576371465290324583888464746412116853561995420998314958802454311895249226588232415869845468335954626402955145567289080629478358102204575789743000486828498415780998289648873148215124389627216204352572261238930739824747457069057409549483012205748302975417388934456181817814148944995967230093630710289488290968810125562604778834196406976961270949690013582717419392774147751513099921192928428908599071897718089116513558412869757163627839110492749729994647240675125590920073661012961374961428115355993478637500251769026648703807909981378553860075113263908732146897830418750693090072118333838047177030167531827083821689172283159376413685934676076488972536634535813288381413993921520859751821449906128377010187894885735610024406890070917922428639458040002427550774745064964370871700806490880099834873368387388322588414219965861496878592553769498764444629535193423110720918745420683886383161972958104441268507931400715249546451923994047559603347669910303119826137494714764419072305443300470711074068191942175434226681843161735693860564133618884559630470350810436887370132299459243088000999621568873352880924709307338693081190584673095424932060716334272391879053272004878331469196967778911132396593463458107251201636683341997140920375916422808716858609883004639048062040521118490466704475714600698648635594106481225978945407257215628006194870214312779246018090742569423989048790879424560666205140223521383272232669686151699510034892967082404880563518048503188051934170416655156515607973169840885420752187123732264736368935388213966293429350728051889578566226021294774025465067542542995935276558284178415448339260723139044006576919775091053661460094026918708902835224319152766475468908949760937067433995027419905013607724236114799118232143176281785125796474526663162018140925353357761995729701913054447697051273144766576413065445556335252409128336871361432912073947953505265732226771421415501133948422061946957247857584477435160632763973971638412102298894305786886687339886303816325873022397174870563800402435668515658992752477294012390226824403490716258425172521332297389365799165973488648902994003983410672958784001051660259826348232109611620030562875576548981445802276603462470180353884796307842217532649698366718459942681132737787775469829898020192434509185443695352829399988424823653403830719071609095012937483989167868939267089157028961295662183179355841151840325603842552567812810756730545227418490880173122450993779030296249024255611170017986787454792178656172720461219423230037680845536297995645885707730238296769894501577977857578733192918406333469930340894761933347948470745006003133708216003833307281195035827322773724501786257086684796410385704226162328170324410314523713149607992140729689809015992953803916761015406025531919235328306607373847876625845019708539283336131797122447862504286247557540208675552005044266264521627871184027658526903441603292198067971501195055152687982044100383838585794652780271894413602354310426962065258758167362509555785071861855634599312440169489028817692622874028944011630995565961621825438935971102886903691474939370278555637179136204443077891035764924361927646397621456282967609547338602742961626198660078728680093395988058614514461771141586313948156224227507092972196005272987846207676610058819885600680200703692039312007592944841661525671222493128846555546147166921844933564894734345355577252345951530380597429315958262797922830703705616137047116536458938647460125186527404043413178079834928226116132305269256330792343006503359479562563694878001400456753023837110900148313306852030405473366448309816764416289947355058627616383025724429172555211040355640705260708622197668628907028339706522741393939020581632356862143512296229822997724395114652979238506220549756559235371902103572909019667210098995406463907121979097545560044097305059843327362220422801462393770735082706413509668578309486972473827334635713288345145664120547042339535631265727868331200013174190297358361419315459053229544723356083074909268441770180708211149794771202944093148024284663562717428335534343076846205673661507839011107029265433138046279258062365337149137721007138202793116015036987047365259439369363433691432644952992642028858023269442102601471800468625950991097692951843819953659535423742777119481774068946825061334377013393699402667284099323658944394803031446858112201611394456782284695682126888667884622966634005487535275840946200975722886080946676075965740998355310918061219656414204495437644027153126645132233763123557761610345506335002733573377615503623276300011982613330494004767368471621913474089916498840064059088644198302225109315105430465165892920854664512629373178110874402248417683909742681741783426016700250447056789024270552400635862389060116916426862949249513176972195714116895658607550464062165550043329563382471496972887287462281242542195381172571383413141100001780722468473806869902298548971018563351384806367961313910630488447043111185696458579814227116652374654607936231404973958756712976572529101808194296063923662491457373143189827073736137388738379472969216019537914396336912605886057045459639484081065616109479791691070283083624825236021137151280475918826002922567121805090667629936303247959643936683455047045589468126584050647342747866190884388245486453900701781751757577972691867212104339850043070582061933964763430389966823277868296680393803736634040916850572284852375314316484487130428383929394620077368403877456127871476024029777131872739352036446593329182349145054476370891058137344659878674549275063587120021282746542065008344727421759261008713955824523856665645152363235894556184906196725194181294054394721697251001022302916312434550488618997896273240672811059559698819346576772298480870478606410380383212108274042398452551903404627355868944322615468762954695752679146966125788454625107993890451222948711139893474590896201939219108755796666937775257920785574263434335300515757396429229837063847800613531819812172689159780327166279562504753642902525852823426956509440647684974744184364429925576592352983875788479842912348004217308979382893541477868558121143804612657771670262507875151344775562843659868541247967748825867764516934473276551049234604657675786440300967319324393564291493762064837978970451319769111670003104205305334869780513578174566712335272239506656044444456985084576210018368322333391052814504578283979097476133992961984849869376449923203983735132796007296638685184192373172613297313926776845240398597429024169799189561241430081710982887449091704185752594620852592565694866364771812673238318655332041649080811093639229131523601023351815562964396842184911528851248047009219295961984180589229721490178507453710434758139278657350299488842161714659744325162939351768956833962322011643130928117770530351275533690596979027705035143690887528467316047251282898006560822013041396931273695888006025081137382116464393349531092076246021178609349238713026876054090425135019025626826720329975667542244216994702065111323153515887985425149342588388417246518849558722248843945709298796741910573876864732166212982803424319345092781174520631307982982457152881913797144928483497622431904383597127849020711059110106343292064479690638447542400330806175890938610540386660819976214781168104653154775652229398575633836932363858324600769432895923618828963098728491728625907226623351031207664081445172106115605640731805629944418185820391682276990191846183535236294820907257280167680612677622621612476491962327779823267319994352209152599795557502701559306951538167441645291614091076051715396525000702646283107101322450199481897932088058232567485798278408859646852940274827527818288336769592666522041919382396007148228220902284207736297902441330829869653143050233187512204646595091082266552729655540490493108814630078817850581558287138726042700583834690522458807256194785273463814635783553189670655534439413299048937917050136404770271644454920614987357531885581875751708004438831969575929933379607370021750168180626337657902000283008167557889910806818398400678892414443581906339543455126568205338563167268999481762645529315099962276745547127872651592773138693768655679904906388364643755376787986953109430340647393510617943692564598389026223112669552002843283770520514926725607040563751679755526613078591177843652454966214654746408650410178382733109954179079417308419997749509092747182923029601332607120162885490727509130269658381415737862628123224659253395531210499212897165053144344589669187453814436744634135256739912533514591161511396915062791685103939104486356365982764211900570269385485929498290514283313084635869469317703297018293616841187734822546412502059478151933510628066355201546396493495958908313780731255748279345174339423992593882273197273922364940402793553817711629353738866336617389934289772518489507589156026115165317327795976211773356631369672429779658534211295956129439549283969511657790252649975880151002958011189058177954449712770446725988827619441295819782041362691891330889085807997323502241273440887621683295856313332714542324936914052135735323656789037392684389754884832718476940925448519646734728097207989216055335108676705479872456169688494476499549023597983452705225984333254973372379582576317441826005325239694628190349011240155430279927554025145296451681692091474262413011038587953710068697506023553357787718223790638264499728296335962360674511454927563823534253634174438763169723626883765081178923699916044315124466107371117881479791588271008711568526193495474666063527982938343249969156146230148782186563710665546062714532629552819171702738447257996786762988702814160861636677604221987303854722396305979104529137445619354121365710877657089875882126550550527221262464324218463132213718140857212441729808379781106676755913301563164829326170525665759066422313024820436559026258372611683648297133088244505132839263804390778917372488307051778279711825612264971875888932471630666452004266786760632320524830565307809704151735496638790930275936444915803200719778036318579045068040330031107290937827175951912050136036973760539159840682439227452696873360557493171186384184404392819418230361944859516446489150183756414138000606226711036970039761343858763126944794275336300535746810684971584547735424576903134627730665065688671340566586711873041848076944839952924459825403783190672216233526021719368064010418636449579569409621026674666514361261148869669343585782292623546836019666971462083532272407294254676069518580177075738241558722948720079569520714060414865135664624222399305226035429160038807866154780393382493671100791182630648444754059956044622220851682211878209115541831085909829472513157137904377762521650960422339555876976946019886914704158577865593920087337124633548123691839061759330630685981286626977567972252320735155368036697908094080317364147380653316057562005175722587439391760241899678232210811064394922202204974790454117240722981228049331678005682610475575163935856862436843231767690565019816209467451660854039359853289250722458312922747127921299264683817913010227099972437108108004072234261689279700151699696216703779894008427125826276089759926213873256629347206352251968241843645003462710680208816098503202989424213173203559256787954466327477228443243574859767832657138012717939108978423679625168243084958839579205254425024097600373041524843004476582417435308009976884711156617237068950894313946110364171314379632666906582423384743266301510820798496592946860611479672273764454830654083275190063608568375071971551364947201834314935650040733390912780984789175644939657655280442299300848385822027621802031180560167293610442939355676573436281111243066692940809085215550844279989419668266969961986174521648839219486545314152525084984966789966234935802357190749090307624667065323770145331650786529711408982798537237010703078624243954871201195496029152418504152161128087087354035645678026961647592946782620995618200823373058416921190849794380831622034872706899955796325530550309090964521356812747614146726287317566304187421679739417350797152636087758047870545558022386627779161444138489845447059383380533337597228500200224241897744013540044477254473622402390366723055319013082771032102676771300504155128545338998493178493617782898841305473889800175574724745764437755465721570791818337731774673407933887088571979947405956338803910407107610683896615146422254152369318080994205523649674346765457258764633348511973738157206098118993847738699112986462827290731169976167097310188236430071266180660175257647649698032518757738769417918774541458381034427772816476690405247846173792460620996801307484706358684473469159573226207717589703167738910893233451697840282032535854545427205315017328500303464153112133075093925925388925261294602805224322259932655083283677834913519332002681126420734857369746475655674201629680312188910296855122973768320326675638997437698335147355481289841330032376626976015643269567177918568613691825113605188246593035583083369388130636039056951935593308376809077628841464041772220609995241099487842616212925418184597342584346562299199234052145703231740292014652279722686912073059955943245293194390239676788945229765412656704160633124894305522282854611383556640114860504926141933677195521519353269435596159131867867719124267165860214123351116220887544663877848221159679156457594466153662477577403002179057534260474503257922125754586889739846842009944192091134169573369244175125225490707846723527152517750037269177573524115355574735458082855121527282034621234264870450186350907829586822889428216837793187568605182949286010933741573939866444387267527835093352034226740383092110230879497770300956075215496615131896076857524479305732263898606392365284069170556168953945366451958861813733355728825455742546061915398333527282871157181270842734878681430463933027902110938124201533281289566654532029565489439229051440059174978696052923861008299713308831377896465111766771149009205773812466366597873799692531642252620917264697064313789461869034208348029687411724608759498494094553350805483267384027863187320493985314088226063344014013917406988891039660479105126432731662196962830410814567163476318740188677951011303712389023397534662389082221812020593599457017080709620717396987571511313239927896085512879175992170482111149861619352238617367363462175899514018962777788452573347743857798101618800208411083183681570859080649307997159410842512502002721171346999429272772350303645005824640317148620567424227203054267502154916317935001901985075050313771221884981444172258019261316863089933227544293756744607093918767534415732042048726134301417300480242491134869248548002611390045552280702187983221323202768387377119808443008909281772146415332707350204896888755796710992914299771222911164744388989429565521440590217223651776228585146622168788510141922546722609232788057926251448920101954815125774046054641632495665533596956202440323671580442423714094980368770957811920027159290242251524972257317726243427120097211942866269465189014047524541187819777944104455503441342603152130193344077880624113430665582566560918088657575247347451646413928101900360582435585729222862144820605412328428910961764370106130087273418051318518981286792470330138547109448265390370388759758162920259728211283197229810852105169513638860299135794651481996729352082771456237419901668065216822123576740578760222460802851139328102819817977579035082739818988531546354564407358451078721736409651890801388168510773001141091588413502588150009241062544073575817136615988566996873187839838732709979779497140068545604113247455968176575814154667369861799580779352082982164206704865382350234488582327510124531731665595786212731751353218062846770578000460587379632703758104111643988731562627375691986312720179921695023110089854409550456064702031902106128479221143729264051925623490859147862987289986103202229726943594021975537661192028508229321853275474673221958792576681322633893858447460180777147723205989248137246778518885132850713523401130461606252082572009659590084342231108400013925582844180897182439214821298193796090853119507469344552728086055859680186941844664833036561594641956231700337072567157908870638763091571015625374753259893617010533605695019603479343917207029296823784888263623131819335563691845533095078032920480022697242493877238182990703554913084656890516319878041415373445881827468216664269603736800875961619964218802838371615927371145712951568559024840350011079551222204655939989725483630797615894252005531684690298313711171969828270584625020570749215968466280005117027360627876763388372803805156174885704219446774247187394353505781874123307948231061163795306058279140994005668345119810678475743326319896975423025061658474833317099510430904242201532676231033482144130873063986154892017378839294881214483187691752399609267762949168651297987937982658616336679465474377651083338544322643343933046433435597356014902568772937816136110582317116632150020836094271047698119196613821882026317765304736793785630776183949438510490334081913628854252789583273323350009910512110346970549140585154113091478090931334431601243709689439179752403569777052239353854291388157047514353369068139088014366230504183539736282350876531409744407257212781840097926253829729797032087053027652059269084424653011935423252141010700441645110378796361338830976402096298481389725209098877280544820065099804976020187094185791620353468034070338970457768628815980142797087068808300648638353819254632832072968279278335065637772269222964994700156785933027189357305723618747576277786893716625592343760645035061194646273878531848308381791289964897608430460159336972398604034716633720322835934370650905672266398713876341114612259319607054316044904689076772185244544171434115941829271508736187728794025100395338275733437035473699700561987240674496441770018082804058775183941717814376042363935594265183674283500000544737065518771467383963503290461433154719557520630495401244240394408759787893048930171776914290362104313370655417418999927575808106534883572065058155276975985394014425643847377970186449548929574851770343946540780058676361821383141270316750106358181103263476641679231521931903068741898071105246435110156148297627466583859536675925504617178881737290261902201837955376763854236910196486938026672085085700946031291433392500514083136883704317062733789670378215266249478448845709387198890385324195068370644774648757242296631629050811996479080391594898912359730639955185070704234094412182093162893115497624991858917565109665000419126272894454267825134157899111575523413653921471499793332950430240710384098416960754568929154629921025088279377291426563343694470533635084627614433366320234068855284376518789661126998832083393102989840497506299409252667626620607903914598027171744052862264030431601421073684862414758293482270538047058102565698887914547758105043202276333865388499167254886475851674010608349364772711999179485968519339115624709042704413437375938780293302812085573494039751287044128554436996434890757955723608343689134588361387757140485979601819916592073174275891390969557866874540111378155519910098054385574013766263106887959641380436766044272218076470395104280888634407969363796004741177830727024716702178676143421434348644991776830488600116874872358434057593970244173521581328051509947723610437919754603799696570658191946679590776662657875797586261114478500261268875049454649227855886368150502215512659722080152275617339563382855435118174125070966532295860886458939375562205182645498439983842576531500104482285675447640117760248316405120649003394162998800011518369157296144106115891967308420405749719687781960262551589406535126501901760745855291527541918809817915026959572481155701577088170013702746222133410432822988542444337676538321108866136385951214616650624032164788160396766511271478888753883267750024465332825606342585820580694731164683176337904514325736349761284289624411024538916940289322897236711542655848989496233290667706879067702887472880362569386761351173435927896804037040468000717073738581292735300820047320744342518940047856715108224600281368761872436911468532733432198126534199599393499645203933926975318151559199848254881224595091389975562685766942897476843876133592819155907356432975093727046672853692241364166729279421415398252479475298536523528250745453466041246909336919870657469023237131419137377311482063225286431302631957061367468214722587680502129091912051819276976113909512744504075617761908641919177405565027117628832510212179383111067577220979612739121287455281913581678818028825800342403950337388125564950969846527093928492266425542299963433576919741721206407323709528524223333620691110113561867324472238004543195761733633978179780014416576743329313446886004473888866772083608182591386492600988770497520857918163574886592626117186618837237816512407072302818361551982675200049175082957342470052416744521981713501562056599974289699041665013504106574826167144541325698038546420728274809820610668988048784315590242315996666908297646520619986430886045490406170061652973457934617165658928449711181373493730044380678611197206466810731979099942101041980980999202716208805502046314098956612265130755046122489316488830829525011336079412172717699823575544848912169103685587894180535741147362304757852207891283185303065729704105167763715428372299220761923720070770296372308900666887762230939685516244709259923256322069731656210501954603947691641354695761427246112596020661010705633257358556544278935469525104082416457923871509178597795545399131652529799664396349132063558280968045715808611109550849364840500780402192030502061226515982142941797373981647968862063146652283586309579467048172827209611176792546716420843567169484610645880744656444014020955402892555800816293093822617707192583642245285490453834689995657799772816528860876040939228446702515003964753955343101146897521425736381530633373735880293371494785510859842913586854274013509917035490127664896963683269118902475113185328257329802359454687198539378897639550204484022557043813490583576949020937719597946428916548679423147142161250553916583595862955616375878166396177246501850582571380300481681508776463316589996991749733298290022081270976963295594617744604151834462605354071268945565116144929080506831982936841658833004266250896275486190309615949412175936308990751015353317466284840234518276080104814819685855372329747709744677986315581577308755550230213746605910045819984197990905644403423342583021550481185475273625515789942986405800145545446701177342498831037249190576587049239763316695921354245447063883867323828169414415049473021128589175117811647312313706793740725431043927445720124488366036801940937489891994955094817355604859514070779959531824397062200825390131400196696735553724487491944483327721458061867051920210692954505684181821165469261676861769507999290111227171975386371848008250699775037007946704155438061280113365974832568111104660828008059953569123788942257717696422502831651854598950879277758941345319734870486294696042309043443231430306821342605293678256672687024275753362205178231674136557387748853663504088503765170392592332990364866784933726372381468127764459814997158561289503760820944666902062687202277377281060069847108085818759039826702189697070288349610506181727483607334867875916925875671250860024094644482536268399474406730901924791799949570696242426780202007008655796040570127358244114095428666395338311641982383971191723262800139097008832310565685755478773476795866295412238676032889777061055898797753161484619108663713905505165128050103628350377919451806334159783642294226733577888800835918756446903892898664678240870748297334257050341269267605076181805020502533625140486682969070394325813208686453817524789589450555241688028987768634810155782901561598337101982898984663769385704972553084600151056324087768479697397687783690250147635968720907951403933212010688997396014428495542255428427148240271743123949066008283542205127282840599610835536257026246065882831771797076985943919340723097492332008079295926476988377133424102001122986254430262711036398898044935320839931751617750569060116997087403058354920994524912235658428373288629115809616791198595213354591277438585818235352547087471616025147582465359236302778543387211534233619364996192257391807358192726455433299484994596868643938362384241527732150427835711048229975134294619291751706973151192247184819148301076268666122109265448863820885227092023897840090288572636005096508544680105661541128416010867352444581451555534235036206142170368777338965596903560053681418895696231609316677781789392203520527900685986834077466214950272933450801976035951127639509403323869742527549479108289178151227301694947844029701126199654363400550630107737238123283863320334200350718951982891547945913275794823212487353226197891603109640465977021635227068650154679385830544713518723845200465702723783798248103801723188225439480927739847677685150465767405509823626196137976973317499248949803149644740476286461920901278935953699063253978555250982810633619943351571933846636238144288447569424370978432150504143308888465058262102135993105215152538531973301105850815496519488108562682205001965651850174623012781388329380798506383443262519449451870822539827053110500224187771141493529818311942087055340767044015912988597926931300625249686210983982900407983960692595928612715371031697144037029891504639407457508168710941706001801385613585780668402120366675362298152694349635023031391322223962412113420361490406751229690492000829751497366937737343179849945772014136714441120303018017848906113077646201105724496420300566024564560191287558586858976055650378531096359457733642934378014333182795820730965254293974937352143632498197855993518266508063618853895406002314894868953440246893345588887686559804077907039170089645000293037485243478829909633265287042022271858650685687050685060387673098551102856179718166914213912398641565414114350135878535339609126292620321073698441371236965884923345530822452158268614836047484475724823535425737641166574536491860039335049260889430371092789842567812308266493036898170285541940989380032814876077680574928538880579926645461954331929106608246712199031306091841971789468740031688557493570007249542367063855848796164105405511349845112544834112881817230749929885675855351077898974920921048871553250474372598759143661840073608973334893305635483201452507620960203940981732632759798136985886906495757205309728930947235320516408180934211041935235283686258056313212371307217284401667737190782399262804055042156130049946136545097050397591253078150756966693657854500407260722893240171945950097935902670167798456836927276066579101233321326865333794799486042450743236643013139748721174951346735603225559539083196056609372379102789672043898524821169999185238311476885409661790650899355176435389987884964273722256822570045777436385673336613622128862768138762227770287497282786944769708821482223042204894940284032010123070774366785999183452802851338482196909306294650436433490776042248252088474667472072992138891203744672225731416538012158517672623681775414873054388954080715698773208689368023284061902048088795174568318900341364047371463751571751159120500076575214769083785696259192800748359919978875751009471003190538261581361845012912042737192604119884828546262752309990032167506864754706777481003426568551756992288722203946256289313570050762444913043979861140656912309609074573249229336952101414834016883690627474978510115014331852638813710622058005641081225897452656605288302304289553089918881479381626764188845378201514762654758477182171530385758745795302732748939527250949908835257250799689813123647785846291951317022520322069554226937060624022987912740671752650443190952748239808688375210695618535716295424153043537009048460745237980730851596265643766588818398681273608072894331432641418689345596972741547301846643711799503381890561823523714724589068739927894877335016096007934624290179790262462720817151646758315243399959025419994555485357969492031294566906924323394331373551981712043150856570107645001728465922277354726906743998500884261208342726625851137507947479571724392033738872821947729881914275453441505842149561587671683757861105742429430443442530010775192416189434819460284479783721372627672246516460321800876955915901079203129482691844067719860464400280175997996123264025939842141709206101492411544611351325144272554721817955251283248606896434519727750476294949872148725944099387344386483497918461132895542885146220019317126036678772707152351848667528273635770480087319795167566194663641763027460448936334005447846155838507316061002468026403236660692909661422236498847779123808956320848862969906184447404791211551385796219751585215873079866370942849577287718930407826285858544697464799629868649509118723016672444279438044223155661579535232787919327975460066674525437943660585899801111013093451746772373277154240431563636098083594848613731832416551137413633267914395000514023380884546289349158209826001374801364386034855886277551865800327279049942192371249826594804309291490532976737555675392481810281637237339207952560952834460776614543011871593047920209029343929017869205525964752489091950093760380501805589306545740444018214995241510989732588719999250820065727836928952661998574754739048507560598032476141781622158145432127211867162021396714174392664605988875413221472771258937430753837192350480833786963812105137602179543342046036469274450246060173759754395071171575422577572731564541265106772188663998847534155143331991625248664730521075197882658231471553522443229164609946068347708433013998683604502799130503132249113807754152834987174272765293416782211146325603737120809543577020331293995439302465368800939466170051872867253350414642371957696367639504184194656915135787060065325053605379547155085649075700264037282908198906853006760393676707214021491241901726014055328816873513178888625314668004574491891321651745873908465541806166347185960462606920349670921830695902151354182617914577341910343796041838063157805891627070576885411325956035924843653812392697400998844620944835589475873622079928043178274961192922414682896608391301935094084080969483275397614290977597499744370695872528729513289120949179804769269450711599374235544966615586131764774883753894751037096821530582991593467946111179828929669164243842069849874728975516002452619004154322178640688341960872100243736144768257169314149909729000020240965366506746094793220419664675683658621357406294335278801205774637950865098083358798101332509225962497366345973166845497328284028497438787004184450527409003661641798147760505682305759287956863641794030037321338298371734579004027484641356845884670430142459632796408697794689423233048539442474241246349295039317117805439522936390554787722264516436235377142883772354063284642335708971792465196848639008757015915655462910830887350238382646654996598863996848789676961223284031411579080925189833320435411160319784353316232062124954511452727924859822319737230935257871281425102422741565888828093937375287759362920706332732224470661817178320296096951220349539674749383941035057406424613586445944663909777017781055931378065895574781128947583196936994082565498128643867042226634767360485311424888969932582215396034380950728162513013320988219868784828468497120961723182175110497174952797453168413379613621578138715402628782157009919138329182079543739197959146598680607415295905792568580220056140847567669384558618818162098568393233889656877849852978766573164499457658226776491588656169334563353595281730337529683890334637765908494106227831817464891351206920454479571425267665161229791318507763340265859836746508392407843994883546011754746611956219251436810140164652960848401461506780071967022088058156160444901099611888970689401442133296435766132493817714195175550880946155905285070060160221580446281998971041464406964883841807713762570583390953795341523801555233748601362197403664104173031127036529510695403948042990629082126751509659741334184885705550324193964551356911702915272151634311924752910295249336062320289777403511229741786831941873644856271498200786818744737033145314460435210076826695948075665062650810003866718000058079957870359802797705377560515022118132567739038993238946937296986424194611859749229589793789071540644073769618936716482326360068053478614921204997122015082237039591799345235506041001526033150244663434500795715887350828764919634639068909605563234193277321971345778623808071177541628238502180900704646890866672416292270410142877316530938666152063720561265810982830828554157644804576295089633501349931383323613971087108578402761128214955558718875704976071872819621300971631100397155341679281137440773312534936679425511672835082121466128219593623031804281904345834520988223443130911380645259241988232795979041943576931751418035404044814341683240200634836361197686512963914026688350725475853111221457814979372339923743164187085247408973490183151699250820272578931866095250690521884500923360661379979060826732695587052416690681275218534516243787957044326895379273602478153175217575622033495991857975646025094639581592134800835148775096258608293114538138524661784580856041571185799388674747255445971099090049479908525443075456833738117714583074508604302238394710020887942856449451375128628912898378253437047652491783299547988470295594035869872139930945010876234932148130388484479630295867586012386291170240222044175416535902216211315331323209527886316734742374765628507887775249805655223030446087110501509304281432990593509292824951739888221123440644552973663159611932504764220312090298222509053818534588747565193994295932206432145100560676856037917642205717615025396719231659603764520361951093356596649031270128988944706220048748794491733115675894697242826892568369267370227064226972324028982179080115916649851290469380129302477532848718452666683054177289891182870600343118278944458432951758411378433264335423081110566282981385930398145738856948344009333505536513164004391279206564573416826799604999419616462960094492053154188213392552298666019132187951029178577851314649396384985516671360083928777214756261187923415822768567409744633493896121471262868201706199492920583866905779366712373176941732680099837130781999467865563820786260961350317955841461333514577294026886393570669383956665646878547330986747646165497018494314056120581238349290488466221354205337510219806402947647417996543018527660814096196558067920342430341989287478708381326065307551049232111295806363043902892620245432415524615929344316106333799001330384697890778863382638883915859157648334089883800861495214597735921968138035811614754284787849143429578829150344600185451063038305780349892721879527361487931518325578459040073001887424226553676480247036147928100732625696091585395273832921424645425368879062203073334333846194974402508881877256255594395579214090518711754423387152079125422908758501606277852242013681090907844416753294680110497216231146549367044836135976402002533941890510062980547438882294416944683229516172049170029832929089098366977029413490691855668934312121362346818604859396696301154522201072903058195150279389557814338368938157226049067373419183438873869611864812156481473763475357860874841982993099115697607738541423548726542366005355926045307526271412690369503081753295239507357868237933888185444961652379436494118383823895945857139814800517029630707063302914648152066974383809762564782804831698626586899393703440756544454570955202548213802900174351750537625513251588990815302852810943738142849719766417761914663270250794657950290970384158869092494619342777276561443460798091116138380575779749538243782768387703192375976307622260488646402802424471394950128874292861924713965002663773581800514316920346225327006035861950855615048606349563902248948597285197624931445960070742308045228051360910351061865807048074182443039461505031245855269014071728340645641455041273729688117552421624334391304266993212357816184734611890387931300599369174467709843139698783849685313533496609768990174535744202840046842047778875769243073151064276254750250626107712089799225689785718817158726401341448649867046216229823012886329166457377176907481561938587497464362818769700803059805933213321491203340268317863426408377047712198783476798970527462327215678074029057797466154918013790008707230037575962752999725571880572674251100852111674823601135720490723925627294891787563372128736046186776461180378685232260365548666141183767542018944061922482980389098277772224067796152545916189716285384282261821034431429153777176084847736817383386224320727646239251665481212132297119973914582881130478038617690311034930074403871859561106365700900140124199044753858517725666203607000329596467480130295939553268059107560868007608682006263609379048230950804181074074616465749252292575188576544382633512190597029865030034126805345696546095185314512392620504949982011955076716689957271303322355797075684382606977858683040714513708871775693539971742013131417884346429799595074745157761841844610458871790539237568416434207463359872015478816063873303989857312731878041819504616114841587274737117119647120474226307365683717715614524122309920946193342833246057942645550160958444450419391379964229620158438692124215534606870184587945848652813457649405560502659164566302644670605794215776317578563027833094228941289465621445850738190956797705391601980841354939417786865410010247987512013233514224955072032199969789053725285068699292189337818395235769026988438120590727734713579744578096499992982533935637823017514742218059774501900598244710880543030203016306570780894496160291650968167797315965532808970295661717114492999465547833039597959595509064741742741502713805191074172225094670786647004417436839106633761539029638032809982950967183739375493908472978815859704930570994693297184277448502902914218446768368935054640905550096081431636228791995215071917939722241745742418570377768375439180025908674528364618764086676916877527072678644758314807266068922138609510287984700404583114766081505257678406015147006818494684511638430058870027470642434207131507662326279242427184517948920977608151656239361611510898882730503065947612597849086001464009998670982756175073043906950286214540757676155455168683309613856325818621107569042078278877073158753234769191461529473275547762650014313272978240556059987347644694372467960886400899485852246507245431077493672363291053443441518814652850304128170129424795972857250789814839468188143293672400600842966044287873539050688562146697309642828443416369632654099502268804746050926953011951978161316226916884100734958597882347951653723322213560532972353535056161824092555143249328616244412256301944578142000871476857852094682055342815141599325862971693591170123275011722682819132228573271026277703146387915775161524179264101031831566395858259251986738854639934823465089897783983021575130023477970470392718626445840977273691624039841490334849686330396989175084494000151883948090418094445809577949234376431292817438149760939105977779864942129281977348247011052779004488173928012330197871363516345769178761328589246743239210363020779714566221828523533669483894937223462660892118135540709465167582622913430528254747716284849130866116401771981785072045696407538171153311485335740762080828247754847332817979915924762813914189121612706001643466397799942121930701811815686890183559977458384860294632577355362796166723963385223760883637395476863936479373478806844326467777744659352454498211431380250098088587351878952425792757104673209010410858573825154846810077212252101998503359337815595948693829724581558179972468433143934524815091273029840163358419846223693079990657091364682859355229655212554263899738425759346614719258167629706554247958809021790102338614395309212251660552677620182192986181019268639850258545194334849556726929614850787517402850970394905007688474487511463042903644308502240158789607917555028977634559785646626825301061336346633066563377095433999323046199865273399254889488259491541398636098137061841808841861215854246531336842312043685209444186595649740778239398087763238743852771825173247745810481196135412902950438730019842680352131788851113086070660197624106613957756141225655494191473352450784009681949654143383733290928758407212953613208120047998350784137547877592673064486039501233546457083735649348546152350341703226439091562476347031850086146578164837796007734308663744791313146431406724837581260667083717913482146618951374882667779777992406311378568873974633998962129657737645230619960068102370727858323942522659122967164602918477170060496867110008102527654344192916503128078525296151525091933521626278155350125743975792131129028558231412655815365143270430385764329645357113396034013394108814336303038442385230463334297976450735036839823467965593114486845040667723374793682950665045634941326945082795522124218054302942056606130830219928244758343867788586758179043859286191472385790270712151146287335655564505892457511163323154668013001666312222412547332471546097144633722817064845163956893237775507101074269570630259839464298863889578192735167507517116583934102611057566274495544463582195936030514682258888892801856256361614466356424013506895313681861751895873323991285208285859367518573626690599899123613241582002732988296333415274782785245576767208516993187616318480174350241549484272452986517123187771399780921219674612473408980370257992264795791754180680123589656187146872142621722699276065038654630964189514982337528636214444798570676203742687378443977595014907662897942180819716482421107624794378292153267621201713397086606009329332314789813353700450811016952164247932826976279541142564523268175166172211365333496508519149221756621562607810865432786012034923937067322482708784394530833191077909021422707530377489297463112074865253852405915401628032608021954525750064735018239023687123438437491555764700232800820172802497334267837203540233410547141413408034573198501261062146757719780686670849853686143257476657916595987405341348061646013882548517281549662361997695590139931637333129116219093545234337305038134580677195561261195000485896480996114752511849833393957548406642151550433865979825555833352424478121117115943308918310555032098099187768600782762058146775137482635621786383032713337920724578851401550170377139950128028256607190579727780028231003297918546134748361518041585323938457805320549414644838724508786482853734356514388661571780482927667854531244658362922761702828257070679298993707826270268763986010549975224046464178019189847480962821050417023799679419762885153907975759078554493222727189368064919197232489075635989571995142671264898940651024736725545667722289475222143495338741897402624602025954326001565212292654490692493912666694918157762337603644314865009357371999246492800219002925026218990279886068905149959911074963232229088790249649452537877497242706833043294987950552799434112087493927378667234143064906908473656656992726206480515525031753014089466338409053025288965340152690842168508598698022460002059404674961233099486600786783381928768660124578911275161113441904668137908825387624194032570247327208883825573285757121966054455223348544292456017159442442548352441971866280112691204237383027940621162774131797074734943605781466597308252053634694625291008100618311188430300949291929613260783743986169983573254124448033496988851866469929353217789531011633065747520136847720696697910215922742914640824105420480655032831890018038460001108531831532036518368522048200690357221607979210245751060839858405118421931620880664456314481966996377091590783525721875074237275652283735737267693721043762488442883326317493921650638957215942479934506681846778692479396148144949240480105304552605311186062825042148516392179207698710174106724459035464226498331627592168212931888800878617786510308253312245783055995146379818581762087867623440125858306938709547354468941306268013254623750773832854990578028371838936102621777584056883075332476008915725007372158949758337936751948321923196629670922032310467473967015056262021241348561937124563168807247611695762494421504316749814074585580683942811348350840112387963552997295880364522293577997411408963873940796294509523420892693883541801766900495702435492758645731042734805425517552919295878682928515090363778571621313583032611614447247206328790786339213372934639695456210312243748675933146072304267210829243396442155358090067115362238217828154917910724492389610962232058703922362456815550437674033986183270644365398094606961364399701188811675091895091872215423069675025140266555957988305503776156123209211717645800941325164222921528578457904664709783181548017613842654118855947347774601174997104432562636936050655514540732334367418169859048143869442024870606816222948345780794905178138560519634933777748661090665959167267909541718125274661077728431675975743701669447114167571060787181402859485105718561085511412483967146499397267146288640464544472512763947350910380607550577735582621005242192596445509125494572719646722046878637077722367681499000369888556049952472410296371458004582468832030815842393843500764554094254164584292979822285042757644541686659079613633745848926821530143936720352314619943672608117503902208502201871063010101903539854755443042568199492301720339543641447179342033388216693139724611289350087019290042618676331440320722809216823705964148454884954296671835167793145034826584451143314384691505687683424224432660738386336155826193458553065282116342894205944807204786133487826760671938275461183008173884113546888417913596834060037992518062611845922266185233482999841894812937813109727302527744594141760619976469323692686634030307363428833153060478720533020011791965222315658542363857197969959782469025365985858870394440440855812195454998465185892895965174876564429683331430879390988726978177735068776425090113863151549411337857820000694992386462498702319734390730949141164450668562058178155323528312571227580719891266357690988409012941519522001574176149059824432812311087118409807161198964976982620954300183328498570622161046874945837435172947208351663088640779235690139051906166083617596286488551558194574544911832360834509986462560227506295896909083307287528878544222400949556218671544250145744891988072922733399141731318921583939828670683630439155749887024016613275188901783707702384445336992827974279539145342646664636294772203985536609478492439037073735354237817281163111483206376481892774788642673169823344433275382583418702275437052265834424722712560824562471781928774846098128326916343430950855331093789490233740299078863603442032377101258393350107704112338010615212914395361017989465231264197785681322977901236496024414446446363635045019802584359963620311140500325698226153094738952712643426262421721645964705707398577085813582795641629840101000979101743324764334419199093341251637180447098517387755161384312804020596395690581281340978306104902009968982818663876276771995807950561589160893364886718962759957211053029552747343747051274614445152825558309238305610247835200395163705461823616329523758389250411650277216664100449389885784071220392449256517875272458024943272563952557167407377604438706991546680522800188468713438231002423483690472979296413833174538844576841081108920579860166674376474272414352622046214228079800522288508470215453190938829263646739600127778516269053677458226417351072828393081854006397594006781544839209722375234934334304215473372596835557248925839315318637263191714953824650348372317352961170469904032183795341943723722149599362071484997985546659739621136194532494746891418610016958364058313419164283418357487913809290348475265970553060780384596452070804464410238178879242123179881167930833953867246712105732083975545332188601609308211089401614081628353949058647390334578309780768498117824913260743694664997655334470840365010300675832467507577512496561290609227340064088412839918602309049897255799375053337584752643118469187320737260508692556993045515194251812194977333170526927453035275671055467939270387581977850155794606566111211929168430545007471241878623754289628445927655195555654428253208435516276448602232842965128372245379764657189088774674831653904371324645833514191684690381003563265088963523815801378741574878871553982677340680777187311196782013550556313846349715214937147553171554863703181500676589088781354585187239392507291449858056730055765020088368582037314794638858846186033671737258897725320802596507650139025086913918474006062829396546232296942508791451234671255012408397419166240040179321135180446473640312829553269931915515503930381519112292408689490110546909471561770231856781690289741030384147717605187809929894172573005863102832250904439428800087792463166559306755211038299197408698310841095603086675765311248346827361772414076984335354606935953038863818849255690187297185368159052521040374107502140492790068980925752683521683822949362784684746672465179808741680203510411974129534408848948340547233534972591285278493234210501252370345120347932620101045607357120965375803738775066215698739571593774162329689954692797454128414911955899170551051779430007171273895403903686255057490176108530756634288366414218070691084504027735937015099027459971082217669496735457008748057229236632880766372539010164620101514770693031399711771133105727631220522733278328989575086308091392275994571510502698525618351604555761454252116468367724139444164949011263666530376255861072147368930487413079508942748285789937248067730068398528943236118838201826440460242833315862387188248153075902314318382051478153206478490782768934770784279233183031072780887925236534757331467432443360046179973460681456655829961795190249805219613521679111443467581602327153327932307656707847069873292585222972189699387534943904562104371922350346642695538718233189579226424357971499426128436827703113418595132084693539994795738479945821206760341687904992187417219203271267115858729347239018461524837194366008324550703895011475327793567768086525007333082051255207709401955724188649283921889434319097265324741137035680705232705607351106413577210288914420897680394706520253535469002161112179337499770922411025778646169085899352292635478522604656665236867388516086651127670016831001518695972137461501063302306741270032183215314004527702469166259364317403808122582750745223054770839874019843226797000522412389908688752268775555873842721001258468518402319741476293870260952032743195680511657371611582050973736690566603783784449535933833952971180346859965693511211166994241287770011252547448997436224936753485840495353902818914091072428180575162233485435118686538890403862197651536210296901834324982759040193251545681205578089081519054933830382412167483609820831131480832246715746137316394485785465228505443657113149441705605188576055356730933947356459441341571550576395047761427303586022273832103665215177909026987295491986646774736000429309340249929406475770856675518245326442359891764641965657819234006105795536603282379275486017740421930860981956916612490372646426324676197044381053581069925788856206136118471760831319602551989745633720684727222062920433710811282292427958281598726137190415268026096826795231482192989949522696222703240814726676289421866126551425085259189808335963999379781361140340683112335210432350930873680186031983705796225906395813063885996706950058803651699255370282088512144494388938792819276930512467349488203442636447367665857117599777898452778689945312172589320536366626166333570789838503158038000038016887875879750910417831377009921067247312552268065048652762802199244461515838605937544756686794885888437805836492261975188829086657478837433260573078858804973458420053903252527357314259028173582682020984466174233107427704271178424177448538038164960794828522252623467768571354538403597449332520015994438037892021787168155103256434066821693360435056252362105952841113166503079131750723250581322363208718478623063122871985193332257687378044738363018402110846044867769025492616110411649285596118285063486724211634676266855964460319902287631527754333807259963964547470296032485235611801334020928080974764983952213418667689179556142053973551707754360580229030277297692660713099462200093052522065926949700263774054141099219274374785516950759813557229457322299832189846565964972032752821567864962146518539568932731642440904948574110876421164971557978207477122568106391387642087008484238115139094807924398901122121919447278527665820920823171606907919476968903512331128638409966004021532599332259121515248850164753417805178374413450604708372626981926953320825850623346365724419281219059477134064755474747370370351156653959484451890651847797621799670487113549313877574224696323716241995452188118016038466177762004520402918543572220683888037913635733327349095064382911102668097518896654617557400035840171598485188897141108420809047530060471848133729939784632401840119499108538576422336690930352840629646076284904408896690332073200795471173095546943079827720755079641582559914767982268623456105302801789437756702073878019495169227205459242497303895029174168711283731115034626205154436578109164432722391219464148575090807000681540888497721484473483571608622411470338520243970902574606869793153726802988655904035012439971574244580386193568272666366663047352781998105695722893421029984819509094300822229927209737028931773425582206067966897788458532019910858724796196976822615623931320350379191290830657607861990224312561614367589094647965881381807458035912682782283536913173614482389621857486342631127272864803480392502466964708489811559131790166623823795820642099011227478274486686322765237632302542472660470212387930266872134650776395019136277218107523395778330814711659895431753266815307472046556356021084613775339745844067800448498586950079444627706033519459411831123917980583482543794461774594756522556851217227453626080418319825156373185052974240593477206204979844107724692152934463733351885005528209657480816189839566098429524749964135651493498639286185653374629025909910341621746262903351027098744311208100774708307638818388525970402922165890246211812689841824397355835008906134034935293872415876750688678933319228288582271434039372281819808234571453477420424333656761583654828405670424917232177581346847270245703635149568642018522911073447802721090811545614047204572393135125677556836219366990363775555855433002944351092745599329838973357329637323752257817864856176631074700224786619195786003444249199537091505067073963047310668292239993920015839471527819431994026660013781240630652064559379018442756350029383580222837370642125292049166997996738134737136768594795825782363236086458003563273513427096597820072107810638364840192070863744218085335063231911462821280627410967821475240405061892398474270172158878285224592957430415666285706012600548717926997272724687368019372529785750771763194658270580225103026413844622641443380982116250550620777103108735549621192371767093394297277683007767472854442847148371792822699638327039756376707410251818594377717615211340492067454410270837346439195267794627007312442929787907388939022372613309933284127740141275238290001229826877002730281861536399738308523943266682369382193200752884951249041046068935749508667913428317513110328112117466477683542333226621851688955022235964531470143297446917405197109453477430143281631773727629453556291475773874659759717623104554528946961883534349266741957411297060267778887617230638951208668176206518165334890346643013044421146271299898637289488549672899777872922582630236251766361234973941899572576890676996620847797377730347445890350640812405383503786177983590645819427233155256638656918952501221564997092886628888244625895865109750875379662473013742253299554305906291973179479233772630542434667599188932962321713258625471113564322362935804693715141816583384679264802305538699488514458346494741746693230049394132302074601943659687546456703759847238295410613778988068538657581444210246989012911848088324987425494820864904779168744060813146900461511158348638513679857706359425627895812490898029447075849067134743273379846649724928143516781176396361929474955657063978165279843702829002282560148720403183588088252485518796482405416396378268926679235608368386005557548967827818834517628884474496702171907759209490382245919493498307977125397497221966706356958059120951257937707979255833778476244956813497208154753731466340865323736878611356714150473085268241353675377935467225155141397687357857888879711635441203021288626924869490652080464204549751229060308616535668957510206716441471651616019640395975618219216633953690091644452442453754596786394424762370329274752666919511743182286185103476642297238955673864818757469452977563460273900357190183939260139916063702255316154259150340922324867290453017527625315363578072226858157540756818482868843490479234110196466628266865867736786946881631720357271374514552096042313373388139990705141605437107404397528404113569811931712773359347992180943688950296940003080524012489072981301845371254852370291460062254153639641281716750200810963439008581820248445576548007037773122409351885497404739752273762507509391811925845225749651380644063617511828247255451114677142515049155928208889198269385943821546016091576941347983398537302051369726435410898521724342719201150322916963286116695275301929499863054441344167787724003316609930849894451715231250063423592717652079876158065456501121808157686021081383837728018145270031683700255954323444159247887197242081650763731781963848846552156162353569155513902000193342409865296299541262079779150217955682700083161859768172663785092476402141382483594696101497770141451853891170884733770196056092874703926384407333859089099619719415613243257994718472248367218914681893584679134737160395253037088597252034958594459981183014615570413509925516280791466821517589970044937837659469254804772673721117320377714848630079219056449267518263292163790073196547082547280923823792437641031206575910651788415505577142832635810569039940101914456688526477278734181642061397869997644603840786891887937675266779973432128359716876493799907779145940757445514879652555322735006947145765835954012780330142907696446233950630583228769086855341798765225520662408463119674326818301997977234070318231791663304387136794656959196081476326744422154344939125701242104830005626580290341719987866770150037427200406674098018130608587018331242835719089086733395591102273183066621274599152558022195554800577670994198626505588036793156707291798530114542620526704684062745337757746838855428534781773737579216288330384531840163625563767226526551881998119794415106575716387331642502299068541148891918637967084694705967483763581026869366975681537257490364242378863255040040641215124759318541645358357232707670816553619892837434569103297970340967054919269825917233117668311330846650439475618393469711160573296075635905483871089255736879210035159439089570396789095762076746748065094215554387659213158662434200810183648532658453906006405223737397540834112872853112477653412249273250460564283286231958910921473006728274738644818382157976696391158677405964749479366380336248010750965664360859011675385529892914500086660491798361174905917336478381680156736102143179437730110570173014813185571658356923550115460725982174352125149507805024792036762767211357883404547301716848924617725377784988096369222409021846490240925855039110323594984259364082899522971993080598780475465121321828895234869087866640450628120602476449124425967354348054758938899872263044098774600835219763420686616805385682667563549099989358288216933927023174701345495957669698311305260773681805857687275813609835026785599064852979515434251478237916962676583474204039103622832962414217129800125791406493524852913348997787042125941444088318101658665996058750611345902703175894841139330390913759454665016979570492747617737701895047794615578447027037800427629768355822877252706347176411979518357692664940836163395757152842754842171638102045853028010880965352677622707683257252458368804072936049513518928897895249533430815367131629661204986995117185186487979282340282800899351235851201818193332646910727721345028508606940538584086158628944499573510970325196294767512898880925540767786063452214776104951096045138857071691441831477037651860593799135254604270090073377977820269775272653237616567008375692982594871647460560313045309035692428354339556425737958409851736972004413248281697826225778213795939928127223881106748380806258763656614047697707434355664992215983577015282206233028478907711652270814261142531264130892579286916306737380944944424720528070131232850283734072326400419472809771118776721040859095588483156596144593481008604273731589291336520915640031843677884174735474517275298425179799608348827888255287414689342589225958508419211496233278788701941040582100844779872215991284904768416420906188401045129443797022123062074904097278637061652850199352776293421555924985839720328464961589733340893919916417629061065612325993780740837331906343218503693200700275191027483272012899287933820263561205058024533805345194880565802328278502046445651657329273554536094180720177557346569967255126752709925432068750838304344075276487157318365007555501689354958074015187333757713803970591025357372109637732382350363319782890070936265795939753280677676600771221284086124425027090250488293375033994634452666169554875500167053322076550520483470975739177207823302052033586777905408619402129301045838102240605851522250212240164592843633110235185639169672599106714826385480839821932716037529347092825296601985937339160982899378677640401634674184720699656183638253525478672195904304979260403596844770184681883962015739221689001435690950526178788085426558081408847498260441803627210845669472212706325295485833400501607000822018998895444658406979788031177952765174307747089598503944237500691974503151366278634360965491752366915610668743143356711089852908024808464425269398448421915711791042274775380191231814798593851451328416356522875536705015024941823230428373828139053660131794098608464961588736521023170139789534790387421854201280836454878754997465076882800199900342280158178765847548688407379093665617936000304917019757400112556113224188436745983696614176623128738486385161801983292752167264095737521666664202065547339992907947026992709900749409181642222457561750446766282210592239063726892638183755793167108646902882058014874303520163455677954598397055461896016092485158113082516759096624145626996919236545807925416998878768712339012707127453789619806220104311207560451783359777795309128249624834958760441604520858629410355306767760956048519981421215194538385509058744066255509787986511547297105634449616588411679944980060623247747865848434977997742398927149048044548895174591284891012542983700431190357475097859741658559198888985782678798681834899279058362557085258712087018692722175332021919504091671904985094200920362393982483221721264555070149590424718177133857964309154988889399081409169214708613173428598184325099135252217076231518727555856295603199895821377353765282802371776168397827226903625978829205690569778212616175410993987541346619663759155410907573692507508877600001693386991716080098998283781561831020255249780165775896241263084844680669669070409740839153033842104329187778128191365850359336292860842026844833918489834374426775530634383684592105953584307964751975494860055194334849834249972818767225644596419773815961822036623951106274654302592217316305556928449098991246109529339147987187711760380363205840711785070629720759199516795527899517058035597008312690715461427245012146295694726217272100434753989965585037091089524302142745272691156148498730298338281349749835396304311945856133869017654651412967312561517753581036822457651559128628999459122772185497899336429384938108864872679582847803752531504645147598942735631715847449604657867217447544355466473834700791113907487371605140812804792483395591160427398408946167459498179892513643284596360599245473864305181147476060996902301511856390038114205594127808034986334479501632207990038770367800268814044097847032347433875882413689275803571118186286294510618977590556998683317139183116354859806984838589298553122895776564737860562772323795009872665995836921665483238802699500201723500415821956678093229912935241168868359246385136208208217722498433103427614831115410040276748203126495864080499876879531492991666592660727641083015079806901202969999082364948052738371627819314903085148139422663173005141346706036743386839928486177618336626576872159147368522627643696998598741841815658086265570520519094179857158317187881648285720104030783818084650774261955037275983139007252908551368375223844301028492090797484566291801178038254337777292811474104307218021788954366695165277127918951651477647027859434536786826244707376318653001050167793545479209097885381546614094865031828627931555014318353531379005898564329734461816789401154577390595934779511060432390613865509661885609732255354028107107699824635664341225615832025884014615997718765894123071682330645178464498595194488680698377707870897949746910283380589067796916682903801786438449885942360990212126919952679239186130307273210108104534143968109953167680406748923642851363685974817555145344764847434502039909120895210403677483714260506604020481215227294961108573690967833026168088152487139424674936556946947307283695466377768512987268071481542342037095222148665612448684694447774719288004513270855983750771408383471479651751576781317085642510779923480019615344555683244437865837089549401634281216420413091470695033547601378896274675605565459666948732447520283111310053781368563626976657081381449370465530662718419656767542422485974658271244129552953734009283467446532968105987975198305410431992775334736827218797607770691017824321672303415960620076759016817608873444829005982423007489015224106051600170008666561304822302537005547746348670745908103492247722968441107222221619093784640819420279031842977536097600382740635718694650941962044608220516727501521039380379335300530534247437792490587495412400176175437174189555654237985096665869855150135090283377477456452350826637716529836839209189699378226882962166319089917885799607526690239809741681134664825637891453307846032655449651902786932480603368802437801181551980757297989842423854037659569152170923323906237442269546372400793169322036516476687577991527096560826191266381529594173788233601415039813601143675810853524112366485540326015634319759383710351631266608856887559993005107051172671664079069281376607499463479544257641070197748032043303057222276843960518222128590588127187916042661497142372525936800684675533675589797050198602535447693288725952520626147501307986881102042667768333265706071232619390076808087419666402799083092974424535933577372720908833873315238293406167450644090596174691784214467634083718834706603743328075727787164376897180364874801908506069429540239488944550337182549007275636409525952401891112945825753681916006878895064555798291832003867790329597178657301862426103831186530967506832765077980959272936316053591935217728423395539820957717129592118164689093572134906853877323579899836876253217593232257297792633997882626704538354004026667386192872069431407704668829387420223541544303235378577257272782207049826700856949026318842875267079373448613949164386957207054455624618603932776769546060669134895188190818621418575680769560061227821660029505997225335608759329336577531709658568341731768300027069861837877819911662511736533230223134664913241330502009922498755050584434917177958018800007848852314450086331034598770686989227166758983658628759736625123821570607232382563463052113669345366205216613941079583836639364707731859072074176332545155872397390936661182057904801845166321939853778239163981323573894360193669642863430545344720854939528926576791513701610775697198612288401430134937229462582500005005920157061865773281745973427991055285818207610198062796912935041822852641039285600464890754123282463128411624387524840682755202156206899213139995592119034679323970870845856107230243720807791090043273576746137968628460016917490837657057035659079676392522067112986363662928909886770651526048583600295101468641353562310547941349288333600090942402120892969134769583485021298623946209325400726103475823396358924301562263604664826825022276286193950270234415204862054916846447291515265599548479192045302010519729802264069171323837882134182000333311666052674979323596463973926441025215509311960787059028933863207332037894563639672579246322655547023402948538619702336562007689382108078879882877621729007533615559214486464708041884988390438663686424997081768995093773550661496992201383857089406170810751045735837697082768247440935703731178937082117278992521748729976306468389986171562700248018297336108080453110989352774070717523216210553136918164467825539125160938715462657543813156376259557382705166179615049149169778117593751921278465856359164574142054836128791051598527274199534604782565158820117240596319145284263002417859772185815315826716412766564559181849518146737691739767785465641683602962573913194998768445321408735102012841790960032475392796684855606018215036942290924703212401361174279487380624484473175141052527680946449444703354020330206338630823731002924979674482982353338110264990425395857681421938670444503200134729928003766396990171709123434517958200568087666151726681762936828733371916121898572487844662003142364330238991166006513684174792877520607018362155881633726438424500237895213102561156518436283233971872347032945916537947476371911956321111763605418148904205915601693029794401106343792728473710747710691541384218270914608299324388066859999204713591339012196117541510339339283702967993210962639827252635255515493628060310446291776961727182845037131045653661936140292537717689551373328308500185393541514698477171221038261295506960259480156411066911688471170399533014022455084638523420587933978500769197157397430603242136502627289488791254445882235628451365330363081793086624378291673012943427099321901514288633174379076345634338181543594254454397743372980026279693207184941303961807157390642421656657763832894589288621963381642463661877452097908391155534448138745489887201835164179457942802822829015151741776568630028416324952737660859162945449274096344485453487616499153956837552847219695081367334530121675852422774617131657112733956750315715516015604394181005276850082268297972245983204742901004617034536458296681313717701067362172662271746242419550167669898078590035782553434606590659154832156228107702632978492653834273449686282486181174857812958599212831491408292731779434264959718730253600352804088768316271596512556421476061468604574861272902483863406325026514977474442511242561328232328893943233960142516189524946362804324962084390013282727766990644169088493240810600268610836637246087107486339818397067084293111857147352632135735103268711575627330272426921944123849670181319847774421361928662059570468165677467630119518683861627784826774357706868916885485137728208447313727589834873569629403034903641194408530855052246579125110991315513399342755485115289177782491192918678847587081563773063191219538416184676093796293672302271284886764604928485314075407979858606035828510579809077308700181032543551426343362873845042671199657414169205333600034533540550706147059762011257279257502271879449094940729978566431008293449392002511730516826884859177804135507705972271241568217581170937709420598018865694634942924408130688424441825934732897882624376204308654505825698528762433304413643534285893983168501115094269918820207271835019564335937702590831700147325376384613622738832037986334547925743441959089039466859190683704907495672655083023139426793698206669023172278694124603303859295161368831924510343885076086769424294117019942092835552109643472554157890834526846485554583591145351772429450623449228867335789275518647736015197117661002369653849125652245582660808081631667517373024775437971637119857347529084800657226689350706703324784826498543862914273758668358901202589918751899701024886189979796928776620359805612569662890113130532626769469362705057719665906603236883882318712133083311322469843298388549115448434221721180106425510532225049266474467028298497007291665422745471246012000844178188668561078693314569626260656429119430584060464686796804851456838008126002192452272087657632834556752053953959992107670839556691387179158062508746878262171646847894912935833005487198084575072829038354082283806053572498485303552175722048209278392772379465246054228359339923671204479090009609045867239444059263357737738200097864002818469596959523713492683977579831159537956310646183855963660726745575590550498801239374408453841936765738037257145795340093496419673465821816102422962184017677727570374998665347620391966045480943299648345993892362496459409836149175583253659455098394255634984173174115999349131985775656394888694087840526666709407519104351564890052974290122539133573120952716268407128204135026490684339136640095301496436565804866442913875962990436251279621844072699078085931665443005146305458017634678331862596799527322489543529246746417647331585926711339547451774075904014262453532708708315585527090637672465547188722907967877867254839116520527970956905399371070349758116878294827603213126181615109255645202490322168511015537654879911735717961916146505944179270886260657825434990458704021182772960490175658484990847121598283278923430892690168859742255945228801051459252414759603666269246129135610508088031564891540939934836363874224768165900473358163950602308333517674452564016303989174038980941812172927803057086018521057118816193720789205393876920843129813778580902952056160613071536451590339954992711245135213023351900047072607207607339929921188671666447446440236334865797498291593306823127745875145615399470720004137692342968457428407976884141940350427674123790918334555045741359306854966785471357586318167975092659503327799851304325318938105341303611151079318694403150171428109894105530900194084560578590423801343695743355418933187662517548740440722861679175509401916215590357354723418853338310482230661888499730248154785745744791235285424649825784216969047250277311228852438935089879805197681168126990271745828820671479073294482546441883756223378861373498381123242754257579234583108335232301553370885155691285050061051255305895250508346680291676654081226557078229882122648535506882280384048749376764228027181233047130351505257950785420888890524157160828382608781008524356022725975755317591757422776234173016343349797229348697618456529587602997322042943003354623755918988811514299744562300408966076843538735456592570495818286603274863175635356866818483468517712884115065242487807405114056095017347945424528574924819404137706964824377376598217319053180938881353597446314514925458503083243426452752470342777759994670965687923688076334137074384310634384948586351352930535492515855154316034461209874755481442233088878663170291218934130678226603093239500506008063284733121837242151816400518417103473024580609785926673787233846824398239656630561355160195133884926100154316074005887732782678649921394399189074755706353245437721387493389356019823017469434727200814010591537481062285589828273457302405254491018578131567104268933934181791887432721061489955526694283617944013707983654332250019457817314138496775104543241547345369527785078728584052843076227816917091395542126712506409808589615280268422154584940162581854694464750264621252755606049236594918887267474006068328450036912641752827311301704843177731726945052023096395572934106558139824830435140274237579637890337271890071202321642711936237291224051173228129149947138142414246028057189027738711214394607998597085604029553015102636137401842338190573505724189666437286538413800471745688869026236636889656430675472745147198161051722445007973082058772440024780025351003270270464466956559277429025356052300085753486210153437533022362692293947986372502522473923688297741693880835179545228685905444769779724552149001926168795217926975469565224986991962380604605440438578692789047767179039959153460846366371768924981740317467204227666913409253072861661963090354282379662905034907657286729948257598890192012239524044596318786093278679627130427247093444485797858283498892457389278086104216850668031277004365902142457299224750478704731038668097725546558479675313833380987489877829249818411822729319112666671463006910739935745488295156113479892760188072658044066726901547241185944415005425689021050159971951682174684314586852418073364474802096328858172537263573062361857648265737434565656887548976880356561652422826564579358437459282452770589985010996130941504199865259114264517304174385031868048642889706061223394496346047593557695385388805234405621668213345518574163375817561621635245383285691798675938931747605313140946977065738955549629479398501115440440524827585432081912477956803952277909018896879879350192102987384307164495089839962381575487596412562749063060187923585721222644041621433782834078074738562546445354465126087040700591782864202130107199898456470834547907418724012249698252119661174473694705341874288944150855527288779185323413874817403445111935754171553095651219837521387830784311489329616211141503349901447819520563322695311830176613583110984022562402541511988965834891957147335792421359472352886342281156733087590981805963452400034978404257554683309326512215622412348468126872294999828233011674727440195442100846075239961365631310784331157530760770597836429008015670101740341074584190486789403622871888497657067024939134194111305757506550943488108583649244748280698350388001039772540309379587204500117984683940988822928330618504662762328625990332848496814097574265146708228266849828115857571435211582058073985598455140875517658701459608317080498734501678138104517228637218255784580042333900373610919130566133829747071686068668889500039612800867322751139473756420398520081311264998446836094418395381144234633541884749129974130991865994089710392845587246362874289766530896202992250497136666772328753910811574573882477882316343142539340244125488255672784486498902439058875157149018118428920835944929036724245089171962911322347748719150350730534311871111941643953835542681937423125921154181569324098008011714913655324083594404866451167953403762260950398125081424584308726771479096770910455905579784790997078409629519079960791482793984462228190826661608964101949254453297722569409110054968858646394976922743602398866746555809946140137195523878912038122031246015172848717103473479383661030868031309722122559567165467397484502120978459831438694427985252676020414866179899922748319119742401054979018537759562845285647535281474133734559703550978146720104834009040031492218214268240719857374921592105915981788386962881441525340549007242216974567878670949582967891787775944754303840625331013320526295933818615194220945830616881684516762098513045574544560132420543249030500748302394886343394920928310842244538677669083154716497981313977059157432238764351902611783340279754433862517515355812588314893067082041287665199425457302365486179982403076571301828872424777600164213394960093961551826941609600780857036298964739120866829168935029042826289567361668886099744993014418298929676719436114265470824053129854185521044494205780023289220908989660488138134872518104337578344453742380686610921015995257077766721668236054532450032991487271680277513821225407421078331776059652940717575683279236538928987050402263328158486174966927619881803342368158171258806035580595425853930331246522327579500974409548053910959230225477228637636262341180641455783276386109549760792243239371280973084136086765696893923697203156747021057641889916880658405777247896251734734348266497277520654277874088677129268118993634702234919677099105856810706957070523855835636636660767270536434748288543611562129850153148271539653141450611475959662199301335449990494610081532355061953534707882243010718468466379596281651919827151206166101426603700987316120302620044741008815794440840521079689189169124325936076872041490293752661405658912676727484016812630441158342359447189582854687537926485548947774736627068675457758578120543045057309232346129892113956663047874712765334080955244168999077283904121193084169767086138712648379889344998198893127742441201356053967647467831680024912167342311757205699461796509378924853031956228860362109636635742641089901418053683859671801449547372021579959515087064194801340348618642687860088241289477619836335718605252890349625320015919426333264798526185394308510354507906238912318542893824762406467214066774710999359662082912279285516816551173729477762899172077156218026562962217655879804469148901968372650151469241471190291645915939089659639692741844742611747403603312747029749852654480865136723941311350222430992583090604328226310515022230246882594769399507615918785413926373764442476221513449021504361812271001539824280787461293956743377755414026567552400362071278515169929358335631447132534121926080911981253559547208844304189830162392232237105145937836398737289445121663473181477389502447994633878927493534430201384187813995711208115979916297345780714211290128045092535894535102684019606913389509685069453594176776704126171486075458244355690795196203953354020617146968449693124838832158176538931374246641384972406592386980718665448364969055020962217779404157058880444653864534452440324594657992953328151414635250561548188373520417540649118120271551238379831853019429979104693868965179370893910057122659507226212381946638579320439500246539534462965931630825657749402107118130260810677131367864921505527426471899665539494796404873686464097252699840289231086119084491934667802093550022332253269851773067409599762916378737986599494221306356937327130696355265901352531542814755241591569370429279016576824143989975922314856283740146981933320888647680150451302000948771787852300461637984002734264862437880336703059306840594781376343778570431291000483852131362132325566908040338887775026055020425854200807940150249331168618534582355984315572117120614112970323256439481610701079793868589967664291083230074901797177640397970413772766129522590615347030462548844758458808941300465867901856440762225312829108702884079747972294292397533182495242114917689472899523830284450625112112945890143756022255553312909397891731687784881885484476641341378023167191910543428266526768970392437275760453946948868870883540899172005702644705128383542685736142525393421428020539073625604925153130263566641132679457166129738952953539880565632730569278502090942628215608918460978156216547901540136636794713676879942623990115211034794350822168991670794992098445732625644402506859868722781255318196367535830479019373993656472961922002594936122402782387163212660306654677895338565353339586171650774059846102313031349680710524536022052133419505702905014149431687080318178748180731471760005203319943705755592624059058455769060960297817077339573659816484648896140673378952350943875965279821938743260368304300857332192155559863503724517801636317763861035285762175208215001829990492546121448974724201878523702251405409537763853927819403890521798224507965280678673495488646718968950997617103794880327878806216138113916952184286608226734401078347280865699375592770364146400677648321915396653994120562444594161833037852746528848624417668227101017888560046435394258383599998735467611390766691026743074264227203455401699020540483732892846563105921374452377618261199184075020170853757770215500548490356508400603139522011334001152903459898568259512752720174758373544473771533538410146572114953375612340990921055411348824156307494689151212646439066102460145371280263106730972595970540284696532965169157780150657846611640031671102404865748564907633885145697477645675382711649665217458410510500144773681949473878908783806872126658015404649426812441728819043962789188986057036149284274207575634056990377685323729187900082870848945599696851944739294581530596723022357919944654101930065740778428178197974650866395984602712653012315486650549161099474495739695826237243881451109924595449372141931588221132379680725858811268563941348953454806883327174126892854947345384800114299329269079001291988383238738101764621051077305923596339638167092461572622644333758124909410036045538735828001371797784895228038073048918133539641913462534079817649260250405376727030975092942419343708306321818331950287301536644215847606088908144502568274934644692291148762823948697947922260482734238571055901100867557084566638666006640679299648155771191469201450855496083923077838560716483596860887643642785791482641574888021978823890091446045842555029385210228866697599067973493407363793523023546940581064476559357175011529522050813664008695017974735217833529554441681811552845907662794651633696992901394464099210532400502689927335748922599552002868816532623617168443501852712340056578966962859957689986701947436136514871696828534139892154167306576484490470883609275022664935351529689198785338317564780052218271597605157378813101633082669326732769064791078975777715112673345751205388177214259171073926695936051541493046554604347748086547640758203868199663095763760344669772760000652200982365362915806003256070419274590200095478301959056299661706408874151584648169793716390580547100838292710576126470225603606993843321211803894039252594343351582088348529270321407611605421762114587325921627905588907708863547825947735914685263895574053586015971674771157470891361266414099424601278551285213183283180169656298962221696223808014911706271179060170286347821068167155039413441266743294342498840487955659443376844310703598248494010141516825681353497238192616943217824500033196951052906711332459806694157788886156580470137029808370947195621976319527303081686559955913660422024357273456372351158913131794373616207073164406224867170190077845008173374778729207923686541285384193393069487261152140554294963428138469913740196298375456116727437203629138286090488066297570807028374188601624965489564124076496923031882425152593534790028077636514518226061173980018225516176606376410366939798127382017812655720285770988347279347433845893255901741709162437015806685894278457919867858463043296476518176446470358780906681691022279658465353954939273994018594961542467355688692286571062332440033072638118871378080072843371606844788955091540378862554356824937004901954121500463197487807885155679637085001809624848615298351060020426224969912241330911698176289901583101094349338924740713239738855699981892226104408810274488668189531776640277346547185041206859845694371801697839697883009168359417333596458876040244486852352669103386351132043951724136858732480611025031386905417562472423856297760945511256743363764161813591987718001399686980242674940036568377021282484888493064432701182666844044226365688960042965926520142969784368782842862667967203525325335976478553245440105593521956549134196575649020080486321173646605848200533901493323154371935181045153335715492171934195929511677812498846098047401186951671808332684519697945225815452690107761817742899128385687009978348286885657453683048083208667080299371997517955262884644489957030979490249723070900428679485160592184566943235302840857517667395750506764098303737377944688423509593473644160829273164320394813688887571439146123097536269974022629580241023542265317069390947277988637817963746698813985221597018903114918495310963211654081212219055256224052752423947844822875590895614471929705971853631918530725847141612755417052918610963069334506137963925537878114145061759428946428672213981791837741386542708479069304736000299413863114389704683932786645704062935230393680901392911305980662669659067830342786198080489540899769538801836469897911833763719787766523127424628645507400995862513384669251989240808999969528285806321871748452929729041901899325651211587673400202447780570755912066868308252551821484233394832735034916205164542224209930361140424606402950947406792304366782488710572546758373138176778131295982230585837711605846440506706744223591454475813756768955269292133400404930584589108897887023520677550281136925606284082359615000160936796532240504400577814600476681871180854209033124809147886415640874689385684187230607486200040333366685414530742319826655651208077511206280216029484232219353358662846048777265718522864789128438370711406132771262584278475613762452193380980157856991564476013737508497837584740800354827936275271666982117445906548389602665445818381524763881582182174719130241138852793623081116780097160070498796044216145496156557398232122606215884376266066233224673966120015813179909010885910549915397571465514263356979257546837584273635447982467012313196665954513556341376324663320366570526564978560338292647304025768947283870505429791311315751595221899855343493547465931783163045363318065698641068689924136366987271795198037204832579451477975238301743264535086497028283968229012734306342734062041774912815756776555516024610279822599519479015772073076113881609417656910334761808367503256293995662757893360564105713497209140960757551964034307766846604793886707412871850066623110434748066271465959353350464412413999863100970133249735266787297954575116273575307784569624284534579731092376029142281450541119613020579272400818489256443045186382656140123858807828620079300929890275281153914037535336331722167201663740909610726151856009539804763956084837420364157845630901570442734853849968885268883131436363637850019065700914078182019673048731141837151556953455154855066966502842346002882485573680061118157138660416036110797504162839734038589650986329906254420759682021184282629329193595099890956653986447730946478368954068440745550749335098170717644320793498836792712851785270149020387074472247028230147066290984622322620563661889698001287771467585715390963838041923853257772786607943634375288323177991755301133791385290262454113050085579400406200069727442787642889408202194059616958193322097849044236096971852576661563089814667404933490442912628393357343358192000459425803661079390544252286469537077115159006973427163530467740912872720780166507323517246959191858183344460926268742730218924524406356064283365205112757684238892212975066684224981163265080398842136951753801634678081880961440738309653182102497783150856783231417283046912442755389598768251256510613788313278898078887597394621737986521274376533240273541200804584260676216693612332452042353660692304206529189576008859930597035011647475884081893796209238362233577071453407683352424657124677899213675566829059602064666390690068529806684337569235055087298947060114469503453511063630727890465136871528821916878353850881963383261809127700086850381449694454443940426347713112223293793734836135902443849366471213321702927995574446914111375611801013405224102500940552658414589780253140865635335775965815536972066746058153467022071902692141852163353616060400104475097448309467055530513601185542510662576944481378505102480962653913258565477053658839896097146776994211616087495954678667705176723999480688484026202317794789762673546833344074691273468325619924599681375740113254737660316792438255175257150115966334576466669332937592107780912711780613614030669008855652288328592845309426688648557721419203893670061358507312767995629097808295990180253650014997399295477527408510301156404992482811942950361611531616933952074256800043242834546389025220106246480142242004033867346564442541812263882579994090962578438376068571100885768185849570014767828989864126838672211983856177302442470152887227675737070180145787972284490592825382060334005026175391365708825069643413728881459835229482890394875357941196779129609516540871260104800557872724378991341609224995236914964255302374015083119260652400662504639986542720124656097935204362811842782466709004604519381387231129838247810917843192240137391616913351719433035835761759179413886691281449556290517483198898359893396467280538736465511527785148930224278952049675250771785378681602357139061290372338752242341167194403713140363722722952682880633763812412780802969342593687364212212997233338717153266612612675264056649126187699267600437435724030117973232894904428562523785620070707107842701956232276505667205880021336285950372347884280360125001601893834784935597860382080481888402494123046490478304787567794914344855497882124659848130516325221898513420940522179873445919950312527912260670459330241597204304662785086806168935677199267932674919221061110595339491563047288727838423089312064648969482845346348540511633192804062067075635321420356875258282381461519083077868448427945075708565963307923045449985733459726146062897949674777078086122202585771997660158960574363527784343149989541096675979657947196971171797476608849605335880381514764487368526758676784791967805146462786299734124766858777125122984601821746384057951026523505981490188722498375392729858183161104678951149198294214918475040967782507521541919479652012859609611457248061091421685506725717125499120635495083080515343081430034270602062011065335900205131921797248550496303769490893068348687430435165477505608658136180339802777419825124913423435061234699640523283222734057182624900539609783475290026075402129320838275028652434529700006171746807518233111928807696069672501616635868738561891026119952368285068462893314555549919569722016174389404350032121101868611445051826066251712784651710816999846245512116836592871064492927087023919691284669721321413062832667026455966304492887727216951805899278231651309058609728438825861803650012481679925902206778896825305695726475743085389147572853348229324735672904594540812750824376273092831247896581992760429007926484009289869218577690299932617194823804921033184917406859349791041721687889304777523671878637188212858467757947493231504900585688662524859663830671827647601054405872374653407012830281701579645481318182355485819220512419670088220207516152274728615782865082050639840505452554761481068266420393434122484658867496611665580464775797479381952841245284969814529240799265188347829259862255134446680607406607959949329968928205123135795188410179997037720817364835688085510661646479515208774121583869754454305667458789561614199654930107426693891970392478515731248682196909411865643950721411414823674825336403122019863783769672529631680821008544473369316487493096016412936474303079671964383398198636400668583641339032712205520114379138005807524638986756072777922555338398637067209379758546828202172042452446772240394542592633274397229265922604601983558491380825816502872175303195410465244232007710492407231253049739399270807730525916703641486845314296034715921183361247710603389244384444758144583617348420833539687585406503331941000282244484258485765371476280622868995963355881546430048087510327139350926368276408510437653966004723563201459411548297745349197025838438739364040312985283907028829073714760525941069224394220505703043959751884470427358382286671651436295039616127852622660837821487536179240056936174158718150415077850597693883548181061899186670978041372957070804912729190780903163132835819996966122532490368994633531420943777518479245270871871677443760673301480929091509399745688885140564754298057036285510982084740537187305225956127398455653050587017215079214783669184480912778070008623285977776423848038234735706199228869003020932507012163808856318302486259913651928934706746089704091538455906477361151858538961284822609198703028182361213465490469982291732315299421041322527710561692697902357936949624064474237186048232996988829925049750544920971898003402530900257150917297665769715352042346899804688154646529445791011314733493798258060145187122294025666689569230589217165740228610849770605408828714925536957579928778241447030889436939457817045936818565825139798689182582698870257216081461753350937333606317896292943826762856793192447134486217967358012835749783564346529963179347327608329125048098202495745676481793441351517990110900286904553975123047315493824273266259102458397212446140582267474753495625845710835819750197445115144641707228634685001883096535237479167196075899055237338745739182836879879693115856870341608629623279330355113819363737347344651929964426301414770991862399826395359331644418571154442727102685557250572001126155307879224973340238899219769101646783810042627838811772588560861555513662088680505419622811362776424598624516311661243981624117678060320038009750363921382619882879979593745501351334884771043230447581891604978147345722322341973222701586187563942564126025459488924392963239387639527703446044651214086822972172722270418960411981356356262073368946889388024697159742569308602350833827948339599897651095153808581274069918714830454021861605964384229369154795574683538771169900711164708030315968621082920171120451902639466411120709837962636405211586563917296101485958620845028964473972925528650522874057642451423210021349563686024273723998841664451146820110710867699208293735553334592363484530290289778363739071399595709486633429829645478004099860942995335412367069421504776537890005167797906781441626485312683941518313000083519963436046900501866099391107226824412957452092280641717187641920715567362418944413398598114423190260687506455234601363211338220185580781364578986992848496225615336249090927486522106106911319243537795646702884413361625522889459499811344078212248658272339671275159987639871779528032181514200878010621040038477947207313495556627616363467137414765168052990001907650039001376104288365382988672915851971969536074499569698749053865020216581212855450752401881878842301255551322474869001594974864362532904189369722623106305268458926758346464624310002259557366970331576386751218414373108898855730730513898824650332854182066230434982512311144996416381212701064264843029479409650729608675985702442415659240216405304615774416661881780021811642886085220521413615141685257256845938015506865168789382807126647078717687478390783365112151539763921630402851431282710761180573118565492589690583144337035961449076309094355164203142967710352458327299980153483020099804781735620717128867675379152192660111321823948855544290610909694256403761423732216256747310989947543476613317642256040168176917218532212648556904525394565390703830980743683595912786224767198601664799592510119157829389749993981192668904514034094702292762187127379788774759752418822066849964255210766363247426055844023102159418825249967118909674670841941983117224129601500595348526935472015921777942505182332808458464499010316157136984290689295181645103412712200884933583105025196598364270126586677408234225809476883639882187461934553018458543175387144993652815315253176241856933284736811661572298089334857878561989143080380989781015053478153014936107544103009221298039908468131676274003040129106265237083180548430293191336606973672213027469600821934456415953395692894847947708741953883822074530500036650516436129802369313270939549083803999295625311936802163816325773173445433918821153853365038065034750079479737462118956931023176552574717418206346859887473763413343777692744226698939951216190209995299531958546348985707488583917646540567937924359283224895393079889555788291761443247661809476058467861784151873822176564660516312706094150138071473981628794546507312216481106388437675014560127433192526543636300612779991951490799773847980271626773035222427999200022350209504150288333531466839183261307149323686064147275648416135189346855736359168887850350770093803798379607169367198580216795822437201583242348325626137720621066088730617459250311379527503997478197172924214015814832228623176982465973346638322613530392587487259370073942317643762757391752390379512775502480295110237564329495739678457698043329988931600991055323049674589387793124285531887168248546928541485654984248691275238483834774871093951141252927627499880236600535651477149778706647220757491544324038572733630120145016746308953003154318100261266464337051269232562143637246033094754253859820689876261297717386916127055624768709244598894857366090012591047264647480941622492350026775499371847420290329341066361066782868786338474021700545907570480426948612623111505987467873805389245638040952136108491869064589842953748789396315752688493628498505242851062082060440308604200534088087400849763733865009130237643454603533722642397975450947703262140247009691380365674769445475342627478009378092340768793207815728208391569739421002667107928255024796740924305923369272808362079398801769259537762814735987761461380111902815743571348193411581540245659611309016854396194221144390693288396499353640704835790198608830622521883268148553908110442584625802535133919628439646691652925105914956945207971960444339496658220191753493125388589167341768164488448845432766693045877618006026685467146443722676022818747973504353215347486366119231292651005292261411802304713834996569119919524169405446674882073416858714821444908583126228164955352338875429745985169859354092050187587625741391787937866525506282433731580116858684501919450067585089920133017184163118103288676527772341914465935496088340470628113756068623063239974972245146965071048739421716291795717193833055854145342066077256252911010494057335285418663005842137432383516797696564497946557203856041313309041521416865197904250346023326050313109540411590163491088676422805679906621877926009086731986676519544186662476442610952822619931861885175369756281324307095486387037279252467607083562923451260648306197180698480920781318038190587106191266298357872383411836015401397785918836417104417516050193713613061142659926327021915075187784346797959393613846018184178163877075835585885944040568930523196087997212087812851847911385481131751464386091214902517004042467731395330940327510090874467416352112222103173144387499405062589161432521462551414325093044478633159103651522596925743203740264146604360794781905179866547010404384974964182788587202029557568169117395522453569701896663599797505782143302297256840168560625482972260608347955035016389264354991316329671779258295962847247441772512789406225715082760348166927401504120428780492741513870894913971057838731637746687430419595968705589725140536892356039832410863240770713277552354296057454222928130673393632211808672688252629866344822849858296685866712431836397303734762017001357616905271687819018919484791890159388210934157669773711715363252792542663760369302869146333463735776109133719607885723809933253380478293838407030719970595323232690315994787281899002768777999912110592860746022128541537874284295270877366853322542415863304632865261729830899228708042602980130644852796089895418102530737315748337871077272260837365110063646734365110691791968136307797462828269142429939929396150463486606615168690354556702222794315922254322984778864630261954418929320466411319530288987796380550986418115993897241277797277659042795250669791882632445796391098937420141419528639638731676278651551909130165313019885119603201961214030265421371330075240326895910269444801358108717904230003857745543945641640612239902402546386574379229687221543407767890530070170151895990118887436739428408716843646700857978427080826464452707090308775891412197339610963486230474380455182730751496493981225825109035879520367634404282270208137722620645277189486469278782017391238751256607234482270114845602929356644883506018845550891569813999795972691647588036068748467001686563107451911387383759703099821184284369698684479290910160939408395769341974921139185779031057839942781573927503403859288087015202697848176823047612442332905962389300012539787838226918112836912363693562181332285299484811992415799422992603872900208699074241033134354740777517812514787248953322348927057873082368275961943060364528581095108648535650374271000183132080767281447278044122113413391845617159410287853096121513638112801255505188378309358759300707930422864392628920528118246824116885929913794622246081176571575398296715483185859471808190921076591007199879120124162812846740470981924494713084307987086771309537260268836701111247936099265220050759327966004370457923274201145474586571424268745265188433896500910102399179190194819332289849000223452338807579720984967013686194578355714769526233511058425946143523919031312462533218856658385391805110326871081908048482904586588303143578687023951710238483851192280993804826932916058278875298961380959487412732533179880548072188254070701776987584202671705306631251541496450991802679052800134819886357177538882854899396751643599357021677010198221352802183860676739779635218812603641286611194764907692780991552537825109813105844415137169472938890254261378305910298867030005086824774243210360346859091243467624344330388617576653468453794653060476882706034613846125916230263692010625728056258582815252227509688841451807508920717294929512359798972242265726660480892661682250476039170409895210569299574993594815840891463331796064233352530636727786627853866485696759841524428901619127321238331531258029489724959780161083839715674169140361338498725697386622050077677830326506644193097613256722008733565870296375562552510840210621594177691694983934190892924127146241208651707149638527287995224532841910465306638462577866244736640539362865264116292458425978476951699376436808931535362549428763240902466817147466187254695580092303223216836406419148128617670850187416900575150356329847237399847980358591896442658847146563124857339614099715149938043358471004393545199681454024939327790583683414115836991993235378465550516607489233060821183678983995055113879003890165464753722358576849892005512501895778862842796330733219801106079520762196827879097389944696769551200354534188404689722548229274885625441739689790142837042851156682980077982130851597921545376031420591748369884893865430783272128868079096310517506947729904758039291191642201283307422826234580717162895431030966307073887817870098657608494815152368848250396450971726038020113755444483777308974274153986869017801924023753979962694286764770767098258032068233881033319670804129111256421700663841523033289309707743357339966013123780526812392109425005467458825743321129155008893026434301862867895781390690576883613097036272310981522333805919575816125329472668263936139955800262142093968198902418396004196795617553908119321349966391974854237498664022030410219106322215280713619435023536140053944178884737088700827185849483194424156691066063274871788960080236716947544987141507446651115720642703801673869782139666143565970677319726678290309726651768148652587364704865337328664549808424823687605177652782007545454254782191657896760876438387927940054541838522443689504621654211154496077379192651175651303447627026852944151571497879967726320148803396960209553976124203502036440237103944997911822814512993816991955333950307505563147990961748123452352006131931781082139628096123851929417026165218677415247788088418802690132267150739865281928758641382130303536308509004535825473971653158475887879263057936751729646766537979887795058724630089837323882455192947794825627000241719131245333646764222217295794323054022361504583215586802181888073466076813648440061784506796958558834477882110958972317820469921796062443065827888520438081540096486334385283850556688528001886478703273343380324223478826226492774910863636908209522261882297403779788014976402190956951991220758272693563880394555463378702652514457926585033828219417779129159428286938810825080213813455438309007714040669238331819552513864856244100403518334678232188621523660583741129179681904634740585788121587590904850395280235199964865363616479537110500171037102084025971934495713149636120757627235881325469528596497041394002402578013805390264808298525856893575835531625898817604372877984568694186450277267076889166387827272588203621214248510074600551266078715137374484700818601729893052680440834576487035294289921807986168940574674143764463000994988064201368365687720341889445293119734212276185903981990062912848432847692199980399526258978992314402675961352491226974025000865899577887049937344164085389429428402664730691927530971365946176463890374305609526812166677292996809982996781414804510483470607150370973270042686312195987365093845807847574143226993393189286542857164847551303131190635649418469716085090707143072210642357672691155393606476428063019909113477668082075264456012397779137601961946631216493786374547224605747758202283897868445050441821769244395347863449315599415797282173167098108774608620318086196493418679697652919218896696751901762532553642354269032284427989440578926296070598242190721038219104694575871925265410249258015033362973339387364596859365087375318398888058837381293788346438558179486695570096792452206861908566055421474655424662043750619189758313639176845277719136731687216409457018802078177720658282682806722124110311066590262150783936227748381870171794085652021849871987688643965361032248758389016594039738270774230291236489283560379254495213492099301254536271853973904899863636634174837997446532109564096042531922507555702208747638314438179234821948145202647731450030767413919638470012384639984395474124992886506616881142713846891998070050057007462491690889768699842230613849710350598519797424502355238947032181232094229541086889844770790020672105649407446774024139654401218533499886686885084555898617470172711093969230158701511589825893025684053099889338833719503132404305233307843644673580847895742682603588395968707933995335812219057780428928306267286414986367626027974640215563671948293758310364952808803190792085490291486255038390126229022824226574618438394516759998199619577430280550386371673501032655732066716256728587691493460228309541976993707468413916150523840020781404210316139098355174575069096085219227266504205094869901829914608681441240729620512480454758055040895377838213944263261942849657800369221900845879830399433610697040896030405235731296703039699991892802364645880849872428689081599226161656416281880581126438174927006577196941096817795778154188804787675627598411488979673095256118142303680590957065049964561845770631012865637679254449729895418406640976012005839215616493478537853743703499516785684321935244658206626115730337005188382186812921254232936298346926405334748296303539655433843674570950799885483238910650689167117156598988908711652934623183571902256550922634642293776043133232007539021557942317422913129033623267867345403508077501223492324603749506241418448103642163118818189976492053198133627239068064902282315734320438856895568341051759728523773429909880399227947003768758134076383892984151945000361885716864885458093097695592837731231316705253246592576309942207348988432713014042176699804167371954146232865146886472986311188999911462624177731152940545843760871246552127377520547491165286539434051905122716263612210032997595853848937735611488650263421594515626011945314072479878149623072315873381840611030745936880389054431491786121636410377424841545725556021487737310198274595825238866293436614953953342253565350342250635910633804857902809391344140909171632198227984330551340896043239924317117316827343837802434325482179073929884025402713179898443586755074463453906850015874171846061404701694822882426050882537992877082741694245312176639317626773001400641683324018791858059748241600715347964851560579986204288190159128547238280299610780920821025498230399184895975395507006000539510197411612101948336162561522289460416484380079002211962221896137590165105972454840933498786640579580973470826129256991763211901913416715127866133484411174602162277787048027435419947453399260986182941934850549702075980537030766103193081414024710118382924772782038471024424641299472978549097136281693152752606109660882066672965181326200239621237507678765123983108065904123840433160074871414557213049295486422605046697222258631225148670537813724777722339437636263877374537769128895330442663564988519295936711316877898779983716482392642543455052120936370240665692276670420617799572251229943022703428013485256411680215442958810057919774402956765818145112670330847521866814856278004285691670594361593637218572880836127745640961642236207692084439275194696785027250514110050185033055414635664858199882617076603645682607874148636392908257317269036450984035970513086495946607509413802797509953323041310758523513870989337287433375501532894067711516809592271251388679036858986485140183578698861378812455791921749835057186839165733346156746714672650792077311129815920348902028596676047634520094802641897649505587426051533594649619006954320859843655527651107536941666813754971590016842716433352701026301569295565724319692423995889093770373609645215827241192979955459984352390567162151456986135220909715483839723195897543364442506134640226541348722971037766097580632618488223523665769196567047314751340411045290006540624028545132546756584123994602164262148214998345138733260851234697348465125496810309058013480333939154752640679042027756076879479891900511627371871028913449939603505594375317993251201080742582405570008190766111354263817720450345922194911460723493198815598885760144055342802633232196242920424858806505057963782666615393079527854248680720031626324240884423307708227945376101422667555580411079971424486791763178986657469479667632411011528091941810294026012421778469065977888562069835198612014254245780524609383928968364893598462781840792855328827651327945119120510647808989123984175185452611177099437280091370665753790396859263554529002255059519289571714141315903573239456463446999806757851250236207457190974732607024247653213177020875969212301344461382522294403932533429204744633975230089237845373680743938652175700246748225582439357024856980154437905105415853751266443602037293320788459915769997015289291675449749164912471246472421339843297974069824688773807126332797129610598633991489683047721830219797353077428756444918604476070308090398640239756358834502902495655971404255114406187383355073021465818981201233360223681468641923403108587222248316207679705430348109558927192087500950583693477345524557590472921801143940696023625847847859797630384572150144935084926227404354157514333173920058258773109237693391861952124860191949122254714656167839699532331641467231379444536682235159248057464150707409682292651681211231517455528374382026882957912665953895260797311732587911467797033750920443552782819114901582268935178659748642830107888804953389276562829751373830302590263544734888450077479972474000884820636573232662685330504187103267468538612103161470655867885501693484865104102665087952801957066028400047002712232817960434423655142050055840364362943195909487308600325279406068115956616493853253748948751902094215294913416096928072825552358855487934723758689384992213628595994390294287380639604592993611277218831886651823708531838257703079384017469208976760182310098006545759605017090099020367284825853533695350308449321265392082273100970341559279820957833450459296660380921980886365337177513889830810581127635379881099056482700737111223090184351205746563599952349257411730328635520310188696917053239411266686330568883977262362865439891904821660399737488185290160106625504384878479402112261196230404048001033257445814375914552787255091944898924126104262480759118106042320102588642113345653884615667761312537055598091884644607639088349119592722786718578060512362313402235159677179161331784413328870069491752419044760931501301838548383347183466817068292573274780087189660323413066269617389011017398681306910192479845265067275625534942848958196010720434763216394962682537715749777760133669166919066956200557944807440306049891496617271365575222515767901482558031542420343194311049940767688519462625463522174237994144947945222848278567328553119269657983046840142889904594226455498873271036472537063143775920106916220215902638303338019670643475210533012290789618095676853297881116106279065997991481716591861479884996748038017030551582201821399129710896873632308544761481961165981795638366278164681183086496524294157710155550285638082831353505800246347382608813892843454693624102543188441948147892854688981505193913902576708341744195196646402146434687634548036925048794564969335211261999268839414382052148232481317380496042319751402902682000755674978425634055011400109819734475005422645452163971002187456337438993847788403261383627760061378714956218918094522614007406603625861641253250995425051371721907500699415464278335211416655133118886549252832833412492021163466727282224184189925072234902288447292931526479575964635636337375275647129700688265972164711231728497576709214186514209875185296971305587346999015552396903520278789250150662369364422184504607108702470221641385822321268062373399229309364761708305862211165878469217869795971030222392587161851711939299926152648077651449391612930755310746191367189810677798428617643474831455966732227925652887650733206777303947735364403554265127992309147933624379287783607243286144451442125313891484328838950921516327419305867094497547460233507589084526375081467141405652541560301015038175275803328926174280333349677648141128437423078741327232034964237633836880665452876310419460386297195210727321676732394284198656438407697218712220698723540743659637437200630908965553351653545844180291546356240102032682772031672785280952891177945906291216219665454543575812653135701082059815392308473909767838237181624636377894147219330484455504882738256750137354565188172067968587038655297597680467083257169479574767393984963402198681040890305926212669192289988113771359209128119751419184377011760773774777002538430404659050758643120877306639861565001925407232788564003246304089051004528791524802204665559001860737601856800798147028801755771572955567633193514371228922423167190209411203591554607517574471979974534585276641332685427153687575430739961693138261210278275970796728215989171742468997730334278953513831174348767093727804637348967328227199505249933795776780816381972723507521407295217941831059897758791851725960658152610242944178224183319699268966129557085818139297653902917227753100083575988657262359831153900572734095615907080394577787807441797846301483809391632379379342557246364567507887587518632423109611756031589599700168936188069467890594470132732940868058613673479645766998929959349933170024751947677210663054589920371101021593362896107505295530017346283034469076765563862904370733065757516177722964851553475444104850064837075206986670950188583016536169678290594544704793371374963482568460424676275626432762517455809251378766902820036445929211308067102674604709298783712836821465574935241445068377052063892537241345592720406948401276411980097500166457050732383624570511292179279806995099062731502739616248127281247065989910300266040967948151616010531999425806535392756737800305099674778189396340841122361813154385130329902318364360933133730966936595342416647876378078694905740266209943299911763845423049327634048332187541364236584494900038842681211366610217071634475764834608301965630667371130815321234946258043335630412174347432082235431140492902561963775226463165862551764446017155632523748550065406435254274649326150258471164467636497294008680521914319764645098803586676813486876331231763014446657884303445136120812990253053964092201794364766974938370069115638179281593544623408345327666831127030418815818474117985962107413174008135368320330906774091921044775036684079852753822265195381633855796101373988873538895383561830563870213663282491654962565078110338411017628984094052062795839037164163787747101477797437321247182175952796411580554323173039418132810687656118173501691738806926994344940498857182425427782832719326394068832631170578235109573815223915926321301470359881467364222092450386806001910062982678146703537497144009714497060711827440922362565317600591994304353213088322366225813013446674195036743498274687583955930212446865536074071103267743966144684923021937910393376193420551161472485528422081811983099745286435267600888206894282093722820312148626118854475606356116264846756500787836153922730040680745152452047259449366986329150836370099717822066236274841219550540886451225655110048205921300566102334627050698650332483806660487694040843697955549864707514962099751739126705130448137865607441310892111860778540188444076888881994124263317854856342626374201508319877467917812470811448267836446548408908167040689973736691125724592927402660368669235434235684912986532100215653565603407508494805408613803408825693763680494852302673888750741976825927438483746093188602369390034331619500955149471236688967895291521741604500604001176791445808195392736837338209266974778538768609873338239485368846354715698035373390568225977628265111971069367399354418355583594923283350655651829966146487722747109045177363458060032805429366906315274483054270881453174133592193864812116105602867344031020123472137852669781705599176614034179786668033100576532713722046111359474262291965659748204308773297425293121274597551684323963784889934789020652495127045466352136301397018979738279353766181055183019559779920084211622256328067448082055558943710195457932481599371779597862914979450280853591006443847832490164310115130608934002456241971182437590003100170130485066041749562550195032010352858496159062045232915098165309096200188864650717905809749656946337110908496706566900523922526834939052025654568364224121841848031822274586264622854575927956329511064096883547155051622429976477503803420333972896538544870687592664316096627269754402343437246999717957930089097226135758236954732658488128374908140128114390895177255071893514558833732291523152967542466533986518471964836680555303018858568990510765851877676899227483616833209780167204426847535524328219851804126665414022867916786691195479930143448269188877047888955739290086637433487195295555915335160390197575424098689059372770512190426003335106172361375278152882187744742106243208391242357178173588164550561272855743173889782692959155074154519685712081784918146022380847189747829022470024748315749044712661610824961803408623807813617395550095891853399699759341671846572873870985327724371653549723055011538610410820599763273703684099726086958130655567521092995253164269096007260488135847494029399851283339864838479931133200764538007525817111411915381494485657936838347957118840516730757407342414255627909492569756631007009657460274162233070802194234859685850377634761372128405049055456044390125320301235472298388426165320436302650466843695595523485968777292405869864184886673357434050336659008010836416212477021740995238925234457061102981511553607249520578879135251095040105598052835212393798483644115472791324746963320889842569673658817108628788364363412784614905168354091246842833253198042579371722675495905664826174351356694194616687868635055793565400225040140860427600077614389006753173033870794603749575002499992787348873282338660457627954926445844149222403316243413778943649012123413622333536633312261587812446977762565814609701562045058615896293925123132091359609111172489033273659980033393778883929736452671412129645865823363546841608791376785646957557223448457778889764449188557080042141563239495833013876304836778248901859852744837660294651588798428267161370054712086312949115365714102144065305098322655979330740148731938137016467942670471339560500442933393781563339232714264800685362748519246340587458715024831557559717905930069352666522720257957965219509261907964493556221801269638449858248386429120405336772681332034635522743869336253253679187186231114574267264499220395836873540449625059454045144757769893873025386566006671969372709476455702905317119656453809182382099599223832884675152181325250237336438669943548184309502933891665221926168842621999359554539622904057844501747289958452662944552982837105946441732761523119955788461060789427209762174147113513477548726410534472307162767107154807759291550500747326184386162576867248041921186395257324704761846121453376699779942834412525557476976127648744624227862896178478653389350570802634104179433598014504250787208003788756697287866778680201289835862367701329732625896518172880899400289657038616676312636884203070317627856254865990423802371074595492547037595329643707932858296730192641502327052930593545255433892467418198213549055755813722258529920177979340367767176902766446909465921534497067124997635637598043233632753069318888274728366262981920711485142315700818427353595913531334234399910482928092593519110478526523595102430125554211238273153248761773096238666919873975212208346210397371023806953140851540916047965578112363732228179385112983158226220063792190682817655678793479467576813942654368282870330988231419635131031092851787537803781484500205034128917263991141659842355337408253314321994780540555633619630514819097439939508109260513625124999666307108248962724124693347793200402851476233805102613903964351827583207281705506308368702365440315152395768541017500269703429457425052500957647579186328565803525797945254252175712310547342894463233070950443810184894531148981600123324017557550189429237264301012844953489905660950110301652206345899203406518852982980106590671826179617990672602693295853668404148536013779522306962148224442085670609345436375084468711278369103675227666200148352185172496462030100290738919941527163719535008888989360658283152160466489503778111655513487984105809319128815290400234434993827688037945026310120367833124251577785824673559441484527217086316545070908049655882093372674981535185348984793635286371105157374722507586454762842334018395551770683121460426785858039611288638618260099484841543265546216183932680018840668129698684149899021718513021935582186516409846504185593212695611204114623384865489140125751814958841766553697654070027312643515890622818172616127524448402692513573808088608322669412074333351009708730482471159330123549225074264185629652944265904530946531282592330168873730391279824906566811876816060949904584104581379693504538050062578763952575554930386374159833021793376212577242765065269733036755810618014341980433814779335889022022952558752510382303060364645315089737055725856585977403462448006505709121405303811516723773168871499300978816299168437039190914449064236565156170807163600129292449022323820134745995213872526166253369024537739318433569070445386573040363120865957928409784576253700336204670853616861500530914460959009181721106016946875163865709679723212715532904938418262226212749592679884422541323813655284086770892917697898465180668958543016236835331138032909640045745802839208024786459260199836047249419918292743182474196371445749897275772150334164015357467384831802845509688275677587280088567194483377201799952316528949290681651252367004715791125007664219345240526825042234307713610683030924315955463945897125486383085344346505849794423861352024193344426634953720240988747629041433835823816192134087316045102963205880218680952131839458775247810505431501380494302540744831012862330927415550873761850581144857657120773694051027209961441434855970575193181460367236937025066607966005041198757967828330519434450371215717826734161485835847763918187097450121285431812333150264386008280260442229739070506357000697339113929667744286777449443457390620151668291378940036118181340870294039626357995510760899590132186986423533272621564013845381265926297512805346659000449321597536921882868822622967910101953785671405520361702905858861720126339816334929422674036465633048935368364917361690232382587935979713866006450122650917673141497549530826434178702995076412396550546599464758956134868103230545232152984742892999200075582051629202808146863115478316254506492460822852830705673205921190110164099082564774272285346394200098578414641247693473441796608834276557687596852385517484053229955479562887872216605187148788114266062546123844556506868396919217402188569113630886994823288998962187616135407905187404905545214979631326661396147106686182410418009692215895085048326397877319478486817396859833097858050720410381383999071583482840044576976720252398021165356488875696276797433812971241183170913566212234297573221456748685515386116850402678439239386014149986701879424950449785365929086564917029940744266088654179007568903742074016818298451962618893303060336115681335708745284519997386996019784393951828714626567785512711858342376762150318321684127950098196761487183581642243287245854792698615133208663450689892213890194458153555184507844810428393681427748417316396021568359909790765140086279389149256029218905531808442897544917875159432885612214491146378880441441041390669883388703032159625311962709741364096073353443964190027440420062813941495739811148150879960872538856165496826039293874897626800327042385863271342934569004351262869625555950286020599989114674294135939892075399596856799813000804202113918144947617190542914122565708173112268135967215615402618153951154853876058334956359547095943705567898830461529776922913994649740034444828629489972987678732813476203360248908532663814790395339079015116477101304379779521380511805714175815116304059436471665034430435242964614877698319782318782107513787453070401923911606555315035982363451352954784863900514296906819240531253914589659484134312623843975987309705949191849898692387020149051827725580883785819411007730745851701913931593442947014589093563214619985640251993100532501892549682739785691374892124909536025327688757816861069981706063740931866176925128128272478217924535337517894541074843761949571288454549703381502364865950749253029317057352474892796482613077493359609146110123855254168146176146997949897122334810695282365157675803555324879262692866180073259273749481738364783836163606589956972631293854701704091836445301543124812726788884957335719484298731267534038619243383480244782670932322578232876666844694262966747559053477632109019923759005786538908289862511976839241453382305359679828318181709183896450928223906413164515213013179243070811133248874668628611227134090173752254024166951147311777462027852759748304983433425285356794442634215222320511497991869506898825267882018791588513835905039505879980636955439792797988062974216729293041861080574831478996072769778177419254871904701192637915875988093166566884130758765480258883336108549165917151637935733057920901537566493764533786844107294828222376153345354259622244576120814554105287227356679838929339026231860089872544832148175862937283812307558812331895785005109891825675003187527023792211140883221862987622235875233396298812202995235742192901521799168452365971440427329085681613460583718881240701651565864776850386261990612974282832095293032785102730616077449904544136817057808658982861965597201746672463142336141646394346518966546328205504984872183360331554312029126994479736359396614808572432183457830438691287960274994920108920576386226685161999021570119449128872034249539385391855573349539857527090011798835587801444802019854501368660593935280346069386171480668702374725807283843719560978418016058104857936819585139182588125157953105635424782372060288958176130788934073426746628673484841637580915295159786764806510610964611388467866622650929515669421916317479399849780140845574091229067756142122724281536507155100885321833518266551648820314648656721751401217229768294932305760737924441556854361489403935969769734616527115657651857917071147967001692268533246315926999339301890813426659323208577180919501136084317301777891329920973977918844777274304952497049350644416060945317497059307729778954416192374479393098676009147672105194245792937253074004748504990682317075495721593650076441724601436710051242330130750955639481616602578099464877459301286550123592603534029243677487625004504593288291548265106663345136972811852284102792921682154504704476511654050060372604174771891992998436062685610242656030559836844881144969407500079061926831220710463172583308913006069744659004474552285646328890391474903921727127487701163773265112513113402093630150416622591741375620368576330753421426447762906305179634949183806083815488433284633312231337023141466429809163891202492820615365290512665029806619419425269988348577461969820308944471975274465168944384176459225422132889400143717167922797107273206210534379929763624184345994366903984341805556621782755860016421056293719669604436580788157872709495675429054799081737945896110909894731778310460019508173758907744438772918859556485193058977438463560720169909678950686393763958567248046782453068200969841119407471456800204858099640714131741263813036386420690870148882661600314785496300943431804222014927896986344662905945406626121169454910661780209321172463038724221722158091192465756775240987374775652118104603677553852309407060536161729708696412955472826103798068158758585376674169016988824887431699102766313666539483719450084959833975632210438397816882285848849801249958602338089973329025803036823547631041290809130626965045212473763831423746257075568798888819856213468450820135917737399426032184656361707033902405794203731507919332124871610856631078522601768599671623783763993274883648131397755207896737866883674387258791682391068178499216545184083566669685554440705361789259012497481936971915321590804899267821750618665748109392757194630674935081814247875445132094873943608601589003193591051076697884508996232736235592891560062068736788673360530541433477426404930336838591129810646184105269727517504745446193330143145404505990955589989099959729354989853442185284335880944673705764752872209582582593769319963797117007577685871356371726467974537763929816383955054056718686278758427305007470867063085341931325390300106648468805121100941015884751899227924769165582561838969932577646915601154368243169307211289114463347663104037425111955647957922904558965028674555386189962071429973060545710405707534208677588534369053430165355104419734106435027217197829003099246224904977972432026248235502995397028371422660613873093752395047968338206072530985166502559475750241098748524929295137873410919070335315379919010487313794862383390280471266028754105288028624168204489689496355473298971641919885037998634741117754299608528049576229077800292370232965201442571025433081069501099151887940605524374009646540836372797334020673007732986246248933406959957837269373434012174616478587437435549212020833620548220590296098442614777041712679763372825375168503385791640261441270812490974129993038612550770755531085545273112446035368525580844290890505839319305334710564802480740748169676961634653339046204908775318644288160063411167287238576159902844487860750719104150265668262194573535497199296041510062770348809447840151027644589929888577361980491606642982627106262141241347641904492102757886348588615409332770656955503001766177726018031530659122075092500195297336055682100499788862312618319138151669226244077168182184391943954520661564727618500810877098321798885761481950523427500197304182381765145076037427629502938551665801503521565656983593378840429938317882145522256218040791901138494407004589294316739349721410196093639442576384668210571817427450742351698194229428486897154664338083769101871364525155473991671768320905523114972816020706726914811886183457008376544680377892877800588231370007149011774308236223235002940801003554053488313568476545503808972028764389423968784061059848872012020416488408093053375546071199891680026636403693553148747574403578331068811703109900112049476737779094177066299250737774340657417388875794886523018223416066699460237934133673980582375438769395036968546114381790793697459047886713950179725876614391800531105911938359203211988762653934084224532888896678404483119991755861359974200995086594360901711866418345162234271913977704874783875572771013512715860392337393603902870153692544259457428233017664911352960191987060473711562884608837757550099823974253466120805581086718572471540907985360290523222622821362071332790756425384708741443255834026061924925611556683631316625714352497843657338259377217704471278893755744711722612636031920122837392828238010777681238253082869574504561204995300686246978540324921623007670581417974277889378059421380460136553315000303696291434752628964974657336491478757301848988251114087135653961895726976914847809543941226939240709320647472786136459297248429273645046794552603192942262583550699167492588663254124074776590020516930671040510408529242579999215107614131218645904657988503182172823165469820401935035575487855061333579515161874800267340743143836130535636654548606519993735287680966328632997985120912548666999398857237006635497395514887586817797066834143307793850492315889837103512855228223790016647778613784964529249366961800073817468377210628245436957774020865410808483288514601458236046904791233689556290409582384485878514945432570900762392934252659560355566348430293409023624065479028737248022069043097908923672482555745197007123327808715595745225518295351491478399724141049258020483761176180537932266256420910610036087626118868176099387661061942624914821580765272083265371992998866826731625978737775972192110579361879833714063102920727902756462895047840850188878849574127402430699589793908658585912766409610552743184354584631900800387677603820420617527585950361435754419161919489856879526431028492253031100488551664890174573786383771195280228528918682390555142733608104510096941439504570496375014735421407424444352828312812167981014230764560408452615463068811292486346085244039985161468626369399682174725201749904751745767755108357234149171511108231110846126306944784110751763071643561975924793644240423218434252144153271816643237408988406150618023403934841760658395152331671293104491935048820461512821169018326605563095857748724001236406343433911862558241397807367608728229629458828503373926445724252366373460335321684872745634208706842734806933952306048178924095960790119571129746632045762111630628169642994747443442864440803412745223970820406400996408215496396919018004076958619673655037434739134372053902313694940430267053615578057757176783066077275291782744672040545758390081551733369282231409960433417246969355034902813880612335707521536220920978381519797186882318788418528434239067779732880673393122611287723751778341521385712497023077185523405203618108508274466999235941171441723434026308133572937730498552593252633915692216426242673515665945246705906572902102367655462610750550412529178498699097126870030326290701582779267892532472142659274488215589310861201383343366537853037197019562266485850140405029818682679425941539921516507823782434220815028482236405271928523096865556936886111143598508404782131304074942841170033782984571833696386641219852741790053917698897120247612889786212661430996762070192662286665186641850727392459443121750446139687533013596943517530952328083302392683446428496982292916568057294555253375504228736172883332792923002211178361157396278639189836716549005743969887271633406051601438543478303417006637035284310266399046727312592691625285314590986239416703124233878901514329899114530567927434733853953804495506503126533848599195343335774125629167554660831293923673624591471585093133843085027734509645373050973406206061682995834789419550525611931746529216532299556654518646746682590127119179639016556145570059653453905571079472437249056393705006552633060051183961719498330445398169792317609796908367252978657995695453908825924281698955113890155128651056559846059096746849761514791260097858206350401702591183414343992031678593524608751990489932770331894705323175018037189006320743209165593188652025153046181821378844454917915223587528973908789703350416946685059013350998462601140200159135000241737684735159311473161783014313908971607009560509168871081107360908579447266783225395214245586983125898794058923691735822018464739622530260873186090445582394460890402901450240058404991928213053906935750031352037484953486152915070309471602466227907830183430448165862285696183843643188765610988561976447951889293564478673858092151789234560269383729035363281714962818839246633276257624904932013619769539489782983762167657608884139786703183155091643083049022479428383365728364863170564824230779347884116578066779814671537308289444260510342535553308222662319411157255424184169541195811535545610208339849061075814634859218955137836519689446295222685010583381410949838875440188758697127322674143376301859684390894111173915997365358130102353849223971369918945110993668827143680672867090632950929355510628059226388005133805743035805735351277005840319133750857443698119083803108815366976300781326913215693914963169060249340860354966017270627682317980999717620369298514453979933870735419495091171235731050987618427638269301785566198356721654431171654633966335481477889333350920746141350272446496088315591803734058854245179825137542687505742053744045272958009335763178078033817779569144795186916248663588278991996582683301892036351896113337822340895884441588630334663297061746269003253362909985418966479220667134882345246138131009141896737819411229933291970680028639951917415505041372713701105184389996491384906763694160527330705863682445340308662466648184757070264640986292369065842557749411087009457019640692140744662966759545131636376838017539892204663853024838613240493107091304659005706990424923880238139587556260117521096906883437479197189084733422451662348463444738741258863037092575305903890539604591429398636758907726444782061543933212457734238065042687364532340257622871068540180864785496609226650183900826663217567082782233169135124786963718270761533827061313911496834909848770415272284512545376752876130924167878472638751547658870040566475929495613479245285619702861626994540261744586341584106474664524194263051826149891497511398780995234782442174004057279845038773113349046987993298262101372206969277677351067201354939746925012275247245048824417330183321263428478902212056310864233987267196748217751317709531451409588890501034818909679372692301141139180508427953874834398780117434945746818569955432681782605570650111055438589224006037065878634132494591630418450157021989416016251302575657282483975149877710809789579537976457938762972145126395889848802262433021772166476197274710788841803587186057941478719457329869570296484761680883968622467902433242500702325478884058594333764614098440133657276538387422307916620345025223321421050921097619343071344655605896060317405061551738180553628332371893133735465558861466401811595914115488038018265775912176504809084212536891298690431265236770930702419512109020155956724765443108461429825957170995403909575163608664239764976243583620027472727343916058348704581434933939881006030781401602057612610276516264135324716113028497922146843082850080237287185264593293806095926898004044849165569059284197987763645458264141307390606116352541729741300299524200721309600291242718428606281439050885582586465451874088635405263188322091825924623052742434244311981120798260333895549294834451902363030786427587056892156675541436595649190737627429902101333969446725330485837561920740462253566167813714247073327220735072181679631177749459301138815819216168846700255167584212212084747281443415983929947876924983629548821055312203027871990017485680806056158196221718620268976609205916394449909770155670291499014752772669723262810745399230701638526463195105938913101201306075746460823823833588157705553040024167809587724378293882139906605233643985435137291403700443394464187257135806345812461037306246951412874516357574211696313167467686704156559576507543528273825119762513132749639600558586556896198455196536781407426902087609154171664221784903979003511692824368656980757768199217370550382225511089410119430280699755778186788399836165225210362573168737132395983775982020661952111871486218622770773621885534704603211424844156207899721376227533816400325274439730114932223533250521646957618446278725346254566712207377501480530745620040405473456370301135216888347238508849863814592498421620967883859950748195914741214526979717928637845322005522113928508808096935272794185056714642993274543239315948876916691243526682548824953114547573960329829504761491680257750926378510881986648513878910864144983873701022111882715020605983628640942026135861123024427571739915120161465757950255292323758949879337170517663958297079993094589003689478142659897931544647581353980534365396402416885617130433060515978275045836910980725043459790524907044281336890076074825585312066183927664266006912047139283888092832508450863105203609988301074036340163978247560931251370927946276972714420703093403453106447468243003078660936989669743436763199344449027505370925394570979158113980465282636072391963092764927157905273043901758602471349161286090294804182651170947232395693776432659953182361893551752795912171022866257842642829852515988612351346146803485159602065808597486197890348338535324492902308037093292346496936625904664789463373001134694966929796888124336469599780983439671804664872485784009433276847503656819997799892228900390761372054672824846101414302510232943413447894333317389037435883073258726697345979340969238176871338237062140756435117067893633716180580091105860326707859042590847451024292383360899588029474008613002255454281198359704596823092481619273834685241220014879584486755515117216905525617043206387853108147768910770657821502813165909144685846498742138437799848067482877717310977673234629864481033206872275980278304472885938305063117166899536930513110841878253595084277779868246850840974959622942359521259637177382279426908368535942067531675163727519202342682462995998302049994746651087254224853995704728443080796265306889500188476619986332317029670931980663620704250143509517147880011095283630076510479553616598627972209269222276616860320863419332901206611258002898346633071851590188989760487533231793017213476722796663481346476116519959275251971004507857417011129806513430841312375529942680044369655799756084010431697545231328725940514264280274008013416718062544588901654379686694630343990530382797750760784409763434777619436111677064945063731697445656979140925419879089377057746698092291345545621704449633440757202478260580603980803810199737813305760136969497489169049986280686189696496526930566829402325886579356806156071112281355698809746259645845714553653956020053043273122864396410783994519341716664753285801297118460411662964552170233295022418095802860195102138516315297233682830591122430135048620543122992341904401926802142590367897845431532001578941359707007967180537185411372305228846790336564275596678376676561193870376375821694017533905746495298136538555435489415648527550620299610824650132591396387878426578613911620118409426589941986608627517662277758610102106438699642142035046418663488660098238767551146713854110605710802166486696593256160169944552216995658677265694332829268038686570839759425261310298892553607082671797930089527878457832343515006968209826286622429332290757006558353721809733399564545308937610099120824445698066439521942011653586367689949116383078569691083536820269725731112469585443654254283937219667769674917766070514466603949896781047540203407921730275818868569650074110952811903837744888799455419236771850335394413085776098178155137918738117400532235150006317163762002646204714140592405496088009748261551357500925474832655603034720987080123673634177414488108042395982412405174738107299929490275492868128508192455573698142034957203533608148444218235925037531740743714929520975242298880156157361856159416204466554862143792897361543106938966359692675536683860838207390009181445933605470674999174849296446368493677975680896981675479534323632530264029220838055733737234894647784512729360577006254593820469047440097305457014250541047562665146430168684829457446224875551847474279660955493726540575654829095196225494745028286189582177818359230786645550655306529861035557864810466708705059994941054330000984500435353603740314510647570343201424225694079775912957189771978427341298579157223229922843583828259602186402326974152265761693375099146155171695435934660637247256082766281444351154286453242512392221720684823322864788672179991708016830188671117420934664000877046581907216758578918100269488524158956686296432212086482810669021664045042497615564543954588740271032363304040377137546695784060457778399130529919043145456046554757615878621872593131422875103412759219110916747984385699426553491608110423296182552277169954133820628234450594315808615455949567736242848834476916290165394787884376514107201880729726316357961609245628780904835821422622995735094192360483275038292589884390832680974502680179560915046146396206294671769316658212786454735779249824983800618310477543273747851584392980144044554857280392073161965802425742032413012670043114413021113046538849417259998865191164118353061932053845034998729803755986178246759760511105157449330946654086893022252737320490885805709243787379065142281252019369308788342024568593687388230050592222652374728270413062166853196212877111901070667286282039474336955749888079500613229456638056369747206873204417566722939726181218194649601618841909921448794989280131284467017029116057175858582470022021005202844571010355369909670723664955409570686404965424282715933852038815693615946561937737840386481205370231681745913561534524981715949994986162612271880540197776301126640175718748220157784096382963677304905425404642647358220822193873325000949360260996733578290406094746180518313038569857890657598306114654652160491617006858709550323821190725447513710505979075838567227968809510832471162808062832166458859446106644185072011003453523101242348126670081498773050031606369400617698575771982452859791915685994758839367966077939228662352143282118821531403085863197297678195955443230658281101886306171359234651763636211620258950729046445363698044919440420101778676223843124525760086264714206676388159797969508324995317078341231532722525961540268100183328495935904760828076148810394897856314986100923983098356057372949113054276301025965752640285110140972092317651271362382197693024055642752648698963153523110239559505331017982270242605753935327515930007679443248107134440521912659532898841157570931484512458014937491738014453129757093137016245855027265779395714654716588479429075326453201364273756851151783446282558361638906512030767922993212636083336628369604753551215554493778103525258037821565637043920890374133058442899024083684898547486315706296354174841677798495508979289292689929896752364044834235675607430607254773374333512883200552404613812083761222912519076714502139581618373140655778797528751372352820362463207051219951198878591230039570126619888440570143253488280163775586006713267943076031870195262849534152207524935092759104562856587498432699637794535941168414448255476367387648944517489645353476642683023640685455521004022851924801571753697330590403617822789171910160577111980978813346966678932911142685566954832936202550498542873535807758719896779134644399445744224635195854321540315330410918523412325427863619098440615060397257648188373679765148810309870807716586921356938279338328796940301395774800039369842200590008527116114194922212052831499184530491399871504629764777134020529738038219985154908482730529881771955997454564986507807896396817357591875184095287351820855548735848655521944798837603572810161516177117023484298916581973193064334598488881523483985962266936298858147673772228612511318720218811205354180732341928982901614076170135074819973904841584193075942642369771723958396826036206195200289013811062795574223346424738479978836465913764696804217693776020373302142470741360646003127986673788686435283009612293725568396287245538596482446323355424425474494428984025977051095000364328676078757459963046564954146192558736219817399969916595988396412790565343272278865612734883964350885626474359166875390070325793539120712727216467987519078313666652263028653348980469453190146577400589308972371509961837460589308768612825926721518052692991101428459342605083918021776403967465562501495800597558184967872242981715500215822155755807502438240710393360154263080774819257646170188675535729044681087201205130527437878422252093473856716690959422209063499956474538655948350520209524246002111529891673004855985441752251879545643908834976357934604246249006860664627966588311578562075021735722252265774339950780493124679661829834103178377721585574372642169249097085579576718872281692567598618405646340606403589174070384373286728343846176500331472536541975119480847439799811096202807235733496773479889492198434661244447853924447414965396669072358085689599420922306688594892298826216618144059164215452177246886385832005415353845492157233475084734821541754560514800993648607964053124993701524636178420862249428844237191651908029561764187280350768214131895745158043885469603466727184869802876299134862207652750311292299389691874510843046570046678346551171894785205903606683620293755255265607046435608877753099818674983717974515247101927097905735042563368205480780073051102154550500327481036834582723585289287607439854310661722678985289742447784146779997876858397477330610591121988968257542695830661549785871629132513840202854453358571443478605647564731517534665751264888425575034849521747418462719568462525929419228029654463597746926961049844507142084489677118316579150020945283243776003057836372691000163138521834001579109490433414297524075005378578806351727557441206988076545682573753192576079668760299816774105128064713932500745882196691670768931952823235301536011954162120224547306544158503421600776660811604974317896184619105303931107334973737632926909090013612509403834335857504872736379517086745897763826404854586559646389937484597269052918466900148012605433866703307850993062814718000739660471955526607079161397679400318304751194534549654987834890336358350777054798620260977309965394043812083359468001589507516102849800652554645591653394969316834905475977578755422738135500229757523125083915394535988896367496755316359076077609475829722768988585477086646883040347352791645219891927607144483843142026551964808461638216717831998857718702194696458275395926664132598710952638339276983833008412759872049333975653428200977751474176808090198271163512130208977739050148228226019401127589757404888888320756266938451076449150203284743088616407284537536277537525380392202478563834029335302652836517355502733097234310805299598468102780189257151216652152157832997048149155782124579017890018313324479296687378235890851601315685748175795848534728242090019569750016114074404382123679232130528875232343939928193125591959361103483065678438240746670662341449265195465769420173035422069304660698824992899019674226973750331599569393306546824100140245444724996482189709124737116799544224850720655231294113507612101546939265827761302244650784422494734667948700244792268764354523674809224222782898461862518578524936008844193338104343739992235438995941728090138926930917520584486987446633735262663952406432694220266421207398348099257255483504602604660466955471703829561170936646531854852514718141429908217019784365509405037517571130409739437840655925465561307512234882361245164713300810924453682908277136433448568496242800507080547040660021550984126039113543303020934431971674688059704723726782775445883781142907044798019797539614939605164430119587133070286201983685274809201982581121463707483713580869833697359389218695771470817015005160465657581211006858912776919064037154633283800448475716654282167613428272110366771316364644910019024245248681589971772185272285522163238579012580032468877620910968796869575705235149117024496578889994619803723134382001582408197374643839489885327943980573196908383581654844127140631114806623759721355544000841848799642566772255542088209262156140553001787904785675098805720039747962333542819658739912068153977010192628350384697620107026581033533516018269037097093025756707896326986830199519908724960601600875991128280906849472579609864134157792755272032279414092997694861060675680294444518895012460763032987855903903312637664134744653628699791507922935765782725542919091284890786415067696619857104409317916219907856368504065756526685340846843220804956203448701510768663867193231848056297973287461146912506966920369390520645425129122452256410716148599278627313896786628679725578076445558126084718799567202999269357691863022376975385391961437535174593474900404370624588844687453663450579275342531399518412453583614657810250058548806439963981534167771662896440319163064582375751824834924505740283936358346186590617411242327672870511886532410339147680041301879045442232181071176711060027515936067358216769642805539295682854387854358975390633685898333173579586770621773119752314664522909289473020426347187315896340636282098662167335744043854146371126067379705370247515532863481657802194136098498483621275000184380521157249383475480744914043662826521522491524560152562646066554515356349782688344148938293514506747346942902436743769235552687710570343931796772002308658696565187958257778697903908488314957085037245595227157693997882093464269676271748026104371993864320278829891898166528320521022398558635724122818359597454607779846180938285349747572925986184090965111966560617861544995316170707049914016422800413313701723527214491515804339530272590633435669578997623303986169603156918078024255624905135176341883208566129846578827948102111988132059470056414704331079761889587153816736222481147159752384614411213558305302892442888605086877578808765538816110088214567564926440813749336684633109478314389933268285566602332348653882904618029485071718756477769839986452588440166177013395975035809686284273030181197455343663604991727010205590558206231130379562794910634378748531732246125010262101806566190345483272722204778562031207760320337742771686666245078053076363617323941473110015618056384066744653345487228526536231327479326644491422185184427106228510526155598735647966768438273488460143897959635799331871092840483479727524284960323438710381040456311474697732193410533540637456789901448059329581099203262671058066130373303267963539694399907111116401876735815871091263845289792068620855350156010883351910928393075905030899732544351705540149152260733856307989092571316393787802752146212334552930513795448359418191326040819646770020086908331775398041361947829502007943076258524980587795957764030166228731369677517668036463141489027208918966909578388490483874844665536638347250196003220351831240741893285482674362701243734964362849630356628712468498153675352649148184063264817465368689680516346755307872351453798982871699765928385864979919093920841159608062421504045053298456862616064296583878907771386287077585842857602185028889319180086479242265889055639208136104385801521172339059880262577355452029478974446219396974239826237092672703067495275552555690285526011542283174297788309108880929495060559586505740972486562598098160082023787946474654538512093984082757261123945182356779775208976686391313517140604557083893237759465526432108871774682956243248193500629725287657831177527230699369312365041728086425189673157569347724773644327691499735437041212483256226267431884014021890949061776833955010611543285745492675714943440741430554933256360965690679858445543296654077581213146695869973907349073455483898694702605492121141464039166443979809673104758989207907880798145134727674207046539205592756556310772292912912076458986807706991802993524021290970119560316660313488684044552287465444669534766264332479063289422772604580866662046025663585118665103572054143615944688091410165048138013183459152109812771661946931396914747878604026792478578624228603661551496629655958951702957985008739348051776410830735809294867286574339764915204576245107568034092899836649293742353271321649410511970194392872989443651145937845442267532999561252890851720131573010078437485896324806656905932401987184911182341627111593869001380001543137691931690679413998825059464653454189267356624804361379692748098111150261124713637270722520755421776752016040190962748939222437964257843071877580697283102177515841383578918998126399817445828130103377160193201645547881428949693307800894650876023938308600278236997789653462078006335600295349068431620926109549839760651986147838082038245217054390151431209291593197910010951400120493336452777458549820236503946657805955569498601762292301437809604604203643523296618275150203540735764290875513923355327312788223866580922249352958787708985221891688010502185491545710878655123646461882683995325816245861913876424340333769930191740628200114157102826853632529326735399175630492403869148658923929553609814549732188890275737653320817156705672383295611559433603135538423013432970834049482190316493467344432931505449546622223433897479342595867520441836770671933564290296058659099999509215064750838043571094077657453476663850956290903578026004621713718475848468948823791516357268741553886647770554290863813959415389368309989691191283337878151126488193978621058076790609065068218109727750809544079233071438730171471454092236736083958951319359739328671774508145089860704933927689857820031185256244548701502166928502918359949406066615886568493187875527535517168349889624516773681861005312931840952531533118543349529012348744225577945077315322098016896723679873340945082220248232262945732301716177461625611229609797493433282421030893590604898527383291340220024747500196686195199553789195059635543000895943941781565570335226574371208937797815456180073276292123839640040678750320715142881677221193152028063172132752384588360344540814959907797935760257793427619825905971455060362567047330585607946799371894295495585389460829227188454376231162395022369051076796802601065045115606462377413432156641700360925875579359040987789885135457798662501067568048856410515159194294517401696503398761456644286373583973003279057924844822106449302645109588678575774498134111824690321460040208806422151125826475971855798152409595516449436692758362086917466939342251305490274784706227370915686393009949275263254065876146490667248039471490709093565725228649877145403489811106916917925997774916582323185167796132016538805989864381683467572821463822349204554700632506352535899640701052989729942487800371686839617459443711170750542073150930384081982250128621846046565799437781002043523443627535941132467012575378019925780549466903504600778434180379871983497667939720886228101998574651718187342775186624625901496121665127594792658683616608854741153541204707918219463350646334089774463996133595747519918256618102251834361871150493902162106947956386962596132816267992640853856046101583577649271028642934286873445118616696413900028641718769594041659305961390108974281289377705941533321531520639445105362672632137279778094037328621163846521647020350281577168890348068700299366235645293039571993555420685300937630855068307043146232632754074036877199184654757731845894964427748705078711306254613804533413545596953940706268261878943326188223562524124922525520818320300669163123459538798270735405251229920116956819735896650013751393166352919688868255222195150232013593031881325085927622425689216093882428989587183757017700173806406878717790924569450594792967788572890145557174480690349860303803388152933853214899004392775252540231197864423885801306043909766731320728964838311477199014332281546452483435267932464383256764893742917104451914697520695714451870342093496731777966113250404020394336343701319930037627468580968933071713899254373765121684583977562309568844318978818059812087754478171798303862828602686456834488754476270971046932403602062073183713657457649037884799991916917252912778469401437592048828521636411067381741909745408221980898272800423454175292283731292089497541122644006396907815326183382112962734113174347960652431665843274106761610532742434495712083217034601541106435523382082543122456863177398381410839909292180078859943297914727170554623768740174384364833360070939023978356016148981172467760670986954926001246220680039296283527390592902559136900824553232579163731476591001258186961134912442671151193498954513482252430717692744541673515853663690828804723409712431883638966673222814993373900866467448522539346869048610607618833648266251514925966105418491475454538117805052176856029115385360772194951139143745427427637167836148191276956523525180747147572704115124217623434644959847375342702721585537577472145415926202271114165411938592880393863171566984490894764408215600424180660719573719143250767771414730491644702173876565643636489103949694129603275967902618731775822926694417781168818930542199327291835248830009131427900276705610908511405106441717557802914108249883380834918295141928516699746305470340502024587599407313500266924808751131513842884046964964724122532021144447844773893145583617895948067681843849253414553198675911154639925859153360738404396690089109976043428962152744595316619909211975414048495655969136320000382478000657895484871572686156290704831778886914817736097512730331464735414498676893818070517716349405361568848128641573693922941526942665521656261317493152970318178662076123089966368014401725927206497111748149330199323370339053934237841708098481386044638934710755091875951405636389625866042819513488855792687591214849093595601728302458428667110052185938096577233107288608652981099889029120448654696684080139827274430415465839508385347370304329711225741242929809564032750419472160881623303074697943478048411914297954963600009515548977467865382614841247991132748224679079620259682970869693655357050270591155879975016221235107388166369388588855960483042002734180502251990249950654568366844290979278877877707632663625655565726840910536357364169802241986780822001112529662982905065251000077223087202977959078904932890497252619907808704860621785091360418673562938634855811370481483310117557443189856182905283505476614112487216126310445789483286133263009156481084104834370889217765254648632052332656361918511029451317540250351410174040701831783192979109334730854826091470549879937532034042779526739557966265546950607381737172448263633530330280206978560551855678939067100468632521965510029943874150774429319305994279822689856654843469731530416937949271721334180577551506913753253826931293618439347237382699500673855279600749148820912878241285706473051358942181661058032779692735077053801733724258481822583107887242386682767233781121330710129441220888088012638869646980141323913103337351066006301497384465925932539760894347355836909565579560032667746043703031071105265390602682969117774377779513046612457554235369179923351443929823189280542231446300557492451854072771270195199931138559308713908406909267411083903170333840884192038824087079854062378425568903268519893817022378287216292201147395839409152862904693054508452643566897467353324815181383549052773712059800377597535615837934991002239897088716772854152554228286172700639769196285119846713889277138628327472638657350616094576887056329601166803231633040447103401559307699156987635930003612312989649296143590363483356703415300109704855312246647656467763776228701902503254032626691870116056231798353173006682383283232956710814565848616080707405084197027686759492571476318888833008620807706643384312261099937089899769252571902124004841737065569872450450357577838183884131391296395705409423273978640512851340473152364740168993724403644185446620306926091743724075572890991063221011180197552146102670203327397822617698558770368793253330897474034737927664735815133940080827367738191506558130671307078156002048739126339102645838563206025943286828917988157898247869989933330265565444095856236646023081198133530628915178273470911401089182682405820128973301795492877593579873519372836767980345141781854295198203384750426621504523250412101771645480706053286885680984638604698711517640387137023746565197173252193608785157899639204154621773691058887673479539662250305248773483435705228890184386446662746133321749610498555463096333441912912256922821914795991418669196510730553534792820881275249604160840459033266908401325819602332259258135745774887999755030363563843781891451373157253191029691656428363780861072627909503621666186266803903051467424307700249519242555636315025238462776952680672757682636408027219721561031831724005842478948997061326169355098907674587438035246421926320324688242123801471364366352355733968409610572037653783470100052749768451123167683466981917233779821875363067068122394327047285110966596387074881626898832622528561848332757675757335324970995528011843966858603529066322632344684044151394694409107582823367454815777772114946559041464406621837322931598293799007927078146961540549006352120406464190773758871763810831001159594431704983174742448036025642597718368903022182198177015583035537055350042557206744336857249757319242323085281597701277124978890820464873796644529082067775420825161933640059293611286917928299788543560071049628827808608726037715747413984995382395369400907667805787177665623238083634643887223632179083136667399423577181668560837844073365550318681438515931187804761399974238963278376526497602971108411361590538558643242532224868126102040247801697256973384904166598669350580977420467671444300818636681627054950916636993299511814599215425442318029602293251365016733601308287469225051336990065456339513586349986368908665099866760332877692477096864329151101484238467256247928910404775720867503580183261745674327361507258133202342257753715020281067439203058211105825094440866376752466421242320388179263620246689616301338852796296003841489553160258186517285236081000437865673645077249201572316146425856320224429587429216741990533674974343621607071522283073092741546585135677012196590985750118628170549121580504345914643981483245189009768696265836999523970241098904792131069844156465105571645995703198649454238550573873005029902650827926535852772459686359530149493037549381812133341233163203544853383320009633661667492598854129554224583562634368620737261065246165672753957319023244051609248035361703847823686805816125106665206791832939497085594160532334743708468696152966671115672377268756755103535606317030030965965661387720350636248130528493349210424554546299867151092543322995459374675162617035446203966168526360595821975573535983307288179420592755442024239989530113327750292654800296943402208624522875310613790174013082603661007934577554340602367304748020570853922669003943304282097081028774888169692459448802738880860880329818848387617596796292976253645025643525992374840211585601827429658044570255954695049650681716110839308616183655621155298362116872923290062404954351947874423452217664986755789619488630837813628175491864445106709416513658705857028366523384417830279835696704315671415127999843229547782969247365183253193352519170796188887190214014828393554799516650946445666640638896461656625850356590779938520478991139846879847668211124273415820752109428101920516663627980548205150855482359641800614843677678266891461522396319338946234201484659827222715810429786822694550680835278148819528768756675689905997849225033172476404043397034775291657125247575511399463762174083579254611647336114275291657287975242991171858541874160720410478998790016612372155858084997339725947806898046812620774690158684082865286807290495165719475412360412859564237927331473650398133412296024120648663866853287987181370630358743406041000646449767258091433508897732079247763867901276535318587018093738317911777990368786185687722180592657576757750701913559816849017348484654466375476468384892057559730323657961082251109725917459511230970640443663548004946618959137858229112869974644693231904800421792203926929056940104644977866301694085936339170270941283463757283958454607582084905148566524062312545042473729971142181131859815313997696717337048473986328275869432747803989401375764674782354903428048335824571202959070650574330449736324867624416981519841536834417453734970089659609411222467332094368234649739400699379360285468448339971238556994266793394088481975379350308767129009893695751875018855571969025704095955875682660867946197178003424348480835798161070856149279358922472456382966891065374457696654255819181472870922094735046553352431144082783639796170084090657827345495703697276565210672190013552658330736278214840873804979536046658504680216504004062103225282351182990984628774295116556002758572116683596238737197899563323205932574228458652519165700132319823818982194991571521454504963966951306181115515293254543718145960967246350828231280002402724069882755593784966923715615301484119575504622749930033029980406547247267408210355083688598469309250175641462649354265055027809591691830365896782094641051649973313408754452977440669884626672400054298205516596421986439978651220088366298280611824924297556733244444710292021817830179848867938284067191947782323459749957686822260720015169144648665330394149711217359342842930554638683469843121482753924269113940022955554778965526114800931425440478271876559052356961764509359252008783130427430400246301977489001335349226409966733732296560582136443383087935205132588904077026556003939595929765234145664024360456978359971238067948944854599173930398606511234207283403546849093833604084060282780332297238401162049528153492831814689113829404353884720006466568669558195347820949161641163574240544058796428676018565153612857397355952854181181257339932249387625602692139361850319593823978421684618221819634629255068748279120201598585364931219135993456892527639892020811872349188791578313005978748322353565994501463899404520730365029270701587779481716836361469572835633631423877728369444391730095947798870044476785308563488306328418654451118567204143998488338309820456434767982082200021086835874181477841901487306028316675367558067809404851545797472757535735563188436202881053351793856874399680686134387678692991951162469348387737007399524302470508874143890533253683760197754872194217468669177506750222564650847593529666109809423897287017719291735875478739575454257618587822385559222656429339565314303218870898186080259150966386456506342905409904256816066136468293167125728249587330249753195697117438603081980154016192568063186952666535242384237396828983156730551535117428128522355985955696851562046695128628549026417203989170533876981716893185129676878615959011542632895072141300633824618990162202869540386230770949570605017075675240010950050548694737450653610018659632882471023962689027331758756911069112321280084598420165833295356093736293312060881650407254213544613394211307587840781274817678066410027014611530576166960551113441848826350320825558193240482084607724461533835850965666642146694322713014627257384495639804547429789432277297493012467531089475367038887401702206896025313039225485471660590181907553715242621768265338468769363941767474856350082682398990694900974166563467328273589881462750193746943155124187728802027242702368359498860754398081923615804595037968657342407686506197921696331513476571836122009864774024593113946438337865734110807422944550086976436819689846559127582105033169241468459892821406286325741931428374111920485535486298992930525984351683600931226968128691421443190491323917241592108881775256252346808438102167100358665418847129378402009474838705693009694356890716302484868180707184398478663344447051547498392605556986271226726184612005072546659683409222046416531448884970032942390410439883656999874194751698220978268858200943404429548762201677079616010958979119191071213581284931698379319805656589586319697164974515582904474765516672137206290016915416660540255270480471871029824579718403815264872512794424560610701633147790689027061726141723668779746232368576403129775032977616115794451403763378682474123294095827790965687911619507498617270769903845195265530505577003191377626980702907425428994690439110992833456719145388044412025257186175371204305001840366878598173100125066526608584630336767605775497270410814138343288238873190797422104284420998959903865036111789009827468479261582516232458159189058247341660186864242866662357449814668792035549742367996569384922808527400670291974359794052529254425860498420061646083747043653724826105769131630409888263512309371812485914430200316014916129973265243692127425253731989144624365447328657202495499084789039333799201507894446591688653792522813224505053567570751203566596463911035171326370530077389316177787246732485566540707662745432192318762486624620580627191320615022549784615165296941415856065222115020731523688558899563398403346680009597278082172783038317942203547044764301258111704240977128754702005667457361028818868240419185290126045454795021959996120968031001530935587610575660488183316882089769362984082958343364566144802198743028250359959360923828544693777779570674275347893710004029681771021150309382037054049805501550219264575898616835064356249687632962200398968059222539438040447672985843344893006616489778906760748007892245240083194684732368058148755706798356266191957572224745745606795342395319948825834559375659115051306308078376237165846121116816885850669929508442436240613265877599176294300781473758598390458935865922773975811204765167990558463805770960497206516348251928223610893586914448835650881605954656651155987903949199536292432125076171132116040212483130897667164640551723107115054874468188376606957293388625566682904666461029379303507832466807804489505455737963945164901720790698246909562822333594095393288698607425045663228803200665069659911322014072911871648981639179164909776435559147776532806609273737576154797482831044670844019626728840183643781527013817656337469101148522782458021898261605092126597032166843463420630017695422918389283449473504900319555208396519359801385532750039810892268725959965430627295900818778015863409849170578239126266528443102962944702201974642274530774728813703472323854561288273996740416584823605459380981767413796065278751879173263637867650037625340825416056272606002386575611506044342143535736967980278194765602215803916733941725667466816083347505603111759675676778068870434245523311756966525263963395714324662556165525966179237601938969511274991685093205282354641805641462943838233006283148586917195286001057688912060444367765969331300688904038303772941529296951639488151615447971662581506372097338141574015633289929156652672702737387837322795218672906117910827667584962516904227543678326770556910433029698107137112363006010026519753945785405811812560051496449914445502090907843163597558009235785133219855161875880427285354599081258449693409620124974105401509400006974178742107784971906975537273277246839089696021958780232681803620472537019544690150764533354440107199030375178782661950772273566408385199282692098792249873989442899786880229248204779452944704150107763246033359543403294344447017096241980880257250173738931116377230576080055086669451280883630343833616639677773589805395955833448668764048137144408817042154517827510500601424794148805999587637591152290926354521595780018269979623804935516524565832910836529668087813396598718777567822599871529897477200320209577517137368412675499916518604065739512589165205968592179534982462169006196481399493664645774153324271768240257288668457642682287155527762419918720887341220613367719275467424154120816827504717547132451045651908317683570013650965145541626217419630535321858010217353269813302363047264024269882564864100272702361751559408920745646955820158114441825571066313140417223848970827404452744671717918987597329740187869745438019773222596171131792576233270129198415527102637478206522047769853295405070504324941999737993125331105076831676100872358918753270943185765463761221063391041347609289902653579597302106862633055959957315154212113791562177009096664096069936202082426138967727652973450049415058539596847953479146965230201258667470752864968373342048889261584549084784694345467562539517417438716295964800926759624267039567615379258818027378930206603643094678712671319370690242354247046454675094746979873188607187145247628579752664005648432048514060482139300426790756896517051167145629382651572009402032425811388856590860386886766203168598193006346599598799156185467777457822270635826014618596937477859313836414542250409948099517903887229737280419562024436565617028184150202072189784806279179228764177210793251826453831834529925033221110630683536275034220409430977570115189723882150512761126554697373643318135827024453626197936912327840755210982963641415354161688100656736051931333505100930331777958123878964518907208516473206077757466767240803427667217255020687474960095354579852776995202376043132237733537786051741644299124527011558932496801445361564368676720480341574167172057887050177244255203520554333750535981235384397304737586774270951594668101457294813740315525306978950058668547166663415913377129407294318957920877882417688728900050309943452748302840753059417687835143958280764094234476191380436195646854052491787308879997670368253042933610861061309651838552650220297298638317857991287360415916260593852595516507482965364218031271490361126822131915975283623587192696268795882987727793593442242817754328477734271399191781379244016925125246668061643681715012238984874091433031571726949507797408278332679019097218452663633557583936320863534119453182443451642152426650142739728115994500318029157554358304457146294513100897161509007048171597848570238721364222172166409999417927987229845052861523882898958029847973313289618498792543455062662677998314261729448806159459913519805317601349779351166051225460277394502100335439639580010317621940043583731175396810686257448378253447416267501832230418897581585117166762581468379401302584847865046957742958240433282158090556037382131449546439054818966004442746439228256561025637667715600752475624755627902786829398067113072316399244072691481061949560287213934446941215126227602336262643336301160703489324027182355659955887812342953576024596323270268418739660471339856945430838476928035091869047061409356802562783495408832244292386571742172253634980343715622564278861691623725721267360182471387269636701271279091808833662180744374294049027947094374950106095948190431979427167371680335606557057276672099700407906709652614822757512182146695586918643749998601298625746949241087450064811174414410202911287307608628808189912750421227634311468779679922709647801502492110347984755909811239519257608802835971001150636320216721121077454833931741153813744584858675762697504543983466480365601587506590165775161077866292520954600586253806223594605245957948732260057437871538745554201923243499986903507631755020956563521889849936935407027698674590959557202550707811177399046509235572794716237751259841910640568715101520216284502552490544032524446407274002534705652898649832464295606749503404973904574600089685175967086171935538642340185534042801894014261452461117560049826433101343191924542978013834883547228638921904507251556408268892675278953770098562992668849178590006940061404917331885902868593535698282346430468774440023855593606381931651725027332561934309683097068908696089245301110743631085120172219085598380771736008897622787157395433339590280450057552713752709941349748476442371721858938490361445516294051853926418879730149710619988899475750290092539600204776838470123852244391961333809790743431404231301676060948899989152215699530297143165315245571411825344877309623956821596408706713093592061683483247415255177594420521908867936678448692886638832746713037267920196726823656398176762825653576027021471145301230798921326032918095063292558062170347937595971928381460369533366384968970868665546445660420731331681837811872184917117284450478777293110745451788989938868340383386818059383745852513172787581574914095183996563570949764537709831434620885021061569086695523521185389499247176495943337106364201720539666891112980362823991720105246797485563007195831649392238190062470531903157753500797103644067495021824429211659577665083788229533527368108341284344602141008096905195402019078600070396989870538278762712497499830194523153697862037573559512356428682090961896932344760064038456597010927929572716293156450621202605166901870560655833706794249639697684786473995235963964190566990906539425909143722287824653186848707713722829154214997828864028040677341469334504573434424933029031100130704397902905478525414929558031272762921699311525518146968405457868605800919551840478413971510282180063961991896886917431909681347453235377049001796692351281192775747965168437338892065020794444992961627127821182676930753652762034885066950286822761057215398786009732687884118800645886009923018963294922417083002086695951740538758999376934664662433946344139466613713704138207703662737795362972732336658996866348710288327435070060745578974361841650409882104636669921385549947772041305847316011606905678377926713003642652007373777386282021628652892944677109332882016936702109765919036864424478954019107134717145954490382919015885310092694623125300932160400221931443975816618530972682384116830874585790551547100973013411108578237217217586589812227014927878362718851510466245382914272978191304202256125059585179162122929581631234952044894750312207534450799016729113080153452835177294950997929644563091091196758889159975323527108140676471520560121920324709740438988604197229100060268952724606228229045941651762587289979781811568829745253752672149011065394314464759567415074521216611087312489727916536294256894182322600716469692900534619659938828619919851679258564953906553595446583391315029327753207592864528489391779492452333105213546010008869770848199317476780548697803721412054562381402646714172929027976596163665590818069554908229269399424819703447297836515098259456062835133374864379227295671548619435997227857096041773946223342316349874277663191270325751133167904582738502143405331357292508691263394578818432795169456505180640991143882419297486592622654400969941244367376975217103965404275406295829742215652469613562388949550173838494897138126833898186942933027795214304864014329413348033777424504275711891653649966878158136176806039555676937223970838210743900246228643669880074722181881950454750439268299755049992989255793488113845621458046739018896298867571669293868023143543477786584230203999302674846672409367114640801236526700921170092644010562307379947011825635327503037092684767977426084843858564617137578488013530179024345923868402529713029124803901820033775718511902675781531756612683101885439154222733440949586509783033934528792175292745725658839960686867033696098371655629157416358838704396174977743482835941552777119126745268972535962832417767232656328801952470822759594783145406846785472981992072108423417290693231659041690225138142666209387220103168334957387091514826662347218439251548167227066199866520684763302463957901920656434828835003818491654773317665100669293011529719011301583470029947975688850963567500940063909917297102155819436983222000127892170971011675468163532561384792036815209616080696309848277752481421526822387854699587137599655792970968235558367749006206287575182910359490358468601236867702458944851157381088786023506876072493951732115334008318858494514696580524672692758531292063916661013987586083032009455953853386638787590793248292683017787360542716632796202281969602638598391097789254197340076646847238165677036219512721334763684952876955037565804968595435293756203013263212748264579865882792913601127123041004198071934208120124107920349947468319667441710827951800761461827219826163649868482915820586391292319800407078830108226468360407916413489241670469223795462889880762091505330953751173742424481369685386344626582522079554276628715269048990220829943350779973298741678799623935140019845754378402035016886158551755012332849541457790955848753915883129205522777196035831722986570226742965696903312611108238347198205277226051761035363126551382169087402671642520508442005023631049925030360136103214803913831792534588621895071356202768810107100061067399747475812891515547429087880225612605531389537322116973514990690202796001060779154988513532696619606478273710086378193294949989253154954440334173857753618456635999518347289977591428330239256202528110023591969181225585122645884186231626812118197853176857706519381132572403344783655050619511007463059947586392958103755252175216918431300562297836203029074558585239713689712063201004369107702809656736017762234100129111378275143252659628383301838551823762769723274601451706668521880384603371005933789636595846839866800466446381561868965057444844564229994191339787518393696786766985542803482057912937431834113477375073006167868207956550387337981260579474659365329298075444138495319939183418683695480339106870372160512540568155680100420207253461202322616552213917727266633814987361259233048919977366544937349332519700996480353162100262137358108775344522358512963388280545767643462633538773519941916767664373722365660418068033306397055732754630587402857935032008921079689071512174710809640195913186001820794728004918700965570015427723610062056737836531235036082961639016788774306941631082662526488304283346591587824089227677911095294358983565274056526341135670570102809066933498421615038130547388778029289170623174455117141542802696187592202866526415979096020943344741882701872737578860111142325198615816182410381990660042019113314651678531833060723966339515692824702676243111692426381445018649263022279314364216672129529856669082227920614839888635962936621018541044553445244258781742457790037877552801039438452399499659330244694828622199389829398522164670960228833934316280356820686948822937356342838666961578939476016228140742927591720070420345179679196472123347452123154367523492398772147878809341392509757456194503035418580752513883856581924327667463362607568699622276534035356622722346554935384774597270372118728217739919640939560332580895628754238305533327068312495866486344787173577822892427740776012325674728667619654667087071708437452986452888445689914862706248015783365027664712238588952076158779786861004212352718959639070548458162266190075648557491307929373027647222491377971150188633587592664533458326349748574405626380568499936190130483233556326633702185333483424828927326152839087831409274047409299977888814256462364744130293355852039155456666042947241472254123703995706449398848395029939833023333802737902111514594713624014367988564773774418739778893161399973890597626723135001445417474108241402855161847651850506641631147608712779256087129235100690622185822892490061394344443134000401354683420710270216323066664663574723783743716727826223278073519869584331830480293268697303549642161887938683109800403376464364231600949909263571546811653654823619739342148679021807486573791452529357076334580263961365949395150954473686214999137325338235304076897413627275780263215419624477206448347382902489163179560389922803104190386168867542377321087786513474329596215110037400084706558963517795709687016460470770393478550090574213116760110917990974941421195314851422369457102957926443572642305749120391783365475395490460246444556367140297364708032784022478854210700299487634550687241654829307001035733965242832421475424972954757706557428985203246869424301837783591038788812423088202186888697145038870081010472632552602361057367957151960990275763379506422929679604458488600404652155982213062965198176905971582744421542515689088531308741685496095186590929673969400190482227740734521930092702221317436743412050037447186969445809109120876769392102634479103606191478829704672588237046146232009515140360453239464424723911168459010999873582567612854692246791391365824266024706065041114863325510920499232789049812904721154241618545540417888284231228676487567516141895581432441083989141510741925160753599457157229024622485673544868952200505120171979916114049566203778017244957405763351453508301864586595300157200791418366701667675700046729064820340267317188183493091147444710413902261068815056800036725359203499742689406762883013447964164525979058932094992860066193947434111948773170852376140557115576898147113949357684778655415649604166998380944608728649545310026903478373359535318486614482066691964488448016066878747029137786154782943264938749841847201373478126766085271036525078814829686231719481814252614133713461252577073504246803908379820144037740290245109782500756714388031049474321421383230971916936503757642735544747373980834426588502748207414597087756196600431288760938754381194048392271553351398669620523211255095950254350534572954953088957552196179550373751392004886364214466118200121302734891654379166058722632657779329151219518726384947883890386615916433315497945493358817674755097361200983596117310271267290006302927866822159484500663846760304753570757833847845216142988977934175154882488693013838121819304738496649358150830783817358488137147139942365175451250171230338413878858722136210030096185437051924142097735899447464366949562278720781813292208968956939148357727270628513828171463466470761001880945593470947793408413154461469167276377330257240646617427013233436116259841960763447780486980314484390643899642372071054114985290869237402872525251943908376856160425993822792004059837474407966435697296291642059332465525781783203609720924171386463023970214170897080204548485749671882007784828482863334293668534596395121035119563562260175983742747309791057090130178594208088223488269332246600894723305272831731442663632372098240788089464084390747140181172457642156790219639520581982051738372658627059734865467690925892037960622029582855982583030977899996597691120015786106959828687988552416736439223574144501621264109506956729064897155243135958447752621334876408264773949521097603796455014257921621715743659824880129841739173766664509898607589158863625023322274025850572477374617089041912376049000815005433478943108841389058388245508167697943026647506979909671658661827123724963417514182334374853613349548788430772249157681285859462451205176653048095579769936344220288331420026309939473021692653816905707127506448164750880012474866431027588891648026941946028557863012688688205023342899584434087269535913660966437047458121984508067830919259518776884419686858747780993865807852511915955912935885292605187872504603004864478433869356940532383174695425699885850600985956642972504025612582003521700625614385550923283861966071752668085989019775148615647514015365890609515652828105056478018734210626311685816092493298274101292967303677635878744846862589476752812656841038299087236550889338406167786826332507683038516106212068327848508981593927245878613770666590348141560832098134384341962039141132019489869702416718228402951292877989505576753083981439389820089817188995545282485342549126023348585990394731940857822433380104052792890732941669220213496351176920239515463726459103880717930261417995566700526986614764126558128577727188349975926142129209664529476968763899206826827756143663835290471165594723695741547266071753528817418788613725702132346139034922876873975991037700695687890676505222031630853815090420424974873083293006341924833557757459647295014973495130322583854417494023737871573956799863896899681031082008665233137349655436873742636497890679494548807936691335407458023884805760456060072085215797692992894324663861349133209929344014268689303410799056785199892814073022443468492959563684182260759265258948446074718122790193650440724449256911306060698576680890610219328942304438139774707868939945330323652680705592821355740251240950200194603724359192888194435247173995631694445992763549357767735080060681668059274930279239834581649699512219818455117176686708256543871773434905994931064283197228788453995442735420860483308350463293113919236143523861052526398718951158614636125173559908794184065522836571061889775190793455984253452583631053395810907268548222146500775774446198319553634776319916245620793183126745715053564978870325529639872158288557692343469145107967864686010177057678312522761903143777665957368452933298100935308848187432135132478842366514281328448801523649266414367934523227629373186893346949618241801761562349864482712594883380333433397362227777988592961234835524978524493022206452831466919176326301622977749406216449696563634992812681839982113547443703310916117441994205151531973776567963682989964075956239501700335704696292867929972728394133793083239341933286432936255161743071013014309874452741516468423628147470164990496561526262190337995268402674757245225192504921266379806933176440160881201580624277146965317437505989357180101205008528710739371238082306641833820375323196951890295321592604367055616714468328062946900518636813956088413359705760277588672759658366872111176620578489961743594777503854110077307903850677592475872698222356775796437092980480268560405635731860576083198237630875686836993100867301206354153944236206985702700524709095870512969252723644913960985767800721138150488602952512332509429920253784198622122737982887509130327272215450969991800615934600921498897835118950615436891624204231756549229494937644466549475144390623882427786573427863310098959838447468182315800527637978122212478443557392691445262528020135774101162401067580355256554990047485662501103854168075363219790584480830775691622432345584285145286091263305055104765357236731576252710476845318212398488764003456814822550045651592059551715283091672203269679220621174075067769883133624806216876734254951999679207289449882627098759530445067911012716967472803329744308784889964099148895261088128129002234910597371328944790801802412470328984525576720378944153308132863540328157888730130247393454398263368771944218545376773767493521578660698256887188643925078742024865169331738745420896880828487734687627125873921621240457059287532505437997542913558274207992124859502416295698605991472583804982015499285086950808929082063157098617036324879848742188111474741459544607517899040239588768988098642431654273513566463594374032977589720504716466034332448853653404176130017533969817069914085690134734928692273943385655200115479116479466578298466747522145236952476512962703466011676979004114828584633690485918066679355810636731597659080806048204926099077235673616947865437861288127858490801948787865435977455771215778170602160973677332364576657761266513572703990011220820268328524787047122405025060339369613035301867931680312923239475794547162807177682966623232144533416805659430311402272642574255208804753040318027181769598429643948888568519874309334900615095545250608800671427005424417530914525814978118587041569010798855171280387388369412852586528905008465356060046219708188517989360693268926207465761686395658492661821935595056309210370404959346725686081361872242802613353383933766787687390994369354369161689764645201700622390959403355361616205715476917800071374613832489641206532212919519511682610663371878462142325617751617091416389039365039298322677796996680135573582313212357607863808207556343055205010780615919459002911502592284255984645945395140487215715992877200494081625380612919084200738375139736340387185751014024831404808643913212888086016541960345250664158732958649328814323683778505748311754304759217832015261167349112443704698907686560805496593842431121190182113582675287149664812268855096793502115603636720049667809670443694991781172510618175224327093112342689455776539622711599899896839909520202701195610932122506120106492365722221625269297357384306890345638159148536201601027914297242092343341429732296947261246112058207654301624795398618908378505953646433123926271532431055374723181968928859119183398911060124103655680891732329151612289578384005801736726570001724546572761843949474753968194617173643678366978145930303080446071843064177008383162766792853936585942783912089499283416437394208317701059356970936412434930719009630781025189935786264300737735386083959619330293647478355731171036367578907616272409578923545921691661538586393740139336508554866610413630685770819790578616903597864098657970729822397372463501905502414073831236653263770417643997011504047547903463979575630091017368817246854562459223979148958079001791661967902267675894441144949252073851973894061086892075759344356298527692703345258974506215644699580424274518112402873795944959887301729380646400519562934623455587677835315214519808029096053799964246940292319991780540968119884985047769356739881627912922361016042614551870170899519639688794451097782291451840845076120385234351690333599127856802142330133989569875909926833990857642585782713902705379216634280518778426445979780738366914698414865679516882815473952919258356900840253089421211853352508545392818435275523317706557338992389036769153640773063505437850155339901304311365102484906859208141645531209723122896694026770466998897851010732818451052807655029462885956858296785605577975220300231367730965752048662723699146785337203480091177409826078164365247470632358028772629477802515286321898367858786447514139748308459221009490809194800123007487720781358483083570814652677342356927779786981890388356408722784443347174066134901549191692044460535390900652162130255953550438114906732692053632062708654968278864468277900752597406971672818885198537635324800005509592138252847651942497281862228429125578667519257052906805859969620955668942868194271841902986729443303787308998688595319886581162781811319303844568007251027049808155007559590104915372420907883094391246137843232312720224601181560126507168634693765590917483681844855290399111548876819951805166403011449340240692267196039353921865272405985670885004593587873866385470723274056117445694100464792830343942556006018665123747906967410508264405749334468887953104148700675210236098427532754762596634050297527359925679279340089251364436853162488433755674443574315004033187556055020712698038714955761467829524624931029359093614290452269902064757208043707992647446071796522054211669087530513737471272173210281837637622270570167159873930666266847049818801934466288659052850114411523265277144040907000234644226047051700295199657479412247166013994558392371332616466753032747538848426645181736851952494130721690761053274083204742810503369515098223770729153520912691469270562175641342569832576428054921502877093624145316561495097497017282785453300420979795947084904449512843591963317254596182695497311865886889736245154388418890347333617028722544655669922171138296705216255774079807417824943921659338314825852354991835370478794780253951084980343286033065439457868218360384473594687419077261200419626481581576895812632039175592578139521454767359434129528956409014650380525944550648071081289306941937329106702330020698563952297484219706942957228586801952254011602195387804730463336009705327597268157484950769263267786189590655542102552600651345616271487107230274094583863194610741990862842240470858031579356465487435239287227497324945791264230859950823626542946251877231596304870775626103981179032910900723906627814733404789396253832956151850862567400646670833652452417418854351515866555486112752800768189939712472871160192753557608662918675065983054118810986117911231658678159930122290453268780266541412127887883076040411571352521856725593470316671608000578875186348359363282752936731201186707573077426940945193215397665474208674836984418263678099125800276948077814942963242587996379973415378954356371447076401749390933819063386568592631937837776855354037042071077582800082317824956818458120495782406858520666905603198510748433505601966763746022466360579301658102984750522965118575595483343428730903490371491260129173229998493960326686079231292559097287474361033443859232622442827224411942940963662595181483588324006884019814437534023991151619486898094231635204634759605574531159956791814353573917325233138273636693165784662441858786596545737100676487547278952518533512692914212103196306217766902666148511084020043434262292460766969388838034312756664965157685738336824774202521093839187210932037552371475245099920914675829266742013425590272531860904571746499883470092081960751235796983707083611130517618853706690616009519996519828232590663217585451209318614249212622506637708442079952212471446800095829795446915394044668387212625277152615778364915883335333252677628616775065966488979309077798641622974115634868444897948081733442008122046885763120431095353118963917296117700345140106870219213928005760413736156863056974500738624180130796524681116415398624494676561522888426146562337629842999822423490461624225580184621935997441308497112739220982147966752214233182841952736535964956240756469402508667798706672298655042927308283478029574307935119836625381017142391147305677980994301812374174644972105946273461008948048653090961821986204336439262536918387525860758628183973294405385841307484111832461956662342866304624486997893780558205629744445734734896214377674179104194429460722042441896226770482493667610794361051075594779702074128495400784772758423956077798170527792231386786954910767761133549759974668638450356685412398505434125644757408739746586538535237727882073230855439190495583982072707037999942084530922072224520014056761444215485268411440766215712484546792622888672990977953737318901475104397035919916215504446941272440653841842995078736512377150570748099603256379924765058879505092799020457907874519239666912922576880318098944915037598944378233552460473598509474735265155321247346669830727192485941854459009426113362032823767845018738866026990591765891082095873957498656943649633278709140807828199825907316918320079440389447215596070363108501866411190617834707464774082458833831096364229283573014744595126045278103010820427032328223305124732074797875671995650121803364191561729280266546657614845105444049041574722547181998136507955922347556208431881268152011653423818340737569362362246951427915066339740116636975020791348897599649066648960172233226057646280728963542904458154536773109556507277228487040979355140272140948305058791102108459011940753139050007186935466208962168224606684898308922619572413276224568504476318903250141410217804424049539535172067556526523879394814739946037540589474318785376220262965955738982225124790781920232744112394759117963888243582905822776303072714714588567183988179379217493690758016940496790751791781249456203614836023883548238616207449986588721794370148521717129993826938053758957298763706399263941618383691364516045293044080828309446050927918757480155303677365671853388340071284341078874877349831113060961988111741282528122478298214030954076132422809872691019552805876783548184302779040516217741313603669663531768744063638216571822831753048797133603237883716163445537920632631091403374278992161737484671914268711788011410525666720631496217228723941517872001290231028404830236426397784269707486634668650645777427803566793653093947036599752567638922189054203041587444753376138322425728083926688911397469586239724124267279397564111703503178897662994457526042247386053151351418110898906737866483497480353969513148685658638823039335316304724414238143363575410277157510949796778249444543480413559289538803528962266395019582996626642194217260983830410748226503757034373629913567397291424664298014028373887084352628342919730117912737706329524887010671289150030936263687423270933199115410933308077472729156245140723219851134771407273965090407409659759222089940194242661364627559756734954175473867359839493927387090811206314140567450913421668092899945045197205363532449728140520433138439329195067584706461116264663507009661138495020543394100834552062589571080362662277530966811566364773240825427736582572160667591828210772818562879618964816801096518318805054095702140254374150409717434008890344417372601411713919320445220675986020077538420564144798919305359513289366124704690211351351625875760798716462365655032702909284198536929814378645244539669660009284649646310136665503280580567961389668007281048520975324152054502925674535334639461742460250092601213930506458846673221372455353296529230921572867166921836445840465299829957238618650798409597733150747089886302577699683245028004765949345779977229863093914970588144291303537353937234002649715034675905348147804006859794064211790840255743079164452282717581036040204489537444618488570300067571140389931815375572332931087152275682341279596750507591254075985859619154359076291366237820121417696295843227851206905166138032973567532116175906579768593112898597073836724143556430031415679908227342059943942712351828234306510280446855948250806402915423081780905990288599932886170208951791492831686972467192184923210743666487857527176022247559992749530391194271594226065736087590997054549624966797942012127573759681868618022833726366480719942930075502955744086191444604962950404542072749104855127162618681029707755435673071435255067440399128898570296456203286228041300232235562332821809280142901687395257143993891778477729181439620045302950220712207629091992777329452722446204296584830837100425012832183926192839424534326654462973817127949580187771132590249836298819686982542730777668315308325327949462971092654979068058043353514928759718364096619951425019206030387847284831108109405740063101006471374092433692169824737541358888648811369427458702250403510786755580415760876816637861412971332809470713475291072069045099425353423929137268486716093385221981129320595668531096165280260901094303306133046045806055691462180750687639133690773429046361015301688796498790461211077685685134956848814652957896288799519236243623356962432119646450064494534513639285645537605294717843237695414156748229856879000616342734951615354437501187614228836535885317371686671824438228713893969615917484936123966650049308930741716230825418340877038464121954345168292870831867332371759236098149109109297988592479942701030016386861940106989515566211661835573394371483005074332285468800758935901992410423037577558780700472553961668732429738793575527527370705437656126597307194064110261259395636877684045499213756734195049303209403053787655561010095556427315672246598179502576024748913707597558736726628507713876028548490564534095241404853526590089045625961792128688493273197456982920762790826521419567932862834891134366997637917426256577660562374803666872821065405640555509988150769240410957765105950986633934372009351295327408773359274687254432320121668528725768782971464893230067703963142324049553435422275748844694503590382818162602792966411631632428029147867543715472997370975411747941249148606788220110962499391365845417668956639453603612331995490533398781404899311923625080478811182095820581340083183629514986178121154578429539683641283701564540141760093595636758550233832814948062795266519272253946475487275130587858878394899647811377751235681613566432595069362099722791255317745026191828516361091371864794716145458060429333161023170968291850257256231436816663551664807727178425262268062874084105973978003124837809237302117667148917058688037549384395098413746729051789066311666206081437310571880375748503293408550762399527230758540416472303735369845077728927995480866257191333947928504689169710017923822291014072351607098901822108763844225846746516420056784664322036623857801936394408205134578650996130543287840020487628869621876435231579269084218509201647237394866071579283780137906792771278237414431117297259342781696758057745414239510878033747825801313044302963809471671751786997089570973237410944401580643740628365564257997847850210316619403794556172243716599776302112109824468412454945356861221084356000965581630147665399639794750785505493582271487121848127535981983081051732200252634622723721482039405524004861605685989135845512834139798027268228405901886012061540617155445972129435330795633185829535294133605959695796165748228219293966802879105492840439094080880221625472358723815137349864094096560185769720629873722993228802539853583748891019997519298659957445670477572629713337404071901829457257047104220778322020883091626211491478909369096894859135955513942228955962373118047203416218785472893847045038103206234488644264997286810535659801329921887198682322511193221766055479286206674169975112309937928116057609218825317016255197865579322051659772468047466728306459690123707293108858651562679337779666279466495383886590098030015876875989249954031208571699294625665118855173891772997766968162623061156963018094316710769042477755979700125647491505039147925342685478408859933483840420836650937554383717527785328315911749259031597390844096702972044670284162839353264437127502542779045389852891068460874652714658720936925690004858183030678509317667335257665836256676938210932139862123346606035297404278448210646300788725044366946056613824037389712627530820340355164040415979511780294118362173929966066150723170478191619057848605357568439416597176983303899210963286716835334117754026951972961112562717486897192651407833347046603182957091776366181183854774797133253245722381419412965052464191303480095334783480836801017225733665701173668496978762773180670174038460467103533146191006822980066041548813392056784437481576495075291310838962227586111641491689328582476000083527832910214634113464678353482116945760240826462914685024133319802383250427587600801045418201530570051429295651673128461617228397081051383515963176183355749795246849640198551656807366974313031746963231544043183559438223451522424803267183092275053377012923617321194606641452602084350624440592984339470780056009391634677060214301892214867329735229972509039644167542001238519127221463558951566129815958504748815906454465635544975226071830075307937312682914166824723840493166379069686169541120999724780482962368326327914325769812497474499741943766728196180735557232367051273626184180842829631843987632400527499777336642104648219423434342354203734884571895252040352777538989843471307343014066805822315208106078841708572093691389513850965887881097547554640922327063660355417294702741920774864080132757168682857206646901514093437183582993881880117432447013220312936751394413427936936016056562645518836715362829329250385117053280899612427574802949651979225177898388078469162854021904172708891862599577498055219920646253912354632635263883247584722337622415616074504254210756741778179516458450499923352937480287107811619803358540987351670026364289311580801046084371386082804673195769348258766426625761162302190938305936483293673707868557810372091725637409834580876280454827943474270755941564458285100325159200317155683297680146929679482275977785671453746173353491106585255385990960724148339683236072740423866824918555006588053045175010754349943168812279659074267793797769750694290648003809467334749827345121550569317893552558460150072480646824703841016432071222976203314658056983854950853616282514389343276724169222006134362322211639314491452039608266997570402369207043265486015791303010326953383515819312044865289615659295662690354829944083778516967497780452479523768504740086121396615067005786059889718579085262907283662736416810070569149796501240052949697683476965948637354796004512010862027471840980815384267224378680154705258695377001491266665015879378330440339425359397819573285236407276067419798987197907811877695354516416784770739711793916535222053839868349387944762338945499050300926392526832106113021716436856506489216149994674907171906878836437601105942684981451516182626534221931423507803783817826608928776956344071137527726650785143296567606323818492414986324612145298239721312181693499924713497371249956770497773959118325906686335667795550913809399903832195833963815613813544360133339395199188791432107291437987877405571934931498373853102173044836548390040193417330051677222873081829209407065854706441964666767406902475724033105684102439387512821831132956893207115767676622582684825625563175049753351274802779809652681753991023350982606907329190812975168768916953646085281444955702559171448904390464186022123023086562252133599595834109541239286997439309126904064576498528539440935007426065109522275383044826994097854171194716547536798068071038116627623760146498761713388918236474952369160245895198551933285318632308603680799810627455922340714349365938565100512306678416567142585541189514842023776757581264993498071235304735825028792863051020959830506457413753792430075108854538072100810924983206571585408050921094324060312030820156971353277644296563994044105168976721242179191175613225022124414866257626700731026946275164697350117656981641917552296386273440592694768733675118169324850282287137100795064946061678358541324303176797045616414949765861956765016549580031595646724033106316892378753449709111472615999634303519332292774525674772153723119604732160161538208374606141804135067139174985292431091198354501965103924774375300903261177376498458953226548229083401960569403482664042422087534905768263084702499779528322991372099874241917625117916159046482171288824895468578876397274737976066408887816797503824354072623403828666867815276073307730099982800575357803916086323196977929772633500808955739163342459658558967946605735702133729651854366349259366254735209322766382372833789491780434913106879180196829067586772080365513429282172074295050168014007543576048065103801038295524165989985367104307561428029572785218552911041481830762888285009471880587174831407620417934025703248308098575281526674361519122146888424092456599147664355477138746741374052306809065785882892281856404325561631421861296384802704212766231099310866732277843588017826635760221384591730860092338978054142164723924565255107143915427076072883360017075717248536385550352185246450841183431798999417569550743428720952374603171353406481276869532751797338666549018788038355066843244383734516180191684607897780177662678695785094602880743148804037989093907445682027363789734532302234857916192487874691159996675403374419697233690040471100548987453681997527054432423954341954594735488699130618992193883026227865098368844865777923806031660646917033377379542094144133073491813878413250667829519706499027729794139821637634285735555183894778362297478773029028485469949991221536715743647580062358768445069506255849054181936697359107014384522950407934549048587130544960500850114815234252804486677624424881436946476758872615998843839534011458336570845969020277474094680694407362179796702709498156946657306704113777141361388837584162399228507249803358481480435666008272154958717839155952274397731288154792177648527481738168785240014557631460311435096868101921766417217965029600495975258345853030518164179833498418013037229902077543522773055235594166053613794317422007604714784953491011385634538082373713161289205330275002170615441457930044838000334146800926068661952632242321378601146362209686196971919173561594017042418824462073321241705316352278015746197567094744372900872951807517538385910190792412041815388923438943277123456757963602322447945268096900912336675754718053520727208794137044840477869653354430888300280761299956453871622596555347780558037817634522871575548382550861556179095683628376180555030401795107385021703733422733243428179138117315238754820535280292731612422433367206635199878975147052538593206595705082727507328700438432902858632765863501095110009703281166693523455379475314648535892811132099172350263263462344428471912077058188430664946508570723289408764465316290375034383939128936551662980226392236894604889415369068199430651838004573464995115489862319146029391783515226203853177781668391989897873625816244084157642957022041598251263250635347896800190096586492300005596675662864438895244619095352473143398874396095543431293496705260420069318550104442766899080378959228652010093114777668068394172102654286594723635193351319457812769065350636301562388195536201613508948724807526565865337761474250672004194222483124868849254632020518054383041467961843437315011594812231083045513120738187332350354038140941555842794416476883484581564209135273153199003875315776964627359920290222846722144243382014053627488092927661127061170716449952899433253573332724161854932239797946234849168003606123716600437612082833822334578598684756090001943916478184518906171360376920226134795599542871139110328969606320844106355990248590182756214238866010649734929338091910005052961980712504749411993217412114674878374379727281055905633551689588629411968815891376031797645198790153810596126527045221353393740187773333303388501884784482264077665934191993110343904320500503312994312272667538626110749476445905113694176560239459151756146872659582505278520601316479441194064689646318312579414362725161332796167065082748589946404556282083019117297003429608056398118811149602978483682507818974178315628504759897063227341259061353314389318017064960252324479010370463268993380381244421134217610229530826820814476678351471865493430316864976039042719218118426133312953360281165792584689223166152107672976770869807555746963543149968505933485668645974702983449525732934256903169472617723750396122718255512862702857201564860723223501224388370953956515405992208783167908453127908745912684847135265722076370322757662658911112911737053705252523878833924299454184714633446995691404419612054841958945797613617106075212727157621632480484692103572184577490560050539085052708271928014215703461314903065699168663205170632109355096363356312810864161804790041714686781190672690544709251601980238545498876738101596878099778917745821280766160455206103804762753998306362231881811148113179820595307816246945689507556925898192368887679822496679694200684052665452034089895678880337060359216468915099159362650702944435743609693798937712748462537330585077625206134983091972998796334754985591789414072901958177153498869926525149178896642669527350577043277719620518393678825301058380576244713185470318145445874384685611558221141821950603766589033842378571144094258612661328984678800023881154897055429619001888191557663888197201890155440062900119436461524044245776468961461512980197645414386614905777800432771897110946887883723388274185146510192013165238160924668214714082821168819894564115923197378226901676488314391237604725761682218870850206386389473987540422905387360099092690235514784546313865079389868039314808550105320792541484212047977175809309843941934611320353045594030217259707343031667817218790534266236541184719311278966630020572329366148041187141501403150130502630427267368529148214588052678795828752476630847211607956250375354186160952081261068320635573894836146547407614985725010397454479351925522400707783064637945154171423298054620522866381835534574928616999163887155989211003571604829665228690926748334551400015264796581745361525978779212470320069487014875021154325247960781423422169880672850722990912455019598158245707363843797678600159844789080582013576458598630153231428471644784864575654188787138743813139175054253289867440072784665815262530277792633941103190593705087073620076821023537228263923482204357727258833335343889698678516951221190411388699767544313893146899974729020325980192786459308144266947573889191007958939281829788558307898156183734477528315005594015886612449017478257334816260997570253982804524448783877379686468231918447962960224273191043649622283835230585445153637350178139068972629805026092249787845407821294336827019425734556093743160778067681908565802059062272024230863001578120094961770732529628009800662114193072081610248463865327150165871504752608205152060600272065783141683837380709776863046130371808267931685424779089265695917987871535809996305919418707406526620329000677275427582028748167938724431677686795926078529437388512853399821203198011290926492033561535408998688280269646397019810137213047400788622388693336198480570532879616408900043388713004691035433967494725655340665782591469778476756194102263826839131765270782867730414877507447427306646235999633337020727539339999062343104475682187823280208463075499191085924476568594649089090902878706458480287918251131034640773315419275404783776096908733940091685444214225288946791723802625858752375220872827622793328978427178537028566371234942940570549536862366840402017627581471991816511048220530722809528313760278082184858715883126896000495088969033378755224801149217238227956565800852772885692026772174642511804665823777031736484548914117778845344699192187614114886429757605548445013554989676336483396888053883742947992828667914209904771094668296990481669492065387881007634412382237390783201593880784352378878809092138703865453758107152703378447225788545482368702702250165508828091975820256523325014899103815248318276341332090368396117657713247342471906428081138715435784550942249219885677585170715412816912085083844153070453318617890610752065042909702168132534154577900535307613834677463281774501377464284649756791733285918309864430512018827562759988841744219681787868853030839363583111311462371733890579825375623992231419487162212008769506496520852215759280586488539802822841697334727667320905993983135746420969966858127638216378554785869215972136461675193780106912173589194034089082075423083001176937831188934854494956846925769516794702615015777021963292315561981660711839800870264189962697349590690568772869193617915736962573153155233639512681133380397687862166180279407641671420556710176594787649590005020893977307583987978298786914186513829995747109025389447853160940536529945535347324284336010783445909679528176961795595129257979456488797567834965775068130008439904275398607628821157280804600780200072878358458664658575769064386180640509140423606216967950022217377861929977724125591572286001946436819673691081849541853279050339741271619801520837013157383444057129810189871725600959235744759682917362443415369469344933215370840464690941606093943585980696165122596236945947830978527528804022273846293180094436661370852782333518305149195242231297207696241147405203001202060295423322601566602181616164331755247341200115332138753755942554393887805727814207059041677298448539571814378841006318409601222324177683563191330737713585894365825586486075735673714224538469320846559406873362141956374990087615356451634730481289046783773092140945094474532990423589177577457429608472016699215235551751736721320308526720532911157953340703680671869885178045712052905892540539526853182660738655808773838736805580155128643349167777148690158981302190373859064863098304756569773600460475591299638910424643210772625352672307415317042278466514489027806619525756557728872348017609439589947811182161705756677255128465873847214364851520189612763427276310541017884504160997988801600508507308313770839981673033019146207968304286197294122302028219411655918512105171178454538170724946758237202790832790854387503435015224737636952388168088142810070354383410294266210667118012573199376936872394276620583324572249593644390087747482318425534450874477430289399721410568402344874072633002170404684564041659161798676574880482364962350406298335186212655613145143415765588836919867569929992148687590774387382270286541333044412607373313414562665168277932305690900911415541564546630022759663256659070785524664207284540689536313620570505333816363771826198334720022796202183950052491671185022347437819799605669185947055274669298369995304723898537807359143466666058882716035131818442927798875523108661830122430853579332371489270555012595376929363820947179303893118619383350314601568218522874212630368697431166678422875506241764557068174486423691071932896437652104357766560253755501803675548216443097708650752274257308503745732049752307179063695503234462189314039739982282382525331551049084063704705250607990139099106619510312452525778548415952680490223240638365473430907123609193791987726332928623097683950567160736650216063668577859458807273109744385970797787224695030389104868243502067918203131488410380494446941122579613623593946501208629391994243519430388086367568664441991320090920365321730291393435003256951961203046469701239530673403093683059278667129568177286751371708110053282245205916527224830263967211857132365804486711015548066882808080107933488045935503367365359559765330495173644671875499394349270340718952494806597162454649686470725065389705108638787895838622144396988156886500602471023627024988258559189162347800494867446458134430655587886917054061820966649518835310817061164364804418931158866311690309305785911694325972618731893827385976460051484576098850627768538400227381994438337452679230456774450616786662436310361057419468276149604708573733480966643160667110600844554520713920324619678991859694526076950641636485493816452393170746745320432385192285774735372557844212629820527311971915232405178723733688262277025649608100136276323460632356901553685594839776539676033747396575803011118846338737456135559896076811039792167094153081680452700098634330880638685372681590482950489958640058773859885440537824317190241368186633967963562475296954470765485532148472698668744626598471927034715344463969556540493167036857734582339734494493565681479363844528568336476546406145523120123576317923062421953018781043709898865730171066551510298537367948058568720011410504247414060065939134693975638651301848233199216045307472321301170803658627158290891632339570659223066050997506804178381446856672882252263773515674923985372549062715279400367774503227600530249698660806934338280947279291963624789101386481618432030682960469121433050337883697147028627927835641749866816045502020600113559585035485595030774698489119952755516113477938348246375554769025205384316965923760589394801025325128955438641728547081935289007413778133914752842745273933821944799697857752061991356422053263648399261816296608326157408581437400977569705305623254840404999962676565284051083147535276278932549521290488998678311852294041516978866345911864509891235169089673223330929072694956972713441890082268926374700407718766417316525048476380982319132061559545393983659926037377644226672818960817397400915716506754456225842914040394232402144964828998426130457120469917474629573055914543228471355287271372904373606588245070993068333235351632395243476464081356437448472252946712887437023503776516103401167679255016919110428361084485683956594518487806387854503022104430762272671468166595922116130244925292151513157452213632115334704457453530320626512508052310071012449928183180522779565962199991884393038975426440127532660028463517990169086619480123680242389554756589412580252944087443301455764404443556995349547549833768588584818186372955344656021374121420094575426494119899626572681867123345158468242798084320187444822568053968230485886398143603366426974560291916301419312705786759494787634625982072501360962329542536089076385201860948788483935302287283301694888989831195815668996064387769938433723331338750934566421803209014459613635738224292797362112223333571495380384330863014534319346056984198183045019873121000938944274417480576241779726677229514883487671713158507772286937375661143221943422069729020494965453485923964123539316331798959136231134333725680019874397509834314134986068292592079556333559290844719391714031981510377009081423715750772606351807049554119980588563635865192475306205015592709716691568860450986834261405347794459506609770293292987356826710089760904241393934602238094845282641901334209716532036351580722103885355918565517590483230838426129046722806368725467436210127396390089698488525950148589980670950422349648268753071611489456800864537165859209167092309103503155357872533127678023832044207524257650691852596073210008238150463593716775298024708921852034061130155603264898039388443427251231401384133399356765355073636394830831817740690445986649881179676459204639894995256462561911829901502967735884785134726412808568483983352549932067806456248235815730841626929289305148392821784707866120232309509327669221128134813728689700484322821009325516423780718168894194399616480592678454263654635730561400765744236896894504505171998088182356323949024302517231139050206427632124922148393056673156839592699417440034912067642136181575728047214150591279618019098773831326687441777738937760807705458432224539457888666532000770439278720301653766273347313419005512962067639584468560616431325877601572998182194686670871936157105390237297751057573249627563540557052088176818874139666506801465510009329039772276193073890015029743018679292999640979519106996180946653069580929711497071223672898443485201999676231543563110165216689286553587335158005364241328392832117703073958355048993654173619674995722106475870188984638955619169753482330265939309096085840388248661184631289405893366906724473153902872119397940443259138107611412248613992295200676220718363868712777013301917275848412802133476114113863235561032471077256222007286669485836275960503131017177797670469247272116683321849214261044999717605699649205998279671203688630225274885248050494467306933489159287393598091433886696227816397250488709390243383983588615700569878775960233776677241810317918491711308239340038163049001622090730568826457038801560981519489246783802883049130283658711376753645462210549485722088803533819337251704993376702570561538557876562301421869070235147277811333439818838069123553678034534581540771621120099212221795034294666645985779656183197094154411058486862742544188982715292348489775301963314673362595116767674023236843147874910692634892146316004843504226723171540690224997998375000967512055040767199915921595781973099485261052076219303328588042210020316523506252920657839771232127074371116449468154513065979136748361907631374094218522885865453526079247707459905427879776011673734653564899836228868484880615389147306437054934348899708855972738085998078371709147945341168493566934239805408946319819904019931225626135654951828552418057624772293996419064275689200097838189219164192749003632629516877385980530814747151811763331967092873306445739312257253921353230435541901519589282154203845403742178372804488644527255625383010812333228342943563512493866231889299273050534021788722844424422190606999196545067129323768300497792914941489658766920452275440241190175013811708913103845265126183291952907635509248959295663297882224916955324382038498129405519456981500242317592420868912061291386962120596336075613210346010461856149050132811589361847358645998545219871082722837791882944948701736188413016441989993459021941097839675519520384142679199018373205974120722071450053314435132088030072888377921614773769739193691350224923802453422586800725154489799934870367571602113452247846181350775845857943858903298639350374181759382285741528838991181680887090240534951820809373952424008124746993463489674693738604981687534458537111034760585267725237005705895979374502650406616116901575262479622036146080185550273673040588999011979641385818424761292157116843944929316880565069541146625768648300492064739126324360407569237328299232922206209558977157915454541792637266494716759203872105928015584817026692795405471383421203449588911857914500862760634440649904715795756729647706154481110598840338359846107066412387801346536158261487229375157347532235724122249678077527988926720030222304467579453635716447996880726448691073942536477067560946237011718499488895064362360165489457992682229281845579444081377511570454604334507821145468230436417855273057738281804310590039829203020859853132231597354990770305932744823349459605466606559377952279005598490049660589483652209084096113475313009922844302346490901471224631292118454729513707775903159892210406647394659681975689421242804799407033387865347777661483500090608612243323433580342892292608572111366426576739206322877745789814061085681475651164123603589727377342468911768234875041490073411042953349196257499232268905057807813020023496134018158523980388020421183453748940899675622433122997653856738875464155395204986082619409147941351365922760433975324492466955768680865287830955163302964101152627270717568866504811068444301535326550852052957184117913124737110824559997801014077643094350334986010072518875755776699597805232096631208376142935057452222410977645754177030573240104470154368959257746946995540714154105435525855367345523137563687038400466463071745767850289640562916214664024109595268954092326727536609708221770706501480195587968625701749904374370426745096992220195595181010068702755878479735449583206433714374899791941062278050034742970870825144354700609635055172004123352020123772139584288907543401561682583539199773775573191257044199095812782031262552027748349572466817425277432684777386722275808376651908150601627838604291137536736287256421734577049234881530247508839899334216102019612835819221656702887896808918147780250397443805138868063641883484830617957153993790785445883545629136324885025151538910937158238612317246245884904602226751831458491558306549070957551303146584284892308266237650805241149302503218274907898927363106485895029774873356019713532476507870551140287137652506610607571724898159212252431954316759458045922365160926024796389793015613302670825661808293661026791084669954347899543544916269700435896825583815721171939926252577869044328831445687998131569733229946861324243850821156459579026333667017428175493323845097126391410098445268121648992596150464963864369734605946706310895116809060993858800112342666080250701221365089934642584527902631360267162683467648432917437083109771873180370969226660496534686031696533923155899197546658398693557953965735671028027858422963658207054376870495029841207528599335710128798354077428452910845794389420119188272488977508625031660520606050679149738300699400665131190122642660010123948630613820280201128790325063351742731350554336656715058313235344685489887887212753526109538428083450122541930411946232065819617113817650216547355879591969889899416149168852511690864828564634609454883169582722766990681897285794106176989593919914925943489758795027013099066764280935561807077551233786753647645633216110256429320274197794096099695990410921693641300949476922348264709691736109195619079012556204310743361315634126539833675308133531707667794259187931190692227623822449315645768166214018096978974815588593181032374913513821977725818653510023439960757806951113069235819470732008120525787337738134675995295917090588185232054451870621079101474529324171751166498968857448448502187822253955183214719195620778898955329090650451378113294071068740772421079504080934316474639014956841135265832269150109650968921186493636387188816041860531985733851739918213327050294299569761385368787065584588024742580436955347791567105557954357951474713828996628225839441344792301056550306432582006177370774264918873360581671558672656211053881386032796219166827665927072863019097135330540206038334301976987087681116856217211618292231047363144180994684939595149438003742432591324999425968776397777236505073668664660702530331294692570496324807602230415956681737929239352204692438949648484832727391186659787843183826514928158275873162669547497125701249134680395322722336164242528518836820449418787959949996334671260774690817662195389938157568354645622931501639128542133768002569615951692523175316332677050799075173113485385624977521441132112509109863400005548877706648608329215189293012772536072297603684426018435871597902751017744541863161783951807914341411609566863879993515837982925883881692857965805451277697173701929568735654815685848006113074515963886882387452929214913258259668867481158353034621897843112748107856686994657644003564172003087775540178011540511365289097605496337012620165239295768121388433149782635917596610981735624568714651128109156530080922907814050999271381968096202712593736216696448924433446969435103898504399221616609077218711897243591986212005888198123450716948554038065676462074966402715255701247191338981352620584994432674262327198286013969045962746825292522691991951024467238174892571861084801914398205429307805105219978762387888470642615619622750194552940448809257663920945838765115376245135626777664913137163800254516555995926269192172540195575226517712643864488352777488435195759353647201983507894113754191394292680305279676779122259045252396639208708748939438903984167214619377386921739803021560724797978141069530113012046910917869332733863854230590644539440006598261355536154745967726183277734905428250379325478852139408103843087139029154457459015151710987659080557548913404252837763761836639840985081540867862599308943443813610377121094111921875684745401016318110465513266273353419202446262018886179143029545440730866714587033668899612438588935426204611645110118732853692445848735979592350815634403779404801457159385060504930772035501312839752103096269330042225369905668906450292327665112379926823704007778565894054772535601142408943532743407566343327032443116376660841383627671829164348054743703289320273556508390932789124975247225855547791814354189009378564681749028426534665679523889451477388670843978395860154489290807465708024079927644206417163709542099454380426429058296466042781032081070899028391365487691560138880470694216261448966858837054565102301607383769312881509620742731625103763307528746666935978306970603916429676185505000020768272076173081050296707875738845110313669619062418901350974282074661580870376603600895563503035476228774240974336898365252070827736319368311441407105713059546850070931224472031990721834214808532234870164293191821991582201018320747936575647375569253674967184501226212779783908953165898615865451925853917442197108157022689047339210151856875026144365244370277256083794077231433206441009494605870644409051121428614091481157279533297893567513860160710963217589044922031156106051605060082379259888652681554266808581079919453887541948980712893969371734657206038474368253426496449051340182671893953994235146008400652436358447393450846877649247665059737627239206106871986528786220124920269825229747695906596672475490909408522475986721933021623641881915653726673317960716628903854867425561527061664143495440669695203799923055132841981824368119046972542822105769397624203622227670056233728536224358656141598791622698164798021812558933927924144904982474439711118306837958302064817590008878135303196452915504920086825371626538860350044369249939314675528465000761966151292347471758348606105577779666183861463759473946733791682451417550382585936997724818635228738916342886404808519598906228200948359050806370531525270652254903535628535535174833027972129118712440701558600880975991697905036438721457291810313793480342216500366945188131030288619910971018486621946774631732227750136451974156177456661347172006804769546302032890207263095712347898502047957694522163033642856301193946877226582283041378477219784524421906259141560985742781216862352387608157028918239890268263341274850499186093955606546676071897192605824686095958862743282813603481486321436565081931164846132172156191114687425995922406839691058993933278412318112023979303698356656394941735782032918863296260436682102022059759700210352327924393412539934157167430058422840051413795435270195799151724800851608489655474598521984994056128690223586250163520380554538321807780047438544373442843387129164892420256244997219971931071281681206862994465878734492771841616130267358263763243669266829743971389657096818223794496537692778824494277251947641418963301750128438856408746056754094142163198794407281997983626593902707703671846541942742087884253229258983344844849523611455497016170811042348363145317604310359981395220126492058139644850243518994635811022902703412109456180676832835403861029976233094849688540012449443353780018500259920270996582197788257276006182680367063796422936351310250717111027057672393310496423855305181516572723828552195948233807150313136903508330628371948404726551140801429401061489649486359751457214791587100821101462437694356682747300656165378692554429250616673074862037006512999174707041996402002628892826704696523055188722533099091596367957266145349442116913028657567061852428483189360421237494192729656374642030780505856884590285018742259006421524966140081135901631258237149749186170471830138367847598717243550681746975360079061861532543639348100120887760558724213431299480470172623736084118784383831378886664197609392572056093677840555691795419774210113764016207617906959579459066877681183689008440744614845333743698986420244049660834730761231099755788470593385358401301039714036085536623651818068381702505600640500201942271612592673713424743287533947742913246440722296699245682099818783666248803652193795814090736774550317956105547221277056224878425511962433611622908051488888049149984836071094650743426322279944656673192125610642321893352016261586657166011322859723112738887573610860889928385531228066307250766085498902166360113938899279420930432241916352649971945526610016989755828435493145962916286621645524568344954511467599320906554321325450556057548691178638601201326421373301268426323690276652164474966507915899678641393065353495876812078613255168101587357854125183025363520053629524960829824677495480088409137059023763308965038171332746530242061341358624118726289936792720322734305116560113201997582682367439690059318076466222069327763904175047000237735676118947807496392839980846723274179652032775249730674580349752329259907183549059027255905647931285823805395350227558648720358095316779717223455792591834248430028764644628504224876534910964188665153810962661600990372067844320992705105472450341048703089776203724251532830374109966555731183944654525853416250943121901520038953625516984299709240793629582958334485928976123622886420760545374668071202541623183697326936642406857876857537804947350170415717194937680993973357251661863994704928518889426272381644398774575285812208252536975134180241608216809096059861932334507002089641225794899361134929055691552627480411789871331884573584810216508517227049133464090438814754641680833041935914468247057036292414852251978560743324330866275810429477797712221340858466351958209911389371991548248568635118477070025007835695080851028272279448292868206565442223254284564893929576782761808682401998704457134476800032926718250082667394335490065369652440361672290527145491503421711911197315598108673585602634247291651140023082346573507049846786719620070091392494101652930435449776421366620092106595568565712663907423883922573569357943553691417290873021680449869627031662879391515219518026599634580957651458489147725852097875526713542916552179475511899751625547563268484727317985058833454269371204222958184196490459867753835881323590693086184908491841984559369355923831175928785055650350416492386959841069762588708730165729711690495897923677163396545083629681639361586703471357471071192140666752976990619510919654972327736648293232775797821721866598412406068058594232794837724652054361056194754980189744372907056000120003935765060107829259641856049547567063839171251146209502945412956048972716421541459499621740405102724956517570337993186902682635032686823097211225030288166626497117438067373844936259792860716821212486268282211353066334508944107843801988849591584202645905039301994492923324350897209019385333175181891818725534934891827389406859375419316014977093090965581404525275726672948730991956434574179556008768718490455375580057985034323124507191057832899519518056094362113838169175869203612759356922056019639050578544795979531273269645772819666181202215738963088196117353973345971311354430797708508770230637133741437809589057420314609390477858752763412316546735384067831077219474732298182505815831019704183966930534613807691422644912614791046026348996092872137029444484195202412781169497855813895519482028444431364292527854152989788152447345379597392343795620893120181472805376123424068702344313231261429953367127695383650818920716874600961013872234746892993309556530456866650160060689603252003459683417588250386320808237379708350679637360381482794494247075354915779751470729639396437199198334722097814733486271274039493122608190352492565940211617167263508416528484805010520402326137380896493477783923547697423027971947648117118411159968745334520258648472213284328867962611048393481725533750614518208243797627110972242186357093710017762450992442125288882258085977400386472322908330985685621067987262898090481302829740849265218323688813303922260086256646352632831365545013460286175470296013615771960915999081841764810481250919942831926382919690397495922049337234848923779120960394046570928739934909232703193901771641756314704492166050203793241413268434045782687602317598800061666788886558172300932496520408621100072373819135436415332798206989783053981081618130759921987992790591619259956166135491255237295252202418716059652960611498665976107894350690234470819507347353621133060134604356547905849927811383377276324441080287060582593281267817412536615537220658180676860414110857661305719112077432862517643345069645620198301206883877394434719946089372796904906250244964273683377486215682298301100429045531561105830907121968530932447689078791116045976896338312318173765808780095074729916837115515984046809833198988916514766929394765409357642349714019961812281116942394504594509800542364219320433324247425255971648894993226665268093795497179252753257385478617330657106472431292695185601641116277524198309217397717079571184765221309158398277720874365346255911101689840008190821021188394044463666022879545845689578104730934283099656544308066290297589980980448698177763718436626923667641313972661637783139590418160278998734069681861037010999896947859743153589098657791313079241313910672756727949032927647818675934076021324975222118730264958252904254839564959807300131664220320707534940914282585002352738536634800010179338092087759242751706879329814502490615415427159051728388940409937625474329006605984273476913597082368476306393683633045955358502830801881117082388166613603196819183335488644644949262395939657451468500510742028159942781489326868407555749341922792555491840318199231974115780862793162813876088240272177569595752980566220973984650346972130908163461786407724442621217308116494315497368006272512627411060713768376317567439366219605248666837333451525374297842262593218939567159145634371188609776631347348123751173936259745556841860244728197479066733933345950259341999180868354805063599947322881562888258877628705622957571011896741534785566349696077600019042201881610099872882761986639715449436318164275626473602997855156230091951111518995341306244051289109787196397842895362077007918413903074620790426887519585277988656026803965678846551952976958869148405226291150749423068941851106049232638343488941195370753715349093343948102625092535942461212652326337874092645826184758697808611110072349790096524603150388293327440332229025728815551605160837321824788177184020991336295328715498157647600900629572455541819279631173791351572296164228055873700172549381958988045407473781508606927710147515580304695956386144878012452313566223822262383223301061087615365944207121952798563528642920617801791258975032834232786358937270926485394686683209195654318710027975612104971015561997006949717036611787547591774630397602139489598464395053164862262059322253308170926292368383316865790874607164841902354440439741692643782654610156397175669042875159166547156556368259092112783007825138735461791480227616991643303708390040388120757734176780174107190200620910372239514928011194067196792138405239422812705465855245109035528022537206612314148843310363376121088243976609113964789927972959376950373717512725365685365884471748052854001394541954412754185333040463900739283770559674625307476084857085351612843298346140063576133305115264855894739555277464528163329605526316848164014734420226322461336280892274649586311706021667987851117075311427713064661168306884297556921410229443196748205444455120630861414318991523950805623933384987028160089336776734399272009247413987791121134682155124776263136319322541952856941142634903516899254403093208355733493567601760581523061566179024946885480652069456899941303152092932281848656202091705231575942414885695641011418190944726334615118272670400636958431061500034701793729526155618264778155808123166032872627120810174048020187787769192357989778731913881788068212868495781080718678296059697472480119834982854456132554742292907667792354836571021940057999255476896238184038492803127723630451585607753036304816973351530378085098360901830331335076336522974162730237717711961698428268576570797984632714994095390938081994562586246498574856388635784838260542299945099213124206534384605282699230074918830978047659516525487865226656995319986665933171150916322831750384591496132502189625970334979362334291424555187125839640513348887968510549447044500360213712821669142628588620096796912614386336684604861269559676177237181113456210781042019840423301392632401541580772616466933549549144371998998456398822691192393389108412042207930791659385819123883870786744692678198167167156605594328478203250930418590370428429941463764744481486357578759538361422636010885602532189109945788021523009144067454782738954801371962960503345411865481055475121807726752000180425314077301091400386622922116613189651645347268146680582117189225974506918318002780724774195344068083497826964959324431341229204975474100805127914652377942554717372902799613331185537784212430065097983929798903734151060001003847939286008217355472094449972791932998448001642104285866299338596372793310602589105558048975319163933988204101813616442685289718066581054639684943176547951872995769469062820241021070250223893147612404056187768461408849879184473619578569061063471680824774132647051353384599522061375731067261837736340060234045445633202062703975992890520556527196520603258837039993599724011386088176453791797837545887671936724259879862490104785191136806400375496438298104392809597335631481213595680768398321840115244629696595789548276205980913160952361122570246492853251197777187335541540449876778253374665681722723524389367242682858105313713596750968836326976000285333493996828064765118890725012722769608571286519751762312739176888901482666063950721706760152185236175363347484442424220147063576246147420126620782084404451603770047722897687503799406428978796460735516368790365332393233803355813639463200250056496099855424196807019881865174354151840980240866785646261196524186608571431113317551015721957442523962005055407952895611556054090155152243757369976864147442968757377461626507143061330518447393547288329706170030170386038657359271969284559107230991247982808657187692236516642810902475905133419648798911356096889986562513086957306919017362387225481549114139925138570572444947376256639583002437927516513137206037339528808997012731532603147607737049388980425262888742711571995479655766330412890691436316056292011321122876161225141480215043345435286474952494848828975133442213214245522272515965153724501720299291047620907808585579068423124200706709859196336534673946227017846617617050471038759837577732428323020734326447088130377027438940731207500604258823101768334931795634464185271980584704985969254227630151471578713337176055217721373902404889022843543967808796548267132469842418574117101069426270468941869940492101028187803310798395614408885709883910807862507031814192924862734634401547990248009334048861920968359280281141449545328797452777214836975805324254489851790820228489664935651820890142309961614510635738168987897041933234893374958087894094253650554227178899070356608765621473147777613981380251590306142515345465191385630111288045610902932827077196030276092537156643074302422030225951340106894931334334541379212791521652610923949428373608219521482491073808071502648596694545678677723195034962939521415524235790137077681294416924106311739015696263744995492476974936915143147673366085025684320947682159121001381708746351092492320618350635230273984840989308463512506750659761483241633263547960790831288178155998540884279538197683619018154140223198755298714068492579947252589857259043519715095678702072887763027655055221890722598413464862655769904625975425231123349158619456497583134883772097326535637707064906509820018358429091046744877607459368652538365168469679457738455211935146137141043821417302103669460919549833817110954240137359259136948358477181751602336773052474087885974326586802776007172367998913104059957352557630246460085832149089904248140930300170133556575012542889108081006449631480883766557686560362580431760771804161949696221379099406607879496923456457167318108112946377528602828667440214239373457670405107667676828413032531018687323188173119073992613199526420095100178251073487785361147990877004902348033978800086936380554407199205221743919331953946252870773946337472084568451901513134137618747874170098704846706201819634905940813941352484734917300851298708582592818074623297866321266427171547280030094844092904115500576104435856347903143984848183089986037856784278469536244209455676630722438906203145492267685133935020531565341668947499271175611027036174044842759560759094980693066415561797661999157106976426469351686014875255702885950747156744101934115144265468618278125954774434407560779394062855124140986690895673533663703993121843372743731210931441266686936734481162867080882728198089994504538606754936760771035825232816756219421119987372095621413704019512204232438839758800436881933766935296201785562533968472811333478553269146650646697727842692863120557104638749296629373027548725240421272319720217446917262452903899463159299177245640065782048884394212404979305774836315343460766723091597106293855347753627869664328654938266429145316701526256736267854139849864118928749233770997559732648588446582671573245819166994301202767287518269050751003718279470176731134646851480299160704228001796659222837429424428452838932446294433864139692941611037452578738160229215261320294856824505960555468924188747951914808091790723684768200728247282463671730089134831999831016740253011444904131653022671883686669271206935543191571284250655471749495834562550433178540432570876422712600803258837185825103368666495796013076149609367221466067150419373812639296974248563762383839558996645732976031403235907257590953573304856661620253861926558483621466098344082425106212127076738219818048896435191279759600817391297314172116190081376140653828523674098904877873809670953796276586494376791299724389265888143224181550099883763838600893338098369188711449100228849747584316882136171795837370440728782815620889204588932155481511807388454479588386696125555771932251894390392850016795116523508292040973176815146158363771126153004805718256344447763307349956038356858566345616348638499469797067460136954785949684654191223262519495162412299615274539657321564724165141331533185556349688769437233415002319954725606920115015244156579221602075636649359552097886878467603170466271299302287446373711135790302507524762125107227081600703427500316780445017429512992865937766172094005424416333053007201012805472203574820714141516983928114013772586068051443650771415439521585651971782095100737714883223186684491755109732801237072193640100629779951638819111553975711277086673803984698979947908425896308089168557019112980709228489183725447561201709186152492963862788315919824340023373952589561208487734287657010043596283362506806873197337750124658906404009966015997272334772616445035479611680809771043716883249655016348342993128698665901620271588960189778043564924171704455584726270230508346458068140952474673938692569636495751781900255868428035538473433087717664154298931541863423864195304333320229808394799180218619055468601434738967386286534723853779605419358171231971939904852058061786455894221753223295957155432160397230275789091252802290762898739561686677275791821314052116653998182518770482038220294380022929392759748485353972078051535787302600004885251973681765198587226019508212478458390387332066726661832108045810720295200028692111408736577006392545277587086893975858678714595663205927664890785232780327179677955881178573913722343808817584383867879776435659983765090524470721928876679163026183209529578209889791404578869368330701792708428088998605823223967266197996764553985375226798412132989579114368618601568774210154705762088173593157235647180036332890735311594046072484561623751265980446428097557389207903052463819110063018674160296433708139928474961376186304941944194095558821086825010719934910323042762723716114870951131960789045532199649848392643072586036973180280177790660672047565341478199132966296606873967549885066854664765613947209330089466754746993461006360598281780491556794843100321829384098332585792589171959822695575175489417092997267703531067482643061215856901164584792396626484597487593857525738063411876216815294635984652082595085070478308934765447043400029293017177880560469256244019483087047331955852443608370359041007558189277270510179038315112192976594882679162130247597949311866617039566830263525776019333944711381143558105282663040546805549754298394845334393120534489574597837066464772906843082457640086452912959863299353871126618624848005741911544346651547902632604062351246008087499933698019872458836489429418492593766971103044809468430397619267343674491597995354784542658949356732427506461714502837628774026189566026337488697977226943570701850971792189111310140253082062934231630590053395649724625726922726007096032690061222665849604989579827095836980013562247475811634612093083160656447819966675850495529089672810300578854830080918751324624265832358275134924157765708880142933586481016222249312341121830825473665439954036305339906164317009012856774564825073223802284872222943900386665713110575875309318547326709720872138596944575007943163220019339817168007280105281966749023657482854039201954751086655660350052100989465046263067099373627172647764423670287469678666657939326066798575652690429026283627332897073887064738456700541593457968270215055708586427445197241272952406671613719327674327857274570336542492110886665879631300867851983962006290790506979823344013170120126602141248958439807395146402161910654972657312838486050328816128835510117774466653077834127893781439773747779656248032521520019658461871389073454375185127258458690868653800115041877880253684997651291464376850574655706935779567077726290591684561216518486175077318450793355514291477435073311930752353966976014126197062171771673094156111876412973357076612356432118397696141809143733657131937672319849180347162262407486991435149943748742651086301958616169397981843343877161209089253003714228690883596516021499278903696723805745360851538994337873664643463050930904661744199911846602391979361515570667316504563298577878684299948944483344749887820204664881874763711016457484292066424842474838984800829543250154936490483832154435174062044883661851992516050862636456573869825916842578898192442552455435934245413655187298561312176418904973319558156518342269437977562541324746577941315683431500124669423146275247743213160420819690122822997857870032705232231078544905598520008136723615675551219049591511996804356405405752970041658799087507267171339911095230696569769500526639768179945426006698871967108183056135671497199842838693568164550194277396402319187468908684682927406371166864381080773806508518140327692266194914582284926683620538510127718226754942250461490225078344500189867754885928028427099190866721276609835517298127793824437101720798409735428301981925204796120193375701184647577274078382344011072023913509364563315738221022463338344393965637003967553407371585691223005535225037879488498582387933218293085194055974314524078806795269929236829677219325896578786136718054264170932052651234606733685316150324268347279909592772486700094523947959889256484291801577931379464125264205603708460020924150298799586656486488965245123542343645566528381280180396663148426054674316491290580797288129723593075925464739954165744166941685582891116671220035165515720017933551462632768978313574936340156983083297799031433785644216594955617522160901961181367232901630107629588364485993167674218714133491831519040454445883900349374265900568875984584493738948259665935479753279549797667474698643135738317943443230608078196170827575809019064325880365268493553031631146183701789490078383018893848484092390322653524896973501375230653926949993823532485919112721740512166875201610891756889950453649655643121415746512245429409266097529793115683549242399276295716870347226313792534748488482706394004972881960455716383334763463364894015658818072750203849712666015187001775680160082823025208257495213144131688490276863646025558390607841074396785586284630107624925247332738342305717314410277180313404005363694424160474441606816535678171552091583943439942407616490493608967382343470893213329152628639459501027590636631799825466170368426787334539213014497956818214873021759096959127133240353601423032881551668732553914959484519561267546371075349082498099851948282492061176523440066142355096897739892893652984363584236803703051442516757654419495195978804142995360454366014479435970415478203271392821673740828215395102050042061360511739643150137351160167910423488055593920876308659855912119070320375920640709070655510562872755503698345603606330541402869541549021448271450340709687630560166856450523372855925031168763852718920817326706689737364674759961666673703815558851492939796265354517135286044147621354011291030552435723037381048376306903063510121195480703356457103807240455978825207036127140174613464094400745124671769270093443975180414865327845758538512497686727882413955097837612304269602761399505587978720833244109745004605003347754279546740188729158545330707695150902979938374577402466747833066970961020944698615086789295568088522232053150341055222133227011316143518148632074981933790338073095727619615060560127569092771083540160193578094243584759376993186947007240835260292148038938733082932198279207296371666811198980671774191315309627416547260975636674928939955063088084017984043296570670644787515608455992786444257164057653914964135455229738067573874400920141335464079198814805226674839178264494071383454257616985457360109227331380410176721364738165459380482581749290383818514731365256658473576939939306524449074959066095513862656090982195307458976999829349351748636955594601988947075289574344992947737461433867524208145628098116608842827963126462707187347985071723648434428020785536762586448212385960739501059352092453004751114154531973084744750440385843003584249926778069452900126907551625631162270674527319312801765125787143557419781003257522384619197917622164865673947973816101785799816379195641644988911154666712445882399111388033320509117214425253450016420274599475280390086981332967860410754134900450687717713300459910258238831965196815404569955431518827160402455549679505332245259675067057487442880923232057375263028418141110814832819619158797291456125400477874122266838395062350077092200726839749577828260432131733897618314544254315460968882134918992070456015379167271042222233192951946894136082428169478013543149262198634354453277648112912296845334786112272574111692825858419664696418867117764474385950952571517986936613010276834126628274728586361980855141774490606863537224889616699487788624151768988030872006827394580450580835650845359461143227696840172303754891853224243995053752392300792345020789427576596807464062462074755215455158512701740594447786762350480804210571788642704973112678436027206099411183728610456416538404186438347646775014257456373834418545831808885756033832589547059180153960292544966320345140193983457363987184523767182481560809888061142951172300988462710306419936798860922761466304093888696533413634617760576231301548133317161204053917999068144407444644704166375038002312396544781356875856846025454623044101873037458775490565300897104299656651738106988295357028850471400922023327054369681598384007693403707874804283375577853590999760789718721734440758331228198738607672077655865183847180123592307857820825969128372129724982446621277368241071606598156833510838044249092884610632522293672166980270877646404222044590642580259236653267966498172062839370524357850498862387159262742842629753355224252516724559684935045514039355109032606597116742098078211892586616362557072092362019453102973941790192174593427069538750999486221764579531141282325744790744657504212894294037797487645451133922818163766878628478966565014375674987849499581777904492005254613753813511918747356208564763170555136069031775586932039619664562085723857967960488916936174739387050541181719478574985822144412230116650147126718614040137851532903710946585713207523966805450850674013077970664171029731349409762720721787662058859436146460329500641122297622841655121333273881541602787194700821441573093633910727343286098488969140259730506897782870624223957101030340513930613201572725783590025754639189558514171520785660961394406056433833040308506518198002963992302664371067391951694333683819848428020404288452371075933683629797255079686758670634883170908702682562186103840396072493746287023519483193445710070795429108017271682098095895270523160334695009152096507404737466220870406725537172286337061033130898046904541183118769441412070051498880427585269488466445146999536566453921083175124918801942979790854349943033216996022176130032506359955392942372423162440697826145236446639452035764548684157393527773109735996077329758387877318674348923896258918287874728953856627926653737355412149519258777298305578099417279221965432741789912858945843109793644724273787266067517998593832108905479556875681749690698177302495564068086662634170824347193966823052386995217010464499603949514284875496263283789417405149650226347706612462674899058527292008790867686897180034158839623975419815029756089015185880878239182695649083709977783777852139885096667916488521593193684635462805302432552809445918661498573610176121338462346647158457738507695703407341330800961851045375515573655769049852212457529136651340767656863305879490640219795220992493509692885143222132847732425932873832073727071373885375830442892195706875652616907555296206038872234893130912247945970041615649123692547252285623242999437739643998720486702721423725504233221507394634572783477550811072041929353242616773737909118058180297353385834336336678999757493029069790673495244014669614186439724526050048987142681057720737661841640711967133851308748871039526086356139792091176368420047808449396431706755001165100070509826405529933441279089360493731547960943684554333051695630862480325424517049345057953010225611470310638266094901369646645808610446986353752247379077740515074401203862124313893426062129512087528755397601153443843306129657797476734380903746934353850555916131231072448384744780192301169304847809551971762570515829124275750909582282039180277446409872073753779486777308008488788984067310687739562386516364371637767374634237841769972159765128758353442143698356353196705984376684823289291578453896236867913994237220506957529787614627666100394023496154095441967627611334026310013980241783341259382470542617155565073922916588566377067146087940207954039955555172978503153633983220204044865829226496300980048008222472414432672654963617640524108006805954902770901937325739224543594215054498998298524254105125605016793480351337823673119870925717089040724605633420436702605420380277894043479875812146301513332021882097769648332343863458848870806907918041960451361314045645471073287279148622332825442899212914575905168770813308646548757167328330963873961109835142225115029023102023931664542293936546088662909865102335824550454484250799836943397003297912384472706777952780652764966096778372860870651670414142603136959257887422591061085342077056388401341244053931300965181454015964707762634117369006856277910941336590899314905151677419286331245869227799365925164416703408751186025825706036928874290627739041383283525059559238563322322307089518776427454699731575371355114348697422955751636418880636039067268474986574115054473873162006822233013119357340895865520691244253204836259738686782675114105723660575187455136727698392864227647243656536598589449773253486778725799823879948278754101906917034852244075253176969377042703494979142009410519116944596729456400206285139529575177083944818259839146420884671887513531555799753967015865846247075500071224659164101240780596095877169198812914651354206391372047921574280245278059165009230290831073465306449957121112408865354307093194591771397187733708955349037183397267848912626139467841159689300571514045182481269967928090055125269476024129954936648486799222828846165319219739402267434679164818195063147593017693154973680821440231211331391535458891159062223465146680837836202856221774018885202487445368856537497655491237744656190540204462190255370219630378893949895675205949197437549771188263432670294346702583724603188368113444089825659552291440588221567436608809821896117222784417265987963749269963015715503271277035947170143464965923532411376607565147231349884009499604394478605091649943731495749521886055149478079470640703140011320216601601461204484997692853004181515720437211583608894303557553043626936154367992836073023360414607381899713834368777306443662673280043056455726880037221538155968342335329685397740147362458191712444988599487698346737645113649395076609900536071145598085368641164984174092791052360294302968184538719877033458402951516047970595444020641688010062535053702202663846282820303171811051024718354731800268505017257459822033478806264179925658437988183092846419250791644889491899599344618861628864965815912718501454344145696197893285966406813142424076255241522618483526030529478724607195824430209275727720772595905906389344338574257302833852918912495437049299748978422138068767320663280580434805064747375648632337772001167015980228381316408437545466616488135136147970438538797482759624373895428765983409502358858012127735400649106205816395796647466537263984525708104484046522563907160038452718866359622806426424536704772694034771261148935958183066037881767057520522135961784861356321522754564487721692772801654171966125022710705717803635069251242718862138060150814978683723582947281302945387085923150860612900136295885893550842745756867387701567137297497131028708218864655356589533241867106289584568897055675165615806667628173008522909692058928880047492546123983195862270677896564450059228817345071070044990502389984593173400480377944374580646439010785147036277184171225897534569011368023487602259316018289595884879201925480152865190589718670379521121278672601920326360798497420001781560617193690513539103541795937042825462503037428652162075514258698714501106138436627602881234010507160659403921887152563487694617819139575136965035556263681676966256298618627467475790150111840390544417304897937419934684444095499448755054438204260872909872818326013732150387945690614608292228474265951604643274206232803033684361329655427111545171216479532003032343967819924467155439505026346252675737893989929966405339634253230313323394450455608289325871512402387647377058958618317977295582327429291198130724387982317947995246658909725083593716034184749044990054397646668834381457688177870081117352150282281901415651539725387407046356991866009174090139955533154003614445404564342487919011238414954236428025160170745587657629895565772004941596435705700282907343733129913848819935731202091621901836670069487926920489864885864337162711404552700426057707592267008629678216411641711189881385901202740071040456077899690943496951917929808062600382511697356722908287291553094415807866608954555772381140048635255247876750701434159534716831887839635048396624489528169206127891873813873500737831354861885939207028146562677962411657476846437945142647734388604458540597844045871735423673522593147152014910157588206350985972010736062548401301188443930920826143381278044711681544264356823067466146725155328538426167641534916797416210706299549189708210468471004382302248636062559145880607268247080613097654538294544565038287278003305488204563465360646714861877970694861160544637734942651744257361578877811579948976050029745001417590825123852038737182299647729011703729258462586509879885370246684138083009004245431560281543181870327393333323264756967500162228559069129878893783955714903574270879108516731427576230350778970195817358156613799262567588926869985749357341663853985368422836670303869120919802029317126853438051318800095148900551486899699375681646288491444383402345526391482761667451769561119206429403117730449778557945582866436253915410607580375665760849264785223494004237676163232033512740414984425026513366829172031099953607987960735956494645211590694522374771857123654349095194231452317294346743019873260564994506225292775873194920168292241993509828328665197888820068411005911626080354514604888016151935616329772817047552557401722875561822553493923262281741150695931716841188653212444445477963696857026150615262182616876861773002054198200860604010852541736993962320928478880093157657751990402577014679293335626296084201927308003918463499362081064615695189322688449233069818879716829571730407052872431874000304008210140164178433523087080284695465498695101436498322622903493237744560335735171177617448532771241748662897263748689501445067476037315734339182706776528544802905458487061312491491243301673995249560534405319384823332142202106632220280870253976106790583161488230073237374704287021777886810021097122483277816676373349906191282334261219675536290791401088446939994477857121824055769917483228808715925555359825456339654095443505917977911417662898541224416472212497720676701305080333842308640246118180769137442222370741325971339068581938258216948309439193804901665760982318831995205380891753213724721400384551958508730134878122465979432697846614438730309430239946777958686562253000970998510158837298186397475693928580406080959752100399767219159411788131683849098914014576316864583580556275223256811924405963008014298882579285022360518458536182324615096672459234697929999484913844424972237674694460433265026082487481537715834738663591089116924119041850062280683153756388855182262316691194282304289563229163543180181441458145022387874700849183252389335864874819717833719915427729425625405695618104266962459154919473574007630738639051207782915651563736927241351854607155258281037404045796279433218528824610593473651579381395098233193758079471450036451578450496851540981404976198271027230620285378252028802081978957666937323714719517004673899089419150501283019712926307457495676090191175445299923157277176570088425709496914915096510805066722618692238274002688435717131376735423326664480086865599707632193190248434428191361143037765004226089287000012325004295681505621545467402349727946253256280585601457193386053550469689533338224060389871741227314366933061803119460374982782242521054766708692915327558419542839785578383887620845200513507551762064894078141847507747332504541345935777851117777507784775867229898570422455743001313283974217943717943657389259420509733371867241409736061254987222922323677422408200054858948819396379717736281677682437476764267761991621443035950268428061654926550091537365155449389682744294338096828909150976543398090745406318156254265213129503540634348720324225718111240381405074429622689741364707133760696093645076313920099634234296196816216483403035824373670682655944144905308630134368627901196949842829272804957263942554767891925781628878990427780431110852600468241006681528965275529993192717151080703507033635055724361879091283613078861179995863611119906130910570487457879238473802657467918624334719051839712229423761296762980080508198465709682466653870599409671257591363423111449716461592142240806176339260852761020311501818421610120562154663304393279338990963442443325513351791350311228534269155110634244408108220124791428937795029443111014381497503040270897626023678318511775002972858299026770837588818318367171222096933080275362963653841419207212870088580771090826087424504693487969183334465350343514426497854012966206585511163552216511077009606838460936505297601774296772277495504770605024955063785376390240905793763440459187121880810076652392515136183790488070974360358115395382793338045642163509024945857764957706312042694920694734568509118142343556723179685818197328089767749158237464559187186785311353764512558348719909416144655337700600217898214314485149943482894527796651605102925061641241642440699347857844811747155740840935391933372570459738772291273635601747778984237389612817748216540801763909120349511970858619539462471022860130433075964442447732177020934770824252933763874232574111333918553160503981854342037772578470626194201504812251828681736714439185840658489542612577764100410741918892050112855747485329356508733059406962241183676876027608140595175518297122617463133103951744612286085348321930833135378250232873399565702402864629185241050757720153117546162963118457934502843785438603322181914280224909568902564030527925276673466426308220630988993248363809981482210469222793869374380921097932487519122765033942583284310664010964831796355040977636275395078786863452397370592228060649767378995476131294026322070447114086918780874365343911197622524466547637673238434344986114937551128085842668511500730361450372261629565570294439148977702199419890759608403210369042653901438862048996831047405631582304730997070694574058980175662371265635856744903864813143866384469791739054955282396752787193412120777360422205478307052244950342582893394005139636806731783402546688385942610408602960933540634511399062596528790036917314111643049657879907605471991167777015685022633736052023015185792493601144343085315710798619080140006792456230689091083071877723212112493963614241958982404245039541449436252216169920117525799305379944430358612630764301052055778207075955925131738494829425341242871921456162765382599999132947745810379900810591978133832879487223308753704189090130489089884655423715428098005808998373810073905052975020617185984808441324074916061270559783567859746067789118548002279751713194723776175690174523697300572326032093520331537060524906014779646774519978905820933469106480381818793333886052379195020120874593825109255158012947730418339387933443387453420594900758590069668870138830474750019085287644953738894212643261812589673826958530701571542246712922983687088870278605924840941880208840818213064271224493277009039811552044571513491144256561725485517602105924272173342171056071655646680449343521743794118153192272433511573184697492019553725792740469901644195115154319073041646851522222054704114356279501396350627446014553939070118806788343871432894265584317820824991921688269005725830235956034525996586473457821849333666373952771713378920596728480182940432565547442377005182106745748766980333540990502223655756407192629983417865686205110400472459785512301989687166312754679519024145566107640931711902874434225671058149982577099765009891174036447340151364777662469178274817095317986419289083967291324943597976639389390110589504942041702114530707295973996968017513676598983774510835836802973897199107273814466905659501748914256211433773949174949313156432523406975013877942870805410803288260152726442878930128556118942879634703250050820220824833806805080511168134472053673491545160990179235921132759178887797623496245848660719278587711786487506567566215505077608529624006834308257535606839933725316804836450694204689294231163430507979778069127851708207725384251571432688445585536101071990537950164318885128941103283567150117617413074365009426614097715502615436719963111008527055575820961076371281186293355882230758681212543155300364743959092225264780339137553168621748424594871131676662081578946804996928814510475867286767331915065323868620433110020937947028738423144929112045645316110657941652659588268743986413332395409533550237331846680729453235208505663375942592807717169168064231349244987722588183331446702387852411836730253406639300340621837004699649596956104998222633132138607386718403141853315889949713328526445093916492211033896030822710028039781971805821873860019268972248827250786195239101671729133971061386172242405116884888497623582576531719628239593074579230291020015047350046073563149633571899921702482329647247412712659850743345002929295964774503588408101348133262471193808428348884344552064038747921751814787647023295771532330549307354850134922991811159043516714507838215927983415891579643356905288192897959498528095593116391789889001358442030456256891540682159045415562629580598401960932884708377712013499497454163303160489803446201181361520903628832070109190141547915622083478477139501317815520391477711808177971952611428057737946773835664062367396941563137484890777166504444498743227316233278053462147400324935041144610806404423818508588027195678761695798248393040223688154597307289833537200080488532288107042792240834230765456403808706151234228974217180136083120015373881316031558873009839254689498554018639365719746755668381766394808055266695550266151553023674903141794067500105119220484582804597006786928836595001768017607730522206821049557170659908717010445776619355597137115269563523921834219005228233759510774288442482368649471836876223287064364516128225497774812026271623025553830042069608181830277483739330765471173457774657511843521045855469494900113765772937577968567078406364692197549030157805624271079657517406240400251683105565062005534790421416458777704581762790010954365727263511232615098166322136940493320411533463217873554194075556784862515557329695979103732782198323231050887247057759620683042683910609918580130354956028370562448110419953670610308046192047613485899789528867773385930106543133411931076601309716379321589464337245546494582819992888498458666994096631921745993019175040395847935082673156756523972834548993718861192515455518687472742301954630958362741539143741692179815195796230087378279508343447974095480947613099057354641859713626552392946119800643431274132301878085686475283317583224445657554606467775321294022636140000382991475257723003893914852530383613946748966992539630983631774139318877536935691989169034831983288901545864557801574644769535613686719507576948334474694579287567899361307161969813501430920225214867936021844536524333031238034151406964581264656973588055035354817656456090863841910220577037262417221176025082626791489539761626485469118222268780424203863195532789871653305927585842224118026389047613625248769352060711390532245438223000831747476539115833317036124692876398179403136424805203842245551097400095236745764132138154613486196758751367885550202460137188785292154114371139503229901528254991246589429622137132206225530096816829865827731070968461076492964086717879451124363940733634437008764789507042123440029486255873088590628234885173025724629676643023615332977684555877628741382559905150578536715297099917757696999332623747287540291168922501763204547148441565034055145254408156393571907791592048852660999616536362800413242533449569175509507100777628145902201086474900853022792387633161357335193330850134057606159491169893129320114712440378240241705667568355188502530663509775718107107410465103529147345372931573301807074264169188703102081507017968764694857621037959710628568330608376589749024012049615491936376895674429439403037678435830883024865819857795845168939965878986054815135458260660866763770338415586338360270254667957576920865092365001829576529536531188335125627205854374691861989248473533600054928706584190524417716916149072630064442510561404957672867744271057500572673425469036668634921984707574584843349924082724698943255834271443650498543944839905194834775912325254175578112365209056896828689128703994049841820475752024779780676228875322639629146770167948591229651816611275929608924210613051571480601956711726259472602836905800750910180838977475708727291715615112840506121237584225600199436784342790237823182882114182549958909682816733996156254171092644156153628195814261134252074173387027418614121001504681316744404368716495510648520052295854112550716346604201205424457644163506649691748503470358270193719085346458927226609927003598125797025389181459241656273919677653195124075618893016521665920261369178271252359938025433766213080146825887100646969092524263642143149006579115839042693512924752522828610945464963258014457496956704263693127567438397225258215552413833686939159288336818186282805977285408533148497155576755822255180655797176397652288470379429876843491897234681346061953424899178017381611455416597374938738313031152651696990683579209075639271917860687546233863631420282665171936216072369010693478803614984383006493839999713010550464807955972019502408588680608983283047260521125439322639960405066025538408609036472317825188972742572649302101019768647300627933716510405119831479678454700352609744954461901659072326815100309580786752884307033165200204999457584199713996738025080729103943810226855972944392455840973772668671384423406303296676040939510256075908624359277579867209645413494742044718532425550313075574747937576338912328263924173414876835230935594317236911586007117614553158543948454661786541529589847845620873712796438645314216648635508402345571526175419843062161501864476157144878059393336503062447256653816049506233579380592013823828739614485816243373086736560003505319329596762437431033075071337544359506855991242427771314799586167658187346654892905808868543242602950993630859167347195777691611305699958819260828493331981622735741335060780514108577144468832764319194196171786189679825424436490786857385498861619098255488423453100426997617561417675739980289079640028556305505035918969212111854166606403684210275099923551029917405945441351290414385526749698515474472594850848804785064053302831588038734948372807164985981066260639523764037544181095035698687985324772657394863062694510846280861644242846227943657929626993221524778702065136275928072718701521038510604484718505836885526032842131655298630892499631311633909315210283719708963937730913970782429556956475802990581350307532730660556672272732791661205300141456785766134430202479958089927917977988034096572794851693773213663722999203667125622363548365279901771575414741453398807845179615073568890142878499285714749203849700083250278379416354152529220754214155286195671958837853967801097154560984647263596236968471338501830435698783854747766954039466483835625964732634222288024779222284841189182093434306363490364744082873519616185221955570316642024886949062378001478650068104613979090818348505249877031912605571752974267691254462375330921847911885556722794015817336586061204446882603388934161165708325874948827114105862049688409063231358834522936375636531805798155697095734709953720803657542323673861581586256648063250058619953670120618309423347791994897973196683942983283751102460318123452572011303886494178496221375004737813363804471949787734603103653607048463179206977057111186893666020859895197806794609795244169689342852474984733716089887180515291314309827721720936793046765558475580662955330217295980273743706916920122937848071070352517483318694866686026082384949678764026596196969164050698736368206920392244963092365833695700534325873371291766635649280085632384497826344179137448078841540239233239951745157475140585747553084146412126087169812374205539725843519080715136782303395863715537029398738110947144867478117843651065984696139531475439449070365443458151346578092369637406487425929135538773037942614250082836319040534259518966616282344364509910518181205019719240330351432887496775185289328976059693949623620289185211707339176171951772962646299548369445039575218489478395289156557647769571898758614244733015846231958866696247704184955597960129203716102661319754944510669700119146673315767263153812662939728799730228539680802917221715222772532428674524289181994859141659222028511452227705652717067063009293650698266842240313584436097425061285903011555680522237983759179753924523365977395780992877558999576651224767761041763577469768763232301466887260532148155229253621733802550932783868094484578397438964670731249201998594000766814497419495628790787766510221799178073599543604297626545499149850849347054176306500542436702766437323398664077751684428300481039601147003091674116831037322415119709206995853563438458466438064156925346003888894139767293056458603075720305913235303715114098693330345473258412038656941877811278172643382712054420220026909090563633847496677819110717538383838490102032494719890932059776631385576422810678414463060098731926045369255465556000767369133314934440715331793179868055824277952499342248425801675482212894011850614883519191676938431076279455543987389087117346160627211158621709689348061459010005957871907364206976497473565154360292989378633937237263738175144392784688118042343181721176072170586449650929991540824648670230702744983696728564160023159023492529134730149458952890592582470584827535825886599132448156362986973179253611628434628931101638391428072192851915631386498340268887600931719764999858484945380877293052111679185779819561183544235631823117025038578753823405737730026301541408382219316902282980863157044592648187894411611197029311882234062954778054465052992393852567157190542174830672250997918602066363680049359430317629446436277267094824615450021494552626033276696220615706767684917956727383823353366005187813784639995074818422137335725778919701578663749269396963812581866042415088583888419809366607833724653962300690250853784976820968126868004512098252246116429452400236859385828749814770342290459868674651360002227621365229601454419972901255405815516475509206337963928641184339534445525296326451138040977638929775137700998271803770085024838550568439768707302018684366932392409233747445272812345334896086450409161533552367429116728058733056193197528332945639669101598231198970650594796366741280536761243590714170825974871105903803767476626246753778860380483466468202604988251455283049073827659632951060142972118560027953864121031964221931492879022618004557954645600263655050327935959803897232666261940722099073261107451655242070862031999072415994472885668358833393138791201983717606428390537872024959362679695997501079319166626506666951934966408390175573427422330950280075871679963781614538864461507348170886059281241116837812472058568294990926548224787363362171004758604176916235634606998925186084445985344535204581408254833901535537347585693776083355570482034945873515835761891915040841306712943142610722294155615890273618984124800050482970135274913589370779100986112374829281394849926905555535393314648692000776552679900124022494958257719744404887890387786549596531842718645132182186260633472780140773432046124238278190254288662206977055295342314997702992835540035439674302584275800170724522462739486227357189766147619149462944935845880317489213087612808542504362619019577380467641838312383865530895679214380880510917900197677171334814470619938399926733353902003385399074582107018679677580757225656024051890260717467333242950231086437881244434331776729077148014386656833713728002262129171199648631512263361962678716068252414139944407004186745653406824250176646238024542908941775845305693259556459243525998306571873891818563073036889809017364258199473351593995657650703216483673834183833186242684390741934794722530468952467936916981232650550136617419230661057399492265551616848123203400689564809972007315386581774170108673585637444840004402490813310824144390581483185536623233153080057125327843699353690693134476433504297804690487746602269017825901499849411677423588768098929224668590097454301315208480506354008832122865252602381497224957642787827969688111992069092855416265388766857625241251567502272801950058470951420647843021319459194053565758837859415332056224285515660125655663186808735082216624888922027831932223812717035513215120908062022388580996972490666924093221362059146953958232102249652413465771338716603624035935468407569522872417050796987827424018336944418219218688943882456008158930168087674809509051400872273223667641834807697026547140888298111110623205085664729591696069194876488347358157576637544055156546112988438574801115447660126190149180417327780480932907759380005684135215722697989710106031807287325883096777631853183201346080535000407909432141962168486762918710644804518144826334623119241952839842697444257857494358362335106916770835167855228209889388967544918538941638235671465020036335047519823346702257683465980012421215096667077878611654830022295906806939597194303942930447572015141092588423330605911152112995520613807842765685265769731590170746545647720584437974258195325243753752938371464669479304767946398180324255533287160937584476751301629170754968639772219140302129242622037809506525188387058550439141807052773967431370248012553830909318418114602896124694673473268030353393313839953275432814255717804417210679403102550235623321031149989319822890747933547672283522501677546204884627938423692291409864106182206467773597711376196552873485491025906825436787347502282299139639641921241346130534128377207156801815885085375045305786831493240045787025829910205154851978824234561119245370639458007665210012160342288465354806244791775077697143115753454700427620431878893518353378219861259472876754757341992991583714950513609635692530169843315607885634274808940742249915674170677660483177036361517321346124531881259455543279224249573412492505002061561372796431310568329841514447645480747762580855519633473988160956403173406518550016002499287115580786167654938517139206834807241984275358051987127129154080452386370230007310184207005715087225971814628141996374267663334935367286752082296801216696504971528886816685902193376327368718451769749031420936182501024992107834085001449661865938242008215503796341512648552762564872327217608592706371461125610626197579872385666451442722620220050985011091647708546351905651245323473764957629815432441187955996786860875380867496214562694529336486877850822811199324890825951324303126427352505037773852190782362420415271994403085852063334075362804875659921708969014037774771574024386384559072921521371577868007901439159320544437155961727328890413608001778691723639967830394587978220632715411991600119631002860686774606180377973280815683337847172200289429362886947156332055473170240100782216431437741306954294647914707241584765587542522428674762224290840454702853702711525133508055184395828327497291210942365436423193037312152901356366861863240209714157194908941172836992346989164946989969512437284859787101946625520050393774666999651502822650689196878936661331363742216100138514976380930321113955195120052167192423624484645371911888977191778906737488684842853811010464704930924092653780673436069747803987575184699844468580837785548855178301948651182738073385247167776715441339360087435185072435699909309552057009849053608747000577116145351406268552663461551579259719127703706903386445924146233528064302392769659346808284788550048092992191665389565780885334178184707519282654234532022135605967883964285257345912931678633411109706004532560928176628884602839336508404847305081313638074489688820846181247800423473768485268067474985324737004911459055363368587298092449672036608148682504044538050168030673099829026223034441668700303748055111987437877581431679970452209027338465367210915379639368877177633198943552464601739092939444134987600592815726463236681546059992473862313827142407089850197727073144561909804070411046987171215430865888302547232515021683956359332721179099641683335628171036280323561054255759520094438407339547269384175844245720942541169111556366175838370901157778884331874672148266500867604723001759943954199633163062721835122704415782808634856908795118412999050105563951760054852307986780865744148763525053140512955551774580452574851170476160957952729810440160363426126355629567162120693524093329798126253142175591604517008837596349464377400457956365833611349303255363123123326633680705705590236965185396198217357650242084837257159465060977919133498289920201234741247795514445376226042729301712506966343680740407007011917464212732979761103695717542697850307216600283264837629046510573641427543815263016463355291836066335634525001601814484709506329530851735397883625868461537231187840642289074047262070819513051042052540233749710812274150742662294825388590182552051769944885111342335036361635054938933523428880397065842799143541415354993678527736083076595301250010276811754451338749912553343153950025632079881040981150424181305107094895472930213323520688475901435614833376832411321228642521409642183580836057059187926646376333891457429191089856179415806149828530964532669610449348711621789994422646602769655498641769084927067045240932723228203322927316782165868278324089360948780354265031884335221570450489177526949537240447743973148426435823834782452179476886463318522367475203657703492123394148614904754702675285610637872788452027609188254612378460551204547727441180203000777659275534192264708159269099262039693304400284818993891858357016930202043509437934758854213824976332249415019345800654523667459858036485897287951479594013603719531547805037493087706738837647743788979813224041753731932489806739327536820973952735084372131513925177900141513994047162850553133286090017016327221994503891029147016277815169180850929938182608051460605931601842795165600575055549871056812555227246404413591829848652492544583347771351297573612839267592805521236379005361319252457355382924479968347370552898753791829231562917308339910863015249990933284744435094625153746578861359553228492609761525701826432774809213589395799244176422224033596920831974293550941151744326494344168406175437539893437796304042788364998957165372486119808990307393731244697320357911660389685227096884548559031311963803242165824525085496002929060836079986564029034783062230652184330709738142421274358385094898161561835390629699260886250383797197685944744754566904881173830054969755205168539204668223549498877489777780058914544390418275620720664202043859192337993951504148446104844015779613689138608761904083767535694775960066459133001419435760555239512252629241340969545976420678516674746984473423813985058429101103938194687289582415870318889051145826282409584278150828794211821559091313699705856961826856537645307106003033483254489510260000473449646503476567162113332880310877454189197649975109533898456465783603714637765176065969154837981628006436139890076584447319776293299989890561171625526950472785606322879743525404067490858332887138238303949972945903746699618709784662276318495639621239982941419282822395262348776482442951617244291658744813128230896138224750692762763513062525205145000363597184355354361136834635492809994833582252916222660553718654565227075659749850062318108944010806833728004026887203709803800714217431050124387238991179855675205982490640580787021505922245872216314290370779252868689038928015444633386288198326152699077977557618649217926747059178762251415378588723941996841817581650947801990486784012961457072751809595689666329812779465461519170626583899737610011693593204284346967716100858748553933039380195462444199368008849552549534404858175217911936283109056181210633398996225200539114309948125809597005293605943686621222982113439983837890537761730062056073360049658082218721266120941620040061050319359034084374836625286951280834864493571575210326470664542867882951203618902887277642240534338320039927226307573016647597472647218011049902920502223156150906152275421824441496675797737342889498651243797635962816584152909553445195088220071006419208799292574201319509404699454545696235607509332824607516822172483802133442722098350959171869282434269288314373449650526962111606777214372082859505115041871555165656693517622287484621211469968243199420455294846845458704480833258194361511371250159768636667280433518790678736724918760071584864454415755538163330307860709580175911275378837516315070821745615682126218134582174698610411399698276910940030323602721455424552942722978420520613744228317004244288579975128821008356484200125664808510352243250903310575199682565157088896742895980396635149910764020007370197943130755485423999446097802062952724296690424258579903131928776306019454233137248989276135705316915265247255713950999049750487604841439504302016803648314757688980055226367576717275978767671440858254480975021626586813221780517893815332045593662153695503360241010094808127303455867489306750515779775960036498337244002917626536476050958939411275138663176270076358308315088809574991629669048883353246137355871002913130420872923194903097740098587637726561424676383608822512001197342973475316577560710766268230347852804739269506457082168639446598584490394550236476276248489102977848096389131867753456900421422475751484727985665559304041922078620126674997787757626500004677741300464246554105126800557714796665811025420481359790110677641712510432993444283932236732079229626810365328128409103229785965616461196783561063707297948631328620130661035035670066762259948526189596946196572043235171008925627026462555829345502012678823681891568624058438658068302897110658686813411857947099333686947061085078415081292729768893042451564356372378121422842871284074145849894100211739936322982370701642336533878813365731639860880360265255779407714507980194061112998105196704787185146210214828653529052084602229695687912156875454222353573553024004037018187149183652222389593996379033377305908760831039286409512886926498346456305905109181966039627864868466940817166566790502846633913076339498186551821703376532529315766550319851214658989332376464214786522336102007778980083033137905084261010325208531748797971442012542110104381384553758181667171174699512636773395306735571745946818912398767830748554274555056556996315521113628186221577713779846441465144950136855467643040717075658285577984686616518066256385321634145984312846630138132508442371971173575621961683794047261076569340142701913409981798165923984956112927532325068622013679745067317299649254016591888819591850153846346869589670008073021097284192681576198772166221452424200417800503075514065014774780722032486389440033250484707467368681719053337588242127253109895096877588749829394784644231694163944323513694835820960718782230353922436822856221241051246420422896193335656334363173776074647020445027450097490828210563040657070569071354293307476998769537846327441114148447544734121280593398779128014212616572656185228711443099864787473689459714381912133754952020755939629855970916780913693951940472417056931075166768263639728756786121098102264554883503746207125414938376124485303087046049503352767050209446831946909167919717432231253505060455513663106053895543053780383729632481660330448873976897085689662899406055737459172451693487749615613753841328398796463023174776499349148164289386047437118108737782515094242445234001172655554427742942482811021690335093580434742473418875789590270234989496642242645223364397706998335498491993672853886970579803335182181717987298671967758468024254410982591739720550575087671000721043490130634862165381019301511674055651869117755004681675095507044671114987845135236999003307776726880500071181917484242831104503358439241874005079219505750001443691451544747863517423248671059083439043514296986863578047725691367837620053729442335761892626590440348158305924903359202011614179612560635471442044122220824124723159286325386251539956822861483954540182488214128859300006854531293049903009207210389202786801708827759872431964424842191576790046502986581805562464324828504715952790197463305178540523358010824387128028058100740015447025688692970034726753189133698420543147098970249847816357231857453472155677950145654433389718692674308734554253180432724830250921993624159056108832985867069163603418884410555716665451669258849609707236472309520270490578579042415782321775473220451113422792979224922965324613517908516928837305522619357061800879118737826261790666628717818507315102373691609571325352914324932970492451305077168738996445789618408235559963063972271207644002820931407487693374730759136217697726384689735109020609261630636023126971894873820303789600930729585048864888391981937191783236553980096712955488931625630731576591501094345629325710926502351717276763181038389138439113764533079441760421956036996140175901570476278201452245479405035036426644297593756912143774902247530774319654332241555507188590418252970537798774885240355764779271869466088103667729522578408550994172771313770285946610673156697444828940796037799764287052736674946122006874626373083977745708919509861976303088822782339173665459044068242063556100086595734177194009725629612810664447702804894522827962388781107848139478178868381287093835006604297067974181796114059816016809113395465362484252135781743594623075943191014747525196268166532266326578421164654494308763377574067334758755558357088769855155772428523881667721503069060899072973676422873750387344473679730991156721551829439610717184957462125102008629138202967158260524298531287612705737547284643948703143039837094875549454798225270060732534521768560690009443764281032431062367183368808610639678779933258373145805171926440726436267797451643980203390141449348183985220122861601871515268925988448618326343074713694596906376004341575602426034543255071992498562747369773499497625035808182419991486253120368488650397545904861151929270543602006313456324117458608711491535917157795252742314461884164777833424739553007225092347074461378853571862809535521575551782144755209284945676066450208261890535819231091975450586719235415610504287212175866250090857275901140858616715623450197358985814347567620094420710876655575078499107893521091259243912175114390305012849680044285333501720566997503482078293531284525011268569649122639671234098393696707819141763694016707122076144685914285069029199595733883825287108801963795003676939077742506800426356357810556304880613117301201286842070752650577549438306699697383614387831227000202505195736452298656865909097791966916147777606609994399520254315533956320213663982746076043632167746821008600781055892968310482785932868215797717062930250443312385584666483373435716088037249357173874837563920256628510516271841392890335421878179550936447268409536660250617043583122615519156224941939409780496341339235558938426748062034958627163005505747503561953485517762702607216331844544689944272604885876048664033959348099185356438564779101220765547950418275511923145538127323345338891919187206889693064938208672639772836110631323920285951944816241090506487231200013817207182774449578357967790934090291621508246446412504939877644232016342641669568271777113529414922256479976524341937994561641161759780738966109305364616742042282821732856902801614414174579459727641834107414132600573318082801612522596235041329383212490200553321394775688584202688820419854172220114801272066984413531188739040928989536439510427571423166902744509897133942199896806094128023400505201653899671621136473568556955894327665175752191281595206016437561854290499180918061578296981156193704384715992860370476131792428239710953634208277587138236527263406197354078552932794123600778480567757508258458204273443336900684560194990918020039481774488893254241596920357931321266010111246718447078655160041075993573251083019618850617186944063916891231924143870229203654552612723853742482816480987832147373718185061520628310428379973447639726438548900272588432715533784362372587875237663457260033970423847832371253152722416073154644672033540478827479131492853677079895451015463798843918423789310175218474200183418637096810701691875067809640338110446327535364413361559973007555343097577910268368427652856497954243430809894264162018632494267890037282711622090598116342421332323072057739830053962380762380074700603765312107017825152905947674579255406128563099202100254170855681193187352804503452331401123996145298356898667162789976952918327257342518126330578982773020319782244121767685479137672516970445463444992201022342364365698942731828757554323954980227538377803333924703065761589400951632822749171589312538632128263630500718715771257928416277973074057685356118075560043736385456192727951433138569144185801384499388905099362099140594281048752318167053330716908458695366708731539845259893684887727297310685111207868836153931703300986991173018364470844618755651611839126863032315782634881863264863049512496740204940332233523874982144948004607773406724061680648590488870173302324489685629813634437370924849385898283143631506904428806550118270105040929116724439148343972294811112896684205283551502166731221813692182979556535345590486617293145974541196891343835012277230606532460109388217203419416005147376377504573855560653153674452076163174177652302471477873512614843969198763296528138806334354540416605427793342398759487179004667556134111360178786730325920469096266973759581024717379360362144906753052668352955007625010578594791025478444777827868717616889713160804160650931528759793555565745224737056407367750951708738699258712767458379231688877434642373020738490253289619636699448492541291896009549605898213053545142947340734010231725116200365634873078419750727587544648902206032510477115699726855212808388205496814499567934682278075445682182914244583892677088189276894182826123062526562901342965658425268093214495900250751358693040405860637846616733745861630910529076493508184186587582994714121414883591181284591560525279651049554219460576048486170932600958353473241583010356173090076963437853364862909382446906765115558858761497164851231579370657430625775267046323411845932351955815286256810558226886902325940487838861519785344035508187036381988245364766197150199041916998975831503565415580215425051915060166442308872933138670788863290231854792720117937471780549802953817174135295194590274695708897273205008038922289440153322875107212057218602327614979767811196851561048413195689373781705014639158540624852005191808520419884509602739917487137058780290345817005339123631163007604602104129753406476564117364515521559615672783811296949673239830362428724490956268442089680588069603899959662001423792336647112735866348420743220035385980201456331365929167630252712175110629553745427174706239486552284860263107161668975720503475578683737859459176783923463817606973139458917153434575519685063386574884108254957605720400717663967893898802355345699021543774442532679805164213923059427880040821844134095194311876075392915220204299843290712074076661740367048384585872226483342923943461731208022611316737954818702567748775596628212356397835129765345775885803244755938731078980036469633029055896251587158118095937911713508541992425164863699883855500949897495207558314813901472686055173494311872355556103772122746209139100753540742408361369365884217773532554639054662440295261129227423196659799864122579590739801020820793056144759156280641023297198216269246161669894744559537940229912506863921099639503084801689852146368444853056217361622482310893118524420020577032880644482784218972533373803000613403318054449029533224675814361757078852361722355787834577694599834621287323974922687279826777393310024173440123114807984171721719753006426572043138276820967567173273602038569703297189516255043101712374852767698738973972883405024573268438809159897293176539570973101123797655315887652912639423685338331042446741240364239790269435949893407672913276733642634497579103859421300101880709190915099865056406362061877181100147605002728030427780078079094398712678357979348810257633907921138068188412210611069055533381661996521666042934607642660212677182596610018809152203191932965053716374498294062738754955913942923151916512737578472178321911087047753284911823576697769447205820483866877235355885450888692671820953854845483553503925026867586219747836368045934434041025069849061022314830201107799068196870572013590634776061135756000344166802742306553621721666302197798719865614346047714567615618474373080148919724066705383576535516299557199259995444050189698983672581855161552219226648131404894025156352726710776016350215459670351835672683687775214940558434857538103253603983802607845940705691318852619929903221668232560015154112074183805051817060314388466938546632697421552031855272305687198142663673289619756658602885588048062586254122909277921886935684892851960637655761651422240552008917832588341500603061127807096241081317471750923201500265118378165243732654916384665777548844864384674348761589618967445718715242401779874146773017424970433075606967503123491865399665165428294608462618762179960489253396624137572077519589122962773424577441238814011913087735279393640154814209734978911214159095863249534609315008303313917967124104746249613234881105710752965698440245124264775430731359150650482142126621865306848984963890485034598066699700923002573834499863076382268820653994961774357786130791441026042585054595758518879163309384760757263410494310954893767612932856635941944034170212367428621906729915648629105863116414863070401421624085091949346539250960788444697478260198910367606819634179647367555774534310250938978272918533179420448164904067342491894161790761730910809925203909466027713010456450865578458802382076850229635403405582062684448493982088190243749676681175127282798131435506435059004012678042123940459768823788297825836176946535268139279201820908890121405411408878809682075576794195760475773963400434533888878593525134691002451057282581645128447570604373677639474943490626484593145631453114846166266664352440331914808689956722444056002490259811454997249177853676756393943283183560147833347453674769617906313479579384766896250990952280412320787606638577255174026654828217833913828421345875390223261044853800539189000534935825505981706929441229887797491924204445780824321613463343581532510681070350861206189578689605898354645875169780652784183326348576700988912159164439073685171932850808238455822881586274476219577809433159239389803651506216815066612447669715700166477674806634521762157933167605385115298409842405959546631631342539148871709331770848303111968093171270057311072496914455267271828809401506697169187326935921303254123356777138306257041238466043240430773635403727211412779584240872898196317715639711809745601503104340460238435167789066746934790854091185424102848089185524325474350093367439239499440233973923286648254895812233367672032129395681239783286177036002959721306714590460941532384105652176684428214288210306637969728354728456993337176280064165550034065380611384290476996008635894598395524607435937639089075025946509397776201172537660792702892311318299696060606028285735034817359352484063556649729835254381566772308453516464983354532898870110540499758345210572127480319529882098309641546743274973994013404324641138613984302817194303448003015105873259238159494998147126601203350302451617738164435079259419112348527533504395124997714543464476839023797747917114483851722414327152426843390620260454402536837052683634078673799668384849328111851132690263709852869895301927592487495937066617233652939319621402376442956996342540624350293712026983350326459400267164946774668846973111670391851704734037512779386761428045448284198675602142994354414561110556291723334039712298484787221360095072046128816377084553425297378660441661007480528174539984790544562019236255637053076291582638231551689862966728727700070559150127793037663968970944080986217357748183630111403073553101585874970698211654634110996458299290172220300971626369316150820861427170973790100045729884469763896816168469220762032173619370329546707184917101403590517145699368932255821408836261153095311674926407457098186452230902593681216056059751258254644788979375675067217086224055374485468667021378709798388997879244301170368485006106066490678120082356014818014061972003223536923076704878430152636039210729211290801943734647927510348277535912381666604834473846096594611055550526495508621265732010677889461805873979809020385288976070633078060177235382240215979143616836615781575067967329303392062032494552628514893068494623362888330911544280623148023154524662406437863859027098005688946632726095997328435026465201732640111915365421871236677303910707707978460854138431830233221042159698789721019735636081673927033378628209685344478806869038943348564326776455613259167000208748751605476695775639647203313532097558983362263540689849388131947895118781177240568080908427834262259639677364512644208305834139308891316857921272015429525678064624841686887646076127423354540896312040770333444643585017633900388457084200306685544219050571330805557190703603684983506625596983774741589944504874055442091652780227892381158531820551787553638612220302223622958897516990084901455055750349028588857544961103068357193113034475445757417552302619537714205889005084056843657373620779757965651643887736085941026984767379607376195648788612775960565195705829567775896320508402765000533022597381094357163642554132574263067292277618171515016642654593134472195060338268114298277967448429662898584343228716194047425027629799681133434030698489239072728950873221568288742036654392256164777310255603308709714693124740136145779474283540049532233476336836903133042080972194249283081308783943549641086754308130636021116287603680529343035390132389392435894672613183249318645313767177013427578719757231688360835003265479652473572385966684355096361027718615515767525454996350462502711047813510518983513152297233224802051292585887016349775237868984846965557549684493475003889791458355876625576514207180534875228844500136380628282010324565493095624569003124694251843274999054917259057320737384544802207837184258352233614346385638950194579689245781968510776818844087723249267090342809051259151962642025458318068619909836456422017776148991805405608669958837122964494166739231452129434577108665430479862577030215792445219720435734186912655320531932563147615284318201334344817253471447047193255688225755608530760006560554557306809046444540421406799178978667111551997121948073664453666573056708268931974216551790011759964123986842295133698963762946143736077561796262949931867208846295162517762438417751520404070733526673848495981864254834036691140666595287355823305543372487191127723667550164984900027363775637116207183546201454835096940310355153132172643524697693971952301722755460656309670037064016256602870320527896928274595435291836719802002884090935841621194392031586354009729397791652275684339818535583968942609758304332644565903900292454338866204217771830233220636054423278804435417478885787037209702390153852800712119201763686550330233250288293997253680508747165032320381805833376894997838307958205523312395099127259352110110794581695023068949558022920637690404741926079116399978484148168774500107061963050673054454505288329164003531013284723362601683136912841299265845262597742389323774578236422831200368169911262346200812316982979855062239078665476190575114216615131080882924450893023340374732133533466072684783306443564564979369943112181009100070002426324964046189789166548969701421840113524696727057555983117620677255709384203499902748678246229884915835886690675214010154578370389774695390598874210793723820932373415556677926947200843400777996758671817865123763682798530440836125658739305780648773008952220589164277570078966304542462506910397245777873776227001605221965293614954236068234818433775914173432085733168219489578006779464560000986819926240963687268619745268355476134303971381664265109239715726940433172939984485629540520165867216766953709275796754173890468140756647704804797915982517269393350854262383802858606556036303660169713532316528071108960513656903539291196513669260300882845506124649797387586732327545430408195489498081064637931612143194838967380521608031556586593690390233727827116758974319883908663492765386469467488236603694785842654418685132990526901939071465957169786835600419953266660225025041069307901872538250215333056861939956490090163704535854846440176125480292384151810087306118358610652566470778606566454689555836821631348523040414350372554040635009704007106176792842681952911814284781641318372327250654156069351359153254411311580987095667432981354034786889228217777791029287515463508650075634586512209975833324639380581309522577309591677723557032302930992892034468738467600877958267154956143379443881146000315853611074785462570974303271023147459852766964646971164551257447883668864709638767657098908133745764205738674689113197282376835934495961100417987784197797362097488690705544802257827397759408362777221739316663150741372162611981472175820145449843393958859942491692690277186396689099940800254197604845166041104349294592639575495776019798227454534420343294800144902217076739139960407123167410039892023743419944396517865086224265145766086664485499561147330352310122042493179830055311142860179160239127666425759470875513953341288241383100604404116131226728671094935062188994785815480866775545189633712069309952863194825332664398541766037009349447194243573249251779044951855444492999093489892890970402598556147841500574270557548124159299044345344709637493667094078015461306976278754381710406247367043549682555623833216809245688253516978454440344222628573347044019002244325914793384901359909582280606039855912997849457347882170977304674390044351292983745636377517105653790272375159513712915394386079708313066064304448013749581239818595363561309959601815241386260905843230368996072762654873507212076975148901179577950103543799972267025450610178541687378067295814877063070772692670000820783357823901653806950137947388880138897678973844067312489363104385782710214545315267859089373848522751332804162277321404894097419713720468875689108995458375469900002678354538380482636068406600616684789035161905475108760195037264830924449878994172549407408154577367134262614905974564850754221777793703531551736358491458620017775890374058294868400344287798224260923405961948887649367585655345105482946422827536213047486936643885828269509634413907093302653525821814731333414641756050898369042416400996326976485371214740924378614014067163805612532799023509901852847363240545441864521088302356778883112754459715521382369088324180096176158979116188278538165459520705747628788915725922392405159504914430107336668175766152508548232639556462312720906073717848180274489339220813328444929489073217214361275927451398179398414032608179821888797687215607844607631620597364865819329087688647652138319839506205030443880393265871011141689682824981547839491134780064872942890085983601392570773871030132829428378510575453218222949919814002144281257372622417942460734281098043672076589678081103431678684385258092467749679595749290354099983571742608315314783146609640618218354887749998334148001490599716041083475927282079644272317746329630665945785521050592706843793655564125618089145189329151798842582975328983208146961898778667047910195055503522327771925859338783940542717886784037678384612392294015141778660786786621197680297311852802219697691107742557845215210346546620376243617667192704844407182886179368934980129322027791202175629330163678050892455997944823001661742551238474279431519825292722237931703006903313183211336620286498002688929872550797475375276044453746275441585746264108195434968175191758605469641038146600504907643196011213215963079622302933765866810256903109704305865735423759053218534534420638189125987983480080038395083926124955627532456699289601680651126928112848760498075301020314288669521836161029878399966783879919655256407779173936005796357544751245051083966005173544332241459442960326274736853583986599419334216855556251618730722044859056057770280531880085920302033714503323276649228823258241733054004443481460088055486379066599484878171280968794731326610206132629186531858277376051623586955104919924229923556215634071580218839459333176969658618508640261303273165195191022527802194003508230286363271973202730496483268807656452339311207369304875353859186761374572509216466450132369352582987620050078465130802817520162798523081651557941043856458384327134913215719978772536801841932904900905277832784897967293728452361135234245087700789344012209908509142479912275522749627950053406537364444620790586348722364534479476432434660950542732838568785626215424730417236185050277117237022593781879936657192325097697529388484345261953587983207728060225473893699219204180634863557444006174789030301837782477914325257715461858078041994159734674921766328664531053766729348011613122153372466216910576080913099770533952743622179283276248921829229924187110610245495655520997723806546695525173007952877022739417187923442096244759935305529477865676221805511428395972389283682932567675873382186686640433677473785490477735435773606282741283043932374087635562630491616322924611373857410134933744746056873087743619903166190500979420234311105668198072298821954508322158444026127701482808368093713695790455314523396084432166648870652465534773864346853218790658390074016414489911593212321034624244598326365672353916389756515531517751072706379974784114586653308144510536318663330007646438362762475678959289090210457810224586135042967130490123705002732245917122847747599207694872371618970769978993530725811077123117216968665482818712091885213543333095658382851776252389422198521832353748889799156294463534438620240155316024696232214478085015074985158566774815234920726158432582357069129077530892983045602561292880982180321827293751399224344188731898152527649131796771144954683415010405216351523695082590613325647774003252833252637977542496173251881880840581327076877939194160612052952235856357511901491896968807911674406841617463990769712338905091369082840157253225630471476002792425334209705444138202028607818629402556142035015561641808196579861339102705317304586772127414811041793804766140481645627654405653135165446126422561760663088826055399476704289796308831514261413370369093756272194181654483069886619691443472799779976823831842464235777500573350251596524328809771170543985810554692942424638997916835037562323706117932037341210393464535378058627305586272741141059034626074944951369253443857667720902157259509604865712328951187574729212224306153499940620841320462946106953430562421543622699450060797276828778076094130882032458417685946773882544179941427618653559119797742952263091343506304311367168417283308175703009432556037657269052281498945971475392416749277040073987382627956853620838456257988387233296233852227817520600345930601717989961461041033520639983498808685022240304877346885870938820046561994349600396800883355178209918150062115354923272510008501617890408513041962714334070405428904404156311170032550932744077369491324181876663153376665777641390529223910623672232411064885048100813146997763477205058634447918278094340234887825244061483239652117429947113734943843693583446911965477331973307261425871440033944647599280680938618495091909225743748399047095550747797883539353280401762020616013661409132370627441569502400508654297826215551973639537795814736318031022175231867194565537109662193085574436592237721010893677492303467192260827470039607576334412133648108528080303028896540310257619721769594364732488223261726784698242809448397675517419331406321278478453226373909351555391835485685070049714274801360825166109822328609033482771081125160414460746015565974907023844387628166516400546339977995254201383164065049395579061794184434662458964096462529009420185996856345663219690190078219872805704259112434231758177795369178658060367052320096068484435251329961858012497463837643214085193434074797665498301304367790430842177712848909035599405113695924227562103558657456987658299059333178946632588216627180326744468795492351000823514868053578433585785396482963672310542458406218341902470666304432903421365272945059289203514097747673744724995301153003065123197679135334613067833855283435078785358272859171786239745701408369897008719574425211646049940528092819351483154362928937610741456827506836964705753028434739511548748604468847669420298864177544880943674654525647385133969498386496277148524890456966249122144768517640898562092231219657952584014468487065368826778320950143992787717374600259236305935714938256501980040950355557457774789566993449924419866778357439459103102180000665978390720252152707316510060445920926331921697009512897704852558112526794028589978184738783561907053375278801190535959435686886432976511405882212706714115030288256227590657514008321729551070712491401177126998582997903673235502754254499147108009645471354285422513214497536669686782874968080040274713099708761155118614256102383861361598537258064237392837690512696806102715356474222144820148679361660099024922318385196899902193921115187596142692755638157056557905570145974648097311279616028132214558427510516210867061597453062896849516390385918198698661051546274783963864966203807264999437371931060923693415986621453726760785994076724180591797712945620979473577295594968162319449750201255779014249887396179962120331454176362972471738834974139447683091253795503910097119019619720746047461417379370674063428951823513221000929668146681661047676858011730232300549622349893772792178956200251341074402665808420755471362141349426900695093537695486882012765010853945196251191925738543463578539893524515979763226736332258396364204488673567444029264760919194372074187510738105901735890147730970288274893538187180724617236793674316075343175730617175983085366412397159377835411370728871738126547013442711587215546951569651608760748748840251389641801938071461095585877955343549549715041021099537722877919652298064889007553824773246393336320145040406601691091275123580964657743645835152977866034338202367986986971362069804548309611260266575316841432217126106402136793933283343973484977679750688253331115230463695666350417973968242514308942264656902921981464644932403459136063165365138207599578963142030307602707319256449924755373369070472019666793714020866150217283000252152522906324232982333570490907707741825312843006123021403726073475765437281613149560554998538472791115109824144880273474864584391016367915326332447125067469880485510021950065127767572623230528337006006658684659655404297846228375923457525052099155982581291165975795667141385017576042615856612842048624264793354154389270986742338276325823296038798939499627795021091288293299159734918394369823032709507519324385692728648738295008472506751791266887952580225222678166759891300593744662190060192596053825914680197662330785794634075400458424422673635091578924597086473087006007093888555398545568525582864793887462885160374693685977898121039071217976838617069402525121727728261918997575575817737100557319003728831729374478324694136753706999125848624152950364640542248277731826174467998047094639723817991627188793653156722559634384941691149875335764398669414583915053736681299733853839669287677303630302951824029964549989655626348895757890635512598942511224964681962664511640003904935511909457657667955509790444357736823018704876347724922690526610757805338298421490315607197882974015087281071202104392763366445561537134158230064265348725834386307306294660677516337124076335049472276766674785556760659556540275993491034246966103167231086344948841595151908227110275083873654803110336833468717153795955552278372577624724318767062532122978759144802480057346616964588281010437879024608439768609540349498482000115234494600445288757592985755618139880635855157362292223482347196167991352473365278053366585750412944542277567318859589059488582282673936844993945073344909515017125401106352344937846961227741751920631567358874890745944346470432458454563088193863311755951316836660109452790781479906169360589677448087926552697974487391567991580296798028665624892634117469153443681087427161327061573520846263432721073165165896237707168172483872188997549335550892133506547918495320557128861903175287663042213150867322316330181297287033416626178399109819650237907060293724948475281522379538095956124766009780564502267199999224131450945316019730708297787033811160913896988229564651836210514619557627577109631881755062546880554061180136277763667578198391669073447253199818360117039778610727826553143979504818642329873109677080944728637157568889413410481934980754038293493518945760336587096602747376700334700345783816579816250949932240777628136711137977193204849633218167048925160673093573541065625281015395107707442190478940517606820717552915359885987829918120849902369513393052872412582767846627057013540273266581025476465812986001121965960280525614304971364353496665670495208790515242427135020903023291973191898310324373057208576458727951423024535017851410990311735835709312821830720973703893558433186665912054867718747368593513502047499502790751204950708625122392389669486608953336299712383164424133144576089184237768787155781925098005145672207166083881808908026734388337982259954962633166778119716244328371033726655720400209980710858796710788915783073629808834997710553154621143242724088501417155129964695958088307403114962051782478366254967916763833895719816175248414981972140566843196526228787613802009122771355783022828179426951011222957748199527567941847263203486024475012611782528839263453029272239103511815573538546410293025108164894411946339002304169013825661523942081287570748363920732464640720461324130305188142843493561792573194931576631543500844033858463816857559493352794745283586882034639079158010123127771839391328246416665705726510469894050432017946108929988552406310858482797516736688747403116283770983801546223463738992523968240772937697222769807485813676427102063782856412369571299886612310645436124201574748281103078644962827275565806574540011952874535927076588319548482197286778792497114102843856426721954019589659870573373432298946916276674966438561610876589932624607520650277410427693228423949707441019530066043346182483181136085347719197640032376712280916444501713587372755335746490204740900316358266340612580113279830218334221005939007240512822778156739153374392227782102987995954504302060640491958693806945859532003809522459168321152558223735775690285142883842559648572792791525047129115916851197626422941950991766458253646575904192571757980081054608362877768213432943166823822466606034121352196360843324866469809683689295153646652400764143695139320945224347271024282639592421385169843145476141446016088937445133755345719186305177934482525978402157109421863367621804334049193283536179396731844606785983905479671976380237438958608330714902955027296618895727574489035813736610433010593185775646021710638807365236799026149967665951024788883313155132800035025914867867808093667549201974755591960189515308463912896352609536399983459515813043505197260718694025957874450831495593865653422685092791073852052790485828014530810606721526139787910363821827478000948811451161627201534180595666842586291973371220877200584857737345147869334051966006600849749437649270878271552614450499743697791689383571425287582568517852527687852500977261341952752051114933062224775389254215829204433247438191063456092340742273111020050512082385598291596288077010559310348130159231535686730559198246037856763664363129185214237136232611847280405861104751608858831567876200280648936826869848941773632412389916044981157405926223925612499195930483073119655683384035385897469561409795456764677069077556734138590612791290767610398794245977414708380939145137824093842626839071670894020478234211388460350483804418769636539766044077281304304169946752025392475270295599343253830965308913267064692929745433507710652030456329967485689763333785342915863844453011727859308003340629701806969951873441374181394669960440989136389424479636197942781378464738918495260439610862051140626483243858891694745517041344705178548944570812208099155013091749298959297592416475588637775744067662457073460276036270907584872857803847928966756774502655944637288596829253039149921820447899338516567163523779994067527194319574110215578800904425828904084112012853072818999207672822651211491079793967532381335815747323497645742566247101833006906031835988732102497266780606911062502578229106128810640942499855002367478336674759751845699843564516403457510884573546137746511092582771622750041000990481245989893150978294784751808079136670832200452145886135667925329415650215476942690430068329678362703009286437112677146808980681283825680600369756712623600438299263377682297476622895464194931994923381594267008855159549431372888385994760184885632705841898050139885523508268578183611477978409967352564577874441600059168624986128373806860166729230428077650863507237265459926174161797100783327039246077628820790845950736707996585076250308569723784517205944655772068057270565518451620317614570533703869773895291028168842502881306527132332411021500976571833215445900907200930139814760349814643501703582316256670594160800882456857847960407237991702261871802810722095376027842619603493020588732515995489682915671996954969176700187056012780156675133064251113689662418155760009980794686350404267582765627306864091989067669899834123125510837882183817568257067527670317000978819733326702977539524730483614636728389297308161280044465585236723950223218913619938595129637374696401226072910538288955120280641134996139479480931453635351354557062250552598761116045608199677733763824507171099183088638998519113467624545086485814297493928712527002303909220733161450608832123025109806253495843165785666725384386939632072526062903628338573743692748957279766082744643720278480197293208283142234838974846171905526048592177305565353681778501492388729068766494660545556623888463280581794295142604688074345648199907892431176370658717235183604615976796980051511232398997743227104061178420585821636110076814010076727302831352887934795900627068106522262102672723746322902979889517314270479613688600822903302185946146772417370634559555624161631335338071459761847738561281265163110990079651327080282710697631478661808582409598504249576444026913297770777174947499686198010030779006334340956397337592710554170785914278565231643219364609134226367378297763423806306483575371949670038648720159691253457306867529613725928112096480589469935851547786949644760074383240504092884347477295371757645814434618318774209886624086952428613873039829325637674213820739226004954230759789498681869753670562991601261541086945483913052256174798870748239663352812375138713968035437665161883040882313117287322940768754794442287018460514617061062242490442930364078529917935243478728237177874545337632731926447782635053001103625106287494657714174973533278162668598228242714833378987899440314235246138924264403579194649657451571671310185278945292438538739269526660652942140123021357365218747652091551857850652716098813991262725023079208358855358742853560023868206312263690226765870226032245607251539344204661581068532926822743872106943708365270560529837594960327904207452704959514241952605696958106537359215481671243698021455155355311732546402843919522453141434825044259388180172155910550319578508073690930253134870637659042294024738578800157737925021127508859613933120459384696840243831414568690516247097775988627683958251464771347485414595434145575317686288670190274095954057237847373984382758552012438737585342454180651068532338547989047839357717390599247903510209522113363454783503336626638590076279856715097525603679414982073485838619323902928583481923596049893095163975799828009354608805006736475253650861181712081492437275853502050796575490001171974746504974462103919851698714106248643078595427238327504535297960815192092823367874460416578694791054025575013760739552856093628453016744318776871181631819572405638205461924008848706489316032554954997434499047784496788849591709179415328759454472963503236677349828379968804077443591844184273598871444143486212988520131091405199742365825254450257983422280957666559068394475224663168622198894296222292728965527594993959186645428206419625432626627901791020577816218642076587262269539710490069577440771838758790632873945902583921546304779865637536865025418002332563200748337400019507467709018411393349843235231856230002452197768132750918347198140687310535124468103576253987834019101918194005596202870485996321380955793173540892007908333592256763769729089540834969941723652404978784284492262952331860012739384297983984400767289306245886923342485841782534925458360663425798657447214873542755268300237468966142728159074212683621089921961261194640788608830889249780104371185652565669220818602411655876348956538896632679837456496606553150302194634009707632333561359087379227865153283591990621896687420092624879949535910102048047201119200444657783269565884787170864165230657362521711451479458659176510106926509992514215776187008251357574590676829422191111294493511286888663083183718812051673729598559251999385818248218740294395043305934095408057791409986074764772812634016284497379839036909333929565184816305129542761091748299701837186174540436071076528010666857308062714970982652385570345486441042205684929767530171941334864403042126346218745939637787108393833411676976915291647214967914116871408705827995306339666327009795966600715124921644940935030562347351825091218214374242730291882113444009611387335721782323392821970296273573576873936689830635733992661976949644028281747595625980519434110043882263346170821176323498398830351961423315002509550434364073594035188402794816796864466131459207444972935195733754919199291631041570528706882375329693109785307514495560617495176530887315026916675764419236354560823918964634366929477754075185880105861496032215205850132589118010861421043149871825857763695799846507161823533504401007177044218754202213847883298774228637077434614742907255057831652768535346005291879251914349587635588347640274594122412772293108548942244921084918648951770377838442275167587996297494368791401514499776450110876863223257218452646767061119368805853266032462515794039086670674964475191898077168509983240850520069908586319796428919900478973471704330368034255734523640289343113856878040036715974543688997375738605108735733512246609480768338704547633268737188113081525315458344864207145870824095482501195276383190114338532419713406964334478405663678902786264884135801412207214743747044523750433704523130972119241149722419666332149924445832104256499970903046726923267649696180852213698255042779902385176406493520769335121269019095161230695880717359141120167788144484603961364265619234848599725477713647382915446797416794556078724734895241664953416309277420540288493126588134983783898550774443555274587080376150160508369899268420310406622286389379670514294700577692580176591384860424305058757106956571322411891481210656138075653708372664615274741864714127546084656763345315373827123559228426271737734204879618862281399020205052657675135108961398590723266952263273121876343752800742476722880878236450105239310027859711780749330288648191998442829603934668474076081955505998356089637133797920005233550849085149941871765734426214068498172075027226221083004254345752585643946893171703729046651221222118862556519199240538715858834145487672417475798409483470485029860804273972463690687478984064336457633541849616118628620378305373870690139260028056257928693743790733051638289940230594198245837164414842728228606994768484230035662692727310720737905784248163084716636187733517971212545044934812872194603076893557049334073006513128513181373555880527409375153454818200383106234191955240605376229164133312421639423867080017107929027782451230513547624038193435820650099682808813169831510929398381787971274265745676569047857525914343312727219007721911542857325668312515674928984962999766242523035146778816263930136741143622663393632030939409117705219961391918098862609552678842005413153126075866590898081219789545197237694530601455693374399523909419356918291517923328042319599129641804457675044878448465463676577831658588679216703767742298324387481382375964794708846946024749686671511537565813006186817719545140224418224892340387444773488463395735951848540300079475024212274308348489265661644423977108921340545266389239758140610291177946077505065025840902382205967135274312656489488656651136995003138356505499781772268799911387733375367630367033005332351367940288228892563084414284234448400618624097027282800578060948184306405484655466867996746479396633219409622508346434383246007482311247613825956436735578439809721968838188206070930757837933416435218724048813046702032980251118366149241501321619350342921560985476886197341521609331769097053850709600780287156524863175114190850532426780905193318993187464063880477558830601088299874669369856521695439831138538363192865031007816038790992580907090128948965983563703480062249909478213873193924231377222820590980974458897945670449611031496997564421183659205207872975654758726028019789233901430339185373820323122538532204207307933847326693721986633342513765980698171526344009335239906160421935206598399916535499082524176895963076862639041387481307943225426484306977118084834447265176824450541110217982822288335937192235390395621957733634554956304554624008923552409522140568669575764815632169602622454273776164402618474777209762364686684035321834681462009749209762306015955216206742030267200481413393894575658950348614727396263086567494146133175609268606385956226891694476901993686025309960203897365672738610443079371451803595521176989961007125447405245730478429841932448482428206744756703729738897375462362956134584999218343761388151230637392584090940376758794797382078930998165281785678962124280787458570684121957169068176214305675633108320128176347732616944618205097313180483859429085532403331937662974675749267216151991011570561627303374439589240312272684049775770057791640355409033491772602010760070768765575217598940961561079349480791036530055841339613661432665011993400136989740192760998213624394037336113852719095930905341344969002611295860532831104644840604278003241487513687396942492415554007515953223837984541325945083935275453988223425365479758111269815659790870960956384587449932592876077277492494222276739711775826320957446542021030115657958146720618869632669156910522799551500566388455732984104306685488920246311248322534384825061527149135510808100270136857613371812285866737617611103741695539173878948820397820718874660740253753180770624856580782696959377629696970004981551714672926751545772167147224789266005401304298469996573875604339578260154505504778086203338740309098501701436451607936044101313036127501992241244837652392109642713166578857688995659594779813743488498440054372000189233456939049014579586898281169318073884135326826302999148282183680113877735551338393180233513147129811627325369905735648449777335662443265141603524154017795160932474916531123914945981027560171760594713253653050276613519986863379190459570436826056200323623832777601970061321939468118387678561033669421891167673551581478547976923556921557182017730418429196691014199032573753656720836750978616875163060828157245721338025429755380517018398987360344960882239712449314096629380374511165640785769907537070412268771703430435622057646358279272488795200786905756182555769031425866354197848258264365840220618601031515189315195573978044772703331794772557382343909223757693598391145101243011779193782154880571408309688368934364483957010365117233805412878518312744922491146843772735580357321198058239100525100446145330339075834894330452075285850280611199153492190415348289157573505674823972923561193961291858301736399175939091908831181828142299044782559235434296566842749325908423269814736637155504733332578374054829511662783251611552053965592635547457528468294756019118722784953609692527969824784439240811780936775988831920200504069537202806746985608445211049227181903606344475993004982010488292256378119660369657305373519999562381208627663071399070270076641164455626564216956967985108784453744102076389752837184970445875886714471038359207944993487984214745507100310627131041099252007334127610455091072484908213489929482169782795247952873501892030218521103721691677035025002666298345432598984027782481168328724882644437664587416102149425687109655199587615893862652583736119406856255656896557161628839584070422213856312762466294855671703161900216840498542076209180668585351495420894625311897668860489743941942794798811816176460989792397194829856228526328640579231085392907038913332002746913930719583796616356174969321163949609320063021713174053356678572091395137219670071899202465736694907899328156705988339917012465480785408515786484396339894089497140732235056911706179125889993438713515852691657272066728065274908959681484932203862690431468599651005989082922059779402678630948112110703084937186311278580282160088569576310168363295894815381319420522756914548381271423889084733097326854952323801323009899586478258323807234037195439696801729119215045732394687298879059099155233835960318568614136767029896354915514350659304469391707621352328613321164326391036789026453304795059018548375415976252019981390235696763315512000397523056995539994735322585906070294936295751987588116742995466775262271618067302998679472362286950041929517457199712427818166058941530779218905008963258248194551680119961884180137069093636792774470178240052284109087712922894602307614283399689323611332689247174451862392144194021923982306928192296047843931444496419711803705719351671888623333475497011930617890959433714795022316380670906222761319321615479576413154080944751477457832271642613584722310504610863518106808086793648446263188476294962617258755458779189443172572240760525336181321400827653762723067897450240138156600076911940531724375264445049282261083347052913132686608687812293820402920316342029143383986309116651756987996511017119275244703113657531729862660523801510302978180961052578611612986588640787090992449549413748343959847613495936836918269148216364778767679227342918470841684750475591459419848438492418181509740307053308780212520063149317195254631715082516988284672225237901607027001494728685673457593445598840176119552418297100904371255205529260941335669994132944650916164875863750205935095479563862760801746608846719281298495240771985165230366713804339277156454611399165352159522214205198587645223182432578108103466240185120450583504471961290252614983687474380466421579462963096227883799691790140147338756331776449119721158961867578842358036102137940625471725421688341655291276741051275805300700955101966640615139627280397828262843860716414538331638168285254475433088940588264997868916890503134592098251497066193550992521359807574094803668927416694925897238090288135243165740612086424558839764955602059789694626432967807765816004791168609025084626051834593880729458670551116755682067062291752167892644026294242572511274836043521365838102139225032539353087340367601744233627838258145291022433942999546432024902299166518671272050276975558947202600902138933075769096138964390194277957969072032790906237169389167129076187153864618462144913250611155719229381061451207555967629185922104148485659626136322954080060811686432349298329649253622786439779301344697295024395980159299932453977544955098942335478886788192451536567183818990708023405496016354206318547674732174786497631567624598258583086671388012870510201573784466918637063591356945844976970884258486766617997499494833172169907070339282182073700926018597905045883730442557098491379978200062931421718085914084470913257621299717098555333677434201480872463345512647683808715089079993455551553115464272178842438526787021003687555554948113939474498554492325618173153291780071836761208130418324139880084289280875027966239567704419648624981370732194250249323948417625727321866020462767049160474131684695273101894459653514965083392592222199267807551968138677356955333190785312824883450000971213111855281389874895558032656841101944409510888673501523522799855895044014870822944783196725819189658276997149224447909128129648081159492602043937001150576153052117651716361924595985084934556816078593927340415060018422158954970449558287297396059150043083549100421401214918962233886788654011633317658782391831842939961371492991219117773661524672455429268075451080037605676910875430164778977064836933135981035922556591321146474678410660396567755354685451558954104511748565069397204202670702677954743003429016979837269623407306167922545390661608379372320333753981253364582253293377135378464849679531463090101347529077534442080606580432847043563568773112284758269888109894204239497708103751772348280768486822727185990722104662146912441724917197450848985530522608802007035486207240485161516444675625165001831824751017354785905224674129847349573662759790536978413011223692015122241821168254625215851996676701739641899282706920108323475228179477984039636739500170707389665410398783174705720740317244203482428506198813907671409722726488875257672384307068654969789884141199709402234230249684269023943009484175597013444979937575041278155296475458446129829170241754960926885698077677682787791361346392050669822604931751626750605204712312124075369609924675886097780345011779436422927904944605853154330166211437377802810345266825783005306983727359997925768653149463421276230142361373668658991409898491910955038662247348970596899675037757373696598103300289863560805067518141304042538214619076754526990207448734389233563253359031127116324358886847720009942602165503348056251181589166256630550037560946023896806504086268008778782724360989251432980231281563335222475266079510192745778692504487227307361963677279024221135193429101063162876348336220352069533040542289266603568100263470073937835148151193228407933163072111292549158280324694906933075259263680667605301327387493374782740617080252428050661525623019377737599588969197562395988503590078370200208483243709377386784240341236654118204396048075054034520748823665824863609632883709955501792315997097876344607497294473655895533737671939695460067312886132862808820947633236437123025577492468017202639048004406077244166649940941262308280778026402437292297375594620106490464194792673833818395090498812345155382559524004364620859550374305081939085413977652376340261022621967888525013368526296011045606110322593686428158493779881556424709352482089717242998183249831794527744323125436402486666232714056295864847341537207886914206421253223812800467049474961015033439385115781231464013542001578310880013812079769109248593479939886633613471234613688308357867197107820462580305762573175789391287285044373629935534219783272914906445007948964688378509152952401781135543214382070358207720314800151803153026694979562573732065283589530189830340221022683926549265152569918701379170318149642710655307472820640354279191210052093696129379152949371175733422848143048122126882590433793865162276547323842592946797209289604958874981012292570504639656586320539967678430491589782719617371756825319615252971971948300355177469862247754920241956748220718163081272338406652074237042918582740957230159111905165043759581370824079301176218054719952213125593204426488106125938036010563346068808268914979314048657575072137332684252160841656358168530120709514768540524614399445016990924661119610020409100280556736497815372449889255253435910464384180532799135440207196557466650979806197819922760301937524987560538956335913732843956942545160675935754681340902733413978063216236337477010457375191777334364703093070134265356492801280096697262771787162142421546082404433496433120505238141232566433286874207600971872384922240193119673029738112756051939627452659045076455519586682429212581649754624874211466208824138360914180233790168805870363654824613314715604229278277111677767670919812452423375831633356537243318595903446040722240527383668916905387382413190765817045001837884669157380051858838320310476428125088978641495910561234517616950883225921051826786303570228906759308954351070908165251626749835098809346182970697421914653361277899687845750623393625901748162058867609158301727755779156037627681037605008426830265067804246739183761058525303064806238084523590854824847993150073716622812263245060191441890480345712143094089271395162273401097339872522620498732488792040072643207099395211486350248430352262136667658921454165379551373930183853320355492525927311552833111655514928326526923920682840474126669610854696650584925909161093160410007018012855949731681972370977229083795122722391486372686247922942900896105327329024770226050496191452063865589407264040017710083164638701397871680674193560196188570490585868391442596618100705403753872023275153246490651051373167786536712563776269077115387880329864287557491308394728867821942633670328902506431506590294274221247539489789948333667210005354928684459575593417777990427243491926361593359277613559572429162393958581375446304468583997946204414531895217611063303253132039280823402962573429542359382881790778614451973307226775122980976202114985706559299651640847195391638689361059229275446105494281469749972221997313073776786328794222785600905170379963140812868524112958398941012738423609883047430900015102586766720146625358923629063216939634848051189937058149466901930756780070799759441708422090567752797443764959433622588723149923833901386927744694115579614355372985415931298733118301482420278055912640376627958133803498628944773662916081372708442744947013576896713281278156175060827971561138407835740868307612571343571949441982495137266870608484782959375484599231423939947045358515337014173273794774333989905756306295541697021414625779960245439824258563947587537395288183502730959229946735620676429450749659015345963893006718340504041895341624191508472157664440141409573831131347631614869793128863579487845014755556814634814042868755899064641680922894480193593811904843543089546286325020843171015250227489347165820500825050441519065046845538961169764850621349342556727486354899674981728252557567328283634005157712574152605790673269439991756411963192955553575519859853300480980377809441851113629354413846849267790043788433503995106252013491932741945913262182358518207465198111492782247383981573738342945631905573296605351591966852523893046448437705159340097497563213995848190638232351829200596590630803200996174440043521048864050037976738907877910905476437164341199799750133093748836465515058958288694003038637098338684514877540509741432943467533755606509718266098769009962286577096124443375381456740559171807631959695536775646089730298804597725366670374733617065934547299335063416953880278505827768539847454530556368261144989669678390816631249764155995503884550033923192425091406978835880653970414414538474362780293191960050015240013377832912434863969179954290882091772410631256647651986453869526053183699262639090314945742797391200253674917463326199923797764519118214504021265115102098091864326062051724946599329180277199301298036138820464876775644259105216039613168011980328520923411459729978555251406327274760713483710036826854164930202948024828859164067198444333974310020917637325691308267479644560515124402923412289126377832541687296196471094838492167271979657806445099146120514990300553130104389159518612010605877159653828043206358682900525119277503833511861234134933185320905133331622369639603174897185834771453425824599327238283765797664610823456997409578745039095691619049259815613269450352458332634636410571088330755628782571085290719551173689943212298669474731962463078676637715246394792708349446486947123790414420636161470877532047930814821966999394781063545958910468243874499291839616911480037632193367545968075228828829742697166016307684358584342994593552371797228806861092015967906120138441592368093984927363563940492664877144534646007538575492679728647061657323760251667903427783154019108614521275582558100455483258163283201000128163593169733380504969334324767041303574816196500151931483373895888299106660735571355689811432204181942945595897309401187592767035022806403724789397143721937645198503892727898857614205919381341657840857278162003278407149089824879609861579774830358894305161459760447571139535048825216409859791669318375023029379099641335939444448504769485487092311314315179920936231478374016857753282771877093030940711945587775041430758816152115658858213289773597457620872430483458311735952076051071203010435333226524870910381705555816229938986377005576188768323644882151294039105674807347881570638926805566702605924311831665620116506962050402579094492422436638526834624932105056487119874241321469738176166809533814352656021367532228569036056516378220716651201328061819288928487557339297989119656489834408090100696796837721563139929859714095659848370545635402944612673234487823648035886947187283466966565920231367539565602448565266239576097746545596757149857080441195743584349752126588540936150991137027473536543631819091040415443354997521264694093205867481396802717049533960963446306716773807177141373535041881940188949076958597620723769815947221118530832187789560553290943394164648760195775541246529804828514372410366706246047396161397304992691504545946187192200299750367009711588668606724185714557520716630222920590113200087719984055454776221980715759557228169824179330187162926769582304961373891481386545545222022208163485196587054836286249047462557240643237058761781713064327572316745128688933787021767323382795233948711885931344583734664094450623255166891047390896262090819316899119501261221581913153232379269829483550163502225640474003212820366762959896782981067434404898499309995480569049777122687180770753981555714817060608790685740466784403527346222557804106931248841907840088512768630347330279193630813332799081320144682904071396511569384248519580211789178077994189819387011774423360267738642945847059670160916871067800711463316333644735225026624325104867092563511914147003238627608841271005108385632878926326894658264539252861476241936168473932420371318427904008883820370877641137222154800814864701789360523788517268253656380386428975381503289525286477348705694650156531495995050630301167738877495830587805369611923445041731828052038963462910967231331074572055932474026085293917874002449463033026997930263881196779590084893725466395716059480192057434120937638912017188846658778183315918215344184349901862354251099021984124086872268146643050064450740377024992145849225380390656361591177230672947811019879479467794880125704147153290020170493329482379606149127573099621276297929282328784186623058718487434106171232505905715982881280374714359327537129527797182367590985440605622670920505442193099393904024239600795748645183574368711141436077692855375255273987481740618184805132353840053275035136535378984647970821982140286831354845004876596584977982028499033978364205097166133905388813894532956983047993798986610112313863401715223112880221186841807675230883335311045402567616115970133307028686507781647171039718421073140678079229280821315152370021986584584561932134194845099552044209795922909006631215039412560301461772394666224229869671660818344901139349613442846493559650807742474695196438945204178588280811653372735838135442166965974693062191081655803780762456691383803652020647664021523445137154242597803045038900270551531562039233815308669229085905727126115542415308022163384694314090637605389914739013893756635020671628713557634438014275508027467346536212475390637650757943502224806974860095294124348489264765116968357444447877204244841875531379953270603506909689025631899476863685624052619858817019864263304337425680985161727607268171294577720441690292170827364192659758250060810626701550257406532263882175136393636296050963577819622701765681722132540236852469534348083031712725226641362173483729737408203745057103508062260656255830473070162989995202624534462140708062392412408580575236087371338816274085961581531729401411128207303549475462138124128231088300036875638376808572984815941425671265383776639961762019014095091049659252493419031487439616027809729452982109170544678241645393586779410520694122173082038816783102054896248404914785568173833058125559953123086739115863664922021802455925136386960791657318987622844704481171627186743916873194502687386226270530827692717090059432337271533792001555801685640169899054294062416377772247430975552230914110867077189035298111011331864748979125973741644225892173306411277011896037524299432000378277751967641780477285022203068172313096430286207330530962927602375344160271141585788490391893278148071120136254424247565542004936353692988729617409243843629792784529751402547743392700318576404646647812407582809258667140201690050027531051624128536002464621336254347422341561331966480917061765861941866540493804411078558106369165020350999024210649189895080188695379103665338704203351028035911276010159058067582975149117437984782644514676611641379884968265304223308823621568183034166882626979688142147975610078372618918765802336247429557215610613573972785620397166736406148589667979695689860344469955160299364945458187192706836120093489219504039551384981097351225829002508482554914195949525541718309324769950540793265299280585918155304561031275015869486431189064348428741263282230988314821232196125069287030002515626970393218209999977717207206607353277249514835909634562841349295730119260052438973672321112319589244485396669806600612272378357236681556282501728595272355304491859225624297726293803981584963939920692817784811619047737512914034745558963011056063118433908675538405302959173597676952848452443643554870555448349802780091672929540135112601781730458025756450796517444824104690017919762962316044284914426353120459279009337658409497884989185824844147210962327132078199597415400996258329511956405630955967702289186048625729732195118404227127273265654033834030563774730580292935553143794685874771623108400402737881290592639519720729652327846200461007177520104792374240193318393098925634282570719263991207769978886141128331738514208542678099598011273213328365347375984410399623501233838493459929084918151691387214186320562088458030161718685218368615988310663636915840197912746054139039785016138945996583637757312627108434662910413753800613640594824605007761245382824476131291767517613463941756024536511847268769732849574564785069733431811736294960708549684436532945399393992630576138083621259638013433402219178366401027566656778334023744270701777190155343012818943338173500239242296164240898741920569139558711428267947848385215310017751117885182038847161087641488107029361039443218837910509191918537674380759809368003608207498790564598695688089597614400794854265757030285093031778652720461466929957823266607983451951640321177572098216396049400319455086979720421460398784663726858250479113682403322439627259881841148516584619394318994862698081776096219922042187004831513580437025836214224041172140078698867699340081922713487188073020774420410089051289600937036247591623630194718178783828990986581609440852879455013892737699199960980097745360618428142274550237621037980826779971435176927093369437074965001269886231832092417661026710960569355889989778194261586881837958805055394363360145966433471357307327895009092137927508378680157836595095553477526707002811283812576592233068139168184958301849731280484069591576517022059178895812560303589559880625604644943170054316866140351343983422183037239357698390414172946890598067489786999170684475277743281941397678730190971227623370890214179818800928568740316403334972650402182711484608443061619568118368959960361186023287189789201099402823391809389397534720538074886062446690373577686571264951521318766661784505593222997982605921332545598069536282084551301000988091618911865458694167903508846461988582218727879907179632248210517844794484913626194206216607081845108097834468434924930400522696575704736657757999756984095521669665277962179877489241159760509358876728607333651890896023687047519635254309369334397540597639983768239545323317249455754541938250112643676659664892964262081209895472346411959616259985702047663982391569141353101215516964963982513305863181055810617407651381682863487342205765312571167622925476856026673087492030540904571856709389637148189003116307023706535271632354192294899816705847016866675748824421403191862894777719472185570192539135988359129199588767275131140390709692583572835453303864964090480254947749060311945412192595342885937213200467655726687255799911475670717824750472595973413680436135782950370215171057634195566495404852380132145120638761540435506032263266944438457066493779878757577627963147288326523915819835657370905502796536996890885592666140426909563666609385978835082635939804404658071726208710118043566272175175005578260765080834427964230310712586050777673505835959734989180281451185660364588882469303978348928245244992733416841607673300248279626530887035724683752479985991718689796679930091446577167683525368201111900039963716626649860355740772175733725116153314223119972881033808388037687906928075818067933881230877453644571391718779060298092357066289925437848032814395887838458057192984985100475993156896416617269566831571840806939669287940705350039964197439090397384503018574392542226857480057268700103761415635218834274341553664572034562482096198983212576548359919868504844968336721317583576178651787604607203494337054080261959343025155616913646144814532943887525365487061208033672391530959172340144565333807653089849977799459426926178601700899627400492373860640984022299376332131389638871376722716789169838920225157971016875756700718565952231780493611633319558122170722555273933338634750490232414775739169636807134885970512987656396182560670380124934306897782916886490168173759254790207543120039345342260019349326588888670776962081303426021677705150179054499138087197806153537101359121504435909875832331845549376033608277563636423975262106888734709759698284222471750319073003192708564362414058905130613342780758436147856418985070268375153859118804789629302396274623450269121003805137145024038147860057359162851219286641819089073248516983546177470520401121181198165376085035270527894117660859346927023933912433703067630467230731873456693534182191589567285147667025306746343215001951413893726252489070012778375276763095918905402429258583984509709765621487062840144917145670808102300856433410876240346109515418704421466045765268531233661941795029091114587122236309014188868943593694438836364689710109393171316743781690882605329522015250568982213341372308104834050617099197873933986208241576974710810395735077726469962427512856335550883477949957024611953247793098706222460751299306873921922811687237547066271455607304848903240044319145644613701621641051089979091926929837155999378852011006398058073285004169417308545009145180904093922949839701827583886289383798133033571354529357467691713325880132139117385468992190673753423766775578131191591108383285038539040150179195433235730228719298343988363218418193999419644505015453225029044021113172813333401430283176987645848624055223634679893030945765459081820901138962482260200225198341097719258129611632254294450508744264329959779843491933753610588197454621274150734044059302401556572538012345168656250306213879857980929784655139979250982980116171910116783469029182359092618462772887117256507741911414387164239818589078095630589470775248868942403760636634773894305914631148461553105576033394720670148908908579024601565894706440534509838736893358426667910669656161563896118905948819086328336256605792675546717030630182827108321468933644701857869609919129709782996838344160334106174839525060405081099441549128897140355359906648912308283467744549395340442181192916052907238597482231764004154585428493694304469162531572159468633765329577132234148347697142665771537938832172994969687295725724763456733876504849478764115297383927580795896814116804194695683169879117104014292777226514448018968900004404452114462060534669908231936505918075797799610145720965383622692306482081819024965357921421342356976258928841488492466216360283924298661146054266809545743375207629022724713074434007599788871447215263595346259388373686855015757490284401228885743613759398405895840698629220162982812835006832767566099506831435003618834874183760080255858057588385258511097199826719102547776457967134137946175542496939158910483603111261815100119143138871012731915243147323060247485323266148639520463564391526885447435028111085076208000504021605093632702091324472715395740474606899445324963579299874867593356796554558072980720621850936928652920087149847815497065022079500317532808775132729847202535560507271305210036969445093367039600697383093193211300763607790721941145201232919815248870852393574207381753542059629306024229737771219428977701543376900286723600965522864573238581240735361341450343406216543742473646010962794679071245745930002690201590254643814482250277730321426388841949117241450403684120464574261888607060342954560279770155879373781433107076269384899163337455470414606797007415596387722507564143274673625852282930809814550560526352909489408466329629410348532016162451032565515539670779301336893505855419929704449306916467230754235884202002771895184514655042965080739241541701543329330756311312310854279447105827407338400642053843089491465574836946468302103620365386125663918062644213208520070701063317135039772695248774434407273069017366495041278754635756057727272167719976162545136735541973587923287292619722873938380159449657497721158614993753122597448013030941791632200860163529673547732476851975817669580156815895447784246671432195768446410850684084883947877412598006078854779901440484297795519224831907196535195860113352675823591378110562640658671904836116709683195285337585017327245017682065063199463496699660403291975649905165816898284537625308376324446175664259116179173242172938636912876606932038203215019806364324771886909471400092621827030825458143929375901961368976365278422841099363142439534485828972490763206714509086432462345128878208164079385226297671781006386260414346620969564965894706252269842204762624051069657605822576120600727459743951331619128318577234476080598030633666761678066190678261589885761003644872888048941287269905993485279088384747074278826300281521896873969519161473042793460770627278917512734966361253140492998471755373252751394997706044928783591973261938074804479670244099796374933448306720204197284072107007041495100719000207684177258586592768173946978143845668900419231358547509456299371518786471003437046433125914834997765456327618775639285342908517832929344030820792379043466067352883557052086591350923785247438319604757165523948839567759789274887548907831809553645331122699488485503921529338640755476754505813626611361390979687860075919469913262429736592815003459376776054117095800125035059457575783361390905417155723423373229159761256218541759879235085490346041504404760172380697749011416504560607469486711172285908504829289448804934885315229075472656274714130466420571537259447469216636019457544588143509479280661957215338958626520058536604122159321653408164821929160517229149427678127926089429827290609075620448124425908495639986147629669529929867797768737746065566766630957728866937008868291941213687356732453113902779821551039874379274899573851838795194264973016706843264501408496301720844892925115293992137011178781553511568726863621545571498907801289516560207032174747240047883275139512447532504604123866607612339788746495223293608063447795825012258312401212012774002108108583729957223185506719349674117278690786474206324395057379712748406588531019893511870817560575101447815891972724988504285390935738923908971126233610494049350700332199446704094125215280957568966825055784245447969560920310477875044673772480207557863289131735154740763214342337815485093960852927800999656262506474347159254761165465448379164614709253428579452575991345075307505573842845700643272291110249672579900100285317402960691345488081673689096217600623053164383595189292806355286674740430305402594061431339967679302515146177123509181732567639715270547898984313795455973323867495785505513544349037671144016289073513617274667296052272008716746450623934574903683851159019596133888922308124339650767380762947053929797539696201169704478937279099562963927356830619341938055937231543355619558910159622459726566914758582330705396446215104382345056954248655729294202183014878673439596002259318631894474452190039616682144404489621233991911288179440386975510815454084095333917221286820819390322839102225002424916722292354779973598687400701368785252470643984328032749548331625404129802408608556065742020536298085248292290927036228213645668818980524055051053542320691426706569075971113282165510591823321089316229604169891342668895836761395198196010452850071970561264939442973875266083699160968291732183617007010440882603664207401338909785385203878741171712298922800751272426238824948459256255403489558320881592890570373359645104595281222042055999339681193219561256252935042039433203106068567503031712851864985356878169464351899033765657430500971736739903981285272928856534176372657365114767635863596279765085572630080752005904305475706400563719991619919627825179472220211334345156322977587609640296170243689600150289987791084584143776486261923301639635772483127932901043880008948592390328117010918031505995229440821527025112081316778555238606365430119408482463979873270172229977980791394291487177893350177855915819686009195223130493723911552457415020703520070487877987432003844007941310742063404505284670366572757619024031032237352488360540454400015475729982842513888426429494226561505430888781077508519815701158515006685761596008312507049722302759938253506899713946872304449640328357274392977052991282849554074103370167294738874744258758309392791528023681871128595082125440873846879221359978956144868172243540456421550274448060654150830161742300645684625101283008834404945127462509162412072061835845852791417019182002456323923857724650750286405328883890901396495586407948047502538709128122729448015418097707736562442585783768832005921207265334582546357537424691399735429882287458148516085025591014081339867573524650340715678587749309471097036056803695516493287027917243292325026597248832587834699097645458181141879604478404860880346815807950507101894037807329870348269588849610738126843156212288973266858810578793488761544379672898232245690308596902119742914645578533942269570011794471613491635082324936301380789200552881960691729020138003989834794823306714501480666694682934071443875276198270083510052403006481462407452899392607579472591727237848492213133914588653760707006674241618601853329740824812804660056585184082258563128275821710323689086353684943504847819932761199807753877269780230470836293669070808271861398571702563458299198064162984745968790962682873122289659371285734559310060819117134620557372531037681186221092013304429646613505050818815272490320075313217800070112580155999372342452256243455044681256605707841441167710819928315862487899104210287258476041991223745385030648881535981258685448338812689081285834860166188725636009366457233762295030390893254515260257641652470524966459932508901426579442308314896067000657814784164582240967214702654357930853426100748735261128551949749216320925717161727815599450739669205712657062524147737313415745728266512760631699567119409777161878812112841569104685206219353829939554873073618076843267812339372206329746606320957865572343076678061407224237128984987628893901409677954201084772329608728836070815908252788396529204815461370065077606871567455603719515226365580362938769666734159114665534452294005198644381543527060116086440788859039902820294932278298209004610722437006200455127485405130197312164744744391333443882793980747346517636773589084616195352985420125334380736293605613846591000450422364952898357657010107095851888389428039800250074972970759794519088901895036762920660114033461013735065588620525552529054439303227178108590277986606970635153322201319426885158161349760450009230357769308247036522504141646800514401623906634112936351822583641501114838497221946461640154158817509353215171662073048699924112490618027387007443037820809850423492538123576608337872758041912188612541937911524032957493999929589575976583093965686501128310769164186444287158645362701534874056613892858302623028572417435016884942072014279520005514141719650276566104352096873744584671334305380282606005724352699952523152760697428607394021255761388549554042492826132664935228261564915452715645406280223978258338090492828456894966665909896911542236993394912695898775575401943967964230773353126450749621291307239410904384071573693196708428538831473159994938421263051407916384610303685671140375003815303536239332240936976365625012274464045524276966585060210150782911698815986486557521135267398214805185656008385580693602165936762608967501530145652865095241825868703673054659036433908896867496486680682169757650314765112226908992044047423568703723174206595595148246715752182327222848509537363788131482145004713751739897215381974584510625455015047153035076330826737250676530964890406030224137535244621451269895726442260993351994914695786486162255534768423568560177017533942227689737748973500978410557034616577311402386806642452955819683366553987788147902862214253697063462307810373873178141199563909690348678960095219406463870108384774418252698218917716439743800431033003353606543651866946786560066141311189277829349702579496679237999758108103279117925843050585661723619290500747873596926430878874783769697404658625052950016044535932839159153757158565747976648355453746081822895609532302715462891060995332345274790084084153267167446464339953061977406387458981061619015832283907112623303190932609436000877115946552010874302748179956972779493875627956425728299426237566219971714722296181752364168779174418239259286175678170128361309241170800977158678957185945253063859649652672869661372278059486374299852249456891634636569072537203142713205252499631408960706248445220484288816592170371272621019313206291479366938855881399322862824062619518255347904680417545813880155823322414367179104794072856033919087902969237845916432550845470546093626848903825321937296879824741728540806739564040147803430218626538235038794442478899554082301881665042583817851484841768328915775573238713619936317285004812624805070060221359594713886909815123020970004517898656110192920645933279210747407420458465714679971425055190399454475206907804538237840906220168992845381986148400550501029728287556190497724396439954851961248480613804968545159064329221389165582230557539416916139075032943659227894374885362765189828120962923858128119079682505479359476700746757574857292026084027815322756546673065060715635501311268945546302526115720344132937476709430536978103246628266550715099092453272209683072647653366753227387340494367938432347646139044047766998597423526956090376574965194366807455423981933355672037357152305323581627615373231148617763269786691162914355275662914304392430412160377221289385581540525047714609759491869168997307338211681715379305622189567300534132282361025535038651590310991231415945786621782099841937275597035133119511061823578811126079538155260085616801542396057475059078050284142804322159789543097310417517150570945920632204359490356158971766667729473708092857560549397458632728854735760667146138281944760826606874472155353252176909011058630681113568515866244268320901184161748501743527776467974625198447032202200848909463492126510221280860504506810435340890472753127303969838577236987134662639385515904712805163696313798109430264059567045514207007158450242026861325844265965700989953320374624880137059895235038387954239540702710036368343931495525325302453112980941060238921144959333090947923041624313407999760727156881063264232769364013517485119541441956727477663755588176931323706989655668076069025586848279152299324739148502357135364925540814729172988857542397223861664520193904893562941695774268994978098593858977676316784730454580258379018606554175137329434171525534990068982564936960892916503621434945731781253125714640831351400095395618718301778626182096526498791432563456195782303264012702691311637197797900046459556871810707828214706759118669290122142460458664315537034973616120563905524888791976302418247985327442357710243017192279245439851688146050105654999461182974494789698591271062248209567963712429301674782799632001621031502364734542762549667744690589008623499571011809804622199825946695977467090722324739154358238410974534187994301315733360574008036340923622814367286301894267304970295367217951513821026504040669876349020440127313099624347041116588035022890666313599732157228169260691777768300673338833567329127994434346124963414248673044430654391262213855636160985098141332749201407796733294512988372560278397698375699563594009748901710762513612843331310652605073952051738189533851506216566148398629454977083583478471193900332759671006936119118689820242722333297644838333269394676243306949688229485984300490492789402915755594709199328930273988911867244382349649907684200514259623216779078352529912479179656317939554369795919021451916400250882115568377702866073076813465419338413692309287418979355806510959975588398532727930315319761143534373622971977455459070306757169321849887451349273473103686014801680347683520900790552557753334581955453374416123813759995523514086742807546468632649573854883287461434338739785810259857286047603255780467646135308259244949182511548903370304422596839077811907327800586680539026205106272598216533274960245598813853425959565410759810122156149117802395110836739382411905473429522694283779586962898158015935636813002457685360515256120887946848045033632357621360978667008446782094877979122690676943063794180490828123234532468563115259665613379017241365485577271494049359897714810788980959652219012400646492779585304728949758351647593567343311596956681326382503034614267257628461749728901888957867472406228313958588811652121275972242733358358799687294205453306214665789778341628375309169118934762594028882314348291082515741348169461893803371215956156428072775414713754314787204683387791535512486871645751866232229887689535561276292936987768810018189183382743961187961791755692104786026585892857458810492796295555996810970141436900102977622826368010329501097589757106514560185670351461628276183375476876740154140248582652247140834124238536918069230101894110964236829197262886672271054418147606061584087412064743653233745618484369270284987487622218364802198474900908659030397780049897257731431676324725751260552442676170433263547962669794529372990813895366098250069209536407683951611626417963546917146428724671135204253084302828823074082348722816665925175994939093744460369332529452106247794502480983559724463653568289055971674587794657552998026868251752281856223888884089329824416985069717839086959614644370715779669597396546290774408876280829062780747925575233301721524695605318735459949062505115005744260794615362492729332433608925062998221045404918845805998835917451872318979719588941133791920204793498160036963422928139434732539738830773763262214395060086428331079988243791046827749698311714343092776248599378669630736275234086077270269892693243515761774921549905873891139390011815193777996458288442459766816493232687713564502807541311751012544692450176465870328818459910963387012336586245575774264584524277672382072069483303763477582173800894944934592216922651161075287181719668508078837766570782766785608857298217954626524383901976523525009767524067605428316796657838043279306589235672757293353617287524916412129675773915060988487569522579005361805085973250595105258890610565277844025792931662231326908699396523247207908360610583039789539124561617104990039508628711162158201257216920819198048215099882687610416310196154979000550362136724013074398017185125654842773942974547861227846068084887160680865551628828972954234523499108024887197802663600383338451487209172829523649500935315558781695091100174543779835344569254396528746868700677702193951712494603598138990129824059915100924213395168110138493782551027912216848163849586607664629465074777257171574571626309258140332625772007200739293540041891677283369609645961502606998829177868963090758651269752613324988620512164383521551222598913030634587886350287602397062219207439063593899175023178658118706269769146336070745637150210183175028802270103272736519751384387943434302686213971204339163005263067636642995057512542757517057770771475376327107617732481514017607318891984348909283062866635688229420375702527144553888602786299444020322361509841152062085589607962600585218510253644566794035336224520521058778967006576905963551072633271098793959738571126856457172938669527598074785557152190705783117712680109842542183344164797931371950932451689510206862554137410658979071933627868270290498280147617041385930413990432812833304128998624079051857194755493662785316573220404389128855185406772658933495277981417852247834938995317311025531814387329329104580895718111534422821754647956636588000242114706708533474403127750132080549518409962221445904908787430462832580507877670839754182239543060711437934778401224018557913023245932209469496332787080800047357593543391113530447418319738903484345264052379331432339450684828132242337908238324979575277476183076976325953894680473130211823443292028425097990329048238592565764030835848184867364934553192756123588687904287872246646779358432531952121149729309979555476973865950042234793792618085651004028434696918360083912053241638213736862387777285174532101550853485130195565479528539175545951797327951250282164724491862109834468229555672077883600063023044271847932050958024898479880573139526558215570785703228195279667396972804546447299829146608460751933747336318254002757386224583455591381976907046713094785323906349821129094154398583145462082389325750887084412933373800774292462255156560168225563247469710038162287725562232594736614552338196619245337445902396599368942493410520136434518398545895969523585039676312016469204607858513508574320816398966829209110605463654191902758627327465679289860602628831319199361511682556976915966760998945293856593159704665485931770727569793775581038653527783859680832486289289195714497321752863344747882854558332666534067552914865854336216409723612295497848707087734598486528532957731509786093352133213814492744404681564340122785952543891271026212447424677379635346373843304031984415669343712468551415199510754863734579903829012721942742374884012568309528841856282467703653169536755815023965297664046649812300385120970645837972115317027444829136178238093145682662799409757876671270343151129698845122107659839269491456437756979214258423775473819093634507271301478589762772015354878300435444033676110917358673738876095259526398266785734399608310367908282065292294989111050073210554913161115922838043111011832113164797474440923716827052865070262134493138766719994356217408837765167418836637440049226250848283371093753781014016160678363936825823125027800756798219410402698619280738498755566352952961031860124864145440913132209648386202479712645035348388715042823485236476816668141961589213176289680251160044485214408919827408788804597716538773100132506965247406312978057987969925686641548094906534851497552248227083256664576361002865145921331003126394115034497988535667326842130437082222130720718482960982057044399110361860151918564767952676394543007009528896086723551247069729312840384795410493686406500477753073683520581395404516037410424549150131167044971751410127973429447414807545923346484980080127344578999009318196858972510323547450102376699125338303310575390485522558761477995406055605156832008150626058763529510570836777383517853093053005875247536794778325626507628196235895782807100161442410223104479328314002780947977967159881338257945266942108674704021513305108834650411136304099005728714557489102253160966023491577246587242943522395593140928978677546981479186763980988066107796395356138067438557870376367668223919191734918642773140307013693808126844217092966396473359445195285373813017252949808013364179901634671047402573808504625945740347896029941421276430005486639920015748179064642055738083130123972636408399223065920083410756299565093259351885649629353840199153049032399285376609035989437311176566915717760518896474951865953470768922158143833942401435487886659872003071039069403539928145292583345666536969496951455379520900408984233615352887962038528788015610636904038131144341429039265013869967903632207996074759098724993678613937865078749665806937837506455327323504830589626022661976800200968787396088765744450611843676705338940629973637740197755826677372865466819054966052397291524711642985054689466789446856001116272079401901050468330379549981998816386006211418124795392336892871004253652516013164283697196267289973294062153918061587574771534136532026486244636857002678700712792496871468682691884199613083403464396588530965174914802446896233021530006033299744475096372961299703185343654115887292112225142964850393192715247705803535978111695519099056127036932468943135166307993589660018632420766451084577898710411339626488355384735159114788403789728033726597813865996196150685186834760885664279755003787118521034144745359894105277334243904746866972096560199699229191579299118459216274685745512795869650021290177318134904899513259593416697962357886991686264823537180838307684033703555633562106341818996347798613372491238938844021478146282884089616322346766794317177591320177841092331944264433067671396862402221260529200219689214406473276078492886083364523542470004236687836805762487478493388336974967729831785290281351138679885309353918143792005994758814599902348350312572899583135233988604463656426359200469836614247048995457922001650666086823546305679941488933718942767185018104331438250508004892670581533359886866428425511042973140637990064252345388464198847960706549433764341192429880964960184095498248073351424160714038884139500703820165092880551908935059844547557005189571869405050657164211875517841475156909040706244437368731163017287542534967741263871694906186479380536960248651509040430004738200825797009602518582872404022637262123164389773930478572857259358599859257230257805519464586475517315608801756080872832023344769706496729614360268528494314402400123087968703907506677710583491335322595833863676901414416047003664114001126910418754293959300506109433152491182773740464898410845725374387169354655024453268881354630897933327298954917102343023863885382713821578491257041856347452256975666824156959743121608416091768688231942555307775611768446788380398369656530722927539253495664041787587142006885652670389567261261346407175627881375707363232054606793552530449831620300009135987389632361927990417554431653421861008592022598189299785539880560507839324755297338560291080255599507865084046664886857322952582034021501276880750004948599717518906862830860240468220348184406122885113831795150971249448408838647748947143016948175680557614279658205626447264817757219080911968203744839006203176366929953470777538040494538438694605016507384655715567587582587288557026963391658179180175520248220319412697225971927121684144511860238755142994333521109881452789308801299949750550627632352142090858769410740983866270929870277451161310314535926196555704895110403757876028530592748390365960549794969664513177966954894230412119724617217325741481136426950749728694233364094654562456515901838879043861122962356049693260617322181094372915048430959025347538095117125630962517191997087186723442056350253795152907081970503723447153377215196737204342553635492287018775576548503162263772859338424540463945799684461887924321969156869108558980387964637433063817324000800905796525501591779971188660108643371130620731983709792547769175411016157406840704262720160456434645837247943870634733232352564642517024158825808256768522897780519973347405786219355487352732771169319722738349207122885710469717709116161686236753387733482440168951757464223508428989435625629212004432764062102101384155954992999248906102697186203977658562404476312835608269912930451969769783797161234687320031718999453662410877165423614366011178624867764982482671766190195015798988325609098284806569914923280143480222871370599985963215033987618149533624304604302850918951870909615580772922446751499476526537311443410932212046140257355852257437659048632041592651268319169163767711121701934969550592924509166755459426399282606548470485357373850423055376148123344758905484418379131491701136594315361572458928355521709492478993084524545131923081574860465189610649821967747936012102593080524294726786819928323305577224489200870925842297144153614643744278872983031801936374198077824124110960397722807798250526049187975233404028300484005886478137995792775350146947003507641160283514651941131026574814636642467639102600173253733146055914064753602382802053780395187432314505815581387160207363853501106170575788835418755044617596485942700245876068417023817865056634895826829992855438606077058980134878419091114659709619047566611374916900332718301810656456246548143148779141419101210488832041733180693096856032348386548737684012313109542816685746574292942892464540589920335623689902880973591209533519932863926077430841909897868655680782187982949122050535337887576337133706338513229265485753776223773875578692186385614903892886319858494316038657583086640350484899907024169677887505969614920406953541655842154286771500616980013930007276028832998371548333173762610846723927455425584314850609570090570971384946807433193229361281144581154826503078295003133448935570734872630980168475825476660864775092530380528229050571056799292088614613403797643811498858186262805955106287364740352740468924347211610180817811371674932864058273252712893845213960150729982392906579829635081042381082567278330932497853929648347342023667618013213538287523207807971885804861938028284523669672807292499798289252975664000699941669008688320412948295363999021974022274391767377357704987643434892781931324712830180112974900037356025235854336549449759023332071599400861141943366194279185191018859398480314731159423203084063981883318637047773068644197831048119331472468373102951206036294221623541409317762981786971236675137058164910778404717317955678044883867352985788754932958875155251738399554539507839503608600729841772038847680952763800288106904887102990329999917542955730507240459438244940133435585173329548469933809877382248553262825504484520580958512650423494210074393176803526495118327678621398432583193181735824145289708878982055487836352848240731130841422736213136472264928194167987049954122436073684666424553388501240758087689089248714714494766160775605513054344834361603456069760072131844304928730237702798646818368048529600651193668093561567677257674362684102542390117597710568782153350751946677336321329603293471642675245485333773991390480397881514761432613330844359397315685854793908062037413460446713475830440032462827864883137739275781461106905004280177247231542509157152133126387039799379845610384284867031015709615893110633921095807649585693478329509028736983033176468464099072553882923800156279467729926205826410896644013038180958681831497224786148938260300862884151992721879861375107722360145964652997576781759115003043413595081757554336092662651790154101842947401853085878933155904181304698966248642885049308762712507311712822547111215000657820664260815887363430020407815966186857408376975415148058118002472980796066117202568729621324734255684606015950449648442409292868454883343847872769412584681634618424445635635042758710545570147859068977784495196945475323551385818623310880096742379953441034993683376876383888310044806888857982487762154642337523746745646844949427390025771737381006420823565456771960392215815860928156564602320214262249171258939708518748870501086278127148366220120143172342975641049319729869183216912865262897114489372358460170897394784808583613914609681059620083962283519596625393772356626645670711376979835202700720421960350111702700936626356395272325970880820992840868031565639003964942098609656143020321293837802436154016095272299028870758653598307599100443218252080556481128786759398356080941266061973607047674544594647267903282575623642894813885286094914550880628633547089657715791118768909321513921431109769682845353413249563215122724367010058423828774643794779746507937193666446139196011125168062252692109996377529219748581626900365313190138764076943851141192647382638094023240543466650005200329388521374510818392744497765158651684688123558365782804663673378226605323390918258083115207996456917650110326394689414256602357798593738530392158929596765337447489317955229831099306044422126338117755121833084111229271815558188812767859283687141679466616996882526499668011841450703615931394718945511296014560579941251462609529959676372565442644204307525676167082865444735580461189443962872841057958158437781067543595327333208301534804816446868768992374098660953945101236526137317553845525763305560522881051090475349331257000356419932766478105562945362718296549490540028826505495415636146526716699845533450858441585046047876544700421794619891082735450434953328215764054595111320002617942303081311564060736294758835822754691716711584485432334994423734146702104290026180227947864144976764877640180954339010922256576424937441583670632250674660312770169226286942548694301269528396771374413144667439991047772259666626167892458922038024633059924566013329628574326283414729611330114491070622534946680854228035788470962911886619715808826093385757505161038575171551566722551736609023870822012957172863198590576874192408471147391947215222580709105284130905043537284429444405408880586280812745877227742616251417992182071898330923604481210776600531246459318996152178307734067317311757772496553628461185639380972060713401431843958035882325585336880539356398690849633692360885763724617235381069696778025235150580384827579453324483497323360619522131372557554973017857399473185743447209308871174296927259116704972860868678972024889238455428462227299640588809955757593302229911826108280491365432325897407833824098931077647062627038163190395783878421296187796414103212302974989177533231866573741514219742268077996538441114281845510252058093471982774603372009680070259317507988881034399235251102656179123898007512639862660504407442435847351435726937327753956009455419383510118475696389695115496672065162044662967187241117566597815002299419940360198240085661264267834214440368684529807647735389049118487121500895590915457735382912853021148469801237184788139819611705645853357828897348838629044301150205297391169361615157520614940929538784413437989289682010274565138804907726504260283670149374970869705494276873640925702755679429953679753257803559621046930733571911894127736080153038263051200576949855335567144752199643927742495114906094490092851958093728390042881776553111730574570939231914900978406808272574315713188139430869354971024648347330101602663050738645057563991585786425732646120561785309340417154371245620975163868243615167339279071119763716869031341468997183298963683164604672123167213833645447958714394544931893086034722317916599538932305040473251584034071760981385780327690156731378342219839820090028006244646739185726494426652415089250469423457973141991260588904009677866943839320967445962113788632724959331795370580919767089103310315513216887271855797586210344325755624204279657634143414426960794271116192471897601684687402932345172811392112420107548370009221260989224345309945853661078117613276981903300990051050137333810552287650442275338101271345172132314894542262602637652734532462169623532820876416132688826325084504908098017519740470665645124771438220751534732268571414409207417673242835215005464738968659326013387583281576026961509565509222868794036220904238767806124145425585305825226537412077026921906328725260041805438750179698895692775267379129550160318869959194298912318371051838624572276235838892423682120725868269154622721062581256120880103627276928568567965394707573926076213712075861994213845052630236023423933705446653099614322567513216376395502686604730017765330627407480120017473169722372768955603609407756461813891858937671697643975255590638526566130818896669668969409874959281109241938665525803663241761517657865934948912377431625980672861783458105051598157115929026070368026203121782185367814177107498047225507862526927546280368537927425795167944048112734462125732557260219202326628571259619635399138903533076070801752991518578521380523874142121611453910608938681622263564578557960716032526738796497138777635162661849416992908827797523717216015992335645635286804322921299747346635648546642506862279264800461088996921381251839804572015263924198015158014471323002261348458225310677836583270413712132483857392828406227896375770127330207660225278745304402682485240165863962932150946804081289469208602303165232165648957177268152462704193566494273429534071103115201654157926924807318827886949040785137777252273092344315944447490421179219689684470403985803089660364692676788439508910146618727313057504079029139022366859218435729800453951772315844651142793211817257331569864085354410050005406121332392978275092788468573102359185524684428690300128361515613936732204429308133891623832616255405486841955675954927213553958977303200502124676995532565064169642082741660195047282194370665396518589153405564965783886630880844834917440222782996235071715831459231765017561690070341111031199891823709140485339194953861710161130918892833112834845391379214213397306310547674213609642253481437462949069825191856204071564956733607857426130298454155928738816577192439778013082199897820058758833721066274552692833110892208548977479163655634315415883342216759470613557528852120833439887416451167668793875403069026730154503693525974937990581934790523314868117173176689171209896352797433711575074106044603719654183829670942955380630664376508052851372137313501460723489198191611259664662496513820557066734710650697999948195310133226902592913761293571753551664007999537319130203224715294631738769412665650212397944840259001163424876781359650036611683434587852356151344379115625516552214767206025518654865017406661323528558256768836815705991837688439910551318081615811869242060650521261014457243458383711933305289765245539214366167927185458792280313346599275685612683399047162596359227362051732172233235175070937881312901992084489013837719306473101051920407414135983081187596174543197182473540022878046474301039189281937114689314823160266112722312691028682067102660846320333659916578650950049321686236383353942880573390247569298569130148519287018285839527024405476198976358298924738076823408742416238739719682747627371722864503401398553836777634332801626294088891870267107108376996184100036687250002287566557999277208892999806418406579531466431866534595900729083492319868773967366030231495760323428272161990070815913926138879823311498052447348264478735841827454575837849454510006843282661529782082822356170606710165963647006310538173605149938621721696258051177627841116055724004915816126477721855429914558708232304717354162112938011764208117069968943462237884045032209606916744847015319955180963683276757745223407071150504968262819060942479514503787870649417630839472688285472897150555682699856326859366726478004947868260722909384124748516912248614249865382412373491820484678798723923161723569624872227735724755916481231514565977961321268285310159582982632197426122189050695269979456931194426254349207407728845660121202458921602739941920831805620588408686676347981179640661210568508138255363392755499075347721251592027599299407512858583028909648879606891924979243039784401753290587151616273459061563984630207028848584068973321381468509201753381584916488790994506035061968467787000457746988752788256119447776557807756645618534349406322952779642297818397368644348052587777390967470742293070974248489506631757843424241404591216058203176188457092899043339003389165700381432033444582680159293137644135400203907935203714937460929829473670355522704605010403376450193625456215691926608868359267546452149085481824160498770450004139102013262662873024195951001593197804156083910362266744107879142856218214049776625781681445087775934054998067965859932393167088694935250959180153671876290813947398052532169936357303096025896551857523187953920646336265681901508912969459306338260051185025319985462598991474335388090817886699403072357654655773346228257553566586976180051004445369474245451647076415320879456497601663267662168685888421433858835326238887008686882894356459984840822536130992015115284694359528269167048282036702268830886731230429679734097137065596468730919449847061092210490309833794790037650939692119571343721707904010793312581215167805742112039566588590083576944756242093311522113499523215015926235907441887353861997470996041002067741039743271370501490001765289322081073112220220576578264053686210832714274842138624642708713149834624096158065007643018008534622534193002284053189875607673156229372212010730262559612268373097693485822698362383560869490768782727995239296887676714012560699921574781301916687809759794757735210414080677829071789799174124536452240036076850408869129940592374827074018116631609717917090221021152910380657029466329052255743767683231413057435655001667151656928539573054817404275285908786544251559033222182873493894778114286555821503600061189316406697684380405285866567026770233839880561061871316781918812748320210400230117540327234116740796599913502701949665461363514379926987034501717618717385374337848514071000385946401430256026296238520731259131699377066571780655822027064734773422044913575183320510814263665403807144722352059609546568912080405778010650520455441177165376886780803370046083866751881608363173839501692823762227442183123325751751792000882010733875311185915219592182272939436586998458969855161192656946452427047108772504614968964526151642135541628806724793528440578825109869894526835318306303421857935564518751710403084872200162041430731072736500109396363876320542959961166707750287824024664365296837423905802024854183896972416603369268054891371433129000769999497086061655255470912232393479682451938523305153028062550530698332538877767904858847707151498408119323700672689713506133507676250338104943829738664565923277955177961336769491350393672273793665837503188122828789221515768351429522467795534748627641926789432590815688425642535257243858791180468293187033709306909952600676345738454350123707026633043370819208371286905402104525963592358044375703880542596030307898614697718189139529544721504167627762129454923545990605338261889898266726154326890303897264382880324356344079505406720359563996508487007801078279236143301647684148836318266926564277728746442949595337123300312335209403198347220980389072597875593651737902196277912700363996975195650252845652013609621221891272159289270829131491447284811427127282242836908246350197875467096001723127693239323230801017147607711048041741484635839534963053073673462324065213296163685235619530467066090457909512162920782956233307408779890777527754033298961862178938801130237675782034970049634550036557045647924253967272136469063202570871944675767366337154632692794898267298367747890667784958608648851541465756977246940873082442277974803771011783047658984700554185394775741220951506283414057923127515849816986907800678204966688127328577189668617098663633278034896204711201472067678042512848181248217809989190853540488222737145572920507041965570058441442565451672115447334977399604316358969133737225468661632426448199880114217494843534161266118941451095757216981978580492818493590696676457202237395711814470843343202928396597751324998409041555461864685184553153511440620693885432705545489239091739981425691014350587586926022184081629260990421263789215060873505480184048021662039820526836531579081623530130466559804152252835308969333141617244601900740169760243694101465857920285891742535452407981943620434324646603672324184074748775379220959027282558968315080327289133027672721958493436490056337924222594557323361458142740003909033611154039570201863373902042858780515195837864679760520617777860635007362229214491898043076632700839557640343616102761839371562160607353888818893636996634766646573542510881901089151986906181729842531637765849624517222767259569615108322821689623277967552678655663008507489473537686532252573250588580024823951404345511427044171572995208825537558841020038270658136955645039096127371413409899106450278019065973439673508103421492733376029180998905117605114853006750727975493147093190993132156516195989840322235106491684553622377611217755427368805665131258681057223917658214654894786397777839036357418889000710951806800048175546698491202168425859034304895134470835703117231704982421650549302804354292512616408127086606430276885518576387875099294658013857759901578293046847159550584985293260856319502096729905731371734657744952083641756340435576419885250814649132452618536514067774288067374867249164070952349688987879888723450208757608477738703095652798648025911632303820204915520092482076108407646934974779969851306837843004143472858702611243518593177650636312086828202543122060720023485666139951648893916581727813960915048761973190686168217908886926611714672104477826000349069374253355245740523848054469517171471718864219782326407775817778111471981029321622715043396792249970134316771939767903473442757441393349031917157412124170663692533808862746481844243340873719837680307560412276853349860163294506471266060245518596696006906174236894381239097640257585021821902840777192796941829601142162528014358144465847123408820921646573272340229369907437998452739821984145805394453834722811963738244231200180057314569353830718842481887721134581506523582784865332150920035109747157998565484333699108479899603147455642182466479447438791156378047607037601545084763617291236566112080310894108609222455284479454659569606419268588680166397823216187312999624452888426719596525290189940760631442319631046173068252823578145162571457831368181010001108264204601939004670119871420529022086295098226684953579771654849783246812187270993686571563677324334447082693623312691201956351315211867734999273081635421146924870748513131251995739434592601548439275779559306557763097774035496501169023764134057421768225558459010290801872324863894384403668003870706244721840889136805989945565762499875622681590402138630053832895357843178908245175008889241255834882122430165070532388740737908335665973537135160178383456561967347894465407430874984044790903314513857409202756498917143785530189427842795213843772572997070177411054504307500046699598041361172927074197350449979961444477332634623296862494459784385104875320437867518402899781666702008740373987620863194792643471441588496091238436750999756047627939388890803751260671651646239033454488708080528721631833493163207447489403965350363231152182121392933403615561290847039544765827330154774337114509336684180618246910976799002433986924785115502864650841554358388480309741172157924127046787892306535404070726062186973350646905086459615239266327464136701074594963104782165705729526592502836876218758796805390449712333932302578954753809784479484156256374849795042289122560966440436620776467973622507914386200658921187362870755045230241967353015741010595886379158174449386940126158127809216142094895226447429175248205460935133541704464683129738722463746646247017904785718552505945388183489783515007404534989021360305818623470681437070825759147341706140909685541542362164644551190195682853392685461079298936520145520265918507265462921322606119135806377249431561467884377209138361856257558850958760008480549760558378787689136679950612281122221787186329442535620219676135731302018606292733719076066422280925987848159807018460230258898798780077236385888622729982547959426387774470619390952541859800579475790489116515967249954423499365471106678822132169853077762109077780045011808583219120968610913380085789217671880031977154811636851623167005043059241491703168789365957768761870366032498307168953762061100493033557463639168125040098906207516348646889920069471151936186243304273948393596206453497555149354399952703600830943444343178214655425809092630415311313516812375365770767769324991888151887469543494588932118222260719891014676909130599878135536929847203822215124279408202441045789603362120995643891369835617223036746594892129163901833601010777199006251681363383915507145439119215009511425396889902604719951125915927818730108960302590980440958675595210123885289262009735817214010192989258926787595265282716148898326914896226969098606705117679185964904374426035917388614790174359207016865641154088244427031872261795668478695109533272365173835426922450019051280692360391135934786310651461260784779937559222394151779808687162695689749432496517579349230605978463578838053288014848927076082159100549081612174423255628030525652177574152094147133193472952017888426695287295492589775541553113966079005684909100595331293693762379753262155985380526161370115387736535112795377650619574479242434110097107491169135323661721390639406741861243189400107061588552503475232770392959481058181835867587932304829728393694723951778869018134666728574176528360198077214689136113652193590256040881291051717462104874913574405008599740999993255433209058064522580208581356295507142345569909389036365766407090998464505158768774857852753762491013209562808409401708005279861259580629318496947812663532057305713122515070950920738337040859106267674556725689198074276668267390008186500863636647874500564847273504055340795417119642666884413602628216889226224979631856624454035631302870596542825629742057816178488491880566001830896643481527882236393994836810872918140094057268961888868689138908606798739589530471823154633374463332018578923880597153277401676208541110616247233936446611874858034054185814269054271917711145757226202891282060977173286172534376156109925563954943568705729356560387653228731491363004114055170935599407750681278395965342683717967070033391805801493269583398330993269120944955756536513834381466859550728153751721575518840343419016602978130762704234829339830848819537096368747695715918357992183696562525719369020034877591721096384156740116143150039494314275950972845406750924271563853627148493096756807717999389344409759805880048320967696309667989510342322659198149691855863081066294506166799611436290597326297967689277627467992196325017655426402155737351975123323299711771405430240475532241549642301345402468706028369143271378160323663065046257930365465284884674862113640805675596504959226512322222755608294731228963382686584888610960011458063664606427438466975064469251952881062114230059823188558864977493468364689129725729776869848289132506966463383444091897577985558429396180062678487794439165961097796365112299223717864772543935765059449309858033233375890943265708550510035320611460602485561701593376725981045406817687467674545308257041145010222021082549132796072168022110444426133361894023735607538592858091373976225810092017607877709435089813311705240812572128256824549987920893831545002784608684582816195836302908879501218770127449467017633808476656613444738843204804268984634236959586523761931207144287584607723288604205893346212798304613863994955569922187224026692605867645707869445476506908760213241006727443890201607222800003942774566868109990902716467077724725315868100122350309142321938448847907371270238648132618278517345001863216816051984733458354878524555386999196091748890822135080571262734274717137418852841805460614920976859678654683481525369468615540293458809881502662883493334002323245360636051078344271973234890386609921036178888016589360347320219119812729595514065858962128559312638837078379041465486117540679087413093016547507458946239219452063716797836846683885694838439972930042954535228588428063230845921309985829203404200074699606118431200091898550950982153485252714350132842894933788463533178891189278576547058437659843201644644427329174683481718079574776656718975980627943936999810529137865351391976133560423232349387934629955611585055434369143962479236819644065201498548030117491194503750257434082278860705954219101737760791173261981181182422066211487325695787115076847548353193446548417069761013159909233028697840116842513578687193221056805568596135940257454227925434800789600839825449610134080030170424605190901993497956419912868925724131298631179423033751175558210133195428437813722859495616821789615972121569197430520679443192259618634367947881282082324078678309094185298556282034317687227510110365818987302393507454449074864814583376884521864658869675723418638531763933350982900833151441539534256288582464066313425612603080883390043664866176682139145859259024661161650845069733979358366370428301090282296439044493089835326774414522217008834388035975911408936564781375115245739641735683486651908814904152567453448577362513005982155979521652976157036716112543557969960436850164271866457460897048436602137582030600604403802099217052894854752373228625027197386494179934345005825796487270105070849466907367322651082785972727820609600184473820696301667229951249207591427640136854781870714862172164226295247874812238861443875595306657411856989680922575274970770240940931175787495466423397391173722105046635241749841495427890546306003684340878944766274158704315105883677140506776922174442035179299321887591439916374499523015566917389277280248535588085704215177975461129089196397771116645755109705858456594337957006341045284968741111526083375556179641164856688703948079832583729209740553470354697142411500813897766082006463757495060778315889145366478996639096156617406371609818056445033530770114547887450218358917166859529446905787683098049799948541528452422152802289003008602620699776235857570243627163380447336206142173102264607260308624687622002252227511361514745838460754415207269662541733925983495610943434583716647117855647699768960202975362424452059782660416585112783578116466797423323176530557414731414523092496584374829029397122872651685339764811378468974510056884818601854523588119230790481466082292074258903469629032012727082649282256960048226761990115680788476235028725459112699479744182377574409674449620117545790889298798436035752956469038443725832010593573980570026110082280932005207531465275479999685146600922681535165527175994335731236038614094195431719100385656911833691658941576109774912533505531358492828269815227593248263500407843692844015061513459766259757474297241897101023801192546979884208352902036807835179765544965973149520647991609345611556217962904047478366017116124682413771630471633261140555615236067314832513083207471529770047340422751221115434675166219192130733738072823372776882775115759363855134731666136367808359430509243020334654643678798891667192637819058513165502802033615617818041376835535909283631565365708075065190714494797438489587477609384444412716814256887206531035664876131266483214739795659482589502144116078132286637420566051059697743599004894673270708476620297716085822038313587042879223658873178434734717750934150671559286882596097074875005758403901866972141100812165383450158699795259887992818005288671898316395423385802951813472640681459184947204660260908285365180906887650260175834662413852320328413478351539768644812782026849512337675324943784764741166279542416531989294659879594607009242348664244805710500186048542763731219086977343066334244864620831048806470080710779767678284489854067227404366061815432441943429041315420842496902896721569369508345493028762787635333636824992810704556394560247381732913645319319567242165524931749749869664588609533306325229135145426989587010478167295942235520173368042155284084647701046949378707311247001331333860687938356814020756987855544249877995607349353446401793942519248836032924993468640303795915250594823005796415365909616753698798589622738781710118409765451855219693773983102615137907994581421800543916392557552483716698995585480754818715088255040161632394575219689307915863522445021805151495931411681221494100790864579954883208215520227159943238894115885991468623530934985668648064232944547294755354295980861323786835894317943610056987951690474773138043127093630712357659669252858842536006788052077159970178521606711014205836064644015017510342181326749955450186368281953694505745758901649380822273339457165764011504542741675932733810324939755584881403313898870974134143878080129021416154236368033744293117710967971329832351222743842263099416485670198630219573800089458209686705793295577102058703016971484784249235021461916390493213483402076812648209479845865498984909387013547107520733524507108922155750931156491889529106422612728750354106258737102918263408716166028212574560201091089436682402799322379414869475293573956101633603711965651149183555085944043309283833687918292377311989982134815743356598183469806615772219358385778120066215848668577744509330657401810993853866614425037014347609217583673671924719638497045012104286906858247771304257702855964352296210873896438294836080688281894662572626022545466315832164368184419319475758860496847984423150877449274131170191283333240630893195226737705057248468319838442774887692049512860860046904018852367886258424806393105607426607168614291307028944817375185941551378561565927884481991177178112305338931699704079084963258711311587633264019349849149722773626080908829665942231838269545444660948834803484806738754601706904817887644049002635592396079922637688792920548090274086177603971132782552488282983403545409016790849540106179200507752952306701939871750050902196323105083444628501364669168600116061968996614668293500212531163216654366594289698530496116517109193487263105321263906668470851489656175509726726004091191165459877222844438790361039895404102883946330059141608105508603088093412616744094197379369761527457254652030565111992144591653116120989626369970985122617424322562314236279155123015110768726300724590108554095447522503064696137459099958025969478848306213314257272377924640170076636038940507728937417809729589269005130220975835348602931146567303344630735410494364990901177760936122245798880111717084710333037462568060423341658690594356285855208277658663364451583671898899253918945626055980225052545960022817938539791914558497045207112168363955353127576376353558661740900867674001175703610933964770705291237162147901130841500738552026039885794595216778457296066117505615323485014521984413605721086726707394201932577777629027299618292039459787647324236266700428512437410682746675272945350009039339178548142847229642755530287762656770453400435816665988930146518602751642495758035881480093349607142328243414953443386291122685270117485299121395009638778741710184802884244836895742887101295978672145506874831649898192527627368694324012649645680431858401661439386795076582886042330837548957071612241590745931858762294007286766438245232301717951361810695720428309128455560753781354885035320631342498590397588043779979734614179923368295006728874564558908153967606627109327487964320875225384106455980827418331727405834769502314288701645552527935622662045305183471668282850343378048279793655802671090045802422853724705977730875675880633985343401381430643482713608703277997580017457498588094464139128770191638109564304966402447098460081490038159318716448426328519144534862221663158995543904973445562246077601132829844378898578182042911875903809887462656862993734495064783578695700543750157118156795634393456906776576119235488295754999877887427083352627293430206067005294209001544870551876654311050029079305501505273777820629036733804145008921598552599525667164627984789532290724401701520978117913914901348721501401440705188494853155986217076647239776871212451222855372482016252735043016993198708166854569367332215705118961204163470340519760984565145745647801355757936826585821292071287692534187779362232557739284104335036446605298331599878987617468291451047201416799711327761948612378557740725821532602540858577808156863379407759050216820326083795934205987221803982785618656941556951374194795056359644618139649753247017945945726743412341811164680432471212544238802815704518095075639954996412772827089865469854687582117755353060954243413904480228002324809544718669520974186987314726227982648435697589685977721867454679497437416779086373516760519758119486386283561038770728011141528192279498131575191138240669893184892779608198907656193545339045529252694146536805884647730941018148005964807781822179291565160185076871921380400685432115460793906472082887230269547911340792499681729593860940450491690085938008979559065130398921095165648055017123501905988697801142244511963746073052359765417138605818122988560404819661406699321250697482304774036369808306843285187384940644140386062746580610576911249489157957087044897537629834267203950999683262240701320242239039796182831899259827412674507444949752846405027300388742980076499750832803194122579616187639367406754373050685385114888771110598794261449018837014309880248515735349759529127236068851993424248771711623035806191349968827316288883582717041606314707329869594539639823704105305429500849644778377093806136674790969032927759191945780226027722395270112156302101986123952492362148330865049867022501257974316832980997486631360179151384220085824778013178806518428122463562786898922329681100651210981831146793271507625920107693045443357471236184304968326710825815490704167094178008209366769026194748832184410707794394600748244068664698996753687398171534358566125891243306899827899116216198084342738071617144490857646183622189040008024284195476299373389560096232106106014174747885990664467870405985796858600247846727864801336015508404611099207041140095977480128285479437249335638350031753146436096180113698284348391815037185577036946007470785001756255472995915707491982691871628129589833038220998191250695493259778304862131391549136217681502400937765196146395161556294652323369254824361458799462041231572304359566044494289959465073756559260003732607765904993224368409036168598655175204576465714633959766691341219039385632178900309789472541653956362394703207316717714484245689688037829767705456343261456119492615157598583294032100984323433977822250838958730996260221019696648803881001984210287896892017589908684406659733810982952264242684592732396787823189985214811182816253066855125382371799627481351382256220988703294664240984557086668915443697426848823397310602070468926869366116914358416478918399161334798357285821133310506417704221903777059607430526935879076284615691388078184562201531290433384261267160273988570067634136325400084959999599368739033990345965152184580292153791801296934490209398009214621092358556008667426716885167364097020745691963028635085435345151353321447003390506157715773044197601254090053778029332056968929148550496936542439275547924499901419851215573395509121116848580343766044220462992859198266425599729594331396549494904574467480969459287807030983048564554547880534642123012160914560044839559193306281628554047525145179641795881418399835797868843355453292636249449058563210993324306485161674337440800169420870215055901438389426312804256396154498008567453984682698035685605882618179956933252897277211442243874853430217802380839450191615583345298511299016688619346738669917375156946145058653087630686591619809972188553749243481438768128320036047022142973914231890171104280966903796049586333673006311871735151752366166988370625279161878695702343189628184466955233960909555961716667555791999385215084447453860024205160165656073626365980895230859242112884911115690968720701682702369951650831904520029414539932763558206083422955502539069783801684817153947217896901604684019545962006678638693736413698606090219028563209407320230069197671868589501366897143244196281155816684732067842379298077539605298902518670062067319005609237898331442902899017789662664552489934194731923806227010985131147782346409176744271705522003392969505409233053990412801590141815180467930825074540536941811538448863588373685437860840024514917682602376360206084871012223799400266361087755938081064983360430449207844051813431590473209259944548661453217939659577549362289124939187312570085088356673024351614160470624147768099455761382297898704628800346108251509170315550137702191100970284269954909887255712147449934941579733385054454411246446570554980906859121570023517428053741126411243714793213667501272872743475838458251179037808631868888494375853176392586886845405852301878306386425333436977477231609049317192146767122744630647877354213144321288268031788188036329405459045747509968039117139650340169979852839508974202232805357734816094827264885957338409284283717406121544572741219519041333115181519449117932468701918552565299910648246839767883297172167382810510384389160419148925199948440863888259864036804509356696881274054845394498745567026542212113315803938489604688788925598067468822825331456561667027135502392806067519169514133029536163106711928383350388688567955447488698566526072165225631540838389076658029188372570888822367252901179417665252132304073683559400156687413203658548700550326269746674369869144830192074269161630766670497807327244092221190486106463282377779826459110859290907149698855466960939538966724354583526619951874127464446099305402927337377865908934997342105428419961006576678562522985474817479395961042232411272840789571749459795482362722956490372617999815884226271913089522312775407684946278265126152230682290280140402177373043026089433775567702497603493505322173768027118617953961457737657518554541761422957647838541999432576441953089018717555825564241158170872207591576798423128542703277307311427999839071410825227690040672556118848431188681294890785882796649451252689519943792384959565414541344582602161871763225436768564402345916608273624914781894390361458299403295905269210015460776678303385006974641432628011576430974783836273252448353850086956065734575981622736240475621394790000145109689207683887867497387877972833919049802055205181540043834321549699607996367148476728893349523636361017933907768244233046991729900237219794978823567532739639945941555011643624514597794381238388828747314509532680592973162372053859345614608017965400802575218564592109447442586211128392826513821626041470997780051759279069059932861484840485246616419515795051840668182609686398259594718110987733599580228579763389127066204850825572720270522425213342773126683173210620408469832950014135019205340437897082170077412057277027273017179953908907884613244627902141339203283754862777703423615923910683406521653144899520391610819446396504802481736366169892043473410835544932641143533261666494617178533410361095558196994465081976239803533466036040359057998826051892001692946131379929137336251386288890780368125601135980273459811670671218784291039540095340238556517248133694763938331580895828332359251857551928497055525749760877907098824793372048976579612512318712304593245105737820015388190598505861195017519400406799499428376984768875277214967028637007557923937055119178920074685145808084253256188172599368322574524890216627308766415328786186671663137704837605670264592373282469623605758993863558614332474179854448746637918780544638460936524177414134381689772224437175993577140586661592225355855662190892228881278629616611856074487670537511473733432575031684931045503416391524463849200891181822921891350659300195054042032678435318548655666122830400227859529074582173559625232944108154372464697150312972706259697471319120629080236075325186722761663189179292939172248706781255357824909944721392958222251380943667062256699304449229575673098234077259335591675716756991146262103996794070014749074587618669984301463552347544469245181300832855980786812780882328796861691038476094651315800981755149206204301894222810301462760639248599874020099614038185568967438115060555190996690262231915174966324187720219509849298605172777543286993856030672799736928921736668832278190642885621025796997712682108135701894439543685153475473281788050930635578860251044440171436816827753567342141804786982664440117310700840486956991597716577179974914832172876195713463351290439705148842202729686606302661231348396593860375451902272457117069760797929514933162422950086914510511315730042026037712988556198445573470226756242996974462418820729381852241529047126239408902924880063583464142088792471583122321188902579009287053705997103010716628197448821119839324523658433881533450808349641626551571812618539749149763636972247471752803605143870347142628915066512835513668878402801023260897400525290706475278695898899752252884069348620911435199050985130910416009634376281744806747794660625760911196802782498257634043102011829115114495011305040146055322118148801445418108080285466788709410864945547834088907197712769613174977849181104111604880806506798400396004239801693376618119704426126645457975645659842333900238910895712463342429563005498581465038988488959039359026153998811629300212454565498062967158288921539097980572074816949224787752433091534733549246108447599482631370091535298639399242375962760701843597846370266972138482256334679215682172648359845337188663790502274128083050638968916749728008884457473568361977525799763364105024572606112882202904071382425715203866324826681698650221740329191022349798864904896218795243638910172688187735826698179716402159728431148522019095199691521400879950559881609965127486834787527253276110610801295712086367673029264487448733374888610155610138761568034688995330797740842050361656909850602727161047153590896227355296945235585006673592132550538137626094336638399795016732462518446974466751392212955024244580932290510164049094691878458388292803903067914649742680809396556538074393437089155655557478104260432978472540685578861037070783336519318688903688336568400933140704481182708801213879362280012768563659297214858648461467200402327731644469349486091441101081497015756224221900190920138498215988792741508456026101703001014655198746705698736881547592056546481962079983407716346583719520813943462356680464158585697514169320244182125428167118523379300753084950371335913965435743292740584172381266536063403481104577219658078108299154719361360606868337136231468404043618466966219945742645970269714506175653369780802928686669304305978712539264597324631222566368569488916214191186373457629582552798383803703772932628401779169481906608113673119769234644539135888699800201076993424465030497338993959058168269112121433690287744895313702970552628134068051307801832577858730171641966958884957773992923196937942219576384758590788415173798758809509885842092152951932731263231684921755650876609825662314620284632076960070986519001812002754956241471712952679214204475912070666952640468879135145255425981178467098246321357261515771831476704789393031175992885874135958385782652973818216329002196766603597495421390691241788631926656959848819575165672617207957076460397096022858543954846319785938165123110579428299608274832472680101324886034911536098683363034213533406432843475424147957022368108453499346244250807063696132625408118755529779437258731204413622734432717464598585235044863070540722478205771755114632649737735122576929284960914318878093362844339138615509311822087195677906624193773579270071638229041924186809368648854588984321606920308393675669531681192559606712257736258688478112327558797960667720567347043474697127578428389045358493958645402251560323058145921468023005567085242722922888799391199708421799818782608805155617415507578893241891275616934023278255251711602048235200212494592420140120634984883405795681295532560264864713165470647038094452810732898957062658919168128202102001417095735237647810136231671256038972175532984290129976501009004269222018886322332203690252979880090379251361352882626733802183436708465978222562357061041985245329396679454828019898656028968714263781421451536623853670480768885067767651128279952252262798606956392886822821947915912429098835371259634868455735816235170458602616785878473057543583161789914943252570458465706983114089307705688283409344124626400416836608795497158164467920531894791874311219682053940822201536953683570760214034597340238127495145050381356124814408803163809333906254899111428516167834701843819101602044080130110033602086735450515042630629506435198565343952417398681950926259501823636989990298891761649967090562246509796988866236942782616614060372410019602714761025311108556813875351343465997037510689549861482068611730908894310118447005999108773877500972643544836774842729805154323550110680788998838177010245791164889795019290527064289998008024432780128202863234853381600886149516732152906909905650643826382201710878451990616744957204938896885009785945498144090907543107037265218500923270255033410137234433962562772994505167913738288288657962000656800591242319321382976652136003604453830079479552153443822155138347792760044974954307294422956142312156516614032283354636745099330686985255118635074843169330183262774719764160232553634613560199023896291597103714065289643156262241474623904457351453230550026490498264219027479757840758961237454623592752980036689134454151886907094042867884883756234094416359411113189438080392269447348453828360334640206583209664911774163753973675538078191780778472574246589560829713526244667228691771916190802458095796245668071260125313076796196106609197079374315288513576274477723859197545097278875615950654530248031499304525766203940700373074678071759621502989184762028165180547188821084395260225787774268443529900553527215859161962147999883630914945054426500888510054255121493527396993255895362464642213279463541145648822482707989262946502583674694794710892462700973773857720437912463380569836217495549576583868783863928450563143734680327912058255267981485907093387956954171756693746916319399868923445730742826078910465011114961052889399585845962286254770258457834899348939107219271932446535970050065671914195238114100974112058011446019541353431652663855138842929470721712403385591386140095700286053659003449517205373747684012063218731949460039150229628184621994442605306368756128926534042767082590479210836571278111667483332327670530289363235108881779823649664573810124085591474568102259300159483709122616553815028434893072215725094785641526520642540267180374076166565207727175510637571181089956633844202025211143474490704559114538505229906948566975680872652574274779087195239899462855401737487340503507601178493426241968999361698566064580865476263979197802249489260241247855792945983903654560601858884464653833313384044587531305513703576734066009552484203532505310380378722225177830352977945732402691851220277501092921718402694674628756854994080040602059190645885052016976374538494714184803655228874930573370323251080156216092298350759171935742667733979668633116540029930417657083649908434111441891416302613405776060464285103989298933229549779867710415466940512894675886981084354259620910836090435409714817310392277146952891962065812777471794037356947735892342649015964908065526099225276831735289838075465876336848351783815957389462944905862761051129508489269506920164431840057770557994096943539170947367818527066862756546854269000480066193389067252787096527137944989715530249262495057432900038838226817641528057696567590843489795603219669073132167360345848022609852090502451228582898279661308022676782082242288652222356113977523505182998817455510282646827779025146332420739445322529484238435097283581522513064254964187622650543528334856386136524941518435545400528035439884638934969783496497185201779157406460019742874881245039946892043313687206231423779717538824617074148657177328145450584871090592766028750327872153933501924938800654033026878141696742418366408223407153828816789493370680225854626697714040888277986956314847578239457817212333274482382635920440548426839064511732939324671181868764607301994346624607274641264395830935094176688669298798305828958992365123127559706546455905806564234178123671219590175522429201669664148733149384739967936642802063907286732095978509194719808868060976686348106986034067293989776932504247375204971251226904792095887174991474708573195302430343350569561048402608409098912610637937995573291529167626956179410683890474388970996130067196209923247636388817896418946845725239298707266301422155585623029768670542102811557739297979617415515476836045846110005348980084274888518256461358261845948529125939892155422945431579574500932331274928484020860324509433661154710740816753708625975693628875246760962496265360215601983209518080397413938621761215202941115889504601917233931524214931430061415547042378066845540475711871774058268492251429343692773996302308964760654244408983407523704958669471170829770931703264655068370566970747906389630143106416950624640633590637083577535916534452663994680174390671213662799935403507955080285194037369552246883038022115234438715029687836670021239459458073430625684675100392287690884995910512154151982526658810526744086147797926587661871874180419781360109427631637987201209628055330477647776068191954579591327111804092860524297477917226416910481682869628888204743643480274939721483370084632126932305403983915617974369041293900484444599800099374642273241747911184500324545664685535230582181236658836984510276947920655248476092085665388865748199102304307537027179911278514442129226850118952132279187510718862608489629977796212477361398070041907348225480100801365309958600566661111599130720778614848165296654649394916820142223579956133928354992493843791974156253876512825604745419798451038488966524916426305999533056133804302837088002263360068332541377674153658976447930642473599499514346838149364788997851755124344744778849957488458134580887379474120481398494667937539974657062207530942899662684705810507501677283054579498381254295075798575116811685442755604616365781561407393709789877799584518232631804169366999786435192744007667722850115742967058862059991841365474028319318561587587943998524932228822336418939653857038174953540352092237007344998717771091563015063190266969091932782344950388466918352877771427170701898618140080933263428963484374264039933478752839352342687627248095864357293458206777015464556416424648761843289846395562283619948552578971795692451018367437009891141083194035002449758894658440862727835814891592384907371236881155072117353505509067706425855128679839127811507879760536881216522430724865900874616810124881684313691659190602799019806148464497204656231511780889693365282328786271717145260572582391751381190681636067008322139452718532755700197527737066665829712206183430260921758234279898985156012165477058828168445661982461972578284817568374855021561470314274973205200857243771971117946731023661753074602543773237875877420890186152949685174840948002639024144468374513703894250952921168149190518650020399527685803676359464346850664250825777087326855894890378431325286119090186108875444430487749119660611972444246080756332765771622588692444667637421370773393748828655695320094083281157813410539707869363743993531842229612300280893336892595228846574149217146443100259669898137907126842735512690518183631354680495033093841445989461655829252661413605888895439017608110167564561138043421668332652255131252003772060942096399573876725751006918172694862562973570475381514689102420528584316287776106916510068767133517204603000275026319427965623024706892146131489889642603300134023038687486222457086917765720962433607684472089303096341840442425180357965139723092988634138391059106222741552158212994443452768574898995220384270539593027490391312086620401939921638317415384858974313032027246400406649133865404727498847945916310948488816725450657522979293720535555869997850073021229860842186097004683119703058709178118543701325264320887588965669603953288246651613731170204278797032110199693901513944422966656088800043295416817408971797785758956445699452790006725165031121979147061962155976678127337541640688909490453530932899121498845916151632295826512973117165981361661655207536086043432389541536853660891640914568752418232962863383309294376018283130206269979923608986894955377876085734671232274000521048252093976074381898777991502702559478713125288434400205758299885520110880586710362547985102874769596352196467210604747559745051482008557454619126376208546978827141326225047745422051086103606895378019225820042669609572432642185463382846063099003806597815852166060182942926450872277273062411767614953905712656431511766525553134833903105635260572516885355661072995307347797617104689205376724557020496630964007962645173211201580444568602805955732630437974918969607562579087678242869061120637446090095675604588550739145630879510064336550232517643702412998401688446984737725080182605103411433931619278589548378710185494022043981192529466471829375281593080982417346458442025048873082915986757798084174418005702440093727282021725845344531234032315660543614056986811498984817885564846379752927749375559387194564388810302431443947382642431997501029447040378358468604937777807826659130252499609417422776033437429875729660591883074086520772354552984509542041613035889092171252606604122668334320636755949731591046562273568811578433763134850704468870848337657933763834774073995187547093791067920184328735480851941411509880658664981195391983265772487915141333314095411839666914627182364877771555380313153953693576106143245872843663821279241225540015571769750940675181122232762126524749505986869464425342309949972105049150190014543846720813649371315428593827580390838838699133287093585701090873705899055469847649152658823360393174656658274276799459364416666032302271184975133828083280994063143631012170648580233817055522607538317216373100018392526123997165302696233998166773973365613665170229276893508175023978260581269437466294078104098658462093521317033349968238888085762833700878224439821107494375241753005488550973218168528988917571792758461561003079262722144744899744852532460581463799750081444432560947765363492251044253197861596725101787492131461687362576055528601466115391364593587110644500392817211916690816597508712321615760217483646650411628114110403864464923989478866303362167308069763458099451418872413791848408835544257751625724366721798071931680169384459882605211661436207436131137739863383342193815409658097635926804821726603439775143972203104189049043172610702856786608702693030975665228578194405558790804857262685070020618183284300332114881301257439581891235583075086603914110793992053515403171373394148628179537259353964194638928019449889748615605581886560049719066760462108929744592625624468436430991615996812229928287404607346052498594671344820054531858152118792342901863487037516996333651487969635454377403965449817530221563488920844705054961117792172918520686266760644600315039165784070065497561170867047037825057090151381886158268010194046927220364357721093691045768233174270900118934925647886274286730879579120505379518999497901507400147824379664195750137201012410416265346429907022903682539062356269628531802715583140990366917876827774876609028594634079243035890211224147568293647137074813289696436557553332475409787223472535706529898005092513975065642903624272123892783184777810168566285277882922184302423386880576272193730322806379195581597445572801048938311817498984137303120010597935420179353908939109252539847959161435885602064940706085166516223233406184673955877460312987250635762087087173777206845878937048185644058884954383862183202585398793282180947992766186650724097468745594497488323203012948374002549295830462150014426357533472493335677262866856482891673611358714693919626817373483371446589941547617360829837569676881015618283290670291981326317297205611306640034959302036364160591742018607125058750780877281848828514621856324008093759021601558988578978067970492831742119129469546148420905085974223298227396174302384259863189647295782490225747384713425231238246190217447484032960349380716425658620669425347377712390511840656803617094370091172027972994321890801976988586538495098674313082093772718156821951994788402397156072048596623992111807322080163386434277457418412206025448504425517222413278046913169939983701035442330171418203148035740428083440083702398802132588250872974236525115297234713428306471956480453446812806803558491892982002563941547006114332931788150423628760983773142668162245692240760637866830112741335652096019116937537630640713510904334023964502730347267384121703978908025999844234715733128864248213720762767541972256291460976054333702976695274933625722451221759201358796600215894113109259087442386636329383818764376598584379626276025080895193636693593484313365202406736266035577797843899401608163111795642386890878194926215161608713335471756284841481889220991199445629365104520721862962752866266564620606900025353554247874965130835215510894266219533484523913445279420429238526162829088223188215588543649388253004594272529772850285655524986111040227130842949045545928638809657004868544997625825538474047667658587101313026433229681252772363801011616636504761339433227826700047679580509718547140970172800891530709731491784539834563335363587340481792755422035599530345634321433447252573495865592853484476428721940972906946577309043267943231944257243472295985655007862069061944881374497363353816138567261714239994953763975853236267155399026415259345088108034930680585800136781578800945341468508250804494962748635947908650156531723251300170416644777184759838106913818154912229159571309298122893820759945051975297514644865322841628838218896904265715006376346182588413794398387491240791791469124351294413042478396925777949249346368940465311694492487817923023482054519821063073564055677352932800737622647515512648703287259890480095422599330504731555647926917093641801195885172457779603162190594455330581922077141351755708731141093317161272776214075677194148326428317487073495832286067558519278584870877244005134799545658836536765540628607295627648489839096592671902953642878022797032871191074427708290121375812516534680484407782667449858373652169385554359344168614731488194272729279504976779487816000822837825381385662683286284878611599016332443384711489059057464661643065418803083856401643803218096630853009491378519097531618806981805439836240510022319772438670381424939384055311679409284549725588995151055766851517221625619161756029626069481717849305038177074253561715825555923150738505906602244631140085977090080090169384807404723076982287891512555173060388516848434296246101730378689489624256225061205840225697671335814378393099281288732534683492664021070098121927400156141067401201444085525747779249435669256487893984607745765181075717297709619463468947397053119241121784410003821774416765804542876207254050439731649720711603102878453175589959530151995406782483820468836982200970084388971287670729948099592486875942952221913437228814661749189355446586804246065764260993503241929204384202200420095387584335668827788848347089538341905622468365230647270748257803336315507050124562658987919328842481346904310977284662328828384941545849445145767778464265698088471638796862261009742167430088925709978909994507779669667915513556789016641863290866766767937937167883231183202322700422558062056543091746666657530712168773626648016038920741670957503711199783069554679260262596799420576263203840894865485109957382430441031879978914397849690238527346603242928101134579136318073706629427236818762710482980727371332324187774776610671663841961022492364412003721624226144933768238854775673495770557576400237392482975625462927962053280322835296735890252183908307513286315757044380060169470894170984368241235826580648333745573139585571126381995802469789436782887949500575046156484596551413947787624588776099742233609988136694228945275992366811989337166763769389873218858519676437982317863715134747013724886774192977059548681602852313636520742878906941091795827464154028668340682738181076496566632452635382502720725127802347691939564625055186577144253092273912781151911166986517882511043733835173904333505363108521679799917232865818015895073584904575467228106467889473397486360589758265205254205095943900020150223916233939202373127038297527446196499009195336717684439165431984368074817343163800491904809242462673620823964124089550880942803026865392625841106546805912305463090481217751256335686984240541131567066511346279080587399273460721142489304128710536380006954371055594227412047628816455281032860458788518088892592914565058312681821016652140426266926647337463743288283839899613483675003125740834683417908362612819823262687830986119203557074385565527991368412095400831135466911269191846163541249506657817836435624285331806161755289099303346525471137992182815222853253282219621880690331643082296835042262439453043956288537652310155632875018401070459153709702424664608036030563148981992509393923325099095807886827366246733962004292622136932278280638408582854076442477788712321413234494133558227946254688993137551484099575422583244222323132872415423591904076318451376435888293150810069004389449157532815539374042252547788953875628026974837911599365177939779505582305002672756486980121452730758107086050072165731213013599350069575771853210067471168242323507709040680296523379493783997154338445955667404750346654490637176614911796265910917494195270458797048244833459609411523451573556786271655614166038579703902065862953771657202242281145861144668595036224912873083787710741805712027924008622384920352297938094306123742174116847406293323979771487858304455852308975450625908482498627813857728393421436573530011689252294234835839473720563615395252514308763893683295714505618400249756741634467701572529112543613415308779544126975624974901026221261481559507515511455848171986582120168781990057877240055984624201237713659942882196499550080420371944712339672829359719551207330811552190873667832972047180485647540248407271211270523247821401712424532052336722530549476241276008234435700496574547237109669784507390771769834342347930337911198152829692981169438860207046837743982449842578345918874377084564845037896501284936682724198250606104195546904242381920026593013940495361038986478796123647435419399406698781398891812343938795046035673860451299478034602152352611024578995783556300239449546890149496944995257566706983808890706303618322101738206973712877319051726579412542373229999335752346212233335958545750011106345819970402528043755539400567190640013711109505610541596368409208822699658288460826741621836026767286063174888995473841743250558637738520657365224076665175358246836689662323782761359114633211505215528959374305925427219833555780089754526283822683568044904563824722218497318617112503622900225780836622188236467882931199638541574548204589793186999252420119371230760425905606083548778785719528380951888839213348011673100547261718408947856964952133178516996475246064461597369273816038453816805134749325280026248883133521336844451143097625268602067228984998859741418201617161493191611160444616375798830447947829099556394811071481010061236905727046957226307402306367658547032333454799537668633905081567484771917385830310529966222118051190663531936886096160499530688636531719939999534799947699548314511276875615184936388372320243458098963202709779828258754481180047739736483177764018606659463747239010382818688439108355764001879958529355444741325576361169466238014086500402970700586889129270021450016248292455613101023915085857312082500546455660765492457557280099929985184471187583566904569414633060634060306616580607803475077925096838216547946515887938053996434686007905433151993582118989449651762222530309622128946116965715648902298430171092773026376272690648118993981347228219404864745378595120087102129700052524440928831328147658611651641235629572619248433426323492650870996104407531623453910369067500822035932893263691346243706529895979256071339240248412288278115616843929608835108697712170326447466691111044422146964543682908738261605661873408650029105996748849733980458354791661834138621661830807591788634238137807133827630424820247105398060546280155742913805347570020220105685015552515170568127776266878722504074407403436976079285789184302455533550579483215838675014667814514029119193748809771866223881192346198164675013922734258813499604643183644939902818898248241933221114338870842063513325931676912554431357764475315185351971780047696688206648750018932931998332502816729060395398154191943113104292815853271459233778993110489163746890086495837232628685348042884653053447893595436669401753571734924375042118604088187917657791732166221428044746308699064528746337748807531569902075849373605731084929738070622279056368236488143633579777558627640146602597633369959797525688882164114752387322951705541497068205166339510806681333093561847571131884136390216377067106667846609568038529645483459212720414741288892932675983525836113843874001522900444823113986144151750021003737980347091790869774256712441476799054899003266551687770322331478694771484983512595448139243080229698670121000913734636482557563844024959287749312970218904017880088009012459245963733581729144933660260619187062167812537087705649217773844905399263965292413800433705195165832391108496431056673249909977889053303867073450712066889967713742890712026178004207538584866447890004627767706746758165146411834699200336591187464975036861489990015200653883940413158541087407906581847766274760484899727038816812628004812971617759373861751796534212718896748032106899443197107975372002950316462532031179092644094583736913059797374823899651348948023761973916585194479408089524416914248998314943290025441826542701086320391739039013870359785707999579857453528551506733467562334251145945124144830514898995254631205776876580221250169222593995321771212675505365153490148631347796022621510287128902389425580348199060158674384621652293773727345745728388625319315527030026401264697933954917742663627582050784750109228989118270179985429805486472509247904374551218484784994868737194899846751070408938483612649049585127901875044980253739547661608313741104193020305597651710667446538824743708821518263110779678759418039503787345186224468997359914396741400167394060836139692123786628508248103891955182439008057319115782308330401771199582054462483754199195071824239782262577093437870115129306151421771229945261107089218942153967119281116840550991327984122496235857886793973191341653744320438539490900397718716441969331930798320367799560772551962435752578936837847724057173906960848819794401764730212755810194253423885048090397391281689365318186135673919638579622430609459043522842246223011008422442429969847982989598223997731269693810966599777838191545198173216682997505210377437352614194191465201703197437949118598101290892074697995851732233293719941216007816654391106688105063899103612076602789216202763069593883603560417959389749736291298347299545419199133459169568783638123307278077843191846531494659156353326169396122027429793152779150291117816982708040477629382277135562763916983940202639180026858872453144512579209641775256412384107770250293065339028826085932505873343751654589820616480709300567532379805134217526572310166483533792809938073022718436807687075886719434301117342747172693084064368722396950932976006742834947809990522924085420644387460630988941292270687907706166083782370446683853746545370657941917378082055235713825383325954940885770795401524511325411457944796357133701472056505730368490591873095316426920184608006925903430516954336576817135467951150322222873939854270409741312726996813064404889260426231877680643406488712531757799679070648802789294291142729966550935576244035922005556646626293754312837234461335114965026706014421538664868756778424618081504991755489850697402727232831462525796667157964990174124515530551133440235569612255908211823437967379321272560318496667731855336042662827764587073942679334729584947851313627230724463378329247863224219754268675794890198958738381000385372206616292428781346209146840286505335177512569638634484881556354506504467755772832163935137760630794389990694189179611720258871371771322167741131215814613089273561849037858147410745607609909694174053922176500064640544182897664796317723765927097391996436924257187769200744380488183043752215553453826206848914740333777920506855732703349056477833223523150888376194284496941191809366309549442001733379205481116014664492281804206451160578100600732448606706187024539756568310740005411226200588639258692551098307042065080319212511743970229793643658684890800889995737467874150840746719023565655890421626754699342385704012830937108575588903588527727260459457861238205374430801586213002377676400140898216939457668577411495098477062501083255421402736544709037927139551965010110259059112271734558083969929464989606674804752620461055081175190777843370797252714557794612346965328814565705534650083407792937099304745247062627166789765357276587482218767209836831750924176503452531343776328231120863019553477757954053365909229923513012126248412222170415455268863080890029542299331264540270773247696952857668260319291996574888449722919401831065395776129181660080257388816652390228930162418361022711268391120216736212892504836166491265153526733590137285349157482950396625223824908247234429362754469022454590978337805614106340212522998474915305694079009815736727813882145838915414901005308395593799085397655165599162314120110650512441148397855607096575370124213995054575350518951712636275831372058656529689357573592480192213384637743283354527589379145255596765688416334496563739266941205872515243304801630325398920921033584507651011309693581610275481563613649626007382505006900118780201487647134637357403968719663076488909995420270501389965576317449361816595924390672053098685026438013507951272783668358286136210192694833202959395312241521772962430227878979948742476451030386839401168161489399206931255767399229591880868660186396524711357420609207425654286586574273057020445474201205788267978874501813379255596898751912722621320473786688787896690631811546645617683583367601207729339709967171917357279521019769629433120432560734594255968251121578486757987911550544336640158237677103823515783852133937309171877801107859271063175165637611090296389943062323052197308686941270634787599569521295219052588009985721234443281606126379402204495927654659732666219540736186282609085318431730997861127886136330071040990216962827385997242809543860282821477404185321637788269147861177295535639795478457919844598115238272370235361369195313533266049626892674275074756993529729733389600205543951155266569465169851145847448327931996133222212987282178965252222688976419068512072383640415514123096646876788248875148188066251350728037945561640299313589549834327978411463108637342565825052296430918855435309567118100434677693653660740863506177027495515774594065703204382205026976708822797709932856803521067876372779293195491536694576579419149959985648636940726555808670848326389011739629900321602207316535651950679314986231665896359914855384566941571784733268239975163791681383317726283337180439583105187575082935582078682643567213580109641149614081407584153884430192566563543556087815011230719446005009569721448750075464563201118978792788504915756358853388023370777916283258003122305549665973852062147940239734540779081675354703626741472024798453492538300860958807895114637119273255556808927932872362169624760273432622098590691347645624446336153594389750237629560831121669190313286890917083378613937572081148010045583734927844241738773810333089412900928979611096715757601797894386747304528060330193927018937169677924835872447686902719198900467034093634572488303356842822977951389337519176022099973500022893732977600586830031998354057545173528189136309575981705853247512802300602458584073666400181950397272323731769567266012181978110165043744851876861973572661878362164415567323143476463817186028030997109841708085382038403250807089710211266460207785599105229188005390088559814098205325050228070553067245404511841797497821859128883557385215297575864840760107992538290054528280891009936746497250278188376539542976028086257146284097776396400282751624732557667081439795878487840312658780062462541064855885071106202900532674319464802921376538907937072760159528862943145097746523389718783756047296829555616472744723220119520433686999657826721866802036284367470532827256751849770089125855749227707747526697656209701642278321412316734740073301051504869770361422887537062722785750488350649554773583917942912187983871338655281880014569100321218503360167747367557473418763607585807499837275680756908515201727647747123776024464287625861687167377426684564619715640982500839619569462812226674128209946721354762682872780780438626678800080137190147586358677562643080288011888330237333471753058266215174992098246433983562756480860117114818093080368395055938069621586423658128360887810989097365868129187396807758944904727724138641893104768133940600266172387247822556176761072896956958409297392945844580992177520333942652939250039886858201615718141027613584529319247907446667193121803742429253707688753726483850026394629515989596325865781308518541384253815324049530417088101545993978142525865981933036864550915475409347330771421251677739136681837973395677669444734343330184175983721964194683563944990155768798764002259904027125454845941225197307220732155463325001044711993483506813547683912184488857405605412089494402999007488246653749456938571818583695955831580576192463458725291326666044808983303208116735144879723046056818723715502299322043573013790082490350563983704292451438861803850278799566318785337734072612364263520128196083988836828916390451657247114489076722469113685139876612659961971608490030416091797756636722381428368824947821807389783535054795911753437037822042813139913061329970447686408619425910087084537159530950052172953441903532576564217423343402644397853132896598837599108223531303046189729077486683536065450736007782948096182098932866725591062929548903039230040690006296515776993831645939443440282177824751302344419032390873662197731805583925709186563085114952612874315450179891218012931485842165706974212076794847027328221045995554414979804115940820393419566006773274048359252243302402489594693943538677727145532595907982043339348662691361337308888790971393627847037692577630883271200262453621855027642879084327651937396927082450787266369803641032194676715057361036028781393537135587945876560024682684106800685390056424497610600290026091293936991115293666792227358212424425874208701238317399928838193933513500423615147111165192576396718325263502852292222695698100283743151773269028171320535261262470945385111956211231082138703903938118471894222791450618966091941353277539982379557887060204575866472696288111737113347203056379101577277713373457226410979699532953212376517248501847468330834587695412569177056727480541316654888908034674064566782364683937582428711597768701081859781036960388694690008478226494284157599049454177616354285748801535251203196334053708457080721134774102581910171810569191823532553834496445279356465959059366104516121384968090246093973907149995723018290535256145935850064785301499590820969723356971545373451547600122709706484825659701999402553159829168730951992008781607274839613818063121487563248812261936744386379944058721684806736538450634102607885904060516243148405667226047461118476988312909889201595875850506286940028953071731638775670355892458409635645646932755464020620017540885235524980699966019851696668882033133003199599226438272780097392018246366288871146766073087050700998815239883432752013540892368526868506724318911012120973317983901853296115883747657347606051026778592279729087793511857189297557557106078461668038459799347608517562154037882217928297716876007615932603290959262336826693786717362545126531149422048303465940081961052699605204616585106421708186832959010546297321329612457887690022854881460774141741532763711082640354686997694226114888623521236365849545985384973948388597072873811094377676440589975808713370144939268160226796171443976212371456336007528150176940537659766784423317955420380963759076153375254430797623572452167535416028596555211295824336442194318837161065434582051758841094263281322756354756746911274116880995013082457405975903861303816924774044912655462077298922552281610496921626095849687059915609022853681725172954054518206069856537619986986544891981707463487715799582964621452991732743755788665439668683033664335237878710140846941357963733240420784185868131678692493546456506772290474542751227599206276230292127856463195692567809548444718195550589312097580546714797887685509206118123197348741784794114651395952430359235639393699897602496553250850522352548550473376139588536770280244214488208932950902263759224148035757717022800377866446690951703746557610046646003205926114925587046566883873269348594017388254513015414638227207709955959227935248020727878697511553093037640024437240330613840224598138509849360081509910369756890897974290695057656897239116164491186390544029515532099734927832213948006099662064463229901460816138518953916703334831472901600046923052605651468615967483207393792714363723433387056276434678213740358651349995596992704015367577729512224479593732617206149797278188543227842195696750776961552701935183860022806718239013801509122375189251743893396446017190117011448124949085048891544918352157340925592648386122988579426796578994488429223822703430260292361478172935010335113370324565113796309754105229620967971785426415573418382552383515842840365475166808359628328002620802681457737903505815549129058352418307766236507405128259839093378679501947054521828550084673077250954424346152696513682264146179654168286529466824314130115624834304079379445961996606658566111140934950737166260631738398782114965673133746091473566740259165405258251728741104645393365429956931475360281967384877415096908788944549915916177147887925698516833819918756649449636727370656174533738453860545061370630660804241003249632090070445553525583931620276279201389028321388624777137748764914062792893530693028415968981456379509943387509665979336781078107800131594830980669569569637088454514556397104072963894816639786036252033444771439221639904313541747181276600989428820486867387963297210539515696345848796242112620413924139928568471359729557591892747961308177585806714044830271077487011200466770430456456542250963791812385821199833031175813235817107604749466062022920321101377330587050565523524298797502251360890625720493978100513082807329324379419728513535802024602196443431180898223318925180075374244974005441557745992592847995643639639802870195872850116447144705757563001371825468857807802608917375737241801434386937930092826543757574049876912605468664802500744869157010454475535571534337061113774946727863502661367067230019513134195600181021297340442614965110923412866291556059155354546351831526726415906867857813360279414814910836319389152940876291675691879359033241031615941371696361376508612464203014721021136975214709407254598589063534573562948719099074535837484969726559001516677153950368213315538887759278930691572852465251911153314954197257160616769031974809158456900933909119283075893584535487993686658066971272735386392204829404231321908787348574388390543475051860488431570717814370495915169432510585463415122851864387294738504566971330181167662475181309931180758171772232955784626636927368123372577780310505339719779403481727934198695834321782484403387733087911658816131041418770776095519146837836005793845862702023508516800445536438893757970509073754342960798093471386200280642500874093562838749566752203079456042537968201303049335491192613942132007916568835172059491794338217239735162304310549660153188912202244750550116114353466581975233334467501513505078295792847198308369998559155813826103858268427756261489263446415095456920150989123635372088949110912262690379605825298245890142249334528951818440617834928946286320742632151896210357235020843694833575265947311895261450675104471576236155620366671024488242128114532898808334967007844006258460148745637912940790883823067990547922956937277495185489414906837798879774431855147046460040595530929850277073295647681511535175891276438929607161201276192503059884299924801586308242967828748165978791549782594660915689302379145291856845413986556145381019817422776457193861700193219690741455256742240262552884468943287487026268371535090249353827544584955369409651128483640427080011914587477748053002647898277704987827219210009732444790764508871554696969728358943522398626137877779080614001025556382178422899708528342006819100606103945170224072779216946053333933764199718035554087365468510433016918036905846974496808513465105902475554120963104659503158279147236606988910101763844864506703802405699030137143079372312114665782663308948336699754362781532342002463263603218456416060369918297898318234608618480039976390742415454141019599360317465083402379997416236570349819671193786232371293824125301066694862868291542679379832913980901559468851826317205830334805535362028360526593618206051687904286944721917823445403055602550829886533706627933847745630798206101126923451096799220445317037113811015575439591531643611026707222877450042993460573417068995655537352305602750493310847482460696169500802997199243752209608597293447175191396382282916814745374768666457405001546455766742638279663550683922181636879949651136476193933956836527667055302692469306661082486221296247606855603060791474035308591901405462291096794961382177354378344915399568878515622946746435102163474666141305954049906662578714472482852475695549629151429121302938435865171648829982554648424083748176988190121652073482295966755376680816519490452652998075539245781083124041906686095051248675947352646465555122076377729179028445084653152027222546562409975081446429073692010553462365651603085743452132455356665079186550226771386338261961488091126796337782036991726559632130758416558712253346004346234908347870889938440688505820971251327451489855226143780106816714159555186101154996048141468102899280212065052396963525062482824869033293164375264147080009967933742226613846719948888634129172796103543290231254918847284435253632813575475879914284363660473789859625987919189149115305751019660891637045761993974981396104201844733025344560048403162838526194957912588132680903370922827210172276060015413723345599826472701379305197807395680058141283451702503194098387773300999770614451535344193668034450075646853580939979839899245831571631123528507026159175491941850082872546352400578220702734867983986642239091155679306088703964046859131354681474500599569319708324747688516316729038213827388018051167992430642393845743814535584670933852474022249920875269694662383185820818641971122540317474578802191381187169274889665488739021170407162971612521676777714488982251880485201819876037029995858023145564192462998545807352768071869921629706691084934538175460494065639197743330740054020513203263882878050661430072385098538073419559562930226344962251936997117724056513093197809941063375021490322585762418227554802584294971314093433088883759610339889163221450867743376302223538268890093238049690552923258765764719675909641309904644807016700781057842149931591953426628300327402618773657844144392938864828419228681031867610971361183237251420301374992378659492098605282486204286689049913566104309759127646386758261754850203467688920152900663378126057444916247479491943762194889086153190449738540981464728187921336231745467793866350698940405842349747213103631898657075852932322188813675210014896968867195561207216447414800687194175340852429753891525948703139375284205166415564917809124060155893468360522143385322818837818711507710665517803103694011994681225427208909099663645783031142814667439335748475904915997183415664264330581275675841464394425253052263898594162763372871031543030312113843622533744629956313712805361388239737651142058488055031516547148568819682188283185252187436595650458264679498592198169619727243723669059083923745081796285129562260716676949481771370925131805051626667741374304638536128562262396345385065506853271793317932783013016139912303001312365654243583943418394069000340996736536209604688781891833214518593778800710398511924728711223814401556746579719348113021219231966143064122449555549387397306448627133515285675578653895468643034784927927079926514160442710121410925705041597377469858032114052282274679184272912434527977354401833452328266964771379871327916745468381282662428603786285002549830367005003026446232672490754635735818251720406002141316482054126108108915095946954414169324286907584469337892954040909252020268577884081512483974527628170687949498872481784992758402326892343063252446861526603748575871682384456365713407911708635970986725675672252699901711282968697451921953322836991797985432036882470691358667061564218773269326005863403158461912553785405226455257404702465198741246285284919140905681224018508950370180217843059906244696476481565596103826102694134932308071210831358236928175777218538831100037990372033024724541124290872697197463780823125861408674151280219765173417951326652344237732137053247331074715877695563633184095759401868435659535486273341940275452862392368086279834529205970289650702803776337901222494451692718490794104449481192635016651945632019800081485602501747262781633708753111932605866283488161806859678065977085827481948571489923042624916009575592272553829967192400277629913389048829073125056226820421715083777474772761293579606620082366146412049459029068132884275369765112022934296670329378617232665915443054988786753902841333401166950387038080877686124323170332983661778561518211636168631451014007467574174392283536789682821746992036020510672210193475582372971904431584350077869704700419938065088082317007179212374061383983578282540538764333824710966949816588140841813482068234918139701710625675629549435972967536009012372844867733145872977409349840625722977067963398270446435054945455268954842513906591815693118243763638176290276459900871640977263854482351421310922958766551940094432422987373421820393304827684552765878377453080113779810091530412562644518379089744327024178035866704384171108155839213165206262520209843865535362559159743861886033223891636301614910389393113562771641053524001812447371851683434172404080138048938960670001853712028710526693679076787907065088771309951957864876257980901496125780317407019437965881544471404578399682786210361382876551537287409267540216741977421176113842257068141863257393201547912270162844497282773481589794070930537621806012596186741210442806047446327713989757510000972469449587944518396111697483512078217387401179447263936668356413914377750055271229208798647836226836072942679628884988976155783468932187885291239104477757617265074930895007793849478318976446548933287649663291263274126000061270657834670384993164570523913659809953409411593828803739827019844450651790964422885619228104218000777930416279823568442837947984777192884688923920308686394484248893395609163100553721108825211677655483478519026776621617694363601343274240482945250716600561668300711290661096790075154388410833612397124805356532750710211137557885721081397545959438592520278102514752039979617583495516953138874348452105460597842236536166406809494883147036305724536856032278248321494743532534397596627299494690273210833095034744468026858419512473136125717418930915677949266870392890348301280047814474387045231824006697881458763678187022197345328195961171953952761722992818204106702589615424676670888604647277364675613828520550093731441992385350469607881509566113572690323716211802397823083937057443737024431296787143695662319950630908993497202867939378068244138973040473447676842402682199637122853968954755429489379730719515838540949338483794219069103518869204140389808963485817683466580325986165372096710104971358656189536705366657925401210498242766829160994253678542423470015244756993928260432167261705203489525829336793818572193409751143148421987236046289195957196678583876557280964578090138459022177140297217906580364313648028497719627040717482050007995900657472260632377940477809657528439041755267363191957135614535052803493407161649436438621962041919085643558293079139700044049787133856816445797992801141118102323745282440617399836120112094785119952305811406343327992648472893633746604753597220528592797419041502468432007242561899646031812221781402470744560440414920368339861683169427982268807537522427010796865013572469334113560737101325958859892557019866029213507904575046414789221990338410486724254004883324260237480304630837101875351948127225779689933309490410341515854651414977423633190711635487270121747165886526270743660752483265057720329769762955382909705349133695952760817647039063386630368573707936671537260308707045370305594531643684470665086932030052113848894175038139076368437449035538769703405708301731462145791155349136950630223922028602946416665004965002755906816433747339518484295249743227139130428327814717480476773836529276194862792468691060682802182647615201971288464733855922621298514409263486315339007970212676736404811568718120570372434521798526191480778793355464692394226135078543472564478641921465077879385801507546164064513556349148111959905065898646447518803265008465707198381423131729068827720151462381921184985037766278973347543760961700657394306066021071317150099567725000497182629749036241399456779047307933412620765069111971008307183158652141499557635543801074014543237190722544481724431566931563562674201726142457602886289002419074176633524874238934164660327407449845306768480089431221436766644702332711564693109462668917464897777229425864918535804528834276492056511356691543723178128006116401796760153987252563420290995646390368784068875944559847356059445180758532668808038114403769189555829344246601092600061854445919101882854816076012053745041424826405239198483778134583632724608466537362810241917323237438689798300756601141798167850296953312039402676007964668615130647986381289086601525269915528006733331538408885581410720918544002385512118740493552543387485215655062321286160006460885549924253375669362412286008714549053011978958898119712004031805610390565800552680025434123474263236474270135178852408464416067855704700804636964456950551383362476706759029553957661660337034052158621128666297122843627816006974764122386973497134526666162744203359741637575340305377056020844526145520014373427731877343514227499640090133659875156489945580381856120140350636722975216654596110698475546728916078490497560956779264207299079180273417993445163556425755046788167839923907552095481147689101143706063872559487266807855456851593127242156107308025511532574735989230189854405757584851090522641886438318539371826495884461706088294117916310053726678395281752135110846830047042145932594611271837953589168495227484801421196428185873167929521979652629946597144947965551638990931771217056876366608291938684095354769250117323089853686251903858766022815229646572690205636893234290597244398794661097178533311211644170577094874749094061140665854609608834278347052034331815675166622221090631240899398083267325569053835993032310669912907502518954876158554487739923025108238522093474827693113593177612821439700580273525575074722292541249266179347026692289281076069347309674627457026484693789194352633737998574361737825716564552722915226013558779441511759152811463818386763851878453918189501363478141346260360155216415935267906941166338221487745448825167083858318332914446061094440219119504566175339346888559634782831676626367016412776191945614609333600276669384425993557236317333657707303711317094328061187982749135084734192030765641645079042346172372372734641594957752266250710947830442617653414723521676936657710105360149378607045738272521291000902266716516146819104608368851269607603108240868115257291145488694614338978150803842351738972683149115065871200847004022507957915947874545176981005421992658976519911413142217723101584597400526616194390363733588442320930481716049934873948200172910673322184628257612626035181735476484293247651360577249737759005390695998587445950191159044185963525821858325223309264315141424945839833641762659750656521023907664736843234060738686923383167226889235502857317499130148032201342385799898147714011043294571265890877831428638960662809070688805284684653919932541621250525973592250599517225595978685768108227709045254410076895926131038492373876421503026171555001834384463946882370652318709740676314900135391198374102204330042400398203441395886634749211597878532783668413483604972354088051764498552629649681398344676137774921219075477789829378246906714523278172944750410899392305993483683280426925665796513009210732008332506934674694590675068175596686471310591008790526118003669905124195676451100043376184941403980389003033617584086348176434497301064002118107880037416499551617303693089536219929557154744983086037467811047452299738936037889739650843030918918004628569832375157874460282893430394808211448982524299070809766366917820189167468603324239490862789947180489898712878387860542778831535237005064373999668598079192385538116099061673108156221827956888442935706607020671758832173219195263006442071242971224768267125703514462298493614559562318417165618995408208782762551251646901776959861853369087145110063767382109876501132348157306689436570280853510963222168795528050953168990576043666922320865423237768644822003175838694126402515017655985977233878439958715127588881521230589254501006364045916081920527109406760845182483984048249521089861438525136571176167647987588453199938820917135741259824499202349711434527814845206694070142345849328354692655403074903464753397206944849689512735363312798191054865256617542518922390874249336796330245161544320440367850638935522479917384959396843824026824136224985265026754189751202400199345785483351463615948984411248587318333141211212060748959798082428700374456480028313868692175431763669394615104597809334497323662509419509048444305075656786894482978634661909642516779980606829085438794623733797999615065724828189934919373505606182376311786893133784930125250924303550280320549047846172292508365228873117413607118111060636826261790388741369731379009688528796958668837993924287147465558918238182079229635488207787344794030886912757693432688500913472832320226625480982736704040196246957772777015972603326790628406993366209561011774445473477571246367353643842596827117469386516073835890610757589545259725178934475809952110572768752547903360279452843821838480880619869721536138445010177267917815390444749776463266200643135481701049204070121109557178475678461190712998915346165178522462804915946180971411216859973754646137768437908774981936742212364686910560496053478207536432943014452494550085179823871986954580440039902347060007337468276785263898685644965196511545317740873959815888449398326899266682028846522621626542632992696514606479374725723901568497758700162498303661186965399871035603188982976627560325826258952105824933259143963106952897870651803302507841068348635819344972696223518313282446206040844003543474068207558626152169226110922174741271376269219324566092752329522755849640649912365081289874726390251065024065265178819428073808044882655912407034065329829551915869681555871508389694776447649853721000908208136574851259852584246626867490429813475892799553542882271129361588673153021918169458799946189178892071144972845958157508927795764864757411234224888631382522390363509197494850106433819338473863236527319149478607957355668160343299931101008759304723890278177372894020298741994405143810584646392537644440562106826182916946768157496298986135377372904188650899818347785491178439108806492566059079637822570349888764638252518100406592795051262432582005532236649063379324837148706680616893698342391606536273194187656828027053508569575417074840224473008458312713049211350241044245254456869363591404451246965408061707941974703853706121435531003310498987504440640221453729070336795055237940306797645081319176548754434878738001543582773693609299345350664541406237308835293038708575677919017466822495742356398258395799568310655006404167222672819503090737239567516558323413261076224159651745897034526499136023874808400249835167391713001658587208317555264429903989635215993540112821136656338863743534217482552308512294165450114205195330244412849900684717246168352418954235243062345116065230777286637087118439866519874360293618592296166610325232340932430517679489755508786214118101922395734363082794626458509327551541344323355644409028528347291608060192130333514647375042598468658064768001985948762319753925416062074269742881071413033079771272842424887969472817050068186873635971687072501404743213207249766081527342374365483737782837913212511114678386252352976063850518040059991191838546588642419970397686925860861455635713179837858391537034884794664467298385876473381010506545370992225848227481739249344581455683502855585574201056018590482689018799016547655833652353222034683542135088632096563587525568234515874811637721559229643677498248310074990186262767223129581663173486806659344625324989538334112209018343298306918159008812980401368911131979220951107912223060580857427644912843009780583730644463581679322949899205805994165759412310119145943330242082769362386481452611732787386778740032877244921466080310003458804988797781337179751317110621998962268765036635425908193448471745713896095729176161231296320255649741128858304692360762425463326417969207157503871711029172402000751334259940374615295979622269856521794503627451316705237029118199751790035892914204090217818332841983585953506407146723296422329032758404522129124393232079669416780246456036262808964075424335599747932951521244108272654841688729671054420932383529429707492789367943742597417357057734383141706790302777754932472407179704075457951968888819597821779643015663152658757795503915837689870623452759888427652402718912144090813367550232889857398119089540655511185692044045501377647016911598569161756951269505428799863366228613704569851393058549047138128703592766969133255887413540830655073658160489308721309333685450380506360134526235153747068272339267165412621843166631349300343264366953346511376895845498360940666121671887481834032159663939967044164223057698513804646679582411956172732595688024773471614666079835333658217332366763816803933679892653478640527910415825276317369662721296368065216231189592585638808745437671676383194371172884967479650235842728053629571278118145471320562244833318450418293616414133662023669957750831797129162821764154808086718010516472915990216823228705641453446688458579045754320986142566981850913131212705062218581272507345274057402325214939167349908579940090409922599769310389780922324338100040620087592255892188372280563890437223763347841586859670308160928613397347547393417176308427242491445282161221097862418769218283410778059546998261412284673840899360212257229674522157591241522041660496927154869617772512892755930217430441126460652131424591611376507480450273554080320732385809092364464429058164782718533948853275877108500327655263051024099185332810563417385766107585147478031784902952499801077421744338319654045181914529432290059963932066714438750533259473727739824267168129088874491572704353335067589841860826257217397795742322245105254167369370226174504113770044411173856310419998007860817966587061911777393255507869971965738214857832125528503657533756074530529097780331854395276661813516674358474799599113227151256930273453694527295870459703860412667463099980886971370555770291679915088136324789695997807154456055048462501465581632970095555509521935935235001895985688328367186791687064825666877280836684618236933514994700443667590078590879398470851400307027171906852556850676019141888905456352838488008867883091431717139147680376322096873635856168627771075211826767751205660604315321360698168597974155948192357316256866823023559504505892754577616658373820022080546900858118976695759800187379996029318577083461453679696496657233525949831735060227204716409317113449896421930842588623285799122009333766343053061586450026911882445319321706349775280471832679110719795069525282733382204089012708695499398548482877735238187957108756214881500208034938926668032318532616787099262685197870899629103942938525872807713186643239240908724081426555142326349692852248457259350820097961153313200164846335109440389399954444622761787377011369716037869237311652176422221055799936767067766549487717624097209087985824742373024340278340567050904579662383129012487160634293533630001897784779364927749201379104380333241422701216173803596056903060433767420993253462196203150565924019302499145821139031926530421649340495494194944428560263030622674690013141465245164791966430918201427873387388534385433789358775263164028706923301741673668143142566777904338803884590262799982728200603249439275610683470923214731296037092396342612241903288733058776733115868812354868605968349707786426865041228881031248724987524589240853901410089380192863226522356961793869841890233303970957565074487702205347895048463522942143281224334248215115139494717022883861678901594830313610660611587935474219345317054146872885156774067141386208129818429971071553902910243193902006166755014419545108932321649451393961453196336097904614708041123900081958017569019611024383359208521984005692000968779012423942117450252101020038674406696199596720842150064077583831690541561066841717861046301159720225368784356950573326681818226647560154702583544551345965864172170529370593704077524650775653380881035133324250827445751564050771547199890166996503192984944936943607967490527368414794318159539217896523347261296603523000725024062461309542343420484408222571260333006067586605292564910967679281929554704168456535567376113129031513630398867671811910870078062542246898055882107988358480889759265192069398365166746237732614830772539714500368650860454785281619264374827749213404926698151322957830986641913461413957965303705926612414965106597047497384996453385607288100454199166791811595683911818374965047845774246870497483097156191771063096211054376851518270221337303731013300682706929537130657088684163553587496235853934675530695492449617191786248952433597958086682646920776092791668907035150853362649712003006914864914294995313032028385987298347680520630744913083656536107443077223815617921828030601446037134250920327098934677985470039457483133763639886350418205376771354723751023132076007732548159881262433548295482081774314375589933593413811148441736473251101686629053032394562753208934781727290696745083847596837967202712720393564166931312453834329506937648544757478462582469671628032065076038278815640413734416494662070351180113838307117078538531455647083078828397972400314510020089129150380087902810729777138856998828988305393702697447960433171417024874546670186103670240832258993143301928350771127714569136626499140620669055373106315662830737850765234195393254572539657040913784107067671803077347263744412250686306846605323619215485369040804952204141286339599987774869012160295323871715004173117701154190182486333264262184237544289633163078727502721113043154328148154500692672656593797205533060248456604185554683038410990398230019368464125106468353582356192386664386726449829630173967687249962460834690714164807985364535255300744091977014431412887612009564284776772700474687664150264885816017094694739895049401644738005729940359403775914679149151131514241288954786277311482380401906035128469635742068592512335644777340498487483932172886051465239533759586142485163604921939299155807859000675793531082460733568291260496145892514552605313275722113100324076344261829219768961794618965772977860357681139996667176281878369038677146936474467717909296327262773547136655251330895760580383540020286274870566821475470906480886608079807695432526177565036950553215981051305668941663005107796393402433687070813664547320287557599313665308546352736312659442455116637116310165835250525274368045522529407469437105301414444437916220929054113017392416882719729407431892090719220567255846552206778535277035788578462020118524949677970288435100246459388536251950876173225921731511377202542931403814875352531173104883966830802253619362017741362403012083823493435544622447182401460169135670900145456114138762623420848082552355408950020879665560944933660818533594745006601636193513826281538774159836926588647151343407458377446979796476997426255900064761718982223883968449731548334712647066143720465448980460786337738768254358788651068031617897471086445874517853646738518671269010298226947993812080413302525087079380758273343165520681625628573795765165073020241479637073555912309705810116340410282243481388251762123236673739234709081108382556820261952853872735588388633332527462978579065805926581502162002716617498064507534214499875418180497715466603666849406393031062604273011946589327801123375782119138037600883462848189682740326070389632509522165861087703640320797348379084188709827242879024119239553411646590655578885368030923069144475996833037841729196705806592821702471714167138149661453652283788885304518125144218575033380600240607428310025725243331692177190973068563640311043923173081158735671426556744170047245375851734753606956338349106473439900637795730137532868096315259703438082934658362318964911726652367754373062366280890495389473719531559782501263898377941294859894679841123978125340521622153758639836295455816106623980841646559455108280249367167391690220522782082182261677745054371211585513358859451582199873433115121859611956666855241939727679373536940804701236130958972241298158398193638510718498548798349522773139511340517474698981061231730410264140936442931734430388797907453833827191735163399235284348329188411962529055764405448131794463309144439740742669731040910900799315115754991788305370424849918053378001549828127139125427513368155812729369662899838115417802712448121390298915934508852852407771372804529977568402232757637375656478698278406312860635660939660980232632581139750198807713442788118741902893583270331686906531808842090586415207537261792325475754353325233245155997769010760924308046911740037899327014696243405261818591597630743155890515690903317058353133613601283478503665277955760924277594743265103104212515111710315866707173432083013084212117407025319851490471984928065186938279733809125892377238054825024264225780997073136716414534174901616093811698142263361247422372002272298958046563341514599511646946099748655067992667246943395115417516895337235695981793036151990712595727822082247293794418550330388896496763974031073254630932508162278259537397811222338088721210720603363975172812919503900909162087090668188722982403491999489057359492110239800118253831435233138706061541229281884552657863747948498143205422010356826542956351454591484460920900070827461842308651821458691302069549595582278727343404243007062465285887336081004570512475959512224293885484661772726063700788072900872169628448035615075810902369059746908878963554421989032492101178552849623391519527247198295937090877478125878478672725777999094274895733102075657876173743822880052377294243065182834148404482643802106111615907464709895320809150557785405005562001405438662486070883051759038821664393565308605255315370002855895788227673138752892885315680929069968850323404414930294448851617762998240834509604150381762321672182589160481893510973179995112801002472778344777531607514321763581639484418137726579956771499936555918949003726740987058977659943441641648093619243149440353205795471035807510109613242457217132454050536780465124675736146129237134989325092413348508953042473621499808212576991741379107539548822425588940451517519582089013587683146122403619382625490903726528620007985422418696177005433454366355016760573662938193335125575683236591321758420990625100350615902544591169707920178123881399372595668738967112934674951335468909936282788510896483198407007766230907142327832162001448214661759536218033417715393399703613940329394017681684706901852390674594349207436227261014672166613364050444872007360245613484729963371697517628309724145025576325577277555031349973480293993578270511773348540006764803371063463469888341988362387105760039403123713487129233229488539699763432363593741388449959748437141192248741901685218506779690942781339978263111001344228771966514428789242238734297810238865114890690110075166258637885412869760381816000526430740398762953858998330462589886575068423976012643781166444482726542878777532521064055538074633292366063169194195085323312782373588242043655083849302881987487962136935041592780276723929451639365292030002498157026748790479179785442466279015784980105338394582227616696610113863752059413418071191219447825951892917326584270535236202224729102237484471396378660066239036118538618280841968405043877427752855186447391015961523350457971069257395275209096296494254635865661855788769784296593228922943426159246601284114744283081330424568468552851935793723057423774036275828906329637434415552069919230340017972092954796524486935927551638402056746974102427149945309038255879095111328885717811047507128323676414452947393785299932801464411208135059122790506644234082124027887361492427987949540135768322100760261496284048390720428511117991948812130922590331638749222830402077229555386488005179000622745148687367926077202892381127964814301014209292409863810562687613434831624379490932578043015214043926545511781886628074399832834316308414188952002164802623285039655828781800914101730373429022109081060183834469898916611450198470943658010474097161960363112488029093562439699556271704354688203060242371160137200221365740207333582268998125471753512105833483072581595487533351131096015537896570153700007338760852703000169430916245382586538068008829888132031566214295647559438283184481963042401540877128262556844700155889123231718219489666046081262208494706056335976109405711439993852915255716333457612596674268691140440988281502096978376828070001554692985765075151561904500130966344015759019869540139089697988598995386465941041649523663540745554786345955374588502263142527327451663713504529061148809862114100571621517527469836475789221699749374082119734568206033208878707287301206013461246192008915071114502088954567097661854874570202779680354342523157774960348802344812342387182576299789425024492728871327937478355909138285745186116257915543203363993447309576171971465312307671188166025657931640621021599258015193521019304685874855767342596396732688951346389827764232127709428208807526034243928948456475376832394240044012702327529173251524154006853776809267536346945875489292132420588861280327015423165453387168860617489655235255665268924811542118874279434088770520117431371490172981345822368017474674427463458169629145130028871185564345842564381480876800988693172037185283362780577824174411093509967258149324163380700905016155118333888761750846037990412078202494389299483063824720750127063024357535190063629530645889340618350905365776446993991236760184294732251626428615180122994037491475822024022320621487337150657359813983615907407324663886442759108041765847122745542896740184952483612715223774842998157377742952802820343639954597294047790590561406448279788952411442257602756652935124191970734914086460609858858208011936890716151320062794654417400009233966661416230681002849245152380987467472088931458512452762360894964037351111144820179973451951977735091939769409619429993590087228340006658745139892864473824786781505852828743738305084083972151836423740081277417436936287817379078536228278529293446110521969671437337823415087261125325690237132298495497571666849808025502835774205127128315361792093445572987987583755957601107005185456627176992612993253261122970417864958376514453221682928412117621012602466584186623217433589163969388488976100676315167944776413971854601677623470832081798521669018323063214330081689076394398889865448564334229348666037974810373110705557869042453334873913565189663950007097476368611392946846369687229381732771210284190279581536126330933454925722062774935130434213023495597169357028345190142542802374020658711243124678102530274641517963054465946099247371174603531322128106849604577682240888015087490046438134470066316024977495166508445775019161914215374447258073677896411762344188791777111060965815755724691416175420669142933522883206121800381147827198841990667880999669895026055510627102350140100551295122909507222853378910786571319107179410203477988609139419135900775304294283532165853100283628310335207771033481189411892775884460484756789714418277694814982019441542581060768983636524057527523467984252570097666555238970889208747084755432441220580109909138637942453430770052018710649518224066183365618583786585048333190896390138012088113378334671436647868090528380691231546975200337962369580159249963434485615637876997489015098290678279716096075886776819465113045795257384186521383338550850583642302981026481089851023415458264673463620034820689026482549137133948484039983127283836766635338297640710790698512011499282931205153872126974466267344032779718255166866421794925624248614880121934858934366952577613907638378234963277009822017064519099274627774872453879290195266684799911482370189400934120428887697136384129684956304830426556337725160155525414417534229223082838641176385627331258521153134922080982247323988689979305544205591964329336792164849355321364633532028392778574139938056310022093161818108966470072074089755017315398131826450367001709881604135029935413011623708083584064272909311458086238887084962867700385994345942223859110940023350665801943139219079971723689055224429379441043554633051714306013111383831369812315418592219361296359999001847436678964057683491632090653912079823730965378910399686384276889764467287875006594255915598504008719968103777088134980455754291123120228050590204539426741011332138437095081981967618109617209281714010719608651392109288397761784233250272663570024371579682820076136667674593824541722058042075169737888004474636129855645980117902691295457423679242015854579943604675730576647028947614207607393404435991011558558208274033348093757524834283709785687566800844018559301768833223405258932238741757098566133716077524860764449051375033267625756058090379030737879482353957685003693258706247931531704618371380887637449397624506643257075946291239634754434047649016924437335803047200200914702957743402360039865214895264390718065583581349789842458698570786715097425431487033628457019917232373647994067521600658752839205893006139070657728325527616548090240333768402816999228067222882630034300542106833069918576578462651356579801887677002122141957750476961648839015956960165118389842304175943546551532793929661743111474893440590438092196125237622817411742741160485734122697672844641318351384865256095015892719610475806857064881766594048057306382463904133034239225999888814755233121307133119755265977616733422540269620508984241428886230835042030465707043560841853407418847737846489512951769203380741948204852109722264885009770192902748806131334970532621833716541146755084194865528741156692030263304001749667703740597552991415318393613254169734719678717780500427015975280341745707393411548709687331434163881821829708111293394131935628100884466416258906193486219875123560976556201071298014042899020595556627883954677945905628621565434878682265099052837227406751845454416582155720721953651913142785656698420702410322724445889718242713080744004622872768603193746105436236889340843705429811024047575613446606492579589582748447862917293221232037768617248483430668302933542951728398624624126266725744285581019323509636559789989820859336290290273137967767295012856885777214293331143466901692032793486470651651487245152120738294028686750637196565077763607347523874310439988776170852883080934595466775449033353428682266687132340860469827706241040435302296002275095005314912544750956561258194238502551480991415792617427985225310909458953647349640624013418964921708579845732414002435346389649867329614446361485719750491683615028363083118882538416490815177219850800215368784636888365678887634820817462523562130804557659820043528599624250787946527851888068804992619225104212534636669014762821235883752514199627751712816979173746408235348191671755824497373031515410610914646861222318297906451503502110635515441504951317426547100480716611140542476634284105361118188055258709372973897448560233773198932035935537727952889427225516987064312643162741266331844600827734079068457459160375639521965709814090178654373445083955417967177484826380161526532319429250622981621767406987330408765682759199843346999045367456322277230118288013718030774607441266644031957767206827310144046834086276697852374710478081018432994541020596195775370553663436703978658687551678268168823065379050673143812553283314611830269204709322605944337591982893492077578567118026451166415982643479586875499814406525291794604331446547320544850211210409219943157437593908759767500602346517895091580426636699121444333209915374722752118281348205748800740144293337011142622773711650827107271675673338069292909425777377421285582761112357545880335301172668401272274206942412385313958579465886759687553845294932145673411868021814499800388359266201101054724500771848967047075556224760079091018534328765984872600137786220383750595215526566732251965980783119966581802238369790727166709806058830257775668562449713860366342500456995291870116824275983920018445461348759981579179836588214753829042772396641154816686268542414904007710982449145284105032708609230510622274381567285259838678859705011284275025112321452095970706003190650686476926881753425664035044992787807904965493596657743437421750322556103051724827595603582340916975145059614025618066450042453164371154915995731953030195203348379146400463509616202824166367584631162293279056591998859168732642803785477305578216661621803134494044186969830670727578884200129435912304790001151068951525548601974108092368386849518772298031084906856097944009534990190719869222993578869268000733920428841454463263164632020611241892540543337643890477810879447206271725641059227512466664007704742926608442361994600704560930540527361957891599892816515926671106794168028043792694269859572698467554710150066864004298915676501712426086768502207316031134274750260196916631443894091520132532605071751321319363041231731369691848790821959609561354140143502183262996110432339569750607473282834773667552874793356839190833850179231797564451908644117103588880102660080889466352629282297427180654891100266575437190146454699440753191977900908598630445018416568618896634138351601854850291202019575660985982667749040897972430999811554312938066343068430732309149573408566845773031123159978626756515531054768386004491733651204755809878354286321403700134978114790874567590666501041417970901057832006739479498717539616444326834774072026898605045619361530372960297136079101544971228982548941397700526006231812661110120312064740324309660898113581456982722995092172107630493293221058377785716605578391839835623784579698558091767709424100656090717377134191750595804043107237177619527295918777292758735017397168210222747069279944840337904609223822973748054386345526189827993021575955212865494660991460811166613654846716632365246296415118494271517112050815267947504727754350066608711800453858162914472332699587240357101358474496106639062658195313573651145280007468737574799003062881081190855884529673047076450648152564453901999851471341774825208827735352966379086054285027395938725304718517203221566048321361887202248046740504547278184446212834268178582412905077179495691210085741559651936355819484963852826758121981333583190821332351283676836380002734959215150706532143454042547933106922031468318813082714036649603819650482806427199111287361004444684958025273823589642730993901537586973539886161769456929305069937042157707941494604087588819034887169070651084912629756376058471015686482952793121232842403286978717372239536407958122075041540965059589505048574984856401502752327079012153654312758137370709500471753736264631949147844888317849858524496060671528530045894626103196763605964482307177129954737410342770226807973877262968062203222511425309185790282123747752818490339557927046392369501454097879811744711890927863697796817693975364136578987315088975233934147140797278946252410667770596922381712957438080088588281282701123860970739589259805391602814784166625125495564370597554361902693495707013504397782218593044454722666362370653347029216629975110401857123445556593176654005149319579749803610047728773678916669582032899670777562123911751268211792524434148667179751136716540308971236799812645910237448683318523407011430160106337030791397346738981611601113663136617128840355087216190061459450507194440995968129371291307220436157311660720945582309910055117524265308929460440644964833643782290669798950368457997826030373224024981073187207340853471145175444011803655856770114867102290652178000293352919256020088270659743740330877310188268224430362341716497975302282575517203408586654461600560251060011096237529226309910574647572207753330313236166666785726133196881168155540098114095288239667025531302911951861780034421893011330074808848828540161203589890139477973498713929257657490023958808091280621767301733567272775099111352041181726133704754617997248735415040042299073757585962150169255953193955098101329338544190185911574647322696047247320546628204192837828813686266491905211815085033397083264653840963823495632282132933681245207676450149135081527356601290850063851620400474751639196573549449114536385457688191898622182630258484325001393633687591832500219785768027196428330388712047222567478685902132403403847223766676864661316193330701408385831630086078574578422468646979100642995874593147512078735410097098203566350184099567880408159137578544830415330913665545088173685541573829967889969466317705703163995529710703921528332660088369035615341536837135298650403178636684605587129636778246820073275486169094242190085249052773559733506403821438788328470493481764010778981232552572483298105744224622077550849129335920748665827409543692601514871195003929445030695430683990747627649683385278364490267005678995418726217685787103931959409609265360229506728849776893463387581047531696368639671949550336021811714081801066311643133711772965590854577602679374725872945999922196088716827479607394437367693550451172352719302573961724916418951718442156766680172009127614785392008411311910356179318199946417269551751344898245088285178343443679708612234228570718437932809636405749116019349263120972183127147417567621738044516680352707517553560271340954522846655774787523082555453917076131764991039230362169074052730952657544852370879325923099328637583282457363425592389089235006899577897841264681247871154441747342245961326080797701110669308113594234438322948131944334049334388399002924886959910629048045435894883939719502678161202417211863049320110450920685821478936784074111410666849932610471215568526999568656408848533198221088094303680845113300952768900808470807773573218987529594954038086483725321833230673546931902797819794073564699105855091547593362486661359966151029144498410151900689264709495703100978879117456206212001640671691313197415089888633681784420738412741761981325779872593637607618731776562731482418696271839358771335142752125954608457749013823895078769944398519337480653103298480361052391078455186370287845905495431581336815113669498647824984111230812024596849711212952970472194370905470982813404262550261255976901549969393655860721896701030648991779872895870721284265961853038537641248042852974154207673439868530974385717648729277010961595485872564012099404896500819669418172789835029006099317841012719140317594644598330766061695006122498552311981877861209857640919219714450326315094078689218129394547817541720892611532213474982960997934732002211622337692708440556570560881549468036959729294758441580266596316031698686091431477936463250565523193028703030903970943505963517897050241796923054989693144108224754969698005655286103098807929097384289050989557304576337231065205642472501207917611161469016540888020217148269237471340379632587942828005147771795377350450994858089752520436909638553199478941502318051445410345749842261137655018303278250666593391370874306170786943502996008527275830759369576047693821660894123000056168172199700385823708939326327412080372715002550785613736829169898657725317281837621049794530901135622351437837746719526473706983003361956737255099653213064251737875645916443302075420105362616106702995149116021737546016556573512589274803125872064683008095614693491867905624195184110604552070238546562550977374120137210736012381707520220895882381996885600279987344898278690987325700348234449545633635612181077845732858150011454448025563374293286279445266587671007304418251162348313372211970883610980209232466345990933096516251484641398943622368613632533440860374419606442438870177255890427917424796397377540776912090748126645155799130344652445620465157568475115767382519267779905338436702463127250574878660693594199976036923384865876907375043176870798127226019941010920761533035599981620745343385840889455491812906891933980501535749405422958107179808528664666497210494120748810493148947372143632496340614374757055736222897256929404389478801327230782470495091854440043870354014231065688589761418931333997322417639851105608045918469797379441220435105826443121562580922679669139964328784295182677227321852619371003529629453759065595852105123418498427656785796406687417001216651819215388049277773852356555456416025647330724240832687886915297900778053729375982946318798282168701541708236181838801875296103344700698532431341801546622677106919698939213180829299930966357948148917072510726330756054988427646580463025600379648743672052981358971217299953727737081085110353433685950715177813115107843003727272409013641343274484408512661071771810343554077497890878266815540806175312390966263012493216019723849898162821569818407226776002688792558921893951350826717876253683229824285453578922086657160110773314672595943495886335024327224566567268728281400636566521202615186953022380334360891278387685489771169076607518896603138816102916006044421169366784592899128608092356362956844829280988414298985259315915195896384353020390556019992897853849513103363784440538724626819043543003107926282130908219822739637157349568813224456970422831696965078250470696402956996582520775110314578863069371592579964853306701220328344521413593537155676030649630524347240273082388617284524990557151877313691334389589795095642537904243695563178060660118580968296448240925248825003643122828318611981979445197912952375925085463241665517487773890806272964803859180223110451089407461289900274617857154500153275064487959758389519990210394547156230413628753905108139603906934870075071709085786620727363584652531440451571628742742766716917358582887944561607392185214685937361311591889648509532222044538355803907082516475624604651009942237976229806159877362010044760056286845408817375399883124025948958151381193670029020425682000339031684874219124507450667380986610140441898846753965395625054482298543721125493332139249948734418018546036484020791023296169194711096173093761906201908676487403276743144063240841118223892427047610364470692996844688141248065717975320759470796907874075588582585801556740790545002541436163437428666279110517005628782988047093481889499143694412794167024900533586927459119831544735819959508953699827456840134889960916916997134090057364620440518561548633298838684639559992762614038916882107479632213762576271522350065642690577082360417652061840412595622270155361151389315797805789741534970018076449574960559163940493338834455569424180176483998631344457860327840531289471862835811295181434010610188065731443310233365460406364505487256771954318954958782235506372151998200360425623921414310753111141708368463537438175884572476048906506353128681826371736125998596761274161303346030340392888114571629877992103528194030801449336222668120026299110266042836923736988594342862049613355321087307658103598106486091140712718552067890277274137723240770365821630727347927881952297744162839317297135651429248178645391381422920641082529346949864324441483200108566590169299731467718817016716096953091331122549845592334827085673108809614763328615895652025583110299320309190881389723354143283442424617894299671493844357743586770646598456688699940199335221696541920513877974446422830185482429072710800467892317064402713441277735486588168900281686367701531645277470219005470927773970041283856081995327296634070671045428309629153738840766189389829283640389515452350019600500254345040620279164327504378561957011396152874698050200828927871247293382577717309986698686585312454923863708459161828612490237892875086403055213721121985792434942150737087224525826196989740772507840611467460297639727954295858248740022024455920083715314586625776242186971828495897290843566356914420703803877958132451364380172125367173273081486925730215176588508368263523644470149015867694513440983686043131431157268111974751014928099181772666288666921245316024424484194612787783909036439340833324130099159438785136342748810229501379305130859460261927487081506711413332275474698825918040524180447694092354320347201436221328135705023100853932748938915338608725484478269754407711054329041263643189784941254694759061020297247131053170797067445791927440124136001833251768313970330980052465216354854025616642706203853354478752553173367676029132350642488675348985590845440916637229365457195882251238797019575939557716997310273977053983883968995451748835322350676469270922594475538209617586132539946409761128261901797538821795042105082271229050096668340173353213470439831470717665305374968376156472289840700584018193012376338777632112088212998169465861297978861863568044223249179016875607782255274192640786665614391464749470847439761406469126082059258593671781084035736545902252211068428513394891652132630282290974386885250023910705244131175049153757579782071544538090008339073893983713594765189785227665418342609795893371620470519086370432433733207392601363188866804071880183682271304164989734319597911172519234565079782306608399211163725065928253454653878420750544841823823066962139267158710970841166278061845397091110957815692756262252898037825946398361675288037706719663149886263058649528699597800683145939401759021891864389668703440859533056957722960459534979244650371329022516908275214443886904060866509955415738220646177693110005823101201855844149860997254879511483566816327396989810817952381513897749603601788873028189198608108283032085395149294272574618114364797915262821743525400373524935413593312380073343088510675011954238463368667613280571606541687376561188675749756017645399020807995773649840349986700140857290820920597118527814174783083074999289739511216610465369461106643669680006132824697289421445358620531497359828122787507611262247005528454078481252289033493466807967282785646052702477101629494377271590635907238195401579466705919558548566810304057314870885481074998344170926357129962546820538047727903718617905940935398284402557172083582619536441834678860352205496816610759859548369071055433966241550929130624160831538551002535910696888941903127538454354524144608124869158471303168275507772286636956930608343384254280651926225218874465349376184641533481580675228433992841761070647651319848030634802873921785463833754043686004715545960685453389887489601107232336680454184681581771224593494377621316259166328666506870464919556317468321073793180909296259153762497473396754457131902115772275063576809200731759549723816426160677264153634804427503521622056245563057209029987031038621540709108675424352336107605046524236423200464950973922709508196622831856995361729150252773313819517025143816250102405558368701162061933306577712027910174959077546294779862177538093365070120846793520441896614588594492477509721599720030492657406437562495749203441096038822381974090667143099719111697590538023458609832230210895076164450955326199256743597258165010722096516139111367755506887047676141215112192950501597091820354467287847010183418562551980180590345855496693023046231485275123224677378723631274833453028698896558544375270363038933433406358218159511950254063074836701516657587087616099915717848971482042016309801731524243491913694419613080605848128223555368150336526991717708329907011438000377940301314541638111093417883719597577426275187512350504548102417702542357214763195083079213654846838748934812416539819070686396000717527188177344503489684883301889487133638665013084635723407068426653420270294466650112047934301385914414998417937229112428401157711649942340845406917964002054541443676097357298249428797409117068759195145544790588288550040344606596817505327368183520708542900241428447630129141156348018428320790466420080913883222040391310534500086780874773333607196961378981748351186073697158998164700792965041260803152693774762561977219062326664694528123422062785053486580294051822407323834582420372773934824522213670585700512065629089623343108552251446206747571657653576890706948885565333162737070062094738326203938140525577284815895908925611078615401076223807820343876887766816251886395244838419791967198454643630311612934642103895723537988384100846761033060775125569139034139281329335312073955095252591163126250087163244615743043053850353148129112118536888374952158881913502664156902322982319772093309880047690083037945719803314486088200295564583516095652487568889575065061048574338681546417360033588052261908426793017548627596953155623501959360684381387968344173881254734467135627026694641137601707081225436004346112033899932283586300158808529641327925940636942575015550851073559408240945635584099615644044385990759534990233552104465099584503641475370235645705074786948988943104106386505633032865453853350037151908739812608718819952807354225305970396459295551214561475349237791658474480180244322683173281818908557706428380626989757166840129967135335514260697542195683382181207168362410157129770012295135010693010549590237170149024378577762274331024743141940646154866199745348698793169262014508414287488966344424135998262838125898008538766287410505666163819648334813168816498109638683313139215449103783069316339708765351507535316039950035495862711751180186320460534453335723442529140192624361571859277606369127237523388185497925399692971132452858986190313043337726663480238517331752994057816692817854060753095771171507563711077451011858950704756468475285294505286447273767030724187350806978424215508077490798085088087600100862973417497581721623443125473633363623164309109689510776443379336625908510921427402327302433508667515216046561896321073149019206309027416763816729536476171170516895310810765417287494899110120591731480718252204845655497356085311007046159780254201134502107688509492167984233597627952763723290508591919301977418303481408097899800094587896240532083732909317191628507777461640294370448832882617222347817596820139474426391009054295299693600228356096319031822765952927045851335817893672775409182270162904965086239506259399347947166272439310517948646735725433575953158056055623761156019064961804883858686151571992687536317831527134488479570374361401785997467746757652372365111707969399119933043043736542884689765577071489177930565289939443329064270544050113151062877056927315485653315314142369942988484493660240407554707567220143373288642111520596582705912445298769500028944927392527668562072923829291023254519172647858037023587694296004135440348231533254340158445970006520228203182957356353739356306740549866333096775206791991389898328803690972343717312972806080741723636343931790733526960049251962260603734281872628900597910374480283804497922009857221253901517245712166156392609857644615959732573110520309631926298604665900680409981795302894290059779975547755952525729475800011604771859239304229831194633585216646541587656170557211367659802850474925342086436644271894162131611900011788003585155423520927925531378061577079966462705165787631475801486203827241922027583730010073165359662456177579466351690420462315170071234487893097574297683247282779644595882433005983090173277549441453246717490635034218653208607789294240241471728837998033231991937920793754081456957406341769762523282847908566322312562279541423802677648036177585736614041813431035654271422722280807825506812084703071611022853301712956381448054795512989876405418744481147587666850262350747810440333231323069162882727274781776524929378999927520525038594506226945997123953554786555654229329824160600827781791342077771561217191920593508080314544612459167788471343333254481321351597908907954472604357808941798571076524321182008964883413216229898408059910758569487107199291524655112472357387904092310797990229863978581115345164640374616711349564033517521481671815483392312760532013193725505911748194331707012381600969502486507749024902540711977753492439312509638460705540372392289939376055875285503965464897156322077413262132460200031228924228433691887806179897061626853086934831843415606755956255559109596894429333972102950742678642015145720531174566704177538530078267851234209533746835215756741589821473635311136215210014532805603436723578260575742594308573941708589437979833086081613333454697407128083156846608274604234694543584911903495925159112774489685306140288206188528903172688295776581321150621233283259652597493897572221861287419404931868998822246567456982528130394322473341982204202112211529741925795401931544765528909940177833768492863557650685764905177546916013065173523538443114783475420893938829026544852104347311827858003026648562884889582877756193368341685393866752445506331813988756332369907038605865050020478719043639891957801309548766678099911494001275392502755624462459972772384724774591352181577286907963218807379260847231629277170039019657456653453446866231382374837115211522009589591085964190611594254672841304267747479946798114669535714790289034636421564059189993422577892391515921657299732104902416530755180629391377474603324293553434865203162102957874581318515126373653182505198952938978160868875806998165107217156015349003891521916653612219014733202998492400812030598116386045842377321711526547301388182803427512964132982894627882434364446694995430329629426814843194466400304350978476864785617676015785000462521838789699953022341683760766046110646192622044430115742475780884704153887905381878221010058223390276145789832122073300307988227191170001932921966285562256415222710564058032070665600862855074425878253071164682528527391880287703367997836006859944853701978205629247629283808833454472938478914259353695139850712298964368549416864005357220393713788072629788893281741083983088643328329952037555818787011699432797175577154879262459272732662783969276540035405977395211861343381914067164744819054744616733859624363884005599025342818065028648280816980632182693627198282983273875705867517780417751388988935892714683001955546304089967561477183059059415872038578177891414525862548903894701889194829184880746661899832361933730329813621798553448851412437552800192246734710093268495754167283132443805847554163386321730356063107671009577913240034688447660136679661392236893712569555430786070815028805261744330192358793271423046799004086892905207174392401443920652453708651691551098394926155021281469911744662251964900521868353032557020644114586899070998299101869482839245180536189600272274743479727405765916496230780899767216363270677031901168442956808225245486745493573374806094483128271521367732061220623945409289663456406843690996138349130300398758524861808960981230239802556613143094265327449300530565631877065851877363233657235410661169927665573334856629520502762644286838107873444850644265306157200654125495558357841049802664495950871682813345476635072872038073330430612195987621101279938254599147840853624285548261447399674690078532553666941137318087123378764268839028477793136848230292379624309054709394441170352671135685339274058919630930041445499497139807412878487696303959136640602724821864734016705613385220692277215763818641097724657858732842214877739935462877880688244679027695710967011617477958793908024070819005400075874797650395596864402767731391063730433899225157118380126267821204204377625481613212626081947999305971906907568359627978769436157786393743720545322474610186552567809458073690782285242653386853078454698156967797087567651855687696693512153537791086034564239806204930671090352029087529424161139667993679243792988552646391767549332822429362655084726966412883312444727514044689477588872926874056428735361256987081780729249259770120189762662148262461345448431188579817902686105734953675050234508306791075290906019503932079333720635898462458767954376555774894286035136519232572064636406245085146985988192547651666157771517675906933197886673120208555266646729589278231016887868369055346441942437520353806518891426602599240216003398806319379482046234908724295733518313228857998815224042024723938981401919450593656994307048114397303000483275101144007601514295728077212543533564043652409513577368599885563346383663157623487426484581463531611265504650580660365763173528655791704806248857893245408627632618324504504278671932885739701862505181476035782780701222454514976480196102286971361677257704504010840292295921985178272018629353627311013499635339563783341694886440468606023841402347547288386834603624180203089689022341390813148315341148942223599718359930753004986032045909263206892550330426261009863054972077383798468536253705381976869782626424718219160714677067036590817931403015552287297417484520543449451494449765313341962072784536770536564918771160312105865989177496910785588481509516071640179323187848477583610465405354862110308579058322862469781031236220017975772882337550499628821937794487667584035444805157256247000243037020825527723135816130517569276129722934028377760407369159465190080798726959000837511038211097667301808260953145875151331787145046211872915599781685399916578102165253625397633168216843040882958073664578643950614993299266026814413847855229931949148676535731909043939289980511997512344087944787219573750816333060231858394413030275000885159546506294106477727439865630488692804278502372512799627616290757715245365807177677914953511174007571423873575806590727832542090765478746094670652423706417064853598386132267247359946903522698430563284144099002144229590527203342527912624447735232743359620918494469523017919725832020890619085890858372164390914626790064451099928505900065493553221058245576018282318417778383994376967207499458167389093920261742589977347097310008583502010931700387873642531082116474956941766465372656650494456228126465957989794483617059172494897564610546027380453452968605784217289988439895810565581916874451963301201957991866982242948053107464339656144293249322595109630965427588127430331189675117120809927451649865900961709238946781665074372692268622698169459609258849608616603761102759456068496848113258793363100601474414664524285825020433502427642162608654290645439395475080532218260296455586365804719234978088765035517787837685563010729239077423504713349079927533511331065692551340565289064880367073927309084360062958372409329429065351769769687526859129313471178808413118972881362096553116886218979805549274775821663916330848037722463531414557658178806838117068076320750796054972308943153400169738864751074152952935321787205729479212300277464104993936305471961089800365523078086228035578259629839710459849517844586457363186271471238926752288946042430517059823264012355505665650825197829997220654570678298109480608202829763917923350925957547452646659928570475301162865965264188600900689148395604331844785909753526343114773901367082653844904699168001401519188333124639254811168812904865730575000220512151770249166312068775058976389876505324916174470632533054439055259735699809672279020286197438666075908155801724814478012264819947292433102880233750965526263529071399378166969328372993537705467870725894357948429091685424290337123603855183263761769851024993780910072346842842286560147060652853251080574524111964082915820326878241507099719547761939608451686089672499663704856837412865370472718155901706230324829309945041126515366494622221486253347627513596979076452631592950429640177737389994829648859640454647334099304970591288023684131273981674132589326611570708030978315857017184009950515288258303943869926352395937741190854196914727714982211140447393010469500947034386187397075701058168201389281118853433362027561197380616501952699356863628796348932093271510651570401395842928796445874049770502791312903732108606958952340591316169713230670117807332887770060070902475845813259581540398372697033448100091621633365662400407216025490981975212950208239899970289043753267290798670423080435754616322092518496992135839118657275943036630931116587476174118498078253075005850607893813926680816410990099370768619622563389659786723700177947532970393662738839834276400833519355450997686012883858780197422431726548723012977216797033233410059037715675923676746736069900813713950009773863493822726270115382802157381558083154028797733881974842813951286704241829960657308378691600979937798864499043110168625312528961903261199865678030701166452779105541602436801035410504112022622671290314042435389587183114281168889486516314349192381388013356192684174962633868560602077378223065659654916003981666435279068932473038583809221357933614580916834360411582434337287568409424642674184052186370733450327666872090638295027523375255288914240137782138433557846338724201673071316693919698937845469613194817414040193601005537552580783044339668458850543480862200861642690256549419079522045982719015175032131144174537441467142217218950485318702952777699938571957685372070318953195533646981024760372382986708024464224599009373055451138102214490890972520416958146482788617467164285284604011247514101051233385208270031396382650471512002306091640389361810349151305817860636168401992022763436996839602909603201459777375530675058888552350527578512464969122115348888256042341083491079837412838062310084639003498827967019748672869609544288571741434816844412104697657043276291748360668668101755275563957420310288946733612174011176029738289535227126845763710939247740637041390740625542408122051909340330307221148770016728849066723982199907669434371075900403041461035371958489785703680180758159677999427074936698625056389405440132260557971170983385915603844891914249197784412845190592250576655330415647593075825439238129142470521046225622876400430585110558824463882351324946914964635061715543874860009121882140791212809479115763611057937696131563725052050770430225562727128182373761779988712781517279595615978404647756707139751533787473329163315776014756686377121018815136771761433653989609482385091205492880503278694988121229806761274316961726656136556590568814111995482922924119311030247925536067799584760987019397116122257219401634566026796282487334882344035699937720477711521536930013996442541176209394030356436843984567644265830752439628059104744302157332443715117495156802578996797055125752072801578146785644605299960925859212227344601763224539398825412211029093683776778236973467537203606945096027767780229333940726405134424599167005046752183899392868272869894774384064983876106553902277746043853511331285519182131298248429183896053407958263481698766239101582349380688333210858293291373935547527231228821192217354010624156915936574321198966455398132266076465517073464790593535052986257520054183625722968661504767279865935139108537949330933335541241592245553554961531371546287420454448128785968069725746561546405807258962501845892138340740568088274070914467390191861092855705427229588647603578769246414689303367134937391535506784771425162447400911445153724637300755186390565937105548158446321955015098058040973840553456616492322830496908700660120193437407323530733948794070308791447593279253737657802036864431179628811755535472602713055767606220949749990516126551511623569458138209191770650615201641968702590401209298759686773270268690857675216241304940437064821057925221176969031353130724271557022872786854984028796866675828492579002140108170949710285458095083646017579916934991569674569447247944569706015441187939169737481768715675602944330978806136177553109170799877009874896891537116976400143195621757530283380590237041811147367270873246277156805884794645937052720243069406418732206065246320298179033072463245240038626287849416746420033836075804803713542371800226974830466811478571561042680370853838192353646893424281425674373147439770920174506084633951047829668081292318400383781954810580852515157863083008771283608942806907850033760498067588658762124828739605838730304047837180936007081796224519415643717702796413401259701884036270725719897391116774795650550457645601155061967714525468207330991261104123721814831444365650272965367803469097788144774539888030963480525939851040429242732555224038925857311691730415384950939795422619606271469253302560517450454568164528501953711931344010138603923769365823153696991095440333973490421733845070675026055250312756943602838188713311007094745725235662891772727177791600465351152372552452879701454373315368792822349727496269296082648180628031623808111463773267737011186856136297291427481345508189017964118433417193046050647366019035746273953960960624280340070058934086187973701333562697058464666196789989711693883232673317405286017932924302425216737296348781204719600042264870772213021021576049467571991925407599345887591961162840938248626635394304052565521930027055803019048992254822536349311078753671409547694059158912490147235235508236705329203487050609676404491772127362318866180678572848164193171810329896129353519010065785019828808769372340583573055654866252474664026465680871190692904514196226978261388113035231354821565557398613558804747052119795261003517135422765082172099758840008694402757740039071357653083055981850735997521869251057124554844378254333008273561308199427779444112837344605836626930870310416823628038591359023111968681657820951438977940061656393088213342811926206874058756758269286585957224724097023479392066281481175395639625394331681784465366365689632858084752233560253017607388035654958922150931750352059433194997950858319233549379410274897786097333232780550256021914150076119804116819412251730874496561741353257569163342997809818631234596065828773894719838460174271508381377567058165073486721565875612251277086312371815321954835870555142432739398410862780892666818209039091043117166633889461680114036108109813157527649127813606265848571595112476454626756767760312240499250791901037812445695101082959354988638378502082183933358667877993106589484384851947227023553874003117801908644230891978015452804228959030479182370392122047371067913764045912354336536926954752216413978510068387207650310260855880624791052154548763380842587505432576229520663108400617342421816080353657131707881325690984130435276931379138676608241995177737930271312087593339264075709833192631616894122093891003973643734777363686826876528887954463014768592606442268045181436377285564134386470009849629833581628211155405912523553089959702726693086452701990623973683833734399993286324922517861834269495909465116458179498340911456403220426876509996415166526923314958871151288701256927376192482203723386587626385006063339527620392472642757190191276898197339324790886730365609423563567182522374188725208376178789607188405422166720809168660386598017569278286315807131617585121388055858375341156390675794637652588206191712944678456682994505639147509083484477468994672098618075384553789205068596699992954125969268266766655359703150427554717695604073840947000909749979130783632899513244178897399636522099604481548133143494647594743893507022651462565697579583175108557726253113446575279113331985339129650623740694216017171043009714232316166256585854210391021927554952057857559326844391862874114882776834307749981429379269306076827227742539226446414987518523333039220882181679571283166810385675236110392931197077501821585999113053002535096576583846278474733746014633881921526615567136362796896396171396640220780184525073027297051914473916668526512916160774713132489997537031792518435553689665672946626420295652923267821595074664919525584204562804873190970355751640706865341751367184520548002106765472725308237594332154317711425315078182436131501820638199691170145641905207521847446864361332445040079899694653832515249223868394650948955787343214484017205083702196948278442569567670449331325747713212489936254095544062110939594616506256219900641327229641337063640072819134538712657013982785741872554487342390996372202974650700421280737517714550216133195781456779652255653366183038086453807136062096333009020581937407137678811053317087360712015754586610236153323762348878219181447945636644049857939174730921814744490363907539453633290488859109585933443496220834935522817177161954148957216080759569408702958875321861764174875854204523413713668729895241745579932319042785796624136212626883113427222777820402344420593433639623354771696971120361838838272236695109615678413733623794324557767000811991064933116568297109376078587746461077036774347824814814545277470022545055944761759672608664287965514780595814370935713175843148262412498177863056208244115927977498256196315660421942808661487778440550912024666899738313789089279600629937168930470867011474003456380709946979682854408664975627236674477851596979746441273372611195944098476542157691142811871234271195880990630384040948246351039706510554266345474662520690295123460323358102245447318518959866392592445688252581377163169139956592218849430343981336713420858155521947948641717419989695284648193668756258235617912006241930491906612482773692641150755785303084570408560035935494320078675735711969940367246710146824416864745357036915462260147458090650255965965009250097369552318496361670302749396273746741501295054043504133819873893873040560444201414158087566413667690301125265828978600541994655055890188062137954352032982147874490939439849950748000649035780446393441485804459297024507938964081697214362220092222182676387950595079424754715882405737486377097034302455926525303300950865879066590111167840957176404009810645727297125229101655129277662642163854927458428529854733967215340522818388143677994392972377345396693934042656412060842969487382140130166993171630764972094253998759744783536255497416065507763821232843523774666813413390800772072393217045745493499091703580791631434034311382920794457512169209824739603037975869203198645009178010723888986985003858480450761792551171535298955066612338407040276065661580942682481090654047808606404389075734920562366676146169031346168318102245629132611506003367819461232620310888806869566183715306591947262067507635090201963770230696458116834292019793929604735476850795366479003765289478745614943802008383332383727391547863820500794648016092143093648784253494824188413177127040192018121791408145960153093387516589567541572540597860172369578146186331109889903965155899804742426735618805265302000731970971235375825389196736112938671495007428447010749829005509322256557741204929925344967029088140931570444937550505831842048305533004112902645533885035750133751961375109427684110389414151601875528063549836871697903658837538229547520085485824181093696882214040803218620105182416808811864247018001285644520557121934609530268510566495840933253219492324979836404176760853945334684710379930911765511983468793226140429297662546520672709862907049354284538830331166023598026069776427816825343100975421272169208404761226754947461488927276687482870185869012407028120333603800217532282106742368738161634685270508639365105160285650678873704904748711568269571674482668733996807567164329824198859987727906684628508294521781735354286660298171363485386037838719457294884167573904186171140970388722833818180021701720931943381085526649656341596001920624330229877831261389771290706934253850994572393204053530272087313011673130300570466688650226376402376279350470588335079803289766454654651408429232738114470823766361436861416514327550376713447040808082399482007342366019881730543693493181910494615907222484608191827036481893617951583425720711533068865885930901992215560405269402451454545962758763991368599816572456111902431461554463116746480682821424921552058035743862766502129923573975217497952841915041386273533199686711267868714961932340562584426579052370273263860445758505320559578378737111354620359928436672360392655304196940985513205297130358229073382295498338217020579753965269356604627074578525504135229866186015914319656551358797633880718350322040467628423775399657328290954430927711821070464286640559213950649176113088174254735313957744159135333284344888149505258565660426150564823891766352309170278142214509054221367134543622863564182653671658451031258962792769288800840721304094397360015086712458921907249981317627110589891482643393202623302240279514351693831619386943476050634876847524349171130022345929076297396685692551623691960999943251176920543425641227692805445843336257532720045136425729515889453621772457144824997099465513331170494341535783981397754942446650409674825765061341558594350077437036843713526123163824370865885223534776968976366328133049228882474463798847042353741641015743447957503911038642517409901094981493927452285886726671330551762855082190371639112330957512194228557145467088646691645246368808643431539909032530436685689111405676651458527039728199373718660657289188679653780348436450568163305978909845212313914442802661370039026917527003800769382935551720155023993786410515564858449885546763348012278113308292624826377647163217694094587900286732223222197388885296350268692249244951998564517974818587626858957853600306143787329711325580537394075080034876690107941176569270654691326953760353039528632009120824499065763596133273798558206659092154722897313313241918094931600729373738109679927898199671532897542205536722774958874556653489934813836590530011353157613477437739672135272289015327280459514234537366862543887532923087953054954201135761670469172247630100446886908758104123534585779554696604044331599579984446029587886626909012935571539449247836397897180378448928533950638178795737218110569526105722801921965081962261371274472928415433201593162312571384071045549316203110292960046073179817407768972624628436998571107450873246260751089629848773035342732260085014732395104534672210409213113032528667086098213053142260059180951984311876706513563455980992145079889679163713484468073482088452004030690985120939422900312028411661848237941071594681823864507635329248763336525380565573296705729013559528888783477038523990693386165749866604726753673804899656069667301904075638742261967685780429562082016012493955690761059541849036802863965059587064846573026676315704835709036817260210407504924284267765591190516598117845236385175054019322496821555463700733654980210923526723883986504299557539665810525281842069165147961448383126611665233560237075459375552812926824332505538450424701081152417027332114231774078703993868249558311488445107722770745892212923160936707264517478215280732414036152375955034185813842506419689715602337934610516306811728081999103912759139904312259444491024813375325060697766834047186161250081756573916985881216991372141428647313630530740151590193950646408779654330986448866263264029246052689095962269465880288509551555042645321788914295811630486257507396288302503064040402830087090965522692226355122732455826219958856816392471642374556687301039495103353396323017441651586224462688021329569427726349257610149881323450893501059388241775439214762947961173886185304598249228110436371267209264427602335314280269692895658955520909392709921304101281488658236238757859867521148589702012296285838269973077842513135298710537726070125585137274419840988155813481559779661305698166501789663838855364302220231335873080455856789519942018680348266168989340837173140174775557385536423521870766296003604961699367511689419422954682220882151931054574048662283582533341851479382798219459119278007435381778482673433283572104546158007176835207330344707880737265462918208958851535596775541622630967196692461187565764624748468775831894201090284124754582694875275171595218570689886740861817397285155367991569272092434561033271504568638810937406839397572093806497293736853898470739562301333879845025217868341142482056299509276274084270117490994741200280625213697305818670700880606603949756239913266383946517200653521491080602074485653754654391862325512231451637477633538519960253621996388227034445929856703194900070903677109443957555044198124280883736319788155093021258850030686665022038082242267008462955658699341875737031559956940615418243842587465841676629521680472122809193783707432870613052622726102466254544698915903592180456513690752337369970212961232646605144977544756652444489057691256472171918659056431815202602295887354669710987625107608402203413655068234661754247102243611214576995065092825708409395688221556293445317979424754364911243021895061254737467683035191163196550739530144453455440200970802226690880443047645813222999783398816702911251764751175943002821904931850856359071347428441176969997439996444438974971060017663712508025814526909074836144958052393857148338648971018891521815773537783806109393341287560034041971987052660155336243370594380042695937204305608766477576463306234890692168537823696449922423327946627792749496379301137475312551082459489245607443261346719955235001921812794177882985836215500948619916670525194092220905269297335484235854772451916726831523942925211879804009671301322547294029217905924529686306557777688377415679495717939015634205778838408171480977877752818756285529974339566394543450738941525720237758871417770215313111413832330783006527800008554770371214360307835371947622036143245659810766506412390909606239198852831613605776417533494515086918772965437449067767347849839227566096559434975069357098563040717969003080128424382848095634458295348335127269320174748338831839334873138383774136159079065386359086168836502656920866383499236404091541692003926003297247785890338380482181526882736150357528886645584089386114377726472690435287756537597560055332284691630962933130244290667125013196097021527537241127084578934853227415539072505384127710539256734910747057908388909674401255996809524918024347495580270219323307493982395703626890627016787170440466072033640538495732736130208491243006408354271993793640451736999192207542911441962533154582278722634158618316609666235852116997425281011883518266339277744360341597617965311322024892113810341077459707753207836694966487786382911127015146848321066166087649354806400990085072404822603181426652165138317249140812874188199672545494994545617759625310830142466568261854203251156534230272615142109916283161982357751180593410032495143660020366857996912995458270029327958539183062190111021840939145641954608957850552087993260229868574672296266778023599102619275663621153041928346122289161919668961733265071425616002203852044202561893827491243005311038206881260395992094047472505930883018110689865843318514108864597706310693367271344657138809173642914167965633273986309560182836715480049377634941028464716055716372211078393531893690578922063925247619713938335289897596779295749865302354716238626657402608802479006210846426185643039135368582541255434798625633806202448157189742609834307278296767275358870307843901839724401208394241561756748337526791613407585268313992329744998970756608290029629497070128816693136867099050117388332824655609352517356217884568687993127922401551952703043278409964956897502737411676035543125033536310378369091638150060848875310087497769619691922052278483654873089166912355856572402466290960664716838224059888619603114842639963155073073440946185836785801557023639672236473372670356873813149004534074772424400421426335304895664743101299875955075726605674615309282584599899581225104782489115353147033055378396698830594568965319153526470310685233379338588102850066876527398521578488537615972995084560580282201151144190357404463243611490489285718028205216526199837002989279293431672882869656031347528855143260305968225676754779372215177079835158998922969806686385945095130973484617507705836727839537671139609320606929627211694903677128684740610069555752898519283880099276622852307022527260384802417883626358775271098321999725936817599285159175617357322602039453942420335729844037061011623290197631009553153360991677680130773591683268540880702505075273207224290570712909995262184117053221302300245375478995578315870336910846982041259426624323446963598365396191711318767232271346025440193657888252021703291783601331003810798843601468168952847158461749791181583930313257800821846398060494923591388937337588415264304852975347948885162246837942570982006400717008908947829339728820906629021147667258511499242346602732053555969834211567681948468647406330030302226076771622223286786750987185712702399202249531041272842545924139006309576685136485620566513871817104456385617458036699419287733892844739719216029578067754394576994108543990652560454266034006236781208665537968256200392124926250867574358099646973374033487774382045634890690395991159455042440134583335178519650456007018818929493544465592443408108369798613300111618724342600555285397456768577883363103690798134528170252524484050534631597015377828826712617345034779896639995685206925939845690638911004387183326186420693118579287018538863557589371695390182568510951058652989844800754333255620447899189063496743143660055721699780289468146862927811434407980477443777719956098240673440096596227215475178865693815031248515003944383983903320409392426684089567115845626256717283156924466826207258530025144544718843987713732232253133927943006783344566462678193264587771506488571798639403943840904467526650925154680766518019110083642203397092000188792559951521022140378194429838903366187633756348678537781229317914994102597534681264085689384244134210155944439647988346533542083187909155165432628312987803793688032650727368215808135357305448624273118852124221779505589328159756062212933397812080564495799635084256778928013883174022912783798381015185059218095092558010662729500237046150017647824893134860746131143235936311266228002079842452686234107210009103675962612075290149204900390697840770920535055665800494379586902889665447422620833523099279749837798489102698931908975275454740477540416633188531529662659018206980656033109148988958150649290524910061169182549840031134036171898720942159649078259085368513642663715349379787114072373216728929730094464852506489296236514816586251412434980475756354551617419651563455150342632120119889085065252343166466791746610694651611073238862468470742096713835283472577649880224500425798495274168535709824660704660238204155412140339925931513140196915045330560125812646109639895625197565728672959085951845144662809254535457139129221693402972035422353109824837983681748008076924530861108997429597794127219490841010529321424855569562926990120983031184471321917743337318756048323453300964885072800954029679291396833896540116451953541728210978204744466909881757734423669348690123082728160206822842708101547617548216556474244412189745632373182873525945191876299215019302215650553330311373562169209114804035664498724651239823175090410850477896677175679833072792799646651954331706937056170701896079631270218985733213814239138144216143564607720659749399958910805647025136006450113582894167929466195326599769071680537411345022085789629425137272067090295244631745360889157770467073781929399737118727352445499962302627686010744037202515108418029606371091583253200028175864172988888777525574994613657720069162565282148614665630449538874825946244548073983531265905356840492810582526945988371531903768118218995822893873572822453556336717031300855184570970657858275184275977226906540294239188194430401443639455791992225199342381519539359409214787257444429463401889327931855783980252181501865605841706385633382261690644543512599081786611591085617200848515485045248796922637393748727523924510502381167287475960077911351839328685908448953221885919705563099080346742157384690587465853747225533505559112860230217076908722271277856240038927925619549589076650154818167686648218637860200663839610799955948627105605551534181887500186419967187708707423225523497088361884779261678788036167969990180298997656468708995323062747318602544254034388039262415196333766794021200408246154754370825041162577095822329386103375015009897866807652024306172181642751810723443573207765663888140601741612517391923322048140485103486178714127153631152751592062510037108324611619476633965185929284399263625674847070195560146354555803700002892623768794783534681210513315417549141789550570002255978279123861967462110835517156003139277071363068328042919497783749870816231536920047246790963112405509397690341801203842574318358179935562867065434584224464607411001818605094349647039261214538618278391150121949617285853525267777953544103979341092931130434578869410090744194381774069802669995761136894259628444267859868022635254016496401578788985431027253965038492685300274518769629296201391042046521262565795802767489342584482384710486060647893987214142259512042998813282669773772846987449097720482950822724742480815713835860260576820245661028496939488008605983953512950097868285444378407749620644926471948955369436739991403741210649794635922041466163274217425840518870209339010008802710671078865069562731408827013700178934798216499809411239542859898633456050735508286764738597372844987847367278425132003244199357808068290790373695987169824471103874018067057193107343929036852508789261846967760962501489772390030882894745728336345253699794966272472508583476536439293654460068908818751975160864600459094019167805468375983038735151723611653568763545131234397202945153282568491591175372825849600957646448599836927081262942109830721482037210583417403112697017810957319829412582374160520293763670880030385678139080230435823473635273215105120088622791388499996599151971049555816232724818931490530429513320210685279183229991096450359347766514684276263462158600681114201926066713476342792562291984610614732865368264301341461972660020029529171580920343159252482777068839802918867722494195933506925539269807815777031429264613774079065373733406225405493817628642757153662703974348647279451194538277174029256659414933398620267488689784306705978254493190189097868504984438759494949831549365297994906524208200834755029650320160108030114629770963118529552366254124145805079604469431900902936370035757297180575467256837329295768966880059904630714355303122810852494060176159787767147671842007181072430780918730140274610856727612051680924270952492538483034965059783605110413000159288211801595102200707407652594472162924069114339828958123636783249363295996023544919563684917965545271946829711692825440940468922259586743489284740853189215668808553754587229068823490875963306857782908518003693373034924057280025661292874293628396374007905042099181628231821311664786784101702730828788959819861853697763743549097912121488143229247317604791712212803682479130800435214769231358922786641259017330221136835519434357413323992365775398591916800670890386504555146731531634555903559850422058011947767691427614077990079034227489414979111188672758826272283492008752026740966921898357051738896979400598842137470761641302413660085398256897587368703135646569027342581780878467457508889646894891337996641648271154520684421027950862926268398080829734684763985409125869171348411262513420888678845094100647495562207332538251676066493362121110850765458145375392968654207525687222830409561526641397565981798368393586463962447851264804069174381429748976027784482789145247473068313184523837239385689903707688984926408263624903657163824968430706631444858261926186129124053422668337298804396655348910388461382861428103938185498687059290528793165852741040143792883067473680774427809258704242107392219735033554832059511613173301446683483036747393841069919520875530532235373284828955680873879521138876080306025007879147794666107929633580857132003130225992919152064873190813756693347057719684813293369587645524172952957997469764422274814099289628899327550091952853541635816172870312651511126867632573126278706935919783143834739370140219571614593384214397344885181977114009737775003096478858513805149504886331839264752447135427775875890654619114763864437445348115733916036356095375531285897577690997860575357932085008654412529719430573541925832523771289747710325837020966600453487651284289007112181865373311271889801426572900824364895336746510896830500564619528942988168095974388384019788231273219872451002289566821739209523714837370913391579799711591025073654180987775755130816928435233931589066154232995358791369469320157107613594152830702369287322851700583420961621850986153793794844843089697805216775552929271763020723878606715205431691406568491049619296489146724763356599942977662272954427035953318697954189992988541563392899091038508735298377068238973521450079822934646334702509696195569754884608722136436757469314244710847772173034436989175118824430237946334694849985434032601383969462337654529795807131170912899698933622825749894419032702508512046906687622848949795057190837725411699487514667661944725400079960758044913895874208912778898687135550710894101229290306428929717848514108289957664798301666276161545364791260144234762337211076840566017665952473179710639740012298626859852884444797278371129221779527140190221032782748532330383084013204908647379845371530631030978739713884199331087768382226438919497702828524547889510552312644614326929802089349657101724756915759369894225328160299795013837876817029693395516080369124319847100889959534575080517749641002666858657478769332538003039664051811820962790130975579094233055038883137254875284452023859159888179418417028325164999466105370010928483381344316449125626106777793558562206710146845838784223658860006615124086506229825406060292262046588934341665062337122471075278884459108170866171109348922370184497076549408052145499216689823774085002474810933016378638070625990741819104102373133876648872981095115066295566163032171755761527675043144563842388902159741127449294148570305429566135369777449331981768449357002880954441226753713934567168680221649849228517232385777802143925638289086707040601407753714306472535251234566747653475234154033668787436743236655617622923272435850653902485164378003943893548444815990649368637960088789264779378549154665144209651541629486853225498541939520799850826751761132393979365383382353190161155613388808520660917938954283939643672204681960222531056244216747913289526824950371864467067500287557352704476217872084322461218155274246946282367395846870287841672481616814777038104984761607429351360839585128477285910861760293595815190490144245719109851630877648881835416028325597963589128046420171938111975413260613168316057277618900677523623834553426479449662810373521278887796423593679809841009210505237411354899751762186189120633829816129674675331322429889873665451233453591643895678493232857970438217570320624425511538641157075781181982697784919529797078545840980744933931518683185942691223073900665789115689104111319816094203963172531600142665650137824959089643976216200855644538576287232602081497586212370324187764008554815490923676814156925988463394915834132532426282530495351499537837186348176737475822609456803365137939352564244381088976435752101839446490396866022888888270581556501547050359510435547256102935634938979976405780737327150594545254340052747138347355515867696947529484047714880447966971148297409622301102144769882275162829581536484211544404268516313151708027478170203023378666897336553359402566805343060073231015967586584078756308974326888896358231694200163483446281329123397506851939385234922658507031420004906627900521918927053022743593409523322134446739355337045586613336050394126266499115013017329907054819359014932868255867944339916532362176281015220466437324219809853107614897721171346697702671457600355658391738194707784225532542750065079913479341450648440109774700214269672414250739631270478412887069976891319599144797274844622905633157149134639595447706637550648871528601422423393117123609819922668465245043960838896194889204939376673660715849455171780479891729490781237785576411173738261099360008000362716778605171772135044528822369500257972905707091146088459221755312143692617495122619900008651816864008849730898607827390706324406183035363115007320200262480099529268362620654468360359569255442759966467196836237374178550456338164219965190069444717125979833417570263862681000335137025305650368725544218201600774625558422139400698426190037414030013888153292449769784021349251085365573743078367300243397864937739781467912060799448756707785517628747538427321615929656855345431305726949318782072780638534775792950928764012069202017513500981780525216459869525903428395923716937596441216255078903252934047455510082993200103409853821269982979792363678266767442269859551452564621946820225554066686375367178072816728217119166316007088904903913669537763778772628317652046437339698272000960178946695920559609473677804321789661940077234895435671924167609086268988384271462153189102450411950895829414705534778201523541444734027418591152753586504666182309308560658581947017007546782257828217835282521313268939317662740062269222698056828153477904222606961342371789568514589659517584545401123113857370026940356510312446538557417969182109453076029015185959659268980899117263290807359461563495098236107596097018733969129077157549023869692828883556777226191477295413149138229360926107986377735985286981228405143441704130050892897299973982454063518556145054474520445297452841010303753757177614409053515456618157256623857953513688930453534136749384701103400875268806777103563874421845121041191501815682988129714660497301406898164425080965794686072953566725998374415322815111788681388662626806666480592363994160623748691612065577903975737339413134555137805776075124861537057540549643794887676971859659621491938274066649216904375393444811184782780337371645182701988508543407877894033164300015441529355089589383500955221618970034990504242649205038468940023946500803718258235976028378973219804112559979397286943955052597843549750065541016414429368081345219849780299259868013308422194181541593685698285475506340009995716501588167343427720480867880429780990668432540066614896800947725993667111727177162066906192698804041663194260664484584770308268836191961190354955203617494014922021881515928610241938349834843423625519965260876564267063842435014619473067259571819742848676475822147098692471492552456829244184855076997931929522788857642589785194696588617082375701278031351475951684936867777521754343331843056061422801823532812541253103480461151107040015486868930206211804936564842823565289392794153839978992615686281253565778203470047264276067499425942404687179085019906303382231544837479127421563053528028312418112005807381510040216703703216244341429412291557043657203267680352556219053443829908792151040562583523108939946960463519530087689671780926659830584400682317108722112298769128623415263054847089422773709320645878008179183247754237083765283279375785857182197657948311525229621055551056666889724736472611564442779926574878148627552897676140691960653263493028878586259724543111351963926442110089872544925282563784478956206774110989461212984666040428360887583570772428054802758520795058782469368484468290010406800397974683148110067194220035877916147808601128171394088957009174333844363669085109529376220707891446145723472857474740897810949897938832082181163756976729785137350285188754811852628336521431853510045071023026067797910429320909737793892293600651705098436815930155017615220866567318297070398411386483763602967280694327616222770695699420228627770394815314270583017424454565584601385103929983943131976020499247386779647633900364639013205772597211465293200939442003121482382478884114481836365815995807833024399353767778222977582052986795099914000296197564116917966892035106815818406884659119238647530380278917150314946134725246483712796574515127639614646029234687439572916115724271332774706523159915023943292108053327018043304031127165002892312665512015969293038739939254293205587579942760656562240354229415314277283478845284510573125485205407826545464236237593617133327742073353493600056425574887208642541079613687083152020924106188521022932014703757583930931545049878043413653336587180831347412439908866927823359825806093277215303149114201380416276658073847615926101217593083758027357509140100837331837415359589868209708313913162229450290447250024159926123052664193656313131765091467115308721267260500392539554372343526748942797140409643664118092476276815718838653317349184128902154167404756684958028112578079594181302139120803246168423736592473600143125457484196576831959596490999884428808713962415804257124984540779449349946192366292741877868473215802780842053113488430861889778488512982983300441251681488873996684742929261983772062382939768019570909885314989801659552805895398707338753765256426967554570710124588457190790527443505765531703118215513796119455254540602877253390652758470815378508459748512480113699130632112055578672315158365692864142127123573303008473483494032742249475827201927249340607709092494129843356858675898850632527325013514690522448032390659132300073455815250527289011150032612162868521339103526674633837949513548492734133768514618755887699980339814553488040577237443139406068409952010868713860236716907959360950603955264478810894462009415106519159449378717243969962074820556723888583974180238714732060711938157109835038495593529559548183158958023050860567472840061155077960569469945730089772097458343411375611481445321291910462584643783240813259788720713148336949788720159830247425561262067983013356308550082060196831249488232425106798332628602578135106249328824297689075258328649188916081465047129488305077250786616919511771281513073621237516556634175376612534663611820097913404195521230363788043830200348527747089787103493210248384524315458334968381383425025400552745218412822222159549422745521920253665056806596443290741958898368786316705862744105294144907304718365527436758522909494135807707818417461466665117418206039408338649905678247555437149697628878755361848080763917753534103006750955338720145261640922569548652181705445963727950040277851907240561312641163535465909620417786831143773876744503913065762105038344803610844240386371193994314003376117389685455146046902135020940869732682897273456731159270577029346038425700962921104585668749663449132133948906225303721244529719122950202578052570992215673740524415189778838332314971726234228314728732651760773768004653284895453503325915329047572497512232677873898501264938765608489396483827691942341342921035357942771535510954592810609954368188318605533500714245298199519913452390064954039246211232439307599729027698613757093371637697632223804001610120637496512181923943586942225879825402764481094249533416439547354178492036788296489089793265406477181281639105442111781160771889585792021922716751607639937341244805988298879024204596008815544502390110696313282396157719907572087409141540970705483134581045818811546136819137164037527451179079105002049107443519002977937289159817251781987916703913191096432861557804975510230965596692898121348083993237821677274713130021559855180171070932884778316766121253065021208334196943489269859180712359862977504961511458391161650931030484333819199784797071083487215646106693947769859749872019393402107095487436827876693518051880520859175664476623369099421125501575274435861867698596060360570249976313293547767942685700668086237152397036778984968428151256969255611614337544475288740488287278332128502458039163641334222277424451131980467439269761278763102994253114318831764847520035260485534097642045936160082927977201978134312630815849058277808677338013001750872351091029010886473559755914789432136566700173881487026636455350985991810893598010754781864436766747087737759704882842850899282987123475506638814537242622331263464704534751115726366266652637003522587722281441499826618153087756028397526583833493123353209022137972044976342503124187768563402561023489414321842455036678658927090112632047566386485650518950948510943111054054251510462345084057510601212575873267887473554862320561481790504513205355660852168070113747583025521833932121658811502744099333145444978135394316562115119196858917770146941563414789387925041638948870965281605637180716945074089888493195670914318523818455086536360655485360623791605471817217058783844609536216773043426074963630265468249191484765755293116438123898136592454569598407511124036270584755537359977665229847800072095124239923807501735691252395389805855573581927115354727566455036371702151740446819873198492796367365139483029391723802531072929347983916374008781493815389662899883606732230656307955791144571922594558084751461382606046315301426710878970066823668260404308898696338277335253233691131090074484403404156028162403397145857582016457665202332045116070233045563893367872707905729776521193197980202174427875811806092566394738087128833984233440131630122680707639824635352726604673942027080793947488488228105583805226884795417046726763167480531534572044957414144818064838432683005243983508081984736786468939867878457668611199070434841732252149697522146420544547330127984378571964918808098058172274865250826414206354946467978802734418710769054228125382492482020491834748011607349821873931641243498166288233213591340417777684754118300319211019396608366439482021344727340796881828341388126374457856322022733414081149590657832539374533400807399814666827254893838508876745939573533745567116725122483954278138390077339008461946486937165412330875835177744683803510012511714088569248159905243072773528911837688731891553148786268945638231295776129927412395641479131419396501308343941369525526711312722869601562171597945833192869061200176018103303515002703191059936369500246491014864388283581951072021574951202002262808831656863950973930954019951666071216373971666075652368744915413054243852974192327681172084897764866278709448907938094863651402697058271871748711551093202315070622412724033343520328103913892306047993194814079290090713682618912854406462045082849598669044031231310407083312277838033923577152040786895914461223331097778965191698454278949047569410514494417467883747244230178016277591183536252030825145328777629040982889328152039083110147201700409525933812545555863495559322848485334421998555261349185565987289646503820670833603753720905298559125992201747040448508446372062292166928769390085594863375958918823928688903678870728560775808962063073199261224506962224945766439860644366200186824790472562002888681157938276355316015703639447019384729914564978556578642485856846987811157434346964943895246016084222016522592082367450747890796377391649886669129376250561774325984091599903498594308095912845507121327302794842096946965540332878711103577203115855660327283116894431634253739580569516709199171605279280692384700182603314570506202576701638673453730792286955850204009997078407294302409149007106059259967891241977156571619291647828027101562513006843075221782184835862464512849645962419161384334798205126822467410868154491215617326771026524982544050759341909718349997586150819325734926498836393254194056445187687893025751033797480378815396939352254715994102362515350995692986805530735469738708412057862038612089696374090440862925878828944954418773639817741907796621162910544894200374867736825471348483564174406972402313612190749140945709125620909189072060462743987139289304316955292935764350599598306945144351049755351185702723819656600098797889719235014794377478425802054259369118972314254587852076889505772982402946123974029368533403394428640187038179481495208408847083081212070354924524704449844711309927681330427669990785620062048072546632427923794597802092051271993071897837303432192359612462093291097307178866996395384390835495301907732790691726034070423741349490343502414178862658613101843484591852203528479737270759294076855098213428970960895389773276139225445495177587906071832180495479703718493433536658874649768748488939680556917475774156696089541264924978635882690000103321404677304501259744279024887058588428286517892548515105765987686618146521714776501993173345784104584985574284679963702334992861275306592492872298416197058910552836760259626883340665034146495818714713014615890775443614535369106137911400444739155163373112363075422340507303593918343641533503688838992040605615923686703964160817311368076331657860022844559193135509291438825770074697851016857081639220648737630807668591176707503020501683521353539966626489193781100864129427536084553554114456025669881792763666672991909017332685638875231082280003019929664425546908215685595775380746432351259807025555457337254812094159621716405462767570249693351707350300518989537682546328775146935404955914290991933814055263172273046997710655040882941131581465357565960644452483398549010726067415315723680736264144819652514456837170169151171225427000855073648152352596326085316541149040845988888511644811129232368719785585841597087810004770338107016801893013931490785338660303637570929225525853049594925792861834831357687400687932533459953339619061600605780926750149730811059133501109346787416533836046629862875383334774848849260822276120266409618988312660910073160781430988431677893039185057985416947914559640367874168396737700655424526104453524625195315906809925869962777179400729431380180853643758803482910983381623742727635793560086091143570668211740973264179208270942804120423441037156166317141269771198942355579128388947476600902689724306109233753222817423175499028917607540568769709554743577391978483136906202697032574941288715357289533367313915111341821120716428433930849793979475127742077521151229601520648995938196828389803964721372729346445311827421563374859814119927811435691947938543333810112340837385770922823880829709843778701781204299364593251913869106244853005675596172544477815695804754365633615174111493269201008888245975689587958099593030596959680240778544167354097178641914862015440906931130281168529058982281224621034159027508279950655010994135803298624547136324321349444638205416362634327757908727059718438993046845029919130752041129151417721260840050166430257474834645873850216162539572236020444326039755727774370464150830679334739916971420169015936002931044350757386226479820650443555475069658389264936365740118605911784414174289396618693557932878035792027345531874881720304918578233600957891570610981013312212959441324774113250439347526204270770722275296273015753849954020839088088852219196875567834088892371960700843033130865448103949541596984847814878801245409756574719276562002565915871121395758030113872581061813649403704020177155484616026224444243489354619315348110706265978082772005660296343835328455146552550805829966730280954768224710606401427976217575965394608703604274665646604726100496168546679804275005197574044585960172593010377157354147552154226450800984843327403987230299344693124518511995833558357836610908221479746888033458616833839335683870131468934760310545136596938546709924674982275867380662088592015385859077687229607414602722030746410058842129495485882484802409029367649090602022922810669039546446414578403156880183260373074417529831013682267818972900734966585081435697471275553211831264638934638341019734330431672005025919896517469427655769371406207346812266589407985614621216665370937275561508502423503633379535828845415038713588233160854432049761446174394165506496501174629910722646484200493780816247136667551662760219155713886814728064496293726497885831995867137214953696888780874644759401320124100316815470657577743556925873624750333920964520018224435218301454284439859676069915240543172282413297004733290833165076449617315320764746299497041605827374866799739431354478697767106036082222857095815496917692843486103687701836374049364018278608038484111468825378424915514707442761513935223686177082703696182450115825679108606855344497688200941850402839227678655099694030945457842906121864153150131951115921274559866442902210874635143309477595319588289299536644679316474987121610530894547939915589978081109964322145529957899689699538338676290963138932173023240198832958317353801528507853579588113543882378657634504232537944250471829630295412880460711192551569794304576779442816542457595597491044877507692606377784913503321636005341460355353048145237411300424914335880338065689728707487246745579406803285132738894255444214280841415992696569323859671590495862477570499964823246332000232840376349465828731350760585229681952696198246002471915719973528001283252870160361463376490173129048575667917237512024291022617674436941750271916537762402489527133595006716792143252451868160205545004561104533573713967179443846055113717221274618752877262320770973572685841649609558382596899463072162859614211568693066600037296401393406622862844676728625345437881925542007202188816901915687563576535609240570316707542633951408695156836574723265002830849711656153628190208807753058986976236429832916308225024795725568443841933870038447063643771084933337125838858725833031023920258337244661137163030275378784985310656635543443560984153522816887324374248684635001639754264580792736270856926192940324662398832360536618655367627654835122038118563383394599314575460988986299633688227270040108320713816582357512232506785031057769256903312250196477344806448903355599542474190995843179456425331984534608483652397271262385572055171543282367932363882214972536475191157456092244343245940136421639912791904979277132280140076830718900810143629823606753191880887190527171055660976516263477216112819561628641245627894105372350025029984395206345485923434663607283965382094509912886777810170554824488118156285734790256116915699333695013063784354374439717074171856224646183249037568866236525742811021659923655567326686705822882416656346122325412234788466244165157613992679827861266935497450824013355008510166367058095670024076976476283843373325588265220432268488544613392431168312534245959912030406702621103758711009410651664541445906398249297942682612159721483510394189815252870719979150509794141547883946552058691217781481152943168439797480376693477328545081262591922096349608177470857032779619651143536648200855116513005363799783813489333192714450539284618308326993629779537588623153923034548182460049947146204769754403610977183825897874361930462559875390275244679729533533588756532595358431552709549841272758604811996838421796094011135710797028573687552959582538921929288727558668167626700739021922520783588884888792609164647228136879013609936680626628302350995896754300162080841840556851632958842013160618263107696431319050135166643221934369374548327027936957052543143360821730171660799812594293140580734134417223190203495222256231633471541019377036749404628936230859439642376838719162516073490000471528082900241498941584998426573640909472486556544560901145274569447223955137659614536299445840493438606777927718487215962819731918180434824918634724418146684331904199645302687809178979677620447966788951880551360356979223980570285219178966767104359096945064366729769379661257216685567549197934009134842816200211590733278171510239435100892856289742401111129757386136831260565948293817415695933169703296756893372905717977926548108053907332955647926017777549601555417540913835796487696796929068060718578350149527493269088792708118648065894028609120413850543373812784813930125728830999782999060339400981634845256836098668689098204809041202289063566319459599799413234723899020330208504793855160363554829618730776365659333361968853205225003758436253802666467254602297272275680422234146691168155510564020186962186729828387904679778342922927924307260082335894991555971835711741499884260698123273527946374096924048171885945021823075738430469388698018424223719614261240061692290944819215684234674665463542247187195598361011618594363159627790013430172864253466731903281112952923304756889178977507137146913867129285288647648479500999558812203308684562465172489629044886159268083738886025150888618258111689409501615123555814173764226813654048258713059233616510420094495872968926054058406926248797919534258522992976325133346152181707994479576705348315436891995375314043641458515310755494527412013603968774315324960367634462858456596318441418648012728319855258993846598897719965923488833032261355875672380844524308340022057208961134160026282851554359788147419258090790892080844687510230058089301701776846024134417676387525620000541915432838189780756339183891406765371684585166822270087242927436912898482712142515933330209382647161440487507185464873923423102196913676985572714732697644460267589717144505124125680975067339024255680045371390833182082307674277952899678497432138516945682933208842001241032991971453121918132438588161367128646770504494155418576734494567064484183956123967196948555904563336276041357946972543145180535808740727134603553867283479502416075091422320065264179400635102501074506944402375647183210979411188344051619481366208701894414647596463307485716300746203269615145612321945456705258655127604076255502709461507300516724008529980298838531375741993370046116559334442700387291425582936507334549942363293784248656594817151095533369701318603324074976631444322605262334651627841709092057307840555192814435838939596816640709279437389699881065848529784837286355864614082799663588637270692437570407732532276247053092251941520119203406809918227745634487674912510404224972620245478879578462998065727828932574393441470398363492083557411446089886798581762926947572229120657885897313702912076422027130014026939813150093115963531451559154884202359097832700073582779162326725028144126991938077840963976650631371114526918341944149083441944898045934420182639158892247764028794511745533160693764979058292101563589736402833379655552186479974143105325633326969927539709083545820008563011456397182812967963795985086817797692158985590905072620348043080371594819136235647546959703232633136972631832801509902484183517803224311003915787936602985544607074621629407190545294966432546127836328777579615504036235934135607669035870941114432584513225014762869261325688799335134018400514439445411438221821334999706964684204735712606149874892428511335133169722760636421119319185263132283140627414133224437444218468282352952452027902905054520415763382775051136627586057658950013473976839804579812079896739244111442911739350966340447169991073056313967779084146606501644879523182696128189337393742465855362662213849014643513775874539490911950034499438515850169631396132578494345195027009856539408857667125549326074098085401306096621679422077489718859116198282521613386639215228006256892373629890403720237515339166723075946149564043134119599459201738765127827120328933319469431675926138816662142773216347475763179660169079889407409737916864441465315310144679973178230211390081717877719573769653537812191741959150750328193546113701213363467554755326795025286544610648148865531993004625815614282527706690347365243677104111836187530730745681956918635304059207881752346437004160857995493773870439098484509826835003197137190201863197379302083728585270573248761502837794883579046261955829642932051279789893731791345702235358783808447867869317942098748830294898397865634230534540853227649454079451244447573134942378908835272118196410146197039307029505272520951144425708279538288235181531339260953498570290347838391614704110342199274434817341993520407258161626948236658869688053144382484294105694525846542845946704367943392799996344688371484720306542021927533310612231291142843699481048809188511083836465328734905512263434564568700222296242660041355211285893491098283930176930234115021773282636902748011955244758005873297207908965619588899804412055068862755705112556753554404270300714214932519848505381524697906334784226187261157512095732222543838262167462861654723636343018269724291838842989498011427065734406822005786887409944577872807913425958247950973564168648626432821926073379441636861176493610328599473936713439015200745494417321223532314145668821287494943436825313837160962540691916393765898738812859309911674690149740087397917414999168934581685296878649658669012669045121566544605713707385141699933038204760137398511988896643402757825132133792519074607335867125080025116015525114293465606125762831454610625219882275595055456970407193465763730231237485661195954123174064009130272230977144060580495665789185669839023522131276323074112689858759906334729622785215877324357319056303720334335086874308364066202860586011780509912900062525552051343037237084110429515428491183776647808024288482579876685548317298080028334318564706833733307391165612585168187203360607737737997275462487115816955140884972193214059507242359214770093744039418061414443977952521538609634442979645214024990525483851660188493485461724180446939010523611605417286897076105769092196649131517540858605381618454182343720486847297922212521272249105810483690669932555661673941456294611842375579501562883490681602097745923379605984836119121226948401874591623635577979317375971119840831740482316348081076953868797390852984827977768501401645715597535526228586416463417127141171874632745353217299827301935111064243868850791471992931064581072861441068177791069746708826910436127170594917247591576327656554413027123903828862514083705587528743175882938072730749228472047472855706980940726652434471733669527596792141958995641992919618231527201981417891157477065108232445574286402228692598875110599303907452367379058069164243912644658796410640346820547274586292859684349967939549729134294812596869097008962973029546708044833440269269238961069344385415628897728678258817693701070322488412265752556830262935778669986631504478222136212435534980794402061629023772424095730797767511553866916945606079132205374052895851475495916192353600523035090156590902398289233817021295833895070213972928157796881030446010993322770275911355593889409668796437716758511116694473438560811203635296894568018117986250366248677621238467903564720252603408791584231866430055866881311800376509661349418749591138053354324894525316937279735941158256180952909806116372583102554700197283539784630048653840090591819584472317226398120487921645776884526356107511545621510665073203700783370902593626435593477047496055952537365019928424776572863924643161703879765648910387296535522703164954645424913364964558648061195457030350715004886922655290765277055287838380219118429188297369959401370371581856992181374162880225040834450052481361022805605778161900224583642018101741412396020021614086328714073979048347519378468490127146983061778423209334104650471973436725867675824443520790107757657909459711573611438378329301791927258802327166156337469592172133270653285754451952009154906190587807299901650391847441970624737334672875583045850462425654743844876134466522097120972520304769417588994382839849022794625175080149286962184677596819136454736646694218929746876297228499934145481625939824765610220580460164675091307954361665760944374034264707897615289212270167702482200006797544156219823200442514196211652019113557666875829312773725424536575807820698641489683199425539351254267300586483241746590699347809681140557176961014688684183051763163087521478871695332049832862665184290199732047902988101978679706509199578228302980778972151116513218279118488069306268479679409397687399148916357917231662165886876009688780953588963994154909363524671689290348312101534614111891932411607251855593295552906618872869698404545198596036040032605884750345224099787798650957992612861280200467862191482631921194526526521791039533490271349086854796265249699700187467216782713168914181883750431349332969390120772065297870199524016286749342479590135663298609299305813178255292349494013524140141054603546869735919158979999078591188947495588114310700104712376948234586420997740852147850534476435712006635293458909230188676104956661021884474886532277914617353689017229162912940715811547346017272169163297822735397650676105567916208133177640409741459649661137781881100329725696648217282302241484001866227593258681767687973736276026752503707325038638320166164767013559839205247565569919902463273746674053467092149733171318724810671203430150555505128270523705484364782325363326646455357271905519249503962411424706485247354671797668469844354885110901833037266320729385681518319099465827487736522256315384408441634261637238518850725250734426044296597134675246506572329304041308575437198020834413778458817681523591750472457684282852407906653404185391138855225590384291746526519315401685358229577936182109643283872009665227974211525671309195937557498526485842122268973868882142435899793850979168148659502663322104060238390420043461438993117320913786348417400059902490500534004121455982637536018603937718190595705393636070242946050890530578147930979541242601396731808444936662899266740998406876803824895948957961164289494052880015052532030118520923508784009145626939947250932880000164067961878881974872761162529287007150516064084349439872600557491488936486177267663722270813180042247774789601085488680306172578486879877304476159287627424439577425723931106140090636678105453785630186711241490625927768537263792813595606264664714574102412642326300453317558096955944124582388730038613300994608177520898089296667110510731126645447378368534100904579793167595088533687294311166488877270460127092744893565514953877533562201452916795982336961978254029144951075498130199119145071542645609082515948616938887962023957193466449137196612436980362305177433540098739245732575358651392513170274096904750841417301635555866224693133439175606893981966807093937124922924338196939586076110985378599944100350570202316444427534647327072630823090905534661524321963727180868798608543982764131962421853348951304341995425019534926405434706391690327329486763743795507512675020640131728212047461222639235453435075462199528788343556570373265112771917156611026547885330478590901100128855263516761739326491308039888672076356596581566065192673744220114844080298490565645072006614924467984332475059121565954367238506138270714042638884690112378521008559843426664655082447149824649208876754483622617973575620924151596567370558601725946132648454092069078183875288658599548033820342740374449378970281964296206535185852988109214762865489847202916476729852488375835230232201793706330628861053410805669882734746437779662615158235923831634617340090124036379840472881403628096573893740968714334956245326948491347073514301043198453468477548633144068392237989187133862257787044240386707464177642149542866075704833335975580703588814929327226032202202437652659326625927500495847728450437051563937149042792202011641553964404440993488598939714126949680777022547535178021902980658486621873955924750309203971863222259347666518908366829653185821612886800955759960534911352128473069011525396268463091225093382468784549197408639939218879913755023139955991022029810012415076145081642132350834953641581639985603241557013319699399315679107380757136941044776597229188709359684750136482144784292508344043944228107798657442772193809586424300039124783278761072670450636096009323642154943563013956092453527644900731839997530556189263998117647173685051554403842557053849350847165516422175845342677038050975223928852967217136237870876758217120929384931488781676940167867185767703055572142280075938308318495023070812295862625761384096415960338359360847785451064572038738894406318782331185381400921291942572590489127312663014441733890211301056833655464445067801222433317987041850495521737538835380547540835343155477332021566457825647936881347506403090618263693368526741450724483720941205588137710128529298139539297358657129962067004380457988716996191758772734663202643475526532929327539370096156976469286341079546610852141962201817660831922521787951612463489017927375182719132544428686221056713808053360061960054609603793359242288521596468608115302081208656314747970044602898839880239466709529022115497993983545418537389220222214541940310293631010762734967911527738372105395361799724422773860745818412137712722739498293073625523241935370045394927168728642403459695744753379802287568597533485514791340507252688520588918781663898508420334999223381972424462961816853449821214020503044479450843926190815221281244793601551227276569534871127615697503622811061934681269886448883705743122600698484100882505652543096815741775369790917539219036105989874607341619770471274110196057920370375651525722464026094525314290337415833667907429000025577332588037685279920167534747416757325748243697890541044798717682017190950403289859472757540065823246574176397345712455939072531532182825570200970330986804424760956931380423304470066551815186247944781057844491471976540061710434682222883683933366294770554236508346094276113327369349097693303255324253559405151262150164564246904775080488556336480995311526400412236264044460265620084317469990956414962878393519754729474243281908157966254841388526835431128485179371029852799051908042035594917816806467822325067634198328834581157574374264421683122378198938489332685885877762002305528046241690315373939805096120916224551349913545609833223618503814262055380591156457401451917998106733606319570514024077297975752644036837577214567383864593787671759407271496690418582715478404827721250855920592445550154950950295348178056662653585606136673762358863793184035292829650305168461073565749951015112077282612358002538365117450462913140112486429569931105903600922483396913347350469049587473233767586376952669957432594249040481129229624000076209462404357790736425247177571422278922291000252770014525494723127811515021416752415305522789642228912036131310564375367287440714512104724235460973101170875719913985199173902585463983355170881407584816731903859641276503530403375169765790432251154382445522903030296923731238473356884324851322345172787021060006826395208200725219743063777806948673444092937654852396308483886653762222189406932560766158424678332355507293211138127839230305298281179914604279225235101463317712581601222064421859017568917567505982076340389503089511458656361652663035901511468428558904967046505689707650899214378707477890678630740899330748823288176553225537134467998998314205815024702068532937096552915198004259073256367100252412687277297089288320270988507700302575445515644181997017432061105752294107637488867178850255441597176156662077281051100461987498403828942038996351372590964665451635462717865886968811772118260004423808743582017020421500646511359126057383544372045482465734304760087069414565075854671981481145243148254348333563710156128068023374249262938633920045123824987945497882053491844901569048698508483352428540276612429635445605344914408476407063843487830658329735337394388007512043638654941773017971051827445887513723517023214584555454486675885199457446856342025013494243381400443637439894210246838020361773427057059254248177297156132351913330750403465347333190086572361582901564349146891596791302147190444788050000723092603530258782231149778727374513383261649254002843319882984878172861492341348779663798576133052906346670390096667376051717872185783637539320463689132820185696317216098180056690510933422379037221530083556967082930703432756480574299816557077028040594262911952473418429958363164189061524303852136304310966514961868026702673739190967497222974438975062679638144991005651170937737909251559958896598261638400128537355654121038994861030587552342953854352182895957828057823610943685708321291302348688291593759220658322902901639606355340159846084741019718063394550305232430250822161449722958089726091357636085873215052666567213870216308396573291119130713766016759913312286943832292917325161993407128263514266913155247885897867201057369320377384934495139770455166343447799542023608641254622026807128059062631048845026251044494806048154704242660988364321602310826643708696073310471861454768786813157438648562519611642967819503692231712241295078562604145389617566661893118864648137113444798634876968120924822785473337451588378868297826951035359123960867824180221726261801630317065096826489292787054694288221253139951110089567006749985079718484498549611034857066717236282400444698999861621067030088840217613671897763370812293338496963014268064291966043935647419013883098661688516125065674988412322393949419827859230647834834731017781445607856325860833791279950918455842605401381235497918047984815221000022566957652874398326672772490417157663452307425757735587040823449294824169217282340577149200601635670593484441722100101127086423024917829991095058557169822190705190251734970067679657814925724926007936870347131886161746487825416059693747714160714353214920420239577488646679467535440394115528684655689468222846525087708220761450275119901734261207042205061126361255030231653431252696189033102334178035117776237890740781733932306993323122139955137892451572398890048479467314356034359341922764592445280259065757578241717083304003306567529740160943379677439114274255799776311291834163270363730573478712361085209001656003846611064802844259586070485285941964521367746324831003378656221200839967685298333014111498958856082759766414958892237848109683673340541766109588956380492687149978026202779166640736624363298332862156227366895726310289126758469932609487346829093488269628341238890411882972040702128996696917714261095315861470398471845207932154397805430996830918953093545381944211665066967784992016911897273595977729485704436405247633386521919869015843237578627730733221473615992768165544743781503779646756620180730809234637566770074945311743456962100511445533660905080581306817353540610627083357493641655526059126996810528399929855501398274721993307482667096717405394648019955055472287380936115258457877816163383677855828160734471230767772181534573666134542885562905558514768518755871713194718376318810470495055950188521882907668740112818867724061900482200118868238437159321663782087357814464415183672562139105998797941874954216155816165901548626895045892471475152352841338258421902041095489643131732172608571660249861023082688431223122502287058047010705986508771876524477147689579022541282434354599580982105878172069909021761191569399424204778688875068821857552517442512151650575648668940435837080450644065455803134304880578707230921771966437739056478114458980694006253987066575855720256540501054948335267499192822218111428580529255386622198197536013593791227354837650233401260052119428149222517263102943245127647519295932701880072897068421099101891653452735131020358654130029242010461317397856392766370620289563785804183820670243966953131048246656873262712225943857762409426451511737468345096471490636913578091216270941410811041902397630426440110520882058969117493810658437689554412492940642688873914689051210343335615728616513215745479131786631326904182826313818634665169206735388987978204218469808862387492700490645353862012618347428420742662435565861940385432596940118650230273914090160205477940465340826763895820369624285865026397528604679238427120965751408163973188192981188556076553865083670760706219112008885392689838272191936534973804855356125669004267828200913264909280225786298576065343953772252176863352654605105428517586428815780708140665814369900141915116689854330900602526015765752911802936544815284514594796865065954486068493301615666669460958331933716878403276186845135454510429607001007669139285444469351929494459181095501799999024173775852161041991247619832180279265827255621811679538089112516109657641865760098225488649339107538665991781403938361350886309204231559452968337292649952098474562653032610605444083014261266271830734519972069369614006544178067923966437218559278071297917982992664302697651572593670502483796823045064344047811963857431868124514218415445378267144815578917076096570090296982215843424180246189500882291380399115504908558158075592051588065765621281089801555808943259576513466720124680462928809430930524015812705475737598204097437334756411406359180227019881929274655831612605520024752374710372655316586848045641722201845746502250011392172675166544241832932092264441315513387621205040587318141765020502585740946061160850998067641897241841965217258324961893728666387590331013244245343350693666291560519194198313026176445791167218681738007686045386055440713622598249735912410001501358177187771012556717290174368949037616755938483566546304352417672594258248047659584846494037260187482753004886391390852546281780393020271020071960085394740675969270627525895609334724834483153849830401000700257735195811604260567058414777148595549329343098013119937425520874670828014131533419924433624177817705784379473603112914087799442681622607136678012263609627420068453691453997604399880941680510222290368210951697957263880608620158199141582351742188588931565958488873002534708581522104742242201231753027046164715556316990970906468001050661959300916616222080604333735253363100162944357767652416907845838171541547058802762865777338086227668049472711149489022519622118436418658807274937433081002260021865466266985148265864574229745514870652815452795524792870026217321204534919001161234314341313389624790091983542519718818960644643240413026669718437322336698846690675351065235128486284303965515374214722067918552102882971858213401644071757509784561222672871911310812308204507609044093271282199809593379127354386751802401782062932159982177534968755274416550430686183863855308634426298263400301423213234291756506547356742381173441489711765489376842438560012707335624874164117631671095884510727256100564126034826303847896070458136806048685346884292753664506612529808368226923087593624675395658156414150926307712131788506512658954314315983415487802198055012359615233514248501173366452947341721453214318970881024699254848862456058644788600783505692403280007356130745265867950150307728527310652152752457121678960394027082472935913343879656113824149950127162787914533833302062860207568210746206950209559936708904814272548170294728250066134968687005425855794721488717413845674514689635009295541225822165544523869035931045825986419169597395380000934257624547622471548340650081193676425745300193135845062559444207798456676946994546049993045590526132456597248056184069203985182998435998964125237120846433693596170400987702169434268151543107499158201368168167603328609366461095597542146132134711163100176423872394814624094848531556791323941313433881108599858416618157246132110796376812199467190352231788272086784671719314633953621945163036150083891993374104148146909454037401651640083441140796729900508429590491238298793650142602731473860935433412846234554199042617907307563499903355186786324435108556009177946592020285070644414154966392697970822327951688250192612638624357722927040486564809559241338442066931683355240795300484134410721963723447922062321356579022119149078895543604341397491062680405902624590535750251829939482423076035518461352351852405723222027419614230746918273427554246921303812372027546623426407279881225130754910334176623865610782280906095827481535816126781099463103341316225117219583644462928091796053883940755351039821072142767400775389255000774296564131874313847323077442844857569524053507623337085678774740121090037594500501677067218214386621787010577299117875166402616144903416146234112739032753450885505993267885768403613122863670672075315329675330488380511938313616195638226672390595910364251292063129422964677588015864720472822853596450714702189332524860502208242655263870521146293104987146198136543128643183293279268563078540131821814873151316889660792562031102393485367897007854021021358544247276667683055111319684323867472533649033038051619838840130954295226671273484205215566692326603679908024585463491704943046521343473343716176019645103368817688893417084817746044954875944233254869910578584189628742359890408641638791728828800448561380601141972185520758096124374411515092836141271677080505215732562567094871315034715307669299432295867955367359830444021828885215274919383681058676489256797741563594448671309190168834936294408414536756077618659580850129052691158523640741046399190978390764378161157511238951303620779923032937980152007682235273644940003834026428613641229362256504432781867434778564696108555027966027109547213616452255264959120755899710847208366074492727593306209514889431435707307235126905930882420016009562181754843018387242799602622827273903332339702876513593837776310530353036009119638871795788226269251632429785994903903291438330693560832016769711611289895034873681841683038718637198521073477715077367515166447016720325236670006686566394018747364018550191572614290021400785606305823379675475905525694378179267711036592300919766049147847747486010268792731787048415477889656762231799117854345095070596690289728649454961235542570646719704355604161511433835407032050189986712682227748490781620223283268964623486849020951015478174968171372837509922501444865786462987403190181089065237890239483972604309576251808564531430380597776264345715000834075497419055435640803527351426752283018282961876943233731832153147637797433081808920554166217132285294512580412168097946705965325873363065435071008667012819854297492848853279606582039555264720304425818721745117307289972778741222559318421327894504245705017888602109457096034201378748277906938959332127198476362245508025237960534533180997834127940144237366057327795210373740532316788500360923341607881046380121158089732835042558527055496421812823995133861007200319565330030285828255016422577356463365183096837930931840584865711457918589041755942508517939025530112848159921996687718631481257794764379946509422012038087401226751136718413716748240555683515339434709831087248890943885364317594761640056039466304868093448757542928399594195022289334212290267072973997331355186762933761065922511731606021799110081977543939264799239794661705062461178742509577550284268071430169337696420712182946541976758782781150881230460768658581078074557868801231680815902610127416713471113186518973794629317392553357587187285444181527409780785753574184079407678709018655964052472522065804706348451073491024455766199803114782061915173503810706155113804093749774373639502423243666595960467269989301881100598096339782750379984865867652850918797803976862961083425676319682098346544022875075296116754532000932457205539764818906792488207758824446237024184784879814333528563512937661372199228956636452965024534523090050224838016624145955046311488937548114895169504594092172072682298615862770931644295530170881038706608483544113573466179258321312156253063137029461609214120795964400338136427902167120645867342185205137434844073669275519568544244347826356499030493208165583281104596589779076680654478960144055964453938976727853464397978674102939117578812985963902161276678348271527085144637509362393624084826921284291644807221866249373353317061678441981079340558859707154289860927557601965000823235510191517913039880112084593581273165811749178586518855971377980782684080099907085668925583889637310226920053285586432544029854039424956509128135725561699686900685763013183587659744749709480951295019672456007397763823268551841735140056468635386573957878348005960318050082270248940152564943560275047758464531269951903899057393211307078071330676320110359491093565615967552256356804254601547718205580337813042891281685524091265169370877153264108735496809725979213095714241325192631877499015000577299293668852008800826690174137686240183477015702148451026014025059260514010741601155474138603849469503066090815881047058082399596184680168813530335545350399976032095702809886007636080053367779771041497770101578417191949118380679937207152606992683169693195356891689359407732641578545138550228244449256053538268048743057673635003703293319500839763143817854553652267771849325634736819928015647972896736364430796966216813446647388564942728992287007061270749999076893575565477030712646483368669417667108475619253712419982813236814895607458215472893014924289344198088958786592114599760058962686937397655442945578715228701034521515221060860524546173961422143086793489221177669241451640447464853532992834540316098322904772379524735295183019752984034789511877951008576031690372670164538481191648217749339183699593948282223693414821920866155541229846081138401240761624201667726013837639534208950791927961440878774582764164549092810025163704688457201973258093385749750308774062990606704909242332372475809007131570517241174968225927516143229420956685408008819544875575485021696582831083842266612305179279929999538919212652651110651290246000249320692940154722993411861550267107452436713912575593853996120375809593623666885692535777563605513888447844055345275812219132831615573474265003301175948328266169080289821334850239607588850114010906842975920815682290326094302007240922772480636181259370381336542773249317076967427679611725597692192020119601103959923094805754055201431254373760984986111070021705579744576002690419896686601312503568358528764614436069237730711909346991439955771782446303025826806411505163908437330262395967739988857620563729746576488515333791824685618162313378199367933315456607795778299496546091762095165549315510492968883006120599106434047760187555169776003786900872273259469236094798959315966725924092676901436899292101448650394964921017807898348690787159803822104916600801382845903854463358762210194166546807991570227282887326002712475884911635419551321170439321579697065328074292708258707421673041416139202645945221040813701851510926952878676075304591628973591979407056092247197712404136322511312438959117236543799953684791584092076480947373619795096404482856160085692022197006967761731115851431159092641963752447916823481436585944705553929356071478246644552116850940798892479200772812000634183575387474859638663538834876615642689997777910614098200751253531435981650186238220838659011985531952090011715368441686987519148094932910321880205523585861243372992713359787649811483734644552985672776878612037827199483646285246462599996237549180158437487841830626485632404089787048444354396876540725651280475656784786329838684342943613837629026752581379287495709744640594927649261787428319023946077625513685782520972521288842914572620400614919842508773489534176803221988168178996258187818328239994313069708499072301577488881606850112342041202323935743627288314026334055842217190598348597736371298224576892935932094962502177773245973743436574082035631145631175001738101230920379014338335933176585407790548451429017695404089149905962332176367449207044214709935839967039849488769032010685566834137676411389782533875886649683236896156156471580431543549902295579635591275328173239438874455931543901346292203232791490608327269043617306999129955910337501360425793607347952057286645283867472731641791063253611018698794506114518834047372275148587179267135975838771379765575691608791313228465221297023644871712459243806067068297761138676022656514907747057687836387888017103481088188747479738573287512641756337717428067658552773194069508050762709992245440003663368854051887573414463432205811927204576681859306583883007426245752407635404840392806253935205502701709679289535352481632327673678180592783120928320838473248568592442633514181001850762984398033155848243004532605657553448383117453501077652761073509530557349654604967921869520000897296320157963120412520843938707001904152039308983939432613760736537975120144342167713156287191578786167816568200850939308729915940256096536094142056660985056960524316324000053423587548506561836958007304011779123215169841523242226573930415782911534409116229914410163682312024199830236657478793411120204521468256651478657377648967977960246140206231687057231593774365052330700490756510980622944400007124485686683529939741373583248642940700565624536493554336517944595920739058827197213439135779409148948653907417067333596879078110082088028689708322878810051998774103983992770077460260352175472230642565559586609195220171185987239989884390419087055725006123537750023828779232640275696974054541348013817294282708318706712125678405847535318020561341941626491088931960296217433230555500571759506092534801984346727495056256702319676962737757931855910477132681024312669522056350831357469115034010757547499669669520378461315438594299677509174849403935496791445617283677037905643687052890877718248066823681291578859997426414999589981144828060367912178020491627144071349308154025313714523053643181175822888235781602869169829518479249772302434499055162074701173324843172666061276544366409803469976100001667074491196194072492232057816818152241124254611231086948228022005526802837501775080061961093468775470608721253073857751611265240357280064253568831592953722645854560487012541956578424111035048309955268065730724800909581165841249935370351369639274444171120444328049825787824492299728999282154254455770859081245409606654811194726034810967063945193238533718356404570074049559958875974543351990569569161886173767054128805187413741714454969077125708665991172552043309887477257311766614725062417495861334257337378945257434753021493227207801639023411291811354263368378848905090848622368142524774694005080728285704920105845310435819243965189595385910575238554438210043819937532390300373738721237344714983368760834910292468285099236587348234314089076274337683995436639962909311315058263669834972810897343137111431246486892776683516271970323763175141842946905246984900478691443113517362005077341655976739356320550672984532974527260971631146404835739116591354635701312856396935838569269904732721708604376531428914994977764140578265759600001545321052512666342648230198394590396117446674959658929212596348893718114810651224734369139858573368541476418651148633072805119725448569156086849494637215284072220782562872500569520962485434800887214122958530492649937674591224693212288146991856107642082316904178839264699375077966720842638329320271399574729210157833035907439223930336500399483463120657838645760763081906499559790165361252261318418985818795798241555876513668207114637388502719277988794660241481698583444983819003988243322901820963367826420505085906093943805481966641726808676222950061220855245269686747414998159734374116615937741735037569974104038192235621876991831501966272996302823811326857798906202124888171390336021628105589060134091087460411176550762458317927406897108235964505293070770297731841623352227391446928547710061099757665287809769979643183726827248452028612017390650988606204133510823208297252016401088664306003133552173130214637154156319889372028785415622104277850923633351423922203986235916026203833382190963908699164929141196059846080940985434020902350697211724160764000579087926212228504672184917592169124091887217322878546764819378133658939274235155851847949442643649860547712870565636029034547782368801262368368616227310884592544484112310114243309151710016511156307586109152442362161910591982452600936688414792167706977685474223906198590478694580099190670356617725980646884403050856913021773632733626886466505116439084129841284521554886428594333007839181908447905008306001810492163310269827266302886990484130320682480211798968114990497299427236238946139640820756820874478544712148050933290174740333884393478938345055084761005450156542307852014121659165747288075718627183329899922710856980941959933423080603965628363716748706758122053044635318247809119591372353425577216632260401735445317295896468606556183535153269784103727898422470629829518575298173781643681691922232036684152367663658073516532073177779099946768385785958175067771365076394560458993832298845112055661789256526986199838063410000885393973811581021694238658393686228150209563507525408337268486216511547765269574316734234852372726700085727930408582997099464768477525471868537738167653647016305651323510893574858119428708747545874018391768361335858931886626189266002154753943736255219321084842608484243195101029151670599032448864945166533374481941220538343083475905392154637789945306738173115665681863701591864120496334487818518346812151587593815817527246381094772140697515597416223077553002038755564810276258735619999726934075720498828426020341219482302764521493371371474725444073425277007003944433158212246755753878260756950815532220341611426658118337272929673669326854356973065797515948686277077801682202696731881787409282657534243159946155255660516844218148252803057595993389387056305346929679386629756356881547665293200022112657139652072062381737419882512840858729877409466810126046157894408040080349348479652632687515173534722699169151841034918488580572621353079534988182443014097115937707248128104070404853866949561665478137510053883602000978100525490867359933082153940477242800707433645830573574472410581625592957853728737222143951725199487094771981472417616803012527700813082061567777312378302884151610309188181441774835346237358497849738996390498352062306054111309738609003918363074305602055849571358081621154205000039683679029284735155340375649715539179754390386070747236535086966333674708831964701271636020108274638335518900117284833702043074918253435310901550868628759463305420041685010716898763852791676117437579920350172016956591034774012110243389551443018694895421246806692139982370551386546857692619617794241112098929783172462839284174920334248548179531119335980821761626201778615720851033588665961173074279155137185781648063915800099607054955187851191636016899084468787566641824077134888708353988311986079066261149017665273934097869517974828757703227769197494725260571253489982875273965060967051180738187940930244103640191415767882867927537418016490981331196659440661981676830973054572327680429612979904014151095585381140049828698353647734131218486719231314679897570009031253667890231047435044779333409846378440429336167685390434086418323472212455221668952170324041615214192790238244136245000318303745019715358012689612998479042498444294044619939018104760949154408577240828975720266717187910779633358074684621314660678365302543283614209725087895604112601988325272935435822930052160071089308763960096553919066309614919690628155407201171676641013978562441069939090821733066050425289086087419347282494573654255355773589833537560772445193629000286919164161410558400924624225306564289149565806343696850288067348066765268653806756422743281314416529621488840862049974927243291789535058423024689418946644107276008467295236929593210995111958066345905175756842653697604426918936113768136107067017935853297636871659600393425419870616155444326498966791990144268781092247747385403125406955743747813690063603452242315845899811269907078537243666728284430855178626030957492994357056722827920012262661630693004681444174676032486991945581674499671747933579634257433830946844126915783219164925919673593277482052102108716326982999472888703143833672279159112745308349973337033504121378721913256321156500097435374949652342580572048701309804412931797649754678242948553860248122770799900546973399769141128073366273668327654067706876163232641040167761455248527143934950989261761764940859461984571535397474316794827134830423692451767318116658750008092030397765650391529366168904649923399934162797714777214608334843369705297513094062260228195203231434685155693204920060969688077434830951375641238589691720539568516511630328404268164929013384769970432443665197109715370875656242875903963198088329569136728626571734311584952281107360573212014905476668467075975190414522777928302731800332834014741710537525323402355156175817657272110216599240835153390642952553229559919885830966016724951739479344887258453427233925296356476723702019936411715509003445974868083243977502233992041916004710329446121192487348487224095498835860930778899365144472549381373593408988314269859488503219608689326707880465893154147117276713239040511279235328886320359363428379304515374130574847849125144576373958750912859284928861407918761600513675885597667949954357806035711262714361876724381160836594135558727921401389436275525679058891454225924423568711000862843693590131628910442297210878745364394557375708515576855635857742460469613640336865233277659533904965254859083269846406620541852304481274214473600098174949743272867662246493114210280962493216341688463787038219047293126807582242641425728316665148958886915433687459788901772032712492567680835099954870583068181942080894560650281288791315957654671779521413292189159603387201082145952328272260033582372747752961795733555510110399133789485225731735633890657623235264803630484707924708744318893522330596649286785343474803789549332636151878088852899563903930281859359627354536428633357527351925983008889894675700161276356196767376785845438144668990042060214547305326186271894580246940198705001450580899807383858018233910989212754798155313755337001118468786062452653319018658633397735036511674131198527700517117108712496858812905867805458971918557795328963292851785110129226035145240159244620936873090749560409658733964961399182180562813301266478572028525705973674061852942750126678430415684432093555373515508863461582769490848269240407638156031294521375528472712241667633398498896494913008714174722137352778275645086244239070196815474645641731560094595526352321891298098670688876407450565054525306577081052559439540140643698015909113768678240194355685386338326091138345253676320291348093947555243543298595593910796089145300087791159692740490924551977697824763439945661429721702205077069970930331704519573098220620575738130666053589823704508144266869061927955133418448074693494887412905445930375614158071657353409683155087114859128707642346537178459115943223974614269477710420669302325748075406528248833272595928972067348856704391831155617434038339643710084570916751688176937934940046332121923390834089030064186395719535386724594273213726325781959175591902632277122822045243044759253088371464942112218672289028996041335040181056020315538421137630734626821305489223382585512481693165557779484537301927205189456536201590812060393717658016656203842883513336705418047382917823179053528438409992476419859393268323128652381481047695012883187515474706822972388000982984754426358968491632610601532671318607350275957085164290643684433642601554984834915186632561826411071510229124948493455903635505544535510499040553801191167308559180425271096171350554783860884619090993190944373312289597863183723674627541800165357132865842369297578166320993184325580065631140500649447483658698133101607258183417438893719319720843919674860917949004335575416632496889242778323964479220423718670460010288651117026524447798857568349241876129962447486710320819018016724946122875954127124362573899830829962277249080941689050057076840546071567765361966421661821212642046320685031451186872909934334596817387242136848415626205093879884472788115029657846378341464606662765067666667966037007255691791773588154521188260545082305734273149731149217008077771278939859838401479036622544868207363999161072947984988427357690334761321213890432027450950404262376373665611556060013745673223970761110258914698479674151974282078798180746332741028041035562636298155483516762987766576243746743316389538057953652770557919937144716217003472659242205686772711046228027239422337954086238811346435877380026957063718634317447215073245801807329324715075788565791521996831669805271894319332300785778169849223255949300386815045329218024160973530798641396469166631510437835814996574663020698786380816482125690295198700247166884493106133776641321492569539866881044984915496759866722776262815400851881036216771236022245155132291362193047390563608264042860102170566689141195796115841790312653680097476330712311820544361551799117219284464534537740293284948502354506664723457044210085195016080415779477351085628082615003018890714478089695429288221437367647350766629261924825974131497092104842442205720621772157985257252058956453148202917426395417586853585272265178566839898810309624761015083014984240328068902426792060455404897258131089503325523183779736904635840924044056848655986804357724046936260325792370311759977410468111016926757312750524725282300862864418392453575847120787145599635940344381198790456282985645665708086273428964156283874401191060508815482412426331327316762690505067083223243164955666715357062354501037223666498544881937507432842481874965346590075979173927086492376637898561482620391986384472675611678238719566407949371025924467069263818345965231143652891768966782367163199390459812234201161328549115504707214699190526205486625154017422682209827956514794741552882004955997079323062808093722184488499823423558528278767092019317222887092091664484637023937589415551892630550520993352234827051110283306531738536366182420492973000089206754899433369407484029679852192067781787572786043386231881771061021372786454741153524548820893089231199399417744925358603616719159324473341051029729722446781111117256707573815500144434713326944173139639322805308415170793935437474994995613566272001554068573110702014365618921126095008059475880904851048796966298609877024320381316156690018885617774593955450779448223045921545141641495468337935988480058833959983130170434511404914437476445906868762584549641198090805624950819646964307819283249342413748393427246944850814442468115343396752137078340213615367714793846055308709006713404369336991063910556703288645087039017672361931906379742293201772619938962365113111208889233217301281096410400979628030787509731696439376341434864790626958362122597417827909985400220462073867499651387712900165851550360226604932963373491924867176199357783261013469277983675765604583360358177033422711689084426494398857479581055595876996791514933174938007755664767854492490083422930158154224145073866047336977222973370767930662881290848786437294985562189027627408752039402348627199492319769637382138795402009215958888361300012363507867311718537448770607684330191039766124764224344106869944301462626545800829646594508897498251394110286962201831650775861299153466105348878607942577875389088880285199364632193409032585267280842167032820525845138033410458423769620514251295443530007997809201164711384759584301406381517540373724359571159295074733543850497982336005239018034332200795097105990613730621262613446870144650949731954351100743440169706959019905196524565575629571243358557590335286964276002183676127776222037692262804315392883013877876129611796576018726552084696974450394712372835522891115722547435422500052249715791314145846287558381169917005967343503173978287883633064937719725643225707084315802572888544691329500621246080538409210061217477083103957940682129793523249749134327749106511349856996358867227303583215472926939556117398077419448379041323787554086509720663522541248300552874448081178244541029813748521634146984924857713705348729130787299748134283655588627483250376466723340379518201791184819371764091280408666011368980611541640539703751969886865201583524192830022817762720277676663039029494317534202497975021129364246282155008566530052076330872783200130635638795033827583919480995817848579680182822714872982818760463175065887352078722343631376221835975504278941234449507849027340491751157187014677415913285672470810264341381949263166961590192494020609746974178673387549275877438459954326035562676176969821475620072342703824134999871120376140490072259210351552745780609114763893616161114677449162944158731315837003849663429681941175031229345573388981122586215508740860971413933363584894777401482504390602385550114521605073855340932110836240915172287011462850204569497545184925336695776891575517714860433167593306991050125046697924281016758379331333298819065429959339067372453269684092274940790287790606432355337243926985431265239394105832146365808040338831183101193488653232430980658893593267241768510172367159548708420692495032409186339248808109309226800803847432082920832186841688605118830355757656538212767805279610093282619198603818091641516723435884059530797041611856472324536363766154497075747411771147528326614609185800148241887645268117699068664408757776870178095121239856884198126942210562825103821915361139348860893209572892848598684029533972522004841360579705537394876853568425887737160525923911316507487590135738031648954613663819610012792537062313201941367294385498440777399415978015880225630488003702957340391887860031733295813858031585696840537033839427347866255413677038489565521446090413235637109086127623962329794681470261143770392361063606246781939732052976623577406508313120908616890874123372504896296923910130943158424316705382294468497370786159079064113501163610984655347756174089261339638250178623209304591302906377196678547240081756546421856819882148895934191027485824926198541065465807402994775111744509982326463179273383998052848804660155682005818628337996283014878027970775083148677356710009331282993108530101532050725613004997690103013215436286394062131548729098103924196813216240452830121912179110538865934431773577793514704281377596101464180690812653230731382079781644891850523918252353543344926364819917394444433371298237856903339870814534821354738069496514857845938290532504560450422081608448059361657084462276684079325825618411454688757490402959006862591062586355508293353651091456602044260830128328947507727165432694644121239092923439137449161682473041100956035421807789354832756668001540812790887085595133929376916986838640011339796566218933397125326703090318021857891245893925419654377329096110896343760857459069670638220898573132716558826818463655081925657501572159423782427757559417182372558572384984946616561977742705660231897049120000259009817269370134144449941806042255462555960948630864422653827275428678209304290269469917329552393219043736426581799975904916216251579935697309506902466760387772693708249113208092577027749292121397109195380806992288276041339333326999382818285944509987344127168763561443312929697103988413383554886160536995641223096354961581070913984427192298982002958491305926028124319871887186551610094283148706147335057661642800397925147226094608584399565697859189937146516950771746526044228266516032946486353741583380365693644295288278165603404803260096738352607254691361207580819769909236136101341701153260002204778766026048192029714696100161379833041877062908349608880892735098061196097457799048184085702481294839171015184068740294254542266462138893814676565282734499717716171401169095189278348905268474158948555945701313524280975607822617874757986478328903778294182345483057305316518380086094864628511507632331141887014007658300144917838320069626962320972685603965415278289845812813754186848301471824534638504817246216494718555514580120605344422740740957769431365663596351113879494043556033332331750223232350099926983741846941246953337647079033129646325005060057912132715672015968021609504331472021557216355183675224818298277634867679824478785573037893812858489639012780509167959701930494442536573373520193552457466150241546942835930544684270634028146884634221745360637891946761347670341898616660076701902622990859624559303244988777011042827425345360941522506265493681725341080664328042581071155234107907832011550970502270951186966104341130803594360789851089375037455124530713588612896376652806989681925788596081929014770457437117096639897439413466549641669145903306651732938896122901702595459938336025206509154239840542414094178536279771699391622414213422612736807124952703671402937100577852015097156342742110927647960440112932619729530810328022018346638147377419818609869516104587351104181387980674873931195863789329897163372052630133750979788555832858502474774740070993434104607005322547399337135420455194797256099396545908793239420416151827257568326165177396036485319523409423722429897291037208046403435861160946135381911694254918936564956884997336166075076970543590459213802985637138659351465974442161476600851729363776273909734146032633417937919125453503708094691256452731220703138857954902934284319195149725739636923214723063347448891836803928693636835036340451590629834661064550070755780401443106448240223965511238174416591512000448512967043970783364332008265363493988728857983155209190350226125810792933311585959560248252252856566615310556335893831849713956327403705493135749387353804377127423194572441127099926485012608683427505154592576083455090916999191511811676621219680607788050088718723850445754664428369913476248876550442488671306727816107837139297701370133381273868103424302154757877516976765530795007897517403461108251524570498404670696669219354848100106606492440894527751810614770696450952615539373756241340734574669262888953664936211147948142189453777422944043852220133576171900192639011457874744320230750050277413313962672171634565610835829815853707014755445441720627821460384473592023603925052549370602522444292861475680766448242863498778652479169582419705718243971669643546077875521756672920486911577694556504093975968276534869775422400194906429257556774793007243989919698897922231489778361674833416460328418621319605770443759514721108302592043605072227876273018207759301935622596472814987889679934467650192614076147859832908545856574659775606632099722099763123281400173302101897763056231514250720014008133290021395149837378810573582629579905122707113947255978394321836773792154937872314659149820094858446261506333255130830996980302386737290120258828800727664342917178726941119392914447887383513209232784625365651240607925355479578582497251573398272008287286318209633396252986490765019665921689672981001742429933954281390807467257831142358456640987665388822090952508159518292568112834444976247048363338489904101437275268018325805472171882537411581362860683031023525527067554437401502705584446626893612222548670659511413271860852563341926339513410554810375512003410769587454225926604534233746154302645491666242477718784625871248877230012260970656300413771718377031679988954884137232716856295426719363393799778026382218648280047015194893444735490774657550659885266447354323190412976347528051733282387198755826056324969906658557207361145228214079962380899740917165935702452264607374295611498978706535132210601579555522625906369962601852238186192489676411615863838524013640839423516231859668814877240163181769104320841363479422400495316588508869802766684744773302089031063748135854618271180237787102552252868406167378571468299787170871385244119032953111857123991318886128148228010295792697650857138177570566893208623307543569377957291409007602044708513040995685963765867359566709199288239462124097603459239588746473478911122041516519006323999265646936192383872854590265801170537805279135867122878558791569220972757804847144889199275630005053252413694122397443153831428405175728510131489490359742983969120238057982117602694160816545227043161465492539227133235006051487592700973419274118408097427044181228067472107461499441381025692789966036310686996469281391381978637944590854456632220407723510201303043995583308362861217115576810588671230104586536225981016236244249615593971472382851283213862875967413690336414991495829183843485097874323596081693688911631210725515297600157097486510024110027015791781881116548742272947801788012551650739008336465360850109089877040605768405520356037866064594355883165410063359040571784168029901854828884388318409693880075760078879383808736847373704422248235700550593648126951490839644547905124730051377950805344684941905559259354010490178484100544586769111110330298881159256474670300223840727463799881986624243567274539535298217090229712552971729431684938908466440416470740382590034405930594037150054791642299706989449339102035619256874181109533284994685442322973696757778900217017471115057188532003935452071419780333312050321885574853031954743931723788459963233782122926365124850489322993730817664220413859133124268165046102886875330709463935194916107333531863593679317640466660828859722911329892897751022979654061269632830709806535899044104437721566368054103003775107958047413607469390668005574529793137686604598165185377791072316422021361532824633732730216895756525614013674885531444161906160311359137999197085705436220133216848874699324703863073637790101822907120192901104186472821785472415271407832662977443092638813727908319764678444757391582887383591365565023300417567496049186779956428654805955830003743317644834398662733691153568730991644396544294577595650787922679649155637986867086530860161611594242745877708255949616129716608955543646257981088469520479010701679792165485428327241947829500340483239722628405057711195097509189299482825268787040452099393687650294232331952516294109177472509529176133990380631833622932061831816512857746793127592668090516084847292688123346985009786149683052455615461409751131896755875346931321071328694672359467672645834892672910959560363272808548915411717261014041019543491520733729373487418632166584667467681537544129175456271916268966639069798882237420334431949562794023501829604982119770934131978123226627143660092786940996600894716607740600928263202853991545091544560351382762118390902875887858113310092821654164842546902127944058379943673434269971109499703602284256417315336423842831426768993364554830305259763039116012251036814072708884397432418204225378054016415287935134645783717216280147022955527354315405484231374444365329602929040863513775845608013252110979014987225228516511811079875907679695821119785309665915171583317957661910356799894529419057829258019855363805663814079133240331030782878425033640249018246360826397921244793453214797808793596937605392382208544198987055818591549642436263585163223339568064834438605404616543703116890706784416295831325590140347789604917530183311828250891512106244501791667706871907299105209895675221136841522245029878470804954701211075904439675412412442787165574521883286495170557644824586928118994366080121368941174861014018026011911190617185800536162872669616159259196694253748114143068001475967696134513794761404752411472203322766533290922543062560381143336879093159046463657119350778162928660508107966926768620691072565178378610205216450783353254420437180751195137649139989757412638463894485688893229503766674166360886557492895201639937823294077687655574384882677052637815931238943559047130538141981340893041283598549015653415164172243768118092779014279468706275487879427315312182270566437051947421987641727484590597565916327888957799211671945686236638392010832059731578730543128494480921538312385537373388676233984386465563098207832619827387374011043760182243304859991367587822890837854518629614302780876562492893557648348843877177230643020510243696826347834001848948608180709887296047859787120640714336131924517583249750165864688107848092000826365376563856053240392345362511709967432089090474837529254957328764283754260888078244238992851613260005074538969402110710435561576079985425925994890591127162416126737411274393612219446627413096791905509170185132411259570697635172707642960580788899358982343393348538118607842205623222574473314513291616109716867669135527945798663425250243294685635123909433821434149922566424295823087117102276090945773522860442029625847284035228534914055697353740659474541419951959518368562352525536792317265973122432373642181301711737434946978410803592087549062239090235546536333247755726579127128149173363396502269349243750829089602928904120495795675429957102810781808543987229284881241023854990483004117076465143193616971613169080435611761827810435774509953614871125045842392982463696530208254558975302606915795526015871445652105589595072736242870902058199266609819401702068869026432572995355882744641436343964697921005014008538940122622606312428435486883979036975679373657575118346662952263928617254122848385656825649691621129578730058782083346311527556704701518391779997171651574985669197879904177783404455266061987233841741118383865621426603762400011681397794331480688543442140288015889985382474368515865500342005659353071548494697015311882003008627620424711871008577955830714621492258326044268120704033581853018617439279826669718294901486954586059971045115140548468261629834482676724777981323792240323549905391884688954812666865133333072017477355157661051274236227986153644017331387483998885115697561324067195419005342682955390205769070477066815362491988854846845655255301887403226960104093683422239231451624392822469844092629365226120691296886537051085510613466715728290333184110161744039388370133590668724912866955670437089454447453738024433544796911532889444606734662487720386120500629975376553875197481685711004383668025029879249469941256900866501896105703354892064638945306580331967000804610146438505881389859403641678291139602182277835261328179004779713347127730250930281925128573388876259350013609056344634471763901182920771934868221819813262092713922222694682060502259381179479421261462312071958055728602281025827326364000187782542107909354252019621513214130195866360595791024399384667247225660844481931591343693286271308863196193639249048870754507796687246467365267346557910638487416190400391429461991468033496185966025852424341416584033154202900641197752017484041886376430443731455105969498889241383645553610491610337609969010216740697340489885750441382699934342201335490099165337806054099932695807742848784025507194137243502312340940143938830383587436387856025597720811639423869140490391204903201686094265153518375583228450219310259729220686675348591026877910732428705549208833228617092714912352026360224058582472763040050912899155345563824057958285055272293436580992412391675739749277047995306483512664234422066766411104617473115159752947861113623697868950711877189566298545036384525079680334791361007248684327299947796479162330691889877253891403401390664423299622073834614514196725822836906354638661669346477816348695170648530648500520258093594749660268078112130209124973843849349787511242498378863468106705518944676579845562731331028528843477158987954638227596657086223003879603033097658431187393321808549583366442806608750485781996672019473805346897909299068957835099734615816676201577990826966314486864336943833982220500866886853794399858420714072123212560088131053218475092567597185372163761749200723031547448397724452395759181499577191204054825459044453948399071622949688349026593977808194648649466643683437125969994816275607953356466863720838264267604067246425634932157697410931356943569335015184524051446289111544491433781795863859788522125847463037827667289016124243856545935055081061936558957135836534037743549970042374099041598802379263240790176686246879381858499076860132696996114817080395165162561832706721573165307270196197447858292832932506559198015936294526713598724118036988241546463499343554951046421459121666098936218716533800602200218842916618552384498901641894306915670164948829473559204100245527342234839910284271156760730256446251157531475517415031791580343663132747409151380748872201209503608849936772937929570631239352900221081919375035233029225809742646277868808878930915622120331351556996724612263862353686754584998585306410297574947969053437425052707340746255970889230912756403457972011389999564156156002429587202764569625886314821787761718596636292830926328547113419763138452522797829321768885153377948765513124436565337226884446037182797749176290682810855566768807511303661425385374692653440137921907059438097215880248275021375649866302472383489140735403748900740921739614378017789242358944142132983088566492681911142209107170092013096048955166717819694132049130841055384212457685311916092575249167992838456977540237888941765667749812129938186859503225109504198488621554150375331786281833723226093921290727921682139347022644264903313158179293718363599732135203311173451448259550574348489274138528163498243248388140290192654928879247434639945978184109049382151242272644996466473844828799571652187373381458498462205989716055118975017112085141111593752293871286632006866578928742666883013846690608467222011945063982887056924105856271774797775106282916321165414446743365178664393312288329823710339893303120229560646311475235357190065619149626769272311180909152452501703092175366021803792666163007251327959788014304569291790122413162562873403999873520532307068031433152226168634698481176923870065115462002162876186444592401415687289301952521255762604285249124332877596751727641488833419177775577702925249865432845057405979044879940308665111178577065287346294869323062070864789355999379618955108550357413386629654649494580500622955359460041412575341209926630222009567035210598379014922079168457389847842607554222007615961563431977324342916247145542618538013536210120040981500557777275738851050064398594071692418058639205596617292134018731099295603920841908962245805199132736616141232601636908054474161312251769489303165657210235794612913771147304825339625972260369243095349036213078780839675720761422737091056192803512368115324836277238724471680966523867767387349412126981707610516289635571576917393544705001742774344187999273732411714464950623718441516342429489884322872652322234848990287614613352782397441772906245580526855128026391045110906010138411120914674722398740531528625446612407184372008746373215755875196887529801974690198786893730333857643669014567053403061058149222693302371858883495221590590340919145157246282601167379028405662582155402399591194470904146680368791094340133107742981370538513095526673739265732843725558989228805309429038089043895512980856954872748525154230355804146903842807802663999482036496396943360383542593556300497649991676374129148410258154345706244682648098196898942974740331842648453760506140746979204805315856681932230558733890597735789079501369211111716757463492524456360875738275168748167919359464109322275588933783016476535354757990174502959422435060909769123926616928189567046760670014478240714782807148207656921138316459980058646384624419830786493546851001773164774099710176207854727370827081688996575684762275678992337234118626591801097370861802404288065852079467430558665622277767708749857558130039223690608138672375949010040885520409949585481958569697011561309358693853015486906755169849096329915886107211133390020255259159782336200750955249829766345310749572510931547573905929722003582165363444124520359690724713908909175045693793965499987529349158608787672022716285820569094721553412334591686287804332715243168226506984684946023226819605751266259594307166051812171119579108873251157062231522465555336575369371173810660359980506209284574125816039136944153308832776010995910354871367602613997438222486346472856741046267250622219324531571943404064655751437566780414075316721743206385858782779619344678759113919636987110032669137050466726506369553025312067534120163519535180901480392941638583288963779953354540047312281901322481757036597384529621719543991082966570820497485437700709245816102689870934434630119673658428553580424659601162607911112563570979127451654073964127878567804864782156822275885944778427607075861141003148478599041303331061244738682141779913516849100973107773937705837262890725016428729844982807534279064379423813657746824185417154933595026509625796199528887264281973916682412059559492295924924672036304765655887352190718340750550901212937295414938782952636050630826350922035015266171806942230589178424684464357190132872074554564576997302684851596220475599931688729255912159211184003167437615208086083765642489833910206084884659278221691862860644997942594208011012809438148884146470413577068686384069954325619199610149594348132553544505029840317271040893312270556684035350471257367583826055024085124734813162108153536606404833306247701177380439094055372419787502809914117635248423176002506183907457485265731525891469932812018063434429611056137605131820190674665017376053789404130095710572553018287903327277287103905793666049907177802021896590234714514555883958408168832474781086985147113024479463840666349914173211688212633000364576933297722331237737622972572696685378192717615885382944334651854834243268666400406303882764928701730348648562751763518501462366256620763010169612298285774682496497973057793677607849808560841698954115833988800866440557079293730763953175914612656967666011156213583143822847944983399466967451548608303113946258460049829029385883279144665631822611239219609004880224075294084797723319319893733916925177862851096612560608027918980483491240237484664741659712724398038839501496791166602326555911620448291548620756596555720292186628844356073842703777826998829451435954219880683000280909949722568945716204742194942992156729202404398558348461765831870165525825683112231131274033260341586945700768379914410086892000400552315978701698371673434827357713036903841959971562271725444952184412510262600260672592308204496712189008616492450528650473240726668306795158577703692353055229173998643439416740407821014012710047234342336380364944363236431917969174591029090548757700021860037771597137435930822734224001210965245366397604835222075419533687300688504466780338847996221667499000559979973039058229511395044587874191135281821361738116253636652919967822021306654918003965529669324646806286946398522600379340034874583226781257661033220303408602251301859864245999484979767600968901354788796678321223413329249544843967202818978549838680393055461860177660244595087253406161827110323577321996288576654117569875742558736617088187167603313293886058632406949661957631964516355689482709554186558983665590661512145098691858891485649393506617367133336997592985077908404304046180691789653220217056784135517688846023918725091243089006400017207662705799384827826451512846356077409129394744469641703482439548718737221615044357833152174900172458839274880685116203559116961012610456417251942373163449702513764951465175437826117506206180916919336135008023839991926834219869399190349327755992750994291120744913853625334585125614459927107994809444586975696858313031287490147037384538719184206820968899908941126452472799876241792981461515807355091406250451144012648266274651119026230849017500536117273403490519507305644046658309304030868516218189609826460271119482115337269749956652346590847807887173984327288415725407733874106774800753885184787446957487094183071885503673747518127826566692473909866359480071051561802477966754956669619371802103043950275808512138171550621873858602714199455068333205928737646972511005630681088844770109339370461490533579580541034756045517288348127484418065200257141644914515499490321543929487475908892711756746941675933278382019648605458971730085766129552680698579719696983579243566602852591690832834945445385837169481673658743430270313470514430513947873075485860885509519097527007324321262531507295457522772176242323500211364182045997399148726233402908196033518371721529916608218289455902439167279173002434243516695361444066356924411330339514481589627449607342901197741724066561094172087890217803143137917092347335783535387355860553844500006912946395746957932528455967320170733804708202145875301590918713010230401850947158686347155714654908573004626647110546656242620685987707103410862919658110260708070256865300183527402030064210780114029746674210287089710852250482619313714393249499491315256170784823869712353995225825909345668172173936218192078019406888644879418580245654082055200609682532802012111790179693363803022354093517052750811773343491374316837276523618886877166836417348914932093849591370853187874298220533403220314904362351235384486090349330919911452685814723624844744960107780307692173972761823134919422647002081626913780713476276469529681896607104513693031029119735119115791745426251954816303246274174502116890944208946856683923870497308325259530962069550174298953635302490690748863513450500468200500982648094950597306253375358200223229084132396895480874976655279037084972839936141983980474617307826557836430699358995860474470347759126204069199697819780796587802417869881734659750301859666821242564819220008012711372545117256578673951704224427293748061052763781293685212500629340488963450909963478020484985135050992774954288481790774517832147484391139581386853249613359037767003396670182068591883036873811939225877146111940850639852681246540750269517291846495603165184802449669009937408368449221451531712843380723326611269950736448343529365569661946504805613157298967107675805710906403717832962899683378253249152968594372450130790901864061935276785214914506704408703005172937530148685905423695669933160311834339129555347551400213091225975590353981581783620081457554860407814842126415681548191094491230288972562303698418362420996896001711011869101204076844451020495859066816926988060598420553349182408573283159898479431334655652076993574492605064551747524967401563093191636879340895269500213985468991363721303802420255865245238353667952935369212330184472275085892865549421935745527860129560371037735440754202135533235319812024570266004061490243112122830754018894695786937811239272315498320131774017446624716232666338106842909092461466265316624235684252778412667326166773244392492867298148817652231390379335416458447642914138919537039527840684208110316658557685621955753506228272434417323600380587598248810169812031852513341849985886756394166324429252412030253413414466003349274280774460811407891171889177009284483910366122231527508236827108193063054932116409051283389779709735615667737397918290376830588870047416152544708497564175233809129380418768398129121898799731692337489191588289864449526401986807921314681516764989353343150755031165605952529466820343547483050575218630222342329762221552040549203487880957745515389046093462870916964351077967383590066357113831286481310825272111281071956251387480612447790087086523738034499599577740872460102225467655730208226530092095879479219311322859328234444086093683032704548339614807375937718236813134674828920731975545426268016679464760742036462895149466844492738684477347238596315978696832082048736858159543931531685504336935804720321386661160259079082474396039736299430888119465928418448941552176151124768697800149698993037369253390837636665035638836566635641458483501441130472334045472639932575997779626317532983822161493577141506740677281764961047541721094206206982852394505671779405104502274019606781139128059629643804963701368281301702598248168315466424542193772675335349841658415846352197529372378391543053185163337775238207797379264475030210680625990817893117980362417784089882642333479192951699594521203194562866304141258026630785924127085383536315675272274522290054544971368805110222470878962932014451587052696969086005714073158702038095425653521023194652255818581890643256721198058567950202593504164001226430383642326757700092991854722121458331401229121719829465576732948631490411313383364315639874796177075139999568727513637920161995965849639634470291442988167372520436567831352497702507731833652210060333074230998953899740940955556882879167370637574063439368067442523533512551865568425509791305137715919251074318146860145492827518341940132140794120096464434999029440739768624247470260741095352939138523234865031971822217332687513051324441190984436305092328240666219461041402823605528612385587734363616277463863122874557991722052675692108993304850820713011067199893046274099651921991610585854608665823147031030150664896708960338256171051749524477578752432737267844020057819486376283540336860039225678791397194872746179894394097748171195978551533581925912668913433441897925251103638483294342970966643858779770363413272534933359929644344176993651824184667416508679984717862560948633908455744842790795567537282337047556850120944329711603325312557053519030149440162836592778924454647091888429443852002697328026024420126204607937480831251631777227670306150649340902040909551899024647990966373233424635363211136882843112136953432885599598364959217079983036744463983081849608883845290661299858272249577880406758966855855994640441245425663227622157025146546811412134145133786874627024148190739580255031327994118469322230155201654167565511330589450446053776732597652529878134145193830998399307408208918045793433916352475985400294808189364674345042945421042851696534780425187458673994276425964829825937219315943509128102402140388622341879922935777530426206162217196698122682242472022732831028628149302083729719769541873618909782070363367348540562535131411198941800909704621166896062292306545688059863250753638664661887108954321209202966103879741509698513837012708498268717126186798653643613724695014612902825545235219581348138642764195220960108299226192124634832774635809703238728221140902160304517310304569108188865730126571093842046363587161436254572871683459733437596136837379883738110074911127246358773962422922027508625586029627157380329392406278552279671578671207064797988663264908514584888365892505711244651771033736352309420326446073515665985719191548400721508037065956446049978401623070614468547059615566468694507709921644033193093796050415518918214965300062312414274171804627298804298332016190892450315582392387984222170616707657129909042904355391411907729463548704508989784376199427289335301568470073894855914169169915704970743816617655245399969426072583510619873348811101265019736831764596263145078141213379723604786318619104139907914903945445580738578692505944870950579602506232199205493705869597018874747867961699829747981813316631197034400611392758720503665414725915795478409482880835703011795240650560796458955040722321442073258569808704060639947807505077749277654581736247350773741421027869990138177263256835103669353006768600668552619301678850852107486358801451312403235215554910005099798673063697817225045007592991715776534084787568971881049776029527568978902287043901025142459399710814086843005688215647380255153517160215377179874078098988859292026971872759891471974256656625993620488583796712027537708705555902500420128948362128458530749788868103027546452865560716402285984335084295427370651356888734824845340413487467776614795965637270591468368840875775136017765534761843113979254095343105158294916845628618879725593023721852154518301780518039661528027671380025629632493932051685984013435885537193641711258261685823842529217711938168158143882378209243512190177163761985891747553701375432833472060363379143457428342079754384393723007479630042096741823770379779828753604978030329232832913947498100814802046615007748752599877516260373507268849001003998708930640849980561970317905585193026120190371570470699828541249232453558247401833543238113729454138332613185191997326278038785519896957246148989389540210810150073088369464026275895638111299301390525894261224398489235193140996940442066069296301098908436243091348657245847924208644516920540263166438586955958503361939321266981371557358549960892773530250017796648405625706941070354917646586360209884036452867772421140272989949854199281368550780074470191526128560429306748169152231850612761107330395355235466660697654204519125108431060792098539728672766515512470761354082672142051975253111542384220338877233039633068311792461491339772551649348201857138271581276291298863910080656216674877963166919995309715358852886019363183103701319270426884579146914025628917911485370751709154947440513999567170313347925542808534040338572500423320989704915726294996049916137973759511735429518332627284316660671690168199532454618197679005665425210913485241099665736426635323136256749054544575567306602184820526312653456798268579836555291156515179547466447427780394157270025657395781248984226475955099035198082967335087803684920563039025774575606361950451957778575480374471321971336483976498330481534426479745622983320504470821480611001429181200971738516891673570372280772566149384853863960932728015454740751281700740083251919356006531691781789037029680654076432872159735998823706388194043190195077110733466480994712520695809213986981671654371868573075923354882206299512749528393421901590431838167615853988424893481586658476952471138134361861165817421617207771964461677714732535736390384532992452029113805503182021487669322890135564181004717112836637310634958260391072889665590022540749261802034737926155409913239361733841445417728585411001455064749483935979051912409001358085368864727558736859920559952281959227016019222460201171512922947094160951589861332531999940175620630488243671128041108892236107919766313420701576876401878841823890080286254219982949399962211180390809027496094386446522682598378859622981003374571660521802019517613930656634050720571191359618455024277210509396296999780184405052511226175035235119454005200375576087140968854904306458714553284347247426878854320300774746150879046868405882216425054505710561689551524360799162944922678365588577617710590072658011748956444727383545809790367849048062350903862182391590334489124297344910162773124862572203223924170966817485340364097870725521866459400634921328532096076501119659127756853238416761104421421276871190814009208157835749383704802009054570881092193760075584123228807107783496757902268091223992147044046277518401712941044687947189594441865041022687238282115402154460544311980284718467381024271216896448695597631739996982707346568022642393373664432038575020552841965533698497084413507234376279307006934709886515288247582505164329089101845512361107696413528664284403224201288323345644336615001155746520808912737200549741554002943905928269286126932085465098182693977797206908728352653422838057961941442140076300362193612166583151079440814382732577166815219114628638115210417946255593047276080724096328829365072530092200523423057277388773805330290044197569005162289300138989118008729505786382930872237725424395564560165328225230258651793268637419765937777466588248401838004083671562246204033379241640618657873798231597597341007777599577487528732765319406694155196162648884351106434586118785784133554260906477876222440952291029810633782157899507087004906391562307676331226259330392763358148870499557988310963692658322884775193184726120288295744426735192233783014944565426529467890788731475265006119504141220766550699196469159301275400687427924329107374353801768939882889399983454319933383900491873656373885470109132758421996091094542866093743119343952249778611551360312581742739591991614337523592022586734159897298472703213874327206325925929898395477357252554445855951059163286314157989601277756298214067820725040213279850142856531973545089578919684068321566644994291131718538184828527145900002722846692471989607505107151183707795595960547424253259260053710616114504398889820021457400910517926287543298397844145230226788897131149682202579765424651686034400703012035851743899138141334382639952641762223825935102219834751085266026478594112280882892958015948205166239018299526984821776608217355266142689160459058988249330087715582052122503671631425041031425681547831718006945574838743247308708195626791718257829655354568879998408314745730025001802641398401509827392021114016920175598188273721539434935724732885311737188393051070790211630040997970204156656231376949377566415203836628289524751566581113620542213703568391795969924270696043589394939166631879371419921039093782987056625542393356057040869717976979814374650588634751976014550915636777566141948265082725377797978379253289979151954198657262799343496605971866483653857692886882483632688465236411926783406064107844489404111756209916725769698208163532297689208654911398791594602495175578813838925438461035240116940148925149647147223751553811482384502468467416068398653524893041667092244369287559270672698501464184046811356058877119127985217711836116551300909966976169727189822179750143091118774643452268203072590185019223788701656960910542972270593575773078840173466927191385012717051450374784967937496481680266520747628043216206825289778118547082750897843387102087176369866818745505268830475311823925598010407865533120870574219109737034742510264453144145209446068788008567268597545844033341373205535755536109295661274978964101427229884102619954078964152171088685942757305849845781427237209605844147917265966696425615624341223097294840920608017427195121149133478710099536927811195265055087743333620713577529777579052621018983244953384685029710684441979914720405503764408688825070389233178967191897520181192125654568505830050913436719117145624337148537082625857190528672862611134156443037483288075952931903021242030591708715075648003787286727930203439501943105046125550866052094775413629748696007586968866232987290189340515672596006897920740779741291821632584119474553552673313189957858934299099424518923956745405709697450568870677017005036537989111610186706823937486432370327097875626638484973663644560778442013093516657165271698377920877891970018645984255147714037720687776809461061458206143966240332779872432558331954724838341707680905185390895918608649167975304064615672244342788497382092727318354756100180416814115487883340787324616761003696108336619616075793322835084734249911475730263308450814635086282275981624712321217816999716579644834273193505515800396193567130032438273868973886048669142401041686932553827760738617078819044758334784258825427026512652053054654127538661883158730546242485002391644041044321055055793866293250327931952118767724477791750073675635053522802918060600171682385437651260989472157579327929761625998263511431810200803549897310116337944133907737236125539081771870567849626498117654715461085372985903908563532955451742144205649949084988151535701592088089639299456436785860308060497899555273102262849049577938340318873162867068685684388163802020639899754284844649199526102097752734024739589850387957391886987894571723992442367342884565795244011336326919970431953859967779870407106856359561225861041949566274395348697259251696090612260338974488852924529482550790877803405892029724875499456810739690471371850127410828998645303283065807718504865604591010990637048283125993600990111453339308239745006752827527353241332833491089021894003913222100410061298175306483339333116085401147935810265225129493312561546958186566883572289206211582244975619738191472707742233361697651358809490816928473165177495783804427227516643179026824733074621298480405017691923540280195229091830282490689200234084425880557860664087193151473309348531854824522349462982296668695020549124267781265596175055141148846192429094611237817756990204751821325982184963343841012224857778869879477597926976340415705024628394835238987111436251531787258183121412469869149915406377392580672884753461565955193289167413381818624331115042877243011028847647905532026331767803858535009623805436614217237436952783348195038907915148638287772025393179962368399910830678975041121837057796701680567665372942480585311161732331193385478413997862032688949896254511635445012897735026234253223138380429902628726618138658773176436544808314952084063033738863043139958493632753661088428003107145137388760827597647063115857319673651626686919759865944668131890296129873921376620055204697671634049977878069258263194022166795424234466068613442745544869806027793062302163980746151205737111135344708739350948947044166077342175680151085963044266789544520136845836702691812179149614114486824573497700366955303468784754311649354769938369081948164083267988186452453290266572240317078054290908238657287836209594835988570319739374949758743591739729355523781229875895831910849194613467203172237973782229859750871864445705373425798927827010129106120728941907320086824195940667598785431431022021599258832237834202452817945431382688082874395470713703402005632336662071975495076639907338005186333863324345692448394594013270267252046960249735525724027416487109243256636961759074082697919681846620566859917687878423403521178454574170632555604942345592588528451561727411990491406163713865355236026182723812283115627832133137367306622932581594150139151917000663062619559915579368880930253944515012240860704704629153588016121443331485488415814412046564230135508392275544784438191970090841331915967101594754001562079985043120631363584512717828644737204077890198550187978467791762717678010029693216224308156865111293222209370324495512263621197068267402145275135369774752333473865235577927014878454798773774480773378696830001884985189354168896755156444871343891070531180953509284523312225801345280784988167162805997839214528945619294157214548505173225722358675704776990612119187318149718116749325033333061411017392296017364065635018711512561954946992924212115136204168162242113383323014784404957786824233425555908729246324690546401076232378785454482560594430857885033290941164891391520317431417326521241606658904798954529589094095698162374218901034449924068023278515425840708379678902513195081592545943456214886858446258482075975183741574489037378436494712266026100125419146527262446515658666493381747936457207265732577720791610148162396463050212247396895868240947276252336293742455127727394800392268089653947085222865863641557727198515164995392834912108717160844798010030343011522364493625662620441038090976682668018981281071643247442446841915173157626630485058171382260365150991158807436476071655532985447083903676351118157932668408377142455498687557176931994348615714274309171308611309826743730985722631944577589242000619995330019296627169818443998933256066736851266933187813437130817833334383363257240076321751440511136763703334689206238723427536585464569867387822435444864150077664891120628652669675040223871050676979670627135987382632773079857492063427398785789171496854667853628963381341128583563025161213694056576113907249016889968159546886522625489406722657505798062670250272524514620524646110340237436309187894019678775115192157934745086158979249577171631996672081147024185853527040116464740431890006322569282878387001968831722168188444051071569334473812701812633785724614482010752187285047668300325164598831784975953325084633705675621714639666463461314161071159447364484080278856262640942897848060113627744477518576376619966376603211688303931318121602101675236527618770861465983456103309025971260255949921285382794940305876816858800029898084355982555703617324709019021896132487153634360838909254430302802037788927157111711151200866564569658718759121146892043193076718769854632430123975134122593143350890882374234677833076459438563334660107262428329027877114189225133124707647824906563171684017876442309800663575560972866780620418427679485463545252034675758210032441510724950006365947869826017576781519427751168544904539637546000796247339951457586630942087371039867709489541052833863431853090183263718886098422027414099462372315680205583943471700021969731541669499092572945695635934671019786104211429795049648030677223242533147945126818214033312535353497648721012605487009528721533428560408686007907051993539125141948750502350206767307726210477953943676883950457369580242599179575841700502761229021960741182216313771911348601448472129790390414020029410632561564594102678639092927129169499171385176399658330936134146424204898666134961709783256573137742860113103365736253447813403781781871575406184249533716332056988105250773248661827339653297514544211957388502412650763448191893895632033369951966739617160103980134274875018060399383814167934907792138630443672183607159260544972100207565562801714861119097460468712732699383710065873058684371120850688021773357644021142434698958809319732302109039798864044639795032901505615963797986267292025031616329351983761941282907234252388143218702956034946210325526312045487283764277474889140391964123492138507657356811800647952493921202756065160119543656409555792061433648985547798446686066329376573094762373592099562547651327907336429058695110656020621682785369444489818681848094230252746245588045433928131055452264219966387306291458348668348324043916829723115674367420832071701047873902342740405003897937403156074634173206905624887220493433561684027115924727415781726568649979110753803538964013468531826645588101776962137319277524019713191190802689440183683700361407856428704909293219662456716891411907564458498507904981363132635141219210326842338208740475600537563929547991998575372524442773132777946165692152383051128861482800903663791808159510893238742793525425488408872189559776713339699438206458998127543573860242606733357533327554626584339632026755530973513334898170104261565612460031643531356630704705435908752548060812005317300752324476611588194909842264730037070769985842149965419214449058384910659836591589506840146258123351532178676200908211225320260411576318315144378509593116367501942791316576348114322946300853913797230676554879763351823306220356588604915266037628517798967525641893647831278332364128868541167310505259669358402533057185689327379557011696020024689630590643938146280067889677539915117677427115500628654878839096789568306874794582722666778130266202067349601335681177629538056112591116006240379926466575005001035673215664032975265729938549577713114873287924002062705020780836444949880404474280032637739992319065960992668110034297648576224356494848529283250763499468906400059377812752479619864346246402945296404452993703381317266197067519459378698004933052154263163864518462650122480797628091091644963072328576392498526783723082814872970168217715327604050840148911136700374571964821520709485232277331239605768327218044839913516920398618359812683698746262507348087905487380744832509101382756968533525248279667893624854295655201503432843197119585433223466014285202504844816584983802310509445770255241235854244304585045716567905830512293807991798805132428193513242993813596245357199176667806131343651172730434482710671054047958226201883624746512129116598299235887875698977294405979488128073740648748805955840889446755802175176199971584899347273307163065640277008143036142093089920634669424945446904588922393787103511439930500133631163929721125311029857244497734967088862080592014080210806192976367359128812436220249023981643799183976956009857474662047087515208525354111951543068062235700019271907632862500269215040605559337646247368501087078659056589691722803331920943228261358542182316798961344693160813097199837281215688564239731854433940168097168076228588008462492920658324158464093578971328560868830878560494644623762708251675733008149190610264766564584715062649396996718825177668810119389423827237850839683792831690570506080443562412747141204323697663028839474135899073533384018033738695908576458916583165857117063707487591879332397200325917436264126053448682829952798639837936729939851899415905530414253404038156394803150172024104411087525760759919504677173567507673898225231309113858882744105472684722035939878527911878176970220335999251773745032000405089523909590736129529596924298422557891341964883745531768889927657434532687978981489248216235850731830111827580171811382560612439679626933748120523558589334404443559445343210036276106370614096928202863255923295036558693947857831447869579417293046095031996381139180800064284930129638274169218456978968076677997236763338553129242649516527934601216359149470198697483243542213069773404762681564946240152284704795705096862201584102143568027984577493478946515746873649421161057980223444838526476936937308954524220507439957348600806813575359598854275597794132128068076288845653284617947919292970325673127114337021711316587344475297055103853469670586718227659805926360929712574147765917411227049004318412174620201248924474330160931103980620662704296507138323317625064217922121014869416628366849442641169277834581537637872606778877011183438333511366155651965685099490499487172469454035018123527713348800852570518887122614050014611928809322131668952314091822763853689895206487650440549297233412065236762300156677646863567152376120982792248779704049866352006892034767120195060714383120330540668395522956598849369291161656693889965919508214208854559842117806100879044834661434849465825825217831012760420721135946998933727594794280220652656715065724333087560592888350868232023779242011606530095566450635919427483428446536932958533152678997787123837883835318550273532464575122941578965706566656452097916427188116895976471192001106797094926342176579186273905231310011195956307784303801462198358484366497716359485227004468767460391607951852150764862043547487138748971458047905666715916524216844973074658678048789807801116546840838845106385422473325844455421347596216761904729182191759092195766720376035875667899297660898929857740720043082593147288811842423259795763828650908483249300346526655975525416362634805536156437721204094034580844906889851841080884602188975882771979571923538770310799602761936660502968138309040941046488483535041722134957469061070735118925458664044953481115226000192647475556624415461059930386683580744349742011235404912840237535584600968774377665470837219357351950317237014878737655515215895282505745465692086718003941733332264414744904812801746173818715493763442885175458406811301827530459314589273743652639135943005179977276502405210898565111677902648354184967857749535650242009458166899749845332364956584728828766677925673477580200600884378723262518311085914967050980909775730475610899518033871561774528745291213326283957961888238333581770990783970425559961307894123449853874083368002596787313544521724334985294399900099833299575942259668263917561160151859365954522256473434053021198087882202729734856468727982832355184772736469314614110719321095648928499136838590903940559393411916522121588146115169588851783377956366699987416965490681607837659570927526911252691653331766007087710593531439527635894272744945945015416597155284392516181477959550892755565872760315810047560262458501305697116911762661454057962151770487475992287449313986929590096717763487618879414094685595042287796427601155712462090221084791661560799530749058598697553122853908064745700482269808275093429823359382967839585317886635567981752636511498750104431971049764378203421403532020812808774789324012847873632542225954236792802994258373003520641440410318078363691566166970109265812563904217417569569557477905999794291734914101807578447174013238487912670634531033727738293646984995436595380478944712167097239972302983671635738299225127213669843569428608500173876091306846669793077807702410572013323585564402881891092735063057119434715290397967359873041215142660603900690075165944980605896597412168426135097653741323815512036016594863997374484194819178523937571992813496049285674698727804982165441203474025975633091023261284023620872653167331158059042295149118005745140016629367038713212193152803051525849198694276069670371006350202390743129170196803997902197750158344910466001447387272145097059734602322964252233196660449812635527107862402348428775407929227603446973827799945284764407924094326688369322524453506906267726858135769791268129584514282287823699121132928298708891802691302146612567936774150347916612880894311120673129386049833404456035200130585667485832712403960617264070414892094271362618378907264542310214815913968458963042222983068558531287856203399254578498532176301871821673001260522820777019007483067321080169960056896274714270403617403663948199623271637710446395689562529544782863492755623439226948870353951331411486292847273052303381696753490365913814594072944255613683387967728300283868947755902191206496734726836004178227983031882298799292576094558430661748463229654331050249165815653717698696197251503092646935420300771102198092245862516456725631973492102820130692833226923407191348410076726483673158043373926891642828521512995357067174541320563325446909966692325913779944490462690300400664856672028946022712304381416595661250544821248726288861185516866603276114821622493193358373316776399935169208822455598258434724378764133923311558792063275003220000556713252112851641424600706189138422631344098346597516368113117003214587927757988791018925660961035756635460088459120926484217892333337217142124626801579264019951782802440816134073287813455027106649191397597019333583179310296388323983302303479099966730708081834750074598474048808315219651356902101153634970943489044451030562542558127847561753846227899794769358983227458501975737827873274207234631465722264185026044435406916014192926406497141156622910529925504318584943438329373464107187650909801968198962204891863381182552665012986186941710882468913582276799634358229718432563467608996742571164708167145624677618835163543654361445487136952553597922779050155110307045769266355731450707973577593383319650394033426058386721811630096279322970086527511900980976683183203118330162291569814381291892217792172760682713024451138567885917624288556599240651261212003889685250289148474439421168400370323718586942531667101040233550361509875313677062635123840958030630991112468590546012263839246861088887139995839381755775911872081835284275103694656395029777400148762034362724599744519861326944416150027491921942124338385300127147964144923667654224928475471818831815138580444507623056994307477321965449135028462101404368823362951825628080651708383589856825587144166174380183086444430456155007782802010738357985991257188893230821997902683535493905378108355219098196263368558589712276467020182483555656785257104595550837602133371119262645131902555032822399126481947895205624234290780156335576270985516192216657377238107686977921367349171890683058747158373959376621212531960595315051570302014639971305986785163682387587491848340324598435021062665388781348102203166268517982725984456037650548475163618590839358392359815154995887751939225444086082157394302841719550236781387252096944454061340983955571672254134096597248540488422848668481391548912091397138482014948010381556411990248017627624052124999510364235278321839021009217677147284341077507124192280688346397581175731925342997006253723743044518953879235872482906639536740823978237055995642109336147218801156750083720979302804149923437619480177234865475057014378942738668929517533593974809976797622078733599528542298508036093245968919307831400811270336754831847092505884952215491704565913920554351924364852086352562355931736850343268405403321920202088329024645901542336818148840839463683349960387328767686939100805674913350635781493268212745962698396155070402143213478200955029317986295789229166226736578363845915345086748797539554220102430766081327991070033799254374893440790134577382744260399954900554613033056697026603226727255775418034874393539087536214986774835034131284729751571255857007364642160789531603011587468979888874619769922609206526196251541815094767089544471333128846798710723990598577783530680287330441350383669269072447777795644406424075845168249040205895847471374409583682049550241324671677242925639647254674811537604822472779152701330662390415490659163065040704492343123530118939404031908023309231989779367832450887767758661590270032385642086319780861545802761107219543715740427090391102928373077942180851368506071118289779374379414955563281702282754348152777316412600927047114735267562005254702245206911550425177580836903391883936025335363857628834155614550923220640455515582803727589040398862643793350310999016640341537483648900617317413928927035532899395204998768567900471851150702041524819143791843595590183636677631498435984408793953888646601765169306370901526676500804732975344060619475318046418961120488945232739339291921229538365301708707795055434536441051981685912277910909665914887436927644371628565641722023818812371842134909597314429536587485799218548601986164140517748027417041938499575934228161904805523793770168193830727893826013341585230091355190905570455260783088997653445284496264081489965528257944822874762632997712205933237613569743603491112404434924464322754423922572440941042022337583333050277012410224177636708657193687874768154789898237494341335691882312432863736646695154970432470630156609921691499918685002113255170541615073194008942427876917136125657843663918202312794380953737502659272373133621510371721242951303856268746099941667308365737850245466338719807739416533099856682524249526358983561737416528815459264815055435028489467885894523922459671286375876618542374981705636300335072470138832944513047736610962892879515310542856428567896359554315584201816106430642158651911160040159041061708688475211447543670929505565560079483353780792596935097031394602931639818468577062721056540861024315116905915658767613953532808889693064806529170679482207092063647673266766828841527414567517099326644268580299573431766536036661816887871231680548233857980186926904132420158061086081418631399164994657610197653376044926686411901515403497622493217559286388478693585717644538248819829837512003917985694798118596004754095093482780661136199271219403771167394884589591601524068799789203491584357472947361362703579446588838213238048914614379370507122354889549268603349715190186486759420205872691732153929996500041897278651868225202154401433829393581820111877824165640869068106141609091794591806246789803305404131701723552486798111556912129615659205870889570259043295927014380956432934413672315846184864061225297849371990418838077531942069695812277591722778599807961870586708157100632611838721705299180407598705030768911347741053740907342680064231045935331611233855976187894179027714719224909856828492562626515579940696637427747232272893807026721563026554546953596145748409993819411596267621163897783248965142936521641305832323875939372608387494421949874162577216794838745337569701180562474325559982965922240481098718259554810267682802495183900393884142460322215403894367921385508652514923121306919030927050899846878567016189757847203596442366181028687048190248190694310325732334513574055827750084592875414686851322494685626233445808635181298730977454068529183792421413396993694165365077365219156289405894214339755743710676412415787435056826943846409370719996965247794416911446499943625845110278823331230222718389772137784588779935567737532134788686415900559666020691182637850116016222321328093057071278561722279342332502080954090155324846969331198784317649282509914984307046157000233922836570221127375311161498567183170289586243445064830844382494909390261970265172701195253690660021909338684401129955102843204366183736233822315129815283001765206570444630018148593607823942865880119793475598100478977947461735755419793285254934523428611800900772501459073146225288140501429528713155730523223930740438780844316509268326214361677371474373423322420217531810937222956270112815737935655470724065551796426426893174190891305406186667810183551342681718228810892234383216905582473498638875874411744999815664700874494925657388909559554389327999360575413708791495744821368460270583200296289662276481577356701929215190422661221824660297578304521762805885084869845317896275147956712158650125939011780640937329755944154005551495969033042289606856097103781462646656306490845857524469241086967816378755022485316145630864703018473161244631841922828435975685912217149109228613393496208629816044956854894579549165974988435571677198761808308148521652263047053221777107542561465368289225698290996576134777498950705284310604732606311000610309815819743019367024497445210118949650128031401131167804029748545213986676243080400422584243760476084436342309107278662364222343801214620613227927295363204220586284449180002268826965717968770719674724538476436270782954320638721621761551595892127447348484312733324184020373466013348249752072450363487239169199970824780201768335136898185772307663503329411157451303126597490428145820045389943425226436450531426693540920190840665263369582369293097504659219158695722280511713711976927113114393753539918526348060431607902127235753575711364692245785610202739126629286756402820525002553025260501038686592908528360426521393769598882964002666086333497946717723825817821262597849148006171612840024977417938852824451278160618943364722504575378762029678341680307722761631820963613371756659481385476320232772056767727471090263729627743171613439645297400535097700648052527180919593736625361514512014933430085871904534781651524252853754801259799305095577432376462343559368573748440216658261021907540218969126525751672193942249851377136412240251474325568132105408348424291683967960104139763375966862414242167935576568391060736994177759959176354979050812002678998217511815288539815167913001984660553356203770659894677059871315691285414143110153524108807553407963539355116599035981725584798747090537065619847824986515783453454999855708709382986760033234364734873747569607017577376556366685690573659441134433355690745966679825951715634945414830984416232683038290355390622752461590318963343043648460224117525857233713587031882618600210159536173992664718755399946030204174670666406554295199747332059630348908422283892855743753439276687491402385371408559759312921960296762235076159095313585113809082225392472669755771578058164233386356671313577702694545168117169747628545636876930675731929355655968969841530998263162820764619995073666360706123332850624076196555639896593127210284310592311729870768286743725383445227984966792388735381092343693029475077467152763294281573042760022477520327878631190157472152169067178975584955789202748131634889227318842458692045333291990428149669848904731002617510130065248079907844528610306960452928816115259610456224499371054155721543682812038534067632067759953969983772409213169860960723387412630220125640449295806746150229456892756271433657064971900282866389378433164282738944573283986833981073138872169738710813873434088391505116390095490891402198025257424902134236468011431327885960339826728452872399207939395989769447402824585335624804526802080522164936455389573457246212293841627210313818897267731980542908202055556892383268124451382648042294253484306515454373752581365585067274576507730338311711294321766678533001658291025580595294829985171528841170223693349487538880910914917631697227950736095723453518168093829525254258521757647627714744610498171286574840190431740584926411711004259636550161639135724462297061833063134179170668431750461178217216660817226600571412368796825878941774830350018155090289554245369324192705186044697121161000526520272832017908816216860271292679397989976902494871507266942431862863154842544341407714293734466060613264087770744749166461653594101099602437305690898520673585371405199327144983462230636441178760471855764689682788710597919451434713664249151796464686552579988613069292747389121569501849172373506626998488154574761105057511088662200857406958579021291789181940047996077596034327170552605764022856043286064667302611429844708624204028721973133341860929420540890892342138251413992284874200559465750033056059500612839839641856803169048669350731178625972726457337821366295928637219888542908140848912493771912613084315939862773661624512094055484826008147741710809238757953590281084947063331701688724227639162891304666079940854321400238877287578381022401475038294634704355271024437983152391586701532802802751369377554079738808537843461612282239908870698135638263476694441328290610400030901653156501784596646879795568714040695363374551982305694220247158692211230150038836645338956959158310231356839364992720324312064506224387322995213717727305550529791073198248938171080098608341109961795433413889381429030277751787095099661413939759171524672729832361399791938188137011568427131610803307505816219606881864947702454470719271250219877560182771240481890383401714923537332754118952006674251106983453199835476828247985312023470429857952169209134473966439821794644292533837818724667673163061331080692383726023819516683378721787719601568971873963101775330451719029952545717535563288573010193473812400662214073571089633139151954704946651940338048573369368044610757982256316648380063882399594155576839294536811732096646645153748282246070137188999100165964843575993663922486103332913510702889962090060456778851512690124003711972699650861138802360757270624631551649944251062329568530496277942982198933312912446267345338364888065157542936691282502263050170535925619881985870668860973494552921798080421167162366340266332691123729827193879864780802907037219235067714569026963399455128656644150125321441135867376396401721487859290779126649891075581711575183984220273928861432486228372939569472386303083577333122041030199727409094460040536244601666469800652552949766485840116245858435673149812965632195184847640623279857968549010015627659625902790288074883264834397635953736816746857049062237110025247494654581039481594186930280405842566206047181840276856222326856311210286182855352195971369177096933174758599741842012542869646109975597290813822740920626348874476661666781376502365932474209511900858932003115967757900782238792365937554898918855947454635617453985247677046912350670190988834045640624702045525232755208363752439540711408266980180271838107278033109308739824658321605805087114422294360959623228856291201103198245372737213499153086348385313339154624292684038646307518412044271922034464659108770868674434075601781241979425272331658723496660087021267842984531505706942499560316109815194927383503204327842683063779245782096487201510641513731821154303125796742922154233053602092842982878009140589886556077497054656218543227853753204967900298664678835402348738953137997799423624876327186224190215772236145993022236255548105164369088805636522017144265156038420185534294950163657481816415737875044897568563767653866389434161238149653713681136432816685426641918477882646218411693865986437458782576517074819616934964842800206701606039649655537779260424525823615746890616148582215438537792151665863358066037860929130454630619333638427892194838944804502113788865854777136991902274263748058125201538739750984997871751245170648677714586070460742995191027891600606563462465234800212699437651148635314353747134355828647155394043499761701831751446312026683623542373521896100763248670323873954726186262711906033512052552310964773062005193229457173402287190416840894747563208813285016988970097018065893843356476064018942935730006482944220048905140054196552917090944681826226537529623885047813268371290074266566027526355867514920908179327880872146291094442505307444756151241673393658948004934928389648381022526463964457739335267898813547328556182332256737167470703517966824422960308564218584605455018329407909698911228491339146344027377186434082416186210468802020745729797036734187245590199025069792347298588236941354092304532907562634562947752142837912552471016844569983239416906088303501581363357106061828861440607476506259006359105666542164358919977102748062927860934728435093375556610043109279250386145840989148187778554995531600456740481617179147359029596896803656703667041410030663345957462478411520271746706018569654780270466208412449760164063852040394709002419315526735081516327763646404822244544347699874687463876246061159301953191504210171450514395655863885544301172832318864652920504874368460278706660824328876479708386096194338719090296030620958709555313559543383954792183530223357829092866760987669011534912528783015980433649315784652512476001490596794898038934927337990828027960111523316688557066175036617659381488613486887889144690819480131314587536333950803082619897329235078173797659925738365382605682136441068142735313691215529717679434011876026926649640203782549959907556697801065878159590428205833953380082821893780629621683588221885318167085927577184879886625059868303942853611476894418210855855144611957222612272676827871838611734703410312786289956261228051377597629862031294555197432668791501216235094359181703934036052717199173583023434114030115615894939627214022004206256301222154328133764407308181269364549139453188749391749935991274378906115778203808176652222860689133912936815627939105266245873452850075981585381247894965664204755091658917059196223029308516540525632887018837714034564407319927306066063366621195186566736735767266070262854927293254092582087307992536058921435171174888896428610818066851192300062091085523358904310874756525711786499613361383583112953527784278050501285046456587708384121185574475479433409780547274392821457307106127321826290937170044143073166891768987136147318846680174937378974583827527112438824025773661623696923195434642425115631008973964885631015152805733340130880749309850342091464831507364891421746615576824210218260485640146827097092063179964096976162529599001689274884124550499523595834832685850232785961730238976910947474465579257321558049817842470595916342518846126863688009995276860182025586244614552676717339473864032799962575364130927301394797861250896820297859983253949132647494483796783887898313689012878697977357972069203975780885096085968904050998179437601158003788900160185494187733881389896120866380420076959218160986419157917729576145178076649220483130272392605405925279340941589305321859761496954293804632326233038949008602472299486362319036618789135602615722836630535375075281363931172870651264388471367186307527638735401970307639808257216780520458985302325374796669772781369989848867848869438130058183096921673584604966530804952921276322502473107562258062170916660939117865820551645641332243653853235894394197348543474344628601209245549520974786686819210280061756393177562537959703480551084471423953107423776678374179354249749493451793894990834977434698742240569892814356938741455423766546559092701583980667559110356239322963509790236747268405543484120863869672588037034889853700914264061084891968728235988307908612760656134085749045957301353870373418059491982382818823502297957986905492031626386095431087438453645483535983041239098650794963397337956031815630384192496267364066854118896448418212063824087300007441391905618711465823835837141167932705349714159638136374964260012028638609197389058939047547290880716026014198123310120507190521914097601708590527449671852440613864029518222523835755882455812112356215840959532024445619052912353729864336927365092994556751575418849944249320594635000023120880739503621310062585565626602513152172225487405439768889411807885642659393690742641676755840432748586777918313978552109704818217769398923193129924844036076853756177441603375083756521756836176632314769240112559670873086295096420349599073023414164094516263190270257255025952506192555689940820981137231577716502086123499530094939779314884831009622203506888726224908617959028943549008161467099286998576526917842815495695817202147269659736638728456949674007089922942921464894553456385527618423363590358391114756669692502837246042630667368825838259493554963978997616138457070136262847852736823429328794408684861838764611755387956985071535335808514060122234114392653002148345646846280434243722999673880338704160872407802130621653251320298165812550161091464041935986483242644479525205288685366126431151495548885892322295125026477455371437187510653750612507122747226569134177992831815984647038147773190694049810937429887989593332692246182129790579417085279436749204231289459088952189995986579856023634740525639358454645720713239291819860215611859767507145899612698957802460945693556493667533803486430760631541340859757123167278585439176488492474812234854009939196661635222518723186593279411256255664135363651750146946005424648474071371366036591259606846531899909784235961750327494590488586710961795180150229990023996732326159321818894820344793845996955436246255141302478946954973398825604653502547735135373331300501441021517266031816837336971361086948586441090037376671906599340486468490294298871518831348944019176658722796029700163642589879668353512019620121524010412591192392175328217346634684312806999394153228314201153030669463728303743233412099709114064563800865051163900792320108678145807058410211902089405810369901786755097098650581930784829476912584441313670667103691730687902047302699324334476875848793456554829273051266615387425187688106121410036542790619370824357638628219786364914199203875177551528669589044113778716978807009782652197456118899806553649076398596868373287498811760589903566622787620012911824590108745389316436529544930190321468547786848492401052365490809447573410166192505550201434336166915680054779125322663531912304200353144247941129995831104007997062222881481555396233407290224652608399703292888195805051806148489426830217377648091872346240426529301803688609726677662562834663036138938407936603093774966356677190114918015844770949184051944561465458268644177071534985120591848104695380291192513696246349448715093463837134271886737857835725455389627383952318896138145126717866554851238007152194527913643952740603459783086789836752184999055848874562039438628233437144038212814527945719349074615049581210988669224879456040923907949447304959094013509763442185250483943794072433566934712398448103987076615500737145614271685405920344190461793651363714978434247622212569140159203148826453553371302392722417521223773043949049300893274491795039369442958752647193791443437856055766456524955106473872441865186251373242368621703132249107823116469602774363541345265168125279684382718282005539638401479908502869469562656944559605038171143280665783519482331827514300489426937201660551743199116535883255365339903295948993723714909538692059038128702084832770901134492659115099884159792038583043046697197037849719943058901725325723630626547175845792482230959139788148276890162991835551284464504673625962212830445144931419561670380139128387865712813455741300648046300293968506423072687890730462193087232485584593690212984539677493127265103861374769825881446083896123356464306102675195944620250724943817616586169380200782033740471179507397341475737216624926556100324440742480424797811711493317402810814340370793540711686172127477927515185792882502891600884126111794545282257749101287023086536995647530212868669618201162350542026936437189944474664001495853430378778497060001742083350317085123431755497381755712865808375047145855898487933729529943614411303200808279361785910485074617661602342932595586859296736661395190887628684370715920567687365120500283473938850373843427734795211942825699194902059424575570551333199067784570248454479977399374694657395683198437031043024572583676657025011357824463875178416699658088800261142184344770350886902020764316010059609748182152179741218924320164017706793609298467533441154764521174560598185695077927397019869312795966737821446591896769169249654215507279824083288722196689659868217366256185595932131831364408534210047364358315565766066616540329947905851421351140542453429739941035023163208466294819330938757413252899845902988576906935271062877247296184215846123515936161382915563663143229361904146836820697265930977896112754662762544058184926261868809006130532972779164531219434888331709392809892876079360164734165838706671607842547958176557861017451076484129810319254424500880687821965392273808545002878001881258191805788391466015670024800431508072180707861891466829758154468936846446504233840295796422162425605185675296158873876328282849721779522421577503189198048708805637795483591977893197656259269593561239510792657239795017158035518040198212792873680685833136311822604052436221477903756822393349018431411055767572594162522031485914501987290627291093282669695496641418848188152090539184841303809845595545317867523854393637546980014872743189879871748277303330265153104078287416466890355036696667944850625686386745192745949614848234919873163701459444456826626270707682060031739320162905285828503858319653241621980053664676707318585782267235882571487134327010190455422369813948441890017586964287507945227660926924341815064642510790561118958222358298772480610379171027029997746742784746807560741474465177963352908006443865236908029181734920875846972041418156020838706975529455360474883948855588348921425181145380932672239789553233447226475197277324580459363102885738571649673055336876578686889805622203578665451939386268328407605530327427103102077315788928570439416557790894236097270412113010086100943552018990705152972329605426222291278953382769464395630991634926027972479295050496300884437825343131769272470539786806133329634447434938858208887927249568102060668086434724085594174454712754897757976930765724259698809121735322055559974452217847214254175126649220693819878912627986421877219451266399428795967142438367442005171374587517487458249173937109900776213569811923388918153833543405936668733220997396514383338849032670842781782193742659458294008820517702243868367380479516788261019436406091384713460050773742760739508002545477224324004047573921182988822593083146826389127122890042007483191338299202290097190261973800923005008435400085950010781664850562195720005822366545081101372785679475854961182978054800645908763634599245033935498441727250008194876082928787393977364245197781780311692330406108129758369975382825360755528649656995580889900497951524027067292185924871014129966908023646971395363595671791208297272926411593163025315827481048103262980135390451698011417040677178510806569059687745110807933657397945731798435542250182276284370537443753443484292057389286789835244383227082424060002945059758366030631396402297102219174947945294623443971066774258597547716292635586908385417438832623377111797789177357325335942423802833926809389426581488179744510363230264452616059628510185374819619264451727628377328111453202217920564566059847306170936052313730367762711116027238952660380447053753575476205914345908886077457013419383213256838229714992209336934183760690632380627622209417179795468538142370927806229326411142674103160867883578988298988042031409915457495815372647558891605596790436763892623150438116729864637835213932172922904080867375549727686620312801892598302998101852652703051645812848707324557613289519643528164034019848457196174951385726799673312053537126324292306064889126199515523927087998428690639982415515953768091243044826173472881257816536580064759102285912057776451911167755013566298477717315361804166482490084047049797497130466235839209742445818449963909127560101814243304238014749386569383215347745082097055695413584333417963651961215845892737267362801264065181773923335358419910102626466696726322599736206439116031636982623090809041330569676348049390760512590280631486339402589748486209527697728966328626807747295860382505721360494993080635894155981889563323299294397040461053991751471060675274922363995690896023908165167599755131305473399422372685834916184850268627453159686176309942429664000887774989837958983541959913351493205556938237669868064581296716851494303321974454485616560654650528648635699726322404769415370592290523006145820138394588102529482955958207795852994833287646846869963253512297068346813879149601480824841559703656385105940768150371858674431362641605574782019806729206736518393371405130799080775980984804328992616758260065527753456865581942316469525668858333351613486197512288034919344077561752203553982499120732446498592986471089630436350655785151318819888845373004944193499158674072741321011678291751519483702837149513077176079035449138867503364870191487609995173317471929540624889705095723885816413526518793086445829762000283988464538870333943309088995487682578125198694158527993683972214981302129845998201364771289050708103077851999375095406373295482347306069962192614811198755553896458290333698152334592757604446705928459221575688538084704173251488857464601970674278143883274310270783676863611197384133924817876420334708645043819424161310231362128876858251910592144505984317126838738381497446703773261770175389544960714415854917594199513148721692856246040945937832518348774470354780812300222023730316665600632347517781581003272240383102771102463929464483705847217383488355405179588853993995853235384049480515247897358186025544180953130751975776384249207617477143597142711171957361122041241892191541126393229007012831006530306963785500568384772312097820367234780940212009678287494680910163158413072094067488729309395010014580829108212247641019583747653312423896766603699370453766813528486022963942272468159369933209027309531857979533341478311508987933885070772473764552495771544766619281366977997306464503866963116460821066229773967992331973391367104701368304257332916050149082679034880413290952447614071977333950606696672914725107669618890969045859254689008003658161144107889016104561246128184362757659346568974593759077115153870492237970151766359404529339833500260471061503265793123115906887331639495297049705743720920615128033534194272513246178712295847425321927395496327951803184834292873469516813421313939873171994594674333754248624504925500200555722686626605674627569349544805112514615670888247919359235595325885602802563188761529291598341778386337917509624377685503557904874723285196677108608279174717609725994674497955156669553993914466157002641696822475266849967645586480807089909397776904437171845894452381087235454124967550469810119341384498681113780261190743704487765685032255252407298338819386129467366504688632645131518233020059583559520041355988377253352922359712538117794888048168085962820033028102320835648101440241359751801866610934666301080445335992090284135654763175336743218298753345520222142647518031879235265747980090448901568127216902560209443547966497987823407805003011766121018537251751758093665111106906868945034731560554868084956884087453359045905249011995339294112705225968116766944464900925245312358880103772675504856879402993609727017619701389386869110147017385477211373610419066177654274091259638438090764656438085264246387338403074643864153715876735391734112990207904928210362213576816077139071537177498425173527279520568595124812535611294980442739318185027214293238454842060081063584327603553127354069075024396883124633467011912780925589927993453618287778760099414541832233031513476098698509339681608012840574626950195632349370541628726472274497295308016308038374228568825021572259762990638721283271262883407738163066409154258690524406812699781605113762015597000772283219461783520878113140165052041315982991680947933010353002944449260828983700380628508949132814760869619437817052794748801689955136171615213654222138110911355089608899198847651377600504858641110257019200657838541508413626362148621999808164137123163600800192350752457990689386424335453070667827370941926148856684937327062487718861744586941407619756104472255834665656748627124173948710182834639212223513236039404567375347739711169720391985346286336595340881474077518043834904071156414936402291267179756045189827496794906622807649836357627297606026347987595794314903174940527407361348276850489490669378609639026063210057953122606316228680834911620439591510711684690410055892219331798745491586069388845629614700053616854796411297124389016887935124757823733363108828473992867292163126409924068147449177118396383814019041840760128452309128630224525799521382986364308350541857957447007375657153728519827328335176352807036884015974122911280391088341392233246517541707240186457370055206611568418524676046862440387074134924261261798317178038512667855891446854817030189742251478781979768866473018477893626304818588195173793075841397716457739412158612936911939689016529294722098413119725194022356351652784803893437482092717679583931869201019017428033895256794619208739495474165935198346138417831138436304866112996623006706211624700113336683656323546617961298621881857182666938789514412017096321535558850273082446399159753225595148548407611722704225139674796947550090189634443408833928770170066168729152749078975231076083600661482872784730977440834415423469300151679838323735795675389397526175126866939360907096032682122059251817757170573912979294540307642868446747967371514884767576464825114519682930377383431408584236147873223041868744680749725149714046735601475553174482200750914626649103259880467932974114598028722381023328355972123177797371048853910939703425084587334146772717598098692271868501152378847310988991587148286133289843361662804029416771465756663578939863004640632320579686820458233806176097310006787102409486509937578632474936615700314983529538275813485110919611819657827910901347524149461306968644527490977876213535035281443897561718307477014454457444578983132283528621256770872752397165683431738105598947811821188392722320541911159713212604079270687994251606147697729030877371058508890257204994627225596672634941644607618757767930305267195873282620382838429925156137681589545085757482265146967957743149149042713755053013555539054647211816322293699065186451374633900777427388199861169178326109709823393949333789447015758908181400310375494910941141767351407673740062727662192762085032042977970265444906228126373283994296561539184171650297596920801160740977626386031277502425616319975526364496068579387409789320409580971130951912054111223762100551530291919002221421005706935472792882823821217806940017852146862808148897326261919735215690082049790337539256975444334659535759610830022422005927328976388095386339191740215084100036971621609142532617407669983146462277524265083649179216077993698208480668264569867337166616620365960857306457022232108101710131409598895258436816353389683167707668900528414222867293696484034794451236118476488793088721421770919788083430485840591592815085057196117749366848753120043447319845672515227775343200432009966364469138074831292787075835510027733666638405280334206794409322756062823155703229326356077771871649507870247454700789035156644430456622884229495394162489491742498571788264781717220261844400910118577915206600207452618215005313886405811851960494374662228919954123940315881508822414952326248840862123369204065350290560812844676313791387956570664324543148981939819894959147624217430816299291158365823256647733874699970418201386545657629387089875468032764324509937736335774823245802396278104997026852407411934385729414494681993207485379542668404170999835134552367627850661182525703676077725020821698379015338242861997662265061333006055363589673124209697980786540956495655358329246578964830885550753502862305731208518004897784607071762876392116827392535909926935946845270460487681561628040143194256659438206229893264092629363512481996193103066402885356667073234036307415240746810277115524349103179181786605302873429814764343408531181460534786347135761001256345178078034571468053465408626157233410223620067310447082441466453897495537240078167623996354149375153444996169217854042855090381971102820200847440656261148344201400741905979974417270951125521491988988380248262766623940102720751079201943124073918622288725588516433490385043442158295477047748174139722369699500023836702288650076607093032617495208025518952701050396101019742348217373777002860217206485288935038950299586684031132993200015443326131564232609898494155079344741260099218580903560743269263871630263904298234020357044656635125866668796361219942330129307837689022171883642950492911113672509617983191792563626177104831987800524134943317130839974445648210080814812913023807557349055572092294010181228762728341010373948044877024450831292758494320492303641618699557003017518236122214724574420620426442917407539544167465250022789333604770734509751964997603595462543528367486947970308584920841865124982666774790818411888201686651013665813048712066352925696409542258170435345220971464623614553070551675438540783871889235945684329245172477702056702212043550364718913601968298830288455026651215328058613136666699390384897208838842741249538975359022258773232183521137745491020918964005485637324223351644891986172455924737094138889793439122859086942044690049325041467755754417844916699792709257838513101055011022189980797048282414704473700425749255044126588124897685313205873236915064897059919210920363772047669857214770941843682725193256576236620407975635455807131771161100521726313511517059053751487192739310594769625164070543711399999805133212115271872196199566276868915984353096361098285469198401685222411687114610422054230010066046679569996458416372789794812260296100424102445815627081320709490512723199377283110886024097394933937996462884079389404076412459461877905940255161514066107163326973399506715864117147319922444293516481348453108320660718778500970242816222587563633882384836080123419699795529748143048371095912284689734580889673864465037680894210555967334240078767604077130093929662058061931180907105147471250258930733265345248303763569771093736015938093774323101092189748864474796560087973897536520260095696058207670049634446798683770506143968996362785230635676580849944955387309215088001984855757986708770873192340252998769463814514104076651109655726656073379650704957110417900743576707630230303357558557536021545332523704872914081819777576179250664318057277251560929748541118589844641260108090642157916955185966333280184975469387052973480017337375987448788093737833288990529938030732391724380323615328528655335886198075986496113605484637428099760935459036546256098604362438407055697767832601134821922453659945755558407609792489093258154561090651788499923750306830229441841436430476624010073893803535508804066163082805926496647837371466355415679088231201288098745592368565573270781857079206494699655591949888795739767808709430863504315098728411658705801300624315837128389866431088500588482495116593203233484549142469702477830813817895353308478828332875716715180426575315042068308766031367790637478065145531829666823026823302281252982934288584926793096375364923686702478788404200181304547773314119991126620170925057598404469511667074042960561612057362728775521642569100365497986073209970653059089558377524441352295358951077784118161430302170024120101394374679461228888399731060815056126459897687985623888437375569813966858463069476485014601694889779208548302402586881468076870476146624715939222108224146286314982711390932241451490420715266617366578534953215479022486968648617676061282292553657044617638909235073813157206557772671826383742188102109611004412559121540848012992329710195218196147335336560990853870279823327601685668979104796800886158657533496330057487030434724239734207721406552548530967472425764014403741697003180668745875393995917956804420627128874083783260244564512223832288875777961626731148258389544754985199622482355648528126078447522868230168410130893167344723426753213999027053827641578693873487842121734800088478014799933710845060606214250026154784640401798549315992003508684235726200609289665207851370568239770254196145785855854659763791972039034969201560758113062050152278244619584278562746884939013045488309120926486274648898861574802130919289006058918961431433575160079000646002373451862331888368392088335019393676894433853424895177994054403196445259268393128412984374759487769871569808116941351764113939223739814515933228450055145476347912662342618356267932636957910207298004069530048101442745562224166219887822067708525529775121231006089347798994331061897252170461553196392049816471243150344251734294911916580989167027505122102965653864431907351833006488543955256387478188146464963042056443638417905074077092548719429698176902941313116701037606831656924823127061832521214081363269499808560567859416558578792998701486522133499010793105681730522963404547792127928500258520762246998738470025932768715418417737709536963351540130432216444332872780638163961976621565272036095653537568646451320672317246635962845521388850962272247182608898494227536634628558175747357978160389885932452477294650057835144102511353086518384847292399555203458353530083596712932110883606212315260516395240543485882125250781301479380942474021675837860694738004607388303382677175205404667648483844909147835796460638304302444568486200997857505526142278677562649756738708353311617900637993287394448609225831656196752676742431568163315084664100909576200889279316359425198805393137379891188326188503823906421428097955603114976120760635860160466667037132641862921524254889466168024659046231384459732936565624224519109624226589242866435392934691065032918915543287903972511085928124768028532960577667108413391793019543821467823191676811546006616454103781273100355242840513153539750233829338653162026368293592159144376387908773918617100609224262417359466774183998218503706624476375702007121068275872122101307687871613955958511315791979338704770078596568808268912537455846899172136321416517257570539350628319811334807414302747048169703142535742371881369681771493228541276878288817139475646153000719456415890314754588092960650763194727080232524862036321233961980138417327664876644759271840880404858649581308726238662257300142672430686709117208770732924287284176891862721358607859581388624292050222637061695937759426844612745678492211695305078469235272935684555342843980176756655222139178769151072116890308128893648147540408358284683403135646977368136423458705874645583900889838768378719591904318864772435796145419350061761646811093627340635284289101856712883323531952865866413443408901682366377671540817398260860459471546579179728155416261195316563652966085124643287940865693128033176854248045597401375079688252795400739051103499819384554929406317483181344064358659792006784717413780921082802935133198508432514611971132877550771906314672187113966385207705003318538980877873889197898661587928518722931225892625069903533232836561596898845897832681614642338916955889415508506257188676341738489319871991112701045277191235373282532557016231068366337482203798173315700899638905325078603536355760006167975335204008341681239098358173068318195588174743914857166520899533157281924125648862802147935354326599465474249500179156602220527977513515480116128943238273585250645175845801047519163842487060693264000772348463956673878506443302634898254655069240952098698859942262153264632381058842415863032313533875942673552134935374110949324435583691598067803836665487869050966114778318193581660776971227979039763052081794875517973975380260812766736565130159006637588656174783940160742231478731192567678476877802178752274751054154740415726582706838713105439969792770020783365853657039143084047188733020614095159007875857110291798097044641300229250198408226538209376799226543675973813525317784530539694893351581736951083154490080142767495272525547935091759639156869605330909700613433274100595232525952651794402136154608746699377620783254439647878676784388097638329251748022668942734753329464331429653439098421929108432242183837816227686339554111585183107380267748083585515899460546660788021177750272741786227580393012744591756317984966106032917286808377936048379739483290469891622061861111828470832102381570194998268961854490490172140557250511250349104720475596918892308580041527270504878518016570508036607497658560911114905047287701235104232625117962040147195261498861571546709072800270384435830367613191067388917157977250455493955932044977203087096383293854164809035070786705963316684034309367307631732742457993701246415992124068308987979812091577755295892276789342088408920964924068997612979531480211868160682378277399543980241029292353023116863454881790291040368248861323928104584552453885291257715521523289963949594653951035251633952108985041708578706977241455200412048234520542613816596774072338614914869469493323457848236670366501595617196366133321331743996017710588018176704759495603161249289500112434546398090601751993551288786848245329963561917992927932358192312588876376007566789101691719626807957477704048823250021355235277649371439264635765784222174521791097700569799899694488831667564510503380753294081840799162156483460791089577968068222945357421043201181679876451253670145156601164531313030276890082498502547004392214264619269948797450461603466471802655024272500873296567548515044200304151000885309668698838095509434959874450397547426454640191088436397975284636487176404222253391764042216704274975320270663043972299043875291185263280908504307830067072519852608758580712440672186950007619532702491974064291941173026480458898031213268483791954297084030035246855162822091840458696781197018473626398200241912036615776622633001180494289233092960476228619855647087473439466339025048537423172129760991922013072466162017105950174445587252370140282294294914099787928393922918138828532678697578215257483476315194661952472194440492566241102985125728577998150577065826713471926770121325468018782772039857444116843528688414908915770650676357729067919076937080696593286497985542196722819905522586907007166910133791394999355240351744291111497043437243697941680337755930269404259006571603136629315879838915891249762867676886317958712631446743475656075042111607131989709004948680643963920010059921760015286383366754010345983169187938767047230009189605315066423448653712428207671489261543170136764851197917071267354517745876247661039664328943760486472820233162587357778446093828267149035602549211129604671335223233616263190468227904504081762547209456730949358900052617933006998364527454468897309489853691739512754304123099812829616206033640794310357728054756802219842611896182201721148722094838123232090149288424015614647906839879774847393890250436694117100724179993049240299576964741766225031953682057864054580848435877682049272539412988417884537317922082476603826522288679865402047148916270584752354760076243383829239020099943319102202469398829272662317386803588066643840195217258771219053787921681576132185921865932725146390122084871707788205428953719258366444382060586106614936980556965862310234800774584339904955768411218947635226766347273522207396516482013583012252745661450240795915055771128024211665829103080094866129793302454361500281928188409283506692590367153355257576126342811822754558934178635932329869764377065049417435197958306046508333533102031487937764528908632307054307710183885811378773256523274123512785718909002942937649962778519746981315961254421207670295275766608661411756390039479274540500324791581969061286093723926330160936405800666847417170280663712894858831040068952520457634015298038854393342031868915611884782897519382017249909646117424910851085124435533750497568392805984621470081061621569383684447419041508752446608110246684014763407946387767587219127315251495510940695834536282807684233353315384772965177976710905990373953299449400135371546130535193506903136421250952007937986732455149491565564233773781936455218517902670150872136683776386074850292153724372440826698664079148031293740871055275668479155602363894068903994036232436064481194675707491132367655005967084461767198781835594022220351256598621059057145797684903673990251938665076519215070401757577806937691466944015481726986856964054611330125797848559640087298177168888532555181446835027979599232075855696010286949342872979265519641529003472128305852082603106558473794728647932945412112325922948072264075177482791711931622724780778249225649714720681635263227213061925134690284898679547245763245455533285181100057429324557145869495060986697124729481722778821894478890581332377733986649347808373403463537631633661669750735375991980401226520442414235593289382769647504661204540102580885646480047304610773704547249418687022689524704199446548971377412015065008847008028150224357927029563785505242159661217874564050621103162383185286106683314073660314771957575862207842624560737978334479896936798168898408640255750859452264269190412668024937233492810110343234947360793605817217992015894262781289720624390091094032079472619617544121920304541142014023657075519591586148598644799349690820752715661418195585960233183045394958089547603048588122058969933310471886945811627984431907051252836004855650473013631888630359636026406008047067190094679181478641104273459334650473277211119978688704594371869492147760952227589686567778088755480675207713288134849877571239313998907909234135480323226752207405417041781362401241451821632087187168999412189507388957941498393098413106196342756919745603529480266652332165901669883033878697552792276759313888367798906408215926214835911825206925152719895776923575562284581733804132160092767652406631027481209033858437218541666283107401090616870326024859690420003637333670943565282931209360880025045564575316004454730088922571952258058658453852388906129831019884560079226390112982145428085319651964835090041083021777872281927364608592721066731037274279397652305080860027227551352865830042191742442729944107961200143660926243228963716760513340663967074240181537807982986430207658346922574218509755502799716207207841374939225291224072627840252933618223423516766670972412508515872513830872016724764394136976105701909216006541252452314959216029318360257551529041752217546784996967217869936679522012729885626041415399731818687388772229769610454812466280529181501471457418348873070050607216228903644758694008726367524698939894222770522759280366471144183420818464504584358772431831013780132921560676620248128049067521082608841605402142318545850106486512145816168604561365378690829164347910912839993796374812546220706920569861977696606595920516204051522036475000703881852831305285475758938798511755869950009183325905578250307984763709322182359260686635550488463032253504318902222682423344653659653702048188310338289321934792914471609601463070978955898417291459124271551683938928385171552358496110272881488232769505410202455887123712539023112380983640292126023990413590736006142954028898291687719202517798180861413875965360334985687138496872473238126589002233243821696147369497286648454424903359801566903770864601156922459671346700814082832511843199047042697729757691419330316035279481335516895284396356581017562616044500472744970341376584873291176211576083028164993369935446744877090231351651877163365124867407330480830705989389992094715075048290970365072381872086377234324247616533819926634087128111269433079738863303663092241795477869473435219684731226222072744947400937775270884156395551259646992050439627422337518764427498528460056151796210846020565780432184521294562746522360776879016811541949940719937818735879824284998561198151227711700312928522120178638473302676281113522161273160910295342148385786071248533342173834678977953847954624094465935092579969668782022216831190960284889624659551156269825063998130728003180286674984734514501704772760346114395337361199781666493491165897583198307162976110417082709785232772594146435121188337231566937296033272633573045046222141060695827424521659824263415065082425729306473583529472219081261532897590172642585411176385056608758894310674290710348900493251024121403879611932489491312769109296899009680940682531737927456405695533058186508006029917303807680503861898423458017756662491758690337544633645362062410489723146537233417656529158281782263514977967946433270595687050070627474709614771192400233676744308520844442614924219412401517987712849367590443077018944982749763152591514959386566201549655215501698820850841773626953072334584085692555970344372397133157581364318513975772550102537118839805591539017130066968006311868335228694802451948998829264327046291452173249881141269676452264483310275287851806945981744825108132022751602050357350127597012612849330158369373176301673958209792910998069488359606593044924544657614037667087537024469700896318134832109135215060139703959477930598585524269364643056342641877991057338646201327617966639484756512156109189685904844534582444497874827244481128780247300921689594741995603273338941727225852379721742910549223465212728853148220675411724232111268309424053189934892340510003383034243826145206026583340770242798754081307315020493747239918890453810999861439578464815545960982938373011688174903250799279831870864182390419374717838843850186197956227181445974101466362338472180488816425585337599174853482027512386067411537168677705660970551743796250610184238937118457366711888997531962952250543385413091691243738812425639425756193493174816661713148582208917079630304464346921244428789990771797909362304709963701670493637344592052045710589792187890583062066465866509537176346158378060305233815996395263181950074136910851005100857468896094618544352013445056003086118223940060835248807701325099474274821089089689200893136732033098370348638101585989327243922660084655047212656354099675329630138676342236884217138675123590640531259897180233624546109236708140228038179604761624315087845707108175162329447316382028078147419157729667740489142105652463566376556975606900093624933752147420344813441455057816165949102203655183659365788932016519417636580165668396601869935202120312388424114527525547622390998923084657599216632467009706175732884660366292993400632582975977073429362592933572469561247961280699363830226557307848839167456831035585317660152485842111031438220069491298880856984291977680334267138428345242813324455274488925202452143637965704173609564067144846454513926641272455888923781448998002792257985797326197378820846866551391311532633103864921626362062705356182294702874997413814228396714087394057867118196244961328857553598677691558355322893492882662740336773557277349171989264363843307251690706067311548053046756216490317063607306562206873283110775995543383500389139626299876422761481630207983374322835423275208800690301356320385643106795859462852920376507800991029256884215063416453741810818821575943603461776715697048816182179603982987528915780914770171254848635542413566036659581945022848783736130614174290006741839417800621454139321462835230625476015205091338231026805901400756231443666278562969439596811156829506987932330404725601204757219600546256715442181546494585346661238061129938392242211182801741975864013785708989793358599488936603050949600834012740507706367821109806699736982833001455697015605143158579935910021728758832451079852301560269823432450112680481003954988328567400912235142025426797415539633620417863193080231506745541138464169815230495657273109720870577207635541882051264098468392907801148139523683245232988827385649833488537040616381095784521769952606505452215436910430311918578773941867836108993971284827012124090126277633328590080910817405609134741077103721885201384392949667736213947852317307164831264039979591466214278991854509671451953033012011263340525167436367635491052475827851994777293682745250873558177930343275489169019924652587859109657911427909473930322903685506354077102902887092653043173965130864798699950641899865113872697562284960388009331045644701577421693931972288033352676750655230136494091387960002378612639828883967474956239026870675364217581381233062023961789704455579662617010400445860499438261478496661309077006087564554690551379089496753171556320725509040624054973769035147204642297788146310236270360485076672864341034228713137835598329948745769287132761380156523852160614102808100009670922635034383040665146647738013779841907598205442350042695250814138547227193736853436485771352678352705672356392239071710696482615988010497916889351846554576898378844399519820532269312398339599836820068296436394898593700723647855964399537297818916345821419903518613002795970239624112164687605798811389161497942520202955042311331651296596600356767358358266399736464546609645376060960376158881009438961095450235685493097336864999001108790891055414136241571104369046568285164658612692936091226751488587529398901558848070699311716487306422027384991373577153939337094498358386233146399326838825641878904170143500595921943589897170517414847273822539131276980141344837000330929826679906090156301116629947721684428267426569287420048116858379424673600597296934023001830698857099031206081003344733074555204456474706204417456499528604325982097257208898198103556051929938375201883363392806442351224799898276603630112856612685089022359111934060829094240046526951048612105610507476483943203892583836775844554744364652384976852954703737641525975261579304276968746522678594039067440823286321581715884403609285841444207275352644815575814898032037349539834547145475128645050791994300855548049055895370006462806280611635302876761636895645519556085634940914653726355681954823276461751666927042386141016128027289567399335673444530444857970479392097753026290064050201863188358945560727903081712348666337566346155325352967678132179102516313471222049230443805639336427963767730308359211919712805208476734195595854526491953170106889555891777885646555599528798541495412409636732987250596944403650863866977317384687169556930887045435085906420913433091366912441586273762536839979395548822022209314949169302464640759357455011852852895247179141199115644518756773549715580788443680724820661385816324682443144512099629622473134630311153267765031154058233533995784647852386479039934607746755294966915495260396882791613654059834948490233882317170891970840287604037791292414246661654883820033820149747673612628836307080142834019691078508777348805324725355518059030896237700298254830421820525938672171026477595651052321412653857748943772526945774271692536168960472745228165833880695601417646132930068835316140929767999670266678692000905946040711485670567649817230423620983193171624539595172083168408541267581940492399495126096016748784668035806236994595521508641226972415466328436770079625106355028941989733812018658929649944953231685181663439779549674390634117542762972863394082853361815798398363885302572419979048155849825239089199204613222645291925249697011206054999893899527084848095869575960274650396003730934322884736944159555702116785145204551249638770120233765210099649937244697617090633865222836301742423400740421178842706756426324171335138902638741249482930913369231580280839793253162885512395364595231563424587667909804871882625603597554496008838615640925566437935343512045447028957811884137205910839689366842889156780766249409773396178244938115262235533359352130766780787249441649632072283903463870463930389311956461268724672741120779330210497873834941443096264766728203353321783809180652601082876614967445080067308744741297400603084529512736272195641388462525369366324988802348156613049562115305231087124453134085514864174397253101768913665996811742106604879419377885471361810519102800446145923685019215689904592581558914517020894892826730641773922123837507912317178127082119852761622243565952896321913764286128592525961322537881288244761735823744024596498926985641647531248950056146221242425520752997267621504888701293403809765013199906759912822370311481788312017912816506791175813856721520791062305303648900625054628644956251089687146376845534783354975474952275694751043777303120167519343658862554775824502939616336653188181451790828054437477815039877258706783200507881140406082332436477793019729470265983790597363490374991164883952026279230728188689564530665593865455891624153927182619430130748561977583864930306148291802846545351772586177525538308559012395658291977431291358032162192507648599604055836092690767590383141471139257737413506928805388478147660909613019726328840837278463641739790745868565434394336106639116251634559496036931602353388676305102903129105226944379037426510141310396517144713542305782901403304851311203089423716239053605363860003509803356419331338143948559463035777880781154472056068494441599397098835331165510245270174067418442067162151272712261586622083647577066404958192875090653489737389366774242260349482010659970644378274491451863292467515021408217588870746400079514821824389859891341362643897320252176849700288230792052237519615911276185858354334824422669586849124513191560464547733374322012368864126872882601923275698364639139731115238927853439770430612546380262025224072817512096961522907266694483724113496219250951612761060768040867509684152417907490289488327336566845798225570735975359616724648270816037360833704102439370221608767374603400122520395172570793551451804828755276852156301532221584368231172162920740929669723691242688587587288390354759871807408787556049026357446484640662447747892755180054453746556043523381195286751150730806501306340471631668603700023447947583403668696126269237320546139398860200594958939860995400118317303585882609809237006077215694190673192552874106907573543018584139273328007458114063106140351403129735284856736061334346005065569873960650282898555565105809718991116920246943716370609427080723909448636187114835862840186252115158504398862207207257130509199315486585776324039852433038242933705671548808152922718990973544353770221219234335030487644224875285525217302032793143899690118964091087899208104777705061636095506734753381949930554635493544796574616318560216592874794888413239584692589339918463283071537709258241710071370057636617737423862773207395090362500642960486197803313614866270109295276930644268391378528196500713386700457784994093179941129496066190619453796617884460491854526063491743428746519506855392138762275997362504220614186570951054712384707655484676205941630051762412566906836200200067877393164699816883095513848794721113783485126861198347745879447455173320290845943872439130665019344258090812588579103302561165147919718324306756374721132981842561369666299792397575871842380941985764848482087376175842957078175110178613874523990116918286675064834162585588410154680107463447119634794104425677867254733325708014044551423206279428364151114797475852494523346658991271704635939137072191636774529998966161064929227632174567737987027778500377381891420468648059266013054401685223353826331965815385314439553282305848959889014845411874355307216810453876122551896119824527625345243784936595748108144181255841650799126308103645522945418649583221425150360375007151689893148505259275973160911854447805227089799540736670373911092992448277557986061236112204182134577280399360796168650328391149480818778286482402723675950637136428936120729134724719875969755663713824099718724517559998417411034117089018237356939712762079588466293383803900044055446848993384556394479074526251157120745875355535149852439670560840295354167152473007370425136011652241544177147553356011398870630418235637684566108236527885214950406676775777922265958106118341576044019458714511832763413185596705112770032025951359193990471992380165351319568824250902542868446278208962727366791825185972167325653484842790753134725760231260742241782739036573622342939744151848337011413448986762308243785731932891980033370351565543820309654827957253747934529480045600359278810198107986390922146749654572830610872259092307184331377981330024180374362458106972941830821980992872470262563357884888328562885040441944170655344409236464687104586716643019959953866798372888940222966247142606059672861582132315659585182267356323933287430048023376516142213875942492714974313354616688935195069342377967151732902071706681292739703136061936799810799773499539314170358271217099877929725371463983863057527474870870184217455946179542964945714190543093010703207463490672084985036202153733668050469497097260288799626476683320247551308928094552363042735981661293232628306110994197162914232487440123690718667195577941793449431020104956694104062720035433633490311460415027475099082265535734067940415062821157283990887421860618027585115189626799145698022587157723437839391589883468343573049745338378368208377891236618676742666358072787447012286882268335973861514415612581875720148445248400171948575533974970547247233915386664135094766297345377248623013983335221449639306868027077116611743313377959352043153727681583324030834572953851867168096334046073808535440881526339833048161984981741619626284531248528897509210316736417563154739513998436469116798163897029171290296682012419129070638983952367021134426556422060835495663265688231981897931648870609509829514287438401485550385985121487972969306838723108305327245062472009821606967070018062983077538040800299385163104037821724896320401338529207519480094786975853382177567243715954340382164502357728261169583464725101230775293382004259934222122992021605227684676983465016851974174016013049364699413890668549005918915229160145367970613181643909054030233400073305437443036370575659181230490947083075341664858789308655720268477114752671878033610795320341314988465573032496547887609261169024913052754580806589230625296576021634528309596569268388366734262369192690423787457895183287830987039405455833540714324854645297954132059128352284539859339629938164187290756154338294140433272943142669353001369212621229442256894585043204454207455577505740001862676967231261262125786508445840518268761182761062542490704620803175463195843044614450458727094987787698781361523973786310564764057147985075286014456721217690529648684613599918498676849505617414476131893942799213823270937508111993219274141518073690029068063586912147918301579868433312426731018809048022361146506231367356783617078758196442440438926099969625337174346819346238014108088263509289126334006567142082417878652375210650698370130255135501082950744878347946938043840022202188153676876243010344750154736055357646355852176427407776473707267383095090798723613316569533656238614478558754552375060142197966049805979224156987884429854571631658832661050299569201626022738815912589002346756495041678418765993762745558045692975090834036227377700338455291266703178073831711652356210057645675957960438855092833884397228573719434832018962100039443775826868024936914204324327556423899119904375608055487232642756147218781969866079140461272486705526381661534373691799922361451142850617082178805379676276007066498584988966837867067260551034576939257049839472235588987749691982517193156582974859082284425348550394025270295883742529292292406601490920215645839021170899153739270296410997707576647391225903087998109003348173153416690086635354062547050850372283104551063945174653284206714127770340553284973363387665972179806849695900462858398388565977670934367956199438640125109068300579989804154054830025935233918418557481629639325642194770019817422107675788365643602260444899411029828920289245070822722202585061021170783689983697175437206817154787840890327569109833939070502361232874447434395645117159852763526340061594394067647925188454163827015527968637216097157997668885206273957038590978316226798147168121711742442048432579393047376754492715850432736758043119886025082366748023178616002021509463164393010270650086249792259481147159402693995660657167142364808131653187314423218963674707863541813690390858665595712472495977276284259104676184814525674552710892158255455654295177939274142237677654005830030549021988154860901406593910534230451350417230928171404873396932272744005100948419084934863989144403496551568398694474816834582700190288748966893949323566460104080797843089679638472032188011962694734269428702629828836971877047919193736596536888618833576792143524358660409476401749910685928869355008154308581152303059439265928285664631516931284245110111837275403843298888562768844088164070919083037003685356952504036976582503998595121515705210099108961873802656659377058854235907978912217860472583313674031948726443185835604381573872380144314718319118061014616054671565944689457775441495560053304837648960638507863995553670496122508642193089949104316612758430975930938412754441547701694760994616732535179185648282266742817079111738707300361092289086360062065812211722159835222600531040416296696900981805827049711882111294051496633540891816740080406978676215059655731743495201274498197805589879334605219218132597379517241896736680372786028560860962748416622556402393801107419944612223471232906653849204941237527416660284499388486079546840180591739163451566570456820785023586682748170878434836120590173753205002981638510300634119695820893106994691079126360252912399474805570259958607064184609744912341281788364455922832779635603076467592920380374631213128970791803041308603335365163186814366422275666440240159031264459364628324127452540826113932888514821404561403297353085877823624042986807913089396307117118687298380359008253810867246262060539706293094277956881255578224026554337792073117973653079949132436093239383860962536844388705663420171831364150778686265931963674543025228249282552428449098927799540181188752706545250064091963523352759525049869790146064230274852028643673750847771125383153379405346940448105260656221990776535972354804529703718311598564538065063998444865063263787379805074958729387628404108007476705613878574376846630778267759019384449532614926351347835882947089735060361893826715939492705796224550858153151292368047069796306614026075853666125960490879791589295011594031205688634336946332585293557555588926720959792651103385611277120046811505301296218943600739337370587430880787976958105023491322680088556834569951344978046740532031423486318009477767898390185050420449505679189531656264618593014562275113580470070692478083644266383997893688342532815763782905374064498166534402240724019389909676026983950065638238658984461912089038011784843470413487226611086608422374471638852284118946878549814817414643606319606875618762427374159824707400864106166058409808008571448928296107366071655155593754584181040376327333010997617164340338044192325577992427143425489283858555091866197257845605472304197404009044323145263731827458647755535491687060505045183364616207558384206533822334284503429201225507538948650744353653217610481887731445308262641486573941367371361978225098115660718737320504567878585711928466307166545314727310064008658999178892839599966416616858400847272833823703221832744686901370429369152304786506472105509932782453901239325966578473972989346177088745620707270217861353127468642848708672292454354656298683487730427991954674333550241817002684079226508322813042776023913393236904012974555189974793269759902640429618690243050897425418870966769354196067994622062845970413065411082211835240363080522430647437089470958569730589566903493030791034380194901634735723942656320610970795669887179468002937718842137871975589132514782158221980533874567406204441867404107900181516243837332375196255151280563274669450225019588699865932085290377910059162604711957087751680786221851564125442744699335275938029908730257668830659878557552094330069311835569158572820603930789221178032888550460147692362979553510240106811230554643352963838814866528716494369697534063260717372384933008883276215869274876549528599799571878099272685069544174366915645625717655883842381941905258374288851642875448980441930707834759172510018829145266945810360031213329463449752365532382111319906133808965237646317636770757829125498225521679074699742433759228596467244225896305439508568849128826362106225427674256328921812244822162959109011981359226908528781181108915584303515132731897553508220865886099469653897815006876103964845544207890761598885755275319844475116828861287054352382488889280855069812299493929416522031864690803628293531321916087008287341548168705349391134961236314928129043971588884658288858641959891642283202923216594205619426859530140657232662787759598534312208309938520899853084132764306925452859300272372962317127162899168495253907779225937887177259310043754172755536795526287876901913184952499885351954198240753163120857053390082489766016966844987624241025210103442355846358220963741546753865881242714210155599754011519553157487868910503517144092390083474100532324857173334489245092595293061483716301380229545412588751147951171859236002728889827526163465274799703858833360780886967843074049062583016775934919706213699209372140166084550502302702964366980228300928385808409267374741788205183573784620627921176193899933700854786342354316595426040642229378323315015612482742345746920671485800091533853923267469099096152606868039276974763144568039436366065086190612195069913809349351813766984945523559454398645593789549171865628332107580840026930911673662863706166381328972712758927692157836204308337087061126923651011987466862170483682528310119974414261277189099207732264802044830773627062838586972241232058751383500637815758507422929881204701285342928435459980211954932993091524659210627760389114977922626294549005933359125025557261336785937979333180859802823172092761373997919581587514065676983573393136689069448920141567512553689456881807455886555022921007228267261057015679232063479964929538122400421522365452325993375589895824736539301616817816033301262651852970923179671259131570084213388050393385134405960214530765820556547054190604103748854570926340134758748772613702651694518285114148690377564140655160041889590839619076561268688390114425149689666210710861842979068904005927607696390670052821149406101524409986451038865727106787869976903345240100516480758540379799785034859794831657355185268654285499781660162931250423605288552765007502115627863371098596045818856622796349612622319675450077822936745959435929522077428361552440008152579753160675104414549522882238625224654974649466597166814356963547972537010519525331617242031250051371371964260054937866490014528482025691814424392317735354081197128624236081233304408749360000627521499340117814741480950532638276452512137095469214015694500890331308482535296264126413508324947186751483797018670828199908223044676735711293213995276321090168804037198528620944778820785407884427580391581148490944159437873548349639363950638202374769988724576092087857145671452471431627320022201928659151764275996922928264204318261005017125049335585537986770128282725645645459263261782859228488327063653205947315802217144034045576952427957190278309459718485211935819401242445093247870020772848217174046941681975920851751945759286752127594772998873138363019324178239770792725975309016710161833536122559367674649106734100472551684066151026360022909635970460346106270064645029948085400629637049383446065465813434232853424279238264380024750141548742217234115633481435307245292614781547990928648435529205151544717675189803405890077917679398435620738736387292440835096927230258748996796364492392935642612515058398585872999987697012210668675248657030694316460778557623571373260697119933515847033992589530603797621906224351175554125041193583773260875911446160395081584207196119940597191578410984676074511549060253269718007962243644674941770121484991419021292105068859889137978556760972145047665398552230133359602207693713309793573476161307828621426865940757023178393732701418398686184434874392077745877147214503083954472266370996206882579767966665789441496070418501809205489158931635197217761778709918915607989967963649840132898401570923099234300702250294170674628159328722041955773461719827409301890909726053338652764920120136143484718528084351133519507928379500803950145343222776121239448899340102312378799393201670584559339266531127878990475034419628270783014954322296194157631748100121303322863608593756607366150717636678770377625470943081368114626322062952404640122892563234144882853009196434658795050724301043860971930476800726754213932868298234943001555614782514736837169249226170369962664642805038478898735061921172000747762241661882710971085493474925555688217596423243829011261885719699869402774091084107180275749640701868657328826287410495072844526733260787562956043720379416657383749649420031726588107330931480369062998557371234052614174966226243589684855705049488795907773682691010860041293083896018559481757526948502135268932444106377339497461426369959497771310470619022385351978708933020223924994462103090403986408004831044401703471878419428560070833749728347216280465773814439830818664635537562828606555074241500107467760033397584257760114052314298011681592053697420113027601846975457269477649422349935201167665626402557655678580137004661221208467669382818554414446836168351756844767376023206079331248369701200841068806696750840010994922112583947307541746818520892555923825508322561211696632849827581656552706094021779608742531835895574298382973221923165178597070385471649523627310787057153374922126649792658675720009882399095241037505013448806316060607350976769533779200807609516300249307088039217639293069277621413199984114575634848712478633097108321646136572909839183809340243570706059785534454417030782300459262465699884899623802255407059819768326812319758886591460062211915214110633175903470766223866153474197676278628476295727173993675906122740271899181585093556994277028165200450672219456304126042376149367724580084866629097091416067404714117538828948236761321707080362203627665235852796406655999949093821249176655125802384014151257504657409712184088150963983774832613806643772747302919487000134195997740313349074345547460715514047839554770983597071689100757020893511398228432549135747434371098656143534829693373651347058015092881353345072667031806666385905455130156347216272168443344246550010323138473635397138470040686912002973887529150923105297143894133596468800277306086798404542817940841528748149036468933964506764569828015394480561928597173227567122936090980998069124720710760295690320379882180820166066987096996715408570192721865571681565256866607334518353870368557253560704117560255968230002268141697992282685700539527345331092095931310189974792360522438339338979830812574965124444839835568846999675698436147618884415811964738875317679269778493595737625963469682339695156233927831284953048728250321162247546310719256664677474959492029416807780840662709406868947251292762867551993627976593270256584833368243235577980875821620585173615981613720281053568842148909020441360261057442225368156927935178786812614659196162561167507577379302618314665328045177822712653391708234451261552240141967801269699532367833334349152134805000922232241577813216915867322692998239437383833799723496522693287480381960643188981106033098520597468864425392922429852951133961988045239366414102917787505115673880901509017801041879002563833685471852670678554598633915310399575606033789143832212939695351330818025119375188769987953288020668386400181001511769619214275614178152568819014080936595087943585591606732854155498818261422488383660355426184522921850046810967022877740558576205608895722087448160007476225494014544277548450647704513307979266483132556716139048977047166931611322605290749686059721943739441239737856693753513276607060828527649466318015366466943992722565957698022800262874240796025020386264611204894371789470432726160760455311230637377732099533475061910385545751576005819985187019960684546688448090449432032283479026044185660744116724672685986077924477448091381308458302473145159993968573358659884340276073073556439623437995584141798955475534371551383549332407118171000414853222932827308707787086839823309814435182364334114390875324013278047898697169284751716969838384554016533251435498836458629419816730254530851956398894772358376115355304308522998042478905881678431793234986108090295577863306675294124205453972412098430521315154111166915465229380149283072311664374487158712575088620344528643074111268742778950783770207479496050148697326075403304395198101048296951810611213269137731106646195678191255465062561237781433046679264977756993655076814284511068061872916797901489842677367247486578632352640857442879499120729328688295727795843237848721490513571766684056106551198122519811471052102891794041669707349863512646897301944282746568662493925053502608777356044001978345422398234275465197250127458006932565169302538643247027982019172098903952666381221651978268063763449954804450610281849268049329993795216181311086000756440133606579367257267709869733626812135266073237437577015491377590873336997238345327703085167151742355434695339555860242494404258286708077881416557334063170101440026214063729526155982460669166698089908529479530318440214723015084094601865514093431738322391934633940583292508598542818492134976426146776747668217482978015415504184418224762489396409422829660000766813283912569582989061402133086554937886582347112225387467702842787806217507524742065186359342534328558980094170250015536712027863177713435603716419480707405187071019319749919740127379818194691120340427172694722638219815662462558208616133387619370094200863531308810433910236942622117780203544936848830298062572916299867591140076991182602768899218610312885324423619081686669242095000653772379914749509316891497188248114778795262634703648522602838089424843695372071319779189402767245159209411176355092413228103590474162102025292892792677639741861750726066203514679979062730028156016165204307265139935552619986004162878386560844697730285729596268990521006108488427392946945863535120559491435398666326191096513060408475329350411411762020770834683269236245643613989672746828007676913703794294264118820526974966185159099791863333021588523423889670312667033555903390239549449867579462092608533084774799942461781158974350223324668845207904033690579008471471592797262780117109939440685735927422956087413729579458313923650638179279769345633475748838446763847215726120402937499937151415669804661850849898875581598485529240464659410233699928941558792340442490804501117897044310741616214264158017660581442649878664684906292635196041228863089040815914692403916190057767451288650269088025785374616581445708452058805705913053165597332180723506764366409450099167814508648538852554326012746621616116130345941388424698336795941457697539644346940315371434848407319211692479312168061009034367563242909442148033663626409625095076394748001000828410132246445019077183062571800958798445568005506735993166997546205345276079181659204433333784287992165976681305370382256167310747954744154322035943952059809461312174661808112351745332681593443577515288698091686147980025454262609717998658874473417774772085722081706266885050515486194025809977258973609427330588137651199232910814925608398997712692372803787849035350404530160340991087347139288057595098408571845119257544738882289726352086517777785868911973257150290658688527978362946260417574972164818820799025403917525707985232931028772083143530768253112143207790487476490525671092268602991029325716887447081558047352982863085341125673572286149535071833635052746071198111516146046217772298654305474095656214381600075893895099934070682761219790496177091242243507707628669582119206297645247647435926644934730778277805102158301664086874045015312296989690491926013238244044773822546238053058444778523134722145762804585520928784190279921332649955360991747976927618844870805973121816021914352094146599791315975286713131617421821181762162696229328845965104498036514018081559650291723997464666194154983898669697332662395465378145744466962684221133991774370410842559995744112734978999564758179719966442207610100807707877075135473494946852855927249848276615715389601682813706041067155424871609390848839013273925298400264098939804131200048976342405266777364598703691320296838966724554512851915023124461312392615001605646246731608754642556353341669104818686581958869065051857949692107572607465824219170847971019607084948435691390903312143287745921323761288526529172908400047852335350052021584195989091652361002563708835669530636912673070677617599333183692503391970277032925043315512028186892270144385393821706984879307154687148093950356627266950048844747355970806199334661525450741954337033649650669601196621690662944144444091211595126786210272607626588165392403862342900655663699464910644553122094991949904036187004839966170224337800755874185516413557300382549369575060776094433392492264534335466933418950556830198753970890085725771848575799163167686386148471180415940670271188692324991836415591005399945052301944475422944870676819180273524998738235053171726275662578575849802954368759571175191700965857107923532938129670600381960638680704208573818003411538303938970867617790377196664723411295614395081393241234069726154061683514439451715255519495231276235295651163163008315208440793546568197530696611626022950352984939001894808168163319652124732988813682153168058393134419793023317391281033615149613721101147596861753576934111247231686796109459136729019554579906352720446381052694039365877714010186455637629714620093629867080051077153908351176550381481315860730508088351238938956136986381776364710998577852810986579557338035157714963309319527558090508120708703110792127229379931317339875303839728395054163556786334136057388973798174725802299276877964908203188692079526808056643807654532338161478721973672891113424964269539551203082321577836957866828824791244227526770931406700607050309168971033929546379351635894105631932248487506882291453856822392721059376495040003861697685828883991611817712038533371592064912798832626012738701741757309172479338191043341488587316526220026085121209453985502436879228210543705304286943059136469059133580574685312464337097950564399492396254053072828990769242838787782960539603998876533065302266170059332471441302014095339344929732058253325004605042057677580979952244856663549117123648083907432745769265776006692696316260480536201518900305928319078006538069728881031937803842795786740488657355154131585420273675305746377751090784523722656791159812836281904132956009244542514138691514482145284892539085169843316197969948206985855768433258190811922086157378965747134150811837034502717615568136947109685672279455661255010221777240628731225461157789506737672795107895792976919873610081218024939922055664907192738022276562618896785268510467743159421120264503094932655592967362698763742355223205541981337193881960400634583959798407146815529018149090714744137155641383715335750195525797671357222987186325686563287966307752946095138502072536531140076863016698811243166586194547582739086114094559811884374766708757648531686604395465216655806774006663645078590871852230463148691352905685168323641582290046758671719043284098982110610229202477622858445167648349057193215491667675871376954370922206674219049271504393246425369516467708363185589968375299005911718852318844755257881545680857197895015892738520925614970451131101473637894691106831159438339989779720037204329908750223433248195347888613102151219565614268942030676667409264926465094404931659844324369391306698540197929666707456738361610083263332563454773546527781338398134099623677447284284988639947085342973382430496962757717506771851123093895285351886217886633730578287882237096275263808805701738107770222579823659594180184287179535952800079925950098050472876990077741581518419383452089079396224480199954909563206111545538579888437915413405384597031391888964852717748266356637761326435545087768743741065947095811789853850254551457884452733191575545654561078471556841239390307406302501754264703847866437052591911162144556433230965578924987264538274342505588345779608797176501576873992667383651530933747892248434102962613248159369792303145508672507002653873425220411872690361131207733164207767783068307998328370281500060930047166351894885896141471058924787568280583484459289153742114236277796715620593151852756085459814006995412889506556338149758843546178943421190407247086240811218687915569416402534213016406001611624846193723798887268199746893112798104570638248894117017180849158368479746590123050344242758734991541673171507449803058934150650241777551073143381020782023891311076596656216464324549010732292117898939847584329442489130407275532959171980386067912116767898716843024255000149870243879303334738406335672197671830790611671764961279384891242590841411044892646964904506475309744618752081095725284573434427888559502854762745776503925598149153510384714118718964612534007924797843631710310587345498178117841144005617368718399429458300535551196227894145712780644835622928739615749784825597712327485790945921765098159710481972986224389963317627558669762921675565392290340797516435270577142966076099505618913980292919594042744507625514375858656021730857593365004432989801114439629449603579937061879490298907998136096181127125125281994387438497233472095689744946622539791024352072101874422765046560826629970440967305172875068641928913037771188024287713408657969196604086081687455936659382580529877432260301514090153527084292250795879763610298415595138046666796916511604313247764221133438248040654567318184702359492836764718778881149128495767325159627011318502614393628855976568982069286589696473507227291980370552673626986397411554468065219547483602486994714142496438044920221771359116478603889372330458538835579056185234455442491261142836689272585460169073202117570317300147690918116538150515185779604053863180069778233493277010722480488771154044854033902169079793180064460899648403038825861916724719675690306365154008457043951537978046050528552210748479251116025630850797343313960764083443087900025533113538668801895001565140483264667929506384020937638977753471009317256876183662197906496277481645151276799748307012457265721944450439066255215242739592798638651280746981890265075323453898613068666816944539427317948691479318961923099665762460468269749248217474640712312912173951510948089899404621573549894705702333707708863194413562646349241818016666347195291488951750973498297665736910501950498843518310447716591682663033540085055506747830428511091505816561411252546860061858202864120239806074895800447902815425594907415110718084738259680015912677435431330660173737691416239632346254700112551274851092381882081857214621642703118842937514462692691789691674333139058699371391177805970586466950326099670301045235098444502962672360887175220293750776842002071115143935942098229318342340933849362775792517854123987101008224034204926520835135926741882590565579439750106375254974327888429200416147472233303426250009602863644094715812014834640385512700228818161970757225425909934097471282435842897460042506290348611653859548918515298129722218334317451341260307760615646646401488265607215874258448030648182995607281687296610561014648757980045267879658497624593970428794497236502448690463726752756613353201113774319428515630474271939891366469911852310100341394923986981388057399454055468470483628208008744260649677519128102212645617596409531315528398300474022564649483992305524098491712284275275935705570437524762287629590951322655606852206168690939616137810647794138468413934132099302757271427347734596410812340659611374867767386727100091775581860644038074065361214638121550724119228929786859819755246887199699525544550164096430324984431818070241121903268940383637185465784749825049946459706111750918471206062467861691365656414572400728148502693880375160325960589996536022370880547277838026344524402898485526884913395532019125916224714342829743161237180698317828250057577586851754568852163998387298032271653295436981276464123713352984162473680634872029335538842268313983164909016924676423893248677390927479763955613525256859449411075845597986963004326658624004814144059519021738418279922813412042711057152740315783964872345674903992086023649294004874394447644056287255916533822806056175998432359492247371932952512682871623537768141898890043963218879743445009192807968405856435863052993736810734226128713044041468977821824255893851581013144819424341092666254793877245980567972733592355625677586991137490301492624932558902708214871156842352627059424277902369537078075066321689438362145644950989272752933497611441443203115076408091572654216123364856573324603951109631858849583888833419249517911477270801427907209023545098149721907501358319779289509023172580939224678730399859858101850443157600783319101409849944558189636836778045470911531197093379589777091788446357685507297803011466975725130407365178880576321881624300759499391006738966394355001000273620295229745656818443397648669258927037510682959023303556040733612630375826063185717042035756286404073278507538151427660692802859410692217391961987156846558074760711559396051331707902064080115309442027089759191571198936033342511167990912244248728871805622335806451874493988015503742837356054413902853962208180417871948288917073861576209480038992786999181244281943921891866940749556747183713542905042450196033319573433116091537769202015470995989799626770815050666965060891249399101994927112837692088128939478483818541695106258033786298546543386582191631945777852921480406018731449300635353146881818485178716938008256072281339981267644965525761326171761419439755030207657554355065288955227714264405053105524679908995276762548490958592750210817756928043962552599329227255564188918899454445876997784272752281342968905690111506071173313622727418660287426698362063424433702027121389908221537570036720677491064848253703115110827207463547261823379129429841433282071347948652418840138857630147569026563770213151358305760936020536722529962930512485214738489101720451039901036100163747707143011238543058806893478558314621625309976926810012783513739137171802934594314916935086858777514931699518333618755291291243733233619330721114923099121682599246300051923199543972133046450811354471906552976107754472656118308082695344441592002463233849704401099823691549324145818315554843898147848222224288651954722973974758376845719934452178139654792460923261731276321937814456710181758736137783968773949305754008837713631599659272375504952439433886649043553761414175716240361712136723512880530756261623124286853718742376058277415745528737199073866180567602397791936794031810635970781303666428466627025474740686080064025807551481966545947677781176225953918218026957083560769799442874384712181131871548094789848108013426211958091288674753833031950541555514948481939216289067912317265536878771768744301222891954272245191236198938567866890381159949146077012602573324159371563161099076640610258138321410299417340306083925898057889057387947610287792687566685943597031455952662254032396002188204971241548288794463509912835569568331629653507302351554141128919937361567000108990568993916011436727768527130078212480393117151724744667377597201808845327197841550530609885556602210768491952043536517258719347788472967570412166734506223033446163845333217658089327551349634873824401924196298498747306546518149415094584120111154957280111585522147798279962010467645961107369934608220679161021652972089138458079729329963195405763209671123055890611122944551030777254947416566677795798857376284313901700338183932853464317436327492403621518650542079682761888560681258546343274587507195660074070018013040348992064449838509215904560361707183902607350780259950814130581469196372618323222751337198779499740993008095309614446474745393686453910828302203180212071219723158082366480546921556052385200014593818706904563334796700815193054539116869870672365831852608583260715396210274402446314454156912842257763037307270253287303804035092827029157614306596580666554675307950933967566095970695614395309473693919018734272922677270955226533618265637384147909550341936860940827216773386016015434228586486662526089023902876599784824565613014406868633953541264936043362625569777275545278230191707992366558753522884954714517188226121870070851842317806078768786764359812853726228580067013790017690432496232338013623174902137522208070721940189203245005391399593960355303070042444050512864243723246929610896623185775003669585669623166367944421248584473450808055704609555693388274478666991547082559409360492460317500917180375417466365818672939342294736820469495217839778787381753858853643658282304414173193570130941027769498490061867248954942580416500923439820496048189278587366802538833127383239003808537489268350067314244906443768391788572747804052623735704822738081348461929611684141428530186004603408669300620728248613111397913664436798090679631592798329945803292276076406147717185217545440133110524292971357715977336704268544576962792043147882281977808698267228877112767640580631142746366661995639768246115060664315153210686726872200466247089095492410388835779982997192645536415382947303674699859346179459815443014267195848400423385010453396007031031521642142911700280859415975670196846144987011081777418468896968821333587140173051949554921407392595545266117601392439598941216821600444216721908189109415267062682696531059065983758346203453057956899106586558228381530042395543112543664134869148991611095594647378693280896333050450849810290847560225905349194534816919988091092866780978729934103930036004221093354966301752217368048451523370991233641495816050116572500139752881058919983030139079423387395129839977789263254575477505356460264660055689726463462796930490637177281940235178229586173232550199695976748241832190610173837649587341083880833089522203239688680272892351959391085357863571760739417233552391587408848297911572632061326395480613352493808461026560033557527386469746387557115043489125442554809336604670586883513761004497243617554169146557026587501875750630336212406451947726708468444851462499134140059464595423583239779212494822393091146408973285046757801925820428237634593266250819057470117934088138368279315813088368728685650729826649989435800434572882242844345003066473304241431749268640236531496800495404735652517355387568957049289233731957149873471378111842519075906949321116558317776592663421026023929253136050826330934877832565192957001356424073121958985280492106957153559591314186960100228184623546409674206042713649026417015659622407758714819752751731282219887136586552987519346900077608433230543816995465902607185021716216477722324784679338444301982859819011012867695343942884951957396664486601047559068788934260593975817191565858542030904286638661911037313093646731528192865976078847405266092324272857762482864414840953883992792470487237195988566288028931849344064995519538390141549495520325159641471123377762160411358512030933494393974933584453451070501910747390373360681069129740539145715333601446637770361687941302395046936618104663924553253830868846179781315413949501798249150629479555724824680106294945364748586647475799183373245347169699418334620544999523155621561654541714995969101084534387259672944512362871662396181661569795603451596864815783456068102953246360728143640985875010224973834338063604581891151084676833596324056357834285759519436842444905096409245070309880867015243001688512488058413593355491233740736324316271261230567861304657572565246344551375925229396524792920371900370517301097340243455414628951056812470279499257325142503982471999080264557326777532215758146015010366367963446750321527455210023617776558725690745704767832710513078367647412210212225666106230949586455566001401844650428234369727424039178070787873700182576494147230106604509173184275067479166332908008858245775807515579458318717475922255995337212945305814320118357495132248000499058743553512868277041337228161421915681790732453150683684149211232556807023027435455609743279020754689846939214526304335803793718858865062065921086695433214861749640625888718869124648529537952452718820757931790150313838688451973844694695396367206426855277320221514775765243262987086196594841095422418657875100253638962395906140767830015847792283261222595784181968143325032646922759027852887798142126518376469096971337134641511217754456861679312817903592197063468361008075150445996859934889128348320543875660752818651095874819600533078706055960467930239848430742734793785469388439209650236507216506247315047967783220249090984621392215919185905627154181822668572645650094000021457184388441673733956939558556165992958666027658132751068064031739565515283324185859560566404660031491485545662674734199783114645514961501887617774350958504448745394607333618673792089478843163438453429242480769684088834255471341467697673643242240276271164383212189238809307813739792534920716518110369842006494934308296862148419961810460967249533253504776580683468993361406788515986200834201371001128527615990512538505531339728543774342742093158465199437509176667451349019950321890617494504730942079450252771866863184538374311953661033866901498515579666307516371510033092075187550936822491845423833353442122200632604554153746801949999745004153798503481120954746528602680871323325244900923600960796114839993530898279213791025678049472928962621243050408622603227871519781961477953991262494482434409986175111430832835086929418338087841880144348988915599635341248092021120820687436358629244545479122114156556049267733759558287276093590323818904126181588926147325289517572530052369196602275318192488808707586398345130056271859153813686700399665126664422813000516584429392428854275919507788586262354569133129823167974805681197078602958214066035149470463896067398535453822413869943467952689004088370593928717981975236760284726274654757369517145989044874615958116280938702835489665144536093649704235576280728678552414672812510069103034111117880375286040645607904196361359881891158765043971054107732063340049836192474936072140436832135712878461071052533301616467530214461344465183877553993384864330588219406210446915874002129552394718623815076992343044477566456797000479273941442531532105951160189181771014180524703054015248383484027759149832119901589679009970873881031208287562513400977830730152052829912102915423810801684452912690533515044186648861469546972446730493110618093301667310257757969786611161165264141240889049297092601105362201944555414784894222033844214454390151823739531093532666100348166220822428485083107463063681192856316104678375812872552775203760573872607397047739367504066782936189990799403855880184217786841223357905615188574002354475835495015666487791437895819968518186352913235516034440320906616874382422894821146716257118013100348394336824589017611013052134777191595466560225392154919103747986281887671279435778682316211211900477960815822533106396836850392585886661559546272783199047384873074653510917977795519226303301953339813127154108176972872853860652769009796747627637764999829265533154098900121637287857301511961883701135358009135916335828294654941613844853840883639362475565681126120448000355810260867986946925221739796884828405143419390504342905079914546613281591557780812295384903824684403478809680772669354666472113583019576580669514463032097493865480991536965229942468678667398763074356354073972713850358205491504587310951917461823130667016276977720056578984832845366279166431771933119254197393074766639474624699702984339017295849771128480508099108080446545037388091934734303546966980270963512735353014905920622875494514418667573525667317817752713767473470526096896642911534479691423765064374040775477173351927159093891975398717431754864335811399221723911975450795919102984939024800382092811326500220394916602316608321810960755804478282302712520455803736478715870052561236982996428512519724245736861726328821393615426976232185300789119114511089347414240450110105956317510960266655106449672865854076473377152566062969521882081003310912896589827509408159532885925950914007748764995218134651919778516660488094262174609531479248389901904558506184523697372983791056513347855287341724885935419180227807386750557615380756149672427058449266332392187396746387769762314344361890099148895705804573572970233875616388074320816962318452614898718983465753601431189519864896746720418555988554779683854850326952624261667050805284756942771652799209163077700353025404674444579969448453251078018266271965727398822248732050760979384375428530447538630274103122977522232288230249917296288514800659370904614651194678377227167787099157613794901115327067224846482658555214762741629376684886885375868833755776010525477824994150128590922338226608271396309978549289248581922721771196489717503043223969792373622242764914880342991394073965355627179117951319699180118817928294032669314950565123548426801758971012554457166418917285005805772848294726641808973749013185472475725472715915787772910431765633949760754306941060223101529625405068884370134391847332376175314719863505683252565772829872346123819173214262888147707683683566959520320997823105729126124068746517488139569687209051747092461654177297265927149988614630798819396086662514884012622254949884939168036644025521533731630191344898812678313958803305063299613179029297203907438870375233568391954035750124677590677217214445507042978600652086711064110868216991571035157932625598777349237864073538519136416721691838386062504975238332033279204761442466541895277556126532054001836558101383336760260073216890148377754363482373863825724391636506909099341685599414227548632593869123344512539646054434542369220062020661337789941968803230357973008564534694704601722930745792332649536419716926800984455803528465105151124264168858189401689209296991595558353789265496228641459920830652299203048827035597740654440004886436938853651633312518819022163346820617003684032927342807495073083566554413653284825464043313061170726630045930081029003445637460497063874154496457152121132173230672320864816991394044831475784810683498454254835206108301027826179235440184987273084572439237893833053481978085235738208206170199745177911519468963833663764498125105511298582827922901969136801110517113400280912724206776901631753993847120162113511429556321750472767210753058375955826737599294875150283333175631471959168622569587134351427350432869134019317496562017565207693921338699219664416875575523730472455444252682789987224210140414785259856351566275164893521377571858387346079272761649520743432085536914550214405801682504323727232992242870602122905565731688265817466980428594191164241671721295231233071519672890948642560410699548582804935687280777632204632891831812631444721982403070475468543059726005930846671831721214733000789863535174944435007439248880179304523238000709057254810655577116255720908526391392764872077606809959817880769085258014569837004228493040674313461575836463553394253354246220478458474896359085186323601920341476695486906386453541588125392914864515481624464859538594553646859243209938021844998728749231150279696440558729346839081015210572940456101454898484540841545896516304822872541306572794710956020699177244511478256595889806780344702395477527689762241355510932242354470755387148296149285916960358127842805872221772126596549049002318750911092844444401373048777928085491967281270497863236782627270279538423850692246196179654197567335589154158542393199545877337258786537373340415686565291192255104403924374439349439012175148442692714890989086599181321396911899194290876823232562742270041821663864093147813959936312276183038133776001061768143860574373010364859165289845820752606547149920358231825624194338838785551785016077547927778977419217787731298168855680151407571410238542118519834889335008936253170541946672297260226224771073602101905061544232625068940883777019665483809466669137906856667201924567377808147809314867582336557295092813397192480426252345814818897484148783738802119210365864476650620046424183626626093734200612514365606521045021985596982602018006841995201802924183789506874458653926237473640018012383042847596268858212736275119069898866145229030453465819246267054714571175528000247393260454604025663440552465044311278335160527557967595223787332426632181025099951252626053796002763474765704088028584221576957315222243284701996455599709700574522662708870056221657639496261795424580924390707605036768539520076689235391344519746940299728401996174207081220082308640917914661667939166678374054847308567348765321435873867706708165866051715776762839244374865177354489025905344768803951541488375157784752370226295710579631681567563297685708783278264101751095246903477438032654616174820948307211083176861440068547562642758344378288314220810259334491211099230507926430939845187063412194779096612664384129040575974239826373485488056026619024317246603512961119240089241010263945290904450598629296734475498490844014177170043915697323014933768679235105851785394372572648102344099802504974622682786184560311616161667546976304353588271584454609550806546902842692020382192201557732764101428944198616664679826325778863260966696953373810103371566282423327411235122447703730316997008246604760722165087857810203319889445057115653108549677133300467178855260477248995670859999187336107845180712930740981204953335118444568246940962536880824945381554353290449832722644321526835773071965506738682085931842316460010230923405655500345635809305902868833564974790125879596100599815755376907574504219612038408886253709109322800704504560729467972480176982357267510455339480757131284476588685194816583231903340620302198314107399231192756104913057881329739643034662166411535019631781927962432029664775865291033672927527460961677508755354944552357986877153057153525963389376378435586745942424810128598596240837134105785946833359107716227531486185524754381628580394270873320982341544821903544823914811341034909120430789254399016705792635532242179917026469846073088387835240057067049477449440169881377108627093958288462890054132014460800056142408520694787033975422744831992814935518579315496281725876783526667722550173862252088254235102705072437218688812186637584892437626933216879976750454155712421755483939501935607112744023749344915801258423814201358483819399158931301602795260340812353933720884154894573159141925765496932703054425484125660838602738757650690020600962054813970680520488339183679526091765245237738963211290267484672552358317381495293751340532996761891826157790511975014736020492140524071729266955875979953229772617971990206312601614180439688329449653894693058672807438758480588169669957029791612492641331152661314517114309618666402423412677444164814855655088877713380948231751996024411238080172780015044322151243995829704693585982023379390543027594540039215534712488694639421969545453780728883655390066894278900579572837141838231517246239371838543859161027584875181136857519077694505331994300640493812663125799977835569691485316215130916239053574561083824790615514295042743420501415691456530278531871403615194643543739888994426854235534288272632733324262258237824858270572608902999406125467182909542617336621653671904770451873080120262539884570089864394150625196001793327803794549769970269790861360207672668511597980409493817300350621050628739805165799843199780736669126135676454547301571306909231141184626780018541187717016083187928800872657832194057253627598658458799667169536944650506937743830558053703873562513962638776405289509026658804313458159225311604123898530993515143425100760802561299625507397081200666841101562048172729057709033065632616043525881863169078572585907955407233791602602765055528443125232015405933496923580785598725696397700380688887086188933392435897408473046695615357849697916590968729544352637227748580502149542136234938724831332442146667817587854903250040491400545860711561913734845960497483918072327441368671202000588296205457683023691491610326340841931490960718387722410549337897900374873443265251883024032506338255005993748574271019054506686797089680645945152283426087824599877512696430756673892845815804463438280097737428287250368946583063569136739642097280365397070689599013673401200956742619072920163710030563285507984419855979375679422004303771676154270259136889062275519797196623764892293296795965320122583224853865485652818499374563442700958348407643895967015719618440291940705072606846453944743091469076186981021438915520231929158397637404006540596547385890768547994684919946139645052538157670681629061201861543648811748697784991496657676688368325284131178343861912271275734919712216955095198743562621947162680487728607588462915452152787822387386863502800136278027150972701525974142126031184493129969857163690302615836115868832405603737296268511668980994490077155755378566802810012510469320975730674029597849381155150841251502335849652021946043045632553658694626950490804975882747296859183997693905762448398158719453112077543334856514417216426393496149165130333307774161024014244022658585671339897214770100865034687307633529313889373351364255855988612014600055671259697815600153401372644078206401477788835401060689766209158413451032418328397483840172997306970318045580045858691810069448029877418141488683315030869712923702719649470130781368207867882933701161400646800272904557495522188798000467981683607677801078882744365416958131840870024250671903135713896738130757629384551247118376345661302087323517844713934432268306742623520202912880453400640144188633498915080098882211219296603245856062260523229288560582507147717891469831764392035377912800461226730888308322361408783690689986384169435371159487606145077831190504155628572157670353819798290833558914396546412705234671724278853176532071097616968665962113401061804394725383371995058824784393988972643671495382124646537337560880228577420576056609571682882832851459220853901412018851924696663750450825118007283374225038010901291425694355947672124287748717369069671537490166908387789014073711245279151788538822305012726080855912198173386719225960340132283609419718467490809545313440276133618605388466171231288497881579572951677027691516542210786488653941498303415187840230070713535694252605955908649835963590384294042981816864896069481198142216235510380671873098203834509116560220868015475075464788428686498743998957576075830242456117657154252842249054241885226537572564275691779049399026306853885708169900839885031412734717792667431156656818811922247445726216913262291848684216057095948853992902298369160826749435755729842305685886150449447319510210306643025094156132577833640086419822905167010661239556153658976584761447311922144632173873235267197935600469909782049651010125018733436160083857010314945822821667473152962911685636553885234347779892497763725602637961368437858908726682633255967562153968061320988924654096728543996338368010920742879834210336902104113609912415961208799525703771205523199072759560963960170785222607402237359257971050085696133607833469475353883189469535868917207301757170668453525243036179302800321935141768324726459196010974502516945719391702293043276399552655618303175805155448508242857932288419284408363600893463302899120652035318311102053497921865344527367913109305934336729723966726612303677513204241798114156344338259792294404836141730496618089100295647679151003317478782957577026212081623896893064935049614760742702404653859269431420578091380667687532621478222780626536523112560726075558101510371021315084011853642352874079102217988631700791721929579292488579459960280276402425932344459356702324813575740424691453028713397889228777556048351429670658866592724995573408852748546392130327033405196283499355269033696830134673409095686175585481087056534543803820248578389344306646180264593047857954481648041489494284746483069811824299677054470068004776193193892097694549324456605738526602424049454683382433393923945700152064598467537999716655699680692857271568535229173462213644077951044324078435213861374832684058945069326249199167693507188581815031083042138814751487134324733216341431672262967575432679867980910673530464296974729588220378535313207947087420058689662065632399591481202376481025691016347109011305878657590282445475841313330454231647898964139154355572119610879648646114773521094162080553273385394676402912074987238668591915585573601319256457657242816424248075462810006488221889704037483534972964843915569939069917358951796865031984670357855207740279915622700576034144871713083814551644524263094765727226294553862803474356127872722959828508389148531060195310776734974295348676435120031590665670997022249897124176271775234602870558405874591976903308076676291824172685687463431853815091352400790552850631270328505187045301092589403509607681981762947510010542764640917152763500519283871440044836427512798785942007158535701986831515637868976048132552632236383989340474969578708261164517971455264134382643610575097153598786192551790057912306780687996719593031466859773963087389282353232919845467708559263794508466512592840643706656787581289578371050384754487340378325709166956830481145987482712030288073513086406258151287103880709562949616240482725094239895082365090007839138495066468598649088646543611508452771803156331323209787211178903797760644552356809931064444797281563425155849669233348491289935853390917587667620795296191494670460867908740842386624430225540153843883737203099921945255757059977133967252102169440914829923529157669492117546440242477241737340914113567565502676247084155684148683438646489621072677323814053239799073585736231546710810667903384310894208052804093503844230879872082726739124607759709553141053031030185866028239765434852601178536719005320736722067582850828859750822241133118799239707614912849160885856589437824629301582913842857195913058974147482732702395783285007836945681968818468980607291236586435430346072800554672762586279638544058107836039930609540081513637270747668019807755555536975978304905423055009744619110141287608899477936517028313239108778263228284445253943589398999361604615999938338383546513632121003490190111581519968422171924696219166862929738091160963031092802722141039268679057389935548121633170682714646378939708274297885660569346199495538649484951798057821849465063242630807070026777891570168368026820254160587431920797510477752890567044929536554953586913734030651677677531399337523367540306137135687041797127529462807692883360555643017923458269953450601174961178698142367222083186142800180068964119090457321937377972730130023327004925224399731121010946324318468633966423674780344142219338613996684876821122015489622380738325535075699831055463740732578186200357102227968870479727769562315333586669069930306641586878597542747283191651305137542175008927457336147852063424525756424606152965077155450453728603297446339834027945468814576398977927783789348845871072775117871897053421125156789339074367217137611893822227388695869488299321774567443750071623173367814492753731040310864547202253107272503689719562897163934524809857011584271817145499898797320341521138361323568222210410681396642546617536235581210740883995019814491371936135132160587375444214444150205742163470232880712083495471302052726789333313842394706706980992939230996165540478205187047634813236941419240621190119625464583954299643280540149673905920186904516907211567405216807273624860301553654202602144955928988201054144205031555422396136528286095054464330281102717184750014913687924105238040131784572172463785169376252583196028528616470370043929857000893100531207189555462181997670516759632487909807621095912281937217044343944312449683471147853369795186790173431321475294843702466262581825040918823027532752244968885200235520742653544154946055172474225685641421032890213740616031224275679888681303022324076846329219896769897400370421462438768133816867381888655208974539109419728505210183544911820969950047906251124650992001299887441232530851200647651210675975679135867048292910269942833364520531449299401609558035068840413569138043033233069021776154531550431863811400203375623282825033583912339230415431373685517824039872421034874920633939790124726808785651234007761011002735370157350610292255580010102724022457800240962737417681645621625805513688666900589762495886901747739506111408268719797789972592754380404997760895255275139475770596907611746409516385760601557846843511937594409615904957150162422958537473173945309482087996289621683046849976073331379005082132283772944059445895975966325712530600311674763575406759149415606321598660432409482916170883476627557054595989437818763002591062697826883690262023900549686001941564939762854415733249919555699311047451992859194387404663592154486726963260605971810620700382361725542040473143600700348953344050004992093533425432025491783389020688530841197247507597530010656662114512591091208203845676797968436397797502526174190271409839884011243312600859830701687882785976825163778532584534992873019567844539576840770832401576276546040095591569340334138460445915458559143162213585326903083720050261726690940827245095132069593689529959282699172549363756802107701880227981596654391504999088538111080311623752115396087150373056442900098940606326462091181511748408942051741655851836166277145719068366149389349666271232652666998638130873657185031111331598991881659369955315672306999622290994683439830659499137245883666409600406915467904181947597205972904765708404215416227009389772471080739688185091601065189614267433334401308178256579145539540300326543237777119686493089705994462248851503144153565681220800328397443223934020037517739459966351947468812659837353964132701611194552343706817142404973564463445025854079321663866487224173860119370557006968624545534468960392327334787387128410619217279075998772658368820400031010171352707710364505241019472413188376791776416321792716934324096521116960980811653831208850332416140084271754124763792646589787057951996577434202227163123376659215857333726641921889583170950307934272040275179778145731135570269573167190276777870214637138098423202527500090588256354120484519399071383410784092700033652522364242975480026205268324423888609580448559893111596485979215556797426293683807000548878266426472585359734782082329347140554170356596416719560060175943242093822973246583082187749200366398542999487450184946034094639024747260936214595807221390931569902486094050512698162560403894844875992731346533263256592817737689262548037029274021114999863324846380308097377294095710218587762607444382825869479411861855277890861884821782632556221977515381195744491409329020910114520929488876098409759292637326590750056947629358300805309990951079314069066893927392899951628215396302275160571047191742824098614401792858687344178961903528249142065784400817810948205477891653703388580862479589203883004260344922846997065403504082192654271307155738218112068374089179190449979617329581108746042109102626571407285741886651558458540908419017989367218735484249157797396860132407473195554150446883322794904321002340988448634672365970862468680914034395585398981839121625400337641408969887410683619533048846453086722227085038907669681624371817104265741818033929109438997799429522159687001599544899215113150271719069824349661785831221273280489263259568221706117066364795940849618904287864877643911984299023599263062052610656522066350814502951741028639513367234639153860012874063151703325778679328007697153692848919161929051738344078441540947369798157777026509355942143964924788156420477982001181110403331139974759011286191603875587585679144121488421273698227963198451987986393643875246891962231813180765117993788456308635201789261896301555442848551123513897157597798518713795944370938503042623320166088987959894388258546004858743945492647254993511099130937839109265991009888784662235266839039274654871027022896225566446783857480359856830697998210995501327655455385021229405810243928123659609655799708841176217094816396722215710166521959545197998498476218986491185556474865204333468279239281767076003064110227777328392485121094209829392485326817797306695383825152844432695038610796152585930346050384499109698155827919918464613362887462676557763619922892487445703068389052190356267000246907711116561629861470110893425735219029823106538441463081034904771026143924466897183986562756554367896953960052595583137812816270192390593451695262277622868061142480173050244989616329903984408693409045835848973583895040887071595257480264465394255061784552055708403980900001430171785931928797495493027998319777970064681751176402968597266847576600396779416080364840178751461824444347029048344014195322420299193621545322539295590377963221490640695695410353678927227052010638542578665273213508257258036028259317719086924618304705904931086762784542358301061397095252232458492701739253179373434510569327641993009533606692572993258861651920928681866317287787828279179985440401069502962166543680231947930583834215902906210173555790392622251531883003898891573754616149266695998159827177579832738144964048110538789336862819509379223364775060353819055371712121800438219180732918089908076784085757946993964408760401923211567866650224109180871886503204195855347442553610953995898619190593551131267587261314403845272489792647284525265139029274354245319574648893386595398814618417224581809029214545506021087491178606276517277753504312661190335965103670616781859134370275307647199057357649852696176124428856740862581563074479160131138295815862672276001043543734184680587312750353583950266094670104409400560056194258035184070284766877532590690415610696875796009727748368651066469083519597227567051003583951826398557567883022516454369164079745534300252621897484702047918628052227767994977390738153545670081172141833794231105340966214199939055731101204939065584492040589992756927629351057937165117142647845930005005937372041493673771210197386548051285184340412417838873010705188230299822423192433162638189832379452356949285930942163492196398520610985593120603416781451461848610544284123645762003765962645586704554161248993841327107887133636144785482401910301291639194385742636682763876146783127145326270391514547101795751646973011859018855156781269866429380932350490481709984832111016061430323717592942028757234376164035856128995176056865037564702654818498607567012338958312751281907721076153972756042421079092970742191802615212179326901108971400866689152964601436673716612304807811845992228519368155881041750023660082333376092320403745430832657631596117967310044879039643083345411422655962619357935055763233384937309175114991739544030698914637951143176860714976213771141297492792869150167614654697091742489272548972195859558447483778621704441233291473547687226529852870909492172146046428498177215224395820615731382195901109572742599921474647319715868935308712211457567184814685916640439394719991820877372246717915587151503968466493105877096567629089890471714342993143921864658497167689279830992315391984073022418090843878248872858311142608455269356372577568274713533551213933867561906822104431148281096415723122340286092138313404073905072377504446113952004412938069490723091234488658105319506285454532813413331009583696970542281454595376633899873122033530377767294640411319249546119017993408990514915748026790123890177679928114589258315108584258915459552094922848883631453306635384471962269115103697553105589759559514547002361995232152031862550946105457402931691505953577220357176501108516782682655683606936774244856343818348405440378270508251581566654113435138047004282505095456628943263484531859826461163419111384336959358950792952439081393968224948777296488436517717153750976449570207611940531147077223343541831522267372291589242437822696538385866027279119653577172693581514400872653480726389744625236299943364015111485873718458098586689287997198367244413034347230994871832168881812286533789566311777059482282385625642309774725069508988096509365716980347337856419235784428932957577415267476484556210294644925442745993864616768563643636426703849489741118651551108152979080957650549402352380169478702485750631671497667460715130769263520496324433215981466871629612043925391553716662602639607493972341635250400697790737005213472314048451002388405922860708718565128007479680424359770163143065032935838020988349159758937510754194190728833126028309677413543762942278302175442479460622246358652042170818386543920539875719451904823879419686357004156893921751423193516193829647062650274782927506244635238952811626216264820057769993223645583363254355462542288086463978898226265124357954748662166935171308971966412984168877836150088613589878236461223480698625020804236463979082061897614725137706179108578543574266700440524312373317931847069248396173511558950308537694270367532127052038793261733702640526228390915967577573241112492096417461368392976490078522668268166669584538777299712480887236549532528994360353209085175622064287731544964992571448752867237768203652299685226631417406226091760638168542654679996759648610176333155998515271352649490181317874199025897063596402731748418576555893028560054176859130821891044594196614814508852542527825040724370286631637935018621977333841748735438415499996906543926031904154402071025957951387208192280523361564835672493777244977424394422195411992660511103796433269807804852035182680899264666548109610457082202369533498344633941554080343566095272419141569741924847039527488924245316131177243290252372905007248801411884030562243167975323068843482825393315149364397348782894170416203231575505997718534903398943588063626220877073664721281826285989676345668869665264651375132209945962492598118397846287590521226836369987939013947377914076758912941014665608628853142956402296891326187278231449775419511126461713420755108406290119430474571834566473547101716683177843343440052990502532641378483383510792012484609566175140069817667702054140023193038701182253742929378770050546966181046355180831193301382543673968957581971340643556948762204242355566497988026823086684016180156195738096974554628362193826615584872447299759964257104573065839530935399801408254521742207289070016754525837219620126261517840993520961131592201086692707149031617032005402633234204938678523934768320003920323344784873272491475982147077545260892410286567094375926274377688729906396690571603431643739535281741320969607906902034167728930080145197372910452229519455784617703117625226005957603781960407957755103173523199823322432014044754957684100996378748202545879523877511519003697148165189845359179314773268759718500380035974299209248840716402909411318253804185943946095151379629565984705201034754957066166174403530971858340716801641306877385311176077922461811571852585658500270231374848411151163202332543491948284697646881526790845704926936507769189569398479455557850535988481816958993504866677260433418987030520251739065444607746423480269202487198684574532371498503487654463806621118273994282272931191549454516550074504361287321323940434362863867639815760090711056218024687451233260032392423005770009975578497421377701805209852667550817577694811654618544228166051028224934101407950259288745206073281645224732790152367621781689782730847140133546369505011638468132282207557356504247044750266760128099825281936734084266661866786886555208302740754287104188633240942921639105817677501520410420075688396989231054034770293421344761335435052931150426200469438621301278353713215307512645730637542690606661290155423716507377606066211609658693144974635380349245283432761528529589958158038641970669816155179257559407155645937806450369303984091310968594938435312679033432046024676045148851908228593730025564781080094247614955557725988079950059544929731755736088477938736985870222893811769069208740309130689249870535909139555769381520236796556489288791446597022634718698369372507545320077907189774946069104288584004991807000309468252367541807583847943757563266028337902271333010937512489850388093149161995209179586464085118071544265365686626718965028184634105989834562641748524558081187894663364320800307855696253064663480908537490772626515268178827447704327410451157391504298301654983669197032037292525018020545694906569993334259053187779659304223012913722527047455678846873944608879653263459921818296977468214374191981298420695161964319832731756342817548131927840780918791133290460938152326463110416226011488958104349813204484609828403200961000502489799056813794355011399949210454337239884440603690956167574368653967531515485769247813924637496856088722821087746800849996534932447650392282550901951399139635657718853459122842207322810732610438957485040084504537132448767497785280154910229911325114151855730837042923828588216245100300492351491881152400532686773884360643174214079195200574745228792756881613200418952894979768729100337221597092973169975330901063705245138527327277616571617073280037205623035194383368923669253973584215995153011539428634627140391385453493936648986471925418284412234706288312531190423830854051416275543301616719992760035196477437299646802121285766532370002067246005155931378932199375422486744836094997036360774627032230311735611898309432661213901534164780548412066770602947454602434592799691879368940066132926210665879704365526197971824844415431863315612037683749954281279016095390887116586611854037794603520403507941571648858611998009890755934543849938952741928654329834644882950614682063201887018141594421931277477791344081926964763951920167156866746145782418784757894543077387100895488685530691191674918127058781139428172567522271418386737445511584969222488697647733107163736845348749731633403118249366920606910388458731409258436578996444773748971628069629920155958754736804571786375992816853387367461511727401735612377475716642011168124692615077688296527038977171729806433895551839075184607874040136824479890923070897436132411910458311712119524769231622505489824784287306788818327470226010940391547399525315227068080651265426222905898252834913520153293439674947407332281396451807192360941361980959439605152304541745872278992184704473632362062519137672765286754171963493669415320815342588855655123203239512920150993271551730838626888403299478001480709093551675226796244654160379103526687845629143196045230389790689745409513926342907953973448668014400000182725220016677614809439486099152996664836883626583176858564906101352305524882733425447108197171593815967817094132698547909676897846101946602574786854845320376403580327457908227891494666579391312288449452602588446602970306328348400665860558761887364670581011334386323081857041207996862169702878664783280372450065839559541170354697226075805557960376887209737771162162954043920159953146595464128751475834501225323499763124231019612614983672168725208366106007009879835362201860573123657533287838783669060816856490125265647895975019387179713881389520865448788854948666676016075385311544070264427948496915284346064355052774358751110990763374264912155245224342313352090046668325841214154078631521908536196855908067762695271201086537867113570719756633010999714628553887440013139794590326124337484400148823588660157091109270975579335108168239151911303679279458741202713513001433845747770534984417808135156026380219893858258562386212767963994500537922264942997467312443227545678383254762915554744773128493195001549498042904647445415246824529070803037695433401213278699762654522057753079000255100670685015062852554891163752847773135733899698404920351454215914188183277525626902599712641869294744815834709725087598868334758327207013894294593171531961167533674008359330460135343555154752577591287244971263360452356416641790898781666364198931746433816352379828192904570696591129597453365571978991515461025840505400907334237849623115940556044701591450811603756950179735078944550866346147211978935848658120032232790811251985021276689015904579038095442046099661170950591750112313320012473863437315641615207524505598800596646662382567155919088627131119738707208130228809471279281516963172957095535686100995573249493351153506492629672784496545172787269570844133194105212733338850884634176310315009351885910886580477993168970238474494838477680187703461925424279291174580828530984378059579128429930132164612881178638491585136127013574126595342409846020848475285790824827652472362235948870384951299405371211743496138429308176123441320696051519881540819895032962658988188635628943275830730569128650002815787340906734698700930546092543766123473787903101939144538384128130759133420100889409704986766127898266414111721953971966392505022654403907288595965830998324072571243701712440051541275655235083349801124770318376086796896313046938973593544926732518931325902973952709227859616766104783503312998543410256762715984329164577225177487208700737652531783023242782011629862516426028630517702466535453436617058910379311678562546068403742508780883813095784967905313991232422147270633311081776602465965300403752944870120959869932217096519522180051907913601315664711286695978885330846860318195180855554514311694145725333871572832380659482940219325464332243691417392820155577962790594266504216541269182761231102333768773727457245985507228370633599900236578439605357793084762765621113456379104309651926949784948698799955066079116719230206110369101809407833657185729875292855035646806712831485092836866967372448750356260220479467339096405659528840547315405378569997288658225470104415343650971901343448311230174145172052537046010640392543201514013116763201208456062111288822930454503956542842538420454465410416989417837303475075443755669786477568199441524460726224965531096881933168154053673627643164646139213975165446016007323971542202287229288539628942722797340347750453874849579117343326802394470856666986370362872977723111498528792488397822274465654057745872772007233258167655662755490441303413526545541375305131541984144835996053125711414538628901171286792742041737458104009295652311208848491453741170496266287975157252470017151317200183024435257878026935488783753975888909995264805625745538254863038298262189362304282701874962222635493477070379246920072703968324242769983050418286467707945542722105236877958505041189821151020198357684494648854311340420580735619575044737204852297883381337515088274884377900522038190701098823841448751752321270893819055835869970958742417278677545819730400042511043082770800497687642448360865571992095054651134495347901746452870581264012160117385737853821153151042624280837790249216367257763958026384850916946750337992227112195892911689390711115996085909603966436878732699590275360078085196004783239311220957486638367651047836161539076977010752767924642567275137745399026448993274669819475368232498409401533893566681433925417938553845660420985428348628257262087728157335081175451750026681768202282810038014520024683525107407108923252153282358405928631251383715354102556388255976266961502755995839410618605053370594223860516469589163363862311366274851604824734887623723642209321999609863289018158484418752992893226680563250844205926557200935276605612717271883379804121335698428144895697304605396201826230972892101908462752718690238232094534018310309016111155793652166648367073444969874670348475429197450725932855543111482892649704821867320312304613781716383947929005689173214156202908354989091122867929487603028350273289361839752563655097547820776827713348691644024890326152692017858099745148477917949754029146295006541619844980742142515063224416426932472240413734328955804422199776707669133572522184745499999055602116342203564591513955816542656302661266521228504951870217454464870291887486490884932083392682085827908833731746165103088659211256666851063520400025680836086343168723528389657685646322833173577254533799810427901880941476399833437247285412749557604052929108992315596270242389848113229283759111801736834690064174783165621972401592463860356899957630050931574317828855780965133735013276614551634086243867239832314549390062467792939560285155691738452212732371859292860425249951234655926146155723203519782812719546796651918739880507221863039943608749195519790511236050894999854453280492064255963039942933142324884693098176033935772496910313059370777740833350464831579351140361819525811680401537864933153008804828268548606572681221444865497613973241579347907608342475079183413430910000384997067844504932791849826036583167341374116856387603796359954380413544374496793226953583633753482544443722713171803213684449087298865125486271496214567820005823845738611523563850028262121034686345376941801405335414946791470811526445671124186175298270421339041640065686477310095798209715318765755914262882893631125707211526816425415947332239724980416189200348517921417019561857427878510488634898486005114465754195733406604294432267058606607155837682728738857207888736619150070952226207301859767608381638943197426500290627949701919972516696118068966176840878048039264542286806610892067846556266311941112203892889625240323404797993371140913933042551722407905588864875677524398076018165561656947357329243376255576502680439828019836936903728852062381165817512740800923571725269426811197259941632247722031734804505669740321877187019903688805232826573020964464238642790775717219912123078451637944115015869298275149710980157718494430374420564098337743251239566951701145589326519213979227191769731878249761728115633099680820812382828441893105033034531157304508941698881996253716670323405509796825012475443117118783529728423139353452911243833464176527046595188628003838012702774531086446046009481325201139530795247602443543751221032142214355722832829306242583176511638079180470711276960851059325542863421336650729388652409893892492010542325217548930220863654032992791338339614272694782384439448686497778938646637064552313761119146636586622635269654799064012490161431324224176123399188687874372223542343094925294109616956535031887585175461558998317262670730468962971766538815070520426851148841248812965351706789578020497182999880949753159504032585784849600096735528335314915235199520218271943704024265672665433758294889465715323735787810378218993561365737030149759125089900516243552981594511012674565261806013064688120375607422688260442585062833808610377610567768016426041254975825997317429214349325770303783460212862281862524271465279295932424882800204236636008684400318460482919866025561712295021912157371150197687317700778680340527377555809265083485235325923872145694592170304550815982369257076673691531304164419358375019854964567201475655817081463537757800042377342522931425687608400707101203145925789385857084464323227102661556134410860866289500617089168655441966378765655812722362497132453886754351391418424136223832709266841181150174424477868655139689825435341042434325150614948632412492593175821568188319043815337116119451825075875642608844802086232001147210678527230767116545128466170147422900185280179054997713809460458199801501334813390252212335208594238735940117908998751723778647434084294310242218255449575709634306453706505635727774447583957841373456714813286837128611443923906425777828294001996201148837107341046413647697662776753420296178911777504775908547699290584760836190022937587263023984032218479159353953835903954743201413057843696751310022146168407537889728441546265041133340578339607928657416505453577611914880857650946331613768019245739231914210627114430048018028455332955222406447964869402047373147157226830286319692176946850437648176995082723448610380002995129168531271363574914598514934717895471625712628713991700137595964916485448136801712605972888709367102662825515556627756437409563691855882351103364061378137952045280357623949698908527584930933245751748127760014945106647019610149711751000451846548200650128889673171064953377306356043162226308740357266696517451413188095705232502489507126022288244808122466368491717487358842616265445627845193101365817570612221663308396701040728007062425000816409041121751023820586841365941368871395037840050234242282886795236376096746760154069069727090143314557384089849563392382272203729750109135796328930776691863776331245804212203228425202485397147062608542447710388067286660585915698559582265903104760948980543657299133714167468200705467927118378786307601107296881328649577189197176269960149542591321587960426146011997483255464672873956721588660092872189066522516221939688052761883449858493347995607499094074079713294377217513486101991462226960878797050343009198604259350358118760928836935539971748083744579712753170741998002932305306617961835474441636617641388691673786482086871175141227100688901883994927172934298377759472955025047038808164015805349188404475843633923680242967922654617515325013059561359573536042137026531831338887770708380372782184913275204735115364950270717054832878552596864367232727636905836057549936479582163029699884063919589902564084977078954939513213649349985333104491221745126213819681538887021151243353284649046706404462459101641029817182177333308492797242762180472144934834753019545383153924849538385533092265709280030151679113334640538185779985998699971944195552476737272051675035035875348887477207262347195878652649106939886017257096175309419216970554736754414577615014840029013446071812370768126282386221497819424425110323973427778567503835350381149820630501950954139970565537313972228372172242570069126834371132354817987849431383687069224338410168449565395255080445506035769670938207013121891480954908184018178776793163505385730152785887779147708811897607520200846332324211213745166988923814146875737122856003002392216205472040409334637568572485372391514462211872316907628587082325506152596917746022122871738554563167842797717230786686978180428608448657121482171934449106912437228274661043016797113712304442145499169692989176228057504909135249782425825042203237637744472185068963130804264781105828056148510186246710850383518557273090032959172243911968072793843126507401637837317710272880150526301895837003905639709369127176983322170786978890208802633711414499568305149553364651070823927507429350700363233489289048270361824341741981243102657187116266418327685360214117288100141656396499923229062714992869438538653242547282295493587844027353587438224417920319496904618086187965533469612171450178410020964977113924770942511458299696898357729186958233441889843488326177256128456223004744917068758583179116514503492015165325429381200438055293975021359104718406770591254923820419908502805656767415946812446580012253468997326684499039016030356720561188953433658002129003760559438126557916490226049285485584544848024666910077456191896496398440312002924403221110336781231611309353353710598820894035730080117347480164900662038331274138688986477203946488868414627124449813979434419897309974933738443361196749031960617957109896643633770602582696767420511138701132148878622821317965009612577189051219544772640343199112243203008647066703367609942173322944967641030553957603674106878393256576211654778473339256996469884199112906844839929858270284461247876736064372535726757828202884146827251675910163481297380624522432492195235543711437765642950667024485903189151624307441316102415029992233808530393936194109297420147567421365922598219749870909356041877625793839565960823500965712768637409573330390208050813225919724198677942027983605092445756869232405805796468957550323551408794499421400805745702545941948551121630663275261643420938140213424800335048330361947621999835503802194560298254173487267542239581278804980756456018809572458546969500783136928285015172144575729338986891327490181175143322627919733170051454902379670669731772089095514866232828644626584983410889403697500584682772728155095635074393571646635391122815510437400498844099403986951008286625692914545222779028944390855619568944194195900081113033529190533334977240177325258824649162039316339228583844495024512308873219959681355659243460495341517790594873361406778288489769961143482427724156394752029711604266701593816864131547349052021346467200269913464473778406347191429055344148222368209055194349308870906347329620539804006130692212484665584799791410093312130708768096655503820975724126618385610037922339544229821490298289364595298691641231123872454408261118675886902921803253874653239742918185021274681770967305647197270870670583718080416575983766193093781097452355543361083416057731631309426803167330904760582377622908675522364467756114012761533411235489383393169840583031851455763681421087029157962477452851456176470824851086482347199221889031365472498083854442728041989871403144892963611032099255916959033650790632352604594216587880123850005102215757339641424650577717839545124032020921912052325374265357674711480097767512802994316400397785822821264918300193915187684945214812066984272118419830074858877057290680532232799906055636649370516265859478534309435524981124923815991824153120761492182625815192386767302176997390213654140176566341060387123603641093808142646379199359017649497217296483902535717092447546030134749806951664199291051879835192175151508044654009120708230911172828978196716495829261804830423964107879550749775332585831904784482590054662998742183805895097413003254539046997390183883043143744297360974695393445576522871757226185867640340448216922433078218639607035026211125534607106397807475718503913902646741335243860846838430451258346395112897296483472596529405938411171838296383995965568981190776064033236943781007260758507280848415723681775335939906114534079055904428265127888963181020057050587964325217993596235438226523684336606172886902726060044484412872847948667310434850098873892153390022822825301324170994264804522891664764225660459378099331948133008874251418093962628351417956184666567836554841512075720337803072643877631954046385858995881092246129841813790670997750063589243411065515982122851788394272582171720227856829253760622136755862083258363561884675330888558791787294424089597633470008210687953589360881352140568257832493554275869679293485862971549306901085015885043560320524198268236393078373808890106502935021488295076238707272630420784995657105924869578248340762192889542918824726518495695862806859658087073037660115829537525148518323386520089193317908002496235013028110261308282750973242849981618253232035577042669490364080066461048587675798754977760722177817777471871701017441118572252008023722979205086408212867280864753995179266888998136108942324533925324571148907210610094039442292623933344336450925750523664208589249620316065309013430067613221617039970884328725352940440854907381183134672577850540087118053896536928013733276378115554519697990659005788048976758236642965386889501247023305953341923795798131703542686496742477209112561613918407361938053799620816964097860301012800301443767745450915084641897188272244829737918265246913344339136913359236641356584533154447512780003434628305987746963869716137595929056168829187828819865178446409382294020322374795676488002445980028058086365714598737749390394462272770755839332630159962041172473557672522760424865144873325469363982735099927512660992091797908476759213490292541793191516046013509812807484772371045323642716541969038770005928347384041770860992871123868415905631194915791555731374386899330385989057896993074254291584923357439098308564176880340478838397880767962876038908221391243268072457382573755919751223073087212935321228846823785416661247627255445339495501965689801819904104500317812408377685636187689517994001680984888761066355468080094273706425315534445209544050274280159974478249638818127063428637089514639922327345839723163288073709902741109160206415949985204964313053103971638674498664582243943940687346777802556801447366913893003341938740088425587301763274626320521489627956245833799392938063983195483060988065584890827084287675743888611770224382268803420453174491605544765763248077721095599591993965212448321055565595234792824846930768908053853012961892976872319221976984215334206825014596936451937433584670930327273470261533935376040639685675609124758565945622766409288330030226522532061046760076517484993804864212753461992576671221325835914113013626427588205279165438851394578794668087999041405523436826804615336308437366473955078436540741588389357166993103341362707282499599645590335555539367214078332159676892129466346138281084649202554380775596161041321859468752745040369711961892885487316380895144786581931130834737928000808377548037858526738201028346348457813778189449850552876335246586941923828219232664072080648414335727410466270004633696656621929217131592668415090765953141498468318189997216017867836330590888506060969017052262285460256052252494918518948527492230910864469582188500177830048474186615567420912779712278827534879924615277850115318718667751995451372193662321015930677565294117631589839705699323390809605019843466721228746682794070002373290058410543577146179389617627918547958409057861940402629617759030838132660592578846404025614427511819321007566965165634502667331688065634851479534065204715115662216918315961323111516213744822494053975142519481698299765777388643669051275196946468168883339312288184119500488945266811297675161987347388793683122464905939992944068780993211782188221229600774935599419972995209550817149919305340877400974959635403551223675520448648234648909419835184657107958114643414247584695900779043118683427974319163850230868990469594996742963575194827916114607944752493246920458671978301902100048957750175155388765953849263742711055749590886622150930773739161312368912816453979217072194318812514528527455080528101926701877136296945374736217821388672467241189427027623426945301199702041858002304762213630036224126427002252055160542125499198802660760218822483720542903244458543529044957639996516072897996305307260131692790318839152130012844139640871146715269322221041915347338111278318188259634265539167269446083993428009114497169518055001193016831391040865422303044182097651048074134517129726660774586906067829871583722653930050087187744073303027415687439197542255552065687510486588724078527083522030333167405125379431996153296405388711510331706837387790583216420435872352139487803335832650104824694844562662087867173630574537290537299931504667612292848562853131125701477970380190731346833476596000642550940535946207833409818609119881126672929782572466923460537516115598043509161296734647101716401492962414499479175182005617443688943552736654978443029696627343061934043584354449317777713861697603951460083879449912826609870253728409877049620819832660009990957480412847246579686176775931942392206888211679251040594738556554853240815655554498718446590864637256337078756851458326770967584613751424699647177083941544656148690324710147700036207297946788686202681486405313250578557888353339241484522438373762905549743860229566908381849436123088105495240065647697208070982917695840555870163867306617660805403959675945711517898691410337303978577939468278520355895131358241874561826854023062254288017322473252851482220621233425833139354504231743071417071537623606427160316815147495854227781910822478720678818692085591144094032268701958933381973561051896258992438491961061936279343092382428086064995255876737470268578921583398132860317340083892983779252701987974394093659184515104861582592426766979677644018593040368219802342425876742508892707215427841901356467080643534153457305433165976231570162396067436327407932041277795385879675900602623946084581707440635288653627192411013467900560120234565711886544598043680162498735046454368081218676139032609630775690736371677327740096087854005302150505269953168354986825129484872050096660065768979230606038297324846701389744901843480465288188715804721691932659962152651606150577524987843607681770646392404277331914480178161506910085704777948618475915381843310898750461709872554244756959983208470702876856481435686259228088128669107612513842882365442905954755872751972660443346915242488074773233002744248614977597326355325443374537008632536770933587468456930493140416912894952886517286048816633359431986748971072128166036095048983383271838656172482065411008067122441723642327818969493667184493038538520379904516598301908041080817307378855858790106465769988997576625208210177419331499535698858547863419306220769733929654886869886831850086093206466831555189239137324867158502821688139742582580196310025572084361709498808246550538965065775897596518481538733948561616478170243266740242603537016473901692992611108015026798639943258288603789755299457814188216468581790424662058036280370296451619634351827627640083984879778936012095459031876046614848156368739838722139672316940967963659471374191110854836823867830156878820576808882060668102607007436520984163370235569302599785005347690952812220597951616032454779889750343754871785235861136986722457886206364899016879573150715031447830023593115940201448850160948623305519396230168584333960702435707682719586867687418118504894847771576388782725220700718057053023172995705194748745178657461827226396935386903630566397886228237047826875961664565361549493801630819321956467784796775168817382029723359397596118393693114154315853959877716438987148960421227221536450185988629915679315332517680885682312117425994651692342521603117388291773963546161795677430660685863083182793927693249278387130223975197784048345008156287627374443486380222366536607802605092204861139522849022069432124682623544946089997299988522778702193679549053894012753864982549780944220928030966166954483076705158176817344583447330857433328034370909020438535296691396662332133112012575446488025621418401173403557600770501220390092682655443639613503149883785457496997072737472039567764799010479356010660805869662388935146150067463836978155272498789755946101451067603634213286034835715374861331821865678790842837013229033941629532820580576341388016669081493550280341827890943361450290228400334189677954573758180193227354327018568179426171349694074665386095741643888778307908301591892183031868624026845363735393483887252811349531908370731457013099336118117580433929848976924365988493718647707355453705998764883733408283880687786392300658884373414740765157524876619305210733208425946495925080748691777249915963144878346181263794873205111842808326209603126210916876292859481345395921838152808899197011274184613090883865190580757338149229383894791695261803386137091261576785714672409404167350360246574018862046579138900666180642374774835315545791650524867824095595927598300492990285907452511352884572931575109736094597991940591488996606594021571109121060969991416056397009961797803638828412802253681952405284632802757200146755345708867764926289204042373607911583210363317514199447655023969498646120567055768197735521600717730192623240820600016826938594197924321176488319213165418627161187005271929034003282681671242199346936300601477997908487949903427351432386783364335690054303659499407167206925262370588481347633628035340346237694395270062131092146842663888068419828811393878370984538830014659279997187575516726786905414383485299505345874943243510127312841538222133732423515262066968931792581966545078741758059719762749551032566880093562116197746953076652097394285872816334232630923346846048058732127183457808451143271704978320116327902391092948644338430886967340539634169860969339804554158514262223297261715107443086876353550988647675125366640919260311860023159357353111144636766389580544755826208047668232610899045173556077739718930694609991941155915156042784228165990247102859674753122527194967855882068774708188413611673810388036025571327953165431447557022958168286227745198608498272616417072995475510952227813975341675388762551135749691355033626010974842064637103606972546078744919232802529834786164869314477393369956642329603061192211285340422296812564395276676989366149878758744035888605510207856067019869387986624839836840103393581533950756648016041161264264925735231868435432222635478533857625401395182438345073414134796963272168437832406201829271107661374695159936047154326964748022618123685933227382803089524405573621600949216752265541396331102256505106429194065725395379574929196570189621025795246822431720587244411317687390232728709588126782433647177568942691200338075630089985786035456586782701257384283703345455903983225252892722058514523312029182282552235723651132792291366429210995642741134003924437632367788809564582256589720626153682731550279101884200007546569745222876647896500702837421069079082105410218463333595703347247149804086411339095764422362501457781960331139052680948398496921363869071406990582792212004273671390559737817071504152335394193720768377318060827298801462566773664850109152941961999735184150070562492218634202595536348965647889248867445732343952717906435011537162324738929337762980379978157415688781678451085488713559329150212481517059700166079879714219625510837481569574590740032309300876816518367334690131670361057050758370181500500916831272707870345540981847862158222822868106936661903843794822324331571593947955701024997968594927749878719185125009481732925023092039259560273296248645278072593123435622509175791173910060403089546257389693808107970130380324556913312683821870658825938350458777016056900231796528150236904112572903794313334809446458128854839343447487122220577847689628152845894017074055441036015039531191088478193301232667744062845903970901468234204104632095404445797158824211570767928793265834033703120929764771242408060879618466305069122221836625936618502452777145472677602126547444931246190558497882419345529703697526378275216682076462878399704650282590377398269457973824906491695529217520818839317771329281149340297755000848957763324051059829824331327513490046721083092816726779078154740592201338267583886960052890347314639524327029473692265851684168973262321746372144461996109696214298500962551465920856180402700637169595235152946866923777035296052481195380638122812954548170834413749590487022437855782039404656470718016017680834788017924347782657013541545358710869874255048815920927852772049611760756911298029563663759392322113579697590929979280111314241188154664573383947005685880909676205520786392398579962054722084450460611839629301360489714910715526922731224474507076346383537510674829330741072131971243457763159565821550002704519142060659209991542476964642751600547844985440515709774382031481402478334064357132562924418503494745235955240967435097805099235297450446919155370906264503649693301707078362957230772738963908572885356987004147413460838786895628352932905512542335861513438663855450420169456608423954062925586859730812003218596146852022959375149840049536349237743369816199039148051685521212817924890499575220239088982597527205661169856110956668076465662097355289794888172371959544939286731101283559415885299997790852186127379415373368909595114540145103195922455227630789698767287334100691545648211023283858503130110464872246362296738680812521466279366402419345377343820476168726772679960888872834579465219969464980278069226150236947411988767464065561312512126966152664460401931524130518751336193446842357312215446112978862684114052974582581027613079889014679106724193538888594213472450261304181021105378071116282325500122578579238703390323242352939320590879506145286712312297952843938416152344846280579995790690312686620280665009967366773232423903694472484738508612269495245873419801341113540832339788879152322222334016439995813102365572708922685876337534433142695013511772269032317955408853029781071860825303860018968310318611829304705991992410145303580351510799053950900093969250265694627819663491537009355362652993766088692737751632227385658911217266322004837501516725945148019538469114722872732581544730386304586266280679459370739182849089302732605640809145726511170456575114817510289955046510339797035005973154847870880079266038138524284529908621031497106753436334569092838007378506277727008789514641447680644893317055501730593928367743075260298898892397161205678881187785049825054089004888297102782638508955964188670794294425795228347226203522843024787216684847938655811024757867317180243158339671919140962304143226305892057033764726221745168066795646054538970780973745603003931395375621885390336497875767148783017567861990640172643114955327534267156002045403675747503226494205523061934908974233064995083845737033830625634150796712525879727385181837163609877495065710198466140091093817419084429017181557867676606541998944103868323097450168254974115163429621918835729092211168718910258061223464544417248577928438779747818354837632881265275890644295463508911638243988739192984761441222212183549738737225137760610983170644174179001608580978393757971503837537743686107513461583919989394917439910395268840697830548569985050286272245841852299940923981317352476371707289461941663907718217487413169943568022469270463471047818547093440666814875586266163265396221028516244421077261680270133165805798415664042544005022098138591195317305150202389730757605938832281076176971258603228897566520385322092304970350820926880561031151153262432749796901550586382930747365232226130402968752500358905277431846080036491582945831283240971988228909414751709604241162590289561327658203409052245259892470118904957094345370563096545406286030688506521351239162493258298052486921228225123012849938461048423648516307887089413572889791347086567287675255629053913422174141109194692306238752756399198337780488189484501818690376753705406581800663030341163090683467071844685933068440469328824868159070870173742648271469457464656869123605737709829116043321961203873143153517895600614576782875196320008941902646773016537055320556179644498651707041045602360331377107114784557249017173631179495668774947015476019184508502664431744902125944362650968608286813527981842624345075153931847952587507494454696412316180588272715119279791864363533554754581489293202407603453544368061379988937567025594897652504229067849310990306409074686799455474623870869976855269819973398336504573879635732367649226476274562557137447518028652912309034951916153122547054003072503771616227692919165113272490681938027348484664598655338263930750462237000305462977187957195319774760241307070035462256025132039423784082145719284820664502823001508136102852991515921636205314576481224875965462438179820976614562874373540802188754993811616992427512337298153439443876739220366900983485595478667238349028273121311862723988512731382772983147366344830568202881129529534947710807029538877448070002199600928445220318575246942979580475892838835226314178679851259797285158372889831228296660850030843499045292206922977017484653953023051970984963068872722089520985009830534991698493614293779278404684170550402618793123904025931393319273092044654684998438969566566260751562745628685409267797221510270850252074376144119957539836051379944631510551846252279533902893316129823786561681318841946540796358099705060900816704068079362282501586345847911336344791576736899899983684337820282145926602874149790475983335689784859189533178699755628842665648193941012558972124461839948317278010673831271561104835484521543683970024595923752871202327623974865007281120738485226077941120384172939577502460366908529243776707077894956249692688279262135310491628773837728906347149405124462739533299643292419553338961549431977708607827283647634903321076991259520029418511553790614020980950167110182731458930809140811958505005217787380510332039094838681091346675927965661991649068223358596345908844195851874549009883667633213490285066779112310268113474214989454388541651347332592093241216282258955418028581969218757269783261086451183357447223749754030426690725392361317790268941539605233066273265752031033686535096154155044371077085888424918124395743485696117131065533579022659360383729955905381774340315973834405449921287067962072975132192126508666619317776052741731651416042551736506398316580910616627379965784238238019403564517179296981878423074661605529410613299682028635269162571353938673239075942967313277869562188405538489784584363307074278291434884310087547554262383634261993200218655713670569059001847817580077215712290306232309689621225858441867667858803204806798022485097104201855273528161120922432151759957058390337816211766301211653403094189988243671613378169064960597938406631947822479478131607666684684091094327187945451062680303568729767047072827894107001423142097940477333515015237912458368426062192705686080555884253265399373730076710647973800582156365969283002577550830357633266953622395606678444031339762073167082368143380430266857637842251139810328668726944142674789312031130786010267530124466056545055556384261602431025035593193760336570473996620423312700189505883837260836453214027637911031213261235279851801408888783227480809820865452156820960101654134426606640855634459481334713854848900754574203456649884258425183968785676658867493610783750008688293841349822069759042305957327829458700258985003180175046810890712928475085060771488652092775660629987689351746439131931611498373993458388378863999032916229140466980747333372719491560753171564900849361178471112399872141463809285955368357963378493326718436265739283172860485102716544690887558728071539739791856716651245893349834008639050644840095899392350699341327937296026466954457870349255816754347829198868787582489987507624101195558587807595970813314574390610904540770576914023312023047221354858386627643311935939560187754047751202042736593293328713974132319625572123925520489787686218282521068655107798211304976098399722589537197330037079538813485395848652313795075406212518080589561505631966063142140593734545263029590740948685850728098781801020573882457920975097640098955090617585645270227684802720795745332577841521943182303116822760991739700912838400568961522076210916422209462235564657054546524503261668159344064025659793262542980885788181123538979909475237742844745047376363779659882190370582798912827990207236246421800305336121246888740725527354427133505654519051055182992381103510923752586100531686893548437424085223312135286187047361750551137102770630720083617543463829358163142233021416978384726319256861844767136756357391817781091606406911979422536112627582054889683933459273227657055939262366369621411849849783770022911939059646517214515621672005294468950517810663557645330936082748914200723971280281324583155518997166651021708165088874797111733512545287703407721809603944701304864596383326853670664124908860437657397965936363017219773948732402741982748680106676742751872696368789213374251327903306610964943057705436419828131745623958586430684461280720605561432397667564629615457154881386491457484313443384906059673812938024183795903925415991923712927869805254190192845060631737510845980870503058899792405482084919897286499025018267011821537035825935928738776398805789213291214423390882776579565790812135299896468153645587071873827882257393837020483136616672344122286707133666744374418920009375633954039433999426792528846539244301336174317892500972316196458626442627375202357751428719375173544580537490862215030792301188561511994527625975101796580862860965533779480279715457358176931850101457591435946800975779805684375937521812076255434611627059742002084518019847503907155367665807089881206966083279017565085336929777597951041051570962386385362934996631653773892648695464295002527651701526369209123566222182447183981901794340275188159357498740979214670313564975699315850865770791237686341049973326379529823574540034018446181683783822212689889581479688326034221225529316943476132734458267457356585903598378187734115193289952195309227495538245134676312934148701979873660207203872727583200536262209541349908546724179750618516504163636530002460153039022190599606425785583554060522374125245168934131962957826673305100335844711800732931065932935171570960588430313182339813412940976264202843926373040512432281938534177702401581952981220748062605963956787894729105162775516361141665899585636617371569040935365334154188301268311503479644701675849687814350241212742718664910187161752204776523049492709431564538517937576781453729511655788302334222186899915640733100111695060117465426821769656638225439911154042332879367478545608750227477695920451529341100244574218696388295119562212055985182825739754176353970273216369340304656326029799556760074436245054885640624797027870670664102239373263757616260116120691860668276151260885801890250622326038152406840588390182821896968485668438647335656089662791904688191286876436532810639433754488902271128522495041674815703309717557179134637003200591238460973745409929015787536170249112341424161963266616925275343485361681025128309201375708507052842047855979000209290356530802720035780728028611329018349585470721531834617169410674619165755284991205180943284277494029057948922694391720691556042066618763891124891742762173208062932258936052383506010243291962075309358593804129058347515142609284787335859711329211748795196798707740868961024481545118867904555209255065844662335054103945963684207292384236599507936481570875237055487743258300045916161801125969917427222201259215989271138729748187355424872483848963845611831910016928091872304016373395296381108735015883115433262328150137491071345440565970715779538145289642933117014181178552913060331197820684096053724477688237058819385931719707049011259512654311019605274873308055307016987552270703017378267002876781681020192054682334880862371149709273485079714077608447801771532688494978973992013199935082855948042696799956738937316599675117191652761784982653882733740976247376066199848038406194548366751938590208480412704471805531674390496087169940177017533099162148121922640584342774888081219715827717451902434305978538096731607792617441042387626985206244875781196031773920832297323875421484727565869163532722156290301654932274454834714998514607811610067356068120064606874621229224074245119299542898235288611463417295763494393139128727092705575837238707049700485452449717617909103892751836415006492627852416086114155908733869414603547381216462191093312865885285560295554867773657075904569422206122155303213316746983044059255233952837166431951190170427402724367081997566616016537331624584374705296001445303446840248213017351429620093599387080727977845479550572413975059515510751367581278326165744648298879572076610563474842086829998355424446082828159973245172566159134564204805109623080424651423368530794630263669661774341814475561572297615906658194997613776081023038824398851523439126812171875671244076089997307861643212220088622174607179148146053785327426613675426669833829275252216186331948693371466221718932668940894548237055796226583798970738831294963216301669096184298043119540620922006513651922856083223735562347790670133934935945708783274861834494821423798031905419464808413797965228538379396430200129209273488714576959616550354353743657007285995750504105450631090220546932403930604228222163237858861986022180615315246088408507308428636086438860900581811219578891990717036745781732599925387339616061422461906203670806764675977982095333980780383755465531709142228826915467190223603525838328229603457531318257361294590287573054175233844236766737586158734525324970564209690484296871370465950013693447045259947252341472866569419552875440230183564656485706705158439876625473816550505409571731553539570236380526495391432866854465059869918456970286936243136244882489542114373494124371699370756844057025942411887361478341248515958708509728956068056892335023397893536537346662157767354819442407010462826722273874161220070236535158645559000539850003630829563327054910624271250667686593123414603439711452707477474738228402526430690835889725766579816499417908080761270867608271519262912709062090896854107641126057128111541078940110282145827518004199250060262789389885377786368776805203505002356236295149323258942545648369351295663153225181728105844384999756517469792968802968394558340803117649506052397635847595293423738180979185761295941097339682534675033222105437925843611446738841753190216792975780728530888598966547766497892016368160471873977328991315793653470409690564366358098750783344772422486843936515110256819116868313630012747828330062672501562117613101547329883224445092240480641062135958579737756648831709259096064328499005249169014658146206468699577693318627174336292017918183345586539487108904247952275056451607428755970390052036576039554983019124175170232976097977155538138245289194283930093251921142346140344171612434378246276310675946400066896459970940575451992253173608895063152167266779338591280614061639688536019907142943112603468077393853224367170612011909149636684184984753484950174625328840634284424434707525851583305719624074279483843537912348410257596031983804997717120069961781092164528538390075591256236203835907253189300699447889688014304074092802150785231963405383904554647480753712061050529063424727465742780521848784759059739150469283804250842236122847562574846915914401008972639861283946375062705639663140944027976763435313953340493699097767430614210887077116243524880157636661617251884605093532859165850766703599588409728539257074894846536717581407900636374158821956070246312940389614131864779170836049943317863297040851208447804791953537424568381839033788264275776336862638327760690027591891625379462092172503994338459623363324230334036563105913415109162486734039916314631791478163517493606944345202566564465958473588672428313340739353645688775806158410791219439051324472187687434941148847892628958239048738365855842740926146530986369161724257411076109755902815240274939522048369370161499112276997973829568357014919053318325866002626664694463957823759033426946451672531294040296424318888762682029706788677511301128378668389295650993356539571671106668217342402785626381699038859439602199746518848376945180463703297639840455269615693393796804823372463039821813832699055340627010221839452127153182547179153230091579461171910822294979350182425654509712253239313366299565382974569864690026620116598532094622039522725431043478993929994655389241797187734881687888062329861025438375857361881558182735213082192714878790554941563848794203261637442224084426080096159463276758914967680172595185478857320554705799525123836944566431787270889786706850035399638492109121681385620928690453016551485683236402847978319768222247250100353438572059544558599087077844826777041716781379186153184684059122118692845957554367428529949988378627644858793158054857761996239203562233692405687125073604244850520200626234985899810893317135358607258064667205625713546605781768190073700325463506340512506602210082922775909996742891729309949840588248089897079646876768017922023346901339859261428356237924816823269964331248958624655609713700856248244497520514344190146465523297598542156234674623539177347759708142385819195040475698367413735180173703283212401536499326739988647811874912434572222600182453880300374740884367456003677307479120045596944541630817568193583783059399074276112496477231705921615008778688132386394228444181171031924736544621476194302615710603381958389049788990076234164408214562372496633096165367201887293438869764765333256853819452696993460727036768433818151772449803363546422646982538849373437537299523738878953715508831617804083317104123284483899964173437825625261448803137744424054337402312964772276880890861831953301633142774281465698605998807634747944196225111811180078063335010832744170440332994020205174837545340162404348313671901287397535234053372194220609595123493321034010231398583567083745428475376442691594183049559008643778300377312362166865259368150909206042790842693046298176244742152576003841383148350437882255739264722726271699462985791525559523317196745935288194883946127504637498571508317798335864164131741903295306480013952151929684035946620499363375970025830979732300733729812005157733198084928265411049595432331777907356688652172198801706312355652615393251375163563454049983017142500929199388524663500889872484376749809661496436808620202636252940499415250125660077164313335277301116792317714919095263870635624377505260452907457077957492213812726085103986081061373131551197529065964632860148482385278566845892041494219405302831129609154846392408098359375508799738497288501432787334839425993610661976599959420675823898393633430886367708102585276808665444093697340358017058329356144097574446241628638400814820948850297289049522429179569881182174043370266313347003584737889932956288254919105633856758585777455928975220732769208095536556693774280420612986245093977510790448052125495863419637079418779951367440287680447456697335775702699689302948675750546585364851344976673346980711640201431794409044957940569002543518339517807112017442169504782134271429031940031541725935110858066299603232584900653790490351757948794734535542190888720474010714916691913521261855835366494282558447960907814035736590644185423561005837174075600931174840660550591615555313794144203366743519184471790451955467082806975449012555301597719750058349962564423321722657936942080323076110519995109931178390455587547269187107996335315608389277792958369147595595301756427154987572104523805954683228629687106505637120259073513103693867955580931167984307951359586166449442087994343918167914049447149491208463056443402569111320805651511101599793981019048424137129032561989188512521717291543195822873048684077165113592528346550118017081424447752330333880348003309595650062081882107838791529875043799456253992400098321549960020336769053570985467449334053592484012290222381719161715577124034782765563828720591986753156102281780538898941067794031112051587109515512282506520321298956941869603057793525687399017981565131928945215403908010162448633310925331306781260483825856809367106180828510615255015759926015424935945773715553541285309023397760085052259438675763965745908512156645102760097779057579607501550952845388856108739701371435105210837533147384790860889077153418702765455551099541966205674915101540303802629241748799501174284027612313442355042835629600325815966140233266082665200536726072434345305767870314027747592604827435498089634991000097476798237361544574912040161052202899842826091505562714251479009474457204724671203884694143375924456724691930827819881628027058191010978328435607060574905563354337011322513316505964883369149909098677726395000995960448694161817637018672212136550795853856468448698407201384797214642396788663464980003880789677758683916021575555458472861296802298932675108695864371068449688728228587236305540991741154236330485202491096373369592294886539155366409156693582881409465502139484898466565286010312146583191304932762011340161005228727692639527365950947358935430271160990136274750792785447932096067683672070306701217874815753047699295376490886349164180118462273814768837502435879791234219712028397797935552908883465733705632720361456890720639145074565164594289063611931430446346047405093063745391728794209935000013077996557107295913198551470444034772133435103556247386825191687689638049977895276989471569326595404130423487559598849048418974791341798647447305536571290989923430068964873337043537135447350715284948227632447748548784285592844743679005410147355007313906586378849465838693948552091945402813362895196606713480531488564535665597622677330311546004595425932004260740425050515287668403455138391876937950801651007157289254037546630308786128192349580246578895962751216263389492180889789620817479164792135847716481391224120923119705779788698278520755546224913645011367704910013965749530142604353508394187551224026954602332778166202819381233731587619868141707126650121632919694664300603455937830700212837488290769556520521275200694131116019999407883504755271826168463536582043876039694738837767027938776879110977643999076263776461175743685885076775617144379963341914851729235304691000167986097948130982598740571895418245235327105584474172895074109733880117936154897770559728008713572120702073271261821652020576060348421704649059895976784634612146994595830294097857916527108274933809556733291443493770325010250956362131699253418063201128165385492203557108505788382294446608476609128597223818634614646495263928653542357549301603840042715683021918740588215214364820247458038946975694509837395584146551140302138472044631601867528864296527962144600677239609701186870599803070463381587852935653328701993229006382329122696357391302509025935835306341616370787195031024983404625364285384815417147418636516931996815511878640745533119556293179000288192397995629679038086957842308962990876046936170506819163841332094235982823145417263277109660699402351849480441550896327496048741874191748051635205129912032061323838298411094597969665738078867022078312931272986642058767035341459423070400046623803142252854419384366711724165566357782483383641146481695453780589827649923750793339771376456842956094836271820429650219863384212596948975945625743404126339609690476705611116319072451640500764908241774068765737235838982030945191925740532701002256598577277182649797373932480835499892645132736645251936977399375292013573167654970800655891295231206838522918252699107586740426252281078325579294987484423011775012954297361068251746479783872219132969660765195653342338217850886333348692663370668987320318025262731600009989337562886385475439917188524109769085300532544719159657834416940791156230470540441513526765790897613058467370401919629316277872201331543633996786601483711051321086349761622317391962149308199331983514877062967972211528875708122243407479117164489424678644119923403827288445842474397459597485752193295800195002811261636323266013198565666846959607183717121244695301709648708522558902703989616137276511582788096308663066291443972986108110524897417089531644642708754123465845342303369152858227381077005802518990721998549181915438502260743856641732526746316509255288121615709919656627828316084527265900113188882366466693345469311539444818931464364934967890101781389855100113996912475595088989475101566525344768289677528774730731425190038157976597518468918207390839082860574674687248185971200573481167095919634059079530345737049435003678681364186025385129619023854865434025269654683495715101392133609297416512467655185733276778829496329631448758847756987332693938692730967195495284324016746937446190738632460899628809629425604924830325952278767532338727194526759299855326843763391759845848582549125057236272779724734669719289079371788225305640601327643801148673114864798095026493908920602186596504421817298673066574113036324143250624262604024582378965982267979061144574194409781376270235707658251386389093741721761935714968759605938056305937518568548194573518796673318961716022838878602284572380893867209240768262188910217227731598159244074518709252152468590914746488694333084238263551000337287228810040595485279144991163222363296182363679584698484452104955307613704756686692668169120367003260120173208165535130237918119167109406780944956418359059034189788040913171102411234732409962658242257089002322850277972456178060645525282392024007461079880108910329753766357538464410861737006838674862887776608626615098734993632433084505232912655169259990503515662925833889495534922686967830480191153194458290932933764741481273586752362679492188875025727884320642825888052858799917971478470132153684799826811299812995239205882295753205074570353384939106396088084426173576586628388075689627743743961968921363636731179751897061284398115582291585827663898137184796594297435135951667621208789010890921530204444830012399537391748714199935875111137791557108434692736795573540832915822605454841319992367400699358633400701149054166771726797618257468687855209490704959858310558840584830529351866643445342413752196693850612455391337283099195242834500148427584149562034305081049280402777436800299871978837966794718474408204291916846859273925487330090211984920182502324641460386027219684013009534563576630849202901085068882991649344091082046032337522194347404768464232179235834817239261537846191148189365597695726682248174364405353465907922945810632502914765067792320108980753181032031098498364103412413847352697845572674078258635759619571306412009624815970617383184790435949701262616292731802173932493244304203873440729357230568873697860118474029247793359724757785107025920905849235589151619855775135106683539323297536930405267092201995653414799686502121775184842514773270914974458169231924206716112725457014491533069722141682867049519775928599350713192377718995450820240953509813224785242193954608421736571731001693525778952836275394621364050765102472669931768942793447349497486809647795185330219588356352872534327701213317883412287544145201192061197573811651982997484255640776822685549080010902174232794701742469300719924045723165474274468202776901721205042557313448136931960971517551796226663401775530126946906409466503289890756935307154517959084985533998226711946270996156926366834674220056543695408035538203509641595500229796870045546285539913436827290425385249427872891360595353849293544751671731657340020933744075461017435075536903639848107173942680877718196754351390727017278172584873718241328510717624535019722535145325499087599338049892649736804666366632248564933959635396547196898730555039759239938872960603394014757920456233525715404147456860085465641450486867544621511788886949137346815986848008547494297293883150401478184966623474684314307152725887054584494825207138448382094170458948450059700470829443517132479721006678249404584808793267467605235090144788300230622642944272770541403044879314026054424268610265379808868356777685182650017421049874375851527356837278726451919382262940780828599358655792792495667854076034627865927129415289394668536109026994901882752148909067995409933823315607875915208347424234555825931291954618906013003007259815620756945324970136719296355694872741433392456442044875902085718138334505548656317910836143452943135013077632954074459135805372192628925314961398840181332796172513301394826543783992928559123355119710554220571933377289179835403040260190749797349622899639818680531511813831628562569601171060439349651121876836069466249654498516539948697301083587784872098037111780697776552130661139912564553342262835776802509934905757096096738717844697587789850705034169633700158319714777318021846715905193350313231360189769365439338752878421777327208470235115953961552311891921302500993989144260636250584896649180949443816389278365505350549506013724651491019992673451197704335493307336075614529593471856588033037596492137508978363222971650993078060981517980827910097240929622745415551029022738408552144861789483698683000219254925782049379280521051615223592252924259183240863419452796003184059378187675652548650105408964825964619194215259322892761898243569162747050868704475729332083943112122350740359149581979701611103802673853953218011675842707424433869369053104078550737306976477850042432338560019666002719391256213616427185487524103390184149509650260224372234798696502330181028134848060263548182480940374563394375281885365209116906785935756871760275463736791534044144382653907857023118544032213869913508586504262454444765274204411489764172087668363160638979850901533753199528656623199774774210606995126132228009768430375121128605390386274313143716845956813617763024173295305409254048022372049696593824390108670826136022635981493511454473326927175556201072231144804111779777983397476932669771327554249845888970109631427930279984771415659225983358990400874231752433768960532358174145907797231274621514868793675352368723482831680630962692870638232413735864161822060134743840045816429599747201397823217437230982811107230044623953478548302925050078272954264840862624882246558454858274492681991238944197398228788929899770079983497439159909447402872639903603463208490506688995981419174302340755052338852900304664424758185138464684176246128274943118279681552904158257284280105644464675617332119819547927116710332203248093665210708614796529520698231125760294450187049695574272978502176032819043900062101514335065876742335560640084325589569901195480733377619123221136728768981132156178177270210551040516299232321185901854087950864354329345689584945726823641117712566927444072597010930155986863484783851606514829740277817352203146602593834161958807899048195780296718452787048562324000205630878239394467773170868736504234724345639961733667776845470104242221456578314808912518395234996880303340655321153248900652606988252112863095637413141408049903430972524123048611547560705051371910283840125004216410668157926648877091775294176142631126276371950999449224319028776873743084647181321003988002297224892413996104978578058370716738616973365644943818694476685099878579477491976200815734153431183788238601687546334156269674175493043925253845094161811460950658393856775674753179253383201644867419154523142957794947561753189267505219923162237230805171308713149623040242833808557989181890687898743380668343522356473983522692349396989670235315637817611214759908764235076633071905835930463235690221141888495197423676510688271929057865069476866828391494451643221025390299063580098768695057901105270956215586013770572876960653556942405487486953696354601101150512814198333721453703313629318930169029378724283790902047014740807390339087214906737650124361740422116301667270022603903103892095166862901142551284979054325368614060142627789997807100729723044324167579499680885225751701485818655953030928599466808710203686979970900590609366139942564382905955860958152260997904716792674152219214273730410873527574095306312981332930779181903159790557235958607656631554831391792222077079498348266303892332643508205243803715279674978979769957856094052531090816271537593219799713866959979420004596716338254289770891411965128967717131147649152601946352883387873515531789281843197347231480375331785480850673637484105390889766426595162848329223250486639919815426323261516096227649189585948735872132518162486479962184607533344499796861629980438985915736448571958175318531513935007650248452829042314429511281448283529574966567168248168349464666462439762678651807530145363566719513658316529235014389998139792269164602938346763392327433403628839656080628273562479394998387013648373697633072416473843929379163021394102601472754198710069175858084518741986731684012161562293539487032231362690869296962642815847945001397306795441198937268512517992793090283038448066278348692893197842460273068217823722023978769348021071383965734010937409469543637566914231558757612492693785239775975425056031497324348415414145373840570859687469625635349073857352860670049190103831493559865434804710032812294716131613360572698665520493355988933567367600439322519982751527155577694260128594636968651016754544001951412134074454800958161782898244825022835218177795536298151550757325915961226002507314393348494539822989803807102486012519915790130118293622109922451630572665461111691180870728912571570388436819151452992309879533431742597691102894549374301307416783992941111589086617980413616417226596793928258036825117601705152151140128994139193017160199644567246792128444620219661702602354506209854482097304753814873579994847822745147004155303971155089793567450090220560078565619077315209837388806117994473858919778343303883014525318344879777519567756746523092223080704145530555991191124665757642501694887444709338218099006126620475800202212553965608404964632548723230523698548906276014772753016064430035948213927586739886990837732373218306525483965010913828867482328806834470781419349078381384701805103337930387896280764400539746106735891698271988508227304055398393731361322113763803745452956533204240332187332446958959344999281398865605689291487286665413880906821469951120118004989781696278004574881302598894429337774300189594087253582242122045305017523350374674187515946541926523837853020141635742708706342832930321582397383746206024907647930855455245549291206545567442449711575585145846288218505575072663890905673013198599210239105020001415206876867632178488755544293509404749696109983436281700571763366534636536659958686724420723679967303310266945604511313506961900342832983234878431249516602613711996153552976820159980740537265993007919396778319085603547077423700927817082152936371973020103285471818289961413576864800873098114173146852261068618435683035887930003055575868467064394006491880525702018474375049976810010949053001151138472120531077383173526459776024250685377777279206008289091015800342420622888546951968421098056013040253506286484815932594717495173714399812516418549753764859667791950845112157369343786540407560659802583028416784194981948377396441653802831716727315382561697566091156878982243500427055833551274946649677040030351314345714500160299672830056139069598271649036284816748076470186927074910297215013282772358143723378284131898557372406190215814294422401740163944545956401019467589631731002692460819754754560074223826020001492926627490766306318991903745154854485578627394541108965572419497624404464979457335256420455621426825725677877674175413474128033176366255903071775587524773304735196774568627023626538601496728764167171910465542700489464991550854339286107032618813430613470034527307042566413387806193832511013903219960608203037262180850650494740523826412109701318721255209859218012633102664825337098353856380044648250640552958796735839799909550663789212347207034869826010530440996719223387881032864239196388470356027203988642657308901291471232153355897305283046549319133008998574193566930206215218030921076019882791490484492281374038620282447714035902780792726978178618786549108340645889437630831594417097363134196826583185841999973923379220722646886852677110719667571238103476292876156659476492611542533747473460709329243779467475623895212357021571788891454565806182847447252751400263852920690661954583856791473350614048512839975593899891532641445012629021125519512118326746638689909356483622527698034983478293135348846663265094631534667011238272687190272398623957809186924049538055220433144878914940966009294018606968270469609394051057619667847152053598231773752599669681400279091263872431041432724115350082993841802608892110298517191407313310910126437311616861896913383115132706369182120564104722949459261396399726347181843498388888634613524522620909174844655982090835649778118272471367328193175216125289715946732529634557973946045089432284106856444329511501707730052432535525968834369291462144534473968750759379323402091352132050771815937376499632602088009868936750985995026411041801405200889905499337576883639983831293426000204752622602001855609402593914164112760873691255138831319349474813716157098406541491725629072564446273589152831519461089456515532087637227675181061183732923942248538281562935284982949741055595636555476162404920991709245866646979777778827206077623015175806608497913666638301401857918518114858994614727989023295079980902512403818670199523668909205569474381622281941044827418691031765234215211753647987923709678739902007520512879301551578440782752143574281495824930926718148754345616772715986628770641676967724268124190009072066389764632348525327546772340930273000322442274016264183484807577266931854681690232622949382087216871727495239228745303967150822316078268755112682458844976361200654274608611955328452079236454212676690434831505090365247108805012817483061067334828963998070185015677290870498431158958498023113705467783821327865000088247102826383948803758854984771982455169867092328473650523425482307008562356397057771535383690177899008041569024122381410156715876711605350709119281820635952477916030239569287266437461792637225268756977234343978683114920806952336656974122263347050821731300429403913367555279611037797725316544920537761739796299103628128587076340317201813645871025797227151420989174894201259830519106412134609716286854692731254287038430620320504820558776516128966731438092047676775394763115475942101194615504172510557390382688134143884877240854720690067550859781293774122856081885697015356821470678824392933656170814397492946180827775361165513262287145634260627685703649554471568492309561520565491857368706562747324955526719521912595335191227950918222714910661630505738892017937863090099439262969478016776846594370561910923901478436509380978535390081949945642335414826025597527218014574789276659033461512492654650496279004802631675836011045047625570433517415943080410464022821133235944977703343651240011146039321696766311414514863154395257348455256927468866323728096581609918776326335107480416285878191163267534848835341346350263283973016814597534698352254799659964789791293278481766078546011947342209808039345475989425530037321685048420085482814090098929407254049872123124185147842450653846077337823624110727581594758793088596406197678566804143253283125696296757713754117510891045852455099265300573368025511092522522308782005174791336234784306894119929095922385322124901991929292927112210250786798340479482981453766176510221997961482850870422480229781687543253404808539902601763184112909459611494272791298812051574951407624734216310372009549365598230630923434141276533557817716373010712727919240153096314160819995627136757925646726396030231744427951722018923714701476136170196761348898699967776752407197706321141233776157391592203741648218320017595229136434399474742723628028637779044014734335201831798396337134165890587254221458624888174541627128088098067864817485216247627533495388001008758092165843640857777362517073269014200381117405380151929300619429872089279646185519547631945405274377708948492957395669798916608178105855887848186390787039909476849007130641599042813226293051889572244185707857266228661736698041292878346481590970836123695894710021922789318066704919827334902340610142246409121290603508143991658304000936752922929913362205207276006773623628035910730202388001690148288455203152816321136358260439598153338861294693228535658256381043643241479644491531755994004107497155351856944923638065004218011521070943149030377260608671316315575252395775314971858042430505849193138778376155233645919702671682430784162448310299294133501391693995071066258431567769173750296781697446703797739710480246584312906574811314355938077084948766906479215377120026776510667226373028019157091817141313366831421403180594078584553525496265339425586248449065538257698767156307167327065011291043372981800522208596841240042779998746796271865569719858032909217356406531772846622029177709223111246426729696868073317777059619995041551604726560463597955579391931288824343444227868637368787571166975243643183805598478097951233285145084601249680662876597987575125679472867295910675710356625183924644952950027079252759633594039443515849266607536619636918791261519385433796223661228748876927990641292445762372998150790179610667157511948556115682755096458383353327684361047967214799372118987160241522229205670360781592876095023050105217393129729718589898325015098895244332177192874365910367544287990860304509082544873713159785022489001817334254301200644516858387845584440502807206330723884500763808652216588024529138671206366944980726683797019420541404700760325903898293943508328837229426510303360084929092708839955771746612093269548626574031042000602503947416961532961110116510943933157600166369670456726635019788276466397994987541028153884724816125974937145915477501598757268740301626260205932602137191641381877386992079972825306672198794513232091344822420675742271846713693958260522061444109225672309912159505263948382846163754996652215977827160156117505640284319262700532618423818158040259722833223308908518123961258139819743191854540062079935110061220573123108857484187299095924942644333737565460238635729233721079088224738466730430183582160381090581395581861118241666288097082483535838725149070968452638275302245844660017053547856315731409877181827063265844468108885895483551029255434809149232122887673905876787420529115322794812514183885687422188117658073674867327160767517035290885182887001883767651188261725915435021427278439673278671231617026159164665727880179362536598745372466173556964225217117017532779036250472000133267229057963974542635389688955818898155326803745066937868327219363397450266055762963759319025594046404683227989070921713822194494706144690871568160081928928573173085078131361533427861440304510973257711676800561886238662193637472398462130086165420715439747194282678633288879614072643944327350506437674930830054889562200073188992413798716791191548084494616813083803830260010805712096715967480888726601389048774426799761739573745327220557954636621236747085591401873248018816312254598137901690783652719378432050356273634241058839862512967890309932767616962033036662795919067851428177962308056036581356445209658258598063544252681550999473472965738428166174636321697598106058130495164122292957826871317775022279634026845332839222079377666770323598556237260800370002351004807715881428617961122251520539878391147736717588738614315670395175641763509941894253975332277812367657457145506054743097333553956302971995984555533844129168147540236170663152721917198870488890083637542220053398309772724727351308600690155400305349220978536333279112186878084929268994701116305826865544665947151545765295673506031637017480601191858544541317773607932254998828118513816349194808748733893522015041585074665958703415693207790788684671308884901821104442012057156474971162052062573190184562145040383316473962439378954979329950984007010274196661600003897181200864086810760666798378366120221238071156289892081931377855356594329984273194655579227448555331078445795084418063907323739487680766063130304924996148127150917440766684797942781837675683554920928527585877103017057990298608359428142971587406415478144438961193289720618683425536456827310344869041680168050637504862767269944380474930418503628804968484854444095534666769713985869616774654032762846035140145855882415877258969668336977594604247172044917736884673316313038806565541093587354178571519380214753931564764160678534366425508259858141673609313978931097569986691729369709510215012094396238102072351309746189862213771528226809221727971935278586529682596834336661131851261047324463531435525034885359482925485667053656426494852198043191061270917770443703517217864761619034007988304713943628706317201524054754893649942295816169335139118539234860662273861591768603754086834501823808763959397733477029797923630623209355133040352602735874433510611010396350930930269765337736760720454192498301576955997145624103942084873240414654438146521741687317662338932905050126046017634356342255041999241905232419762655746689492932688780053958059486836100376437766618448506491877264176672681489109674577539817787127618897309719901322634385806476247118526018426913985219880472936565581299300513151239455590125435347901504305563130349589371080469467163209772028227657419194751841895345979093889076401078723641333825614688094803860699576223165841683021232128196386068365802454852823731998478716315895457893879784800854139444596757894957886817358223044557886772974711092601140589099065781312202589573321782816564800994000176954046626820206120053554865256351619524602972798430774490690088625498416492953809410702115119802807628503600723567723861530390142754776654491560130491730888718491830484336638420016055046750667834848365633571856919381806068179060626501564721722884108116262794665433834189604669091478123269393690054718371386508076576296971401530898928941671429938924358216710343533611091656101244337476133426483267406082945713159397062682200648172159921984815832755459990097692007109434268476127976804559231415802912137995816130773120825719041617079675157992057531225991927812075224179863021635433822841498787771053309068868177301888382504162819845237120879462824469486434220090112266347194687557588396613176622622841368363583753576986633387824473025298150633762400636429936291771366493476129360418162119431814023529784605032252847747171208410171536685644826567317528255512281330260848118363172363860944033443901901784788297465419315596808903560669608443602498715059693235967955118063081874358024867351089673906284444575862706207519289662408170942097616666110762649588081828697960293840930594088170295373775405162856405164182415059708331439465642492543484060908806513050586127113509078473297550567502239013087061038929524340515164686760832449603103071138555085212979312530644419014067736411940962005019169069264604547925002604919566525876841804431097377917763428916469532987543370106466023677203930794448260133635640640936151519730608624869736692619805844396302955049633857729686469766957850243488139520433116840652566505888379678586497882471573854822835126052971383381748121533431843586578827041557434187649406199511210265105684286133274866314947114875431174680239533941456608066112835021655393794181555382083293539435253114215881267505940656369440895060785342756786575651757884846707127010320588622488370941102122427549068093994593550716135233302385180800953766499716201948284566179637185618410383487669813928177741858851613708327512814455941608003836043012162277936943240704982575395513505575511320041106665026662765105343763851537213011563587548011429773060361416953970027274081920251281597428229563823770968377379619625107814106571463337559162408024823127364790149837826364073347064552543566721108611148056874910130108039657010722377627178976403804068472817109606508114408155963580259243508552672699912695256964681406238678221784410230612110131170397726294738727424378235340508876215245172516211632055403083544983117829682169145290043608055476693712450775035244232284108053686397416848021550516343807360694757716777276955408985770964849686879256934794417448889973140136775491469508576097674490271410790489381068790987228007006879499156123250605742547509456554266425755769918931597210611253415215910363766746076082399242322121029057830090068614188750153949108699692862414670093806269539240160223206374349881353629042417376710983928803733947932190521599967629160408837831083403749529996437525998136601087884991988832797616789218060731993907158958812133868309779487309153772672729212952943299032827912501707169060676352439259670073373918960285143129108723658279641723799119545836415429303272272937707660420593330497088289979725272307974818771009846494754560052614066131891430034513160226334085567605705327262200123134281838016335680221016357026891023706487796547654909194847728342853025382421792421886127947384861022873522523236996864357906921759212169090935639972253204757399499617494056201276969712499489971463993070143409790518980282430981885224551179530967889579496161739318133311997016674687801181166401738199204460474980392560424454656473164928878112747682301427724652306583052215002253009913206485209504187981997384890914719180397622293052697534126447408127275696659053799230313265800917886171079660538782604022206125246500694108772857515576067569444714577898300681120189339919502896981666144298337080352352428722992884976567349407269999783698923610432272857274689989080465611982211931271287478015572280638971034364786038104003490262578755511891774406928011500973354876473670539479967922947344374743107871417642953525824229631891212498926248954970847685848596556724741058666099196139744596529268710818550035866467928378616693668456272395900704295760493478277011943798885371941886091582101414359945360196651900858272101336035489425657089193870265626369423484317399842663454465969173081307694565264331294509730063845210434035743730793192819459758042921363250606286148725526485943511631652983756994852991269403939229539311400639172685725331108480374797196753324382165601880979602871816287742638984001459166568539699016156676338642527874667983845619486348051467913421637614605876074662815450717819448013055544134243839103876144766196800715141235137132965957403348653504561013186298943933322420944922994078014526013025510862859980758330048894086979312356440940138814753851056766649995655374512940469347231170909915912693875644315500110562656037829493450863948301898653982521644923421656962487237035562803462357301446587101869756788607072339480257719896483301761183293227197633818482112420899194292997510128625838808708559075259483019537963592439047149882238504824044732800123313587693021629993921761123859485192480605670801132679415436724449853280752268595320514528486756742019151151208497978606218285826501304254468609416616492362892448376590055225262978381572877105939509047884842644616250047028440875445980356767573893227467202746620008670472736086842474327109464596897699988798237454492412815994071195453290096282447043160506104662542797845716769271174304893500045484043051881706468772143141683986134437154663335530960441631328061443503125620429138999821210692170246291245977618507353374607901990776859546018079854734138702491155946697139731731209997308109367712811158325464660239076894762780202204949168166897754282626063882177098532355500083467439334556879601785607888488360774561074469961826012905424586912061276140771687291470893446960267505505963412678331171212731566462270016254700450841111217338549170460233799739172265167808885854977299924362571070348835351775923558529914641856046186237910584919407850895963281158760345874101679678261150845032795822008477645197634699103988066699662319144750848304060160284880446446453004031884588584137127957101978190982970025876052343393624594963234396366746083571602223573386383082106972468977261182311795849257919463914040186378636636286783751959140493981946572725800551677217169229066941980391893371465407446562905253943867649149212146993797028888423481283296634427075441130898735463937560641409984489332134987724463865937900766780970610242838487365682211080332433230330203978908491206110773216291930800300235644944833589757144870926787125966445394272837209290625899253955379013011424213165813915011156099555555954444078148011841232612150702535074906758448396763179836967731703509638925972334132052206825660335442913639445539790914351067869468265196383842419966504277637240175513448851193866941984583105842916445647307722268488399752915664908659014395482381724845186020841040856898549322487684696281617162502758762804291098756272398214577185873445540258568850387886743774518612135946748365553943223473730062346140006224411163665421143469909014421776878059789856016358846491065722985269612953145599564253458038932575720476707082532189478820371475221025535128819632595141455656520516300761908953684669167824561520171563465422910935755892520356476358215428106969246421116483264679982299304120059957977408853747264145023260054475950035913524941790560387896869524190086165617801448904769503929168417408216857546069406135726440599749719127840779570168818543366995317168975360730632059924012344034399163309077026325507337080793371218630725156579989545803714146811492075570878156274222531156005175210693406930879906436880036108388830286899995425632239064815301036343732729115800597274274041867953079087700400603204509656721877785959842080141904422211532488841144068028952704376813168218728338190374967711095784514930067981871977182909558460126124432854121563608084491395770238772324409074636304240813617494829135141765977511670349510511654312214096855382706602515583624689513399256564639690518526797187760497855540496034352064206842955095045217572251022429795452655618217171262934781802953882685144988076569877655391275091053990469880995931094487421286319706959927402052404037266032921825678754713884629021379993818966034346349304928396784194890081467962236184775611131806549498355783551590335868147522276626209787567455431587598985984705217872906587140942651915455020013687838599017858950595338947944749925257558773049315268754509845313902513873881122140647082023769853228247834512556152598948522178706216341642503350537067916129342160057508567377631085315497964243922061837124372864127182115502261961207240937691538983192242957373448883850581740509711614017840416623786628357551810577149709708966175312333539959049270084580102205682825458433149770297837057054774806172022078647042430383168847034899133240620989895199766698001292273307667139061197298163840890000675921512917485591557315048921264173471949698580961179296821558193422502942551550335590702618667252982731117024636177439766507321198425774556132106524946419173220860751553400732288643122621148473059245044507022114977685483030829606353834862982700070184239015373974012849069915038676194628701566476252708122010976696795308894639067642353241406688558336626770981610965461294963833572679592592420436471689810899159766278656704364050384617187654685411191620100296581345332369118803693611160127925390483907920753532915387414718008733642983581820628401399731274804798397358000077037495751879302778834328325289482296980832647189884564322809303653367195137231978888606996597517876653628956966032932645291948502555166195824376149773767996588903743020349880190102442430788548433247249178551842727672511239424067080605345703797081870649240581378819744615742985393610651605386378809265354265063714407630425973127458279551143214971624866970404883368737418518631194586981361801854041520882192843576976962455516161023496309376755808495653570463398611940983864817980823388408195484657500075562320777906434430867984412650212918746300087080994583034836599043699036622418055688674297997474532564748481855163025664866022878582301355225271518659501881542760129977023634098101817757642827573223262069129291779589558057557763635112854494143162473772317746597646995017277951161868993523355936688561322820560587753456360416116418419126648366415910610982480018568822095392847173335808096585827185449992038837423638127019955383401211668347253908142273179929013261761191717023392499006641515029398916751715974076913062496130227519118393115207378890973792611410879313125205583132354546022325442599768031356532784393250238691372433153494361376921429650322224581114555019075253786690261517735161688344007232795860509363224207689520020357099409405618287883754151068828432403447041053564555274026432519340432820777692997519234323971737253137474382308526646311690656915999795142966218081537501453862266328969128913703118616680214699909808433097051802181077053380993447339337838117906054795375363951252091401869983708150036253984532609571887851539496797476945970953580062104767870904653892443538276046248956510547043144507675967366615197843109887222256838910457779361656271403367038222480357198382233017523767895898478721595565699500088521290077660626038091960867040993388706957850799322552436103087479509765170594225756377307526958326701930961135271913848933498585080784762625599129341231203972491768173302584337885129690649249653138204016727765250717934848663869975402523960390855056317081666937335865284299201405802631811002691734463013155205714961482277118248948455897207492304985331092442849884311180266709406173832387337985864489916988956105751921280680662607585018482700728056944021297634953487367903741539122443407562149472092741290776299056789586986580423738044650949755604023432932254802826725845491547010491436142870757993733944457682082974114633364558545369698648980910286720882799852345267844574221715192526412232865489109543372193082072394905857522664089489687002050325875110701971549780023247310635242283177794922688900133989591312489906782945246819593767220303385559143246579750192490566369994933330836345003901627403134030830527000842693764101501402430009326055279828885481085903330698098721211232706671189578580650713471576146973008969255895537073242693861060290926310065013384095308792403361792774698327344614064934692765479442015806465991990996486222440997728673489634689108002697369706954573631821816060739650878793177148909596518159431001594336653399729545754187186042000862326622100237463846218547623578889164916968560536457127699227806542721113801828491310336558151839152551323251009942849047137483061791235526225818593848991933460827320057269546398719758630890131405404070637425971823931536116879135627962964021334171052812438473589141782736417706528855634972177419459436158264592107852953954293644306639347509370505163923664449448826898137071249851180876052851902021592907667960851846618488125820130395212015450470992605827563841739556197505124689095201710866841674164700700537563970174421530898744503169098586185361391614882106386406996187077417635240877154066718874721679725773566314401528105365556961926768201733862805501591298768179246493031327070560387252034487168497873861432225993074854135995588962921976731411852870210623772498065328831438665300825082079736081602277218983197116489519291608596637205097991632363987075736105411123599433168186488962399443444245952717845237241725100695720625604428466122190436874159388046398700881423199137453949516863957794067512700596529263922941704993144916605636630912588013461650714330703426424028019653676815374943628103469180825738167785368514306420449316499726572388691667277340668954520879067955292947058548612327879735346112920422238271164408433370791686714277442763472719270412696850475940121873401391374998154786462931646025612036912725812804003001855641211587615148951261448466889286398593578542947330330959409822712377135130852285091386528426326300692612485608562229021806371264734437019234162977978922432200463506719725509697789610291173053812797328198226233284324878210021103027403939887317477800278254861596542572786831051352247827263032072431070053480038886037203169120090471945335790168006171671598675050884878716121758739519746860915931447847073671873092336344343161505793965162526306329258370148359838221319462244343889852580654306124358752388467626380859663232827816276550686930506324631259356047297051575967283863825382044263064629710014076715040788619219847261244934792357350872441668739981836316548089062320500069287555082171536445420559913046349506779137421964638382198990778189414699578117598526161288327297115411008844436621738886457143205147849966178610201273003336879970853818377268024258084128381298667106347072451725252608596306777106878688571516074438200054471653432539481594648623182178139471819764142117344032029893444603186711659637294607283715176901268550756880423202148688525525609593222642290673030746613794721150254001129993999750241709912628343589216349191716236010216426666164631608631936421740411362110885044030343987877487679513016349105757604357919386457756528881462084073258311487886260087476439233600160129191033629947726139440451290429500158465714698380666527616890047442846048339576414646524505605118879684404355377392337755876567102351906215017508641401126960429930093399029213387926206170990547910733919694759977928644124132315978481375713405686550642743735064828549783126354732375024252058448125690993180594785192288849122861822664637050838513672726110455204531417782945034251999013508319094351064768108691824954661484524166183491837911397711510333001546021960052926667443206901097581192176146971535623091494965390770450904895258970352185374028293525433012077075039538776852060253455993566380699999480558007481530920512704835339635749746763797334933794240552956841414572820689649207642018494916749213699391427811479051046851678062344976935648225922352935546925761406479830376805410879809615102849311303981680509148088508942958190956697528725500644048899792421316466656686338399060402426936176622030451273564851330699755986979026511553129811501832060707496318139641878252009130775773922674264603223938344284982464610805528413854782321573533804796153533324790484207293508106541213055445338791748604600198998380629652067131942701301783806192009866046098431137648799455983706764958848985325688868830029629694811326955266885966548303874885176757600762981314233572761179757721179802387980294843258899661792062538889288743142713711005902220607104714465604240630296738149702244515395500666144646911888494636966607976583792679669442888948883011931156897755026778246065670517089663233709294197076847314222207098089857614431638149032689181368533306174714547316754384699129777735309414066364439561958564945705742401476260769435945881306000567364681643238551526444274205064741508079350411612286744131502363501753037292983085233293717716589248667421172272278897347578033691968119838877218623681424038995850095686218782836145012443523395671486553648191984059542330214921650307060831588035255497534861017525729274942437204899564014125555784283815934713341034157523798467508244309831321784731981165894614378328765791893124975827228190979508442094557226666177870423954538516112199353927524125568789214818054655927601626479794029524398313577399699731014850337949532602486620045848516286003919767911351162930133528387991797824052656954239857481235086579903914379355868895818836437655794589965583316678925149751923601130301949758779273182010451763132903672523586858148036595018084866125799468467423901166872920095962893635660845728974279746472073607772053174129580987849132616229675070782104707310747202506296719858153774713885232028277698903106643986349537473075641718151880541705312383556339400574858107249058701077369135078136235974391235505432007833474401199533030099311809872365909642837728692570038136673967459979620930470146489802982023873445052097754561663880916142244832988538260635641929986375633349359105114268208543333036544793665287829254911488769927969401442240325414691250462433778614682326273956404817523849025076837211909736329622226399677533945800208050076969068071263457552401920919455807490151667058726553624719652727195181067074339659466755867632947563701871715631029294434289018624237156293016796467488715285539097182717737615909700265118401497095450357704427888606171052853177429842683494863681170348133498471317178578896517749438356470481893649393540599984776126617664739076636652554370328136977078902626356114594550162644364384785589082903931612219159744713110872695434638514639012212489343639951739447706482243943402917273583138327888808444950543419586514348425680128772305766904435283746473212645817704389593966342811678805346371861596336309132505877954124244457207463926873410393237949888823214879474373889924525292825408487982735982487136686806997768956227672528687847044845679490659409914296834480674184675677345976625815287608389999717897417818550647929520539389879253660241724191305675099895871970524593111841875023101917667017875071642239376183258890071107979575029942418211966290855776318424967270960966120336691614103852131663336924672203033957840835996483033691436278725466708824250755741349935194440234819109463236076253685889759056892263485376853946374091601464323200743429174129426841233177014140370125165233929592274718646887326618036468336288854718650506662307310092140117417050817417993275089945535562984031793717169435891984244413902757701129685109969765729973346146115264792245145836240245658927372401309141296029636716604136251993842817698033115300466692304116384682277206742147756090798962661945212313424183735152393708367060688175222549831927648647002450813134499408579703478227457172693055452683737839278161999768929182623093543172160860239797113124014931841779593045387498124324119842557219521293146073426029842289470295224278413754628184598479733006261848507235266321499385920464579979792352591377169151917476549185915123904415217359202708655558800937411633396107674384175346923165247443680330231080253676990459278931875337082536229845341181678564794514145269516249361347409718155366300524489194154134227075111773286509705852371406939411873665166056525926306649108653427294201698527843352398479933357146088610999633251353821349459315252356232492556456370891921619810089916096715479907958987586833770028508272356964632612248554262813666176165248739876797522153168603717001895224456851160210894251643288064036329922877737548362351676412561654046667819025149750197242994211678843482007890180141061230842721245202126050334576807990473263150288621199605273307969967789207698791242612330646517655646753932800887251059315566785082953062477348476611387530086268156331780890875241808386431252348420192640439476166600555419496248722454897489859585844317224065547058619125289482853569873740579856804462338785896453689781174386702448278334169062442929920761181604221194504392931669691627736861765833296946173154894975482836630756238900075737205063009205233715130984572186552342468600164849264727564404825677261555802613813278372565535859237461298111808920075698660592831861110417233410066091718786219617061120779184999866506204471553956926306835331292998395729347539603641147671998739110518114529038343835738512630654544296252057912299037312494289833121696268931033927297865216576020233711616088857544720465620119665125401408634669501112937514061976015633408870799590858831909496035798606166066889380615204274545107008759589757248315515475053131528574803891299137919765172254194498804672433557529255041769372892247304489111198817688227005867396646046975760184749630259728506894997909388429036285786944638806008897627277808466329965785006207027015076898297189634132153837071377150485935317619984818057656859092620472746324378463168888790782365195257766357680853969112477158023359837546214495888428477980645435628140830886688639761143482493357821715603795047673631072546303048067383647673556001474682062510961120574270607515346175221484031612482097027587467014870371603462671400600986310588135540238033028240195221713952147802329151853636605767797226579242497881364212508177449169022285884679854374579835521043488364823689010179987860711922767408364823992258287453758876248878175779878563584969449302556456280689721882567615964988920073628849133270468224803835391442791498340618847115718686587952196005902490795943990910274755134446635890055453205987888211010655278907576928216280055778409301918052455341495669212908062637835400335112029180381750120650945866522275653552496788008898867735290644872779314536649865738897758609745001909593758367241590443432253298206750021567088237781357916243623167619511129250957788439941096246669161897924081705494018092478501674706140048822700343338750501276957846136143767169433684022172594704985345314197994830175571299590595779451372703327781430138923672153070156901405687012236556316758494594286441909344498817681006215431748764912780466782714278873661314210138256125908282286270571304406006943538936607946562499197826209363071300439716390567882990821040702095608395718716626469039053270781055373909370342557487674457747395340857141258330244907684820091539730315958488434833154956559535241595738183600266359706392544124109942480208607930484750327058994422101098512191842701381744602505854586173990739252513970037484819893215213565869406864461139173355417936329215893133438547208997370463763012615991869850908551172194866975439546928294655844441668137779405639707431321008276406136751082285819705016069727510648897766908504005200656236864661497478565007775755349118146087508893997446957195879556878494623638689238562969706094603446104894227445687126823153814380741538426216143425249994099695824657787052673604875855942075788124046913078823178835730634343852684286082187384197791046514048880973190081285102586315960478847779123425976441201643528702259412445595014274641227121623893273233745882384062390413341719555924684292228468803989207072716671725006178776215871235036758842213331240194104055536447044055064737656793351008135422642898787979467224478468611672873977223651256294377324567906321808831188885974621971788658191631424899272290929681942064398219026807612894300300642825389043368703749352239699229800492372530996425501992365823185227482090620404356148361137513012429007995425673790807973449096992074263437316566986836856604035266046933588750417455119819088158095965726870388369573456560401884987439219152980681068572664380161126146860410352858876766102480160523635892623532022627842018703341609726753349263120041965578085228612575126774612182884928251430036378144118433080793464261672040332615537889089532914970179887950993411222128728195878917941634172602932457582526389396379072935438910832192041613255527142860564546102119884826458228791722679041618525601192416961996234444889981167574737777873982703325501278362769740650609695746821103757292984319935850998168516631039952928097545221145316128704968864693244724973132093210035509299898597071448169407105869038608500542328286762962175788592057301350741342320326671801737633598858211442971443996413262610843472063951341186050800345695548061424298877615556407966916830187085675559016484112473226840172940161337760155011066421468934746515253576497692041433840970426109474590512753053022022925211011958626533068861859947126583164344259276535738744616006699335775737359375449351927701495198733078037251246409343816677480704851153642362930740347151308788990942264474263162894759111504569578279531223650543306536164634275081155631422968389469046812277579567170756148551979617721812977854937497653206864612622243503972461519564399570708181153441822078702350618865683410650939208141534650763828205709161207109918546714036620386214610369509351347743900181299724290340552362050005036866863667114796281899882455043043370934103378391057473249117496138832693280284285963768205284515964874310124838910154336087789102434918142284843619951845841004446847316250907188536091471813924688925856391476524295044237983171259626381598901589277397748173373955581989899278446513029831679316057007777095630063464220472372149501561492175146596446562331899811714008864320459114937217566933795853976714981861271378369097108992207369980304130115156026095692045136437107136837353284611554952446026260735750720712967156502523392208416390776005301402328219388716648093170092703342019046997741553161219652156423679563729527810421924133357421040540429752654021980466095919642681782650922925685017297332514855716515982520828334818751604705144001872734893287898380717247857760486184233572470402505185055059666307092072755020142146059683483676718141120079987989231907142409655444013783337307532177586253685758194961418910746263109729736348144319697271455059807905301948925461837815175042115827976592908198966763129224772869240630912131746723860234226972428378839352635296179283415027456623391905789745519490863019125847605666518471388474187707877611883565289841935221002029912285581002718261145453464315023661198410991620946809307552944574797737300612317697408945966241770761236887356010120350820090094107443531455593276744662284852995337566109959614968886245905054903164158244886186867988295896553084426867881201585154175729137755124979410127752498238676009048909515455999389148166234905695544789765503922958266987591490605568711902844541214107039739202650215108954066455769283472852696096323718073277229617476395819259934007553717527281329433516540746178987324387506719485976095649118655147842439352651758213471668118352176748882179173890485264891769709491148420682969520574605104406146583227168603260833056816264554323981185963458837479489022315802211796814809359580959436037504492847853490256838038069102734227038373956735109196852165203365185939818666801469232737576947426543679393319933012440745889791586860436241473249696086670032653886059832310740442322080362648316997507878664014752338215080855747850891957934789932878097204215243965371610522245859980787546353022598416139015175099799766503064853045936396203761031366461968456456271479189023146754096784226208692519274973380313621482362478224882769190107102602735431654773993270502466930021072996270855180298374587382886383387340127147261780000470053543916364749286759744055880069303304391937487192893594697379491017243250307998300594846239634121747281425198213120811246635100825378298223618320341860637711354756719867193649137379976328469308985652975723358607624147231570320161359356242833669121232131909068464138662916358232014894084434030166434276654317417321210838509895319993528281622683799605716818639001341981772674960241897500766333125379202870019079910599071391638471196500090211223311029973096748333477603090013356551546059105755530507312455981951734967256641298742625162914110484440491741127563977009429590252290767025238046345339080164207350042238063889322419889880705518278540088947010505695692384197633546749203116188161910631884275294597473112691643160797970328893326280560751949611599933023958264130348912819588902211081456892338161908613880590290365754651557842624067133321945993977733644208050314647349335844028742645806283455659490895010232146341322117926279914923365501465973974169278389813183095331890996564087103745446210710743514810384367989424477299722387623469752919667030959988565672523891877461341978599869233921172287482885283807251383555888478908480667300566580392790847945788023781896473900380873333295772392804450302648154212561270508872651304717429530754088767921067270246956145454172991467569943837506207405490494115918848365400461827561957857430343622500169605286589188173594113300227986305269357935809846155086121655340254365920900734547637432126194391971478910561282508102324562425241055044087055243837044181191478010330398455426387087203199421263332246676452184084556025030428326138002170641604233149676775401848321947495704358373801538862333446436936768000053754797842831617093954001452354880298348320816972626746430119074694372417934939785336731755374693736650286374591744385872092960141034230867535561142097039562780057098826280813015723876136239798770581612964081939042178910250515241665397252319880808516030705291007572845547412075537799996507104737286564337291986627126703190788523455524990850464746200232921825496900247659086353160590592099734701941570738970934649324881795150552751489731451797077793937660051953588379435623810412748326595854059145874092308503486978813262917796985155993623059973570204404094461709584751896296558009694153254725437626411542242476341214133957247872338899832510175400832289146243161980652360659098345820805765127495009715066947618167356381559566670076872585369707019248280930262521946412283804840137713518100648376453217333825083162606216267147398469626288978827248519736564455130715812244597257356423194105523180036740240071927270796454742125037707925863581441740522386481352611765835034244209708342064434397217232013913028380028025819245309634213835857858009937338177495397741600593785550260970767938556704288745358616931919606718803338416678591308216753152242207510066342823397644756868766650440342218677833583025220754092481914322520156228450560235476728830350766344226727523821602936650118256564837936554907275630652807762302222492609235438780073287022322368058790834514945222654728125292706907596449342214495068907101237431216116868576911714510309898593705700362796405837546430314822048880857458983268081943471359620964211979918320385297139681428257157106527647067183990177841768973047631341321172540803991474982035148762535333642181043774265950216128302162782337717807265628244147079477121105417686810905915273339647298100177882586100395541855861994774522106895520961544678166263668094311191884797758861313604417172373569706465063836557694258711647080723134804882913005058109311441875954685405178944889169425657492557165404538822936509159484674832854650192148715981423777083881005446327780353927387789004695400116185298840165840413809575261378246022884472328613030606107386391381692538488159282767123008739493735438203178728192136935338325173209732971881309482245519592143851780619397074584926360445637963009659551457820647467176360760640350010673482244161434315446118457196972402859525572016336707607354999938723919232432333840663531201364455817884229332915244022098348774139634613765559444089512403749467844477280315640177231453539007573917615615502424006062080669221125944884782213738926044916757560537482682039358414752311559488836105655068317630868020900799109253995349554800872770017227100268670646014271241971424985975696900934918480135424655992029470748924854114959786990920581656194440648739251424663246906875834953500278888468278890042546120235921199799614312786048953708576851850890272760762151701771443254232705386396894652035584746885408439900078180678115853875350405230019883390229173432104586545611536667004113292703757086892022867528343898401620309445619833203900114523766956817050368162710726696847321793563883457851966666270284722110891495315860961256557877907991043712037691809439003985636336006100320136340458388885596904798416884797716583002138692025943159211382337241692046347935499597396114922839056974215834220504120054988497043539419774720629214314740327020072334210894913023263715121502133524495900493457088414715477412779561280767822812722771082456527676365538068176413169678356421536545641214074370503668685900150376297093614285541733311172682747881638352147816220258742799451272366851184702888796400134684341413902244115244162642728890517119444271579878941622545776522288578490520006742757301434529255724206988280180371165737051490247021334621143555369253674189854570357349220296281663866415369405444817676457217741284601717779362003731144954857436425305872956987440143092345755839803220415238381572789444214932760051688139677626748124999615611369560934299429348320980027784179692007839833451012609953077005351429603961736428669299377146428607670332144810591781290663577243027176199628577305682288890699876188325542293533255597040210906022470118678999766412287294239705647238207888750744221426160926698538635256349880058268105689001091499314213791627870920914804943059132177269429342325204174222393542834812873898520709787626695591396724025966548962106961478966401494539295972951722322303380338563104666362202551242938555066205174742448768301568236469580962869729049562868694686168466764889468243526485927770238812584122971453451947229754525309079873029088795762927178435890780514230610950094507629061903128355006096019662524558030759986863631785053966617758222550579144604066839005866957863934313514016112763934572772734934965067809574075274238621849521079776326754630398106573417979940095245632599306097200838326129275976942703417770426125835064536451335004972698360091435163612433544399963443121166201563438036699981961933353607033114644919354042314400059391979994059742082293377992633449724279041266412533488357161218014472598741503165688704423399959050923108093249671893513936981921604886573393066336403802632277665571535961827386760871103626823315793985309483056276115737012065444084244031633201572483159996655520582381890447467079569853489180361415691201784622583970411233777274006120526211341636460477224898162816697447172303909374584138286904745306227407301366180898141164222321233359304935461456908030998030801065205827673153583401018604119784716642000859576106877984082778413983345309767747599432321907478597439360763654846849315881886389749217136751405964840945306829944287512373792232321755276626855726837155677381921150212347708732358859759875259576610527926341888990526751866684182410796707054746908926249137208246361667006951316881056258124821678364125235806644750857825516261070003763498909667766950506741938685699837178759454486174901038349926788132634607409097503089993729152958076626111257661318734864725146052920860236080433759720840934038642817867202230305298905562995751430880515214252270019477983562810942447257201996517314931852200570439913220582296901334586200902550992401326883221115047836792978458872161669366199633482829662008067344140498188259247975936149933945928290386067293441603763823084687893113871782295530810890852075932222171104413524930604207922591194783232840882311288115996505624718114704522516310837386466075037648815443403633830890226143569832650729002700360229553648565045179133078543040618908048891203170527757026832782235559151801523294381020839511174455122203951994839765146238077406312820795867021417181934954622673967690905323138497151207007002036478210527977513748696161419453628789030573735780115277184572139660411296654833504410043816292324461375294218049106425654981372848509902108351820000873708982518428703225353481019385647554133414256761588568533014890301389847714826392747575899428909718472920635062993099631844074281375743164145921028554813685212621586968991275828554032221394091950470637545145346846584524569480484268372466787261845829574004909771207685320091193709112880458154544715938639492977842175910897558698469879763343522189564396066963734947843534159477914153307291052142750503519750706914138035793957301100487791261073309790993921066308162038183987080477071961145058481018955753549074161859875619740141150147886031699411127474625840332700079003470274839007721884811322250137256471550110112983414497575920689613106280409922462274649701291013950953920582502657120967645658372502526019567634995075914638415498817756681699810720849733463315228240979163421080390727321541741238669569086609419591527882238684249140991802938288384438081990749120866522195755267195414691195049645764851150419233141574973537220084048892372106392468265960864835030626049251609036089169422336113893805068637950033344937061047842131879002495420291842896186682918450628175890629593607037962943175241581373141568119639521866888094704611846791774332597127366400851574613022465937802413499748269810615234803532433497483892553812238157959741741660798057020005091368935801155482725821426629981343032095261169193153908143929938659681766179926032174641169181045521978624216490373085328667326924234462777914254006298148228604998194590888245512665335050537174515105114908962387269583388056602143016002582942011137663358107423586554669586350044365530521862413817001269355062670547981832299056038849538168237627044920869321259306158341244451578414166009785165219936120214448972451766937022914362240922238224665697562197819393852779219621588506687460468819557798828831665311800799942834772238600436599235395485593495889052852287679720015531417829687101799839736623748838698805248248982624325794263103802726862320270674560517730066049339379877056852874128005504158644546906388679866608915647468533894255795781285591779032956413227692168876055188821964977972614725605762102004442677153838643971670677056697071436699699968933479441162246972220968259391844634529840664024514021454797610893232728389447654756291171617747467556262514412840512559215309786996908184910109867054828284371770168287147469150718773635748745167056642348832057567145971801345435926437263509946596138940477990919810140489198894029007631339593296807955802515081528654675053403797222190147811273186991290687924366322939494266087715017822179066266602497140397856605268076581979545243396949179435583028314593052148248335808696368123366418387049796671046331674425588696568410529276179594756802731037368468519899370963070153236914874245203951453854659442149079012438907738903810875916023785540397039262296682451075489886163466043650648099252133876489414447820279194708345530083893309225473602983735578204095989625324990194223960784967891995625157424403522762015954253144691070354363392625310774161224154726833934416316102034223370115081935414014097007936627478198242880622575600379782730958765857081863511954003364250003735551958584627955031202447740699699057871942293869412205135435047762460690327012997418240833466520640339637303716080011071311413201608429989122298494989971234228646796954113327240670726812790762914175497601087320759175182107390343151550243798757782629122459145088126978691086452175150666014869494627455125363363212920010572748579409520764435400109619695387683469255562715095201937327721455541265994048615061326457719003666879643457179968964747217442959859434866655765375195199243274724246678637281849967293481966455989825915856385677379125959245217212358889165065628954936896937539378940049985258192002186849369545263644995085531465183753871100068299149162556956108243368228025073640133361743881441232533059969522521960095377393014634746301193909212764249932142327355123935539459195422863230389552487738057869203241808713806791806887291529831368980946678009930203857611422609665180711809971744450091726939914587753070627409743233337442768714126220584530789476153387923497430498200243013427038311876888326806097311320794593200858787633344080847175814934786217147712938498542474811344175785984705905009572980923142435110495146797455721849920845679318648795297353765971541453197196677356387439792303144443659596192060469357858108297899686510044932507145340129086238230844417666698569137872352443462269744177764923132203430308030380625400024557480040660347453195405249264122923553356668299105296619954465755879917802346799270527105510242131045823100520340194119150350523124363375038149755134552009847936075983918571733290346008796709963108351888178337550730598357778942802500818605552580428170269081372175309494782354118213011222984375558474043864167759474361633598383279707896860661315066604587998942117327556111816211164949499049080725670948876741245049623576453608050523443425737571538535841712655420413567608229472564344513089828413677624858209002307931576597167248454780444448345323552836200250960570779583807364040244120057146807790713059414206542672422534776297841297269811782159540218075640137199935354181757131410418813902625080409781255299777180770355466183605933038551328060712584067228550419150136576756216451593481227829839707364216332058121511758324197800250566493569218362912093602982881001696651427878093461646234108978702165100798741016767305912591923729421915753606150319094233562731030453621387154340178239631171721882925974471228871895774986095025113966372740179573776841787971686160204370960165509106489801781297180252752100879680149114648576843369921319184605018993147674511044414703387074689777721958241634689994801483249984798470550525399298979231758262728717058208160624376749109486458852918077537910452044248789012521275856617388530088637608846777229244443173339741919477164924497457242267733057595343066165006978541905827134579883602346320291259742498926393963280661195511870036266092563692439522790626283478763269247775066340668305868023651327686574919350706264402037451701634084296760380146485226224765538601088007255122108888445300362273064961583890102017199104222846339546748464731441029392876357226777580478171029435355575202687251580913704377940070575563201815377839005830541297065297514266368919220038195254852090498190858139620801559979144194231667860846456163741526864406941569839478912668599516365234319581925798897011679246209363550798382218464094087469973535365317541231611198112042169877340140245872841739590922197948673150728036320467292035337644111189172237863580874456216686105915414160387749736235548338062648556927491941524665795274957239039068739129472143519182072128514994836629765713731372152648114215739860010517456605120061587313830567463613363232074254239244362328384617906401774261904166340129154622616809434599318857070605859520864997969639383134936061594774892371354467915125504224897574083007205721261691033064814508257181613745366431923714455663754029501238088437342404956263716942046705762214738723207609295981224637375402000517982667482540547375398104356870117825690175837304706325291913231273463932422526523872456815894577573760876779325119649486277692762205095901302766474636409210883659014062642176044896061903314308704009191329704918455527656533445252130748311000588215916853377090483079414306647362649254536381235876874482932057246168250109240041846832637128996818338035056809797781161356151934616493023319545153503957614595490226181503170340911077308300934943531530775749611078449443515900454699997075823992756078759663922444499298725615560840545106273475412023066861689352103487027930475956420001206417556158813978345507222716866062980759708548541651084683639415618290954026672608949496277502639028496365171639564271469102741333010258311422324761569304829540929595723706335088788051302964210608820050475404566474739825288363837292582764951790711769471047428525529637381391755526207289743610352134932505096665790053016692900512569677767448961612062231242343968676627342681185744386741228547813138769549847631438251591806458543951991512975251083267985997138611008233654204168645731968025627360937261834278670700644479160382940527162209548398373658369736471304220790086254860840141970856898087120268867019149622378911441510404126214006362190250567652266526780918166921779208599871671517513464709783942090080569991492819985985169852440206514305886919374783707389044106503622451256287578313781277918661638734218421737697427334304387781814304346107267140600835367125111535829853699703646770913770503788934514026417205222527439753744185210833584831786487768728975420864408510724980099576031400718523558487273722616996679957465182051442638431303787373612984631522964410035524914133055295630295708957500505100318324359675449569557450087998455213870573396509938513505897290434609720705511646863082228911079996364612592477501701144601644560177355645533714957337736868532070077859660948103879771886957904393953901161259203150998123115592939354593365450631751933067402991363440220686072288567963822525393126916321813172145304155988805199511027796803822246809867251157492541729025225857603069594512051853599737273832169988109470518231621505145153398542687141133327541050163183873082331963852065307298485016412220975521339299070754775832223295806757287576597196462453458018348564583279691792686599207380131584429989393494190174855432129626202500487670532367378828202383920864183049142614799376392990481383737359853277157210092960922849753168658600298432457293081415740043487421731393196845352624034012117323386163901866328831221719778541479794040274735158714234539702732747944709963921927042492423479527306806601423475806524022688665544866274124956156720595601912471215465020852843334328760765833253577037054346437509651769509626639534455333556318689028554925244120025720758011331654863188297796922303095447357447242925978354292606457938821104733630912065148337903873856138882260485631825584906526977588625090089183753683196745704126223413526331688956106827219473373349627371443246135538952440019754912634033303313249930515755021889469494977025675619175958807835934419250454329495251248584216759538388602159813158007971530516634388934597002170633852600446348174317574477821334845377118431092304675280290340859444217113900051637405588714983365670339391758262170928504611986588184242827405674030042301267390570791467945013476577404161830521593640748857483669654443243051263015771301826005851889411268777364098678688756845696410660947512219282946893370943067643257706652574589121819957194217483333570273445913128348378207433092251575515187873658431752314163146263026191009572317661959500122860361467800362061800434745383990581256570113504851159707223890347505542558054975229070299435478841173397395474465284359746423722329050903767060153498665445101485594779352296528070783306957958137857480999762093075570990479081648250714335483323529650426103967698607111242651319065728013702517874229814612537872626528790095107655928349560604885863570702181209315850740771032681377401644795843219179677852126304997638297741465451476459361884022237911594354569714878564773684441721184627915124248782247570925792549965176495940963976275510098590327185660215484904369625366286930630778822701706693081661644996288625176832527203707111689940683131036267222093445656831084974496811755344577156897756758107486673694334501151824645313510319132273124414904800309198968829937067251804466596870844912122833027072421564629067894310310196457171621719376991360329172484956961160251097762203839898921093165401456630007560498317948753276598577352716857726917952760920924421317650614944851663877883426934562123959404592828587800979238470423383614275842690079112554849736028337216032328311938096348784502454105002173187240192826993945949663931622582276526501542342301610772271034474086251420896315657025163400279659979535271490367729122423982051221174302599735830314209786395836677408067810507773306049460602754318661744298542594902788129582047501662301651482193302293088109651611444427310068694427000067770685914486725686260741426850518370874276268915063192396489488312967234340538895637246911132726057932119277669287235508763291615623572725588087576381435769832955588860501129041309398623382136691351401273202001023073384108599584142787128862967745411345114043423499307033429887078541375748970390719197595302905101163782714162203000211311306536463013845931920711732785895308390490621186283140038349889166956705879344000551590034578013918074255053799561744350893710306138971462420438056047532999424659805248623157111354377312649899683453177170534118940921937327622326404532363949060515860429273635819923732451093959270493007343626180607477765004692577482884861687357272847377616505722468098475687923714337421945835334905692759448867343396773750524028007817799905513491860209032827238310334714776318528507878069902981656920614329729546412477564812548307482893805851665019378793855110411517921545692342744627246219512502969936814146421852986488375564628425876550953050540225837143853311356391973722594680575348917552528400116557395545965751072150089703558113916870575243927645199279489625907113091379609819827574952911929843912253236079957846325734683738746252231056322471524291562595095782983872404936095781224219806337748438317479523811438119084687630537986884547686249378228725999879091214494050913340394074508445671238238556475373506191506733910660153880991252843985854434155417125691768779843802469498575225969274702128192055468009201423151454661881151200677182918921404374310300374489816271921093265882384718017480381660318198033152948817398098425007684670920854178024417104767567146940899932523981724706542705688619288610317200139761868938328360038608723396686232914672593003445577244541427100371581601283763237562053108411124616626399760206532719141049368840834938051444087479845283833464430085477910471882636779821771646565665238615708639895170996933986150218363038681271015375578490533970002938912766709098539225682714042697427983197664646603459326629450514030871501194838828876045347435632366727319699072053040167098879622174223413555237054921231972680596837456053845406099250075192327097024027580797552667327501679562296067752356341634340297850093489823811789364366476990321578725362257764565482994761324961516607985548991388893604271941921919938677815783130643246379585640964740953157753084403167259351048546402972032388389603745149570335851910775307412188519746504045808275014317284560209790071878956015662031041852050541980754409376251319213942130058524692227600903002034918955012861681712108841879455005451603808666678116181340743179665680817552363176110734848431014469154072205503196855555289767171627115887445333696085027208048639517467370608330738285976297676281035539947883025416046035452964843468395400204384715194507936044080946826320623992933157737604845899966992353467839233436152739762814186480741928077431069518664383806270901225604542823805774517766710003725999814316495803775332435478965226051658431815447103859627428524600084825661915683226056697514784532721777428329564829966015695311731949261971397671540415695804869191757192058226621767200698386948943407768282462450749395666473412893300086355711781478822013506837502725678468959157436376916112311599961924345929866287624230055210250549893430502942051478717307827209148515403393096518807393690360474117299559649302447723350517390677807295849109728444508863984833133225919093255613768692154295402130402928389210751045441152738706188113678787826177012395047128780829986103673299697250092494234751515176971783531298216819189254480565705209693700493270518420718465247779698011868827750044489847548299037907781611764369061911617114819630530633454477293530361432650410654064114953644114264425993700564327916817122550594051291853271475652929198759063920140726099386248627346388966014533581302902208669469528905494565898899742124308751654172701590144110441445634827338245415064901081689363525616377323049049425200252291633264726091216465654788092373744612464816878503374562458671173257692963521372681038007841185289064574419285495061694434994713317502415021706822893834195001969745865400731375292062338540806311206795544364648923086825498256621831178163248953264689730334771858960661910676670042364150747415112338319947138702668285713488816780821608493882770965403942102898705797440351284299853602110340557803100348304835990653076715727122937712111566788344217287445086383837303270480189098974597793073125010842795026686010740845905110673899281751959678094090897222182150243430851172915859211493159501001677220663697228539621873304865505302061048485626640295094993369046731273440129662029962946708199647402321108516666115227257681931501916165167625449344370723997096647884462112908004368299348969717655775674177776258511414798927406775629143471864144351967739657441404922514255647198459111128724056656853218823646647553188389889271242893540435622995968000693284413127021132877471227863316773743831181903109720941843080418610593736903577194775507258895944309695721640669896609789909243420245070407928304125581679136293937787297273544444363121317833113743789906557840794510643640289544039956970180320210444559368969618315684599447594966922029267842547328709413114110046061905814819387770024619797629064350729477353012527606381442704534391061908659130586590607481823624094624581520720817989608513425852792777709058259297600038559265308718511843836583128475803500305514378085511997160144370002329718142820903288289246706095549267517789426318922589570300768426306730790456574831992333484471591308330618062750704939972216166748241132804445181644634443318810407398300960223450924951987733969935142440517874034407067200169893525787072936988585618375031107149579429595036445134661123474442581963058126874972545912365140106794324845782114423943288802226152638168329698826049577735518571444565401851445552955268862604340102080285960494567713257000204750341295993711606481137824778251840694999832663345629171796229627426829849206059680815301965362286192567751799314291835854016434707951627250232189900099645383503444527612251255152098627660877609432920910168127391838498283870459953488094856585494172602327993659058048692368402934091152392870011924975541565737452298376616092088373766753376653718862427363885412357747506351895968272004664937213130132859568989510583034005241225265443602270951981694522607405628543864853775470150198095478413264157751072717798684451422443885042547800217349405103791974876095426881688857182603008318271266856643853334465734683357341207348317749555613000696053662064327338476216006477635968341648964702990165008060945459774732432707843640554865136033837276946429438110978044434065169554582478702872383252053586175562003170787589403553739073257849194865284241098816806143147173819966005833674651672144957319577599585662718426516872540815814828236838756569125638858810809577922720503729959572396593974403940367371599997093937607186544787035332411692644199151994311136717574024820719558982627978057353849560005090044354313957376694499611382550062294769236338668399774823794313319559163593484849288012131639003009978741977928683428688785681195131725222225467141632810266643383730546665587410925160269320222601522220240725157219033108865936275537923402607885571468231540065936604834229400967453481257302985305206037273043480106727062296900756769862880161209653650061946247159604980207650395615626222663447889376882942125028011267101274098301810250681522855964228066426495139807442557901782173766494400080883092333960766818672934467865520254736454110412284272650028621432580914336253128002278602835052143265405919565524358983799731549463734656536139942394378815803805283344022865296742078621386984310421124667657594580061502036599269967114757607463677351376796291559136522358102985165568714629258092111695931238932554439198445340864463143227916147637149905730493819489620737234719608670473425643930873442124662149521763061842472414560839482851129482617334586832745159935402777983061940085113581459286361301638978994728531528466068220505594206557764154065756772030648653435961718364829336347425484010982504560808734312256206609781934208776509417307411554584667427331936579912209196098728511265777795866965543151139494486470017408335034957043926123843521442002681064494319308906212876040179052102510130011704817835057658279843840412683086080867553205764384723113805005470350748258620969004290268561530721427677305511316935356703935421172746225468953768687737729858789412636108519927806647930743235536210362939851253821653859508031083214177186901516365203865579504976409557539937280824228525710578102173092262823293506121919721833346635645409693636818974978730859644088018855305915742856174445925923189966879287916446553832436755679748278480599834302663410290413959131655108757142290948692354927478105674999641022197626880606004599691517643817917954749860211160082407430551611396376192341127861065568903523557228713996376382579107932440943393707077762392893905891835294576999895699022921409392994378829479419686644311207809545252260761594874013036846266777719986024754744834647499575835250809318854449030592391463308657145188415317557492690113947679143712537575752926111068736012576824345254774852331259722095134670202929944464530173757562654464945477582292217267772711533557770810139126471684101733821555867348707689202315599806565711826776366736302551627582813142832610196114070048853551470029738949029437724609222784577544137181401174863409913247662277069414772812831854724882444032298893801806823031777273330884551915126082195360395047472578653358339482118576305273061759094859220158985453434153792384743505279201548213121792187591970600241031919507892747691916860363054327869025773553912467551157813052289256579555060552308772953722525493769258190646680621860824663134769933066004282266812734223292577050067024283074964473856673868222925746157003062426498858895232937425766227976793000115492020457913640387182119438067764681320241278900110746921249305617162591668311374021060111567548321534980192117203001868692198487594593737482705428740348590526294602471790132112519098273977184202553976700036429658328965483623413991019853585243543733185639671704927402247192694056957885163549215344784613263524146378292463766119220704558804158646435609545185324009936374716186090881511082156201070868261392717541738911422695800704325701919564183357479055032278400362796240819035249778623877799731275085483502090940588153192940677309505100542287682309525146679890477555111612762468607677649423416330067108584321623114544921523625201615290035623020150816960117193573123841113061225880638497992622739824760263146376051697659554616517897299460365025117730446293230871884556814985016298383364481080352045617796047676660187371290318494869455390987436343743127120092294668417893494925510448817244973428865279858823415567461763958263514049622945889157626607733692691718917416268660320009057512024722883392656659119852943392444328255265050562870887913004492709217014406212190751678362620506789297096376191224207298901118019104540742094174573767166116244321402856594477530035297603826716589343021609943935906093791528610980872195753557564741414420773935264592686486707038719762419661171089814673425646724415597975830953938036370486121212274110840782804888208659666304299921422785797474064054889862222385825115247676139852219918154856043735964667261342344519232311895499480836498075572045124033445548489224912168691870299662498098904155460661847140090207229056850298792556822359088473449528142105110816250524926332385328438779370753851353411613224275379063098548813491524379693365907469820825145134226062838292042295278489178878186713616127835494412638008989060062445393935411848305142996087004126973790654178741903545483443991496284791471930986746150279251130002219950229010971739935905153819513922548162421970675070935668890328496037539190860885370165788627502506490837482279450185242944097838667750554709237305709635883283273032272513768047147048881283907278893553510511810487940345672327951818185415093181222468142764525355065506380234266116469088836172197171345558312731604280973214464675143657430294542697236535156505526444410851032319597760542864170177720629644464639579149569854517144993208715236431666875091926709505983436378600875502075957117366277444930132657107769536910213517212234968821072777530032628492772092405274835042657252504215658892326289143259712250339920546302073367366495525539486558901096168851610000178885350955080235108345607076194140743802229431189694527018243759288606604474070756407231136655672930376557279365965165811727619077701490080655564749761744687399947565678521355488137619439591484899274927512353380684554952199304858711954610885664892407698023338947523282509204885682869395887078918505160809972936608073398593561661823380608293579882074219341285167330763083429395360876778581751437604914752496682943775301388659033497490860525492598980777301989162209088066169193855904194250390455451561009708930247149091025903009171626979490796063264071907881676344865091722530580607084844168435462696102639663561571286653055548228268837800434594169703166239219747752497352810504441100766493585947178636185604204973487650822395284276563824075178433174530756698414084410447093335023249555503735456027433073988551492416027019105554600784499214486585313107882669568578720564024097211462503778254110507834458242899410287416487089004226997360833774115208897759235417282141258682821873319910942392169565685664784824972194727668842002171675315553015701248609188914362803377968470236979804994982391396547087970131639057288927151237979360974585849873126519655745002500404468058166847743395450380211615285054497798295785475095440146296780058634779794123894161138472669063133578806624238956214318666551372430884247959878519917906577898435021986228835320223801679934160642807240712461351362148012231203753373432760979579130925939867667645621604755250773844338070859376034365137012190281609530662550232565413207065264847607162556980970033377510954294085927067641776724707057679221859926010482285055560669271629562419024117856108505196501367522537443461825484470420655108411518087268337188564598932542557090430726131346978324849873503388432651452409418508596367042194182006012543004549034419028167074879699951867354246630225644884528793128991431683653274977761573567638037881709171250754166801028054489158271240411660578099159167639807753482655056050068972485384826435316265602014254307860731971316866328235596918717752644609511750465623707639402959680667820937044130193599244045647650732732813673909948349420396581743050622692900604107966664643770348876679862736310421422809714441322603676749198995505266695254234503006417861909274630926466209993543840404695040129394246676450201303891123493572277524378174395457073367177756169128846797300783886246016471483629025844599448239203935933414726213410629337093218630962225084446821886879633563844833876848320740736110323196346970285367667054244120462424235689510124069157205135833824165936392726755393734633918841291615206738156073437458249117055158976878647101337862851190085023247319485918859852190421054117090732014731618119582803541752836678932681326222849008100452508030201356200947748259833347888594059957727030810449051350984004071232511959577263974833010326075518557096573764519244212931870965817694407202097695226716452247742270823182000628528821857070745527998807444805542119088655795824303012441833500452587214978261815914886814084555504619165544768089883541012094421697831568947111356505474801259331154849592499358820446455130230233853623567691645781241741978538693711248501257358994594772647895693244199258330181241877058615123997023766915908679865777401440780768966772943959089418451092235647603771112020672604972900446667024464382957289869096157800722700117624580055005235206408953592821435043839492253477346767209935192627744764470305160517898384093046732130235132865034957975158377131461286187356923908446625822028991752757949276650817269339781823121572092515555864419014997731066514658936195780231340523018088197431120809905413428490414866116807912707733011076079954938252930595401278125947075314189607403488291811762677278518441999500450176453598736912433141103318354544778708193874054278660273759749415725746571555437453102052000857327151412980303181060558526876502969385108155795350700412829467222501091615587315248891710232907053009357353142576142117577029238295838097114779721799225848569739350518028165104465924327001023601050650960356525034858461900376798174228355973061858763203221866367534406684322121425666022333661094728355178663906799794145920959971974978993033364730214786957456851419305837026959232776323893979129495488053043764849831606474853463731986499098981580632123052453626018356375191959541824540095845389526292798143950235661432480108037336808284574816905873120440937558052905943418332239626562960702444868541234768198646351495153689571809370186600957908505219768606775127460435036890814708187914681389387991049869021264615210825999370607527929742681925931779356217818880572282572589273459357496805363543569209754647629981952230339306343510947957979566661825982993520190387585833292815838390929570473120491888103746729268106006171825068632824022871256809000470676467870324989215652376485001982587790007722602810298881832794177411731195804428753475680474270799782461983060895392287866684626252804167280873938177247678933088978866595810300532525623149736807630409731803592733649445832717445821106008403681097525691751612381211804472469680860532537755467503324668412635084122267305905596265603846867340250870073589082988658786223604690258012579527441687779725397222087482676196444338238449845041620498622010900886578139739252622844278004479473509901151539902286104035743640042475625194947875986211493716960094768666544045538397401386410308852510639994422821188911605394586483863039192192657211794698929556021980243968866254906657002207614233294005291986581004465965900325078782510242424980888920553961981842574147508880996082115752290051088357392851748477690668287260450060555871780181329257451957689058880187190645133066250558953485374939612580987643011885902945463960111017740633289722463743546936996270901910011588802330200656834773570121674102476318774112803895041015652094665181561130621903393595398510430865873915317011982826618211667228684620344719642853675835431877736097156054367421818646129253453311676133754131658011132530304552788384293331195219526515714582814668555638000748606419708064435465987970042662932558475690230932987246677218939527912258914405184460696929412404501973479327623806820287453221173523306116052132335669854253138899135749508288901373245534412831502554756914740773431584822997562919384575622992002608884696974522074055105679098874654029618243639575746407667267301991949775262924118018601523798998298350957673083764885684235981980410632898255765572519044043975722082867937422999675565065139498920563510645593657844680947847556828803512513332271170316540295736051063610086106019858781590837636482201772367642741650384621785731093113205534226132066555288862832517606553426033170032853295310306300499540381989475227591204560854301227933034352296354145453580766476195613390882003552288958990907240988266741811901801041837997362312212845724531475754657053784392077844294301145585617499811246126391898290520319093172924504792128442511292998363391541961973324956060800026650995172888200530413597800677111374670856344957366498676673289949804872606421851976328113529502716517664665010884732744624286649176555103323166844822399048086978214440261987583325014822314771222468090592419978746018210440416945160977580510962893470652556858709228449352573351801436267766598875445689023604403973964545187013155427375293734069639682729237110517610931303493075324199826082695591109345126893184877798740571616863500560003151840343542827768334532730800524705194463348154645786389207701256647124720006941001168199805685820435045186990732100512271862699876598213411967993798542524273121626106542482038597115205139559404801589365974691462275675290608238857272491033143223957135056668994109401788787449215838985541456636135451291492739368579093807054693194412756055029928414019907973912959555658536514226843154514375210617491455478289873695483669511391460255882502703422605344353409916339468731915248191720094913217183853436438466492345711774168898983118397712812828338257291249719679455867110060422825945064291872208062012058405292814301666266758757888516033420415437880974392611710707703685827074843083703964909174719175957108457577004886056945430756014950637876165294648496133296103321956600647722667068650167982942165361057225739577506701010957690328269805155069697612686057320343757755022234208520755605066380833706266127504599121632447999550177158639453918398316457572585888965670391589146227831470164679850623069737625666293478349649133721149031415328230366486043108817181455402842312048009811015996734210340990379916122773086318607256066735355250549188126224746731642848575365658050288250639326578882335692460752474995121251600254721631123578884338141233540666992311943592381624363844467785420126031489750344629772777756365924559253700761927779544210778491478349572306808154948264545458448996655408661843152398167278304576035696038531826393540861999740482606399691475663298232323447698822150046858036044584485231849521234829932310310432119592970371951772939855759317498985100388203378402454405138442435027351264853954319527692285168951889030888490678405172120917425976496195363923765684473214845779128058091733639136419937617246903645618173544185764986031050502603364831312646416867690238789820533726792443239627925815352625248936919102252108863545541478376652990810668403191243644034697515471247739758235776741846419216167637901381552264477305567472942221663877571793560632699670316950416186816456450506529080866042005956370137191848122719136658055711226697932715174870611985702941029004052013586771669654208025165346815099982162202527434637434193641395597701471793335157748558570265526023394567724994151946779405977843089033107316874307100082794146079128227255029183744095297022958768000082661545820447581024687260248624953833542282885281918625261200670147319719975715980332695302130444890685540254914939338970494692638615247773447676576177596647015321005340258797041321566681910987356983333279941799226938013265895780250618692134786938321917099143883563835488250229851564511417485348601909943701082116480552757148665996154964091396701113356978323308283740245919564633368054243889065513082934417474255131413772673590463656668632727309437909392897249640166144855250278625743401403030939850211043160432390297477307956832025220321988428714473750561062468204024604528415452475902909145851998850207527178388911394850982897475431781023571108273238304260711624387575718203819779257371551341040955961823268196432621562599506267455863713458603273406240618589894654545708861442366878037695790918599876152011591955598829475484007433264980659149602206456675061433032465501807518647380047005038726279837121181494253617102198781043573688649355842888914323427789459081643823515376733007255896723685783124586866709294718594181103794704872711249164744588924632645055913164715493206648238200421290904107242820623036300033097164864860421351560335948261288853601849282738118502869468555732652950612517071977005050019568325751613550464594962401475973151682098165905994817913698288868629642840472746823553935493349192716350578253143195329173235117615143953589579296127093038625660707701264476950452823352703255093086554071275673967500247376223248963783777730526212063856988143182546457574276031525062672820596100944511985846811045578388141168185853989878892759741322527073870887320980615424941866895698790366387935829462157677706728676356480514907516495089619822554971338540284083811323013695937125405381877473650744642163657415827053672140805663609496196726896512527113136849792838784141561922260557507223817755278434936652060599010643722743709183035346149314677445956405952751577803041429615125316894408276502306423629800132445202955801561796838775902764587056984546210977979923848734688463999066352484924162866914134568702338355736352135016231617154385426225987878978032699082164010656163452515336830194082761055006308087686452657988060411413357889633749224183996573231267783779420796968764425403510352576419326625823350342586869651366235985385688563253104304379276631667638010535449495800591298221037098230563969410446492087134637806149217444836737547859517797341031678065352290699907765447189848978943031216997123045566590927274491839221780160593677769962997879789036803119483336228415185529231856794649463915089530534383173222640069319911078316289272766148567643194857874829241500321369780926414004959220711536426495935214809402068450736367917925408505503812228536041559874296600654674131039884331812981862530762378796323191990017108917796897309087177064898336079423584818711488536637432843278823095231102410726629006487322135566143329721348726690298940018017715149397439969700486808869050578333876309036407956884112262110912738929331302535029386789332546392230318554952441261701877820028732055881766182034843117288452205962017408631479262034021844972691494476390834378370379611005185302732797550034464261919194933076645805437546218040227924833368231388508185373299341347139299373144297538190059322836547394986620763978113740136002299124587234367300637041898527423739738060313708872411118192119110165939713942284367358826364032768792942673538690281070292953663607443464846390640701542484263916643035924439653519661174354035615454897590599219058270555539687202871699113336629520233488258593432615909110323057323654115546089792912207792823575777643629154173278261869105518467505337695815732275326114131083735694893155926330453225767039586838526928478120291240912613390475443226634119429455759066830108178402386681828521836000754741423732842622420549551089359584685139059273568599610921176504245688525475419844793323342110427703888308261411115407807511156169239996127460605667690683727539152323914866749111061587812257793092127022351616902978924592913636688422495079669805310742370228162144146581700415288561475121612815197655777833180874666128201237759099072222978927826971081551500009068181108391854840476977213875566236543040397018057163530115507702530935364692275826864462471675548118910448171203773792062752576323575671258450228137588262404676352823998935928151721344073663622200980587967985840364378243882742940510458184909919810642929783709305403514180047064916709983516107951953499815600474632582225575207736442477810359855682826515270410617801587933736090143557075874495172665868743862669078307096466533527281180295295392919515307888451382457322793293165461791963788592512338981833054225208793718141513102004547075590714629585416413518396149494156000741289531656896556943523531685825071224279336600585234667954328169797398678914626721920893245648508864731682253021206738791173202989765842298114098567502050684922800263426352901111817062735578909906993693627987826628256298067074931031581859849151859309886629016263726909809169236066229172037665011713130734142103361502928439573178877302733917849333063039156784668957616523089890152276374970472711255657172967470628383087385786035932933383187187242666538109782444251224784021451985842920163011106253069669042474169117231013399462128108165042047298671651164998574721600836198199841785501868715347679687873571972919228983190864679606750944930149105259563672401966251689340447375525202960102995967040007807172194338988029822870161516642000670570850350424805908751286698202267826547497698955631464460254269900704639345091886885079882121575593019081070058233393870462066047330226227380504424635476595946049868399517912552649321531120736616591044050426161128019679821069750970100957148461800573631717869176710871291821795901866745881387927821121705293539252575427742707004253025155268983944714959737281312946600978073979466637607483648646080417691281525377916310694320972612737222760271974560599215506135435566139753194732495433285656913839982179687536843209596413334229579147785011807185011599380168588427992274364229284066100821283702342301232416109976474877077979569857772527682459127444403229355707796707481673210705101633036711406247350218546011728241716955093397252637910490418144509000462069766748056168135872219307852663323011841056280484000292700713899593304655658303533577800716102080707125849416967331920943000451245688942185433799325824539701448140745393174662828168735559984275280788764052796745115431685009050533615516214341586936474271676375025204140873873906864409361799364910340174569279095879784211977006187569193153778548471845140420153203169041074614997375091073220314035330641750460163745588394141874898435153890775193184066650810558790449545210035616587103059097480668002201123946401626063723466542786514038784259426640437834217293734861483917672772172169262044522717881733975984790141630164124795577137540618083851794941000225400911148680415738874392634044627611038738657046755928302716052741157092005309524851657319680596257250396326483760057795430385924972279402927287484277963701576204102684299312027638597926296869471393064707806150577772885440327948792181788243648548573061147554625811418355423982436052182061345210094336870538527758155445470196504602993778917867557650076933382702344460816126486346984159924123871278871880561735135157314547809840584465597712328175103283502834600944083723599360581847361765648488235950414787688954011134107660089989208218359099220075991825069770027687136227522907842376528945949005176901324912534614609804734083418816700407794537814607503311676483064796320481795121739514461806594779343809109205776332935581682586321826408842518299649014427702043456267916838306771713521423823208299480900335560333354437549840787458989128384881101520983212800773443845039945515320163716714168834513309307658429409911835250723604903639120771528567422779738336345873094168463862375038587185861184184603362804536507892402525332701155073336245027152941640615535334078698361342092047462479078180473113365908997913168779249264199455620373898621189513001394128857562668067070917682555066255619532727610625898195269377732921472119197905381628882762713163828431561973964568768094202894258523964975514853745249678848380387423734049805798855214631585471867403164878711805000574885264262703239461421064747991995700771517849226598025514296364441045649999092935441254199403040537989438442620573020986184637835579987372448522136838643003848313571595078364359476070459552246013475822116494936017023569055776867115603403442248791861089245496058213759583059522588090691712956921233899265366899704136116682831037991473973171150339922178771562040095323130732449312761081948240677195432479101725518135889433064019188543358594341325169320711485503608236908372056238372062709007022636232085696644731314747813041884931477427421010635960850733819218750099452295786423970676906458336994198040116734155834337067552565906541105039514800600710918609241847714464053604668179640877928160912012955821849303148971997143571166907225488177459477290596968491826644906669321779545880388002477616302154050084615364701409761181970190828773117253255897410509817391881852108507246631765495378506809805431318086535039977734982657447850674249789079169280494328618895594450559069688763009670402298733360522451233686288397003252618614903008075209626052752865298301180035105562787334189114031860993729555073613831736680558331714678074250571762430330299723958366875497719913385832443962499369037699962785338024585492388973376768495767339003449099987455746099234319095237061073142193913418107052142743534148312221186974937542890226550546064678465051851049980956787842261213652220468810634574867635613893846833149255028822925882692786459261453343031253282313240024536875895021941975188675277342277509959351566447735588261228946549396442450953533279242091723177323799903461513972297336267027205944908010325685879105277595673155764956217443828009285477685003278617438982124923300892328275000424501420103776415925289011374192687432763703618022573375599049418017069519683954093207978631666322590144601214441127273690926279938112462322727569536031186678987503822302151514320799959321850911740952141465905271945716271645318415605805325733708643113828391809655714890450385808876260874095367958753345092722456250654315736681781545128488388294626824427527664048724019862165996225937143804575871746823583185869155244660274591797102001228618313043656118020208885990024539732580947778688065764443151087140641621678409768051121847070845061174297923673893551993351983132139068077715428118947714933943937206903403628354342294871674557608846695208837784920262643103580102555203667318325686988110542821333530319691875785574045891948452422610562591073276772626880688614731550805702532729497289247719383662406217935240967088880609701699579240783957646270209622335856428100869713685050601820742796979950451889821671170668708779370573783012184508450582544416055167543774880777044548561989116824218051755791193843185780596490275123046729669327266645213405085792839229434302698676089101322023243041022614343197671682880691585831821104601249888061872206670023520607144370643345106614891447788735428286365066408531731920826716376687901064996757311604447038873622473835238038913246197287446530784635510139011200468793119838402757268665793549769201238835398598954686395751214405609374112985445608481970243889615370366222003100795155138733385154396603305588288051393298903756491893722736888176978160615258822945345280448461346648691188144067805046324801369723042333628486842109473922733313907437928338985246586322934232285731640378605629228492747592188470435715482891640197107005122690730952092245551345797854890146689380979819852743149857996141759635084539195488450428617524980496236760245494939464037577296639476851924968719609580132342823382850890339386930784229543285197023192455107458979325240209688765398601195854777099806075608222187054623752322411316767060419960822449822900163296330099499342076833800977796983657421049671874912276079687431704666787056289844360986263204508873912726134311299054725430078189120098606182984001002068456491287064391458360919966943909944768837551136943858652106912018516922993233411751485945610942980308476694581155717383623335116702484944753205784128306700451464476569739169860032932663780539703795423687748494995396300796654576236225353308308866206502461910402293381301524181642292263163966528706790885871785734457685824136763306784471650899158861443524954500203115380786859132698159668617514404355521737510306042413713988546630909897397574504431833026947941558579294650803311137391453887575194514008508115435080475038386900965605335819393706571582607043749694804453937642403045511814022521088921708222184513895189362842353589412434233150803343406305675027078131835500799155606726714647656686462808074157959847703045896911752761150858349618295485813514222834984419893010575285338619194053575356006000023627548775668695235919586490799693906425894308321557387925879400849814778272387315249909872126302636490445705038797044771651551931993353121250782635320693142470517809235103124977795470933099358044285491667735380788305621480693508221209765309662954409137352111101582092616742476431108915455607716978828140491327996792638749662985613191559713146221673534799684170459851779422804394269808753324494286271663136403166142427472293459077017109810929593658306275260328277902051016541361703734280229353686287594592296735863712188181423090214070020597521344090215677491129922338563680343181747595540819826751012720517035661014012687981396175241862631247431663604725103216738282788867087902669844761013220817910808632708013592503147063276957267807595236754386448124441470925134405566759007421692888189912259026428358384557433599621649452609681201873081298904044197021853385948874396720682058283508549323672271741401495162340841428872421069469444458414274383228210753532712553879367389472188585896943959883405008769924202071245356849781754791975920768010653285164990323955972994270119201787892650539521050734921782970852010705455505336163243067196743288351334825704221386011093459861593744025825601669326092131067042510381011560923909000445172982598708629668279520750954590389581332328465619235683676222136415867621905773653105969743900861780778603611827861306572573715215302016456252127879957263098351173107346254824690967614592053965346409731066537811874483862316443285414292685354411127514063016623703453612666912722310613995398113461230388987260530242359303028112034863569987454047234442918891476530567872840250080343994861491370529368438554191952253368191972206518208215243454467762184890853984053400781496294015521187090912329804425972372602210221480896465426279513973834622759527696143631223362414631011260674644045345013337057305636904985217779473028061451130949739266962193390935168107750948522423075566996845623937036699217485720435902921115758807755217370354901173739543476184860574348877781480603471264587937914958237828908957783040668884528214757925788195755663655155786201478852052905423403250938188463904967362374275955634143137317674061795919491891061762250557674329723313571800439298708831680982730389890446294203214261171588813703478685867951040540445553925900278985764892682443435063362448455943989083956026950231351837392259907567632640243345147817189327156143839154115489649299510291072217156344848685360392133116520225345934664552183624420890017942679248064288965436937189061961353635034754618663467006984649856722724551443825501113107766720846953557415027906780204724379963774889037674823035263150735786121107319995153076693668365253921319537604780997013236320069088842914700812436604780737723584006199200826330773442480869631705898048214991512316682664931703220961144972534505011911035465381534284581029161050741236732678421526139629263363146356991041584477526874928854270276597764937043888665556105057892610783785037358280321904833531642716424270324999646277234616664157267790244014722393701152047411544961150682493661256287363229397227600537328226365487044648149135049333654701152794187299060935314705442525606183624141258860363395586092514050477998339920321945253559523449180004322641145896277589407704459313774703225008237130826024617961149571778918633255148498639422566612364421368559302372733856684234423238118408170594917103137566451981916162393086226536131130491877487272295816156503491959967649523465686078175350156266876308435877629206681510017765095715484964474639804578708042939215946475626458108423909977497131929238668699704174633099285199880114442321678354213285911283127462370073017139007325300528091665103080638792016798047621134189437695449392963033178860668849943098115959736181765078308033774236461921904404201774933910558013252964612682490909177717567657227505846409232581509699899426296188253056536100751131350919613111810309515717357856026841240600288496965125105907537670878550775952702014328246707817831497118714179756748261986042687395046197696866651581463058294548189829848561949059504164606505896566996743871567682705945866278571317514945895352853792069539107754854983374804868452924535150214063680982572507502085175705822138376386407437555810972643440001084638794369352200197714475786127943255797726060928289573684483497478968088146819101161765912302050491430944038815828194359951534617337145672161632735819048089123147523597672309676672090404591617733047511854736044329444672354446519864516622576601246369721626789514271155593018354135836318754532765396675363387740748330694254937677532896416111599326559424560411700059786098829714165547645104976599316029924199348312842170515792489790958009429871487448131936146197647031170463048420580630111628184765617904783824200511840014343882911421762939749556131016203957275113305491111777003691348972588552637451337856324513623315094404673265005898508120896593947392545558615012740918602668557760885494400794807542339575078625247174432323996992003207457137269388770638266026411021124350167046172553125219009163692254555917035495835612187196924630649875586748271966689131489508157885118893223695717221508160465431701460518796422385272984418661919504879164444865755559004272399034530304633555158611881571536703483329631096460700822911401265571695240129904193906899317639633189685982498787326492710567122554639435316078621965892799903054237510954323939996289414308577740431058888675280008610667200785321916607727022951526387431396879903294650334338839846249900253956566653500565101747221758663412252025659471923713690103984093434008679430759384901686630991784988322162664480661158396186256602872301084101854897962261598621966096902670784378224551722005064166067685822576158481562684364696192407840279252496608367473710623183634112648368054434318361624867261662888065948346427385890159056391355826247193316363972378339730243443083912129058242192401239306732962029841304972161968153654499430283616682014233072393267036212183074475351946572796262091470796165501479418871832490828966210567824301701987690372560998580200274628362292942795778358240985296277140605372372761735445422833011762647780664514700509417244473863269749190636156977320353721622535234945971683804260420802778616294452044555306893497836387743852648697845958702068012172409837992200743837914356092461826071153175272159153973571476547022285980700868590922098476499179972772874975441709319806822242474971732850589015106540157591028044504641760878255036025089845044923273497570380862588177964016452434010312238393815998616130139551899365261469045702264465154877544908252657984259645662732901684224430009342023551359367335102377535959466805014629740056790876843725535677237566242812765167516223843352433155168805999302702919897098174108376802434972411677929699594728583360632797771483913005980646901387639748489243226166074718882089282158806685109408864374966980071774863141302818777184111193462709524453097008783483807091111738525938167943066338481586137637127957890469148193407852688118582671039993998451510490285550921136653974517403783253429819899078324911079523967889520101794362439469188283395344118899149789734547014042460974578278763123994113145657734603849534385096087733910663389764839634069384153143956788783570725490405734227424083569936811265468626773962645180185746918719662194352549911288572507562510239439761822469917121019748221608052352302038048545642783714027786431913889592869620476463170979288809329375793761431224387170076592353108261676804618352244214632104634507807764936030150155530665738803059370438237926678901697671690156035354214244078334145807428791037570002685869158855102223790911594863948097828333802984209647998313436856789838005185856392509632345689923422421773362169468397382694864459945888613851992875085299679781409684715505225981214608006597060430499273318668728912136288259700121895789188178960342883541924604812967378932782154291711548860785523273851472856717152028526322700231289003542473909144673055847581333209391454846767558135603316089433976030545084625104562382334661256412042155743180374067587108287497081154255738458980334438443588617552748263058487363354901546400835855392923377711445572606126442825515357518375421508435201742101867786180344909611393271594925257297262808096691799174459545544119174226129845438972769610375461658012864478430471126818735119094986624437768912878556189706057615090141299851190954973167963762366842662780775198269276691469781917306365819730926773284914861026785426432216374609454854673901930648202517180752008711920726363024083823586132841400654169477303999150090599207714775458679501266158789996875613750465983519349069720557316966921754762277123448171242685203932117811856704886112638636776239807137162692947987246719597909622800574400950788240798332580260861669384535753912067378973128695845924512253977566748653013222210826076963030422839352009905719969977741228594048112151209366705342435345808253079654086013469194077295624498942225708715300496787753791088215688949055245787349156836630355684088526425859317051208757047383924327118285691149925223672502670436198619981359020022635789022444548271038078772746404449465635833379162899963740341713102549681571735278184486620901111314652899193609382934222834191499866099392564008810209725879387727370275293725140312342674233440281994491880342644679318825054183379037459933602174852508108608305254801579928446655041038652739103494241429588007221754108682358823324735458856555884338822205514126558318820906612670889628702675344250490965735608840428633320818028382121342701405844726125006815942037841033307039238051678752376609420905251979152416677409835674003769959608516435839996061847854532100987622174644481622796860906986441172139648318995264764182891855792417917244212045618904174589690412051478481803000360261869753832798134715665763658627855323794869828706238307761793960081351437051744590489028857334689548764035588299935496158796068387741521937303333127838698394535457972394934599670502888035840945639062989375162742866011395202723586539157819891530657095395357586030414729246667564125158888335769682584446916192349467565459521690041064756272880331019409716519471910902839639899873225731284336315171845154601481244859569120776406128271812616693732932987707603005942905173895268485204535837189607170531596982163021444334036559314301865303317796082907465940554073363274799844818645872219329309097665336494899341319198645323197546758123698906028475821344763021172340190836800930044143813342029506301102900226003304601365406858814640264656614636664806766922595318640545111735341403403807149815132331405856524487427826597049525774663068685459608596521881919818405525852741207674378525648054661547690520504699756681217651075374183200944343694260770029713698178982643205128309937054506370119986484725245627352904988076866635654664439498808428456220228261094800394557578051274288361469348958306580432720576529567457389731389257053070373590574227425628614452739483190832325165045271806728870748681098782429391313794197300065556520016179486327760685250816585243041752536056119540862248554583118924396569112390309856705953849624439682543691251144229035133985174373128108274536665948458489271377214842718816354391963663541736321185424250721300896677558633492814499817477826168504351550580902538976542494160908388778523818488789073801731113462133414393579771487907890445750109289258836195694058354998273617867354734624040185324663013341785053062950605715480981636485887250225269399116902573635128948654794027251309788684481065022274885707614582745469991245193557485180122988329728845772947302744595893596038326915952459663068277260727508045598242179028295121989520543578145747201987560466477661484225061021583112291788403632509468736949352312670702675192792607812897409189562799603046034737022494841538257817714280665539361833682100507807816160941696374621513210395339548381431953706627848737368208107389822409405360835317922128359199611354119319051809524212179457652284402657862651460612127684797479794790112954465842252499981328693692995061353455669664092475643243676931510203943533926230163143143000559460742098879909060551886272040026825098160891163778619673624232697491566494719641406247405912039611089437932737201813133968891726521338091652004169564228568712048791643679444782385553038095522389424937144119855757244674717285573424214323935291902740197050260389049639045544391463950536336737126908166531028821222590068100639253550561139265339151208480375816528469667904843102661627366276239439030885088751799148895326259177686428876206438131569323622568580399239618193377766362215727333105009816466829959468214251954306892369801962821539760881511204698780216405122261223195210477853278462860832937067006183553831200060827769592550392534091555130479932007597914155718934322310038959370377377940344076756870332799881630199014280657172569251619796510586492334437587894116960858793515094392782860914888082587338560431852157638303647557832343408744061042859142314587533406904729399109967351641132065274976738275486895679996623427529973698727306572004983957183595789841626606668814069705797372614483361782559161183927811782463733627727047743160439266436585948253360017180725477880831007924943318868135198802442993010737695428040869776617513658302304835105060192927814687376107705602406480175516702007524827832734413857858690196638782371599314622264345609411000705561715379314710292863389829531711402214062503399530484237934393306618792821205767932142776872933817549056101347650403745838044952085365901301615632746055203022164105213012016266419912902405294117586046007447467476312013428186011044854625498805786104065348048801687718581227600952970116859409772184901013146479767111018868611911331199557771344963791441645604328187736102491806530321092618501754173770783123357150260497969968264490541861484149490156742826344513109200054249579435946180862453939712790199710360350955881520066906725386227601500661155769195836916180298706649612176559222800784497278922722966534149925906585068346831118508721418460376730848335394490407320946078724210979180369977041460659842744131109813709403694271558369777719568405990492201970635949471021315764474289622590336841944722040612670981838122974382825525166498688594042934180857713291153711055353426179920673614397151454940601312880935420160407653514406993066342467910247877511325958828845817986612901396731924640205853253203794403963044458082126487021142631425676301933120248557335780652140504733993182101763455117785934581429100585328571593547929096963970426678265224745412367809124219296739920998190592030193456901872749159199585339945410579554633736373966448976524212054134830991988449389896564623813596179892897119537569302142235935381877426024317107889011177437006150524624373329468330138492095657542967951242767257127307681100990038205666765279289513935661122216920546829467005175116277180356058983327827478188963582517787466978854164177842497465101293623636741503023294285052670867637033187809953912821266284637300490532793780584772544621358980553824439482311830506529993286506915773931472719278379187451320905452276766385371383843816196686998804233428458838649758118277816312921902987768836269602911208330807896862008830969483353581184698073023156278164983314764676444423523387073400387394522547449375532383358812057676218722139650316273847462706888714702943849860133539141646149931910273722487031481921118223919196908310213321199196897636139022479131465471813153607840752240149490210070425073883453867612087374025817633359076238852444909332604663469965958327062244767503354773617456450686370945817428346526407536142256067185132400163693189754081688208258210633255343034748806767666309449202804725768604437403420017183599311959880379020335889915305593155103509199540887757022217143318680179768209902188482022711563016508903030315264639848824885549947234757354121349678290660735790752102118699290673225559398110033607559446702535189626254693559821153338387970518967989723996321284571948655432903605539937120504074494236259069598049098021549756770578534757368278950569886734955507829008981611944255457183244970431149378767975288529540545771612088627398667089055003802219613320867841026102405280787141876762993118995201017934435778663581644528622870026380054175610305071880913870562695141524118149039164389496809634885111760300847108833762705224004032855521970716642716678390115136910580094335714854729107030501246391577666633746312222105840191352419516828522871823197397515170098889948042932513172758699109777942543034269747044006048884330061091458168582199156657163391851913772129727024280351040808042946862995633108087807445008530682058565045873629499080893868162170190250940355302594006160192519422678059651674349975852970201616404782157701421595844329559917229065364048972798068844003548079833233706879998894973071049535938432414824658247139756420270486129588362496605091632266612886670925387477961664051534390972150393362295756504661353165335034746288580415297153228988206688532835540032170369156307097864855128261384457663921537466727478140435624246476855523309434355423561895931730622278360767317345765148130929753865590448441106983068665391807442887425221185956576148302182330814203479766637252869839162726512447946035047329808978787230641626096935443286751529104913497842861643844894301968670564806852991011664061108724262969000431884904810378041529111221852477031012796381849624697598772352403768003653487733085661136353576330526230068944440361049890172108193739022435093959965777363467619144636458321743645858962660158826363980077999131648794933345363982588635342741574739976188792520469595825230046511373250280966823763036236028448935397763554391389258348133163863831195218674041409489514154593975323295242301514474469625883238181985564410254662476133494575495489716269434206880552862790657908716752236470014723879940607351331997150179843514616477090704960616458397089722118717786888329394456617645829056212483665796647269533932880068921812209818550347784172462195813385747422081220542894253202854765743705446399543882138136975133398219918849495175887440450310037153066494664456030926939342973399131422332941788859812634387156622464930611583103838038616018338490723197108071265534943986950085144299295814835180295318301360823378480574274899113939766299794522820020530452486485076706112864499208973186819961069128817218415035743680913169480256831665380445456794651225647577764325596190768410617133644517293879271561139281312693407114787670383334697115712235181929020060124442306804449893566011356969462225854496455836781846215905902603599487312520068267557936630350140505433581816718220198319694902423293547596528543433382062062428543327799440481488222988104451546427098489816992165372640625410875093276626783068780296109224150103525809850458170239848234066411116250910622656863153405840041520570787501685864802585490680918190277018032498705915486910189303539110040644236554995359099825821126828878572927580965533376898186121922578979091109494994280160926354954578921436094155743886191407195922113269186923483306814462970795818469772653482199439577072285392050284350196367767612296032729383110519699772892242860187181081806606359487647483369225458911404889341246720953348716620755171799621405759272658986714223640858245720242915846958624143230762108485447680244482952545685859799811740245940694516744472610726293803180675831235751764207216856643327803920089805997945372054149946673637201314810350829473759515619733252511458964513823783859896630751779698567640892874072444168590741513507837192160498499249578157868866284755378269921770834997827227624214161184836594274828551370246285304069823104938314094262038403934940749112824162204341307275690086168746620486455413634171649990463331473588752618472942556529427785513871677494141455407932655632524989067559253300326429312536340343588874317969900726169671602591901166753543210398461903309748397950700313834174890970577593014039605624878079787062156801120093230872051974124572384133029642056774119148423595889056293040508562138701291548087408359725698681205736352468841920607623572373674957278804552568645296978965492499955002090458785338439523133723769993604734924472660924152926126239495953241770492391392747477158137448603007535168578217965018755494498477952273259550892881949679133882994377540720460512475847944491187017054321063095430299569258098040779140254520155106119193358417872326956233285241469983057211680698735333712210158319160656383402439081028925358787640109811608539425354192475334101327184696243377756097763972821507738211250127349062634384548735643820928736707462089858696729863689483784296114488308400397373936994769933491142497265415935342922787387332177546459040765761729177478528702832495122235363383588852695885035334622479067141457088211438374977137410488900278115620018338912444290107753255387472201390670514328892228865389842065505404266737385251901844887648441148992967251634372084439655398669257886734187480687371992968322900059497347821921413095003057526231816132420984779772823246181858503603713694387869971458150876229828143146515645431624040142181704973243833512137077265501179090577380255122034029304328377518497563970275793400640084771256360080911563233778340077048759984231661897362221647074624305025317263739964284995034037581665251172108040699341859740735133086846679414496389676804268838821312097846176403317327701828701573096252282361551782896868173742560426168658077891665338237921798524555957808840710987634447923601748545745217062456210834484571720597647317345076918707575256719567705807948359643845343822528830415494727664212328695140138156847358184526700295325569839395188868644213130507977172933907125690414316969737617469036915751885566410488151151808715211925800615581477552060048754733469361140005368770131624738225794755078361508983051537203056960740177639553826585410817751188898765250410137892993295160965150795854389822739710115998203474967679353818932617541946122542574280054215294395610380562878100475114140257663792439441622133166587868388966441712451585709747266336156155681108204198579548916206686278440795630084512334816212008526166633818541297774878903775703669854611974814465056658774433630290904991337573218770468441649340331397884733569630327354463430024666100323160366463939574347824086389518078034390223039849522797207591108338261811400002423981622878512756309001228318809992359372734977919531962287304573000012339561065704830427919925957624553822391682275929460705599119890676548448540018995869008960059779800366462402502843245690055004341720647840714641596061188393753546614452747876870358361429672805008321645167680060629849493343042280422859840855092499434801383828101073544251249539591368776897831938863173670849371307216803283722401777140248022161191571177294906023657509087730919953492941686272870581137692911890167157065712592662638665252732953165211249934518155747378474135146717976929734665869462449190472943453023800777863060336761467599298706802676027206199557949056539039345902981892292113720666345820737920357230189464189889213830310308022383833070150277509360536197074824026382879642871727193581113244313108524881764031929652185511674453683853306733973662903104308790915560384972306428512759841431754232339343205725192975542687884239914549225546370815333628821230868672281021301626967304029120740906515549693113521984404253313135647808215120804990170262211596274700571390225917698799591980136477871174030705010377463711987095102384670020257319274909059963162243881426878337494504938826769391710555578324474247055037667485676769055157083621148139051267773908641036931724933574444118201324286621171623480359487695182818387104928200474357948395537195461389726213840617134008353392486307100551349470383691248802105718763704223103887600538329276944814512345769154477385575745533729428091741992325780335018409846914988426401643356393945855113504666466720251655168442644548280608029253126817900612375427211841175736571518006465245000634649512013396469747640575385240872523242368126208544241938411773347889189540221731731879164711796037639208154819165368722275308766334164649261076362121446702597096825358608463200866155373816020647595872970496323972764118988254246724423684665851359085925626088123449890944534441028960026848709646908640366391506490832746136436888063995680654122240024336587449245622470693207113612613714166335753972272126823836181282210783247020754325824555276737383078838122464421971709991899118433191493407025623052717404394521938640685736685539562428355667969748770621422655431948159587954077483049273685928655906968845559567464678519022352332010492717876980590017345401980641880259935826269394141653120257189876978965459152736641085277475372398211967876592757019868301967910809964367644341064069391403055330280211276364601210525928902338928897411818808477274972418268910191718258271278761492251135046104584277070642949295978295369795267045484211371146405303629789540250332201641631669455380624026428458765793997930170089177996294324822638457424454175016457545619476183827852778281842654985611719528302342469281752988695668611257850200808175506879764568821035967171990734394059240768658526691162032207195565735398434346881993211000643796455467344218454317259523851293413697745468756678660505222397350161210393636172719772806198844967066550558118934757450829126322903766489869988722150185178331603092405731809236247756189747420849626401338206703814351116489603964876241140571529052413676491610512922446040405105219980262230626918163741988479212340418966148447228343636267597217404097613534002642013038302049082634915882339753604694240805306748964792057548884281899563808089534840845038930078666398784627939824132489623731104195548328092082458975286709961915259393505501123162815460626277589553148675639216528875320079482558260312043759248782562277608626049099831934271715477610320910067826492634995789591098849252233370038067142750093806517510818965132663878258433016495279325900350429570106694705255535780075845765614670909216494552358759703859384505390422059131994218462771740730667111876042454247092276547117590149612372719070311488360633506398949381611797509442832265629889853357436610756530207771903713095450725727070167709295494734767335154421031887778239672934398005094315667759623953513483695557408155950092313925950543955984401215325979668702440815312768004127686407044625445049108209786050119659991496177248103604135036800010124237995045773390810959691618573824149227996542266515570674603356932999547782396220264833508461822449895450563009578411904293318167783100782819553382677585355157771253335406022304446734204352903451279462963394352487087901842180069589759739794114493962368282941812795121757696790308714600454490865723203626699390261370895195539567393408264824526873717926031711715686436126365775629963908116505494649192341529886079371564884773385327734670638617014131956320961949530232617382206641920185359668687507937097725948079361773051496707275782782729218108451773767248905694597252668405350465471881195078070202582302971634972437099389594949735645046975792236269593242751137194951448278457158210541822556165737940908808502078903848667408241993049370247821363590483232640405973401652184186640105109034433161361176965727280421896942385923414441333402239524928464394567137994601547681920884459995590342478211622383973691032270082446997289259258742202069770372510007318779312767164251420793861837857704051259713742032981613955340084469470379705965384507890308567939980826642311673365246686799331441226397493872986285892135247078813820296356611965814428177906691863303293540360383150144437062822139974462287470697193782196898526821188561147935244237138244066562303426152962436666272676601365605326426305904425026213243940732136888744381575781598577260306499395004127103304978696288601972738260626903229380447960814426624210090476307699155532428596897844184957834283882244622815883131795995993538525132756290051495154855885615801024332939742471773511524901153316539355670415012143871675942630485836593433108130933529475792802351686021906344624603355241342423401427632316615290647443749412956984478229484673237793754560222306659437655096851109728017091961458203303730502288933920154849608982199570103577907129391635979651507237411953539434903932977646086439553349603818869078333154545888488549137013801785824736703272871760176453497304241582905645289526797451519586035805259814164349495518626958160480042209935618981784315173320279093162745995172885902354664384748559752463958689760297583071517160603531122290579627739639201836105982913440243589110959533063668440668711113236733951584605172002605283895452785109169293776809567833708604711689514152081646419534715016681174504361657149056593769119708007840368343854565902616883131000034736668255977688432512421422846822321717377216984457076347440014221560802978935027904984791585340599610258359994319886650043642076011199416320589802976808071090675461079895407906749740920129135607331045152057180427259874582220347561112527417008738492117693755087384509465586934169309409457234703521686742946256451548214514919018176087043874745365695819808776254502473510006219579995853188360272074735403631940447309335095381798843737169719119302127940595654990349471605875944063575172273343756614325282291398224113505627476864853873244577089069411007723051695760725494725406064609904336397584251137236880382042948222242884838103717339607391594764872163960861322317452636009110254641040001207505201536493512915078418120230543986711492031259861954971574102687032002004614524987405811798573428707731905689349341805890018778154337562038649201925268520081088418686977394824528661756086255244351320837517628590809875793278580874874949212355819452422996702383483932020340892348399692528664832135385155236468625474741189689336780699265250742282145879584137342092635227629433465560772374091897154524845445603146147217567239652371079407177275534480535263676096149820388868079430222179248630103707768545098502697713485948835832503428565267867138114248218574938477276571703509099761410295178971973239411854687823496156902494500357493284376246964684070612246561648313063568641578880301638410715452996239227792053167153072320354329095218854614516487026443031668667940699992713587830682986085102965433983762742570741672676749313563005350279844266714136506091661297577641395838435797595120842210198251510466021497401817236036959058023087672611750918950712595739464844355866013700813047589763476795004468461926769863417641361145390158703192754394163365701706601069338182965080400026831172495212806388582662199793933892750603090763706674541416289558241931095538223191611796977316448525928062825302423375309161142816684777534047071788965820508431618631186387894886802522574361856960897349798350089239114562535235147193534155787939542921235359125028306013702578858904868750313281933763359876601013436583533354876452624514599220265738018866441228990141752268904803431023254395568311279233080733415693171778447304872193794534008856711320766721395351411747943907504128219199690401988887926983197747650244921521603246345569613879892101748285423606945250939048503900133178266722310030098711228583246934557972652860265785478578885187241780593695590847939732308339983673489027012515096326763500779883429062279986189219759913196560875303470942423329791694108737917924007140236475181344983964622674626045033846158071952299977937377983094222914430456944056042374212261979275218627949460610258617688430306955305351909912518261958294333888586642525938321435740146773684752564643591895846203245628670658819046617918301684801773072312881146230114791310927910339161725812836926859759339261956879771272892584861238069378043110102208664279554966900485901633972302524090702183603109559699169906791455682173873574817042569840968440030713963424747503609358478212080037712029723637902763894860574202981122482302409028359965840406113021791199839708658432540223211109736770909595566330215308741309216956884900915124997525402753511533342909516660751554679783947418794707256983531232574833193178005309774310705401073802427664855456082240320810974103977419227706581585705005129067163684743158091175756907549383660460878196849364861719497723443688090998083840261644511829524266229999627845541744558301631770971736680281034884494850173175608869209195144484396731858597283768532070042749778385120705182596544270576021945833298436599364767171200077932653096033290234831089700916454705262522408572019509272731879829936139243366352588135661403403436182684716848558514180106078940111102649528037307025547937975503319041017322602299780962734332221935447166996834018299264968741595004681620414526100461165615538787026709478681334284231375307382847107278940943862158109366151969446104885101357188790824554997550855872252456724161056867230758316906435287151124068645417285314895170263372294659161005737012450884174227536047616949998195607828044224805443488861088162033451550591495872793779494003681025442347684099680460438978661155714620650384715410610818207559381153602077198800802778307602843149227598285074488758211360880300357903473690541773718101421457936739547291475793484672166501937124720033061336432375312268208720364737185486490826441621584861978101312243183391553989560122740858855503038692116219947825228219000219824166110982226594918386806797749905633665963880233135755913210171220044539528386031929006403555177107125932551127557171958475816347366691220729532729140851182299806750279502116785559489705991377109485555382091543923550514835253007650242587461037013782777105916824985630139495171383707622295566859606833642781434305161646985078881683139907224841979133375602586523529788813069252593851226457546031507753206136136797710908703165414861157887527991536035395963478356396425374881715033862175226981670461906673863660387600881577144610096912851723316582371884266694389167249695182620430060676490982287090743135734845770986579109169456072277792032407965798214649577170757778451644004202985945466139736738068178238143721955209427812783868354361366122182803146798305880699267907218177560178945065573507017627485630481621000371259172338620118623652840703488178916454350503170045829961881388455657550190869779426955200970594843089584007680383955678907641464858383876242408397158132609288372619504353945775602861495636352708342450101772320661451440059069395599833158864473651766372873963920244573214873176548413236726001220355273165534193141022885781304404817556004794271455972711001197758323540725987937425053229363846966059253989271122703989677604151498518983706281292622433351017555651581068577322097423618687767961218831847772828104077178684372708429103693944216407234659874261650632953815062820824252587297260205203525302724232927569568573076885516164578846939516914344886753227501039072595880371235163279885327252688677423312361925761756289458134589249869197248080184832654851781454253399031043610324108979724623771233929292870002563898628686122649196321933300378652870676239247389757602019456336539794304563163452827952060335990764899113752332093584427287651549924628910145414596226428336622569193446122069139354447067545807812145853197514154577091939562097406096808975068541245960981483312623355739878265159055560526214901234573027074213683804346518614576872760743179163365142666654894992610925932524623931581855796139563321385132165794008032526196274342385668837052456596515548639515109166492341019960064998138014106645485310855760217410562895960884213012816128064583974146353141462580529981322619992109549222617786461300967185619399130175406050935711986029807328040002292647045513797756464290271788722792810069476958713757245291932227826360930591730097851646210910582302198177665718693793932260228534958129385661589238438393722906191900359979618331992708832477705650663739189943308885262567806241611329525091410402263098376179278638315313960565020734184027083327348125334047539399189821736183774747724434654133623996309951420797431632236071128202948324614218360635653575002928976604618395930557799805893547490981317318218559107272251313066101024745892384945767808996786586080511589274545858086938840338495763087897005680322210612177144146679549886876169442567144651652550037406307634982838467919485191432219241697543454235695496851821061261867215335043452861867107236469355293714197138613927630997266563975547749954801076658941437367923701738024628084857775186030116461122733931397470831477415075484876127991251243206081300395682890548585688941739580426527553106900328084393838578240519114004820415729983015157277984485087624763634495474810345840288960044692837519849283986240184829999855953022855209120347096722252873754241533618597765726776341224351519572823081581843477856157042575660413419758395436550531101351653661110999228507202943164268867311100632071971674177053768124625785185783184870670771330560670529782527802397870018367633588717099046504108559890768222497117084701310407517188747135005234237529693869168486811375278419966236839275601822253842566341275036215832654206599297178174674870499207374801338511748433828332198208389848656807084222800533158860725687690198523320400778823978660698148696039761183443808347598366483169983722384279296407235968935330905124720784907142541606844874498864793670905126985760806641821166031378661878437211321527024361315948072123822897037133089092721034555019020175921697649168219312139030106315295747818092891925602402177526781374754430158438159455218160076532569667584840447615797396425497714675764823659373658283579720643627525732942735511072458210647314513999877613108314390347017676789167740080529530036334639169272784625323868294256432006588145706364101526142317479136548674437959944066844131521318038459350138568123944453940796679730152562547263468074785138416303671929976322311406715102199979861439665353212139034777060587284691062673691448854809131136926226608076521846554616784693094347749083479182502660862388260061855759410843227447872489506177775872039566561632952452399758653220229219699398624561562151916566304953408999283492198918833732023426078569519036736203080730973069520728190510312223679284184905503355784854772400447393468656687123561652713513560697460703595275342378602440054935845891253915458515274855383194881765290430809349116207147742720468207907167022957583398421296441132990372964891181986031016259462137919922494320629866719043318653270365728154234077637992943553528409119237035433132122178135749003064876340669488154165151807733000879438560574011467172914794209774833231749162201781900866238578604834236690661797081303969011670668517192576062567957011202238803532570098885726965212006978222716359067671011198498336197078775613576282550071962236652252355047390171712166542918135789152311915234349630032986141984175152829931739510466758381329546738605634451316673952330615357553626215061090757049428068380869975729825854588447441398523231067874241278891756525297784734006275191886197984130606810377773500118612330006033625499618596216570609324612482296233420516270984151167370476794390323817074140122311066492036933470325914159286318661646884185088713302896980072302278703644494230740899664135437481002919384947335672282187150391803454658420036952330272690446989467269330921576247440813245183293812629839475734142945791257597441742228332325638601879494734035242784089265230201172555906221079593362969151923572974372029804702171955587515994223358074121815598127184403921848424143718304721115868300173891033903019137497583443933900027655818038189503371422599885465551871607247312911266902825718716403757224580672704155065546925187900293946515533722712444911647338626002892597756094520486742364213843770723764478726875074665319418366913314482791412556573546866550607612027882584967614398723366946676459587810188447486408039226090562303840474754304374819597710664072115991801635534803711694664815817229365050183190242061644153566820589485866567374502480860768249083927089288537512284895301059552795798436654616981191805707870685298039874610786148366320975974905458896568368500568048619599889953694309924619935292849871984324359346600573118636176367916223697560782781823759389059702142334444113327958817610366994021065033791189147577147849645254595893387186673305906988046704811563456938680098329040881483053842508789268433000640744890606149901818779915821974745333869143309087108450941896229339149760703509251095502813994378431206592862712654295419133245012408602028329186081705221541040818805709541793071116392968472103624685453634515265265393124590915403639161637466045501363900670398848901312916384602169535850539586699397538796915589400401812789048728748703331321393267895407121298632007528390735326893855945935351305298782382756610746800948088208397379609683223507142937630655777441008241191398988677025920129604899818863934589168742149599112790392359814494669936105426980180176176036930492769348176777359046616570352629948208638889354171899430646650149164201118532251403792518913690337830474679000460626158763123077891436461100708274978451504270811263484358679696191628295868994304279090522386195601819547204932405094236923761548969711647147416644807234212587861886145835572212354742457824955347828352287781060128588588280808691693238153725661801686536683596326346335375094755930536306235814222972491069838898462728514406451938761040489315006820949528309166537387948340647228473642186111033099396122086854057867375795406687394442262598857816439928746556429226180677089709009042146701146483328558232268863277569126486026150366976051132269952401094952692826746577976204862531180557113071789148153691882764553199377703068582922198683521173528979715490763864277670615869120713206253967882837149703647636234967234317639361410534030175214055757409136120831626206092486507263356353769538142438990404786681662188180844354433010630160698805114490925988163322882830672165892844461672369247801233876873840821712386534537681468757473651662255126127778265528766733067129344444676599812166656725191750260713736020151208431962345168462796072027934584293332059289511674234780249003064136569064507861440804608134253279766493493206989497791447295749079319488132386451607231705434573863344810544031234716483364933421337128026913693143052160834202339212341087058427872726586381866381121388229554583250694060644428378115010277916852869626726765999865699272229781345150324748394398814955320533291676897222466490866422641361119028398887459392122677587305023443937494504709255214019603415970008430869341577979377183227966684002768337322861510518013407683321212688172750015499036396593306731158362645445233991542149765668033744333951827727489173252495108816972967394236003015226982379189449063399492120551643881352593780187620334703209057543982841200969673787371872533797731570651129570737581816311955326064582779306850899209590642927921968852267919977545426138994027271675389280945067528611357193103161648305602734492512216974171709986680735222826129471021175950076050672112530564620848202901887274485056997852143281245039866701447434096855511417099167485994309372503240879287788154523466738235737220374318910302079863943106035220004337963953777266642630022023645116376428883504924194347699538630757817975324936042231735721112242725228324234036161589988364422199992980352932305216186707560357955620998609757035221418725282260456276488038417703864519835883344441352616003345952022709896277249238474151611014764966433163184367630209301388512694949264841447570209988818457185287278004949234023516499156824102871778128321144630992512176662297521796308513972761206219675596207666925415265973091419679951674732224754138586982243919268455741703614708189012704830050086329259096748816374151079317684725781804247011534863198311238084092414740356254639856791379053999847557505397942029908058137131291226163782764420855536791822327706982212642501428104056694239906153933215646024328978218764804534709641162562184610993621358142434366463616906360473721101255947454184266203492515455068795538116710437640482526652238275303120559977796165383702405269009455368642970938895114261250112761947686066192530063104510743257749368596208609100375639631621117482111844558173803558922263160147046955998019029671672135025418805227672456785243041075408752444478373008498164651566690740234456553121842896802869561182110165549670193846646377786686615177985393528527460566812822137909141368182417253116493008047593710687591802174257427284113807153797571978624924641501918616931602079338347385425149646662632854531091284043582669172251153677810151296717266216294578495347748075537251555439848197020533672789789329352996923661200733041844273841206205094340413915235878066400947099397657848995971083837799054996273010578139833828200813445580083317205035266887499060222132787530694447879888458544920799482168173585122400798245777838907405235987832388616494942260647249951727004109579189873048746597124835520962021767386588835995479343173483956219397778714733877939084549734646739148879460523241166294518134413564853728808653311753865431764909761534711898650196917814275614810448519026400130538298483045084382673792374460121327340817695296136710064538492966435904071709834492554450252032281115529798935369522813175256329128213826030890273577180242180092284690652693149588178803359490951939296578307859901573071946020113704021611706923157181968215806960983750280545811714234259235607918469114510913829156137279143153190368037369964234124539269989025770615184625495319537491974112807883707259310080004722376374224666027137682703337225995835107895422563884287590945706805440704706530140189844439506254073064760465749203968905173914853355735612672649873382764875889448776799546645861234786512667019179138094505181913730573944165689430243055036037293698447055179367523822805601015849471477041258835839092982733999421046298608245562251337751613496109049083755117997095936066766146656759286803940609475731966424204310108343803377232681815902551438560433934245137763702237186543452404708129201075399428555390044862833869050481868499999038687061618976773658399653506824065076805763956271452607099796548368540646146013395665111577591956107209751675205695602293398919930907533889179303368161174557219367096241190503993032365110440481833269203658612939221425448921859969879847330650259181669448534954211330610675511330226449178260605967546449109818957461268554258221986841143664448971616100584277779508864743077884422613191477415842148973299420583204936773642604544626535305099623436353481643334862162328777232983854784181613253362542005649748107564321132206852089492727559520382960539551873385490173606120858698155818207300348933385289836524063513332010689564890596128152741493478416195371222866803375450978184511760056548035195350328846623753071860275695012061442880113898366199076215286073989906313377742515611741905069015261704044333678926147556547923877721695775470607995760774237752956334400469183724514818128057525325230132340127896289492789238441210579652138853630558159877392192810399260268205340968489995529607295835400460807552471026779143530759020469665651024647555864636991168502643741209973059227807489990285968384606050315083614168603682026439270098859138707523338183446255703204993000443813356335780713085640092842407294171877679938574789235550967841105502784606175635504275149149358980600617842007830278736305624169362951209925695103371137140795112368933574795078352009419753200209704067421993650788324828905293928619829777502766044981407695928499374961368792926902748550868877282747100637092342723348029850136097988986385424422341747661161613421276979418245613594144072663178249888162927935547659523818479113553157245977919682974775860594835170334905698639037903260748529058928125202458949467322820346374021683508914562001725043888050854593091151333974354704621056917373917259426940196477320968882147075129832854307577662777258293213911752626688688837111504457938599407930310339863464752474802779996746271923120083624340290813813134918175241516235470767649408299401511378434564559934671824788732708793678309060863092162618671737811957228076301791273862515309844243103033144132008390640383435770387036156244714279172506084776547564049190826592387357523375745763519678993155138226526802103884862053307301317730502608724228377466352618731707502757021957549322786015553976373563788999085098263587002931089117845696395593683737308242072202545202561332776215956729356823615557622066513414713356333866358601477918888042260415364973037399549409224735763058168783313647159656157805951478673526975378621397432045824312589957633665302812789113310224293927428850260651823272745801110487252953588358195945823077461954444388302649841215164205860825910010725378588193114723849068240550770426488754302326400527108637080859922139912635630832294716812394958756273816303873200155143841087429438867273326281973676191442898659890675442402454632125874138875763224502045006523605793480800561858487640254845367990568001771715280801218816167384214389638329433378671205451311710294289534644187384322377300348139224007699306830008834232775879818539908118870025100377671277804449517442783072772641320155445101591423793051943854983106698377462996855054775998463094790135713818357882994702664509007647765227746971433535468112799165619514917576944357434248279217542454725610772347968002897761602778032135303880501082244844226247717580483515778118726675579771809944044064589348679881013805491892265727282836942875913538592815269031873889087671870542656781867270461018899354602978657314007267101613581167449160336479125957528850816947198754119908570640158991346009343892157056726649751406240448441877258090173450131921502635626692850502685170184678422529134499709074540643399266214108666575341644304371477263006377713695022700382255445196680418117404784531343844115009255614577006154474102046392680132347096196616609239609568711662943713273977045513276490787125013345899837086041637620928063377762625477497023732663693378296553795979261547975832093814018499191118277777440101447551930605008175537106990457051913305628824513230021908488543959650465557886704791468366995221339649104431976444731382404805985457452524764029610712010728622216359545814558528147729895028075058719194800749482894436189541441387923890536548311272780788112805150771253910460747805706987170653948994971869811409263232545797327558263183393970600032445585757388778539792309734710283700960885888227548583316665835956792414701914730084465908772235779405953720157766650148444360128359632032112066850943440167195443645274046518185870515701207668089915940702402153984876775110286964668235503066021366975219431727832513388743858839946511428966434309572738866437755775012059546932499501831994881961247277895493740787694379962986107367803856492887319797526919795667592435445355604588400122813433983103848221855369765108449681423557474557652907541896837094546512635954143553755130943643360277693486025429849000250084109550195995408797360990673638835826922755400054869094803482711935199334084488750415105669692197922625714506065955730817716631406132905932245223387295151792261908243857256181409874864804171424498183115082404268961143416010150234917780268435535957256737724462848116203477547533919059908341202486502478240477087639520640895839473231041817761939316846452736490938808339109448578873050330067910533306952070339992191894867571783102727737446942833644430779407064248463959143422523667721146338329720386742940337853084824376927198182446205658086017129087870829852718991012860733142272582032622369465667942866407283061851074754737643966861864776698408688938204938824298159533298619339608280864916094075360399386835056411366537935777655562561797863045796488075905541856905502033700848989411166931240676495191995902043888044754833880791293517124575824123883003778127989575886104201412451631929248369971163985173976323959423010397822689740399512846431042418370351438734686315660254750538806109465686834382036112104973245293113522435639682164988132378380273239941988261578268750470867638643167096319529786636149779714057256228797711063518315782815819466041870867045581679726477582894861051725720906306742878138885884964550927697663438517469249170578483463532449849697569544735024378212308054795187313512880661157677205267970397831693403848753326192049925080048487821096289318592578172884574695355365185594591689361004523744869014154747953848961087021276719496654345872691730755862710735090630420679680854701095074498683793946473828204225156254366271642760516492101383812960758727403637184671533171667368215386019616990637221663275003327505863680102440044494936821854515544870848152644380066542314430179414426449033130522139666871242065829623441317953854306949473632675394253622601765543277386355151899815447977934007169130962813620550727798221048823404739908951239525173812484074631058521476091234835016295392778982842031340504874336446082247640123098297486767592101792371714880162254347752129357613430715650111190310438455432604606364925031607050961128352423446474982910258698203967300925599375805263166856599832438677696003709908392797211196680055242356069913172607427222484789794748009331955182715941889802731845461803617495855650299851800003454079216685590453900725540407396572672172288325435307721063690080008421116958277047200473924599192431954071760031906079470602501618269200976539603370601380374994878914933437781810655760149855262364180011040978978584440453718296533465597306738340408799176239279540230760771794465148283371488093278746421462898003158350977903231522892014680749180058251348586663416686837699135873575550689328651871517110124059093578856206600805672644428412576853273095329552290742318329352616729052634840607773301607521811833450059215773656145192232039085646530245492761343951523121997976868119127762684216062785331723665580331673634116651658994714736788309116986569379201955480122756241501738294354907014173790993154943638124369008274850013854182471161760633552657807957786446036629203497594129811394958974720504703911910574367712071923057570751480830440318952305671717169764157112999846625224922867061656014243811182586674426604815612099475840002880582587636144221697394017474212481646431406172530000467646586076591304209048681313658778644288449994685611619600801901762782876831618653960338561601915816127538485443510285433375868969834552145410606314491579482841642011984622305432879859573318432525960871416027762647561381570856457153982861004647120316511530433107060417832221102475087835255560463732923559915744282355355074219553744918404262422964339859479576900598231346521135564725764418691271115175776205582438856656447369825116155185911128085866235908991397635747665251719310014140314114721584490337903284869591096469362786033086682518748827135395274111019685266990137587959698885044957659944956669315258917728523540472260346046048506100789403133727363674434521200267990156467133607141710790784363923146795078648762614029721332216193930410624649060121372579976270066025315955168419334616166228717301392273883321967294684322663901587054477859321631958914155214168681405188071107175589056750980715925675179681937472212579886763521159041950370011455599618914171294160422243255435761490851737320184369395117158715049465519206577904740784261425090867217460164243370932420990585774852673191231892445764675835018148919247805780510287763186040914103019891674295877129278576160208273517043386174968106847010025301234961960968198576816048793666012032388311947047700171285965401629800139694604512358408242550098486394591798965895529797401664340000972968083016056217479681749291874842535062997272407629954876731017995967512291940849692967069388205652108073819335419595287905465227098271119163561180118081604000434670036889069893618116993963657019937824371256891193986389621157803219667853174839834152042419576014148681943616696575274373564342364218373584757951736414814580183132108531540934922795524932943404373201446917006113604492161967768576010343127915164328769419094386431400357347748574374094833480383164643109966236885623859075277919832061917898832599261149302501820067943814431845100799110601518959053404966953320190112137946798280193977371141653160320504123614464223935653303103433236112833921894065028214025411028606466925698106742012055633876218587141526403978864160036281337615971501587001397552753095412510389273830201946517758976453924067762004337017735412719700202693011179272971118211068709153948698880441976925856785777853963914402342729944853990825211152573605621656551595777871536337047367005229983045189394219081393440079746735801530140274418404071082137579824900424203498298878516544034354259018631296529389475136497853985776155045396881454929343270050011794357517403321793010141319617127049364162168299848978895767846574517533573599037430194473240933214465504769992744280094720856185921794047751590317600722011700598162312718807106864693677014158349240219509931412396798267583949733187876476391333284683953115416588121764211316501476939001543099053262105853579341120215472063182396253912844120278706908877313584698914240619075802411002982281607123127707515350434559665329558143297039373683799018278775175079236558537438545253509478339224232358965206205661396691044427092321306531417054953829956664770762794652004868475646806641053418080133865020374155479830659416336958748701396938792735579047127532347427297782495814685450808346484757451257813649599814930896188130924514852834034506795597159720228582013285668948298205334181693158676756840689003136575742587905665696251820125465367736265677536671469795599739712696441768228446895907050284954396704981316805794824885440323241271379351632841362849612818811119668220126275745714113792704567671074136758481632521381080000124622436859607512515454626830061695130045159596880347567875540850518804150855860218647910287111540494068886887541876537061174866291753132760629435758904805029831139725908940635271524950541194876461594696250596219863997943693883377685076516479811821143175844013846558675943062444712449349907217564083349640042900111396091360542181707311967947074002642990842444965064348269000749018404368463767795813921238104137185365112112109197218268416367044832879113218636340209128959581182028992617022606500894759945796730425408079199630018949140690280479052068633610820102915797597644857314127693086998427452442841368785123365119643437614852883571921671734996038669554136334594533222270367165587678546946403056694433741601068905087683419343393531793656905020383217868793359899642880971137411361824871475633883344427280175061207987301642173032094866887115821831727257502766464178833505645409407905749356368846282059196041765890758126928391837354821872089038258938886983600923523465190063495541493538505382790338707658732252874391826240156479086674221239165413869727074898063719112239343334139318077060140766338975729221930060811127441540679499607350139657454446220284100252248955799334411821746758046149290545368178344430514198754124628343542670421222839456980412872214402095839871881334088515880452125640183270240468928306911364457506962240627772412421733126046639960985464233847886774924505763652423977727649102316429187445385368207921230930009646113562183431423845987960383419817677118379243008807969720514885112762240328066511141106441612901837985490462074257039881261246773634692747360187034262905898278704355508124466468776701849588021670017755274977369572578048274390082650941242640897382149410692094538110486781835167943004350168790919739547179294527440746944222146417489557468476772626418891477151005296370062050973988506680716508233045928817382223385373208169040333042478357129795416959594646472586485280629713746385729982076545538856002862261424606439101417105351410200925392590213521967018504176222015262656502631169688691944578196653639266597411376941620542441056776403348173609160340017906193578462103164745898628500762020895718705056017080931219197180408508904057300188924824771021629663045053399836127333820896546412715900531990118838176022034299053760721940884459722097212051681229257904312682950939700601723433956315020972991257448772341137550107427729148421654106117123880445725515545797441776638130965840144353557244525111496585737065598829141080564080600352075732451778910498923974712607583778899420389315307569701591914850204464045120226410811985315656729017986717752844805766095955987693730131417718673131350788781219301876480777466119404749892632271819909229141437787418931468040414355053057729534333695305207411242305197227930692246527387165050699544987129681575366771677596788596884237609592673067524702368557278249776152053008633155057865872005686235860084880946522107087627573450391950942921050322105513136262641669194164635501085137704500721524868766100248526820236983885908062841485907473804263330979615664535484766209492244809393302265439691344443574309709046571606546099245758546504640165857237788481342455426487571850269093884674765013878130020564091984043251637759747529577089506193249122880663057710286771765016257978161381603887459237973600417346059148304076890137426021679164338924755516652723359729272701998693877757922823170799899185790863852090860977046887504610066118090929527318346372839468248297854729511433787248308434211695026255795443219237389851637065732750575343214279310359414885745806622043127130694239321838536682402742467897375984881615124997757076662138770840302883596869223377505669351448362463784102887052772172346735632500915769387388651678257073191593695680905564714729556072869858830926462502390170244594197532235839158808878486112258502213304615538331576070400419277493720851835688840818142910858196886742584971218880485412999465052314619520341468973976392958791762096957493119170462221997465721257267311307130197389359077291797579104802886455635711471913899470092190823676912925716733158260440455529302435574757565932258763752949820169644404781154273667497332356506497055318325662458891022791157821746397414823535085865497652311597658585470278611849933352466394582662411640845825039113062897849194874747805285935919621553516063176819303737707408251258482034090193398719351704592053274244727470813831714192342220316628527593237991046927248043566026068916024393037121792259185336234146352818125939179414553263866789770636134873477649128788115994764180243655451770687287161433111944961210631661913314785858727776234406057656353819026834785493327639317227062582845422714441870286732781432385143058277887510751444612835354445612804503718771577875457372575874569181509394573112189193639616938990132370642937078145341455590746591036925516420429536948304294524250124012368013546394032836200705003332882577467221498446288109295220661709862918119707975301403153507505766979126170412257604285282588947241063060568542694010240606034300706246662421801660157208378908487435940762369225448920609378120486751949821030751016548183079206084014532709227445046635221832039581390297375650088489653037648567579735666183384710211784994651026067222435706943991364877333076178091372577876249060431234983439495720370354802210064707594588947969162262225338992277538199342252328095970669589801588608824559250648483363258216712427073531904870667066442826531084033596570405099379078951065759741832302026361591198308851679295640854778086644117603058782653101882973569088890324746490613314207725698344439011131690742432497578818961022665238909395232704880225048337009306828818262687419666529793831467876253344904154168666069728082261613324123564865340211894159335164974462474796808383966984393166047031869545901253339824756439634971036908133697561768289872436081061611610728151196479555173259679624523882319097643188823797823161539306426338362564077294652940866623029689632832719987003117192949135231001100202437584538088293803293785697966038983269584150816916887720853091000869379969881357433332585520244679688665145980392178261780294748886790437251236309648355349914586500255206453190500232677512792363021028558538370825694412930082111091436574423175582608875447790815451007595240379915939030076307439713992032307489420712443748203777448007759464457194336187461345711803997698811085388325730192644853721535298933096874028504118750030267265519761347381784586448251747402195162459679355726683816664953794514132053285355350671727355852885214318230287748259800221209654536507279181578023780376494701847213530342026711611012510480510846710344325803350094215490404734116535327159632212065940197286529462596414130118924175373004039100346901132999247872403705031662247797411511205371073499576975774735172937154388751554037208042505419088085470628377354709112279755102918025733059546621255775885187753824717884789645525120823887184524253360273154908183435875537145511315098003985909845713574717297726630624862245172282800621538063327643018718968914476166186911109478732316321616046971470686136000761872369333042276798923528290691866348906691377370104820362465881641685662146036386995526359337470610955403073774187476074328514707458790710239031369207229943833414002804631029014967032340741031008441757372313905660181741468818478935388141477735831326253563950535762825979741873351936545439557007952942641134515583336057762222856854161741501741622475430911723733473836902445121414661353110672561111345732418347615459753131564010324808743272974345878264201844442445160954471798826093460568701856609139643240583875991213144178142250183496906292435592527345384080193951162720571151622331347750111134571295832452921628168875614817217621969428363431773660687042607774051673336715252547908091227418502266563155804278966560192203228483367057045360032329410913521557107234644110850999027238189546864067253636451684684295028785573278904207912610931090246748570751722383453382900131243561786272299541145444838197355059537639638246926868242706295988638970524791798453438213313145904800738097773292088735335816074751165872583020310879234398532940995293933988883544595221302911117055983773377553491715599052139587457942092099936063880804271940803143259630203104244322800718092474240672661976679200615734091387749212675003220659949706320216368542973714086227677959871669471986016702858378892736337875795906257722620452191561146394347498057671395031437928724613394233344096529925521162383191994126491886148654980523579369662567878003231761178601155895600394942437688138332775034784530054473506763052243902278177622372855235777914718085029440348874836797689406400116368560790661127085241223855587906303440812652923405535550763271806378709871985742621981876702839730944059993826617831468899579727274373333596907839769924177481985740816287169333482484312912954639444698540362340875768963113086727573985870790370813460702154247521971819942523699123941386538064831184528689872420798875921341026364805528624306513302373278850778420476932207714652322520030413493957733206504880629100526901026399878785776529752551178880352397167251317587699161810666909515883156205956493286756944279796542627881671543028070603028792055030970249171263291028133695967595069911094144170277377294933571551571133380566186275328894640329474160411947722368797015243374840369771633268933546524441154959600594183449996114457409950362081757013009309641656025732728051780187279247679408550514023819067108832195774867736664090318622078524457242329911503783860446974372917724050261443897363576908001796436951593942421153234004438387525209335644291839311810308361426416673679200289598959528794604861664823500230422677481465327430287032203304334573884232894610022507281879527076895991941586976057918155131491370705291919940733191654228212399345420525522902894913085918191204290705063754669114581447578925049213636795773302987512990661195816923327083207607967095286909123521286510501108686374568176772365431621921123408588201097278118391447958358750540453523431589477566479171186131745594532126639433704519313983701319963048545804802068334108284352431244686254654206932117396109395612545128993016983138208508265355818741384722977137956891930615792998484511136528205976911798925579787398344024467283323150117250895333668734319178316561975897702138842687740075106184247807995809773892170252031109131762480466087174059752860996332849587696747810839363276529323403168844835576733185901051797115585211419631213064793118419817776115544301573771227017290602708489489873490979624735961193885159459591750288118656034515188838866482164109249497278833571084177667839516735639561696833346889130529104055871293545467143661185215641560157226584779063315247195364240499828112019861289158322345351545176013510994425993999380714371380067879747694225043802156734304542566924936011012374890607266773716146854447729311048749835302248450665488876660946910381694996568520800150414653434808719069893698570815039206208767084895038507212633584634204699006317637042539026304011964932741803453821652785218847517478951545625427770533051671354021812710783508301097498948136993519502223670093585143726297543536593042354745760410537892695639611180071654425848379870951785238071439106653034267520888047393558393895568106839290162015575324462234457237453157718632025245118989633353783196129592179421320925023768975181727253433711313878915636947897679084885716500285955880209452391017305878201401687115657875306836255482678160962054288703600956150297058114980629515469417035140842634528360378963748140579803701175002994270062392841116278863022909588642815296881502750064846563284267078821338115352799293585712003544367107868899233363803047316250576747879103508709183329056908113945057573729870025081569902095253420513187666195131374467826414999108295645889989860884725790464280630477336976106211668555426008562197681851874163581896361628243656055426594371461838717350305363837311850448632487979957939179545335148544520254948098213363323586008839715609756118093386804135124132178827180910101266721028585372443692789955391680821180741472687224874620906944913177937541239868102437157303156794362582143990216451761115732306047964154421020045532128269406754754134712923559965579370310438611283453175820466835705465373209260596846117210457430753988126558571200582622908885531559651961042255832252735602879038082044225201590529827286870083842571898740536876184648157461665950262492265705792170293434238053830732887838385007362964899172646597615297714005506011856532017363951917837212349493008767116396372481576111973789613179671550934887958658833959108218170581158580714529314227080263267077790219523176991312665959410417991234389951425732686988950823700687670261970696068600082388868565602470824101846249867835450013845779641813685913796010993579984972884964606830973580919390558082669912997429279119400994601899916914575822080024190872186275131655841169668211952633939885144996663681845323071766622108705133390114460138408311268429950830573749694782155434958227119283573264276216853054243849120187522418396398653038910363594954731342943132123636928248339727601679448056882804240284490486240264079429411899525134568632791224106496306925469683107320128969134623605115152449987209086238400603089727540677095251548128390666463791100779353794665757042217287670674938265651880677416796137866920038792938418271587676539215280571450296588885373722850356669599604089441567240205822045165458847097987647515219991260798773603135988964507462306652956872389656033556193558342884933214325816378874499211692142498023739549860592522161575186870562242685275748289731178584432684514778778296130528212808890132735054822558174033306171269943441740184498801535037106412569861689813661655920972963682911736049403607663359401792850654822008323783259665517890858378000855110478618693887960255390194593635331509608592589650987803249605787183857523891499598945003941191596746165888349505708220098065892239322605458645147561451807634475798793559549778182498956055176303337562262776225379279104531373149477546783132433780672900531784897046461419146652589970183528906575911844649511592620448612056321596472992430657140583707128030713746885528417145269066905561914400266886214749013718608912416200881900462690637245982485098343297084660387302723653428718075834890491489692259553517553529960034750551557411468077197158868644489232603701084991060277988907646225777610278527667453676375717341213019128533311164267472837953037006121631581558803312347865015539898111412740824192203706559241338365156415542251762545620480882848173565948450762902868814656385261976573631386708916838695093003046830165010851102637055880526981487456331616410854670879688569536271704699263958416797019865448919677057077605253352034512098792345115284121942097357145245479363679293522264370342226102446717494599048253260892181422138395302076590228695890615606530884277822253732405133835324645672923758535724118122567109205201903885880938768723458479741982987248096499961402191667646343154138565739199948947001920306232270238235938277934336542994627114740534598356021169949408243315439729636774898142922946539476175832234256223232265794013618558007892661086600276048165501736573368880129909951865483002669204975209544871268201454224850837178796342071523336130796723550359403731280238089946696223383098068923913212328081306869942724375188564326860564246614984808201465199034886861800172114125143630944597256772050147338128753467280995556239391404835576029409860575314255305562470586999316191841998395700979544734453235857341420137843413380299007970798233745783042537067459819640626474571174714626370372070377304940809983915084472586553132500556993553354459932752282525444600618234536672675446273269995193980953120268713613803926101932052042561268580912007604615018449743995499241850196012958282046332447150270126215690585638078735141785457385915583650101047124816114775552890593740018422146374049218439349729302017880502491525216824462672356230524877028131022684470815079338669255851053304516946336383621518288817870926774671323589553495739642617140391854365245346302956205447879601062487278435951109243200206603227760071318747961106171394348324707309137188473687859898974718417890520419592517585643576945277144387793179383675158871380436419654337498253102343406825644695759438379533363204917843482858305717765766855191134487128222868233277814486448834478915862238950961389610276053078586785342730750784299309034474688196087581552322904158619158517504237276905885813660782824848542976154870172876602323716163202708482783756454359539979875493138140951771823718806246854524347238838680264340729780253958514180644198129017406433029834265792460599552282701233690943416019385013557417956265554606280594349304762234017997365665205658448074535373941505724696323889249778787498155973162041199153007476332565794692594339912419323851421970602412161493055632673003149859651080007673954131066732811447897003510870188577477499270167938517722960907841851367472763942479371432656388718370619723263068818925400667429777929184744855945626457246476119436847248844243703657656699095359013869548875608286079696093776952867542880361357148192378780115067669944327557867584333748451395624024493111194222965319304322518872558853321446880227582974274848589021266274285823101714994651550853872692728277326087461834761059058375386950619003535163050357102473881868514536691438442095944657817395855432088404699977380476390293947183726798963175588417428567002031699379812895463849954658388023230861947499948699069902317282677195499419435000905901766384086969118668289945308456873561301782301929205555110677067512065027826527043599789117265949445072594916800117561859045872872523163914460347465255721041326276322356769185326630473031424811841269675384319247858608345517293137389080122488559346109882384995084580246182098939278380999892448869276187224280824749903675712708835015908395504454535845362328970094555297158494492315546293391238088361769120140944364992207283117081579677420667621745490273025690328752292433551664635379270695459114899508787139787681372713472461562859976359290585623920865609543253637604877116239863932596385524057439787156228679616914207278738712061962878811146256033293141399327079985009402174515542377883962326731475721146305907366854823926325505801231773784778492860535624661393967820894728497413857770803460906928480800894105148113219314922650883796639764851588437831017425859330426341673901546048170847876079488302006662612516281398579182390927244643358238071364416512932133800737523914582730243621784864205439436345080923189550072143144607993356910948429034339227976563958220646926458677381984516258304603817854294081324293302595236373775655634032800063793045534724327725000775029492519243990221415769809818594983777623157963134522029076611996857841959398950030142519603234522476387030959659356150526098655516376318718886471408351582037215379124677062061973126216804977674387470526692040811853833123369541099828978484869662715063813409575692419296537475641168692695902570004396258509544551096796344867004464930674337037782380362996444100489341807708899226326732963666194393502901340001615905261066673580088467086153697507531937023696079697747928996245306300497908716265658249577930280012021492917122300474068949330115910509627738736359510216917924134463890484906167053658028073567616151765706431165059677083850382183687113421245838717597089694938563928601560033444252842713723781682901700892977279996090125247870329158176904008153482244612706429109058710461324020365063475301804164496576475472430405328101698883279974044033698261856551656504863732532758921008221155398858731121333088712397479163563823016350830505263732943552267767280664351960997377905307983695863934703378406327825112291560362447214259030179613482060153617248441638449340589651222619017111900566128452436103881231822761224501246465275393832502882832838079836982889491320253763745638623015592103811756472292635601796128617057576949110912887028624363733020903866105423660117780355965091704574172853383829896798957704388909930462180780033604685873674751774422073714971553924981222593406080504364768708558008744941526410326710083139418892413677180427557986139113792651315742054535564101422941615367416949518594234471253545399640980316958150034209358971149572061894817166457172251066695648921685636436805254745609492802326783077595997684101315974717729429603780430452224741810059441720415931648176286032326784550492472530752692226639358906439580895280396255188554647935660495947570208550995611417900210780074375739919432219836331381162712239799027645555437326727874132100631662111948349274959522970018123703365255870457689479645051280264321894345826755143706481639984223154136606551829485528910101232377984707663051835774160654285670586303425907522104213990628754560617381309043623143000780285561459919392449575863261329676777506952888225302094944044888824950605484399023984296940528326266335729699729116795551255674624137302304001308332676683424897241119648557319497758689351416627084606829071737632790873414392756097685538508685286374694294434067419621881609195348354947067635366603288815229199655289282969567148294072050728051367862870374340030970980480783357865384760561906956792571321841589822328280424790084718365736209676633899225177671503715839032910154299731770758298450642911422602893891361428161056593972162724716003405591681113655467745976400524109770809806508657872679108558475694374537972818313122293717771106734124077258726680303801160890625147220537034413363229528012753043869354564202853395954351002137637261092600845587929585636170421286040205697550883223892457349816125069781485252159414145587012405736801169056223181293872833189637687798576124541830283058500339963378853536427956164950695470497361174994555562074220486702394877595045013815032459520870518441883976040535754441439445243188044969694007428207896086517461514014918783461077462480740579695876762940066916936946586621058759989218171883073127122314989231756490137380179091622571059437903825722489870973428813316324470813007156701561990376284241629624656033321483139841664963695671333870648076119825940019016043425524669297864332269213810962171968880951316788138979135030110009615401659459205217387973082557339926303810002397419633001520784805353959769945366515667754675569576360639734733586019148272981554600141474939344703360754236804253554575613563732706156218393317122556335791977879573117178029619153524190896429357001847402467250893824028575924642730118712737373438804136287552176775864503983244694334284203860964008582256286942081323485979238994567069491785222099622052110790020068728845648244840611461921696690489335438498739137782287566017301620421385125066449911391337578534545062493149811853756498503498955857092322281554135531655532873521418293901107119627469349355400588440741570605374273128361747474403195569964171211281948354097801227342846689814738947182128793587121917954634301021967055758557468966363682529163447927305217515251221078124567074395069560381715802144654964055835307589235452843473428740535114193743055908178665362827730374825685191923250576117804400746843810710288019078159598328541956096110758209114102196915546268967532425213476280793604808418010512953920988172264152948819645547634002876678518079295152220304266105338294073398733848287392716688130334097645257563448828859955296791732201554073919954711434485930573123181292554476077829130592636270579728220216498733400348607536418270038046176472848745892646407972652883257647201899442028417414801798311039912787462875019558141578472174455098041378852644783116598468841845699319233537997333487513847501486117638855538103989814717337900686441941081944355710182590242435187919888229188143556915900734848787682931860043146139126848748877463820053544778877747689469546908778888501790544882276517859594016384552666430978534031785863853050696305743731319781626271260402985804854750677116888721325514261140713148182286626360104630393615310889224999810423900925623294524644716154356083916558949186975075208849223086312856289599615873733386840463700885428862485262940591050235912004155686512433788853059689118889592945550327716064898131162573915207127084081935214082334899903146280634849631753841835730853336587606891041234059337407733814838719824015526471776224281726226583640126661901132866737513986392592507259606669549183452320237358387416627590317552490385844787483045090533778749387031842092166877269550393621448764627560667100248645368041243504517232705408066651165120824541604919475344261594475744157914524956213078754158008590233886916706378596479291004979519628115855091388877286935852955435274526790047911094065466557687982126191236271240359402118781589278783858821621016960265264225374041522309184215576532169998595035344205928001595603278853536602630543710277821901033731603235305859043993669883003419596639491422499985988887215877305743342616831205175745730915363637619664074962335191570331869430663093571890805214628031432473362079612366978018473355495364362003191555440001775642248679798680434275575574920776850712624349265744358171651992939917199055327930136386045216610450988549571769089591950977760060808080288402977514309777648930482085537605497427803879942956194734557325350693694122754240227627329575427710188177393297313775548354480041529591588425588697679433472373627063989709943608189757242160158231895642368578701775724636457164661795179266208413584275886075398527445076234910605239851833529312070180415646910203008000422402283827846032356535591501737006763539266863880466444275250333540879981783802932567083968061838583776490930924938812811711137237025150396907509398339190616437285904726144884889127252358080968738624385467283936239644896271855775300236565803530210860429885460013938531056997842472057466597292421158117335359283972018328786504656667912647635645458339905631114213937572117785423999165194901859096422813009483321552762677162622912691357263122383356674080387740196557731817856684524803127210322163773399165033960478245242390819011303754481847716426913075839015524162909736408077756078014371929593018793458217974488915605147153135977974378711230539478641192729229921145870170095904162251301464108115322044699661948706327421793041169549772694459287881367626832042322615595921531195955928476199992532874763609556320470386202043793892119112802853367429159102541183744654083938394512803207849313703033380799183014067293929874465339154379319164345157861042690591475230214743458588267658983827435194851176456116357394414661815083241876170688729757312872410970412623886465639609376647894087564656831002303051658514057961233454771746161744973552636961750451972929390820453797743392359994886612223038362067819029078297107542040974808256897676389214903919203884194689091699042573746517738798516592235635042316308468440451483213902959318522295681961502734613735676508544928789477186422455362466706914432627438357086601152184442071602744373564645517463316369907496325074583727474853158360266526725501824344702033438619235595083650897862405615631894049133624133132046916051556765257361299521311497860370745332716914585520432091029428753372460451844770510428708051003990782621385568962085235939908472177726662825918083582514486057696829207874749982016604407883061593660388396711714043525370328496375832278699643926139152190264012945807912420709167663218208158550104402351511752326286173297753898058682343221423599998634940088298688225094008737562195885977395091376130755916198673067061045901150727314671346584227881308225690339508608963974520531217768989052637665344540971524046408883234988210731241306588684543335538122035357629944421225724889919605052645964774876429241964208437437354661339377034382739087169370834159850484951827606501274585559592203859904401347248207064639595914956088175410695644107456508585480242715462322044936299336379766664630022924586420496813356078444782268546243349931012915575292049389706614341406337948241272592454762983090251478630269925116531874143208406712135554891469098513369961016678922382168125521149651411267936862088150459803605818730683863739228195820453338911337295412792796948827187308841295150625868475029714776455974293291790829098280752765456294425157072684099292736984971912314549406856825463588624613668124065272397467354850961986656280876264949245947384581800783106431172159712148091984915142866102215275859887626948939709190473512901380067769269721323145403204555576355766234622981979083951537327853013580335141627478777166808584335075859010802039890111908289701885487658229633639448907089321997419691160357701348745074860134811818218510259897948751622035059041588982843706653890946823726739805905217409266506918278825212037311425027572482811923323926007234945493817076472071098303033999732260316784847883869259850105362289439938637730804957761997506962578103588720043242211553347223949037515024902428909271143301820674020157082313213180802641985480305407124241072688234898397222971443701761929289329254809888517500005344120895957828777910284668132064845471637877608508953690366244442216876842335479714786863916574663948024078087275917741738240438542603605579547805716805978413832159031387646172764604474108442330312262560840218579747665035862555211994771726123849136147143365493919610803243148932026727150992134640858219205009946395098905627899537103919308027134774596375195278706314862389584611169902964939971396706943577940755548024201789272423305171160684708133670814990968598837295667568548712754972571829666083207095206615332985734073653762028917953196990866625092115686418324374855847955306463633227465621824627503527197832271663338434142166681729844189587733782329458954913528042801281039267660436459957072718402853544500678344065751879127729345994956103834236675023304984594439142873426176637924669712751128822122103345437987514477531492646350575943496422148741936803895102478586135423217381718506352684889965657327557040079292213342419172573332272412876716096056316941916400141727854000416099332477719766899757632055680878300436049943193410052174812353747485479012662460452978779733046825911078956973503404681011620447072973269393161663717304934807808189385629031233390178924757694953620099381089723370647709915993378938219028234493257816943575826144440555369721887789465327753431411784186586431668299219580383962390625224558167703812595839656843657421174288169187285132888433364131713663727206949771417329725829593771709409503860673958556599518313023092378614877149929384475574345162085204060039045814418389296531539508975296497997648861427395787422037363946727385932250863810498294678971921375333287892878138957556621341236834576295517222232118943134769131143162769440271758914495024599022832826813801064302150097851902644159127261685433586705377756919510313878300696001619178579167093166724897672982715713035972304210455636926409543816171920711770654518262607264985034068674268911944813302603223063585246870596770667324216025849646620795643890476752351546990561304851297991743519784174443077146035277907065264159946332668477735606258708846038615000111692879586281225534312863797232276112013275036772092503995124912106944554376127051906254306881694716679263189502064531366507865660519985200618625113062282770643237032844966499619177981157701863512319006373619085341343601215363100064535645775860056952174065838401091082739925210434980773032186735417160279322755282731419004684859619114449724165399692945637055464331719500879791261733665003479506842187380148401969793568475573601480858865633926272507108077941368098329139274282747728989401779977933830425012040480465990115805178208711942185072173312804753160119746503405588562172007017408478429632197151001883915957404468292182480706727536856565657451052002072981461985069606964619171914553757385314747546612458610754519039784074448031546450635015456585082947990336339046437292839324470871967134428563687083336316044462022316296635395263750463272166277758215967963813489148880594049240837956582049539732455512668746480333520419395356325203256966925121859407466476872688641732862032810710786970468906331113720952995413926908867657537222890167740580660813902497211146666369823131945400101542809934608915689428145801170518041054895775768949520508723071728143142618246570593500761984654384316565804704200270216804377034906554631156389042892735904424793041217610495976046788233499001236345094926542861173312528588848406484395643652794713966986103613333609762842543575095109138491040182885655656182389443945918348421004809307551102020372115549807077459695742514125618165978659905161372945175424566225031541998772675474562269466049514900332441444092567854902843425801929968334634534984441111856863167611628515140959756017134092965497717934749601725895549925797871410850905784461156545831399465881787081168774316065829058030257612226526832864773869238964968352426437133151686178783178040871072510460878793535915395278340966714206824399031885850041805868157712751472087992109071778101859608065941674242243535322005896514611150174829679161161794857520324983624528087592992173063286505930190837454379222854005821189198768780886389804332895261462195488471300502341512114277155182266962648345847836856085876948441804082584138007050866217894214883695209846022500132576094158528508931442802329569417176914267448309069355711075834156664437300181384333452767972672612152569284588163868683087828073755686610716811842629979900977531971121898647130448108221699639556095160626310838828216596583539809016619287161041486390198537575020099877036675710250480911793270298529728063928517282854090464445505151877751776858832512662101007066541437052133822518539431528543716287427921166194513384785696812236123378666015544793707425205034510693514044569590172847783780603800852004080763762361585481526980027637482844694800946583488315814262646780662671327877956544257631014626898577634490605648291059746331024483549370589187283003332481810873355889667649933191223729220273443462694456314085918150435554677293634016452802149865638781610087241764874765222027486147981483261920150451838814390763658171834869831231044661994057844068416694801357950877233901032544420444216395283862486233888803798173104710520347224033000227239553139455740017276693441838106088705445606784889105698532517831937702160427414979460653451440002473945952765982399028501348630924445619735599952194072492360868070741867620069812358427142655050357233940852309930014222993229008382967193678977906131015835306836120317658647446836766021928091139154731297498333877961660881019761189765794316189138643612044428847842683091239559262108175099122192603893233258291909370105580187863072062783796189190101103780893623816262717273941993767144879221807039569626015236547392021659354055654917288664021401752723184367690888397959926522682470889378310197450161662684677043105372112016177712119149898322225995266200528951379091919292043729225517250549389446837232750086715012797761902995846551894967566178098474254200534838269405714719306318045321874391504983142846686416363525208914013793965272190507525150646236649117234960256206228627907307195193671205874803238525952346530778252349600649756298687423737540928991264280864644923701636389785129933989722417613375962945664003529437386430632049938298864234463112978505472387932569613213781867026954165433622125007954591104251065347336591674504931696018942675776063030402674033968684570129540766215093626686817670601518901422910359152380130187690960985994251751921325075025949293250456800053266108357299913159078087543615322137582030118791868164126229604283074820999232493732048792689843964369898595831343448784274875177648360521967913825360466822948833053873855181429710861138599621355838421295367984971469973918951987242979359983889290573997741386908873968918358045598499212664899028517413370093929315724052780615847420310893183391016897060311585668645326593467213335436753212233538154813093187372963255324096297661495196939367585669932564719017237376354864362962372533948489973045955650224818234027001976971369971958662134699554714138209046623370173262565314819839096642422116415374544135366742310616882535820343224337563811004591879375482395718779230931941825468074736959895947659498406420486241016644085127595078147478718879064485548037109134563665914392556830712190717799655411190682753935876710098910083297151511113106493397717116633302203136102158336337004871074349904986256657637100661425085364151131824415158521885885794722630119313647129966943650455458139970182210375081794365813711509039357429371014659773701203906211811076953887971954348040652120621870161657609954662020203908744693088578594783309579654555706583315916726683334958766192229615340901389484398831173860800413002465415557801564578992048239365049174475923048322799472785427983499806882316198526032491990672492383780993310023881688364882655218817508462039973713506030520873464260279318653360362443892007741282796698708276192883065622877598173893812603100906498744094304493266135026452559292790304718080374354271386240883604543057924051495946466595008996683856841495229286369843702460487308630902671252016329895836415586091975898414389843513403847894417040514618822111802189639963173111491079332746033345016941887391167699181869196137352032202964530390212574750876028064868730699787940793422091679281925369429017913922226120324432847544239953375405333456908105739627956623422066828471774287041307558093093050021935738083392070714878668569677504678569958217840672434398671377657639382871058345067979092750385532108227694637656285727750284887973534722212317803730280867305233041535072415699413388442417567639749096342463418371649938094869858856097252901022382160174688370393779986517841423598258395824112217456470370164226129903174180911172679054268238459081349931178576208005495964301173049763371290938637214481115670709283782395279679393675856265295771073534086652969531836747310120106109183403019810630139287708102078920448276364615115235736668764881738872003199396273199093297546799748848965851764371385264848518586546594221145937105782332741350802973595035552468329463376131184576466038968070749311424443126433603862930209472961677246092698235033718784875246040983393595239884838564380188204730791958432446082603639442524583798051587826915365455934194405923997380278442304724546940900051886663493992361459848050639305393866132341277500326178086274931975517129057477151893434537509357580778000910458615178801192516908330634295625206105966844254557131775670068641824946482508539244953436975885969569691764250388557638497908415098341355760166018526328506618667560689510141114276347482747471610086410857276127202854281223085265993060282958217519493422738081175903920415493183035145195258930808878687456345041058538543301392331671937248220316697219612802733930649241407005859515826242883795868831552558184306653573769918243504486068572791553161154158071649145131560976425516088418077092143994680433130939061635049461042220583180772457638600736443210598056496113232031435045096445753860281358051513585418191402635857489730667746713743000138960079919538627473841371959242141271098002665485181875804599202958786416778237887871356501128935125431441939495048971193279409475132101161597606972740056752288812074869388936943107088705402361757186244997334625097096491391350415111896112042235653497172991556066695864547487279602835188233321092577674634216284157270787155700748732685209095727549666156840540508129018484664803033099333516448963739484661428196199459462033419585782517996879694391396506357843068870504943561438146383866613807006750109253304655213042986083840210925965951481905421069134096960973900263032390511960407299607706668818742403557251832229566220908938600144961762273539254320709792631882619286393067234950087613915406965138151114491314024926175113165348587164037959580828075693680568047702055374978125589507193758344108454593773584548412901074759675391386136615278545569294499457691512835619524326143108754165320702074673606605650372098594972798174957369543362121125847442489678498814640379204229421180552392190593477212639821084914812578444306415207973918837590333042386040206720674536344014613882787106622416288592084543563712519578109173222553626244383434755582954047810346454356807031505909909766482289982655675242373045084067904874378506428547399811178187967685410629849494976409079393487094927354804180190158986886192934950738287093685459563728789982680775373707981010078521003699969686360005941262602140412422964837418023730550141033056360656584732750837993315688162008623588623541050458272531992710800994200451841258365023206846084528549507421640244668705844203857539654269057883916261346210622833927376813613452981932001337336627223883574781198303567039850588268858799491423690701917914459768221437435136811509296061496985835269630122301164527277244483762862817022016681715695231633661451213155125081125133334300414206996382007311670264552623689297819462441102528742444507679688081985465375080952964650097114992162042659645194549955401120496746886205334276536148127895104503281226999626792284621719207164574066632587216903985065994204665288890500992268796715687982045211172633697729280463084801493139710022639114251808578911047124593070101597127197323140623106908598008462428382423165881902068099552787469321222038336599529210002600549586059317824196478088218224294846766465911104171063024221162788536898020614074841429277597981741516483358162905614588942095156289020052147785896423521387340583463690143776262516539207734285116864622059770107232767388474060078485026003363948946726579346446770589417547080609019376661500577068886793921109844210330600745401187803448425743470017371637983641190825293294756903464917281156039187575646370988467237834842073317004874731929683503786822764059821696377544597640136238836774143138365298120730410095749929193360567244100977353734479532033326584886878455124314848552629356089317189766309835071405743019211251916804656696483314508007198369386579033552611771953069960091425592036723103711458894784388962419248294118751699448635908740726977195305877725912689526549363757083262661794377064745723457094180056734237668441441853858751697375997884038630419882634428311787991890574554252931907891823555059416228395788350356412707690172398575071936931374527545048139958890303636977765316905931619825120876527478839586913885625923724044751641662976724031673605588669075259809185764594035793013999288442261394326289374790550597801811800289613433489730010091681922952093776845907972799587508655738289936672075816474804044050148020757081979784737907468146937174204080343912398351311929882215589695674967416532398863581342646721245333636956222845790597191375085841389731191246013416144688597629968841461375853396314417611980753078588381561227004388416116663344350794555915930464182247483740250809532621597238266449934644149612185226630033321008460809359985585238827699401333033234918126141598414426501622580484927476659305776406442484416202626502705767902805436034569640479758510498638378284841289858474194363292860078546779424010801812199987805696690431962744816668066719723760747916238700075718289513628801414621823364916307786826220378871404082320457220944033550311814731949808560206841914610587461743804188070388527585926488029112536706486906381948056956912501771867096849093375016585229414280188063750918847632360596059604617829499865480091575810902148839408204427998390083641159051814976539531263990053267789719489337375175415858876611019107903766452436373688349588160749789138381359483433673210044087506959834528702708543349463937986032425041411996414748847544728794424039460817468947183780575657662400836361802276809420072417229663094672051425292896699679507482059515999288620601665932207971341238349516093474803686859782586008640230509360986647508576437719816872289820074750498645934673520857489758916519827837275810024126420878313923555233658823853750958131687417259594287775019181501771991762136868423560928364653471693021357139816563665797719449031309530729550782056638750891727948350905081835138657636399572642811192519700984290656409721630938139079134281303051862959381332119744512953205298147565870507035156822118349263207689699663798881135618781587258195161791529377590981180288356543584980871943025583350771059975856533505492383834006064530437338291697176535672284172849216686943878721104185254107214362357286612124365212731937224962809942272602822850578456877735094681826938679669376969638623898201884854251436472422684449842030660591787861988599245044059656724300143060696457079015536633403355626013450544726339573067047443475673826025415744767859980335532402582936294614549205082794904584413973631408825169392540131158822639151160124247756919380869015458291019027342389386244906263411592717902340811757016015085858156357462873389971805476456386009882663466763412141282762862773834126387513786209933327668306320413453397180211297528899666018510897760346633394709634148373778846673563373704113459620138693899991987809952130349511014499877986645489364611696436347957317976695149003811083485294422630755982542371886452009635476461303499059738536390963716167774522235363781736735968053216226687069289405340110229663262702005235584342137264158317477711709965915436246138332915286763457972342139118897482305958533614143639686245493457836566008954758080068167612035355883261024365977925192740927946598608086669548681308813196063328172478760170494284862597079779394685781765339470278248056981337208289084080429917601013437561874942640379461436167080792730717710799758444088076838453935980257429305994517771215373572302749550781309077593652930216174811676932245030392330001690542945124148462233575861437877275214441986850535986585627019824835029132321837544729179950637780118892329181508942983397438688161899356325503453372005590511048766015427843780649845584444391011632509833850690163243931350133728364580908939015666753635416356578927813946702947390100264896295666841696163993942418244636374547681963449517456781373761060638970805206320168642901116244371288998435367551577159019398330859500851994943214220603243689957047862360589872651724730237709360658915652195135719809592197450415981935779014823194389674952426850550893615530816937454326052920246713949334347659914055738553757915657309662474103022162788678536464933486056843607467431993977160380526984356271812282891180322375847750720597023306426974181472033445843137206370171087043947311046812831434572402505741338070276981967068152126797013018466585452050810855047943825022602432614148706701861929395441989098390344723130955645332283183157481847453910445435797028214277377953185882777327171679047919411074578669559108804517070218962743940649161761253664515815159717394701022585574718662026719444221828716348031182828539515668283385405125674007312449174750996824818965419939550192585187909834595849701675943564193384175297144279331112091578392343102248104449594246933700410850238689591310270361934920986111991882699741199207605848369384405911419691574200323471791783751512507837027663387988284375068044241926399259637800509634654243843576985550715081964186650428069815548166089395542357171465830079518246604464145302497893225373637350209278078763099384792186318002084399886377406164318959040955051303705539370427382716662928684624824694457365165246690227111984072109979408560201291959924377491539296446087964379331678481753131908420287014652753894228243203748884133049829561655966932338422891537126211673276715722965287609760836848435472621716553963553769587062015275155722788085705207640286603619390134231204974759827072382919706514111852242728069953804182498737256699229885860675294054987210929504647511176602798266177845997537058604405747747596111890252312344409249054213150104223607455437050129499284665993986516428488905761678707401567760907726645145606269375423146239442622511099204357167208135274926526121668678037339374071949086792357596301327001342064064683107095402919986139452428854136376478155364568965829860986987350853731344567812739199748461094617420946370019862528806897693945354725675071962167316798820194947007427570590896836691905790740748339281073444152421262081457202737952427163160822617599272808999760262437503097503510943447088220243782203073914108674841633263861983952403846948514815512650378329279294064028995032013233512898491030345834702803113310649053864951724836586369089229308288353987163632918413755069719947507762886967005413568480806811453330615915769870381088823296055105204418521817004838188128702945653724236868410713866742944623113425654996442787408724594887055242260890076895926278547080069221419940534918526219566953537624637410929709272261588095436883895186850663135070804783878718883396325442185664240636919283133490185497632294246080245483707031045638835200112375995290655921464311999030109429734306019300414032841445135288575538397605628657654280158794730831933318093963205788294029358647919141027071527624491103423934398581401914392431180346580764651873284595238047218220230384310891132521972885159076525105267642808607629611932189125350586126314226357575767103461210639277557685999409713993299852417220265214844301401343504523902180664603453568304841417855777830321728440379427232923294741312380486907763414604098440422101575934201766164810266616744263390381951002722413266205185321269401247458463329103890022351227650829444670987952964237095823977641071319648377729215693805230192884092967060466291209435162002784957669584061627909532945439783641741363516299172094430274594830721993558795276723625513829665181975406389699888124297103715014725773117120989026783195270549966728676579528393623772803614170628855155547696660045139853051344567066434119517447347078736498992098200587983091136977877914395621182921795108950067841054478048135518544735191882687368814754678855865722149235262470370290797131125213700609045996151228547290653515422692076232331971848525420833955605249534926435147946297630229280266750586284906158704328898213860231753093785002598890464879407164406781035975361364934963406581185012601248266452709773253008471001138190461550154385089749809940099559520656137611520465699629738641744834252636687591773363741644046799643089171393173595943317204220576456552810543543385476444764568486209732798473447603759873991252524813021262431121798575404422956021612597378252811110665627097749368774835578462294070025273745962272565730931660997280886801137684185700677667078705480785470437921126549364547661196849024222729434927811747105733355276921654023991808008849701325862914749189032194467050818751996083195449045283742044573022791240907916683462249546202091446122266776669579562504947376818222056296531445810327395016733381237853532157078454078145991058829347708242209984448456027701618796182218369065711394125398905290800564378474083279693485054960945163691247649546762942942242620077015859937956891256212683869425871989290257952570529654253783365137307765217589075433599298119071022375650831922461097781733675812134130576386803856787427004889524294444198990002272761307751711337921618199266768051303219054771224368563029809543576727680582673336203695327374429161636257502948999576549959406282730655762166051019887200826051654590766389226647009899117531223081735857360155050515616216602900354383846902682769709517175467306185378455591799710293694358169691731401614478732436927706498310899784932818613181333917272114636508790793246915405196039222817999489305186472939056250487135416565308140833176937303948820410478157934494181009799192157157830898521014798575502819329551858085916303421876251074850244403775829312951572750722542967619459866069861905641475497234006674245944611547262683353154127513168318402395764946111355558777182224041123211454369993619336122744587991765553338291880903946804839805285852850823161394177488031620041447219251375305936059096653266905705688966766280376320151632726549943855428624557565934451807512559692300621089730489551472275622856473871319390559340333751684749309604086220116322265623355240475414040358792363440962429791929114403136271808573339095074600625628851324579554953662590478055902554238589859414857535271329115110176025005790504845696354890363162861349963010102394198674122789347765691761334245836011194919117735277163558339409818079264277830798579910539186028098131602379277147623688770138131766926504248714058694229734500118105840715086039014958565834475919270190302955086823456465612780426294134799154180760659209377854576154517495332502472117393905668150127999379689120349443010982384898661140637408032472044925021203157489263415670326820218762836308582270884293028569623239290307712790948371657380657577622025318716847800168866123459684050565220531840229316850865588476634387216836445535247213292201904343106503282020996293767526459883623016058338325361472826393525541071568360253857834641508975861876502667297027310992608609927744313259520055174687183133816526971435930986066100496589590832012325392987927039423318671946907078278572803352361125492868930660840235778954786974580546683826104419974639629113187479454178597721058443348555533292086924818941961758176718815335519751720525943177157077924378465298845236183521125278646087663073919903294306854575061766097898186381382626302014020354121419078418575211957805269547586019433695409353671071482164876122976545517578868350996262967797932803711972330150523535453523268241254151996737869366954790947215784164082939227730124226759058138457446842795552559066990859477780977147897350007583983099052825394095414811233320919329698783648244060580958787973945980925650262677199033027166271509261970533872866940297761890026926297297682771581354715802153541746623978063997341259272555816743250518770416338580991450015203509068689470665998274373412833384877198606835662550327088885864577946210746011040728950308562829132253792680189393977013509535375376255944846641646643758107771385227209226419683963346394945554875388088213957168093908081026048884575709655153181532956220635205652165484086205803927217153557426908119173371747993898769009564250274877097405442826386824583096936217349203409114734982712537908936678377468538547486543547549743688794184495128583542340647862776307996764901748308535576875099794434451801731460758833364082195684072190880732858096131824909270921460233268086642314420000960196839262941047516114394997291451453953038222659395937688153989790271278557137525644207193364403549705045739618639302498251206015433153846446001612093793490882878200933669072441544703194836804239193673111864151380371778629936571482121261236489292202741034091860702432490636180410951772993127589399099933593968235209813198268278862569436522453328647998854354764762984210205002812975871648243417499542269364610355389602840874271291269403059769678599177455580853335238128572980803677779333282548209611972749612516262846719996717182329802836898187385182090591362374627921311646560482885150623214352161378825353210222428239114721405620620094355525625122030712988326079107189960569863059616011011386010296060747113422681088907180862449980527851453722036809570033770930006741095839604740200066779691924897273602609541697001217863897740108906449435270960297635050254164663092171597351682180461657362981960273844657234058311474508407422381931626143902926459576656042213740377905947420509001065620729385635913198956680498164356488821352337792913441419821059521139771908867692025065249166133116383979741824925625381914960803522266722036610132067348560970694999702429601218537449636782869122939550038972408470053049237076938431014456424155383461590935222119201206844913900651613706802496768533934495169993508153959227877668283722916518302758875914009947308517582147812161835823411194788546130820581119214346053746657343658927762506993808244484883439984352438017517412410029627641411711674778192310415574172627652165563482025723293024056887561157274247515847176752147084405345056183259249685328919252287855990817662174565133344111046489348055231465138965572173584097968681497057581886719469156041756038673614380122602094952200399418777998841980084832714835492707835009758932985663348833580715208777928841957282026087764409191577054906945008742182554509288250794598795713792844309294754401578733757228313451845682600241231977727593923329358383451532172445010158466458663330593386825132465580036213084796767784235712635399625151227713737384969065013300781008198708905766714071907027273572990832854138610688234047800800916262892018833142661912587690282587764823483296009723561054614164434843553516411366848968571356749164006636738754511508744008566455846017337781757017617644449454681291833167272598250133102866741193024396662211193365978410866403940917706658101942453768998613954488287483391421376225464378716659589328866852785507603616307546642972501392291371032989121082182490004306997587723105182528216594659903361432592526153324715480225362428622673219149647881649513069497613026766349302764165497226925615100234360883174666951563776321280422410895336004838201506302014164224539663300666645085732561830454623167640165713245748867343324420532464543928986233959902694279583111275519201847555344511799536673803341916151309683505744914544718105324906833900113771336900438920724083288774507272735139795019818728880397330131118191348134354629657833454495206173565837360190550071755068033245265100458356241591262008301765567316444255524375125306098272755873993713176520997324374043857195113439940553635551862421660172397373052228732856027081219659216459196864095417394840573416019502735508145967930194137068328017497061043723819327023739418688412116003483073596282842726992343281590422661079154602552323476849227461699455214416338162812012144527934781226510289191742530547886988798592899702464492323627458541771327150272792437130691192090752335392517782557443888599510601875746986593045086430488526358508600023231844852628071278198833859375047927874334737844507590703994036390600428792505457615442529045234214651765889195040692169720566388659064385789890106682548263248926240103796035504268849258313232510903717975870489796391438872668998283832780647848483253128235988238798190831778610784214616049457230873922643539874708299876211418498464815077440929877252962096292609963161748529812220052080928136514640935970606557563193774537781733347180048863665870228995767414436213398192478916977876293595524870929249146319977866617513626769786804260466748264711688079735857248106844653997180601993768546862465019216602044714277149400402728374476005657844053878999554297521565202807763724368209571838866080403041257072152880350384820340847593785149336030980318299334704682167980934680416442963066349858751763248892012703716775651992870450220722301412142259270712533190167705865880062658097119729590605614837902675189790712158488762395636648949328974068202947556980068745115615154121019298095949719074308943669483919770461310591811401937142717024368752058313854143800397626324171804294456745638609359050969641006900357585564126142015163362204713964496907560920170218191526308185204535099393602546570393676468148956474273449720721085824187506394512850371372415679157883959457258013097470987042452953098940249533796317868722995669158671044959568842937121147308839475391085663495175071808139845308751677447122985079049874655517799430134139026438599190598052984187052437265999196530124343464326513334032795838700849112798360229285264265409856305606219989751473151742438738055597836600478475640138426168402579684230860710202036149791171666308534590459414070265724799095096350488902251089933142335559937979629122972626740602310815279530330790253637144549849424878109441627820630448428917769956634369182383324910349147335642588131790250025426377361015707774587060221266639792651484854059766391986072972925471573957873204913085008654389291926340380895520432905540479756454785061979240278976125722493667830568688887618980608972990851121625328217498243498257100594327522707534063771089198442612163698509603532004824197399139965241554957634116981864274362884337618276630402515478906223969928681993047757216779508527379926047604882193954327120679602912239692785992350486606617231349288801004585988979481613187184078902353050378632835403019493508951623427592400316435724962120417430880491599054779051805531154200804327893886601532851492303820092395455655067500857389436949225781856817100158198988893208736340990153615975901460880451992119379398926042347973590136186958404866516746672588562278670103459926718824457879261612017426887477113246827205085354674040094847483204941851682859390431298807797725855433399096133481346049141338721474765512375298702958901503503417490659312433112169231392531997675557979328214981296127402296417369247625557430637679669734147152374154066761116691542307579149916306010506579375782889480280943721771744642917024405177401535087711030186206192019248926735185926628779011508028988140157913556661253060770660869918053608163129081372638868393327819190409776450220937631823974173292127949175273238739586765633581209161693965101319080365537052959119629218070818611237051866621284526754375165712141808969689490085114968905787357686727181933731422319528224725566497815029258225047893539902710969678598903431198499220238793002200272610624159896608323569057289954564380343304276656658032328287972698646864067119764835296034229847229827174254921909538894851569928223768140962699097040431057040902194379703029371990007077487049232434194247065039168242789465563334188487802317094286329509200398735157301464961077347863023606569847796104973748570639218817664741586165609290169046080592925924761132396834272707695417471223900160868475229273915736361171079485461973510914161254618274195324984841450044082274823838970705344670472054150838649830033004693004445197295459163909912413263644940040149740758047672319461165458583211860448238477026523914618943175077500807377073436240347303649978094074069159072070638196457574678526347718403136780981290215759007413693165391012109829362728715834705373546517315280311528458753604662264923820579643366035037026074504797893717654100370327864137993337812692955233553568500025826185292696719912470682730249121248312009265906049506939776842726472693131754121083383290795350111990219837170362239003255423293787739014059656838126993320433592636264490229947068009307434502299620150119364627732085596648477352346228532923378053330219575679644502609533134099701595767625466287928630740796242996148014063476379168102718167636153220684540974373182771396522681361728516554006661725646189767517597442215607446258374526131451782588657255606953085831810268173848732329837447986377692587951893792596770203506693590718352710401758370243084304687659951150376519595592244173907981834345161330555771287489646274177918289982341125700549405533248624883082751568572101388932296245328030676639388517384309601013556762516522864707047802245876902613609342387717742822996226982614858457948497931416032963186952732018475367108605545012623673872531574726734058898367836564433766799947609460564774848622669632789423003976729777053692170951925683316551628628070347350864330848919808228786054980927026048454661982846216818308156140391397142807795346680258296323540589011909813275090975315064754829439648097806792817270371117175036498253694978965163707085811363098368031944327347161249916654737046627180026259565017300455080075025266203356832456926908469890666640431816700119543553187164439477890432899786994988300439671084108183937809571032597323661254297449516758647355506542758545668466059020100082471776329207830041157998784066965176344977797631571820271661067072830085239772015803535580358963650906987951314268183089974495600350492247934481502604108621862522676746229679265175415276509321954203388403984199772369995450801148274943840097165901502730362334787330428754023039100877538944805485868191527171512291468184584384431844306398802256550134388626734153279855805048973603801699802531247566884317808811590147162378431402360960696067349428778349592904633775357494139367294269504739295869335722879501446369552489499028677487664824010762074370368845805193324052018091604257132252225611426287339395401024856524774570952647117679326168639834882278234706052892961743350573071766178851644405312783343372520675690654051357920428525869230873258332374327440991996873993817671077692362656660831474063685526579025594396709866033147179069812976559123626305189921263457638708072057860083874229842619923036273874948107876470827981142137993521532961947895631617220436179476436773183367646609153746786638677583211143359715851216926902766568117569021466987132312789074019010822633543598751616589730739567662870172445575105494372110405657609459957620728718451407377162359994625864382932746645542267205855086862412178750050086319994260369804837341197472335695701095412738575378538746241678398910481036305388460334600824516599405169008696985595480865024454631207841839296280894919777225918273067402093629432001669248601354792406686687184666457590588999066257347528104976358155241131949876942960958478728286893155889949089814525246192599875415871698125426594950039263531140426151836833329307430555548914506748829097584735415892811800998231777026148166330838596244516830908950734697250171983294243517585982680358152220429058756603726461043731704975608586979133306815043717084294948644059485786557967646628128300379948390448612284260997622590857792524952659722063551712602883222719721458982980548773441619002698536065968103996107493433946895136599301837517880903665858816212218238000199153023033490149957730336416691586619509316398607935707445158840055746144023612596913221202264391087129936016370460629403273838724623937525889855000490523182121679533849457714593653666473612098274569710193929354428604995601427888904103852624893104024720407154675225170404785604109213245394580416514873389859164199024402192252978881052677135974215292303548857617360178674282112429273558540136546989674907334795002699661188309770746890936508271911066388160373681477837467234803505104913112153830061293870272250731080041847523116683209547287840793644963790963289752526365324503859636324955158601692986042025079054197029165597585026404177039969533745563173042026976657053667904018618858406860807614069719902444143617758804605927548316422796319790954146043311846598449509419873379596405663508631102785832858581832754052170120378679598960566200552873727567690713727489840431173560264485615664585523982699025081673003718908681390114683387758168398107183657507824156042548428554879207127803238399408310572545941528686637635994988600630113663977396226422829713404785807324251460974559523202861813783075857113774340430233160270256894728226519846719846968825375206596889100734308362620220297093585985310243149036664329042087475933513896063343744580603214950006194703779725349242953974468948976783914759683568618449638710934480461803184829194511380542533126183858937959420734557970742377451827031587201330399238613985860685587319595433742475536352959983222425425150371632100499124070349799725455284283810983480958975393872798891597051295717841155676800505991049382186954635260832399887998109729531007541397571676482872397807448327470882752577186759193473991840667393973015780023038170304533848294681806374254392951508984800842745544187796008627179596978558593534143745866246585803171124321886793582496442336360957553789480137590998154234351577520945620543278657290873586637466062172916789448689935464272548214684062532189917390962913375296630246333070237945291976821292958142950880567720045327881831186416705779602738596338263716122298658192958521513567447953802905307218564118162945002336432357048044022512361559633327224620964969837827764976355275365450299533951981869476469696277858108203573291848806011696603240889316086483693243730731198918325159568304696455271413655488544894836776534734680838902938153558602041509877016230569555055913268607667936656216019246684310262853080553878010676008523560211605557020503992511882325403567715516683110200244900280838811688967650083170331984552143968894254465979969614127588338699726095468911684240982626921532171407053492295333209425348336328217984537740891455170044457226079580492607831395668772884537391450638222224792014039452902802545461151511660807353817132883648750807874811765742350018107189684105386494934445098553781526905511513421257395562700129496212486461894716096113389550765833527231368136160818063407197408509029845434695561933990119185944783376725241137430803428068844347417660116051374493669887043269798255179129820979411742789602396435722315691057696714277208031716289334569585519673023746292728109152435771637016450572308364714626775144331532721856306052174722665688477297230669313500418714905305730442352785339423169856605075587229070483099978615029467120199097706814844710939542953410869606908365035340032928270896117867584413167592515963972626116732933581562246070572742227080256470564091199732219210079179051851158723752840867316954755872430081365070015787647586132175326440182978683245253393134225124747695581444814751276371985282274515141718110511037245179920799447686573856219925837195244704057188192873555704699147216364229341414993131937420739812117516154684763007959138099963670618441826690129964345770306511652510843069389713641731343874196381094211953354964045506747527701270735415030180227874300499221658619294958218451832704748725996176496860664231964933024163584198728404282160280623876076469703558087969526034825351099584174111711409438396342399850194340015246333086627641267799978380825800175439334611852654977224480744793721905036357338914424975260222286303347042556857758423270571863158802139736085973090576990796726294576352561556133154981316380809666566527050726948907652401304200535568074016993048925812656276128578243598277746213590275482915212909988552935853877317658136009767931986680964920821935685365417166530707440910525827680648740892208361926793496527324902195506164015038953186537830439410796176320984418044767584218427652624407482409643758226465113810425012066907285566262210362532470678588320030462984223885056875485280947306701110346787577337437970082062933430089097817506554881719405269175010562954642885593998052233877988387641733005406857352932251579550155451668315419640948377138834820915845234436890313286255439188883395972268975704971853561558598548593735326305418776455977670773656257580597051398492825824033115966337018318602233373130286783750851660177383846264446408370478770289181296047220608968932829125858738335209123026945361108885825520513595432465081215443262994628444678410615773973386202385112942133524869721902685807087117253960628538423972019567148642870368206541390188717375648439505897350723436985082222293742032977073895066921545469324517726094537225259708900445171829216529241494806401158657711462524996610478316195873537619088149057177444418744683705874827345464886489415939385085627783705474750715483588424790241312630387649178549304721178566804779882040128776464008043108224024254509937185138140132591872384202133696698911577537472748076836727219023416685917314130746490067474095882831952646662748483687529186592185985104532885244784081805479982784918884247722376331991007926116576367718774550032115295961937387543184245118787689099694873178844324070795466986052348212988873945753728298024086913812122830418036922870722999926927610116940239714908275506725542118815468692434022315966684589546317244914455202863445545295258355089303522425012643062688527907000537939925055886425074424850278162720699018110070713001599012366753192395094490448027800082498542711979268781521684802952762265944292456744923843396806293981632931267022836885295024774350375130993125809047330642602925309344475905153724323790275095470224967584472162144478140941671180482093684088787650136701440975939941261567760856349968124900033812904399502759738032577791111183679261593647796082400670239567881836127167996672431183530892028656257489362515546465225789943454225109268975173793291924165433364073496189204663694505324853425845613571897933348947009562473592174963537641129164255044846352470849215743389111205262650508049469139025647638995878639056955225447398538531719423178515069629606408376976883466157317364011748166952493219280261128530909749653509651730170589971193487528380728755501700720371203265770773027889399597150116047037215913859398061888043573284048006405144282654231476411708137165356876378911242020624401304145882035827749880411572539267495688901006855798269882115620364303054040257910826536736679355535808401002741059795214985241870240346402802948322105517590407403022123083947148932420654702998946385143032025165790393183929991493469969366379695935005829130243576966614547747267571043126422667386716050918480269915378999533832326976068117881953125204660926955743585021540777400345555443862955383628690865294908981478121232954201806369492090806799784622643139611257960619613141052584366760350345711543869511786044194527115549452095610809383853444778394917910388474278885889970412141820909124124731800626406457559197721903324814751635951545325351172538764419192188657908768585475037902777373413365378803030867525419243479932228586745697270364011413787712505880688014943210268511476362334821815474951245376930958820555887288267128335608971800850334999120149933704756471627007020755127051126885018934343784697479065450173927222994523386103166236860268281727455598056754216537337893126135893629597084277790635540684520406628597181501679929257087473757977588210763577188234547579994930379087403972898158194497553650859212634429291064692904833139815621986632667619330958032581635237062903908145927141426590804711373077346882051920192898320699096446248573978053355772812251057662092214244036283892648787496680124558400441403125874547711806938113340024757430398525461247339701387708057640767325918703295967389832000234506221672527251204030377110864797447046432786347348665981385912282969757701954292040343281032795565986155399345996300370945220254763528832360877338826495719752662131191049256179142119224061168860025810018879103598340029074001398233850732060152734462510873888143821402011613803234116846970697668139070653646111018474139358630934559367299068831839505759096590941525092940336495706582490895216392785985948623526587922640647148034801288660129645485039082539175057032803385161818677078347654769572883108705954056142893996272853923488115208797582069337647218368603948236280197977420426648015689691033083148265449721369832593048977359497601865388732578780786348998677818934306108932887582266710957917954421922173436719429559870042371865271654234726254928875225980198098205341612410647132678644770866227078342541162984940586282601956725335633283195840060222338496873761548318629873955552861581056861215504150581809057424472358596238342785060181978382168715252981539801299541978104360015842208541432732699222658576782745225649540361630655175166092815763674580803660587463817885168232051291266147307298780290527849698135713916521987440402945539628923125629267970009574634341334379851143846285152483144522223556676753570945862355183120803472460960888153407842771037353632070321171051363885269966115795163995863698675907793240906943347734384134858886795701636531344290112948212560429784969374967329308083632492596881724368513347560086215557498657348547305093891012481533308854658471720761940247261622917502661998612474252019006213676143742021650759329392646395238537729897932294761128965009816443462487442933183503933274588934318479104219262341125776316854668677439060670733525698849211512289448153133802231329148458771059716841480531676107602498862272314036699132860371857250350999672799800868520004030041316244581597511883114526269471839579306418263692954259045754231100700412976307698221532285181459137551623266918715507985257272323832879673547098999297202571607248727764150566088303803143276475116573172690983951536081735289025739965612626569110388033817992191245737273372908643446839298125211737608488293829521203735455351508347595621717074833218052700742494724750424979598497238741006534300511058936969714557647523629954490734801965264083414634323770553821074027191565686608147574810194988762661450422319766509723237018019368096791979301013729042473942347954440361292089944081055762258488332523204539316914027263102209321622926397464418106056268821580818915409374952089289437181972510320371812177579838130289466991240119177852887323931738977638077733830693825217502309365380023415061362506469663062978600061283399318025214469702438837178344428087183634559254063231194781530193904420223444370971691627678569793326382846916385739642821509868357300454823973773204425498345773156979273997571364482279964197457901183098457811129310977432894642877397278513140663408693440076884514707747821336584240811566328235497864803719057669076783694984812616071712167960605459158841858736120859051878010261121782257107416733264791364425584376549534389351887429784034139216169238824824693265224809127186341512501795597936086126974522066050130570991029886887383956429691368520339143064945944157727874735471423851832195418775087302763215008758514585848462660676748785051346848357169479985230290167277639524711783552030889049640001566626377608231380440760206652504390783344088562647570599830736460868154966446792571645429575075751590174233401737036810514777276340042406764929065797262841913749869607991516511302426798909377852560979944663539622932983877326696729186969195612658210907310359637382093331428665595079088535037649480954325902519268179175788199320932397447696031010551900471102848232744219669956529471521130643943307761330542197984282576550770405316780155918892265749546830525246690218960276639926596455153030508644471696088921795604501933329753981149075840358326219116603796936153476855181661293941154161033448476097161446636318484415763246604452012797639789726861196233231832260130176535540153486214422898455571322283505598953092299557670400282509670927544208691048432403685657844043988752100086973962352603294119073593603036980503243670033245936779318530048982059815385138534122289981049739885361808133017675687256917701927547991193121197358681992259158630568371712370558980413322734195782617761709263197607006175212408738290808912647199211460534717863503922456152244313696009758593408775886481748710713349101850822900194672953946035215407833389086936384507055386161316798961952147038178949653963295276662161598302324320002234741169679314825904972894906061194567660968418009700233037911766612846067268832761535664060453874963538515561619515393012453091289385577738680069449180348248286570268757577908876418675924344150072159904002117133380393567100257711455136528477103809953751720220656678704211398398628383807893769435471144831287321087048200600208718663011750337032193584713391701532284957948253461646692896061865254916193630214415207690262867577541389404894545167928598606418412525849478689873937213074043311973673588672222068137520558532203124647596378410721573370682292023812346971535130254286798884650879926385681694700242228585659190760855557067562942788244888620080677826020287946469033765653904001005482208812016371365705810758100788390630975474752081773991615968186890986612573609271698984318912744369366855706309180058230249679975307907056606013539069280119995756268647428500257824501189624939927384117657243171955682063618703468089191565395106386993536964386859539936926236450749927728310322315001111286042320455309183135882898751012312049447503893473530375223772622981344938666104564232479703573323009513758046603571158520907456138697705486332927963186420480163115788834433487470450344041147608136045207610553701931068128396779493124299647370259010014718247227967398760541902933897525130705408290701537938521792777445693143720807297469852825984996402104488270366957969903478295135574526116292564469121664328342608183223664296930563575755204739649609770933436256301390054102305072951179557180592991423904798017779290379912345377816390865311891635421488155102233579844391901315030683265368047755941328945197860432842039678984002700145203237048502798568248707960040551077634357460603614086724016887934517267717552827844787410630991015574384201191928811419084900121814968552722567978394527235757086696930449059036838397281568163982850778979594931382547528764605302001371725422776539576475521568819819385501899292955469675539706061294553964271302261723718549182146224774382312658701153108825279859103219507614927429011512544160456952425796042548074927615610616125322508086756748150264790775617464502861215219506694051258010656390908437433516656511089976874824809686829846109456026736090037532057218371976393605629138895893398815052893710856966338701181122164467387535111768529894715254037521386506561296029708315594064737902531700306800162815055164983718561822068150993728175539111048723323482575674822138737765730440092260690349518326816986488939268961711763986164018666305833325280651487326623032190669350989447338501813787257322526858524373388043392034703260611649330054569699599906254197523287817494177299101915243546032067691147653605499809631780001588710045554264938772058282615217686829710750095302269837015122325328803451410817338492506026537115410048345830363972873425914221165625338103869203013878576517451480712670540500050348835549785387028388455256437888991078517750230653382205587477850410275435909378128962281582400362972946084952399995978719775381143931934745380910095749576762804312148626030078043316991797203350884417196682400501992177242089230190291362492582976501025718988220829988371000546965866215174649938328057047148261009517443751362438392320189947928232627449783689364318599381555211581962216841768887696510603434573232188244474984435102630405009415785562391293784518490276791633763169249044314023530101353164662533022030843124895620006454702286189069879244470239859659416753931540594480011381386189851212886755905234505339655199341228345813509569137283399326584084018935043981353644443983724327356624417128837939758368006549616700958732123865814494269731710589152353456375515253233631888016999404201818333250166167466643064382993452372839201190458280462444754892309050618144461471542845434824968429187455758378653290331762776635291874865355730766571216725312336187990960536585972350164897326885964491136345042067095933657681744858214263930084162587919640648842352689549262683812971654883732095720996224488225868439340219886622416767340229646186974402891240315491421022885282958041761742311711044213761949524453637689469108087602145269030732022602079955879475890058774670867787977832892572433146778787065641470367465463219015019548182825722700034096283083298846297578664379672033869422936672205766572219475138264545614339470584001833028986896018276948002711999292272790662136642608434900467038209385839268188790864274825703355338842204923388758320421943950802127538728981243351026931467549328684478233632188789536296722449031024119317513062292136039603962423157291591826690313983269117012206181314459799809210938609178360595788700324694822179684290591593491840608653327295742073532018499247101091116299331845858647127591852665615400408471251651969544225150979502972347316370580904429172439940096226198223859534429521727737049946537483183125961061893859196351675547476550823064149678765255190870555197855998332886958501875316870290247530359354458757308769001357656038538543386438632776299971711549890128334501920881475279921723874448419394152257191797684997133587302837198770837204895589048792898540190703970208211161764103398812895708160024139264076972194289755624515588894139705073040398802405094082863809028722130167692353891805189298370288228668055928873156215803440893642694732366531177895424868196594867384716127807741994771437901525606499359708259851989161095088164780799974852805999008797094996576126141828443723976652768558667281114902210132217250477094901090273900424620491605392199758780169019895589712384993547538818382704070249004243033779637794858854603616608070992139087799362854547782916415314210693368097641595129669569297176607450467231775694542704796002698749936069605083575596786012655738470782217549422269423216165929224914973478384452714401630066760921736448262878965702186915277841786836130709174978861349425689384666383355194190571140204097871469798153584246165173385018379136481869995647319969612462201138496134242995608958313325037143479371463480810592142704195410597301612383909039246139447852360684745034471725066869446955283500468309059535982072412714389850801104680759315348894344478707087937879558760013493846951407320008130689602518443121191038012011092238235726289436520851344714688896742006287948669706800189559438247770315992293683138391650060206866799555273430435890478004092692071817406063098016386025712023795002262441128473867864117012423012546276561043110840964852077807284656842873015869651749410280635809898568176829519029333300964028578307281512783838041404417299645225091402317687714343254125965903438786416639787002968379115535892617773007216923629842375583802591106370356811986084149749003603762399096055183390500455938682964346825826047390860954757226298225533369897023532749656516965302500126854748882958924793309215370174869195125299908359225847624185898554681490417786618134558973923734217882364392344106176003028203751108716806388141684306568705231402374076542458289190425122677656919265865391071609014919798563445519970058378801470908590267774534994073136392540247195440155357205704901278374681921118823273697571913523678979759374804830403280102515833805954049094752739378931866089160752383615634761468641067563751601031376486393152780144471207118427535780427654637626559775405514266380360744555679645974656432501285879736045322160396349324742338400501312176518074345781746002833863287104240193015579996962736685918853407222065620532070970194195385041024414435135112217015274979814636536427384914110160927871339184670658681289464868097113965511216702216587021342234917554695851054884024680636942136561415918700208385689522281979752322426146246615572183356523436727144477095030378549235208589127861537140325879387054128881588905362356516601159024803516822338254894652709655484416511846281682740253411044775085960840587697357818985701517135993585292806050491195311603405359810593800345461249836379551933962012705103249402679532988537120509243663525759184546571480713440039193828860118602876501958928420813314325973487341608510127808034101273725878380808653821869550681526465050334476126629829290109487838175028078355698888286796237186119206463347616454007916111329608284770123900867119309238233924785457580804993275642614412059157165418809697962892766406684914119647684795275848659225998860255739560068495675978712614725737708131110801832011372910512949087956775533439447048855347866707298212967626161126969842811735214620601026119576419636710303931042137196286152407056892973354361450617288344314870644164713306273981463240163573861800440295671124300286497591583841608211148321579520008253116205675945266715360327988187518845396123251087944959011953717428098562417775703619496763580443285599195713133100127183621559043265010204548040125555422716988893412252811502990904375173429032228841595452408741764868940198669788698307527009118484454486003967865202277041070403711074987161478741041252147700557066188535995440526067538512966037199878805953723695241362654224737258487385584221779289855656668630102403351784852354439632553492798474936146633185425296793370467791818518809382669409776546392129741828868917933245199145398009806934998504965875945440014857372080821526907627122553906921768022415886066531524284415957041571054431193872629586893532957884280664172097945442305398187953210720087079693343348283227032801253576744163423459569431134008888050562342131638067639878180393408420106536038357630553079814646472866224139638735519492411055019771675913152435198874956583257276399214080952160732975627410569527622556065738757239109375596303631497294763938867420414364125612462652774256801343712471168746663562024777330682720006523354004260854297484296840850332681797055056796531859988632694286196505030905925731035150938472040752514924667763004828126986365487669520126133273976860191813796842411928661092619762754392341525275661752302224921368319414907397342654408650207403756257740200601060516187753127079202684766810085607257984485220377417184344077297611454079160714833314195564113484074148797259606061898017430969219593191946434576654326854163776706999499908492136485430830793318313093368916085501526585434031857856254290293448138509405614892098742271626172890837469613306296004279892054118463891348591274974524025925118818806120806559185897688708616602054913311863619952044654110540165563557572753776494854073041520696723024838426548783337812431002081210046947055677323675562350316090986830033462725777885891635604780843288224907373221446922806587537864731583316042443951219894169310617089284945808757196510572961723931001317230187458050682649441816805606750175908106116726994079453432411683291737510540394992166505479128406152761887492106609240328089596418922825752684259235083787584865921940533597903462166801864734881617067877949808526983010086308480078287511732923135500133450220668752404356598556418003870964830540752069448480172918089421431203117572470440556161234446831871815128534563846746121248107778268835876852960805428857398825309710245179111057272225126136313744790349521603100797236202280941937301040528671241315234896981539205010835526850851975445699960781250611769737182880796911764062687441549623515904707296191504124094206549484171564041966764514920100472801173836693492053954951230360794944154936341063730901913923543166920071263904534329571712087334674740320384912020990965323533165661656710011120348229393137763318134487054566504359948440768332846202591867718431567187871748227287045444617270705039022851516157713719315932221896057754658049245310512656690499870487398001157665507534787535570092432486113281154427027840035652018285402635704674355288960456776400477796847431424852200592294992053116437387116162629997038385776515424822360435048242233286242832304673612927785247669090370621501334207553515676590817964575621928525409743241002152136801340935013564130738279147691791989865207739013149867900261968535038407052472863310570594664557892357931301033630103415061451597064165566672228143884064734449053765532623227548677572037795498966241613979098119767739792623346947940851951368006581929770988253567076446584101759654541861085566996996993139550362902194490667669931621273636491416516266473568079567341020976240035575580498535801900593026562922397695444741752036850695561990277554616455159075724606048334892540943784328316537577634008130834464286613516478478650275820104930799587936770594087856502242947881569991075108199101870364692764528451634926299630142393347834307439094785629419010006173883566073159387105187708521111382393105156549727838551066483992858559437802480671147662179577977292545955009455722889289234882059883802983505102623489222744128634084104822496287177396207605301997703238931528003853701100593204670571779663909014605896704701127002672525157708426540159785458173030056333879843131931727255662586959093597095476029795037733919176760545130164206279146097820895964420628696441062126593790267506228335824418031687396868184343280925172668992300909506661551705669499746378829019392087124248452878701278919957006471410810773367367091280670208944210571373963000714640008637152880667378213179125205992594267365876293789939200926970637216747636599467394197226805964806750922061027913817051168741796864358496205882346862712652724620457146572107403183912198487390404893383116345694520510739919308105390889091565184219862693447214099222718608051546880299137223582891676652836717643449946385344152725532233700962145795012726592645868905750153857181755020897400517915022834783004283199398318414515481596637246110781105756453535739754762770936850762795939345874114571420960808087849000311410742513521035093306768749442596924740496155466458161939791511722214038148850958803430960289248836015436343019101060277675054283638434132755337845264529458297429577261021133843298564816897738978872920034462505334101984293731451795316532687422427321634625634359110284315216504095850014508585543541265939706965259402378373203316804745034752884337557515202840872118860417310238517635094725833012639501116386504418047150101782810633586443926930246630332541134930753848531493234271665252550557295281529135458451093974793215286007741818556639797858101046283665809305965635232302013348888187526667302560715887032661869618807714896126313930777754949767630490604849273235525966128425561268049962877523228936034869530062659382650857494202963887309890612902859707209737566659706140831708273350462204880819271783330414666030140186000559759054570569060142908792388140358442194874031000836220603145806030351079612582434829721788386370322813424581222829108885468021316539788189453280649991004701594535091820386187264300389122053549262844723002384401568781954326407603810762704147804622568753850496564583908475365161921411958226891537347947027369415329195150075426162342125265134890239773329098951516875843903888442506307524672511958995784278018091209249638688302678592151446338550747705632671373999419722508814312512842857651618960229864806642063535795967049032524642505737482652628636239001963128252850438775758267812641595660490514623384943703659032375815102029031256337618826273393366984396632954144225282651012712184091565932575651372274777301555339477909284258573471229335363764978580347681267293799970521745379201263990452269201527573477184819809273628635678270710944637858310563340241107142802921853186601350982630140671745360641405381277689758799518228462956746661208395023543211681267367382347742905256952494239678513625796482214410291368879225598677177094781190140879782972714066202797447095494946944647522716212188132896191687148000930797112020406195367791761068086187415781214125652859936146480094835227202846971837670898574616363152287383639447712940072854752448757108446280628451872833603156941149240308907023128549684941974994973803616441565385956376472153169454849758314775465768847412147219056517556813961206245517561106484603540500127506006493827108206804031550879564503611273137906399862324960754668560701363214897894707960390442369991600659162022733335105895882298464718374982462577937960456988092150401624650112185262797521934508060638944244393331073526862824339205729180761877619147067353852085645961341373961286986176641631550333642219237012595074178479321641440080988181289256902840610714888323071522973845646806256760310417289342569008251440575067146431662576624787693066328251927813599599087627939901365879447967561424558818851460589049667286016216697507095188239344783742475221424783287188927118530445273298928490549898711084325620078141065984812934683012087007740930577542361774208948651499946065804373605801565377995951394977495094982326175027059282107335937340007406136918290361482389099672581586480533443839957178243118287022914112482181207184008041050698352190436821476293582888600284031458251102712472779197376838373589669258956338463601063653034319510116012402035589474610897492610088240463503338437638815836583182641075821548040689681750407091472063987509138295661086748251125203349537226244562593156752493063607997349661248182829278208869814054527961552352318033950854849928851825678291859031800207207360444266294029697103333101652511884236532352764965831318840189065423734578001750028136328168932914517212759725754818328153721488407903074987507362521570981914123266213686862007004167349533941817223450329479908187672341772003453065167144259245591904329162337906382221206435800604867706865925266351887308591613173541569745428577103936725288164952315673210288634880575391857828480168592353595017921619983467640371086645226721802565106140693876594668273370839182988312407040080494715723260893500205247575113242970657907453197345055706399216534725776543246938657586078430828288854085273254426859152710047833068726919828054116314168534529167278040231250095212149797271269309990682015538721506412739993451664063670080536082200443405118785111653314546854478854283492813667192025504725900540980909176591920160224344027569354527438633586891741452867019482163608682617471282254190862302696093520248935147492196982132180281457585023263215266815511752854237899169523600989837346729795259569400471037126153439408040164675797117445515443026665669695202256875554809545239672267223065616213879227861416054800797815863386388984468348787349687771328755732191805520058216632283224752235348294170615129391444760413254340206677396845753531122510400504737378479898851562094556719821376379135620855084018451184867506187810790469948595076848635708983624291749340206744339517202187814633364166041351894902974193340689557461513557914131741516110711667580032785984842270927768086491139499202791476200196178826798105754528398504161070375857200958903170637341958090443690203573640351361038336337508716253701275150435769232963493419744676912769211787980530547461581643452903493150620166683763726763422279224224204722995013382528824432669121092169553199286389027814966994396648428251859804353404255309538362939410126773962837692720923160788067909170203296513247957855426389327778358997537845406650647812116296645748440444808161047994224842560823876198105002933703039997594825338499016256496036904111498031651069787014563203173170075317980600193770412774620925250439323886852104307632857584288661435859359360362074960690323184534433871216571792189269483565646224177595116030666178899499464669830651362472624134698550450153741575379073021321167703733968322276365251379510468151894321010997410743936687721842474264588084099286575360352585324225185549288187018109179163024416691562505239216346647986676338837111915841083496011291081255580118772146334474597010108875949540842908012671022910433035751413427984626576760361209255798596103872801633072961701362221774687946325665505043003697352590937417661040730549790807967811168332676248909296378358087748406189582240430373729274138955178868337979876853136909152216455908129233376973197061875331420208264984053620220567933153425336885895807973024488692403373087159816090351972958436468867356754827928836736273298262780537927300899380137294185002450083918278033625275888916292924972843895525483311643910886984017865463658419398811309074781840895992127740824029855567960015530859869867530762181728633974884310253272771392690974940428710805814765062604263629585975334417548996639001872416210978825891035383786139594328656453415797060555933899654574171151134398433493446456408356926486479268652104909643746932663873406935560811778025519999429425203275520448200329085963643971712184494039981661476166543768399376052643466952598855915168126123208594433732147237685022885036534387814014011248514889160737673416486483336269123759137820105496430700746526857626520469267156190695373324145244962453036469439759112024067329115620087252688441253046898087207495982146396909197308367810934490727383200916746684582782009635899818080080222504208847553917793643815800311014417592298705420629634781384943853261864000649943424866342389103835945790504027248682983429284058740707647026537015787227914089753744155496164006695765152217394959432419686023372898537436990504866496118025053907184388854122734702503921753929649838429720045391016604763335229339893814665171584614210810280875503147948205227526829834655440194700832629269066716335156869177068773379312280255301834189017408750484500929068299600006220210820868860859462910352050930047358723785307378954344675951757067493811714897599044313832462832513951364295050120939074627361101257535174194912147797119641748284684852845531544150444070360198888534855704897332663593794907780694430146994640838918582674066179741913251669462876987383667576492071072456626362324252152464754082671115891679257747206836495577102521869147783282039591970833545730100652972730987809312025780928205301750596160953953179896250492581975205921813126120901314674181722796186729043718275632753195103851668565711184751619401505973144473490055167307539900596236304991177053869248604880369719048363042486882279024571493238032608182162625943036800906551435035007594169728960227064407773850062938163631643634654835252506824926418398646228790577695941506810894349740927452135057582224959168192202676086641058502777677977132375038163835007355182906781768785480540997283243841690441300371459093585204431255897514907971289148489464918827306524303163499689441002500870107675355529485903914507615755278888709858252277841710545360897609411142190670937916125151233177567598225064932840263615415727552891042335571809022992431591901257137258767204911431178026488062457206109680065751472829088079985541306609144522832076059941554940065420848277048869119709216795546184255155685888773326018337623847892690393339934341660937143486265018058656942360291922445650491738379615263708677142729483517691735416609311842376014830855406399062166401993192170139215026274731573793843639291982251794006043091966514179961457086634068158024732941775444647449216559768573695455296714549212005229724006865269650573632931770346301827786925798085472205269288663826339020132799140152965533467300892022955375722026876171572928384662535510518740583313550634871631275551343080716400450401725814755909325723754194834694935423703804379832272158533092467671896179065778871769681878536671240875735012478995753238342362195337997947356152701478125474697919254445353295239680550282812249399131228996005081404834082984114619582840403662233051207059147509552684780419085610141742373811064256413648944682733082080222848159303233129724068658557409966161499104881395071318040629770454718603628365620344420677982901845979476749068205646604111362170350523417630181619483372448664758628093829830850815127079939123973996594976659421302184567673532834088175785673476259074041526682349737808525134122002167778413244161107229958037695030373824338756298366124981624991678996713133560493788277927257168697406300396433405468848076330291535465160938056436383583235701844204249336781566536668563530250322237602663206531574178796894974048680042219591737783737981743393188604663924073770619243356866040892941929574971196732349020212533648222717089811344449254544267343769285537095304247183143682910201884506584990695913422430885880113848880125153820386207590134169589051137142268481164940609300043265472038681224526265596849989957797392406443605206621115435969177925885186754853372182827860588046990276712469819235943493247984094310001132773779631307689458810119045087789309879682285657039639486686317362287204938613410743496699743959122025864840685751880836440417718209032916918809302376846953034109542206520312319470832463517037976964693247592864882898978792317674755021708151592908841277018466156665158588146607182014959093505789075533202968823231850566587746906170793549905869087091703356631028609101222890802554850003691679054215687629263194877860173901822506163781578774910733241831054896181029999450344873352792597887629231920481359716615166234365843895887471831655453079477917217005397796162276895357964957790286396356861083686654597954622242362077765641181433414134069764049185542403929817376376609523667081848131668547474521054752464512902577922565913745122765463568716713139563937030071261980988582117970145769599085360010343256978340230674602318991504991738940860664906233538426769369628124456574872390345668068029084538630495496344142216912564969392326729813401887486990754989835847409698971705197216379402052728216031897308094873413811863079941148565967002408716409334788414691022219920469433428850452506453097512892925484800109321454115389790701080354496145963882924668207963461548372937161641449671300629541285770585274217024262814899774949058287670516679779250137603973995155032703823297521445345312126363208007734167350656458185604944118449626504153021939532969137306115320453784021744080696154544003940609034128784291998935371005635974431298831261043167413855562431619832842706277569235349239991046943343277926264863443522780497489750106695305847643815064630199201069855509226972636221128826888776385150416336094611504844568814994756868276384880863780786089509043992979453509473384986528864332929523023970500746498291580128291445620991859409413435114814589911418404235765448041373558902640172402261598293504918986210547895571410212627324117877120750460237648205052351812499996221253514825263064446210296875899138376983341187258277856741584069386291149176222200679140429891442840279690359686302257521128648674259366874409625167522999035995231058096092500646074405307944931067780427252347708089091001096050453991135762586934034781213266475708023724569782193720417833507836762211279004583773688529028531435800009457004065940433970460872795268123057793596442707685538502909164762970200635613938930695414633032504262343806262340648931281114282696992084583669746920988755208069860163704906959395921914365551787097781625762237256630460422141106454077899369589442334877930346210937004630472568923426625872786780616965774385659485749965013404485752405652773110252288963187117061096066232804633631455229200867384935027232263398821839771671569095337853185544517396032219008943856519616543280315245571786992195875885679042250873860957123251252595367878143652062455690658393019017062726672792616500309892469568526154674555336397155218179189352035778263727693701562165764936588974087779950673416668106461795890850065161514257419448257738534700742803723229207355857299435261922805101391335228146718381256150534973971169411829733285960779612925216462002535523181564614071640361157667668642409942209659700963109707165908737543723271043515427850930032369561973309960498942822705054317048956665988943422847743746569054587093424434952707928923833680595222133194548228466923771597520369785171761521160515705466108952733217273389422140639377285141965149461186194249504095738418952579561543971074267963764342382840599192259155947072075029143103823644501064822608018740128528400019132099209684272854998629819836521740945035447183574043295680766064383325683412002604349183697005249567844128679491362518573283803999096245370548808134081576792283133928837766469756843899210095735490061645253507702695891406013042559973626572863446003680405414366649202065587259678750345674534351296784436142212729109967852945354296881036309356965620543677519718999730990630745972726202449938658487312283977711292196309984259954783801419869359576205562028384503751766141183458818077118370714353231501240472708982485967516704259518532048870419684357661438852154072878543401791910161412968802527488249891820037550363120542821186287712422006941074308905742198156603579841512495034255318032310157190744976494746011238489071111109376799728056267524369380027017111084267617736296646963001204386999062442869574386919761278921860519141604326499033694877037595498010606326340178152622047713251377626535950392762045259000599993659404369486779153675781280064305047905208345404174856129502153214380201972052965710814985899729401394708563247039296371509160017952896509459555176643464874750277331893562715443186277139167755332271710087131037319085463753037900692301547549576978162951643315628857642398358786873545952692952376266941746217409279197704688470404543314371412185807349727066005195337962607687969024837047633104678951039637866729238750453862108813282140193519468307550990995781893073803183092208104976442236801929465746233771418528788888580280411800270247332491206407651348422066484510571970913671506214144406904940986478618100491555296278087454737433317128328064827472100467661530759081957566404028305271204767730820033303331263511394985736739533434982979529565601583404085895446783919504590798758267458634386871734323152716795661514898061807115377493920367624935780578662996935058013805020890821327502275618686926476833546783107817597995521232378594692376400415918858087907855470839089403856854119968036765920290823215557822410550183264239938780876597069928913291376236039549242418323333754721381150651111620299106934625262372396903117953465280587758722510870982768402270764063946851023568198974552145295115128743665846365171109606400132524372799230604345904823957698710239212260386614035849268153437385157699863564393021983110149973192865440232587231809272122197143766987673506983729761330726137714787716259898688828003255013547424792611048230966474761565667044839113168359189377022628658975015720988095369206815644300436542395040019754554416780041875137344174284624426508237995858455404056629736973058859284823542884684890584737170391676369329971701508087696762117031735834324263110093504815324656617209346497373237512962198174747135783221556497823258809122100287350730353976037204111442126515584270432150924635215216640220458820105137831944933570011935964635461815495765744421369291406047608640075020320771719365878793518934879093339411824854387748248051997442992614993390831078832614364688820359494970476638676928432194122293182865010965531798082084381971584894233720303208345216374015225586061994052748741345115102918132172996701829767613702762934720557583652875959646032977067064162563524261641730544289621614568134355344294580354322360015537395880127824054382167700586999710227159300467350976746204657984783546089302929770565470503025832066485198912014323769809344615194751556622065074089506549445971353823949456171349678478601078149810243277013091489464187400577843800129055467250713675938989512983679441392888125439709517151557806041383836580580712623760540785866624069784353677363088757903594327417543439217291443843345118446354377004355737319671496881569068591966514112300775303229542719030582471485299019357628798610624602677774600922275140757005701469396200765765590647086351106604501556181031352057788217686821187321107618962042800028450623784744354543484508062083188317548610880092670517269548285409321249444247346642363860214458415278337751979804848859806549594792488192582604996632916234570717907945039188713657511025725199763794045873944828596605730446128300585157936121553914680042332595850653527587199556025591238102986497736404397227936760288026926793494296226734114294125592448502278937209235202395508679554157050064987907073051306684648453525216066150423481738028320582750920015338300336926185338810594430874475348818823871226542572626516349281640023480711427690324381046145575888916892110660893052906719199150387674903737340703470148460190732819192634539155709286212181288747156976136332474885557262900916010719429008073893146029205046116364507225492839407747766341835201067525045973729579008650634645665510431332429730372775602848038774237981718427437729919883558084736032892939722164557156054851314825337259119344059784684988719953710143600966824455836765075085012413529042143031801170719273580817871375700241686718769523336644782008390851033863830829961397614328780764885839189498326161412259513051511217232539062526760562430235378650852550843987899183911490867125847393495219363329594098195323305569655031531288305951706818800590065713925868578561645766143822226046389130222586673998470819115290854853269623980446266977369143286574496379213866578341801732201312910018943061749844378649307800864597552567759640779940252685137134112060732091796689446575544646828629704607754260162998241841792888689814005106192054277794225101949502018242370599196418642291792363005599211428924685065996421434373100965113915810549787637780924206970502705217736904394795011124540328842687529955081479352965271041370782879856872218947757397716153558230263626528735134753415228622403158264521241641778909738013649393800002290525271522592910553458985614912143120644522221301990132744728473437688374425675820406330885544526528976546226333068857289659103779619782086267610762485382314714878084436960967796845050059374516102846677840178979362487841504790747667053545272121810091387347121529403613727582924952451753967468463706674479865475031491514948337823306094356714378105066318821088097097035138693098825270914691004664841190504017202803310913512082954935314105984605158112148009007304744816588682382487894795948251452149123525186952540304706579678688854079114140009321277342282508100115043324640409513737713570690134317275738737842223758843819955423017698373048737704977499495066170187873242957404597256815112361095624546244987630497194762058159297216418419305945059618230484416105115427414459411393175399931603897145058799614544241400099199621157304128976654535822472930874997466343087869689049964982677691483216563583762180597527549384275293421947641293470103037050945552503950394468507746545070435074036929644641860707444700583139844708963872836703433565613899839640122597852337510650856505832171275190712741218638990544621542472942099398957462663812156500698752521556225822858432812534726506396032765145746978555476221001204278565478613948234078231110460697730586266171071236241417997235628374773646102358897361061322328100546814649592822081116212801530080215878891396649904322818564994927839587814077651806827855917714861462566483999638232196018021362457516573026067638388785910154734627140510056597999383784199979113680457256117235521089616358283217346633293133131717736617230843245551507938027704799888024923110794385451637592343454723253360946489903055736749431447392450453143936431543283139275062272673608493438026298125866737009574895191437750404170489690318153031760839500410499968575629489646053053341999721423969255605048293538017821500019009669783682639716390483730096848159662128627660761102970989298366299021393716184848903779384598462386409056634391026642656460827702720889070880301411938336269698004849733869237131280718886950833246357453637846294430217483931352694478243048441853826172083294154783805848112578026734360933748554275564570719943175345091765670357230889285835730094586421045315186086460053582088760011249197242121223773744695321425566969746003473394615323725463077257765000134571212215024662498340808639322374094548504506713706912570082278769285343149397841348257833998674197174724108983557075076313930496297256502703461649380955959955488979275664605112876044866127390054527103518508824182434574168985489552018869917853497017202836342894907292122101577482675547840620596513074348919673867779757709261056664642254797365994464613692345027849036909951906248842059476756412280241887248870146725392591972956176614612104899187137694016457146784402692577901218924086901957428228845705520759562657347347827854827643777415084669083005278791889608026214541135866781173182692714217482454319700861530106526694848344562607236632459635667318772084328626227917106734283535960761268917669184765758690745746824849873368175770198670239359523195626084434957010054665847183909703922105449552605988498182797331137643302017771832433283399274734012183824873269966348459756339404942681144665282027216777747824514470401804143708618477322704559459883770331056611963691854720177139180819508529643227789601345126027076961653771063766590362456211960439551564277019364567531443757559523312636207371350395792782929810727590897295541654517641377804354189064433211240816420876577239702980876894548226482565509427916845643905004544354611741335485887527356719638336478964948898640236612080959213916732572980231900083341173445810336522082462953804016410583797302082098458686456788714639371910671942935828587258756472111868906231705347764183273757458049376591748955554488373145106761062880204546975352089898431737329335736850024601371135790935792767599056444479586109092498297637297147564406010350150356482692384580342990135089286053687725331749374056567044037337582669332866944626375845000877319076514336916907554720138367390830691486054543823028032004620172184927327155086206156709674866063238979919746446677923054045292901250217788256305129913322952813224453197020941249891646979432216027041487641406216899571980549554333445568629774122106946505938928797052580439912602507068601849320121665539105082227565629005268751948588812681780008868422336763259038660142508896106329237428547606262197163836039513406995117309271736944898119998729649982462344916643088824895088400626228891415756663583737245228130064471781816090478225034114170519263127092309918793630534272308401661712547094662602746012143670453954980553017650746192196048513174730542269084327504857780020088104185809614473821271815322378589852227679478068828611215366476087024451808171272745293959195916278790029873500755688041286553191078163950081276333259114633633213509643159891204957150338180185326575369895178623938630018241456329621850235344309247575975308975245934096659573630930345958564835273858935002417010038739066553639049154724686895836554393965792727242363729987062334213317337997010980417007772811260306069069803572162392080886380236698309050793333172496500499606899589278365651168280013232639598533264581989021983414975329217124501377025461035919649193923865781689443808317883744381410036766420172221472793343445148950195183883006782595046237184515741761799400082136001799796942033739085684853478655508821909386279628403188199260389268156965170675241368994454404816531492033217095575063304430983005277973386923434323160346251428706626346051042267341936250890607667704527157921743309297578073273226197692008660773736534702323240888557964523315071040884477206329645687889379286449382313405913329689502568009226529465060337151714127828357202823469093464685697622030098579051472095017237994972163160190194306191443348465001215461351281155599137397493735145322975995064896353375296413537772418159433080446266306232344953855531495907086337701552067027253975604661753719118765695395767220508949142575607018175549865359616908739785706928715463239104817006782265475564194875355104728088287352358778592329654050964233816904063029112608023332063783601781892951568952047225473513938996660845421364351074750283651280648477767262702556237075780912142102001127289953094472701707277391480864032496034211238498575163018943777744915390032127011536838657195231849419947083249031414444540946267604051361509391667166862950961818004195784707194637575892137112736027806235413501824466792465261565865291897319415018270777572066175163048779215566151331733414566021625446722753637453687428831568591443312776250150491323047005440980234475959337023966520021537937056957286361189807476761170497755446496400382323859807297815280376881562368163466172533619190247167165607936854914139249898852418717386801067914364969684258469046863153909288139417428666508298598611442636367210278309250530663468252423291498887460032032477694528385495919083948649676224202423497033254813185095474871096365204094992160428509558091108853893743522317910840053602307624128817080663401946395587165165366944417552759381431982683905732640662134730890433236777334117042498204767446520230258885111293214347225732361776343036084116959555482336998200811942156493890138344099731433739558260562407185370100566437894921967732510049734556881211011018384446207192992171299450404126359837457635257322979953327587491201029980107316942795283074538553999528480790532197802229879451675729718901853058397565732905747143894262359027827919806080631487607122230431768237319500745411880648966547814732272846396598266537880439924113996175656767481299436929999877386403180454100355275281952402122368932235008783380883959039233730640013398303496866339995999330565664109921754163539182084781452166800885101142960503457737125447091537276909808359796760726842710013219236114677080289200192847052515842872499551363370707138625228063635312660085732252072947665951198420979090002866155585500454368182410852845490573312446348733096246130597897999268723402678802414982108758140369202398228812880034677102241570198654270050387724417391416204502244676715418780086568998732499636678700114055467610636452326224846597083120350332369826809260429810045671671753669491126768440451336374996265759742189326407379157693483622272880490456322684675635244719875108305534029987447768372526424441064130310381962223907236217915573403801147988174093474224335034689252497842086607370935550114794178260710315485859983084182749666620715776002155139263344954753928307521461940448240929317923219220990028028889754270713038314563772037301144416308264404232999128590814823911681360578084736048389600743504540694112567551254026983119450110405698750596048394223186465333667852005457341477568528639176281417810911228653321954442121508415663396061159258256268906083415929033472958138273517713330716633738218603059139767398148991958267954288686105729649831052044256255143016836596866110179817130481996369595256752014215860124761954828605288349107413717862691274442460093961256861356505156623288716770531451186972898110043391637980707673517424641367344288738688800737661508812621141323433295467078351722469370417283756772555676797681895057758427318118183388114462677818088132820425676413145232148926070507529552901239935509550353850590598063642130003235358880813153868573598752359056888381951558028458714241485140991968420525493459256361166443429111667919570776299379339131882360230052109767259233596334269543589652267635304973880648866877573933172820746377827830080383405962435917640529518606378454312184491785903026936402674534670054330754224145586281219160329843387748092491050566442075919838663788874142757634534818739304885529791229847764889639829977947599337154517733271726424062855054382554020140969291965617453476150602920996273731528988259924328697053470426399019498987264558212174444994736736589500352351796789262731816653391760619035997897108153253475852167380569204592948799145109289676950917256066167760516614166095074125782308547181949237851977655954622476238792873382223050424723079480608966320848184045023652052207268920574496865080345901297225718490409879734009777779941791537863308203143968912645780462929562844791651952655048103844286913867676477375902029198320703400401323172238455597497478581219519524455041583490110094418361414434612374098549194649384107964737137068773696661239115287283390133635237335426737022816489629814746326532759064817123157304578329219972432675913248978535177111702946924166444500525688006024296113484794573871127449408316051463635546424611457724657186468864086954015457134101665344634595586099258853420789063460189351887568104971490260130706666093970903675441915663291625790726799764295571346603104907403058040429305876098980494225228200335152548248610715327167853922082952004064124865005747639179547279139488863136476321141863119191066317747549143793417950694467429617197978007915425292113813253927636666799208923625664525059362276990942095159258603355446363825803008879410098145792325700457978583826088858640455257572120900464865485385171780868561243124633788265224280730698573327731549150185235644464072275795603537639303910399982131071657853468589647649901499356412796558106793825083723892927300292602328041468797030949067624860071765830560221076079902651964034721536666928477128814509707128825068952088182424791189872693684569173661915816136785491207505049403333472960536522533388616978754011878625085701908265809632880809168528442242820212891288881183024490444134196102226842591467139310861734519957950140216349435700189165248177738277570181333551816485945225615118753495804380286317818303591853636781332930030561769538500904844509954278197376360315380369057224722664082132593309139793158071655880544574558811171589119085154587002186441894498163582954690662102653001781847468844312414148568083860578094397750800245610918567035950524533861496524599440487492582424455073421732541373794806134876481871979800577665023330608158121293045138623746837510118040126410700665453425577542995668500438590231462980244969660638747171438298822739684893702700451518025385349995337526338747154927184307996340581256262212076996462623427857278746749714920315693224257585541038853909676334421794042753540493608369160153178151675124690593856815163204825429887409667656905014691778224419843348302919545058477255770643291742300930518006896424375363888617812502800441022453722928319316496751658557707298682291901156139691838600309275896420994942676401880224731242259850750684018226027618160509399638761501798157524193888304296551893954011491015349955721502797409322810740568981498141201335024109943217101092862742031975074163259026883504945487526227720122232893742565053381803445854782340615125043643488893835070355401283056318917443994289172790093085645631251368321290094277131242878189387739784014263954407112683506457836183240149243524552680596234280841017488680323128276325235809527803550662493670998812999758346090782462214327738908625747959054357793499378314667961433878938429431760699434840300857144499633616632029925251046125593831014218518190917028877833918067867440316355000228672307538091846374133189784404207542738328610093243663886343997101650445331493181000778790658788104894338490630180478125000328055270028333742441809919671786705083506929106975351977437711653657123881833043777849104315301173997124524188053643723055286310974455509123394778004817644190940828245505665695836791975870557296480735975575602719051109077509978459544530573422087640179859158860872309925397063223969123933658082268611017999899237955993132852236843967850237148137667690652538498773645695143367139152877472031814854481393152821700393911882372610085344714470991263128094043975964948702408713826542816260183543262514430033897596651891562719789200418490111114207617073303573172835146606250750712594190523528689980339482875058665058265612653150061398793735789510832378680552035236131636046343972924228425609805291302592967342372759129425722917836912831528175236319751185782248853459749510773962361669814544897091949634156839141346348553422232300182440574933509822545663539347055511917538768706903943148257645995758660276236546126144193595049792229447844248225761382721767844613147851289512013566956967991984687036518086007471685395997491960066185187649878758025493074218595550258313441137700071431430968143779372023674051702335999828543570074124196200374050599850284354562632466670313152384935684102938941461110912445221945147576401896275762055274443044653938472896264546162147968012386090151932094954945466384697475716418056644725195078244735300994899850003690990820010370195631219687685698052800129733905051334286966492029263168352917269186559693978456964288994917897325973143205814640610587346091559034034312421014683033947944971543827370379758600711059104920622016824802805110570843900431508728165284603370440188664392876524541388223152239061650598230706103806878994167828028587172429948731206099084332471420327458245793482420161723838842297200479847176767844743903584830498684447505190933413033305136304200043915484917728843121579843769613956398785855084738897296340642480415836665244447358059883763584707828441260106983687071734316607371803580715312426857030774268226283075581236825649675360890127879066101983369974400854237782134837805588794041278756607633687984413383709302847421320410589367232253075581644346988638911717609403629268400661062070228979516567563221283321527556711584137100026658128622602580856582773822255513873943089564966875157126612497413471492506566572498462071105441559680294765006596959202038558712108615082863139059625838078326996610003045886590350339201151499503517853554558220346794020032242809152673924443354348408697890403841108026025006860366544249033679880276657405714333110779365986701648745323161143874526534681937302608474470791326343747847925924492898968157773921991110088217977373897969168985904270099828654378193561417069997008402164195103807660428462211218568345712506137918302737777638731508136604051665309971708511843482453147677171456061054757426671075592832239952325945742676069394607453714747044300073484398897667173862528905010708800922490789948213634454882980869849443784950131137836770818332619865811563208894489942322713110430994567443836200688329777649652173557328646782638891000962790013574293496532874782260158716405577430308283072898552294467320779987710240836859101974052621913861879573105277014400464012753428994549989461697004174102094033846438673016561460217649506735553363678584658873237289165216952210833808245097781760398947185509579408199127596918629242000935393020428323052515466943156161584855291066483783709127263584182687119896748144217962037610229192142998611632833557913783514870244808264308858382488355145047427223862870229271203720699001272013674433423764431780842525381602994381629164619992856650705807468478813743323944499231538967008477400163095010243997882299149851338719362274173595373192328188672669154771604892066442860000221565025092504217843056687482541680930782010206774366450654466299201069780370801026714511430313825533257219371509424980548817912044486714846950839171089827741818010360961503989926154003818186219059249718250000608415610612403069227846261511605467270304218456318926504293411968661400128326255266563775262595552370139797940824010505642215322542193616184131392779244295671191336405012712997854116236398330057480773419554855306529574820404037021606588713421053135663878614450713573851175735736387877830996494865094045756421522600736550083908908253018104851909562193990897250983280204241976248315090767298506292057574430278530049894424215607742611998233711304620383077908623811040012282625967047731157242318577118237572681460935131263788782547958082210847434228062153832545956280139134355693283799962900391245283497955821482513040748133192033631502261486484772648471892865199564653482641707264520723551946990358578654664109664492878764595098995678455195402551351254597781420781432144562128298466871719271815242984668544683538647314170406703558956070476442427718438443427531160256285406649769777861975134023734368443054054729778173097651949444677504819575487488595214017476481078998108333717666414667428542642598801990142713109060284776161699246095986038309348698099520503736847788132230397536894672445733973213758456685614484276388644061416922512991643337296629202195873699918800033990386679064485074859819859470244323824391473293305268873940759216257513520223940747486701934754262233386280640810242221547044359783182973632683631361876025584029655107855837540493965525376182810846352552481664413287012423885892604868545597395199953699305156943480338782783299296973366569347396667277837406612991432576302314215420508867436562033313979775653504237022383454191185449992288228442346790327311269729822746350397568697325718994257736585678850245206148723730605334655651616878218171079887497895649519680263489450267766321380593818036629747293327177881715094184181090819459443364786767621756846601874918134687226694311193031678325180795050504521257532527460756071667491885924651822694921128842348409110210712781990880226727619715711536312286488233810671551573569975687760469148473275675118495775154403158857053236171308453354496551431845400903441390490942910520812023803446470044665421453399629548080966194896136094331089785837860532278670613640177073161347158098165760720856779612753001938366734789024579100181521236677920593032537537107821620836633573749439136614816217021472662570041524502189799837748230343922085520589258660206438495419073951261812131841527841182756918845681996505725654249570338243471469008994007667734371282863580602965283249062617886101696099435269397570441292404580130363397525699047986100225537401536677374083108251703856969112491997767014783512413657801509922559473901979955563144279363909659358805444626719670616060113428942010232126315141039525053513419144066674862413955337250806915459361741425830427751747074859747006532339672323075751856688910370039632093176269992558019644199922799093377728775409230543519643852943654488226588015947098752218175829162657922267499485663959327197464024154422942554474630060266442508164110024770927361928331064069755092176692247158390671486214421413478895376778028434296256821553643782915394852443341115592739115996799631740297115758261974819482348056568749959399237177612857905742826002716818758325496761260271024083831170925766844343029353461290708265371506611748489496930383496704862642550213409619321173649973162597544091381552281687769682227835654056570648275080146971585814353872637139497946514930420526410389399832002355012174475188301331250793477850605348336210293129977590947257690709364261165829515268513433157376346270068229589968997033963954726919091504305493359996274827632185036625257987703493027309002509246940319165005502344299448396305542602409141087859814423244856282121543770634167139997683131143324054471412779595707103971182997708519501610213554897939059845520703201001761500189346656470993162296304689085866302515724466220741522758078054956173411416919129450673703752417960014434229982732365989002790060604134484708176363824539817540999490411430460001890996842079731780336862645374571439008183953265921715186873402646309477440852844501131590817257327556060211076844483094397051537823022888782664983870888399904741749439239345902239192670183473760584023142154160700607962240209720689481002995126377825478604796416392034357808510430092419176352778454789802056081247783200980088716389351910655885935109653156945104402420192893230430716893496976946341827183326684306745400433939956896226656002125219411195738333555523948362575701677784277112995562057734737183355791400631135982131385491191199111768468791121597316474017076362116403021207355342359477016469881596009060651587511235405765824311112784149698549315900927731912984903693671623034501247461071885902093370603130140343511929689585354691889591303754706732784046233529593088361260193453495031163526093406558580065189491687986466565446817088105648898970995130489643015698940480429694560732855925752685425261024768672537250511609430058293078488854975359281303741259407769894872740106797893404668137980764923636316690957295069069078991065310592598040670125858455113695280792748155970520117585602364759497417084494368928977811087914562026735576782108643183040797605440296001251022308237920670652085220793935681368382995863973131907222780657451972898207659095220387823111204693122740771250677809874579386005586561797480500594144912343431641997561748338396088058125261632324824691751485755260837194964015554607888749818880185671637849512174786722075974718144165957754705257218396327563212464177329370493899333379947287873188123706308024273712367298477096304158124231566674775119777389694649499706304383335581959789614963116221322952795374724701582650996474314601870761734253293050585721763757082656003167366796428590283321892657502583625192217207291143356520495765372924135572082941021983988641701653196405406759554402479604742423381929305104829141996191785045903080305750339600999935317350127845366729983725162884663017866651083433718617869253647299973428263650425414825113880451205716921808375316194934813892041705341052776231836309540032170959571431068162387185920032298750175743633845338569125599097539021672887308361569403508642419670276475690898559323715528864724106348042816996980157490189083808583305965889555837432532611377532838243845597942959180170141924938350495918897546626263488645811891592743837219789952181423993930038393981016780788499510338347513137477175208462297001504886962693759014066388073155047117591298940248492088384642004583072822632295869246581451621022185659515184650422632342328465140867281563613060953091890489057632857797153656456273295035372913276398816216912295655578338058254576419996459465520941282339728882096747624044479568538022658449525545942114872440950354400453862634163544875602549990234162761589707611418523290916649820083660890260451276709320603792947425157055280082177490472388671779112850112386368592640403167470270752298994392288303303947794748864026684974452164738441200786464222983851661957566620563324565517089340191912871533676479977429611384682728414007106481314225844445896876409121767088892573206920849469834903448085736333200938959701989411069547801170237112097360323963896137652616954174599244749394573190150466706713230688017790876969912279095428818006967841736105732054015510350254279899428904066349578931435045435300340338148657713843781842008648293433935210909174674419166981161309187222475038227463603498299455481381127154861634428386935062503483824976794900127550791171559955469223781573525016308471924771455679557868914444456897084354314349708317676385568648120908378488120359789414895205440401630336816877524313136139689674899831979482367891336575964107474825106005848459561067085759202439461386602003440676693796534830395281089680608411391186957400443426775357510379577311339816344351860488375472702909233544511982743163566825420395591747925211252611306239638214240235488852967053076700820845699771965012720182176161076402568796139446212533561567233518626380483536429288274394602313422940914243073523618635838966174631193304032982660238953355474041146623204409881755372300693889834920601855271820075260751046245086269235957776943485117377777127729781061454959261469529413424954157182068410171585524066225928596428776465349264654904493202666601989943742633948760404786587132128666461981240718691112991450593954437933992339700078768835907171244487085574706493422491042975531056873974375067726617368549129081458344590209933516808639011587888789213710365649551541275937307692950564301015740861116140603490055072379270419887151485531438207832272270419166140536533257705697196899239367227631693083625777204623463770549398638762724944546492878383623900440125250871071033535720073123996321853598586288985823553889909742085566628695854608205777429711088386397984007395152987155157801330854294609408751425013346020426916114799298721685666870372550498844781128296259404668732939676944858766925225356020914562381372378273623644456514905842325754281884038001432764940837824822673810308738197731321081173610008257614582713494723731562606954953304287186253939697184912109177775684970289565745530524729859734055675881493392031721213083706140420889717589931857047175037451792929868727303671647137214401439702637525366720261723257706813388793135901351014308969498265544136068478859298082568236112222057011668407240222774405013789711251397007640383645486634080619066132327216308171084377825392342905453646733097140038449857676786569880454066129613865826860877554039608938684779341369398972370564351615457859549468535531234076843574006827132564558658630823950785774022887319902650359330298750369977634791377288538074746894975326374748095531341986199139646162454422407163479498183399026717436311622067972322867247821710744093046591355516781596067816573244591914765297018774599079347262360887065240297788956507084736724940516573135442705702516181094121526617185312314472697353010922675720740050248587957511369410696433541248885003972960022950785526249492733474230340392598002501394482954741745369222895826582329095726927383832091290205812551518143370366573266389471755479904224746290603982250036965851872395011724716699842157078904120146075656182423475305481598662636462434562911419776336288731610278831950873127785728239358063441810926718542364592984747053968008737187491290627785680367469256803865347633532882252770834750898932437874654977065107220893052742045467064547109737430101645214086488921936468315028904799806766755369609236764709654669143213650867123193712765378106459054030167677402462689213011698432921604125907322174774794170228230064841492489499042094559335678205897384508101214769120098407076070990244499062244948066419851705962564872571664863121284818496337714055760157218250842944348787717220029036913373016182483773475075449438624713573283000213828803296050676895265760885312530769245982031774750899925874753361534233390651588939024445966041562454006263390394163105175080944286079812531830588946218925896427170278547774416211652830605301004129161518254017673044367022572876203574138863719861196908434724838198551119288119105492940814945782632988381300865177823874594681315331751646694692982753327316104585301483641077406388257624539337408648613012052446046711056890718959182176512398995392713532037964247038859616111814814770580777661946809203825496665872073936428330552796924375871346471087315306333968612437251356895271925073229036344327857296430484759126247038657624756693654680527502412742260300373702810887582116899545182371858871678587326345146272268071402143256334381086565958253676042673232957237676242862159233269658887529366799311271944127743200891369865849499012304546269911452280556858256521973782453810593276406484865988643357665132830142701092561046160610775346057344906153245939316418153084943246584258631875102794173872962795483144489712429032962091413363279491083351683918474915714813373298266012731757109329392932506273509300409395603448750106447191491457585341474617472688941275421887866975016934179266171144265745982722046138204879820485350187792327366120060185008601042849796132067514121084398505451045852707562957454019265135344676089819045290309485224739986589036450050428063239851561601056866270402362792732101777771678337157887846043585767828673475988104629572175336087864343236012784805065694486836084906102404430270376789307539957417131027175932233602250803576940124690667101162661445631061943629732396692754646138326251524046554419533686548496682295923672732163837616049717526048135175385561435789013607512683394290815526551849599250086180971813397731407550418983396778809171512328441119583251385301304244616074438642271884284173993709503801502932714274993362361164247094077415921301354685026640938775135770932067723754860031070556686808712759155755503803306751605628063033402181706966992223182862439234776616150621646339532237309151614179262044779327689675388724683187103052711574066867339052396220175499989900866280463829411488173941096780710317799944591703059252102938404807284947646977111892553645052792982553742210738739924313807674357554261008000090847677401070020677979907087227752980933938113792591704688369419709321425495421834394714639236708727929338165702705890816505796122239553696513869130874831002273760967274670536915047069178080565277973685264129610131749897448289648192156442108571556802813478620721226155246398308492214114668355266881933898698026038794371499637993090084401654642456441919802742844436601430591523597158463106894457419394976143834365193925913844548330628635178254837243267611201616982062658113108267085641623561814444970444564822550719588244374871245004394936854999371711152687928244101634211339041010506108248510261702722763667079027722074987481181211049206987431208153929255649803783692774441080932774436905580724428248787118961374390757143466941470126220379696376029577604102134001995953262077258118389167506523816774504674401231890536284521294966550038604161570807586277797956145749603896005184529028428641123006553338018318200298954053589546958032158507314841096483790621301093300959438094685880403892224502561810596211851915028259091217022261538752568303226093260728532954076359695004073520824246746332350062972886191052614049139059442652689517922489972325104286813371552109382926614416371031512553699171678809054241126670537843342501776012368756122629106494409877876023890971779823231412687726360500696051951184272507266777176831620626905167714048920463651424094235780029180293569368111879175778838647252672569829113247162215781609718721916839676455775611611491835382517653925788944512683740873366818335783290947469117481239127189623740651822085164392469894952307285492533314576938891705284168829573394407834948341866609800610735442700913518325343270424827036657861646765164357042280022704070278333042138800679811085014321000340610242427594957044688264282813698775693628912367357321033214417123192548407337908602083041697574138444503035634476161525916019779956448214361155882120968486716973216428891348397956870931668489527191293879070001388803835563148386237973964638912893808958077922307935186968838028705629018337831896942560847240393478671257074526763815406229668169588113930270320658994321836299884150395096500410648995383921848933012386183005716772262458547527701558332569035982721870151070646209284374154337359543716247344408006201324860791452252485257990766432050980309164940724373219401859997271441973345913907786228219785764274922733001087921587578192066376708355925787557514278434450954307515223700687712749550870492445728425744363279419675531925351980772255287836717677071685989129422980751658170163279648970831812775827869327341995366472377170520063931205019285655064053951255196582375182694398994740161330019385637652754322441774003151909400339180891558982738749141290216797758217177678618528076993824191019276684756696311222597731508364706112449630756527123965171567757770537834148718052310189352857331297690072270654887192987052847287917541690761694611474588761612186417558215228882530035135705673646619504592939103186813310514168395391413486466568946081533350924941036783782941616125196023408354170718636722776690739288018982383494604451919344665453385910568093688285410200069686548745763725034786461761084402391276254972040791005360010963107860828540690828264161780602502432215362494174628348363138786849576790467614730777031382695245131912798034044176147474455807415086273433295803403978716555332227854481638110195377862037448292089310413062783404756084929659210399643268550827237030318975746071043550772741789344899918491202939535887935872258670314304329241629205865965223549220955393987085039178254444412969037106608565258107604125581570497361464271973156313883552377385820208343189161793946594357965241000308887031700371156909098041012690204915537796534871904025824612945940982840520372308332569640785640376296547965805418809754381897423597513090202536259677230784444363276458260947761330724337492482987851871739527131433902777757345535752155389896066489288296066903977150375767995068463270388043131780288331455147041856701528621876084920352831062514563332991407917598490373843647424058069032370709295614980341971135662553506093888793983868464984726581566311993807157286057038814410514216888842746099531238813969499316606856402152070341417908966069866316805360575044829427001005836042539128259360142591390393288614883366391262137570852951352672618528265678838754756718264437856045878793661212482181425637622941048901498536626889060421648705644038845747014443322234809411017856584195596116502358026098387754108380502796409931675053608881398228536757345301254682745649657803505840050745733912832985541460509252105461646383514775723444599958805687096788267320621229089421363795712531573257179760174958528197906359513137661929644836527428003878132214419921170621585478771617420730904602132285209641572453820278596916318122534637481488187427205522471823157826120810441232671034122002961570733139977186961836284293791151687392537028740950226407008991908258269235834630719791967781640377751593363406110452725273384534000792549625547696589502106495251577458646047620522221563254508957378282217460079910908981286926123128233109451386592815940701555441288454682132365207291963130200971663503983780738159521285534188744205419951592509866724203203125806653455277909688977236200658792394645798670083834306072339367948498841503208136811883434704087657286646901552485571174294360889663516138254336627351153358890367450561349224980697684617801593252578700409404553050718635258653806467611942739264290083862607718023810137235394488087034543226160879280244360046392075952644994572881554956202077452846103616269605776527245212228489606883084222346447346236271321889726573138488079728367362759094419866703558455387003332763002934352118982756645053091001675772258266375044545469820186644780135642377265982649428850321842476648403737393109316115448035094749762523640329722699271527467926619718389811311546673387487083324034202900299583963240660021364666029372141464282667095813417617631941858136684948150536763903423261652027374209529525052350898158498078051980751039382481334509158941062084069697376420068335820907998693170700924502869961375039125038759826171871925631058047507926296317136461994088183113647770297976772054813268622505728194341245344477585317384192634611448475809966727024712098083350666452172407957089941414285792804015771431986700586975970821432429177902712040739585155767038386268509863259708542785831425544266691049207088116955203291828995649345131765023694990721391579154447509035144179448180024967291593643949818080816210610046661559791007351816810501903831010149219243567868691357741466409748104672046942460099797366334652296804374626077625784300503067108343400380564386586282069868572105025140805494534197753412928811748656225242339467698924320285885047061072674435645000821095322886716507431600920381481593048105799484503868271734902129516097045379735879448843170951558235811785915050659145798266298914051010585883842248593922045880508315553468549664094345996438447997638333079139064839658877284413880916959398683174982270467312252117343917334708998833081506342502628162311329310244531547305208566991990404408008231970011123604189824454951549504644441725561220845139244523787150540749871786206894022825921645373483504652745181590721395782606053377767160026871397553576383555814819101204768804972771867589324276411677282821740014889194858932963575286592657919335184151205461912195074167810320601393345571059501107484466340803219140545019963741365151014523170017732350065340149595936786688489351011613523055013789204464308420844785855087294825214650497346969444208418017047883722668368946471634531446300614700982845897942069252497305342150761245006237366852091925230112325677485991852361467143098529154619876610722436736300121750248536058652787615399017375279193187995974805875246697625533776325715117528442034812771321335372506701802628659428690269786778123797498752377047922340018059797441758699589084800031601415654420670898639468000596200368192001688627873630838250261713558614860385755054207446986056529880165181598339447211655265813256335035375043467842324375622663833389319600947703361973629655739847573307991322797592474999244182361935917993771370613604961162488111180658310504085376275158552080833167457328946046837684846870007991545809137280732830720096537889360975405457654358183859358424540943007879086045037608715040679570108477367676217144760517581749011593379735299739695775708018103247711214956448004791173398072624531158445130461831794557939406635392682516049727546052016375322790759567612004066414072026078659393386856731262916986157391653017437825333721574147494865690380089324626428234929097938840690010722784878697733786716647747039561119147462757591285491014702328792899050974330803510585008439357184364259827448342557549145127322933008472495120555562098360457214756686927591729001962409139369044151983196508617395855715049350909798137450194210787286630572232241340655809879444460922592804306749520321995014583245312355219624799165470380100618059305340275577184875841313419305098006638384673549316037325097428112873037766669620796044721175267211424933535448061483865320596029070109045132647384724956194784454475983427636454974462554806860011236854111379347706044030902281298717064721963908115734439109041533098316192247702679317682059215185757703620609405077057655648313301131342465890578416108012066488297056886909240625392657145037703350705169402234643369665989981408814701206006408380496148853507778970273394406166787706863618647747014399774020812452022588767154375823905149950803128575300494110539343458822395037582885373845545942863844758419107859478190969381790828080707703539290052106008245629193207098012818476344118417840719972002113727057272388145405661366409191782864253601944978642977738047162809326275805610575322450815209015179355157995551556278043107468309868575075849539363232237287268361865975973460222060606973558847398067270390643527337595211201850932460170458714781887456965577981406629132529221753637162537590026376640221240892965389335118039521948187985880001695805930024510558061227293564916455505771708351532922633585324860915878745831683813140773229614557180894268091848328277962188945397313119623047011634537413828701965476285349430357431907419972665051104876222122777644137570591370143440653011435673627250385811369806142064183980453524310518016280686817657483082416511316303084202987536689255432222155971483242912592812670075018139405914445641141874054649568568860732252638513271149749285256413296761270099778390893613272239437988962133945584310452762716742422428764648292679781117686925605840666370596131511377514808352573345184761343745999310269635648461743182018381336674535046863058290228893023961797817085657090926114267116443155251052778100216830597676575166345732201244083568196320127469981372882210159493875128833006998410562158484357936699650702973699378605130613204635159451694987042375192211719912812218262202672857442726838612044916135813605051367345019055044683414847505344677000106270921909884289950495730424313439522329878154083844610620288053667535597258992034856833028174044235238325963946834776239939029268198357046306463438239688867787971069981635095281254606950272013713011400259779164902250945586301294284167862349836901803254917348141501998750873356138841187389395979448472449658785934404680319396971815466650838907994890322688252420716749944101829572945189999982452669086735667172801024534085523505411148016474320002529457580922118428030655259330745756530673687071942489177836290708387120716252601119188112475903582221412513003778629181357244817098036492655057009246987869431521372894430344556044341024401153238926710613742060279896207077618086850501158741443300659087455369614238061308447469737708004745696795586544079870048186158232740376208336822465082181194344038326055143801330295495069413451440605370441182160523398621093201564034577607852378225527375952096293307091260405764935402628363770428157852503628498511758668922931460780310902902454894121393364834858426191596174307223966900016578643645999272997918247677911523016904822806763119845679089036720336258921789973409118170573253159223830529383311813548514704692444446010534281764267926546336366930459706259447075841350446739896397275702414213200553348183910121368497549495974206615965798674796989606882360230315391221805265606591981025074848809180588485674601656568571357195262840002585098924235429983362326546690417732697767594652748944524353224052562170106109715892042699433087544853634318308226969260917082098053170885960461637312115905419797213893269224757717108215508258409332854706921092976794477931552654805638756539763684046922333875375936085145073202640445935014801411419587148903237761499826972119110418558254666094375599143703381268325543994294084172404849469813883648042713057696817601781353925175406365325140645253328439594270899798452289625887930530600636675366214714277938449444796080175443323637730542012037076402872659555065454042020188508336337538871044425902239735171975179982222614876644889294899753840159197965555947324516387528985513923625737021113114423886854472610911578126523187914591860904915126330870062990227793045296742362675745099983162379182899746512080566438119693485139077778598736679851720097937448403473126978564272625041058940555957175668514738000402580433938178506694088401261778737696360602032816899275306016756216388525111009166526734403027210739511024213575925946925880330051557101238007139367462765144862163060849240431914646622135710004206297460035370121761485934660970674237013166449414248107946508884252282114551448228256975588915949709022687522109558985677701684338088469938363553919988268524923255961527346989596641204689899186685893412460135638895203087283420370082151520570044938665363801769476258928340006677318183450586519606623435575978130156550502125301125264863185863995234325868827698224070976784113697200340826958299094571329828823020221729570729644265606051205977577929130691228459812073589505653295687589564959420631371636158272562881436954712225117767316824901505497440430637059518131491319865225362353927431364823296618418429601583523704434385650890006945244063605233100888515914390517203108036414044653631575646854596209650913054504927722337280025085094030409826507385170276746462935701423388079328618321839477594183225033538957923779679437284429833042341996879116469767259141594729681186063368086561734677028139334490754661453878807440139347584990684305159265523184707037338165713498403216439433733014778514936367779952285303799494108923348284938647355933461392139034303401544625679994823465867734104966998566563519136001714367897340296431386708475762415218949332552226515701211670754103732568258240753474902070530969783823394817779243728274092040381880539516753770087052998475206310920153002702469603291529339321272874689861923434857794766006578631269189870978844822962757414826157032730775208000082776016779014360390983066878020340213300123594268495263626396916031742759054683973704318731134737467581765804249900615206871876647404441424130390684618399302584173876037013402596389613043258362809548292999717679839279911120530814148249984190034284889528530436271527484684172396688622974246166639583768459691011056956942541108588090171248056230300100335988882368121545004021801418082904272654709779348355781172529280876401026104419583045311795036523856653051450541352991997700373622050270104542308373387057002451347537723569151281939930531016570777470824865315430490507294264404282226467541022598568143869709107968055541891703302184268285237185901986401521331591295325497129338048576522544806163565390265291625744173494678626194126151506047133209464375955666475903946716111830530648765891944647527822162733261892292315657516058474892020654769781780011779377296630841029956289266252091873095837065899573166270979314681967618087074032638045000833450162436033829637621274609590352747566153830113627755125702658522017953279442658933161838783092946571067534613121642214809072013091064398864006641958315357258718550725341967257074700155251268811779541747059129413351067558747252949201614964391489181296682881374037996663011503351513633560058126254525524769982412798748624557023064871479987944595708455910057530274624912629098866100701002287148716451853527385016341871180507437478212643886833030159043957090064234119568398345073658044579216548391113480240457990068819449603136508871500070355144197119597631690582032019038150559567766059142894804107712298063114252198298396424697627911327749885203622804111322539935751281462699566381470915920607222795490279307230119315792792368050675407643672930959095636023916974176357785114591208346513988304356181320361428331278585275667922217391498321349428819468095514703448469738536833170903978556885984615201578909926124075897769726193188655154766898332408351183124687632921702667198888278657096485729639951261105293033172338896151106543564418190479764358386858724785475898955483935160738193624761745083107044753121665018003835457434407875496076408734682421308785436123148046010719935649157843227426779725353915427571278359063135759996715546508642579127634953905529473990862330635053704084287484469060945020151439910429810522302200872076298713614265998465048204949401259848824228946543338249687472124230342847718316622710463643045223232963298942717014516425592188418073194752379507690573007397474689846629204227555121272082457291151127368455971256929041887765247724194638628975083942220982378585325784684243925393222155727614290613917394032750107699940100709819652677801561475238559556949281612661211725783652124633720068015914927495911911833925715460382335051558454282255754270021238947046547476725376077093346407525438516902106780020639643237234800896463334335757138557931145480328591532810356289489310404891766006452088211026172734534522357544867677609569431555217155306045559176729578715945542739599001729361577662048714791375679489248929890538713550969723066746690803196702002469080796559564057098813450009607828210636023018142701180416086630134210651910500681829719341516351455488351314152851675371303480104513416947884144427870071704328757871660443698340882547175274516986840782796939340853809866762196588916520289282174532252676762464343108694267588533697011261142551066259343401601698658405381272431328012628438677628572537714157984886234647779067275786069823676452618976692529110349068218990303917684943859770001151810386353841231194299152097498866278980571672321617209766786368985178674978968421104351423289305271658017610886964588542577865376152361050224670833035939619362844547851709183739836020339775962692790755995260044128505167822399113695746289125397530503242508941540431186084044376201891220450134169302545756314846057137836945920581951981611311249223694172421969497480592516099849705370748838114605507643733790619201314871491328727302385693213629415137172745297613437424649763804572824672022335773567617848259668825490341403754295194518581374049428212251915397148344212186369923537681068108757479397841861027335509631993000641633003935983643261638606718090023160284347838265749647555878011191098804399890515153957153744913012001492346174293929576923345361907097070237344768946097708771323998863847903806900459881547706141733581266343281389319344858639144205436103156445597222564902120583636220258033653785294752975245323566886628492793173818983786385585872954190791900006564681693438059193221078760423536708235718404018712972363963085589191716819221983786972656708423487616234456276182290835823233606752225977623870474424265656579283177480682639433029543521860845603961613987803709806330718001326005998305156862957556569052453723478480784166462333605733023278439628754780257531491672045742584394388402509391216351591669198371104203397706033349199375512942085321789560013606326098751482162417491314818895247358812655575213412715577587893177605912541125276042860752517593275313168084780745787910669598750182197941907433320636517115232862988062094500427101717501275002123551509981747532191485475101246291445855491932403775937116448158059562177573866449984518505845832547548281314287418477981178714883236596520755607854242628268189470668374704851862497723469296160763119582904402975516592857167997373883543291956652448869966117615361389342847705422349184463825724965113885282322330236552260820146231028598608859883777397205435622953284500227164329248583613625643317603696183816916910953931368697385094088848467008371369970475809741049697681751383582242798501971138936364871774909912073784671676871432811404917209070305971053685805241379797404697525737391160452967860286228657076617205520313135390626570267302488738800958777965612993192258659462072354646456088087222811408195788327951105764527689310266128511134014267540388252889619279433102794863461866744675528998721905858344336581485975373556720890423767856901981714173102725976042066082131787815705222357750013283856987202520229651174590541276086714240880812558322548936419895973805334103805163348847589191173869078220925350771631561302453942066936571773663992733593726630764938816439103406410877065081146921850146029328800747929829452568505681340061967717450430958964666237379356687085489498119656786043278875942673728067815677631063371500940144549801543708719548016881139121232649189026399332612121021663853441438041911907251254223476295268553890792601748043462563123518689247851145141353935660764894723235705742037611499166636077413137746559833961958816150326899424692356123528876393465184881246910252723380050250216200041162123095248154667876375378805533929294623694141403226223854053378482253596274872794738539452068678574380342444459032817614529813424231929739171929375864430952123731619071987889640669958358861125978344968195932787775220940406344702057253074682970708971862212744429334957796329325624555554584678743111027059891853359329292286656337889749259624410632389203003554872286760935754704279131256940940775205801165304054418596602335834718686991777899782761567275138745345856629984761598350036002983376896572790176451815374408460421033279774699256640534929759293165549420856084925854549861881741260438901170775993787174163200895915195046579247979344886088089459626750971099873369447074421785035378441218410235839660793747506445216581363339691704497966273844209925035934038108279027986699774298815585798539435509067394775357550992631923528840562508012863118541580071072703902821060759749573135832721269776959951614181808113119492124277532593865053977253644078442418074393250555856846530449028658292029657035103826478580627565911545560362509579899452555162143824964879420510165390622509176170366632628063938527673855319781474583534166522919119616101416060630637282021892553431516315454912233589543681256160860635676291004451489292796596578354971772766578914912892078891700773251352170418142432552945591388216955914070582740059652061272729025844416292805643919907497396510049925862597465875978031689350984576265774929718989765684603277926103561281987830101961653779952568588797190458362339747113138921898665442299829511070028715535594216617216909130449825678210356556790895375765705693527347289924075973503832706471549946669198152833986487162141113063874555492605868761891043134738342189612616088812590286618155366317064704058706933553588969019585686311810695389520529413903319407382629220296427311968024186318162615771924194797689025357700599897586029296344530700562872493252473210729891555261283348121673355274373085306957585418188163338997017081351342470950108060022940314021763985256965506937359988573146062650756137818303330643906313661864387908284174093289988500642008614254995908561803249667772415131775403520849910490352261541239016579587690613039294889731763281884483189509425305956498853518052180497564669392531709614440250482662950832554392742299426267465621112481181242368587817942893419360028106820379812742245801859285574597599657054945387230673039800786008367901184896116181703259836504013177043795276781906508962666470969632433820573468757759978412864912323253253339902461479956457217013547286968466653118939226854578828735992754510862890791580847288733384840177054972190904968742374638759514729213556150889279430820748334049141662592452481054855415127891235975127628769590572022266088365516170515989954748151893736284480168972876186101033635864128652165195809388122938568888820685039464950094696007390106195967254963049335038913933472222724575880763952585724725755537289485267426172225357901267026227142488781947772014287812668539474176810764207835207555933223075987734303011343542138823983027916167827741923674579513633325881977332322312754888548866690403668882085078413594147614590827016373864556140446528278632674939495492504174996516890097002702000822863750615285234569505754663304847684387374567211675770173773664742079534737181504507985732173948426751449214824992116934449450386584748183369524080712891194866621261815197244716211115157158037731230154684802494576270207589929401027590071005711962214013489451069726774103400353470577095640807361820520839102361071898733375668785933099412981601488881542888153251940964872523037590139574069621963315428561278242245989179060087480849136538005593538516518415271477108004759823774609824675870608464674546975030322968057437142660234504265221918259162142417645892034882714991739194240235839319705856495641675628600823678447068764405011782566503430418021718867041187519319549066168774782448348372246891342508377993424502316014621596576180976500391240084065525571103234890652992323679521500229036681282512940053861844933993857494247608138502726958416928405261784926408839199688622774078055554560122438199729481949315257461465898098546088998500274605914393389007491840102404857805026034467143693681662201256357839834213359251768005959863351373274493514232234371176480032346000994841884358644708486625847972556981009318504113765919485056685184255766844336183227174321225000208319160013928061721642483237339319572052887571484270211334244721782591462689992192674827692753344082103743222601376179417493713928331159320137462108214591938596918896983023099697895807158626132293306522656618367416063735898558766585473241826420398696088522563881989312287115267921214026066125836077745728065500797577229434567396440410736326926077968413539627931978787069345041608744813166122647095590344339292116683546262682175857101094761119163614553318424818555122186714213052803942066740120927036651818960838466004757892133120286311269680222857916971430380368030098023270732296941947497629408898951166862649747456016708242947542114453012104805131884876213413427736265315334772912805571108401728816132183474685794524355134859868874029214376872336467625837809244926539021620969068853886920096097677302326728292010731686665494592851456048741329372145078096589851209009489786459516792246206751349522563463492783249016849815651664080718932960245414157124672528585514363677125193979067685706467839546770035133209905538746148820745023523602552665049582088653638064307039351123821065815995672902174756987318822787819452193147330383695415591729344084821012477074586823298419165815513493557191703375431226288601560843366751739220393205214869418530114560317807619257575980712334578693190916731744770568354206751493084528860806722944323110143916759480509448828273854099152217888443201548395535565252052503940753377923596690625691965995947164888683050481503252063488949683082349710573630840977276373060357590778299335502519741413412646926717672897259612380563483812108332864993759139246846222551888257183512660635006848012979503748567162031209072781250339722831936897473544175258375625675620940478828160984628154372711853521690358352155978207363784129970856558586300071683327685378281382279111764597215750312890250376654393233329330755541275533528461456061137009941832546355866740386042125794670222471661823385378445110148423353183150577703912523006490771436296910926521821435937380215341001058795100181658385335182915108894343292465502096297327505985584697081389909130091659031922107843723460289584177770888257880148406353400490443064068047984901257286544831158810886125460867405823377416483257196079098785643850521214136710570109328901253887834408309381590749061915261892730820746829138761548562307587296173461809181220665634307830554977394273444427202747036806465521263250523836423873703241511291810859826786630755676649060394290417843859707033113474537063361187773844227755663204749467827862427514149569773214168615648033231062926839421801134139856890201420875966485811882047562259183990780284578663328723119292593872203071766031262215977157735688710401777291348770646824475886908850607594611017207432370947019505702225006099635037060741801278373367335740721552571555861960953556802455762355262868527606654751707476096850457389327501381165105661884159528790179666496385255403144340302008072941452252968371808291434736658355909725389634615811244833948630541256115357153901742465297730341568083721588024799173996058891883235684261467796266988139685372344047484285638641054521672068566497848712440107022678985911783660783759325177828793007987940014226105343751671378667661331948772536060040060748872496988761336780005893408844610266594418666542178412478576870784953426763815401298772017723276150699223743670701527488342403117957293722981344360901453838896149021820116358826213112609473047470439393239916177490949773295821247684289605803188582997795393262810082441429210301558184036573215337181230652968176455822000686437514161749001080591692094813425745212433472750828894158965944798791522934818271138210804857801973764616789512616087127124723210179804702987913448825235722944322769940959347738876811858235121234699676261032805625080909788064713872033164262234297836441928038824046249810514330453019079512249018283542811306985950057208002015295877944956989637310724376735674543340499205190362362957339196672734014923977209342269359962241982712995101143904632293444979691504887567024996530806104038835480448531251506341899131862954079479818719832224533339173835882533270208182196983691977368665753154261928352666681077806210063804927805873313375270559574506627184267030500760333319427901565355637069819704336020861614673292276247212064862516708408317654243081410946916692846381372072182679507451990417900409520736140382865112625890052374191746574297469429068161755903382891720685995519850610539176054665861103526106175098444279332057621758575408931851649702178271298563975909244160137950280872649559944389665356336835920097792984201832764643716756397201040925802121666664479197856424234266488753981085173833160138327821748938494300650193442314615293706857145454361802106196905282117926914501140979249595207375310171052878680688600474865688388128041210053751541534916053608234171642871913599460108027611914088984658675266549407289330640341514872436182887372679934454862782969295544938610786704188682317899736173894379859418498990907383453092899414859878065968389114696958596824798674205361447130166372774620321325885684214162675810834979871305607335508012594051467869763776604468156300823086781638583568988149918201436989966754841808920938936352736088557911705117382817254490407456732048865599098002131780278375361369538732771676473531687170233654606543395985103211059759394344960569458606390677958177984384681780956895265132681201650488544236458236993388646669604287178955458722707600900274342054980826396349866040134728970465993647436912645353446936023701514029793578766671337271281594272197745091190305479908358870563220259454500199331934319216197182823628723065201924781933875630478576727161529604731409068394132380746418579207072222009535330992971081583204083151387122471589672871051536762714887516881397430542746864168198452542955154196034547671247717863924346780484525109734066930011297891692074810134290914337734584357259709266699495675605280862843870448560748623293683689769683691854176976563342822487324774371865950586192737819112137840733439885024674951941123044933175567063006211266310217395441956515090456005119123848958403719612740735438110565238377679921911895131807399559381548229857900125917848939412639335064637765026043912456981117699922589719709572668645117136472209133241845400805145183152879631726161235671606980043408042041823903040175592757598754195764411956728585885229394306810595724813987017505251295812092729864820319166802950808002597470336294391272377769072895615784325725039166527273042182930473295254483335687060215739267108447417661350533360720378103986600261540635281813516247621043287804831171588411105786680482252451960989011997991513552850822610724285925575562084858561952986416196797954868843796240845141238263351398399357191279276899374156019666000594511110767051423349514738636290130801486556672340848535265059095937205420135355234581460570499533975431615912810507740190499167094613163160661335776829112790907297493427685561405235521401206741791622024531701541196249100024690753742181532662794920393945385309457558481352251283173539997975039456942421239461351567356109206107588144865436427786306857613416707071093890800052140591244343131245532747152996078458790060008219888077835336367304058996299053984780734128781698730727632539768677156154719896180492743431535184949459734687135555229816308888260054180052525621278279191672928384738575279148375717386852646006294127253357188345256134653502521524568501383316516032328210306254135758458476694830544699442102823688281102248233928549275039674532002906739788400009583548718370539451713795795659895543532519438343283338784111100872453546572740336631146277324105939874969920607082373390635076502814292951397232681927375917781670374918414132780811579692827981177941254428688302835968262956585601478265974044601474381884205620368673297428824725520433802830280094650939320475864166930364709225724399762241361512123852580924904778410940635591501766648248945568979216921420232244807385715451270665249097287116275569040756222918572934834489038077050215864629564399004753422177871526727210987303672110345865324019872053457520263542981878755603952405412441402076766176286240639133526088023070438996156313942278295690974069323726553579247283475803241633470454968836407230482588082847485381219371115268314377197871642510875983988803800948383089139911974092733057000762837956908191963483455971558402220120611140788477573431766563532306506002513559797312540887659376971341720357094547505371778130877986766863513470891393556105647595993793301846473373228537377926210801783630251611545449810911289352958985587383282506572813193202870634737848012327761528512219352154450496375454703251451013942222122726126693498924230773580537059984224474942983998444877592925407183372615616199290445321519495382843120801378015418374435567608439275563490420886205763825315919205340043490572830622142719375121483274533350142540170609815145245942425017357751833454394300361443961532581173728200912366381699636030272029532475645587028835478002191640248489921670793528090448711054656764065934534206012492483235471089076671462186301835626348414594536034845661401474831197253370143386094473594323292139718034600875417664561152328294376420687782370795408173623819076254285966898810155873517790768915439249512084487230258634052754669520197925886686995246706037951457930626298379884296649080162625598124932284183174102206913274577227770667549011956106034062273937658777429830511456974621939706188207903661697375760364171854713321493377941196268046495129053157033830699447288470278494381973534251731490399569886762117907721611546737046920935303517275312966945369901219281838345342664836983761754494850808721941922414727752328779210723032658743261304565585973213924273289189666224348338736176409572236319014807929872639891701434377753552234899380096717809737979107101634436387967564869725724546623704659322410318604515701280537218763214075980593020501866627770369294458964176701591324597372302683894277225805628866706846001397118484939398326988078708661349288041889323040987800012734225058873082705433466847129603364915164235721591634570210552065934250284975096088903164077411423783021946474104651835000845051518265768275626869869502395991775429359714976367816284775190171990762174380061997481112291016595631854355358355290173285377004346204967415507084048834379052010307129664077687142457694786281140707692830561123134117635534612489409647367341453512631025888204659076932517754244934129646553666637606817143176385887738532312354357427495122741825110249814919029779805029890446064007885907759500845683288455240737746911950823471721838589505832497857695619121931279167118836766103833502207162186373656160176166045980912652112355073022110628541305380083975671137060509767500964145333235471232398216323480626190983513270610586167783949933756964841856163030634731740224307599383728622669364440941964624665249941035273106303157755100170179172759692886458577139219404412374324911090369869702946992872542508605716743159597176993553188369346844688198868996471402192958047364520547706403458409722092705204893768754532797339021871868452389097141826145483517870692317631813257801790830114687576120592268996041409846855552942854687079403618743539517356564959646482276249092006084747801683734347904068256122829887007302154553192062740061899005445855873057191083704183647908825402597789075321327831119449050419183338226414535642769077627940037998062939114628582622514328734584087566138956442183240296802280957997154277267143511908898892215862023166663963048205226659297013150356587891348615974069816415074842704711978559704698958260685239038503784030169235571679836982433478694631189716976465695447286059059080372212740062310064240222596015430742959163777013988217437752762379273659369672719992230787620998398766518489563394671745159649800736248626847882309828738002609931039523228860026623794011617143941728802835470121039982268737349915506590178942348829589839762180595637612240626731923066019137648830250114402555316295266112650403799303822950686985065143528890754798966710706097567044550498686515304000782027550666372575414695329271219899769234611403097838908400528197411585516013855300871119979612137902417557723408276806152430672288931044311869296276632668002449116506490966637142726415946974038580354269611232874550375160035159266156146067567248261000307873325174989027449961078866037766307318786537121040476989580974343470647180812171602215435981057741382906004343583936917676932005685714092636204635217090085272432737720635704769819953549995573786535427866049291464265738077841595635536061080928940107099959629372740050916123735231599684623920236582129619028249161957227292369484833402860594999391801671585257177684051732564804511129799176271123693207824214184760805727914858241939393944192240619074460772917032598439732677095373450008944008152186650959390132352051645719785517462381691555638026049962605013781143162175357536813409143165338826676008869358396612149698098966601963289791836683933370746109974190581388367976776796407917149073702948943735220250444995106131542331197970822693395509518610036234385173458214325497512169226004742551801346416637530013494615859992875140217888485005367772756275201266875410609321765359415051523896557854387225956477209753096314035814141269876444731580657090289012601176582606834870735341645998475062621953790073775600613451159778563230111983250231389547857383569324960496766924229317643161848509794786559912327784078493660656148517850489698735233200241609846348198814890677961775078931499245285487105205057913644529216561615442909284302506600066879391259291529939635748480143165788533861965401919028601878879931688882175818896565931806097165439542207281304676668182858827797638550228437185841466104346259568785971538686993664210570075465830053539064296095948594368813438972938161973383500769479671531621842483461054662143165244351387235642016300785585895326147263292981440877722742051241233352972810788546756909200505437863029236816382061444243568512681903091960843569804536258725972759094921996327932219455465525861026041949452787647044668424860813418989085323365897306464923330015408086452523368211143656177265877922381695901421234030443281731510189202284798110221228336768276613384101160801083389971590598139476619954462501615970724666041476752764737143581353291885077380986855303098299869780712448981836538444626702761709115239016933519270253455660252914666017209701389366594864462281549682725445127139766440570225930298679254842829282482400830157308871671334582993422478063545156306563941189185765345692624404336984752122944802035911515962412708453010826329964016935663073345253136954931560697373350516471688900405025499557527881865341401629774982911643133467199690712694793808867046378685856504738790921645409898995532077000116349317348214396092158847622093068048370620225923166985495553035568485823711469895444787512990353006257983699141426431900982946989443209956277622374010785622665665085568637594190446383660139048893765536497972260420418456308099135426224006406476844176669416742569442192894381147096702308533347003538228932144702419604512666838308160166188690591405945150559691546750840229394054129919889331901488575610559251674802198715229471451958138182015940507076960981242628783562932916334528605203909649769186668873930934163339308822426407834721842127919459997669561705245034050138430749440209119564343099837764849393781181980157018197841086776863116067256692449749223649000958501015827813797438905623300444362504079044752518891455488965172233854783015579435655882218566874397572464564451216456678529523555217371521991441902185317812205058902560966494444441653063983699350699823557246576588872814535770184609923746755635960724805702975698080665237808896207829509963468683278838039998370456094184561709736269587264249837293223129064220166427941938225482110020132702072239693984641513855731668303149061155865268010055962244811984271802103460732838129883892741164312520714191495877016837255144563690449679261434721840817601333279857218014733047160298007505928733907949457032980281432673836996827913450486687218274124661877220293738995706266733845034704901948704023022040726689302117884533391512403744174411707356245143703559230795056667764071185841110801012794846648396763374249090184132774038445137753885900472371545243978364304469554962352711921328635451831128435619290726291267785503571380033485872910081213997175151381175282347739819348464659394695949416606624172705918194359818865381359074294649573019454264594408666129493951241091013518358422310728139467952590844893028877646609135291918668799360682780969004360215522468233008987544737961243120379410865432262271594965295303398845002919928087804534014926038952719897836796851194338938998460679193071234783661657279411687806674564074256791807793949850191515395804970199453480268068221087548903276387121312141868120132142068148893278019815916627008914119174384344585791568401912542687539719870900143429092643170734909331944248605688719636077743842193183063981615913649907744233979718333538402113479023924349971043658327259182782413479828336526306487701990797066582319019147356295337110689300871718340492637597424852561561756803926382394219418051215698049008512079018942557763057138076330511776946269428566947379022497416480228502957838664382904148685360380792619556948376408069258926139752287502162150915567698820135514749132861836247048958356944967161310966696388174544931029517297427888228787658005412530022531863534361761472000444245049727477856793684738376938331169643292724135618889774235158567302621241446738651049062735778660192304838730108554723184759927380049399645289911697512300035017892502587068385614384693047455220197846295450762223978536132907338581379550425814628702533023482816527346961238218546154277841202456573622519652371153490811422999995769239488635693360748920663614170393688582627830565902269030275925985337621353377653300976799382285690990682390811555185163436835571754417778093333465529171014760890480546566185255416342240946784220542294623004212110279284230360326337086124019681245762956912133546104915308889690386510295089939346722324742150767174098890380196633598045767653943424612508094026100281104391074345785283964474464989405879940617924071228717876631369749042316406865286123087670670696228034844821798566567372594936958485135739993966380625534662657423717784020872376785920427407802317466041273948601622206285501364407050119554293642330220199864591970798958146595500251265795679492059010360566483140131178716803180773799461676553480153707192107662560919685930862642269192335988656212024136756745845828596774402658233335682145455613013388796060048305901259749327043039390503834974585505085342420335262264951109865947533902668728262713369291239536549320447789217041096215119753419909177176793351060873306264164265226924160400983801419227622491927879928776784278941630781809569823369898006477288569397353339195193449412814291828989926197757626923158613227917089749667622345192314531408886357120452655259063982149117997024023753952201095917497222806350981381130638416234008630075274901176255585377495762694606466102845534005721382554005506017353960407044822870075993112080833953453749559037512394434352828922213345073784811213765043638409701964866492962587405800180622596500110221019051410783200280583027321613644697492914497924752882005648424898390710079766505652090380893650180163965930709908048856875734412916961004471286161501174348702218422419372197951298205177162703423988285061802292302511373508344630012958488000937073192202092460671179193747038553017429896017828730359240399830238030853006536449541751424816325147000376821004570510888879628310988841732804837007163589306363040328821788584664606635988547774563399721419667171539879648758700303671439374448804412645974603256674533851692840460421069670040876637295402158745161351481228382417852302910466300727905753693725033560099677907203812880367146511137445363042811975293682458624947873655827869174047830087986992286773104536034294540190062053534100580565443753853626045961396300498612202051350703987718857347361867129828899182590372838418184089075930049239370680372206721761303527956499590098801842123863525315998739588512970815565318971288338215302983097786582323787094362274730990114566129346856345554426625140975896004975302549429928710658289262722633636301712473807692705702845103936184218417093658435076116417951590032463822907541914834364110248064480195673069389628432833643442316716749223110764522230598362879970979383457625865797852859385039313171684672717136727938728586927867103372369652087571901581050277426696915825632099630805194207908602976305687650238527604399317095427699554553450295364608377468305607836176778353579510109301366199885606326959925268483894623190408041387869161013915340297500555445259054603805281779410023919871925084215893292408066055252358487833995983735083928998434487892156395659879015770940268420134686692182038461558954547972400486408683034023863154571030262830734212342890856433815550917376708736810865914315292931177611864787986390506112095410690868867886412301709214122626428092710177806919432849697517569299353894618689722809312677851077357711483510532154052153433139678360010118158907433486183942721917574144719363421210547900452356967424476880259637226589231692816300426209399329235672891785643658328383806305527803326945804658333383091561889776788783246709969550881677699635337879619466237490601353029769940406637439078624087722427206207912092381294875444230415882354820925958249340424986958084351048537725581218034795537732758888290726489364118295610312883042853012143506711209495290320857018746385889925661308858357093421521730229721353784592340849133802401463025052706235012819306570997541213722186631783583422733423552259084544076895894830520099162424505634312859611878681592001079630837187985160685685632254085900442280474311848664104641311771689402660836597817527078181674164598523620428883435699970746639407897037019832505903986678350202935732517149834286016262977211374414714127553917631961079377128100765515678799704728156197190246298098376976077942070261859087436174415938629933443513920890975827964416268975612139805112686890668848127960127504114293564482423738448935976225852808480839355770783698250421244691630401495875812806498413415803266491916714461659993145079518747346320975779061817201559896972980044754359913798956480275468961418149350037864167414188328337138393987022114367299125374412795599660915998070733652295795319722296041860061059959336687807555865719059284636555813567664175126106558355319839421157978732631276298444276177844747389861110104798427216178798011442454714609622170383061969625074442722083287513816970572146008962058131780046346078561999355747760378639887176025034253205358604379646776246003826278432118128124286904474118981475625531753965430210946138919608919777803513544029598452360911906773371861105643563127149305766584022928906224044271933272271200141549345493792337814912792325073225500980133255717687486590467578400269547307340128463186515023794803085002281237841502154105658027977606321944569387176573237854193139062346478386532061516238042359104802001024573808164874013417268315662060148798898850043560697306756631394905190357404441905714177495102875278467683721731582324636657062979861687037933037795121727896638958256565005305540147965901000538289990107779810807011407962383204633225883298211230799999452975651642688530998763418647878414979282985762351661340627140083655541963190326909214526904081404638635694113680456368960044458366403251644668050291795530571822328737737364383530816735059150110921329178310219109939713356680996234847281142169071249477739126683431087630624311958187822211934274594285633030613776706708675103367492805259455132198821359235189804102807574339343890275355163152751058348381332036762063094646670693989145346816250685011483832295089172638861529700796676350296874129935908588205270463394816540635749934827176935484422918021308722809345540658934059806898615689274824386291994831646075094786226031375940189474315430196632695649199691193594139817973806916725600404002652492160662308969737826604023206928132354939023232486621734625917391102882398708025589018999308137684851597847445622990867992365033423164281875784708946426743749754664298727202070780117535250462927311228807270773269307520760447335310870810224832473084675433441611630948974939603764378984085672583483347348513362511655606200219322661389803813835160473785717359944632686948571287543588689583028476545780376532270352720414483659599526476340837355896365911417095253212877185218986660327074249408044632106321715466447863266657516004491968962943686920255758302118127995586668542580600907995403128572914576468905620934302442953265313596512936818479035617564734744044055706164613949805603410274112274360575803054295539232801075242163709765104399994458067628001162429054531264672335638285705691233783959872321355923030396645212404641405934643439408673870256817821778593874309570376684410765654064235334199331229192779353790139837136705888049107773593663107697433704548592929163384294464297378110613270370304502203238024736005330295135666377640809104059599059414676606436284628458987487188178106523549154372244763337516869524189728647150637387215000395705214926929784529249942703650541294513933051572063594796831917127400197861709149173345755557852342567868409295747029171332941736085785161400630801883214341350513571034583611253244343716213326786114951455366361977430729925268374516885639353601623309865417488940923076081840505400677158530127068072878750211081949905065431028467279166923446223713707768205235681410843787685363889367404609664822405232774482222685304404577817179649553666916800687605920313199701382925963370255676394679260188577837586803615563359671480200620389176586681387667735451945067878869237013464721496980838687352987625598746505481963592345229982501813658315866198113383091881037093077921770346118591572978296856397790139594061246870062984831647543444235644565664684275560378878541642743955196967018124259445755021258990459912309037422843245384384533710269524289419407571510759499744038436639922914088842722078043135758599136759539648366255264381448627183078550574187201005182323506183375853756031314247968298959830636955855136699541959027653639137347241781521189437706444288228896446976700660140704498673331736154349509433921582157746265837582293666678588358414371813317763249341049626597751160362778710655327684926649315678911938404003136263054190009832514048077028362029814744328736565634931692847655668769097006086379704718112458502612539596872906565406857170364337957351354488916455676346735193876851214535652069133887563738590167177197757072503591800998934050867897614048331737941667668838141112629265880480892619031459447955281069030172636381773020859652876861551664545524532912589008260771155038286173090209596233603174895890303786281344161402489985447706052548277480711887839387343035886246266164715524968930989164024231823713904624222669575002165702944456730757853355527633830036217613119840170207345300071454428681895464191721866176068128956065872280202841748722894492531974967733480098893698565368750107189321820615092833344467568053425485171573123488564747752014772202857614263734202177758147779607140325349218711619945131404168755931976823462868789569127710768787502621066146625557207850398839978533811975841808878890177297732646022985319440037267053422356265497505256380628120359498778080376253629523594316471070562747312043884582909974923699679434605283870731074792993735448480811654494713058107830059664472166588354078567410876766526390362525327128102238781797716508187693242383964087163066511533381586323567431769337844282196008162759803994846136054756304010508419586822789336087126565690240506014333894425246125359574787757614259307702038511292549374416290926951283956438610976265898262606947592196690587520161246306683655942533906453240872784274771911063209962874334328443390370701740294243845029197695861808229955488562273806810713260444415634480979162724815044725648063443849590200505965584580131049280708493180596363319890268259275523420239205757195438738398193300287020858378978861534902531255485978812482044170600535001951171609910295904244138953943605896224822442487953757592754269087162623249503660938641037838859583504054845849974702057973076160230717551241769755462487343541562890924048815923001290924403218465725414400641801847750208846689251030177357172066400674922638377812491891810913193590482255033611598243583732731892627475165687853925748253322692077008040144806523093020016201997385687017671988857868821357525145782098432182431483439440178281215844845534205068259263097363432757281399335928229594489856741774715588661297155255716409505217540453585879000729107620667696635178513876707514751272747734756420364870132691781505659688728324945329571322270304807959217397801361451788133381813560850535730560522016700220757212990328672231902475305838241686989576446779642547080716427001779351472434191970733271422087014057251439733892148297586601131660714964534182834824084006730782977089653754193299959536599834023338506688223131603267878413458440120856876847319153751016335560334121820692139939470751539302854061889401919414153452117496111878173628387509023830341606689135657207372277713204583604595720300174641967196462123757153220914142449866124348367961168396211063708411269120657377325239434650252988492545230453583560730188982519637719106901999942826189655682933394905020138143917218494142106662599179940613290459583065943024998132159548162553949775896277895536262071140863402996098289738916650027415587225057720267568851042942442946442374115631174718141699320972135161405527730836626163945516576567333654372887777631661739122995973321920737936252196423453834201985400255137349897062957537104344397158270992562115966549645398091957976063207478563307544971089111854447105844820750408556548706400933171181153007285776841780605769059462538134214970964528535239339167547961636796897072612580666508666792420103590390916866875020537480318613925532088930475448486837539772173430402295574728015940997146085221753781922405250217026761602541880954458565081878251209702807938920967899117044749517284235063919121322404104988110953325532165436000077657816816316590275298676246616787961403039527970070069795265649492667296682774195779971910391001071714054174933068951678521818633212491720079431178085098376875439448141207675578940877163366351095306717633568218281152550920442763136100743381584136665359966657147728726233098579694510909179784696380877356621429295629553872890239661616719879037094277335315966861250737319823918323113450598348363922339515714887919013855929095411261327945336914231743818319698399227239646298591007879947995201798746900243573570103376686861224602181437885920020107612761138171101751626321623151975391932494498636228467171272435345306959428360260740975863219584725644923203033766274479739836471162716624299760548883208029815184493982692518384051142103145905281155351870962727016223809161482408427986283942277639380125379574910001664207853357141917294391136195744865441733924177512886523364188707324702911152773292070843382586685330270178700688900443658673893998340872223678785234776590716552269267498111383854793805794956566544719054230341497235701456798453216166157221355295768681563804302480060356454120496606319309193722276678630557140059642999876492350451268862906739030724474597787445521168737299114078798366819515531619628983504588237793191274054470882611403517870866026261087397464847466519613438551680609405982495239650548737281361474994433347543456914558787178295637633097527095643536023866938090901387502061147651494962124043926163301182689510947958272013164937467894436425939227630930617855678877804564848587709168872073815250015086486039754060361241344326833537761421390573004063482305169639084490774624849322853207734752261891201988403395812067329514462350951130650579367839976309897316416159577311118575498669953348929886591976576960632559596981348763675370273288324179783882820032242023810125752780320373548487312256600500731215474473198995563646678255911050360167923217942742552745042784050615806245726910723051521759881293303092689884180147413958544014865478809201647091609422204473057587295966069575445746355149112265777796245883108008636160133048564884240538584052805214644362457556567682780552166978185930110761776182176531087760579204250302964754901919971057514129069050489765638543979221315162688844290646087656849319128402456840897323955716334405928822447013771568736689664165558886667805380391881822947265478234903399460964595635980394680535000403825530104612204390064360959034892278060802319633093338818703374237325011104592837866663026719039300577488352188279133741683770098724745685024750915169483893302821720235550845429098257614417410342863029332674434708171583071685741594104254727873268883732098110025032309067449010916990518994463769134149861276878263664473931910620785832081639873839417577286024900460453210372647394573919680952916349616867162596685868613130275486323925133661852088007809021119000045755542256733891372236836131751824301155206521658145831403411423330325409184963777322551481082703851278880688570360216634058473664786109760309934977177960914189224345412910483690833116286770814622171924370521759717427898289376307109879176071575031711802499748938666800574464497618199407469490221474565066272275033825155540322348586696671162753104977285732278774725327705847849858180828527928242059953968520493402770054654919642467295161876451272645922387137966526826674772612440896646260077169748893246734435980344320926261085316908349273775987434344364393823371908415020241219757573789997053211693215081446167725569620832157855079746942678676708316535070376761180821319351494450658139054649102410334330461508219922816382335368516200439943924771479038117565639309573865237210541375118760986931092897538468804751183194055919524774226317726993168991421231450954537218813434717717441126903343825470259032687635898477506511443989410827007967975451601053745590365638762318645043887149928436729970047702977524721019413778367008688460038687649566245793897886426255704720396564274135268337677408645058482925879334222784557375368478590527015334763233130089787098685297586438005145783263206530414672138124991357352597145528546437033956961035388299799419741466316845074429968817399172868098401298380862428723809313338213907823871147472049596692658140223161312470611059914735390787504127164070169205727927801121803052815482004617679999428789138003450471890695645636039552169492364037749052229023095713990795857013689411774460760103968339391841529099201683296268020402442592746592183150519311896011937710477287159782970658914289036237678493283187501350739806200233603947233389520097094827635365726814466808583247664802897038702540996429093232233712250811315708553149437304981145775105484240417827314379417758643053373198703976730229280495759967885195494991354135024719727132125572238758803807637918821174839462868561315381414455003171738598075369428651715154288858289301690662771005717662586305495041924980143007449678305813149935679614077258665286978999969480150436060512700758689862111605418429397895489784944694169132529636382096012991935061034059591167593476930917807062665239726798980155684142321373097473395209652668991001252064140148319521853248692387388730181064643234716748202597352146016283395846725762311511307609512356187958147629255620957674129400178338208901281404072552685517023041571381825032007977910149445728157659772069755219075249783340885664774260353913456312369359292355611916928326728202823918303204296196657361442182103586049456105634276360240463035354553401242065360179243381537752341733576369084688720740284909730797404711542179634595329034341057210242222776582082814965563033048957165739267712729200065634657941378585019074197687436355446607574713692299932812132599517282124559171478584153094873056163225661012628998823576262301426677831125221302798441453879502695637259855421769115596829576627009015459635079447264418852719240400685527107366466668754121174780073533798618571499453266969751984432187654068962047714975105652795008154729550332881835299005822183450782672452397216231352910682480925775200252024853331364793675114674992692076157375882803821130980812961069682715786470412557791322169849000769968687816315080398462021028422835043080022306960104747584952885977773801792182459614995701254274794409768610889146701965260233556504579795593499004657911192739776629868744443568278292180620305765539401372766480864814795569536984761819007816129671473176538915999515157808312556562227519250431158277287848170154916927080005079496829882096337656678337756926838707605473091809307585420917647431271671179566313248795890484082005702223450231240152020408157174452705716236250903382351925396494697502047136627567395033166187004838918904381107038254119835090363083403573608500559270583105241898238898173728849350412173283384687065507481782466675064290922237368919242411794615797856361079418785326498559037845899398961831280048967042011141384696744050861816813822075886057020976365137289472958088305243798838186412737701925177880915951107502166215148877295400373067723850680477202913737388357584081159472445188328480673044954051219150536340774695960742612337007963981489108565392804969424655905617301647195208365814532664033883865179508353556016695506766630679063151017075022753104135159549596482246398369475867710745648063079987154588536951803165431328661944967882697749404878412316914370057919280474994913715139965279052659683151624526665868119603455904237437967230387123069842151058463213501187665944794112471871297416918316843781694036214443225014633547560237257899986604767038326407093176030445420640365502466308052210894344813129598246023724626791670227603618128263813312500159853146232230133851150060012489441576547673206773382562839535006639052300415197580956533851094375914048468376938290322765024238242171345324368258300972098454115906107076221044506612885041208999692571500228100434527023441463680798588615118406931923943727603720986226250736143670170369579710877079204842104989541668667287561900986284674273432227943203751188222835935644537220135121409982816956479002833711716531271249241625623370480626026258850647940032749421213823081040994817586436794417638293779935996133505175652917410981899556554179940274384768957790755979083484164292566500886290246993324868215151497989243311735965316532978797724552095271587069610226844221342920430357311949784370937850328029648015255972431514099716652416546898364075939451663238110730951130450976681621060491267703175149441972001319123558345797332444939568535778006699085051088775961095384988879563997901211338853366690497493535411107270926979738210108358386156022683914761103962023422824876252938097970113254054774269676820230150827916862930228594954042086829118967630531299173875440729468380328422935264131796895366481132929416849772991425432008119617479949103736781407526903301237567505409858075856481670805809490254582465984610855325487836019164897468405910958449998483866854919172540350439204831030497813449719989153823937584020969100626738507119152051291467077034883937449234484407440644447866835192349287423745400875489713525210106129884117326351571467121349709655590100346113067092094863948983435213060025286360080616218185405518423341271324416276694261899039800736675403523159960433946148795143139929712943013236551660677399165805009028978224034955218586917198947667683387713207486280283800229680195798892351001844026520808855686705345348826851400091907291578783461285982926782033366277949123314247519859188866363363506260725666447410596820674684847356842328663538823640206986050601783974219938880724333723537992271234276457364404062538791023138595778196907889561655931851208297205469752988646640748508807725675490172110350078212100482731769631780964022053472504587258310091965943255170414564727587207784231796022596360928105643312807732824592935237235434068328485902244417799991199678814630503224961760143483586439895375116911562479190495527341628493868851465961989733586705415235290459068300949260095780901424261251142992967017903895491738571437861509419864821325886757372366369299105742624171673475511008750178776951927809707902143797367745152400094383469677465648452156109648354485014349309050265294895393079337524578780091602476049054376353753854972569192766674045187893785192115977309714309167290686294833391321578303524642890922034819046738293561585640038374318831735330431643838103021192501197118027890392188688252797291410717263361357497740554320128369069754914384502470557214310325431371430709389763671668279425571887151434899426646732744320696564299373220538909617269818723732544969181506811043090696245983890385163003866533400964565556014635042666406040532376030899411273495497838177227367024292970938727998479498149623259306275288634358745452369680447829872786998811146655423940081147051699611364726119695061137407267196738638822906694956898931352535677928349247229779903190271727890649693207869575337688360530769653411607653155818132730875224322881730231985846926950765904132634371215146557656673534234647052153691603634453005053847323205591956736686615352559820557372067245920560043409325636877205882615816600719985665697256739277974296988758248855912124324300100217610902712595784026629381444818694265585915781330525748427074099986517852676452705161018042402866313240674165826233802538294918615278073411351192808062932140769190482600551557345873927999417813869838388380270515851539207661799655710756455095156335251216819770722897780389297009489597962390407338037207120180337052276120338274547141796828495045442496492290688060989405614847998915792119566541137786816851514326292933270605374549880883974256307354715761401724461306991991663863413591869871583134219108090672529848172854572225195618848738497152146680905654422658296697162987936524219666492680411132811534181668199933121962887546241019237082045758402457259607001917237359232741573053591692935930602551246797582284835760524774198469522177792204247330967151573665997107375673455111757654059125130454871613385394120602883668002213819915162608630497992373142535493454602286802814324340393007002756715875843840178500375872091204469389413243087846945475783408591438670130771529077934563670132416392461283559711565135854561085882643141864987415421484905389516205049987919711684706247471434824130174555203172707436846944862336049751447747155251687389368804792145349679013653261801949680805840056898132651701188413703375138213076863258759083916103170702965462814573077321027318979691863736573721216123559481286584228468815171846376470221368713398674253943199355897809380777838334311894974566960016663604426879676194724639313675504906366462525510474477626860596053839811753580812229041317303970672451538473869729278294290704091832349191678407775197357197565119676488864767287999965167610037572620453683655275932060942956037176416281304061036480422257608292075189787720500800065493838142493869167783810602268549905344122994581897384154016373140393489258817112104321667700938910645737969210076836541317014170142189383493948352119286630939595635774504124772265244925951753050272365842298638166357481229908199854088002648361345052034287725014755031556702264256108384695146246113333610468433640612331799320253328666330121517573875619508271416987817627452948569773400136315110835272538452333171404852424674707076077070299356751372203736370659126588347036571134073949092195356356322723860835598522097633232939571351269884395598671298112218102472386100693712096744111577273278844553152681672280322663880353476829415193346185059770801901836876512049394344024161027434397180791289478119918853484048191831930249817903964168584417629612546299246830263977439411078139710154117571230179618850361937757494027736840109855787049334828266717979264151992196481715159419822531735088920991566886064910472330425199783435992401573656371682338972378894896496264185373576811304753594324714516496407375168035378572961455484653090004475689582097269967007306718132697817130013311781777086432050398089487308568799961574611023839074563980433533199802871788235617334057002580636609818534847023261840181665410305424264974162643507468234910263281652739429580034762016364062348752786853735486728662937739015985566893318497570690478732614206541441057237741559795452512672050167470626990200350482481153899592437676145059867246255193678908411213917467317187015869061199565830712968560764818376115562418365691848913137666315060018919613952025351515688015986830525263773042418909854607888141170565410307603708290504251124461086679449110026239464536055087605430757135355051262138650787326552047646175350647009132300305500045736103338101638394860511781774813544850262597232257691910205609093729791527351550001456799457501335327622361611478858039419436954581426275116311135543295057923381556968625394697924935122764350568625505526740937178783237022454271454107847859780017010189616497295124065615554997725272572334270222875042300972980327859946608236246986204931901075517593823323088973071846442679486698731735748708646992361701708006826236461145055330440629142822043991286906535867739985588566538505925893551259749153326930279563504614538097029543297835369811988288871868355298861093621088568461058998938488283291387462780443628665918249389552360489403547412322393819497859857357855608749277836066554265749839749656045464811207916260860579569321141890834676655402371359349728664132950060815137723358817024033502087239979559825513697296170419593719918580801877491881183141171795902097122185077370531118678210565287309319556169563005714057788210597752279561634883576024990014248208430958436555897050397458006523882905119256215199871677575309845349622598095363309902808753220627279605981736556790585344221019387531317733407677493049276510409800010210782675525957889876488829387737467849112658960232254579303536515756807034311201975139202013162232898973427392105201112469411949613668792702399549342043147105616450247380108324617073609604501697013600456775241946080310050735622252057388789022026726477049059450152479180884372593292696882266846676936351721984714129457974178795895278359806001130724465437272347244047345191917824316245907078614043824480862334418140731987352002036148502601080624161473247535416257031805058446768471617174952654699297570783816259457563512471914651605558926983957490405516474369449188214053524075024994904143634377330656583048290488483645456300723011765672192698416354558256981010270334393007124645595994046970402135482379354249776698158988952061609191201999358265697962374751592595791347015043948312352826214283916311541195590293626074691186468174028612969854463450399385289894821835038353498314793779461046071751142884220583183087446571369403301130327032741687651007028125058745359674008864810295274954122927551796944033773699649358498149938427143203585611002932153002650973842376372818117224464733031872704853505085067673813824586963689425739092815810413216886419352144552109087433993471167659845422963140107914873112529270061344569358191034050308688050287817900683877384326920680530340061216963200098732138880803643958760418320543083127178032562552187011274249986298003944597087521312946913491916219660322673249791035618873873147156257273208644334939531695746626416307648972519006485197152472925094793690338433492500811766815203005804725210308422091670982312237341954130231798512085894375583742104706589234065348695272373373970823624492057707973770442586471872280487990392645363912529700720388526210287975032000961094019653244684385990412413693105788242194431092017447757121705776137165009514739756268606859092209648294503970296297946328731657102361040698146745443101063653631834418793663172580517169617216643950405299067330116169400098472156244682339878818014272227850956093941677710425507685577076888589384837561186547629998968483909507496060046190881708356421815932029823842741789138498073679636732142792291246016539463896719591927716054915287238696967282749595681461843571671535699053761144804154308066565443896964009660490746739068573622108707221207238546763517644249119364545542923145411982137040900884492248713016853161709456843400454123542387708201967372848698382725464378641110043851713355795765406630856419604533373520833564048800750900660515793379895596634242982809886437012260221226932189439957048266741813555018488141880630346485992341646153533907374851327144528425784497641738368344956909639128789099707029298792732474663887354694776692307214715150424249913095226388885623855034118657357850450905156223321884925273385702151064560018357619685113104200003481770117623199668158736469050257002622837013520702407042298923719292569514261013890020860112526608064124270902127745865362090659596270564642926504027762575503918913256195229582795980530795010139310201149325988447184732079518026564029724429634478276356658475597983307699518455533003882692026143112040172564515300537853271173548758398402812594099989209186111485125408958124591912860799250448739084635481729481678639395172524833140666811745768944298880378809509881138774365880623475469064280881749192422687899791168958484836070052196642602528189707722208634372273639671933979421479104739048177211407865134128643800574132469664252444985173823554744665727355912837181241232202652698704691260388652094309309838553338027721101164295155447199189334204440819471521891687513705331897206646523763459458392042594587640320074720268157291193130194616696838300904174734830267623168006341165789561462203480427426280994147633277728160359167163383471117082526532013159754822420933874296200384478654258390002809154406382944644164118750859010401524456358448255523633579673913961919511968194932047786410976835342169998184515713060866392397135364036835501230547012949997864548171957637454298351075523742030702323227581444149525145678573393626254235767374183133850881943576088753271671196062678677867870140164873362662503851476031054343055837367086708827416022547239170517382231329262205124366269335501173719918111208202201755362285736398864370466222481775335975365617737107435560442298911583501664405016938518533331641774139001950292227848001132052265796167584276955809313065573733110574583916777499772370855602356760431455333009901554676001273867210988562187679705505816638128565190598349131771885935029767009710926787188628357701637202296182430975772897163184392269524945721574410834725491226076531888956964088618562301262087201998937094143625211979727252208083568636990832595750749841097454713361474549908970074285702273336049117023020026374984296694042087528090355794891720947274387461630819955819299120507980440771829703432876106956398070342896577914613663194557377886929192797121585968780413655710558776324103492767240325332336603143759809839235210247796310545511213871891970188532505258432964405009318881535734598254944300947325836808904692941906723234053937616520586626159862397574476185670495052054265964930090180760366798908037666240831120221219215972538590389432703737476281150631236571254691341145825547814287399937167593857136171510613903807539235045470970758590195642266946029067192367747263184107150512807914624369954838869140339195950132522008265364970405749027427505154012691604208177674553404217277565879403200693368579132230702375876565248052863724507179192214942547275822566840574170878030566580661995365798345544199301058639991642665010968861827786753718478521065717651672428950377923391917041929178546882319064467328968351714155280271560470279982553557830792168690540685721031579130019843917670266524591341901973602192021066918042877185761649137546685969771367216616714019415179194354757911522387367661699674201176386200277087435021428703576441367273077346380452155058304381655195920551647423324904623029744643160847430569640680899421211779000716570079441447272011908206445594652209607821818895353546348988619399626870351754435941042540416711366318351189713890437731660183996174913737267772919952436570320702994713190024169406581167420157432178442618389030027672659910433989538714422418839089895952026280245050784400103767345395265379713461761935871806566906357883732924127201980469202962610556639989350905790793199549432761108553365601477116898826220607499965810366024875806903068166753838958329963336956539578270765952321166801202666421040396295964235049115031711294876581831002880646445805564654589410867785509604637496167861308897200831259534221838139840061298923375767060665707966167885541936955602188327739976564958404816915280950113967769071746322620860471578798446247900690022867855796043187084521699672078947264234568765177513975383165189211038181210098918076460325756832805888764748399680778171618451271283369719248523776040297588396479642789819120779869898714195273841534233032832384686675752623390550807527315856923604965729951311572093961668623484318817462388617040409436374904212561294304602707386275160807800285442479611457830654250174210741369864336051251734797815238501696730057799009587393052873036287714609560150061724824485064626131903447873839977152858345929818597033870658715898715676979874263412955951975533369974120192524075415157720203958955668788143567371655612819210707406751563225639800485187340288659669614731924860378080979230466694637120122246363192653383919187794429626552344834041578642326510532830537090446120726858299670961951466122273228769216351671872643850914902033122914084869329769175503756107479902181614545223334274414783829326864164473182229974902970308676843327091737629942894388090820087739032173598836028390642676671630417092087763582887026846230126262556636070985937610428255622039358861799662535222469263286844554175991284680764926905590830020355278987726094553912593610664617054898476543840903538147432127306706231730668612619227089202648870198567093026297367336091762729033931712800231833039821774805436878831202033711937430010769091004541471841798867982210597115162547406754509169920432282537560833359841545975764919298035533628637725833320887429634647337176086176246556765489665289237517967276291601986849774231916509794460810626849272983657786310678415151403694404428802212169170817162259200520425022140345742362602181711276115711271232544290773205110374112920255057420706448937161865337800786851363172942782447729839153535294751039502191156217015840445030215018128907250101936253351451013738046991164001779400034079654495397160418393931048794172104720141886986711516482661692488064483421072951991795714130140529243819981380983909159079867055085495033597745171100333688004761597732040281005693085718641469687799134731106195152862810741260768266967195497479495104341254347351784497634741670938172491940320126229113792636331553482129859611238351057096708862700250153623326380094195466385009083014569277197616530086677504825807376988143663548284475423348322728944265278143213475460447252934229396699800099599698302635385581309783192368420538807082646424470720658408326279696283358843013996175523110218379808079905813145325587745029491280244088880791225710963471265372344024858925747919159548815672115756666911526178440139383707444021282168767334382262440391235606569654880345432135426840483541281622244330970954814504063969177867019190498950483174846514451573052718284064219043472702757631822907441697934267654874164233868210626457022532266037796950934723002870279377501545277395828385734796713679084065232412945240047579077448411844771737433590547771158521800796186129904090493071983938373575993959556013641304550732066205913459919156999737418070521305755570921413117901456337419184878289944191409818322582083603811904260789159492106128950743630157337055207124764986665580006681431519537295451553980567427193793852161713475426170599264450139940130995270589073825721227028603012046391375032264357543689776850118299410839591153827167050872775655877261451041090090301694840046555972810663677763208038857304830452371239320486546389928811883990724741085165826926987624079496878884042087034827173321304787468395644813509204689992578921256514792903097562898486973388235066093722479756563256388339270194285185623587631791849590276414549965089468128531229627113812655764893005133733835038204516675052783328456520986572828215061243946507708560516903103565628428183937632682728816274383329986433865919992775445901190628990411851197548170065175925734336813925007074721852647903690949937217068748340528853177640421945575406198722488078885241578144033635693241299041086973295155252071340857644313108037542626221230271976542320551632895392411155034077108897499907955451024640686832414204942236662385829626983134849772227172636326701133806444472337332662439204263844784144648816019555846226010252306542233214679924855446784780191750837554519775521041273342983757893734230506114217447842737737908625998826911751881366567440565787220065643621529923093029344912451086696860267504312713601737385963360201631429427967474537495046566953801263781656984341988371146505714573051307317348669724992112829724183587050282303613766262222425110388285110206893292472211037315087534618741553755649536327029339238168460260513669424852993385686311679209312590074877458669278961985781560706482033927346372436453598921828154825225858231144614436267424901362168906307933884340480634250862928170836145042642569377567648718033745648118269545298804652674727006719628428781201289142284287780940605855045603978997797549891996425592518975669899243601041648564138930201393165509491084412762509394044315761533568799935897501700609295015887607661771322457243000112784117761218552713078147619911045820498582987018738466201027809224369507452789329093997534910542091883158526376077463627884213073398682983861853833624047313386652976615667809845130049544001788687485214173674250589332639050596330830682450585272407526265788452858208373467387876964752763719351016181424130417990479258273613197564420803174637493780968577019354179189484327134594171576478339522156906829668010044957725662673613345816982568625471943523216904469153688801151870629282142592080925920682172556482476692016626510253055066875856031896811389444327600275495279187778909214736364108634560350940249344101943340365796417923804199866022756852491126642450198756249021807959315540534231474642314079762842324961798148411708999627285223777847869473757366807240993192822056391583679782039113838201116509764328374540893509487486568865622088235336499926609297856001088057841942935519611345394333014458717672313935649856156586024079311658538512263427462868683378818469086640964648409661185067316355112740037838368337215694473681096801921657245579651004798793519946659275025579446516488803280267478951965638303888588846615986421005602467999374432357227381678350488766929261805612853265982678520076466050082469517608470740686299708635471935973618343554632570124930247437650385834245461614882906202221438385329991867654731710520081144013695515990607876601833518419494927653955884028536481502367741700700829644409439517761064523856252870619830476070936659091486561473225883144126380434176408139118004468733367896272530892801429259054299476163899620181088038374044144869992950699876121543085981848786047279113176290127503020630510382540015056828119166084360112909829601598441041196745911952699846229839173307993540926370146175300847366804329865243654265833554273560966106370695264170546900561695245540014590097517938462396889892860832139548161073668310892308694347287420509647448620291788361905096555004930601659617657895756985466719972168994914665681128288364963407814099287882007470701062884376433620394939562208964137223398468642724915624853654319133034582974892829589632880738458550982155415142020468297727212474529269378715981936486207106601229500228761262031427613766857917996784513682684115125963084256486922846555317389988683848906570389927958609667778752891950330636287575724541845247914608837549900486337300168236242170633611227163136609864080830306713658309382320405123484067125302941235721164925865536416213216045817180675087237827014200374738911562512933794187862083680741720656065879432309879316549620000325232219682732324529017204919054716371839449468693122563011329695373447083983677550192002775411222368834649691499571945216306613317271039587977513560280405410816316773912103776403578058016309292966852992104832818245545395818426779074315726466318422846053826511960775598407314835667797423094539727295117365308672229835378296669577372776839587546483561526005584518824834242171960056589016039307340684814577662573121576794037793530256028488385362726871353816359949325233404554345215154764729621832588055675342367569784732596757877871105844958174644622315012864756609564792430593280638413071246096807382752634371782308063062082067985582527119534502725356039568822996099402179459675786938413168220925491595163464142787771247775620192061032344830188378540337835621538865771371266447330522292897007093273735395186923838719312150852992267821430974254681336081971716223401159667165425970388164583462789625657156915829005751759204654235668199164500647753585044844256938512852960872664864969666206262940280842701957575117807247492560776149559307547556509958973499483905264927685742400294881145605894198413869365105549933689590589966432650376890220583560937904026118306431278872642762961827631604989804408497290033780707986624374958033296940829480047224774354192059554396749140177677751759905009300798000689581630217835314142203701423264609188391146592298930205572176617074590454987801083435081522313538014040671657056060499793162671494685518029256797196188493694173635951849816502034810596410883634853328533633534980066440495989741844633246525292199995391744936763722781946829094921043297460293828129479379884756969514475088371373807061708867396225948349689760010106001320046389970678118693244468478076867754831417075614569380981385357177797448376056968476030381248922738611250723905252551190869085427908833739704793499224714383678907180945410414688534269777456455524004043767130889917676334317605295190815845938781204281217051252174321316960413119865261619366102959519393859216959430390561354560529733110914752302936608009876921415369835790692040414768428929972096804310290052892214623276704892920767068358248692196505819600280628573721664157417932124998688430762831452518984851740026942594896339568107639894775503127778634250140263296455352842244648493195669190783747814487617877928798635724694321457738172390084062445188081504444619222441016957312390880034768630047065743494694205125525677632799495075553558249636065592464054911770230207762087820481398226012264333399725669693841590309671777757125298222666869990579478641673893459363274458698252076422386443791644148221770494841448852474253726887829328892743612524864261943979056501766356456183891239836261598486544767290716702128935443108644268376715615700946463383502708467516756275170880647836512403982436631520619100416021289677831314954118835901725424768317684227872516480985569064106782688369148104573955102939618449368635776155469431225552536366511843806589517228184200211638767442610449452825672022913545151204609941075144685440173874771582558510953600695075960885848940396130948727840516692149930900536557985838976994705693107558996582772099141957947225805132781461612541079384093207644315827215284228824716097358297489277762457519966552110448159889258453286287205897617115155055039975943892314453939999563358374489124920225686868707229469466893469980679453562920589349337735073953831835884618503317896886197261817532012164674361753654708566733016965558639156975104367195258969216823989207990026939628278408644805721656537477979797641882773987958881124436853229625114908007800504754016773584214090235168728044066180619873583737029321856957357315951595961658555392131542113477344008119510299814397623571607837351635498655366786638383830418546197832728861377150944510415200685145787446656720909876218677946161100117879671387261985159715516927717042961357393873397513014937513205793088533272349600439034735464036525294307249319742051451499636959982309766252237453658264987690603782674029694487905244158889074336791523721828422089283264920808962769935351963227457803387742469422875206624863841186993059134898242371199115924708742802449739704939405959544988143511603693862161827632382706837894105098611107188037665015871356023827130841799830888879435331634699713715151734849418277362529987924646649469686818152647467133360700990920558275930571355592861451364326101581876811817233752091875434529794796468901986482607289780209554675586092199897401633216172720998940741904979676105835094776288145386028602913201199850909034364583852647662798708871627131522297633257530408959121099424523308862639608817363464594612435522279458679247336919212385733792813381579324231798728015789812073871813331018983763594836427917820508019689747567578714564439139359044207326690716794786008618705546817620543114156239164022873230063266164217731937475455017321585399728017358285424338192610833892539941000275596563210223917221287907912445122915781345199032657525828098196569590163466932989139261779151285836728208948645320507691385572500722315102411890979961886590434165727598183695341793192309807817948102857722923226668328472821096822662127085298960606118743694765827539787976609929945218028507594215341587829963662308276115130085677105410344379699257034145326146056278667818719856857229153819673946770131503950845132850273506785126045343366157039847522648414890528830569121637557646680948103102251386453664518327814171185417947184265850530221466251453826102651545087277271572067285784659029657074361862898783776162724651871642101974410092797836621182913448247414320834539756166675592093169417042452494311747662894791888406625069621983388650616297044519938772703760231239775184951573252886399990189856103422150753578988317292076626173569357455332149483814457914373875172204228176145014957775386631433396383280555701408830531424964083693468965401533552638826157097318968631315638865183697085835742661075104258836386969910530523449655315832971951801800325117007364485593651146640946877269658889145556050200714599970367344981772127043513618344131706051565283140348490848822993039594531792450036191913720873867167946104298614916413732788176772539500119464656239674099366980028416540779676083607734896706737080940361145384116742731196365823399204154618469419667029759885544831847519737363904334041834924157118450928711871251954750925170713346917522822397215712365105084459684737081865811785604995050989817224243059115868928439102337096969265517363507257331345542385492711023427623272206106819799556623513668912370884181283476066478205749124660759584433164420184755392373979852102316543726828774317107393057551239768997763225078779696195380963166583590246825992277277524687008927221647232550483935603056007069987210324319942963836126306893618275100813205185101911218899618942426446899945325003688913687313809509749456892534161218931456241390716282713206592889442286133200146214099582448988137675952954549984246141461598282881006714725112851422946485266537224649855634539480012338981544439491500718218563087817975770072753028375915936049854590482810926538554223786394008374543149567312380740381596869485142887328975619297130349320298547141803823508500517414249698346740493826087979055237546886943352181437399703389040122341589022322394194532046001473554941739657202578187343162857828203584630339287278934441193193661577817482218386582732382695641645640149394004596056529212377738150002732712911235834647577775079394269767245500768235501464972789129494770398011564924081321069910371164014704057333512648718378813870731159325982225959534557890849551427614239591224830739135968104119525006299733480234493189822067166152348491678128995366087232815924076200802795654264177807041627079494002050127514091800218766600416786607471981293178305005936835238792665127874995325346943455111319110430986240547443394441491779674462076404161985303758665821497573690730648421999009880301717661337409275278996257705014580073886754264272541013759011313951065054713972544184225706313144972765927708563774569027230325750278753940009529630409124415818794280336538427600547374356932625078061089058868568299959725590582033340696643946542413590558227472086156012080672630203527754437071059791170557079958270644098769361391304913915661130946157456101945404283609149821721783984975933832446037083515838286235165698526501460123684178463721900238441174798738021478187945553634977148433857499027671635997602718819412010996531188429859229719404561594448754937718385948706584086602965917959424943081118566186827013133446225908960797778728974161125542600565643420809602729064107008318546651713633963894682714755202043479537392563115404134237445929038341501055566704084820218376023652366679351168565769483952600071545486611371331844036892518878064054468994117643146060306063949983696042226677131283001323745950559619998247704926927594006205604506617072191572610889877686898302008296414892810033318007726993348496506375882441445279179135215207854645583893165995334497013867541903248165318782938406317683814797157596214218362084392426923653789153667412665551587043822014878599583433481628426028281288285717587582667486543711166317169519220265008298931877548100017321683404564452229174941447514427447454885166511025898353164671576373960531758814614417809133850895737572634174977578595673361752856645536232601821819894042743678692241192488275968808033813758451770380286237066191477663847979952971724433983194339473171733015856069704343607024927400968499458090773619184379914800156831805406324707071135367418432493951992462145230444185561634959578634969147209442416145559583503234862600221238377451640934663203766179756804427382027261688510837070149682751489175990548756398825074021069138218925529474936010133449803681394355194003073101043297707699243775926428716962059082596857880972495806334165361608988778289934457337286269399471826728005311643980049817644156460687620361597567762403638275888830861554144797650309482532656582593911015289255891577742156692879654749409444469143010430388337150614931675774987028057461263784537257501282392827458062717621966707090153766841641846680194680804956074586971826811625805258390295640936663671299314112320705157285117772076042880855626496919569481601177004738157108581760265168744367098749717135341013779745213042712127069397985186262822228330471930800396555751131270986447504124246295976664698198578754827341705210300154241038743340185878480102562743826731909157731764624163529348195332831829012748600243659656762005663297451777327333812494003388072792673248105961369061554755146158065713427658758701228603430005520454174812353728855415936679344217489721355768455117035408379216313568915658086265949402152897010681142053073444184103843638416065601062724884961134635930827747850465408697029998883632281097465456390103500068017785696977820752814371591524455384758477200947504887447107460160160695233456605399774012047242693734613179642747319253808595458405616574964761907404883693830865939585345852123041350038868943449264575592753061979593674110965049876452967825331013769800238863122308054603634811230229900478655204049551605588658523883525340709817735084299084040154619500645125453028996645964945057799375305739902940797716222801769119054812041164086639581597988210289604561005616143986006117005368332694944563410795294261677449701678690480944870985769300918485225563613847089147852466910375541222667109023929815473033664882832934919820657971126717773104348761400134065535406266258600807254336426152838382133348090999648509865795085325450102248661278558993916372673470188976970769120530422030859699880506764813214601043277372244292773007866877668368015895850238960110308174817967621053020097722944734484095182621729585596434195253215537400444477083039386784567827813073557269020476742305199241456055522716311694105770968375269058965743840892993860071487489969456660619923698189791142633978658319520762096342175025360739013256231824167078979446224395641098525887297087864567850766733800674078105040984247952974127491237096243954898784105025433865589087563528140173104371259008022783184507198711582019720764149303701331891903494089217911584668967434017718006626273219818794065568206188354231686938833398215022780682907680486353772966630370296308813667234043765475236557675559573702834363754633044660021174295047236584372734683271752523886063635832873181970401491544686272105072208418133813149938201409812428871687688797126897784657867020818054951451843266350524663838248649870603896592274386280161486152730502709389906651016702385778339202721065183373590735949750920551592004993929060119360410469220066339185333885869689906372649603181897742225886486788911712750291329849622826714256765059317831642072609610612070830220116308048971447265762940851987611736560821308657635385295486471872760242514043265468937363892887433527829776798125044047683152694107838457878255744691394926613871528890165349925499566941422079015463810769774576929412672448242854405325262632404576628424578569253799666910480366687323132216224787488039369144187527153401774244707574424715439400388376209637074364063056461844285670788971908594897042272886293280285539939426795930662437063823154782196867480833601395932902518617779029885854395932816818527112534431744461736929814162690571639158587216026689594135072567425542944481230764286752010332559918635565492945734574419404334916360617734400988161014729762894678220668272368957988251618772754179442588969552983330286529383537729294820793532827507864405724201139985687837150011416004782410742122343573851048408038888692432287539130369890790338575416928989110579565976381542939243343550682316261004634437445705432327275660486532921022029508238566543215230293220618350960391951165438021366661884491009184994088200445475529465941510276039100130582051087768956805706251764432381102907383101074692159989330718303900796891206753104673790327718053304535249689710769607948306244451247487049485420209061666380515672404926218748153412682427627942062720544333725968281075081724058608958986366640265648082296092764961320980825725961401145840072367731980765738197782839835179066789322677743075912985468551070741585145817824316061147935472226931232532254021320278590213584020218450456719572464959656510832011110627119852939419001616480422770154692307959060853432650833200145954583650154613095681401065661018353305373302920107873193580777511887134142706174462250088140117995971615847300273614935298532403231389286925204875927788343174442461168093086223851792708782813907549393458646881291589405486128230822891263814409529903712212328623239078422466366338173588626693379693428633865157991224705855004319328950443712504384210276637473253266653436176756703595545324798331204220856267850348346096945270722976786288165911949892288242035296305996373344818783429845902014524804437280725551331779658724110708838311353989414157563016967046766869803151418116741515049554707405134142355777466078956316824193204664524370076851817614582897331256144750280824466744009211561859948165614170322995255313351730328755647952423246975593751102052578691931012791327977954455468754897549226385893198566536897552693383916053756459147478545599995474805793053872297780244970822140940182682363214879572103961053507541983730122679112163963789375943161096352646841675734618682693640144914825133922781525914359126539721813264450132713462326008214250283672959449679760122455821106102467064967873923205964390859213991347603873486622836831355678788105327520156515455139050253341023040710768620036723160186664909192146896900909404745716139071794916987246262831751931072119089951968643333837107808681327689249856325523552290867937700364273171342238936354080124750127147521680776648867896715278178384379764733013736501998112231438489815785593317487684684050702100782715507102624449289264801423469498549802511453981029219931146803830657158686728524343978993639708990006801672606092473765587497701926820584346526505609399773844602798414621431281650135819750594381555339591052909775480030130674670227741393858612647492883374731431026129303723081160936225047205105848298170663573524061041964625285656019637949627334548097073791291926307338723091689626091762120657062897326296594489812500750721488648696118616168139856113000963305232342643082603264209992915112852883760737451743161324358176868084562725911727215151983485116217741069854934142451761296071108957650628121233432801905708795710074356160230757310447075190592334112752645267984795456329166527839442972673055552210064373949483912056660158263992762346246016491677830634766832662281147394758642246858114388024064279000701578661655352467478205848666872276832612479651431240947273542214195830748408111652454352926344426081104475639437178300636986439353511626711567055093893682213702813313683399811517753414520878882508108741892188926012283082435203830580661014203993373961660593592778699230503335453229941293273851663542731606946848988863671457590370178385402568501073428308765445925859763733117405393581856062470859456789960037903997479581494742123168363619372093913550102082070672744083521356170361398140748383992059687576018928507418291605934474715243584479037735548681884288914296516224773061772002920563035155335671095718612058169658893635997879136117374119571258834671047130674630563436388063245139500868070496234200502620855447369623584912376841304321078462765941068791491370023138743955051017876861465300100842807101525101625255409957948919263820156986268292224190275786775697661676427178827227319006084139324920133972400666559547844423879055351607028222183301238967832024375465963540331301320530403156965862444136018700834906003904218903555320227451271897390722853582316073245379668390608907964144218155762382394983058897048589718214540780347515755919684448694421300632479794825936637882544121098396876363584070948977446787807447503992798755912226747385111024041107248281157351616928412167734182772541783689321670819722553896631327689185080233047018769575995924991049298739562427248156063479105466530664358000439960214736426470776122983095537784696373370683080199717058818773914697389501692158015043756208578763814453495694139007524762339092329011686384746555938810231088070246346365037297082154838742647450852999972717530121793643521733297598795208926987256512286714820734770127656266008978582806546182166978170271664740358067068282172534432024604634069647019461548515040133974121044275542732800768912584260703829144660610898208057423290988337091615361083318271795407451784118743523383872618838417356220769534125747502369625983432959057343915473665693309927333300100535229683620633495641185878021800318799735266809179839213472605117738482103600998060667034448383534528410473767508833354178859032996648666871921010879261191503256554284457660042766419986104279212616815492901149491734492846524187040459555305021781508497377403982392352975239615465949346751839439599944470559976355955895074408933197108116322886908919375564676589959189207859206354644913050990364507946181917795602582266124713514952511286854174908021158079914545780242970045840848043121729519273150344233217084339195910984921381340295029321805054554955531936125835407385808296826690160432656941096499784853118553364493621497053010135521173524733589207018524017319553663624418637679309180393506300954073747989140937940032718395508304461363898252438371073413033073019040146495782603653698826868349046891495921831607793440025591787546486962796917212427210672212730958121619842049311995726518104532193690021567297594310972947282333186180353554328990054693174313482168542310954621698970846454512067048850620982439870866323551700034150543859564497224428278305964478731174147900041005594557403904538079395301345806827410848297299203633757568155394772697436052771948575199455296139850896255281933845800398560922958333165356025417551016178625677298129520505619966528989310885627769334136621888391159010324387903820466671070912854177748258653423397804803476503683663477840338161638242231322150554483441919976703203851688157483940376517956941590827476161800000327169213262827678499224851170671775136283166575278947546180729957773457566709484690671114013043266721602124496309876143212139882468051503066943622583992988873415514223359133328831779716276407244605298165517386734237891574854971927519420294005680025391679726728245258103543116321460906669510468216053377472996355261061486452343124329473536277520841934167866788448812608369295648755971507592297938652114919914886950017384358612262900117650133094961223525941077196977514423488448316817633646817718851836817615418004184063667908979067012367747415341302806064025128327669785454861523994650918960948898349386805539829316201429218047524546020496925790437937869361816993730438034517821031816168454409300829714772790278248305451200347362591294063745937029078202092962503143444839255767742109216217358595463256023329891257265588545826129419306380248369792993242145984018850027964911761195145067170023025902582256632057885886248723541100693737936506047179209189302791354921987463412520530269899531259552196826678987657021060206837829970789119346993901924840777640693693542934203760301356664198690686393407396726741399778142498753369993665385620132522240049334624881516000644620770489450718420576270510743417563379592465889102434749672579361038461632754483809412496878137086785184321466562290982458130519074507345351177140891399452514464502192358355444270237809680408180697178826714394359334992369534422715965325068734078222285933980287673394153863066581302479090562082817270974126769645774375961093072309426513124554549992755978322680673004690484514351695200634215705593041301918040284636877408365472537539162602052946822491384313438706994745947306793696289516958054136187383788589347487430410704891703981641625190808070471589855311092573824793809995929345032572457710445664421693673446014621556424911469086255151936572238134666789685865546308865929304511184624734942635061512724615206290851673912204685013841358412055520662020740508742433161655777352450069644860982334673740744804143471522592345815653441601617835293661631144198422090177613860237466232780389202959650993718523904283946451796819835870424127471750290184451013088412901472821797663718900166319938452537460795670401007223200543337908059003352574123531232412631373040003403214746764434722444900027681988966810514701436456176105239917355408186384637907992130173541125584569281004227145476607166377754470199820854366176319088596773662010397680248915724643558238360245815973914151520162976253902530431569383122648142164713629347597825242513448492694472370320981857529991271386458643126033939390539075860484581066713727222440907741967233444115136670184874523318240302379088079160998652501391935558592971560708704257317518606724092296399283815806293830267052547337281019026133429166425692443776544867578863478599400416070004108899881644774753658432202396030184724347738243935949516172066232413394837943056665026450117389941697113575267602424267287474703553143035804217013553104336297208795456146024494342166362464299284728290150492995240716559524519783348397884597792865006014820879032084634288033536939196538256087656040849547786564945539947335874748578918003379429049119849204977648436609590870422180595044967786392550914044662154585427941864552493134418730436474655884554074237621976505918392511014439213250136329211974249288529828765302318065685675618048924134960505629968665815350686836287119413941100792114069367255055700617874700991435443278156368192281310882599772821630737566689256994743902444799103811621824985979437883588642371404584505995573905259999331050327957253908456417409688961453158432051997289758755913917623565527746605089665195082546195394047430285400630120504079108921470852726893266599781054821526893781188139163970825125840878076669427576136371339404452412506813584601894341166071519227153942301549436012511179004802871673604654114158840804307249090161885370956154653605579025833587776450618077190573568371756935555546941671788880521206385840058527806536574627316806548168736736034947725907831392257965020189824379104228428469241378852990775911060957748938434092217259739924696682247851294431611400083407947141567374312546551028860436614019232759194196708383890821588756946057327973863448226717937895649344761514831423449570494659358312545442577684538513714348730005176716917531229223046483413643181956995837974628909358190177888169299523396322791551673804404342317607975921011444254084515528125998532245217707252911695930733734002692285451471737780631548112340169619070588140015347489905038984740481842095799928118471434754379459669874381319680586827880612964994213049248917816861547099498328454078840110458819223845256325139813092750916643925209402637079214297347545807992876882626173729749113154171057908482250720859562976126874294418823965480637618459322796743148087087583614551002831995807381324306025993981522714064086103861577758247033786926598073734537799876849774288577683461200967323362183948170531728151648946424033747285585951460351739070624069388433818099137040942527763476030854097401982605810323663543699909568687309651221434822408797638181778146066569668357109084101937516474573094208197904776646793939382659915950473670752075463352422649806142204917729714084502631402919726254668949659078318315462117022118071171741482284211681307094354682690992299937581381127130857404835665780224497331137135481869952486940791215698589578990449795593943127367116244985580201557522447609187694639360552995376628359357660358077428446785206381490672745364931937796238462830694495083805479323586344840661852164586886706915131351645197224992713625160585900730842007015677222579740158812506558749034204418703060159142083833659003904999257478914613635898281319572800369668118346240089227593188305392432282954916050774964123714283773741463974973380882935969065325212673820295816637939379969297307670446639414103305069489362369008558586655380917263861294495830657063484298544893800118133207527794556687508519155336445174877728187176254747695089412834400057780429130214753271769713568233341128393912178195494694590337067087917633754423049262157247895083976613174564715794770424336289727111507082901628649007165068692288836240129896464607414020835227677437364396597404577970467553710948879075529732658253028338143095525253000700600299846607056948566218558786559537476317376836625692876023812246315520477639432215190879447031598418869938708135094572077313177869653103825606464640481803213487655954561725984723814731564332957955662691964950258891499227405193613849079615083541969151982448559009309957317731093933946370566581982977684950959781357905785485283001530616478773906039091337025692561947951712439754977750439579394860726921907256145753189569864507775550969301986309106106795085057167284963880782805394722074248371149022957719670878265279295917462548745575132235126345782581872178701649252401055005980529214665993749145857171953976577922963228385755039166309648587345443779528561640225269644184720680946401713546088982307254823011756342245725408874488901246997211639719335722320398859843486843233486414613568290171758930466173545339220949129035968940581342997775814614114331663518185465775749245251945135239974088901995912067651834203353603213057497733095925383561540200005747125611395829231776392322753270123043135977154465869267607775074465926195766722817149007137414609265961909799797119450249208616460421961833289926142174075168747291313394543128627451857569826178832932933512798282954489390158408986568691594302400933739282969015319381345096225804376997231762616925810381558487998129699056973223195554524050644541110964598894010284202338346988491866484501350992376655260568785336979657134322936234342864392824427370708030744305493438050895801417373280634081109527717004659838004610429012222403977000834431412681342089012890080565165092532929071158086966801654699992948900797539053133228014900368816278372403234125488986431017574813352844629629802067203445298024214402514200771474258573036518840127139711753138987615866915570932596902135322986694384388454717708490104596242277972699803730698350879098968292513873159386597828090696414135662370315257969568643513519637731025893372585203496177068306403817064343951887593900342775414618123114716654477415502634999480089038829090061315497871901080067552208603972964501427012647969631433740139350955759511251801305554128904975417051659580466274079904877330084809117006295942708429136801537051352384385020604089617077684080608884572949535851109637732469389330898207463913152282634248945510443877550782983028750715815521459702097651274953124085109658900584102545396356355205961895058182927109814218899225513133401658681859574302740950499099626400959977293229989015574553604515540728645775427875866162993726450010957950561825336082648186607878159385971363411950232102128141781715975384626723058609711167780173625186785954354792821556540672147396985507262497753194864524251939500623038147623180557884465197876178214678774273754896366746468586582261927355151133218996451024757720151104146998157337048269568434243506943471718537340398258638891282140607575044167020313009163631862651304096685210697623656454944263935065806118234598389302453665003662732993119113511214285884235403470588279426386753708032636157106015327884666552532491357264998506420307076525122549613520356665403573621195116396084773642578558171920406674658180255950401796928211898020289080551719614017901021308743716863044216564136207197889425786667235390755729911727722863966229154681115813690514488189681299307010594457454185409657625017270202160596266066280323757463213226025334245720684691162939296729828972698384348795368045527642948802152953107291548877273987764242776310145404351507385127798032480691153847217178809915302068178043673055670420417219851372798680484162619370158082144881845163254244194242067148889644111434493169321788719513993252401395550801438499471042015194745775219534659640671867642157261998882344174255888307531559427854025391150893607167276584213695663450590616997405792488113338304167158331446407161618947064692028953566467562074538544221452453041228722250477564034409507042017634750621268960077511362269337246624433220281676891707126896973355161879380978998053514025299473928237220993797602965091567735122984508226395699685988911989456635071880452304620120951377651639574650178424875748978626521979679957020841501279324606229146577030845331698595167108054220538990112622792701105264303827197685657018938041873405385892450790996865231765256256051260703169645265573810269886847569053370981898521481101679035887421584132154998855976676478436807447101068373048049451823970001837168668443977010911534904263530845295856200633992757155344185318127658297043214582977205816482643036243117581388720493552020901715379912930021667792408049771335164802083095621344745738196406970646362017441367181814533105666777151012288956481152402838542662675287762544812058490705509258107972354283882634348850602566491234631563569746249002939678963742435858181898368980425152072790654478561583754458170760878039045244520142217639051260096973579436949517770394375881823966047422860429594153971667602500071682568253922397684745832090452225215354381588219694186404342786791647267676315591773524752138321058656562738597434658560362163821584714619337021240086024961076188287798996836793777440505664690872384256869461330447423734219594799646004015520082794746721618890645694489653864796750323675216052154475460392810187588939692349385667514300123653923521252844841437860965187646309730085247979812414086103167058335700207623505068092825840688488263376811818643797641126458620308807567359235978831759022859023350430212228229234728300802814993608235172310671729445229745362162063909099911770641435669666864394608461925534828036719441902509452286780490115024503956887872767208631725758681552624352013267727606482881079850948784319042479997440113984606979440072338768974156542524442338639800071820637979913945230946317825408378868734498315377617625424292409442358115799527481371368146020638883981925365739301438829470289807626669260349070169860913386378518497398791793596445373226060307367559952111804631532464843528193667243143665419436528864404086050059435329224642109588002306687866814243771934206635387479388649787011038691618482693911892309980840997783277302523692558254310259234203022083682896171364741426985061829969747004682831892882895388123269499911409684369966667301833545251690934519836898821748043410500301028912562657570269918833897421901902173278036433829950404998254566846583290781629109353039087992717010571533225023642867554189214777119894037517977239678200117097964888874210013080339456877382437308305964993505701531542603475062201352571356761468745429150912962419216714289645301274619143153769454805309958070488003685870089048258392431077761593846759395019713314648159785439496636085498653373059019869981370676523084928146050135893610309002388886039346641155185291418856911045666913840546315053263264996287263516859774671391560332232691947487972714393728780249569505483238834905850958328458324428129668318569498050185742024589891216061969052863835445218204952043965103512904786927752758934635982765726755791892431543981010919319957202634556839248645461639720340001138866343483187110890961832689689534379336120142224991191415318537706146473548136247991721375345164115481018421069267664359497145348631895158695314686202282633983315501257955378919606950510094058505677698976258735089874721753355747329408463638793546059290145897031975839498182466417214383255297310834799476722245858785878395570818958114441601088235555792009767652702925299062212957855509977581980314795123106179546191851427277475096189056959707442995298379510320414860715015851600433663840327087830010317610557763113970339997605299195868701717192896047819959471585984106380658035542540537018799708300282645095834634980933260995833114905906158693852001501093826627122522928388525917269408891851593024668147029861525516746251594668237557361797237527461782343217080073663091897785799183015636474017639189904012459049809106717077216525035727804011696272603380063008124997915920525220653578316811027713669165128555331743649605095655738460016794581687309369381905897946935460193665848755287919996716781689335758307266852568586656217768696145319008830804503023482166996160242727906666074072547928490504869078293230584301443236024738461781865635914739201659927611981097719274992140399594371171177054465583462112462118495453180003216654592191629076005383833656652886718272643470441763218868213159584900432120127941771577784951473957749717511459325849982536632274344635036493313802572392478988202727524601047167971152234949134796896263524644677489017266445580211656023723092058104062483169066478214727414915549000613239803711489770122029514214724855355193862567621587110731984964527062220128974293169571651991424628228284757776407760056031832010829023395031853144882202820492968866001882717219500479866165158732833128177654961933565560120752682722658678354757531570288348205786475168074161843822810262160659803777468346333524342817290187736442469233001945826815306790534655227498525855511115673196384528020702049572971953079844912645424197956271769693614168959987909484083419953292435023094831023693360347220828105157618295261263876344874856152500226995589692612799928780394813560488923640026804458537510382475508376591412395122625995753006161221471993468794321678441733971429133812043989869408481918413515789697419245180586185156837792799734445582052159334261596930539216496595711734296163745381930632699101045682909791033630389876896462385575925437688206086801905612031231568165868983755563303587350171379197603914662978137613622602411875266373306854402445922525825725985628544159495457047725128784635366603830060610788729375242590191018248384277084334923692568247981439701137678098742097891705787728747168677651775531584325155343628205251101213045612866073005073527429793496341817399729604566660362859515816911941521483503665292236285449594932645937026105246180441593726098317809305078410160839584070960697971374288952818337843530782637836859628055687298726447380035090066629496542944422325747685825540584039359396472847417110522363308311971171300954880297240362753979901655507826032479149433535371249556067806709085257008851887440788165608228120740913549144483932935263089022142561256507047434858707791671261913917179635410713439968231318944434739901834868016256483211331402749909538605104104859844276309930346977215108964958242635442829214493121748953456610606431498698303349320160101569762683728772092857582501810923274539245719398788379972094661369096456635026194130952967703938620283944681950353618949045907096039930253978225102188289944613184858665946228763255948922620762476192697173578487195683111791796586123736127495721353202109016129545797690618754113152227573765961424174307515040269123329693398394293282511910746075133041608892866514005207755662194014174034893173166746432191850499133575841743922723488142030147322924862712741544845576643304969098492798819300002200318478355979303991656935572305156567351754901241241999904572542577192345962974090156391305239618407190421447270917887401278961011201987934468030088711187668744226468208683215156344819897641493490235543485939045030946293362264325976509539998861241836702174297124191402251847719891266163760153426137099642208592202322725793019952469498588081336441919546426711530309887301511238264732306827494454336859306680630296458463329838622043904828245843956064199270077875582473236723847298476880878640640542997088875904820217237473499763148024761526803746740278167155977537614500845683992885751799089959209413914873313742308980639703551687419553113553827150566084672748098422794906244803632855938898630382129052581525786917698649642029532869174880372946268996397365070362818685248698137779973141684533294538606301632768921572330967345096155387255121081382347062640793451566855420236746902918188724934449088759303796382941825092731059482281631548803610406160064162337618313738947225242212241082805744069041548777930511342206746539615472536131037060427408783760681180448363058682102029086345819127143263295394905733828640776805264468886618535874509196635055284346689015610734258486994398581889936878989533517607739010339697298116112829971537652421547351327483311677262659785470831512092265553016246687738634134351849301552771220763581141534061872617166097907237843240708035704969817813948733033359210581713937069591856530196595556087073815848086601740422864262527270036467510887714163273686548416832624261532309795098831112103568708707059565611981984955600768445098319018123042527798465607788767141428366083505268542996857742670831512295782231768865547316113374003931929841941017941963224352446403873395596970209599777780828930804994128927264000077877836064046725969007435733837446985219189826840742309644141642314009971940130692598522186094783309053255853726429489477463167411721994657193283143259554433559519416272068572389855992624833699231985640486089159269869539932244019472591922774107867821485068149294340921290752609450523534400356797542787134529887118775311689761791916523114440547738343355672152432924220185978453155677926451095903953027150092211398237801025951984347073699660478107570978085032386273866695684666263788975167124412501292516870571525042108799667500483148049601312847149438587974460485496747529220119196860894243545487091998369877775147113466305588751976670468060525480293595893945878032929566825663240942759840756117258094160264046666084011845899166933823809593613076704038789882473850925978098628973161927389735147718910693353816111022917662758241035016521017876726074914786301674343880695286587968230721947397302193000756617107193698930340944710247721707710850266823386348871406231226446430426712292943467136812729141021686537618367173271983433987477520917282619685097085977580327549864230948500010778202274346574776376022171351487093491966519975492104860629988421352946425326343364573122955655681151060802897305153823789843304824497525279643664388710750710191329566014371398879624484137020569403391661969851513636718994096335318157480890423190099091599562426327962868520833874714550392642683386906112807151306375916504018593278680163630379995526241643131371049613528084306466750362154896105674170563423625571383218058201677458884950038828496105880419271224040831632176197268452545461459056931653261846309406228120417875658321125875187673014790288627418421873512388315858749481390461598993960705502453138753547014960093739665411719061566760106140193011551201493922635246350149115659199841708623669581008036490350278337297896693043538045930170034278373311815571059204952171115472736928897319035171354063347747056568988057373598001845680881857897135116028780920455074890276167145221357261757576814122019781207185998105067383261475298160149948087861794124357488703010202428483250262864623423196131319360233564614941352597415360358489582239776355071211576938657490298162123151411941798589136951004726977036508722670480229811447691373831606745577698318901549457560685212465069478609893460419404067132955839066734373435679533253906475294627018689258062622549828930370722305468577372039466565629562966354571601213053225063829696831675620275298404466933483203645710356090782659716266457263554425652840552335504005652531115024512067841544463409840807891651002830372169471720804780745569092476743974465056263687355559022102281091823666681772901949914554621166992539305719588797270300745112783008015015050913409552244517973727074696799974839557531835579997354840865860076374304062192175197694341367193438621247160188799605646010150829554085030407811694293193278505655999513716829680381765093122268919105548032117710211515723530059293808058948273358741685298915860122758705143350929723959254257170643882562006486676559801267422049871750677669498578531274971904715047476719954275634043095759730953577896141657568521112011476849628811401337984067855712289621454798171900880357828635010290295305137335286045011104074395745546842102018361967657032349389227579501622919979658050855630467756164199091344604808634633756947368250604491673021541894584173077612488935680760690762437416026592706479194300382645774168594218888505530361660189797145132403529980966827383281963955135146337339881054312229396052549781996808584850308611029027159002889195320283619757264197045805344939939128211388768227113825497328230701300126729239954084934539617645876671711423880300171797425512933781986204091791539071239445493470838530546894651189568542777170314546391716118049064805670791119174714878846321352447222878883573515805695625626185743734057643390669163506518457315065455562302319482863588043113205984740786181168824956133425477337325537102137756740525639549397538948229618769317641780588595952766561721099356324087463545529134367609782088296237707372709494344227649454898671291825274141966376024167840826268263697835434291674503213053380823440863079978288923824943611537467176948404394650208864144323654538804737956562147257432034733830557500444872726530028076528704672222170267726065536703299897491795636132153543246527067843850329327707076075652778605653107251459970849850917242974705136551187853600367958092196810516727290322419625757812556086633008686153507850828502870919434885036972909583605563089618782190478847980375540384696004287448392397451731536386949557733858477902797854930679597571240724708381151779306095707692683266679565584610552871006996697653784762220730088269097627811241115134225551557780637739349216213661937796365033003639915412152276648324495063938641927683029720233304748316938367659445661205724227975527124583388255222117923504930187909065823525259306928837187026904264002248096593652535739430770584536479945764021094315802638925835944926672698176799633538412880962734379297914581685456067989308034196758100523234716208053815973254022256056752261397655422223586383081759948173933725735400556082941811038865620393633709231739094710903374096650785494707451804871333653608839353594732234273547056895510448747138726307752992061110664832250079318363102138246639038172986953910883728368088715203959651475886279282337153219568529848480068847117796617976645411798902413790113860351448334313058105976168576007106859574871544270305128958533845511377405430625050725835137354724656789404073635993190124872748189315888287794079429850113679674579543502498803875707712467405188783576599236788493591760839088499760372734331263893449515494596672849258893923955910407208837564912091339421345986956830882168581643087454743984818142129673337771398350438964169702132055072229156646175304686034161089293210960588825942311127330365530584276510400699259641571532214608751508931831198139842906526866318295013117334676805594264677025994847418475207869519060147564136166991992590021741176036422999016172768999359772545280580726258330415989232623034535666989860310900847422070511645794381462139533540441922758103132405579402367587061413630380690632027227916310663078372054517901174369445563138260891433347499051980817134234270377969972211960021116620251644012572836084722741582369666730024307695874643775693720888943985038634954746655477934800298295530287488275681563329630469842369948283806220048518485048037931827016075209718847376804730219303553666727574994463422883367749811776756506494870704464011596410326547832890274886444128289845854618463706532578219128547425318471136878670676051253825974131788670976142780467444997597808977120065625276193832410151478450413347176233495490331224110421987800302774796334234785752766820790770608414081882466682787369468237795137048546059295731832956671178096656329333741410860186650486687147572572898308892288864880376555006102951850258648091305554490323603497850792148914585238859992944301112951723968329588975928171923264228617233894524504330047861551037715448021155226862227596918614508934722860277961013040075247878651794804964190837590718204449537151745477703090156749528098591070905514521326580690027710571925119588268504399842849946169567111923150804730255892863197938446754893902100490200126684277073295468890726908731382758617350043426876964286499064314083205624596164925944381665169790508875851332681400308862282012468651637354153138890802449305120550782334660883112586703042012253108589550003150653677567293365578275824868316931122174326831405789369761943405830187928778877477052312127377401305096880389881159454125855464164926006579494708570653727489389687859821758571033060489428600597055461223513276690730375042619419853044910019208447267720956663044615895003345701558308546615196337701514443268414502712298057639502713630851444786298391929825555291351094223302629063970903969622544802433310884996413907159101129097998780530078803894036800601488504224308391970809313626977250752566032479247636257230735976844591912416127332625070282349074327085160811315812006797937063537806331772148224359176137209001328668089519534310811514563953995257760449804928015663968948523202410656142347154056288214244859705784717737797814427902027935337008683668223639123987444652155047681637085654693238054600717317706251309075044899354878120602753406085053437064985419533840398961496329201364968217444122518466851291109939506947735096388050977597967458852215221431389726823596020934671029227091278284970870723429233088351568391726358793421750399984611745714215803643980819005046502670727556742849243284622807315494694866478497135372944216449458380271400466967661576455808797022326433145086678173394465190511242577433932080947351626651325944274192691603156183360907163031025886906866599884473546849379378207840607572265715726636313954970600587900634593620209419065026861391404388979859554003463687175743216972823901127583401907020032837401301858910291287461865302894546793085923412993313589796639605044237419209912237384432061674544824961299925703429918183740498191714508012516725136031830751019415691355709886528238812961206155929415363303861513534195315580355965038786000438973748689156232581735937388443946756910094298531979214715009234834592729629466828997165326883247889503957996156613541561969353922655708804223907922932978497950215981712527549331990945300474060699746704764983124213367547693171017242413199711331124659113015120963205164889973295707427548070299239121867617349976619174838902847830219318780628693200613093128338822352624820986121473621098240133660527779350284347660723657079067321957751194780620550826340678010607149314873746378604283214460542325931008467584215552844169972130799422937543198580089077277941474932232010991503234230059153704914819817109084625789682254723611318137236310178260614386896042060363195736860192428665454792872830797252802736597985443421606460142799437477707704560917237944590568391599342024945346800159413134497907040676386661639014364724870049590301484273337133713929053238926161039233919581820008880875179492196750778264494882768198994615243137874795566539120543212281905135136359937722064877515317556453532091427752271100417282182476868950232913921665731584245621808780641236277618072093840611797959327833900804533523518435235456918566378287034260041088997938396565714955390636288084888604726261773647001943842946324292574488058569564104880330607420639709557676359193435010016512555595896043610684576775865327495413977588600855498188551738022427521367684210037209843715618789742452096813175122334790025691136190886748856414758396142781664535206440787771921814283361102516847872581688431451549894960203385877959667600732265483813132895150686449369994522990953183095152227311509523739283822039951880036591411071251985148641431402487248287258008337803949885927604575386799029535645421213509265724517642456020437160300798869143005449010051820636532667130884769010105323481894172152148699374990422535517660961740457625183455794038990151542219262768627373352133375803196878745815988207037496765410959062702293892865465238501569736742769475883499051207496874364047614226910693861620937065678316955739514633387097111294612031931665080534679182535844734181791768427678526332678033598407611984364105197740808233026162841224904310807161035145317384983181927321007278105108768168705897547283425840987551959638193890690764105327205077063794713747918914574271111337267738895860936240592244783750561414136764796706250536570582821192649146468929600525340803458721437083889702938404463250587880243497919262318389879392560887903324423624495510408872483757272401463710669249429429633590803982334624440954630932946775153082178039547150565132627203230272478687280573357976801536560108993904894018564154111004526375610415284145941970691465482002918756553220909539916128438115830461868799952771087783226166760138573556821749569623399973507041042340530387819789085013896337690046260288337374071388225292210467261607677486909362922066614317876261172191046697488287140507702866832315375037860789617235285308953608533822332404302996500259915962652115426039118286938898317266137881263432082470221742174746381577076681727899453996547150840842340412008106491527853659158257245332273189393779947082019599395449444273449442401684335863422155042282588591139866306308579193539236642230802700265751744708979950808249692448414309421466549366808441126910323104269117071875730191487473935716321611606317234290350068946923950492576611326646987883740074768022465745600491729974560138561255500895822423077968722764929970114436063545193507176045370691833354272855929398416569814569282539294726804903930007385388921473945852433783426455461973756884000301557932972735980273725660751372395248410607816243159887875653002383009050251834080273648887643712188407377647564397354747225570661510056906531665136344708079124552362507997057435044940504452390558818542863160992325236966842021291390599414333965092434542549498065452120515838105377128228694673340204819310150408168528111494538019024512933202297692745758540064538892924033563089731269116158684210424964308290402261784736546995583132952688395257061128086694091201909238864695792579674450435252052462712731581078171523295872378047418566686858930657200243511607223473205842910101946785404226544459904959066998417953915268024317182417622163479885353611770395336449319145072912033100241573702121363356379679262153047356025131388888305078597798536142749836331644344775201473649173161049846869850752017302302211699318277205801942180788856653795493138512557863319046881423774055850127320010841586892483201811204853372376132930159819314313924562191243611382395485027779019744389774113937658917498169002169502676942083357002651005616750040269591700185570524076462685811562141333147918442179887820991293581025444912526505098248411174198277613122046238543927990542604449951375713651223198961762038299164909106178869711822264549252880966085855643499256732803961722766730660833887142874397337296712897459904550201430805895774168158088780492975919285396030318646681514271005528068424272468388125778881873845763774936412690527240478910201335462750246017575689676468958245834587442476959031157733711756384667819600606433466821560614302479126929385225507914239427719559000194964441175716340011076692910816206421715559858223170954957528241703697498924187342541297717663112027753013631459151508213472070337248837133242805018915078092058179121736472670250290908809080640868371444303016979509174291864156860010868820382319803153226192576538333618380599101699697974326203246217424325329442270938686622838015029661276870414039290600097501753043198870565731152259636011130568384573466529660306122319353245059744903621263835230354078342700268593680922228711468731222246751109000753474915947354508462383162087929556489444927053698268065967115130350324762409547466834929818872216453384193383984365793161387579677718061260175783404798384988170799515341417888895096118558302912827926293778381664523415149448713809765468762022434652976385786675197345973897858950508576301045787232896715999717173574028876426217776944218956816014148963964895235961168457214414093503449995192783776513482296753836617700697155914534972533718124647838942938089597860434348854181671952238623285321021224653176715187269471713937214174667498565368775132010073484295500282945390068173044833319574953329160308315728626383090530608959626730259249875596351318997861998351777817585255888899075302115195687952446921185249228264490865737236649980070694603380703655906915699589402103513536697848027611427589195251622001160821774490690813295999670592276187195728424812819077173200899538167337872125161244742205139437571214582811670111285543503910622864071459234235336341301801971702192031518217771833125242800598596772582847263129197081723703614921921208390865547394569313517282013667416905942545162571743663699631899263465203877314992041003422391226869372085239319984184818575134074976358152493281125466240933681968436912972312714731923409080023593816769171975627079124493622647906241656602706359805849333772616027955450946868379089095576512425524415902912701751138252788728126832357551509701541209521648476418175427502954164294089992210706403325529015795070162766817583485921218631721861023507984214563989848663795845884422116027572035928302809297133728347490243786259862318689686123705931329579464265807948246539871366501364673635430862831302429076751964446675516868454681984285041490897589441825812685633803398565191724664423909022592711156191334165101086199644078828638632005270573980847054752317257370769513630634061582708615405935549998244190401785418956559382295781010192896757409501578248352297780767449627694984869374589140066978219664234932628042575221017992644480891321825191445173139007994791074537778644616234097289289225200272149809857863372746157800914532665886245595944729185115458713875148498672169363614478016319177075234734291916562594045006533602211597122227348536000410315175579554528657530708685996857450000349365594922274621347410262789094343330794959077980379901206296475648384223266657772179884167687106816016921206424667355499378972948917322016054839610879302180224365175379902336870696797722561696719078305690946512013597548474789852499281908405596664646449601953393562049189263539863509308092051970887746320119535698900689748168296711588177155777602649958209328922031437467098639314858348514127420167049223457945170466932130618981646114557009052857714843029159927235263144620500195901741192281997144578893188260268802292132933396677161800415663167946358461266955753096010334334711018051670858343046265938559159810962453003686849201442508007737604246664052060225411721947119237736466078509482168307385076562164504395872998006607776506248637328128254680073139078134023354680383406438009177098246542411696405876625665067193917570337172861836190727675164657504017026552521132209223813733861018616807647665255086979646759324214564457898365369365104094373124699716545683209634260500435850093661973906579903255859492493605109655808862379282524142207396709497971650639274485513170813467434424009401090560200664181251513424051514319295470722782144459004218998247161165972967825994498929473601887002167372525795633330381420815001718431343388118623496692737338325691507391969280130351407353629966505663599855695470727363967649196778244109990213786093921660101154561018884125032760046177051041717058014023808893818077126470527971802058503650616280985830499677334971951879277150455400168560893608407775071391108545715083751216307445092197280096379401908408856605196347700222858548678561644353567504569151827548773887654238523605048562498362645314827704516615623428571881098132098518193626589045530806150110903908652305945409191893854800687183619020433647549547278272360893930730523117642565083697801166461044207696922195115958584324765049204135596357629365043986301113102771509629000348681692478886165723533609291425186160715765468059368489826613424620399439350288955245984961653128411949318927577382457835011322514300832803024079877478565958361622936873380878975113190271955274252456919332168425906216953103634566365824968829948911655774428008099850136703298016065551476097061429966027867216963268501835912909550871836774034368847597799901099357837486433827536638160978532762908527922414782847617146098841603125030138049523378146223114829190782267308098552641170695517174246102561584784965988471029641541211920485232402476264836582568012574711198698429021112420127316138334907584059262809402597667251570747463496315563180627890880555620340205166671889762641796856998385796045865001643739816876387691363855544198384972394242665919886239605399597267689627586278608861070250569396739847553949727674011026494899133362384829915986949999425300061747392916696363812126767571769666862963246209421407882711009206781876869135558630124720421909142443511145900082596844001701214032365755656812244680445771701628267474518822488136290538304199775065999961972935053753776478066734920573556599606299401939380959084038916858031192665388384599825110615936069217576446149715922069068741905825568047208898260123788104457003162657059353857898806300273267281242702208982184956726205994550886523581221211167651999239207060066343985901318161463346572535656697473252361989085431702444649256912073037513499687538442448196870811758745323019547913970705193850552339373832474181972602692001979858683190842218446311013971166057911552113649428910843421804443986094340797704160115690155072758140548557346581951190243302502647916636378645756466191749368950686843105904978208750501263374047494360295641659457108850978758911095925333092957026237610907385455652397591967577611444443140930629020289353193758224843304343285021063537832109997760682223089103463190580491206579169582113547201211005932087924892419798036052335336000393584601470951504591974840182869811945835944248435322365729669602482173297367244780830187514313060920915112787256041113342461627184547983735997966212399768946118848873230246123251574232051314778335172828919375509627119331681538304244041087677973430555248516205564370993614050882901733071918160648602587657702065323511564160561027174461217817701543560262998639399950374524834631423879591056071158457893203583305360824008089789192099164996428148247542238551869313863336915123195567998653100340068862239607697256851185494175658709643309939753436276470096446770963288335375697072358755248293115783355574203403609524933458958296067875408063261676131299674434642621035180588233622246322378783555622127718339145485015587589922016022274993662076597082467346124665788815920929716977456000522654929757300985058348721737213860502664793691173741175549586813988261147854370911245799933932686982920898408362863376118679717006193211983941392610366587151532899027572434612979334625039419064617731389898610439092188526726227054115015662853824376650884043912281223360749426420512431560645686902260041723235048404094603872896913411480192632758301270774453871398703448394827318407349591915899562198185104825006576942565970657791452974999880045565662374314067158225896244370231391748724096424677503877205883489515139021030577751261760950163389528267185116701777730425305835147417375346206024356143760263346527498272068857595955789305603872851598231430132592316906685937599472835455016603208110915671880737024269521948429637351302076259598611192336222779664422862532326393499985432290234480774271110226549652629202767444583028522665134287943677219279727457425437300198425153651232764370838425278857358661540023640641164190039059375091687894664993174641716884939301250180891987562123544267245477998790581390896945257124310612957519244374173656542842256078244434340064745781298676193029609865146452377032718191182342356929530542919131850434250249760412709622464396301663970444660783745039351593327700730455903827350702013054048929351068509055080351236121209758703737370707003608909608461420694256414854465746607144505556497600423425000844512274859907275220821925494535384079100690065701175822653396744338202189713873126951788177128154448327659612161442823461113078846630670669008122108542508530503561206306605280014452776302871206043953860558216155011074251996151604933551864603040338121290258164673038298034097372068498302736546455904676917506685664567749077442509875171053520776720704471639137617029585716145758179502770926923172521373716777195249540196551683394803986856918782643041671636957620722809588313228413073545724615093760008028994270335205476015752258722984859478851481298312043645547926762331445045509537432077919483212478059481783296230572309956469986511079912932919874047667038076370873949559589611143857401478095177145986142204587368098423892554659787623491508205778241286021211767546102800594135247105481553693330788307160118886839050509567419724639987960295798908533623604629001649684149930622310894062357758313369044752242541074736041139927149036546295609480612569311070060425651194062461392932947676730936863192660146301978917638691073688111749954906068873637624368387566449996245896672956641178943469153832962281917552452616760023214233465861029119947644802264236803279919925523569956535705979773475199750475854491217188488178806628929454472286081885173113503283221574550124242321816377134010088817266781552177046436559018353914788180984459248291350452717552721413979829149108187871031379586532265490983373235489600322668878882832167436072427903743417858910152858335506619313385012351914604761928498261400438427465250718344018723882365023650193163449482408542335943128736262282523481298436508931446826239846964783213235689169479647705060593877024979748523102497242023789571642987351009487463099183435396913838350922367850415447899943718929184001384749631125308848500229088933367602827045934772105339084287323561173371648673901003087424572237285950597503295196258523146971620954789846014149165481983908244560775652491809340619024266875744852848719393708475466882893001086530634878716727584870692626408470333137125925883549556792464138556201076633343063815617969933360978956900582681934700164398947445974467767050581308909894991633532369784835808740919046673878357852692540932160154932262785873845388698359953251257002172268792572366014096187539278313777517783746971638225884565056125460265759296602079852150313528138959534349288132604423172072827946177926221219939452143557795887745675769156360420295132727433260717899635731215776573212733311620150566161896392064288361295116532374669418199283973136870472727603917113695124077601294226056263045904227073950494751737920917869022181152651997371271430627883714624037343378647203622363730580530780146011299243921274556322931900383392070215284108934991263375098298451420224510635062216651735704935321625020405074275626888288119663744257185602442373022108604741566696425648904176084389476120551496864505018065206386188748740367916397857115602016051720785397630463728940171906497317778125040465302016053164518317538668314006790581679655875958801660895113626613409444735696771840073425533385111046105533055903863359922831204149587619591431346053368803845479007968659548217525235734716793436238490597238532390681147854362019469344204085606032182736908681404216082375192379983961772720521711560525912500421655214144513796029242781810159872342867322872282916111043218745713184175879389865116377054974411555705107832415572191244310577592396084680746402923108459309072833722632112016654636587159822035869555465181066833153723155127834737979888170098746440132881287228606027653991312593642875243774764034387782481256019107755360147681464712015035479030932849330057526759477669474827584579294886154375565881427352219434045710229954485780210596011427319559474796402558371668009141230431665354234931117703286845415455785298468223770575737898260604018255003280407666634550618063880785334959348656830564931539795736954639974153482703183737229884055973695230595940864152894949949363887924919634844734432642576221925520910912035809466441904480881955369993729340015703663481029257601448582074540381872605562474722133401484336511313392462775535769705450673213545334647412109726008099062243604256612588651102311054411835345920130105517264021686652070410485488641869297245004106415349609561553137550377746568378736317227916121892106321744832350356213279343352735512781277185623319273644303195470673860464218160780165895020224070695499302180881791464425402669063456072185440331549856805987301163275841204483484128774204396183696042783116248566881946267520693527278020390004610200440915023461395742194304690685379862988240679307564167982463803419550541078194280579839534601521170365236406198454596211256747604877992932465279320846418562223680507852718382201578478454751184964916819265875624088580399982083047419589004244772332511713221982597959005224359429501913015830121637707066105078509677378155386203620961388179375542637359473562853576624125293846292978854064310618443122341898658791540524105126665221493303572394812728163313007549230094332498849325635519665686971729740328080934304185184985683165319601040927050745346123372842298364921501930055281900134135558715779930728969714830926770054489206041281019640840187411479192838444884944118705128216556534805567440206386701458007245177137709566361284064310709809620914192418278485328986782109464521210108269521316033805232822299129657353728491814787993675254929514891120994131035564926075165542279371305844426489566751000822370216772670961148528147327723567471209301526440429220715040841951081769442233059794042880306949186607118045160881535174543652216086828669164569502545579669087451252324274742328504935446084381175167272561889369774023821785877268355909927533346524174531190160688354392913264173964089027873697755273848161887489815768778818989720153360362857224761588223026487191523610104823913693522796258794547186591222449086023380511563269271918595344589990285165433436076166676745110119353196024907909767325166941251123073555862114437523892827782048322639478296063723687589903562233481655135020858380216242762527870304247940725840776293338889558558646182706940145682436269846054892648491268474983589536345555684044243128032869141363011121548025552882379068187379292424001039452967259411094392268533682457439674169330013660899409533857526561751085004146148750389800625113941640314205842440342853832026551563096072441945493392528102655547110831485119853148642706506450802039226312261885766093735482585150533969449930377025164750931286255980134243244966114119467218289969891976210473598094321696282079692031025201834756548019702627213254862298708890787936457727512718296225504424999823511390958581373675637046282435222500283767679939122552738773583358778882419691932784096847838046103130837286202017787730108513891020820434795362605872386831653477664336426339646716918404327533568357236238390400253166895277591034210751127739257715607269391390353919951891793302240213267739261557281345824068336162505522326729000190274932523797610839657153668433887188424074394341358136681695556748587396933174277224223369116294732153012487479587656610466066429203048886066720770425417765409642736561769826447074545998291693234842191254593203237707021226673050119235928504079981402603423963533538006031654318508996729850103516934458967667195819916952084151428896391535256298038311498345280655722075404370230572556574295204260370687034519247441772873728604895832910673168404858798803678959265800813638686978138849921844596894642674217407936463401916088466580351856210052410018455274032594811110915772694469840362923613028427568617329960459348463515235553193910884401323208754109220115056595345978795498214403062444459429267919465959428361804228040990802988544556693782997178610477199558169798272424441357257176820147040622296841942492321040821754327775305189621829174388429696920924322998721118511583781626554284799844966988519320498904925281653345157503181313086247264514079030414618948465363350383474376732410317999412895556338359925301789289904093778741533010987339713890533184299255776749451752127659951817409382312753807990898737306137759842359547851068383843577602580108511429327614614820139190158992017555555912918178846481875548275938962084652450652219596291725597706462974008802825136968967176123574225231187337591031326825975230235798195833520719662200204570108811597730021129159552466039956882026440562902031490875367526401731979261474751917268920497797767090428246964310265956882312089294125405775872753331580921838040513247932418195028331676659995537056029192258413876988808241121071620336706756351590873216298522790688008518730271988712652892521908499863317481462126371321214263429351674086692363373903316060598617521150596692419743020690890928048481135151951490887415052780141665890963723606458851228266225264747275981971682247503987488214388536766599562640774649323991816080928378327304202787286518590751967752979375215271910981891747432279819247368135709535302105476692719729678567551729351376332613004276768499998864217866124236444432568429728846713748609000054491430247233010456401717106425453635188827194746967450430785923263644651310320684909796734607426026361736684299354548908451851053501900854993346248284134491990275434876543205266503571112843073948683538533423856295571960034129887520065017416861896301387231275878838722457408210345482369981082354604856461145139664504399892430094686975979572928576591559315643226293646095315827224229804202421085576524561811999439328623001135172614726569646575529416496992385092128624687630731107043318198517352369343377293289644094319123969184264967840590822629095447275791961194120836237156790634278162592180166078876793037654043565395887467532261906969032379307930492434753635488310186373233477045790890513446195424624825269832606317852879375812781909885834138668579682240652398204713359118866523732213924318648208333212691965241544953676482042351394443211445495288715727720351142058790339812738752752367147102425449792072095835040654096611692811799916546091533157904510922968482533496095536996778492821315852751234943114137818274880860625364193010058367831522857570741135895420007054271974549504188042103666013432897040032361084077353655318852322040397321947129142474827790788840208332407769551127359873695341803771501503100179004465768092416363773550818279232148210529060291223572132432404911344274375963317627431932476097985877912210534379997815424823380926035426729729485223906777118545013005682119615776775296596030579460782776552425527499651703245952943487225145666205329556282935712182160932832184544043363392983288565616138850146216548513604719751264139965847429007909803641127173273945291671703070982060359364828777847912260063286945750728651369470058677063808607019716329454957191034028045069406433039609550055543278793816304042031362033006148175006302284408912786307478399687342978627316160944401545530843698034910273116647708131701952542952084273901609538070086428389795022548208132385685865801282042735628829821054283482308670268706954798135432930281220683428616859500706943815013303016188733001534806349868013047303959568466452799205020093492818144492899432843702458380468057758757668982730029197559161790317988382129398357488154799768064459541157380350801870038900452084046664326748523942144638402061973396267226147488199047280269527665354159451754590741101777206514908391652872539482399442398140490287278210765931388892135327685214076622616703037485356429377496172011731080683143647857877094609397792791797422081716687121340637446443865940017144960016770581737270446599401758233582230543322826382323572078440239826255854995360778703067888647802034069221232103059610204012069592863173204157882280330666515176796129606699271826039809071619487759609507566086543498871380336270824340879247999376164541076881086777346945326461526351260363645109533078886553312985420074660776396927883084574962520735278941499352326969549372184789658195465381620036140721012000761799711903295860901782077351677314274478592160106317686709223366005671026765698549514134380164983781389780300923159186407751384595924354234236769495797506037709747929381204726949796063083844666951641766416263267066499174580607086367958907054099160844515612146480675676331460256153957465458024196486115619617404572972138278238813702668550135816039476991614270411436759468085569326513443593123095602332135300166236890002154703845708630974307145813858349190798083307112202238360037283703924548189764160997758620472758408049959660032772335828350653461886941990421164530476993385889444288020636200774639098508199774031286122690063335588263178415664678871428426583660865252803074892275252753736706342303886962162054751045774475821717840931409464927210688859287164643700603552501498146169484380320747598905319302264137036788442032729424716671375588653965784523886029338500549393433120625878510972113702784525633967366275822885906789715663495581471120904006119412749222336821604866783120085284790657963047086676693179315718685527062533710914659651149577887216148112485925399726115219722115616754759263229418981471940146162221391475899386312640585385777355969705734137702933386833001622825856905672080854391921351691511076677022505439364645460557381667120324041811203120561687797728387362071772713039346382201065276517187160896434986121369309868240348754402300607719908147300859770575286879069061579408915475776266948463943774001083447538951170511637146767792739911883445065783717082947142364586040163857548531279093667469709108770464749332848937580779568368391076848045797963073876810515824550518647706589671873186727792956542964705079589743746833681274722292877039289436374674538310319102397295473049575943191422231884623066940908938515661384704403297183626330574173238429037580588235144502473997304423243852122176423346227655807219111186853369070181430642171655909497629223653659683386681918038499726335246006016269792840721122430056554755197880441117089088407688517686643688484073013562809350312187100200212804467334763648824003660028303988631842700502788497655703679731493030758499075275069574292650793701355910396855625531395643447571419535048368154458505451662504560957766447822175871493585184597088741336942238955657404947053754743925387456458636271898441845156790016475203238878305403992114131017634477052622442406602621471701758178036052159827748730289909778556273312772962710320378877434599122203450327888660955858519345338736811797163003127490633893343748705216973587194280713159059343071810757114938528440510252027256531462187106474376728154217212346923695845404680779891789467549469623698230037647985395167334251253384549999853317268723298284655004123312275324992488253438505417665361134025577420479605498064708160161193181166736909623215135977987156121198316847135855921301376093196898627216837164895078885173863642997436162916352060895932216233513110854689805476320335522384673189599293021037791755249082193754032448679866983185159261108390585000245951171486628996606992297940260232850901154488005349723610983853748691967138771918644058305003597242906077108174438231713941552438026551325377329284519561468061961419320332750456984016223305412450092963841176625235472734668332205166059156533889366511552549525352443734657140599907526990466476763186218732086539162877127026215729930529668006678962758704051648287614579919888590731765478912068758702950932369643208956439590337822619621918221150589320242659268022754053951656367345577249077486955908517820709146261430289073103941616709893539280400990134562951420110020883766999473731379140672392608186036567403853128007259405172998698986897258420188313940431512319370161170428113609511360298436339183538402926483566710846670764469208227394967515165795458173639345129734011539930662045596559904661563713312840660388297367170903731809244453922392388286055370249114584242887051571756492348757193445021791877157993688890611838024601958588523461905138934406474301262803533957282658666805359028046485372152137567388666540723462264248016376372457464079912458712886130142192177356841166816870649343478510776783164359515581687510945187163432527375531833849777183512498079951591763348820999487904177680612132544556352234133777554602351202309573724730821817224762904931745998740930564152336503620705592797206027783051726215906656223324080155393651593126312329855112508456719731450175273636321155411434243343258810407443234172431428801491217519324754770628705744294404255018247163534644459493878675071758372955906048093811165028315910086489176717109295509581311981971622564118331948692214597347854806964904739616373447161346822821262065177102841234698266336811635186882173028547449223511229954836755704621462028050867683238950570316501375132275771140758042057406217113926574681088197597318440525344986898041501188571624992174264778864526379325911767219184620779893733945791134662565077907944015243167163038407595706170152494663137433956774586671491121209622754568933652410422521351848033034738388827193325881734801687883259969771342936144505257650185687498425224587845769954909421036404298939483168935617481828353063598368282263358505536319267726609187104605517853164189020764737422438652463203731118186234270962296653139372760069673997254063485761782108965576959243985718833541420683191896670436945572370754917690435777612496574755875602306810855171358122566110540926810181968302958435394568509208879616215698971874608031569907936062770298575333283362604491071731624621683619921066346042078664607011463290740416018400186218421084086219785525379934094791725094623140785070296705078346810102388580581466271374899015012007538137785141722279959428712086791143354300954154776600837507369448555945326682524350728645857126575456474486179046927058768551328734578838470827053663257889683416601889614323541384339647961509195803962492752578151493279592528019411020227673562856294568695308949482820101600653426932509828627037717054857334130176454043196780332484381338263840255708254255805198871920701696623282563461163948876847808952537662424676689634026428042453284799063016159826442523770198146263304884598893169718322913566536856782383536167154932624873902368853190909166235372543305514325667533358308725165753857587335057985945700879045652740226576140192039418347202725419748792588550567526835793351271428255718800928477268518959567948934400089077605839201172502077981138602198778065274971180393390691418837302600745827263303908126145534654344839159378429381832963413273114956505762864607003685050851376418528251117144961235277707859805182939271557461247456431555409058807175327231977929137389470585142067608518413977233892226067683421862092661194765060278367092237689184005666611485558003540768538079842398954950140990388232004015711021523366115326093048551326265025697199030647322127414910078977115022960976247486926066717440531914677306388795854797426803255321474392887938826817048512303427724897621631779867524821798859663134139816890615772503770770012764886006664677524038640412490699941526490585964832151760188409279414616568400110479569910243562275113121012957543801971902840985713765082907989054698388489380618409489664397206250767565921037553727089271085464194549089697840184158780130711877226031162690920215653609284179073950532834105090803003726213352612578799985033954275341714725483314272253107420113946449799634673249079435602649468364233961495412741797103068236151059140248341617578673230724657972148443759465033815843919448987685114564545637857890763526744869625108164691897066194182006417604042891806383305032216128983631017245902183941996836247057049791486069506367288470599392690890925456303314744618184886111835715723369584974582281389283646655897485684117953867952748370341062553857558754486866315668507019474772533421329154458448671374606085704886743031005448377371543189295676827595536041653740528221345644890072556253813923526827544611099902572468731937183816510834820049847032175705455075940192445265500591029096479579842416087251017531133418151383375847091205924329918460380929858365417246283697282990303026832747658219650148589879987604975125018641810928907472501496670735063684842970762984397651634035348807549292889235875976767428970354344572417798634207458464954396046205840916354667931284181548005250327100766976958129977872239491356018232171468644959985041242021315401735684974895864732321540229985487888607826135465468570868739055786452917231797513523876338319616235904416139368892925067397793219401973964808863764983616250124403970896436027601871916536559873945047679467980277394208263995600660565426989402771150482289317936504326224324268017396921122423501410597445846283522725318520945111269883018485735610801251459802304979160352295347931670573841321985456380085611243954111598249100046543614866214104830975940329571100302702890023446140009433246160707307241958779473591263528693805105405914608950578940148205813076381627198463054592953686872578230934624727291103454947904738370145036441005007043472351834554254556584119456093654824600315029831244249018167509992100079577960007207268204882213203580414672148480910365511851388657901342817529583879762772028561627138609274560316077656181099303895966012046971058858756695996056620524803303305037719347775653597443875871497803772948134489318515412733195624722264390375149812343577109221384470748538373749993769783143786394261450053867546190809145550312000517354546534625926525412131128718845665203238811643447301146274182712909930377074094204249484810892244643643002813638548983078560659482821570906877573886458147562707527705838419156764782413686773716595719680960257207027353231754319569479125170738853789730898667685462499152240733422882518334593479520977327099719666786131331193143922494924653437485554731877408747630588427204938449331996856347855408905180564048617776628689421090502241288225498353747356905956928381937429212879768610442210653142289817708205677710922688378395910481664341471372209425320795014533741244545617098386608241871785618721335547341334283910979773156631808605526379989330453930186129601705796170411542741938643084426311558648014576404422154423907231545069714553960272526353283503663120046076060202061232560767024576512925637739450770836052583929842288523078269109795245702001450875318386985986632303651341169066442651607453308789442564502672986658179272448135254221695689076079742077091315982043208956595918067949602438553981230726875154808768989252997165865126233361690739798465386376222495550399153264776096746879627016854574273576783507191821221021762124653532500656973134182288472374642498974788906663722351773473939558315095734908531532563053002086924201083826367414405386019869079722069270153683094339606021195231347434552764097996906727627027912472861484993359085687023811980696195600271716936629169215969269905248738906222244251595981907893783973025789011214966430889394167065413699534705225658058079506177358681676639841099374050314035309068657994734948099965552859875639803093571345544300184264893036826533635410181706633082855015521162370663479892131931171792793877876382291443750269153710966934592508722423722518745324364455066940519861036533428431617087935532116651069322964028221651774424993766303900986747764714112580257551226362639270199422774611665894024808652740825914859842554635092268275234002724458735098687351012444306651167259322134420096999566712172400723793908603319907255899017862976033331033574078075582600672265530012348397473846180040528638316275134183058596571659097185000718655129697657189908377489935115103064887637860527819548578494207666673068059624645880714186055544563060311718297726173739294610032666655463276193540945328069129327993789784542847193475442681484493757105835536421380598919477184815537001225302807597445015035578133516200447960582431767440724021490145726969882598721836425411082769815224642366249394294853688226468197271843268152902622011691662088041450854287117734945752889264552820895361722622479137343266915254415473097364263537654073690530465587522390786042376336207570114863122108907594337536660441081814547491395283968643730412877321090598826833158410095272139485959669672960546799880229462217492536135354306276540919099661807536788579677034252786163318679776598204402940696803289818380730430746713242952650657674486162905243488547197595570406311576976175451398725203024316195386100701223266483472357655160636733740241905187129805259288404147586239175381388828972811970587216150919605984550367328477470092506948221306221474925922500425871880678156257489595406421007700854836448369226111226718124272611798061252544216489916332818788508774056376985546469786795487841526457387776794964447973390972312350254378925952494815690782780337612246987990307906137899880039538227955688535289464564341110463587414132526418398943697310672098283472375056452445808886042117323970566151010111807132322051463345625755324720074552803302017820214792839314455122912511244529651223026546209695151996162159268294506868308941712431683065148736332756994504214753928806504813901129094545300819580512341856889143402609443673434271377528257725650049705085960560782218745763507111401724516346208643618323880097870828362189993995656267417989376585415142408474392988027975139544044692042377735826071691224981727031054496798568621522827512647085868922514419883451216996754183125539577074585020742126015359452055383020717000916932758056466638637841929845948395979967401984743347634199854466112162616213521622424189050462653134104431323167895891745090827638962942900706244085150837522296885607021255364901038810380375941358527064392390493265609020884583914631677672811351485743490626694529775876637316038883804893490068171501617941428357859295611974242965938167404009722611551760462005723069520494336794855970409314684528724869965438047210257780561959278385899874776273934853890287188239550212441735013253129082659948192911534579902891392817140057396375918862445074286603547172384007535248093850530263403611953393322757264079943908395834908780895667282494231696504939317544364991486601865633157209214161211443503912356970148777443825758147964666484321053636852122372794101316817402797588200991755646275458137341444208431458632783236136416636328163619193396066352073769091815899165571587627632533502924019996058734765726367945091215526626081081949543157098098876262936128622859801785972929037241444105285212976112619769013266193173821015241975127037866728129710230746631672103119041791214618903284317529327117694732417290374289315219689595940759385576717306992457449081785806120981092103209655082871539563000909134133921880149629894875033859570672924761175610600508685234193963513144748391659648353126763767523271425525860029624806822596340190560847312870814964975040903151581316633996040246746650595815363016929497572339476943220541959018723094732588362483469156676868624314477916752950705077482471885723888830261867880714139369609877123519933870913161659854033329688019882164682516642869892277829447034889845182651958429503025189762113835898674835553467642926223185067100016368979990738046506626513969127342548993867467791923644619272952002756109143973741670820382474237402880979835380145630700806982930438002637176193340366832724894368460689683675774636061553309704379391995942221237299406336968470791306158360764332526344490903805255029960536237995665759878927172575500260630632534184214551214423309028776835305893070429998457289104333147108992727440464839486493873178020145071517230534593681852503653954151225568742937423535812896479990977132041567390678637687843005058841582953397080500968724131282009192649990229753183471676833084468884582888621398715697125764206555023089437770746570061808132472783947934599124063288761267203527317596781901531527874748372239699722648668025350324730045236523428740154706529513518877333905574086103927466112517530395550773594852062883862598536473492096624842037794461115371150608650110904336441604233536081635805540282837712182505235052648947208423751710812631388909566581183582268133253912113162482697775692933764219397577119492351425812270276208610694543489601688015921965046352999395651042214005252291947525918457509143429744753634568823456210610965310650785618524987164872195296894427375982911645806536085994828277894646707217764159420442731818731188037759504527466575239376579506068664778983082902624060043187774950730264565506506323932355240613305389562655987250250406915078132770887275730508667436547993881091653693892868132670345143372408663177616868582509247534323763389753290656976418518029743997834614173402860270840547068729308672038360943499420198128848024099596144815453933574062027832439437599626906949988721317549296617316510651518014871283505915083124620166104442784483178581699264150045147896834510742727443649990872185796845610056417453032283192378411964781793442713635293516749953948988562949793937466151339444352704985396368340494115801923368859437970231334324751438537406404192276519967818081303334972085907679268751011748059952601001217334857682871085584527208466978892066873861380565988270715496117782923994210435203128778948673744590431690048588399424374317835837892893327786022546674190417901216044165923955237642089119690730879293715940292961167716195403234686212571553222655307950295889182046257205571537876290517056646448304261783469455962268237516441655391072321428842862831354990058343421868004656758488067918536724999350250834421829930217755993934459332112971124572171980356870837641666640664086110476158736310174609571046017524237256786475675065551524421705348489115381136742713087320592384437627862405065442544123734771966249537542231520226656647686416018227988292341329521622100573427363575257215514916328250816958021089098689215464959434311733160634684395659451151094924735965470393752829443171645843699624400824349898448416778179836261708863825170343124190787103163471467179155248489563618318856706993218471892625315048031171728790829035964476603992864245881119903213881963034633692646126462817610414709925620453994657619755423199932191762681568195180823317065729947588505041831718252550727457869042940960419284039900338801428336320293080932190728207055593030773487608218766022553492588419814851507791046411175156288336713370604218196446563740146507763406214209910722291780648668168635764848849262711281666157887918412676833212845041985903464149253349009468103454349153304592332354644162901399927911927352944017365773790696376340985037817090602285755307871233433412535855718240868629435857999673863500055453418981339014061632507784589448110288171204668172181811581913452692272218616347245368051836728877117890707076848389219849903547632517770742775918077885239474960496652782294870069055951448771925736410385020932202511394063156834314997379781646171001838746218708258318518449212985692288531709729844471325278406946912377260890690090084698974632383735229186114653906968390322895689033937224525751362238199829004005420358783224705998499740529976563389309450389342229424127345914862269116220466886422769405046855363815190352970934934208378068501786288110044382028019848171155874136284240790184614005771992099546190190158456983077956641679882490642055530677894235129990899327017576271664985168169713680833314814692880839760494340066035370375952193405725432344807879783733128307695819779288842717370925000515363982012765670253061065633986728967408321007655164772313502167565088909101571446159914942677795685620091936146398786472641928192892715231518314287522364094027541580939980812630962681424971963542438389681664290938799439615052156425975528098223458184642036028317935942204609759091506318467145453995833597220849856185454100767919885670634118105909061240140310276420470524733075982278469679686958889923778744441981714605761088354612792444486065629911434636584447619524857706773809866117748862855942758962462910841319281084487019413088459526910248422097072965223553094783748551316804135553393735319217074038238499585132412509758583484943960247178820543629643034699475221862078266601599155347639138758349479291209912961735538949513106778457644150229196706952249237175162557845110605256785327806495537884557093291315971484469355749572995178722745092288655454291783272078549080706634287164900608866321959934506286566448203954703128398202022547800082598643930092735728079823192362341580854931426999504985536026993080600504259079881811136175365171889124369750047776453455804300964215914404520333950792221161399303341868693176711589885454788055828076843351467371067726645832033659529216514747484215660527509600864893234141582246036888456171695874875514488657971254239762711381279924510418502938028406427584472387889434035364888567473539527385984095369455259026944536312884048288913328646354926967358110604767097450098729145689931169292181427321238209142714215023354348451254847888695590952502674218792026279473406414558622024534805786792801184255372107874631869237013534515040649053712551030220823004515279237667161691377353240693236057404982078092716456271033456636615472770656580095736975900304222899011758600186631138913561284096125500346835650190873312766543116860115950385762809800275606661871459822339023861015817238259463255198185415796619386132802037605053476612328110378856077115338286734514553396662905175313379632327223761653378437379994669613934875142606334019755502091296097975176358895457670769490302958914059496816104620965729044561348596068069812846004988497018308122857352929291567855779853945627155101721360176831098372334244100448526702469085426900025888536006570781249091645137107466134916989511316357685571803178506917297733314625298813988163653844840391168733284638586573291993632168036935252100953225845470455346495538902212513665158723037109483614353482265223473616541765892322818393008397146113863686005618957097438194462156920757438280395455414350527024183261504077192076621776220896476589012648888173100148530069181230510144712472675908274611045955287295446761882827830813033095553190927577167698601802567683428513598344413623338043434070545192371229918136753776171071707536264900828969953886851492376891944856365364456863519376510465495811339780423267550619619311044802398094973963595824235894635196236119910921354278182713982726713545229544168647591796736743537045261522158605140104438392057883983620479989338843065470200532175487633600905057337970592061574475731002872516495911745592272679442856053521214132939465719157329321949193270682204974069436128929369301482382177963982140658875179707108064855060022879442014849184629719224117718880132217563632193061098957175008414873267881602322203047464109100758782914150236926370480415041620051678237672709844381960452656293129603213436091854178204842527099340049071232399120963068036697580748900222659594784148615311780967210037675895958507419322421854248284561826107480950306991348083241992138915494203278060063190305248437737938997618365292935681465862338637225411331649321971837743090775686148847800266399078990327702266506159823609457751888900562836628803616502614184267932304490004580616264839053756634401267885565883126257634242090463005904688245807941846024373715987039113690271165616475692583407941600660942979636028293895449475939263162811751901708223184231827400309138456248155747244324124218397639169978724495597686565864459753421812300469691918374201849181117885717796262909927526242029096439113397220819048341787528313317098287789484664712662538105372768573323743485366037202555951011285624674269956693770903855674610666291274977399260684617354636990965761016827902926832656645594488433695392420562088411736427765972307474255989577363501900080241301351341008096472980931187285276265563356311876320523116922378125855677204459361206063988497538635428989785944166732952406928575036835392022483475652473425848973120431961835700449033623506424540559432162764580427147147044324677804717275531761357185900918859073904479506403043431523411470671916672684811633032729731914012929392081297827990402412321528124601581976029371748707789734844760430983666279136228856196378849858046923380104241214837855140137589216174318315207375217054479382942758124058815917611520659425264012472076116107353433512412112920837960142263054618175812250189854322620995352188731385842674263893829308061470110211692789148562285146519377401580470672699422983648305035140252701897923641006181424975333573564683284207384589682316370247343453251949122790689355528403331700177991756815826064049688928675618836798660467124987014863546763484606852304230399277600864262220903664126406987818240074263985036047992590757492688852220014736034896990564320997431285616403344460178757468939245434410864476082792569903740596819436213810460546828813061811460116281796782057920343503768928264753969341084148266081250458251452483121255850008258172849387559779304311758459588377556082703018301462854124039936806423948046531961820649004673824910363086209888485938153694123460946245892552928871650298924273105756055275841471374106962580128259509996634522914936769833956671640255847287981524317019346008864524635177770746409720556808788210572135735576869808466712044714322442233439662112312502858749027323209154371642864052484970778271199072882021483822030017315906806304702226910560015212150285947034413712645369405811650923802631077986787333567365964926813763828351478921294099976313785652748788926321087691965939749563721656372115525632582753100807184899807030979734664773634884153207108176702648830554653035949553816229328224620318478016471634029273424052465029119790530304474228062896939270986786745971336821913441791278805890770446347658057105578592371400381594339102092796859145615068455570609547738752223398871044675280689423710764052434497075289501950353911504195507837864569087109665859033261002191583937019322148724842041750482586316247984517871194655306972367711359987073723365691270469443764522231124648057079161576562186508903287881780915694900054954441789951573410256698723404212726998402687254412839335179321585892910024649843150682663031456197568991225358120766696282639091405899726775492247560490462633944107682230905853534016185145941508932940743728109275589501112779560280867801611740773502747481548797368246784457998294141882691252708064901003776750454374810732114316271475851125675627661962678967403333086055389243863511480279901302850584862760184516099766938118217795337215532518780211851660171088824623015029430226894825653215743123962755215624868938846483190120875019245184150682387007539942683046865275614723768323733112733939077747017577351035542159745734501325723826149087896658448965671492340550623450110081106214707409401759180757757237690536984943085925129014955632060454067065739807137220987530416745754168074292172911287054140234807308171537590606749978315331762149846748009625857505246337750341196758568750945404504693357006696500285374843854456654006386208318589481990304280240972606926007997047589443813718563228446172621579149758365401708144554300202722438815102574786073147800543642405472446262213443721800788261330524422773001135073679297983154730208404338860236930759511354825025230860116180152246976999852705696487059525277309737990982993311503996754674001581861606665126346846395681720719981639844179267512477227233568534048316410253102628831482777354702338362947821621848208122099034480498980624862294143687622705569346210584291651396275870885563109230178177275623683982791399738363258005243853019386304861417559170755031959995714845577280804347424267937692259849237554347078423764775147966451451240592942742372552517029246891954597462870446136360410369617184321555617446312133202666209430487172183490841977991595319702412614461214642404475123393932387236438445891402876765994764617301094349123779652200699697689100872374934780109417943057900324169030374111322714408159465721945249974707682456709315164391895557203013964026449574941753920314611791108770185239077890785197966700626164543977057887005231851313496601603770165075064568542657340524689702667175126095451526041709619786449711991044029528803846617856972298698049517671035815457766975326383791801587754892319284694574647404774187289711670046683614178947080129360089397953092775925815329953653138698257567724523791748846879321468833132576753317367041280252959886381944355772617737722297420311310889430648424966379559169824257221762554024529698945575464436733089587707379713527520621261197256717455128952098187513465490573630734323198060820360732881445030043590527544011291795913407526960875962219406635860503024486708355183532408786283366458812776195828052699376605087496772088195176151374780267159017053664635208775278699616761824338461112252630312784568697182953522829301997476167546117358324283139180510063486346701568426977219800422350654311146530424960451276493263215816861917439941126124232451215241989160720690250191340594131670286970265357006243814540034471632159840104177174485815996976729679035364061967343386145902151559464262006259294147433671792989589878094850800993921999588168422729487158437758760401988864373643519507074482422874686769406331228426601945264113055415011167535691904191999330518031346690739853026164273987220669081378751213138349173169594606615990980228832387630997910872899718645012902474129505684685853616193930340256799909327944293234622369563966921610434933089578431289026790724324491013145604093136413559158125928124875853874810221615949665590524115933626698442594213790861727591203686253600515982587742887528896826451871150228553894214579485300421689107432912294839519820518987099190902747787779715846760973891632506201312353737642355584129469001954620678505153293310337136447481543159340822818357621194687924387108194578378981152616479399610553274222998888847651386569661185395503485064031427726736964499452199239974578901081160608056236753985414325348737016852194032925172582151453812880000361351879277835033879444883384762606724917523949484012985315625089581547045558164133862260303284207113712571259207313577378790654807213322424741467894083496324088758666316687642326504013894711926182194040269797467562384610297052047808114431120342042030666130085069844131600784820670046777128285196389597537957506898151513360148711793248146297859154551169550168003852129466959617755416977162475921384173266137660833357113031377617908694258918267800871688362954070067522083759041611608707744368900037902539299416030562435431197389906946195655849713522532330643115057161234424421932873346474796243877176764967103895209253119466911093294138590279464432726444268466859409549019585655225019867827018975102382525979189780843360643777859387129162181613922841497029342431721930608017008102284612341138679662657389945559784267855370723802124027862059441696482637495389920028822623608817534753479210786513972767131389058726733182492523584060315518584159180546874881666695017118400647456991779976010424929050322337471363948741861838611975528617941716314121268839391922642109141859193976197531274492142385410968073422016131669120220391748825780662152050305251337748975213058042287370507064597563625251834055534510804048403579044514637278740253728631619216921877263693175189061970000286908893007651401330412555599456073250695481127168176050276017591105557102164593579363228445024926316213577669814437902450864695315869447971270400994320535356805724070636392457905694100075036214876210153600071513174996705860115801044195104877395167391772362162220182945060379685261061274244347924413530850462622408364772125671481548201035919581846324269467612896830138337716757015926307741615841694958188548609198160929535799858916249894814708959912329418895547409254709415202981604908619382624777706969529188945577247816158758489484398243153011523398889894381055479508202570945338470373728680065231123165745165234865621596479854689153431192199929440585929651799990954591259866406708694757099107347722959121370762278493873206976942534956295531580984571916777521980683216957293639971613752094233575900644003013686851714829504603486719577644538460252630911043735747458411802883569694571298698402416069717299277656879341162573318074660830507386992936795942147956132512776158527158273448979083565837400826912751588939779056085696913974198873249642592631264569767282852151722718543956769789384456761579770325856742230019803114053488660374680723303508298893675304570727781622255194226233718703985177910175493183492937818561466616585536925078839816222491195590084436906685097753466782231972957706358957954384256605124781161921360514014614996576135900528269327063583662493510227005651145542176360907615081755219626155628381630037066565399259842758803267554329738417237601865810512363332853796426343926675367092531788482092654388053793190428110833128676116027605140623340839728611079252707087828735156893979300589973737798302255012137100585274702975085103604388286158932967862524023387833343765073190542618393844643264210057289393772709498000869428828483756149643461738554711273093273226330528728256607775776731262913874143226287710326766818405577725645774738047107887931079244265076337760817222095475600670621130990766992244082354854604761578651376496759714769143008897540197522730490735161196438199818756328443089466214969637213369585947172701664929833703665847239013356841072530718022866103860985007970864027867012327078690764364142811067306566258479481498885283811910560428529226156242207476246946739308291991374886215419368088422078556180457997594507640814926594354254451462235996878426129090613010920408391734807097517115900420054343982485772253299831360053329168570795752646805755496341262384269681925824027941561001627897547795074802725501484119354878291518941846672143828010628593051307859822025078236375431515812822070986386480913952728830376814320301588538090920307238861667029778216221109995686935255224739779808034419467332128260770351277585805391777200275586139763260154223922191810882693265538311613037482870668694349474534103937485061133050225777215441731679405568658017490306676921056874999967001549754619195233034448905559266943135427724104909373010810795280241662792125011195303139900733505130487109992219148322018205984925062114629949780219348362565730031994964661500688578523685168459755255700251842274972853989460788631086723443488916314498431644958034700415537422064788672447565081812573664791663637904987094943827739120217668465079740861252735954297770095171557635500879774694410425147643148842024106338143715085149073918696764082410873291177428193630855212343156579314249094873892441756154578602666154573502973571474575068548775478891205086758319690922825426612623035116994147939557629849149993679143063503196026096094219995938134408843209260636437977230640086021547046671808696724225118949948109268491704588460141286586076131649258445203079677484539558526249003986207748863690533763639597435780063927908389006789067210492545249319309831498221470194185123273605159465953063290612419823790869629491073100866732187857348910479716837102011645386819385487062824985961553430352850766478087082614963125671945879803683105736388688333952476261175415437177985814833966901992600892784936347066842380764794716758058530307121394105366506938441011080019391697389679257442398455737664505800836928718868413350455411112325554345588728505968667725968463949362590351673028618170183076509432856472093726929835899193463086301783964325880041226071849637913470298337766021519991540199617602646347281535136383612341351438998328668992350123447926298638172913492397283935594152035940895024513587767362421742555769063385994932535311771314749957058618005082917152712224403488083645484832912416799998175282728959509292420981245905649799186432370444681478357117772076729076188143587000230363044771733115117193494490815362709529727633600664207408460998747944912747494441138536244760700025527987901711147653630564497478205975990913234360378576868911841303156170248812496973523351274865784626146332942748467437792395222352448358568576340067528913605321681004726338410148786850082101374897571818590547635393986063752482807233172529883787155163834762550809475077395978386506507758251368527748369920220890692482295302236925886530003694879185530778587848475571312680058421002669492177824510768179092005432389711465332824283249643221373975903778998574624454236769277708967006190281623879800086866129523717906963278869497603719681322476052653615006399712101866677833643655529694962647228078279368033347780883995402510242687409626311909273732110401471412011654351147741055022025861178183130647605114695020155235041325980929634702503949403757601495677971986387931684594579787993813463518339491645701261479187741443218933829722726774830638635863341717403389069586902118525105052497466597957147942788226469390450024965709071232985079483103635792477051349337793442377986133607007536709437108980565940127669898788970435632232886738867663260152168076783910962845341457697801644599829077822996543469561295617997933394415235512858008780651466473629021287459087512435450122629459899748518214657047566564397739404113543620517347866806470770604589059984034812487590106290728009878966668486710715224978763782515392596169218623023108724871884947985163066669881713055795381093959295756978671517637799527989349804933663997247133546300190629509030899643839650639494907245380476106672116450044583920867939817218613535916632122893813262827158618114872067914095051232923864961177980155346795249427292124810975632360141692278698625436078855600532926778419139145394802771930309367228151032400784754848995159812082299720581155403316719046546994796429354210513070688844774415543518827205046127547801869425501224826591552546908144490333218833072613964198339796164228777470021486565518861941694220952450025729432462878527160379088159762543609824479267296432138167955382921868201202746946396565807876164448969784432695957083419307027809064750755329342295144641593717052689172478796386522620583412971103771525266007465686986227202399534320236099188917055565190310225700811438724832674136800395473726473821479596819626227195754315874462563643031587559167325457078790951989579037935274964017251139056667368986158139218084887112689052728842611768923033687387498069257961729017893885392016467102563285442464349073012533654940913685292604547947500528252422912524625964690663474643589803375766297138696096339406020772610315850753084518558958150357364347781961764521414392488274112789186097867587883198967141296023244771992295641399094990759684411517073234548706120871522227455733924959833178480567441989956190524782762204458729126120418143481362484601430460115518312885681752248210640008714381781069079294140930847364565169966580004491274572662801678443509067392242735656784618712349616996437978773186802736761132168164186640131210068992508085148154211566896489245855311471689704039564546301401825254407220940744639560640675317258421389528498791297721206675807661265040019613628660734663614506430873280823105839568903441414873800696647982570497615570664633128551746784264822923812621670087846303017514127112505863586355699282835318384198982561125566393217240693500981971064559796766227928036523298893392725400579674354022847516869330041155191413156121922266821712247379648617595869861412732459115303255221353606221927264292910992548480434453534360811306827405951113381594333165369901180924180898623227092797363928282833035867585045057671802583017094800817141424684019056602934840656002553818180321183723576148344678846409343431927627552307828239405254720314283877547556206436128001308063190050675178138774968600464885035016765781832530975557440185361348110074474717328259621231656305913784399569277732289115200631566667522972032647755667322352144763412170754649147770328274578794761317550351545249891938241232210161699148579962618987222621936363292653986070552336044167967164715466976893612417756201358571722136135112445429955468265263159635029616077286011993602174531273533911415114735656646155802341547087701745941667928986154157906598647097824918618015599220447271310890129644593797049566702233592373801898995965997256955489242044922623498498591727138205472639305392186044098132494266090691468577101433800623711624115783160638395498612496548869615465639501524856600963885419764849739786192355617815598716591224023212178109399351849303785087713414812981549340197038790108717344984895451137323314387477898889666316230696846237461378240990704824095571321835431040707972752356140718444801245697945733945753087936974122609700724348529895105524242634039057381034295798067426675877238120756699460562729118701815921024215330285303202528494691176403086610602798088419690348811014945132312386721660781888965460852379114687400197631647355981057790923087011068290970139353290185866513387461784087932879509856217154909498226960759983584832020020693672566558670630503863467459211668808037814176789893539897583133885494849815779242048134683710574752382820602931980360467425744421340333337980041630193918294480236776989515925557826760857191173865490952403958845467068663243806834731434887494102976832850817821688566769134245139915326056047780796636158526193028235743402786535140484860036131121855264428582668028013536453720278048573001014080773007300902904394172469371451890833082551460621685883026383450693711603951906102858670207417920689173026139320325437145934617009718547110001022867642581382438599177638552327950965097204894994409308275190006077367833454766806809999877600049586773861280407707642880292867500600645121559231553059005929908512138253076507234088253326840661751754693716729048353780285492626150699589573180488045587270112925945481704151546767051174657878546752385122759029662475931463997833959540142838865619962377256416082076369516267878449230034848957576734801459936604390000382630458103035806056080248756307990840125431029914520289450316276099709549523843500582199186925775001667515034748450177433086024863572315295498492793759280390317165246445179819602569329317429298853581990553863252264741784481151995055972291224001035531950869002556632715146289808361121762329749825773901393717414575181442369751389353897753057589917315591338997474342395220379814885664537721576935723908804023244319690729750554078921015059781557302661275665927979012587554923677905087535538721847768903189362570213849509815296222126366653672201921106390124468351690468925428167737203417509789773088203443756046400719625325942287099365375008493661762386880731565284824952059591715933805074479930710309389172405801044598066978371812860976713590688311270286346883294417298048387759099228524725222850003539841881800322411747817168649989034152563076924129470252274293291598810004955682422479456691710056737404408669045870263211790131378505349450600769395743782483604330266599058912213977636694274514599115593236418027537834860813367482569695936318501410310366120212812236290934992451250784550067342172551238190520328381480128667936498867162835217938143183402533277089161607688480649737073314117526087910685240574435722763425754416210222937474290666681725409168424417995008520870906034979584457981853363574413067819506539354456385835693258564230077024665625032073990491163387239086565149138517156631525403025918191444588646624928617146136148413296551818699488918251961154853205009774180131097306206135587251741737048671637957254990672005157608553087702704538678660021988633629836410673158345213369330915140947266230224093480636123524700699176038374798680523858527354233603944426490878040363196601589372647232426523766895012794688028254283976315860709218783000568357897471940925233648721419785478201164106240700437536043612620911852485567883785694682237672509388765739946219600628419967526932430513596682054851581310809153985935219266274931155720029523359391323371409668150273144615472744039671766062962786719120834171201624311642916806376835374959189927271168005028845072354190086607239478062653496358718429222004137950984932556140129798184224436047968379123225774697482833253273097394192013310928837091841295407122388756708174158644261986489478323045664333077882610737232637506431769655639049559395906626148031761290152550317829817962453934708298323877666932143043344607707229825459214817318086041309699603065335694050957757987807904488897403907814341275718735537135391631150665725240907019510526414018199047916165876720846714147373679747087166730092374903333534784716537738510580674542279036552210004398642294769378091845299196578688675943457654845579314450123351444466364355007746730978531851281709170422472830288802877044193975119845463971620868695812751431194479167729909089113459808243279249374756919924407741362062088543653182397599291633982340362502236476650007511276841856513459816091397546789693533417767227319090828345937265577194247922714448497605622705321446398985916048161057535223135358599323691451938787504139761548890337321961604069176177607253827599302832244051957148779865422986546017392482129696814284448203949015301853359216185450988822683641243554005731941970369939379244455865026227473343637917850814840499932025580133492420257243483437569712278650757650059552759252148616500430715170927054775822100844394188307416373183198885686125802045854428233943100910273168498707627077659898538453931269287708757647307954265580952270782392148532853334923156123696742593479475520706498159441723157055945367819942983550283179866139362461793440863843333960045334751429852219601879827269697464955177446582512005232093417758495172486120134163002257149595651822462649814120829052329389989557181007343632850575014651450734984861964469621783222268729530633993690863923697245990334534787028341622819597904593765339503619690213550527896479929988166201400633653217406836659704223300013195153717723328256805984249413476783503911132815354155721538816429634566383042259977327223111847780668594116067074898344205465578966508872543636710627181951183209459184831110522146963744786650726855858210212584759884995015304745496567246871909519904475312480597533697510072815265473885532257646033292739676509768964488020548240796662962798889974177669970648343864440999553201627836270690953112561128142043383553567012519290134638710093453955298059540274018637429198643697415213998216679942275375673793084561371619626491188973410953454975482037194025385013205383689455755471069242657597279856896624894278132308056953365630667040012535320805374180467670697887222716923030494918981323709668469979731702452143204837393836659618997909657813870612644133112272279609824383331731011671566936100899679822297382030137902704074976903083588253375559069624351387275399388814416412410786453805854881415843475948072819229476578790814665629313843886375411667570964723598002078469186265910546938226466711289948612348218057488748017638961864297079135842972954496813877040378122079638403597655003474730184082550483485482108107970373681898423501469517216788721776782556290348686526341705161982922204249022691631154885260195447064489209696662247349124850094651393275783655034682198821908480639627878876337223939918394857804468009651190987296556253819535098303645466098082060634711721186801426600748694052708058890484866844568242203258387367200368006775731868402603901562025776086927460699280198303064596133750542421143720536689125108831533352333982567452100657873275789016510873345377928931850332276670903013767535801098746634903542836829456093825535442913249811794697259709685603820434065923164462032128195768525457216405849654675180502665722179656805701353473655667647603989981164678354993064996431234626677099511671058194829835975428288397411711523793692906195849020607468904257894780216125219534503627279653922095394264687293374085709580511035401648084077607136157362332876503225820107437716938984936035382761733958720430998887980469265068595951912945519657214067402181834834686996392122922736820600111618979224115993808150015795912476938463078551670418478378779951999967198144095567887369282896463899489123518326241345240321120426057125182242864560579549519119013119694030314633746337306003808264855407697208434376705215537947365972768326792005763965277107880488396009958934727182721314888217412014616252632814452474653335108060715387548510417046394151740679175521036297016255284673846900084236879479646945309812305382353648375891171304744082310767669133465069908754081863191202423945140636974683189167692801890382891124016066982603689855465142618794825581195133496474528037864785406419546056389777578897683853963849447082397264816150270334976822870930895765615625822450380047030321096848096534871181467401746849041875252318131627258846570944629506990175069787971680661244510865323262113296225361117176946632149881595602728002702951643428319326672922648910904136698487626423702198532261209469794032826712529199213752689566797560723240498920151795015057272126989605112851931345390063934099801206854675094106777943846421762219292074149930946641627463989953833923568384734928389532645074564058874408691681907121954421867890791023030937905497440682306346788574167640894955171229999918124803901296891365082930280402095682162360171790998662980993528339808244017592572479046542476085703559139889152440851833473894306249173465213177405628853674754765955626431154851149859266549117303372229929723434770158062930385843727064646448232420367314466020803358004192000974470532377300101970328380608416807548622149418450281576383609918298174935887882708268922032960249563564979397635197242957336353076987229300327380320188244906481498245066392118181997520523153677971746062730813277051998622147888636268236967183991547733714158121940502495595785318051598639011745167651651996143065366843812162740052971544508136310572341879990236841136255328991710690435174861600590866435900715328684159199919047373702489301269330821646877740703293562877600302069368237360422190418110467758141997980510601834716670861354398715861143527690335620027834325995692472460262677459278106826594901215306776431683107706275737801760108418615492577837335348242815921716439963048909217092678103105196627332946662993862757552644794529230715594748311763309887979575431106042348245265486406665988835479090552229722296614230664469643850807742912533544368998937540135327747662187680572703461615532896633835815406106725565377271572241378287190826177348023684496208170756061395529961080731102506532754606432868533414483239582038540058077268953318964376142120068586243584356388897073137682837936470909901482105306505466549470841253923347380663966177604383784708589422732129805767636995459026207367318981074048704153530445313067942823904934624299867080633834393128409591439640937301172005288193548232097701284172102902606401003167718856489067364298339365849357054505056228350977974878632635682533867389118721035543726280434166362933778528276597277401752727333875550456712374241062211837955994704211608316934123369831342050741907990934735284998762474431870784097435807688595719258427188559585905441083377999558965089237940386260477759567089770479323935627882195694967232674064982818445239487459624008360771549159094970134530270080657971124391702849998569132920050366032983877661565341403488334806443711461135163973717527763821919880801865963544666254775461491568876026240166296290215949590043954620545139344265924576615486713571906188093402889648156789894568269504391620970469112620902646134954221842235837003091028398134152071166851104902951362982531187633487032776798546374323646428570022199573972510601722809786915049087702408953591017016736799439929101694212603003649233864964202730483057728441381474261209451174692789349486487485963133300066050492524745893427499262831949576473334992637224422627811540688085969265191473449047946789900575495941891234945102663500584148000670057969357044839258638008149410944124796913314761501326577908801835020354116883895768340196691791214690440039714171200509138517787807531741754193463370348297825803443096706970566637017089689713301264252126130335114041094695179123526245727031044905312536726080584700682910719074874565702334651774333762297292852797042286907502914693945077619515073445847685783230727943437402536468226541040494891987346134058250624658401051820225355195346188989885939389922353578628005819941381934660535861287999792743143610275860690854833123471078654898609259705026717662524219907659369801369113551292276257104482734239856013876792488805978159998864608335403070171704371163285389017505453049970037541237851769884901218260999816975549609207498840806269503898910125252620491906279884702773206618947123898604173910350348166377781598114184086508063930156800673478348148414936858836806257148009545649448304015663259876387077131411275654816802766345282786413608834232089114468972483842990319694642906744244802782779904708184014935154881286987673762506123728538205020611978622857304110909557578719357022093699360577249374260483590585630249469481448947374057341036797708937438782036553878906498613801724805366010045052359830959240359969020068018316090580910865533902165163646507931439270503923456396955804776091657820422692915967494282573619788591134348370037099436388076675924094853387169651058047714288200713892136850757138031145353799156395360714861102687151945312912277185366455007627129562768877450536850174973988707442600736916930090590021999307983811975760815033698420434941834403494618991169240352529182393197850614021003517280340728688038430453930714084979094076440559897667560640836375894388338511336526685304587840276312680742840070011890017202984463501465719520655969969081330810188715871309021845575568287760340917210063163643489731589056529168411987037394083951744720911679366551900767892189123099149968329155605065203761862191800321528198952873487594324689956214456274018162677422960388142178266727155479185025253289184578241982905162453669195023021692537253696483939336750942354492666812404691583360029447311836884097045597356896842219207652496665235258042221428358318209717693630863826483810647856776064884529277489621579023624847136665198399633402800394337283324673985713353709138410555641944299061357451394111788213646379603707859307687976762183590822174836331993724064426116034681094762366689521023256588886631266004827679309998699398824079206795233769219352275039713723658416161876964299016717797681542694791703685044845591296815744305584519990932150708022787551276892069706213935150143545078158115296494257394555282168507575508910109512935404981003511695124095188812229150281217614985461132739873103223689567246700732415868850433039763643548424204489322431738909605254731901213538272826260842648897890033822609792710650055092042448171722028325044692009103566452842073465674656824210055863299293205178930091703493050051313635353442455692213984286554100599239879034295977024148370781326138812200177322999909184671145285318336055081190980103622693178946541579822045646364255232694250931896137323408746110684329786318705670915048418903602446107412912208800746039649588247777659938001716979962499300295015152114191832604434856926966166628879314524050511590777760647733526566615956879322081696283738415824435560456899287780538474134400763126796968321589422184036552624451284677623255732631356753452344694278276491054017037931683372247753119470844037905576033432561577365847336390154059795859219676337102604340850744570920987495060601467800436401864473823556744329282774259081459763985942852185486917891797367137495701588093895182208721044298698833833077210231446707886834098400264086285783380757254300961800942915247361733377672482289835905533841055086227835969998982914865542246703791214513909352762515048289794776562165376354831394071741306337120352938047567161704730444262613435860954215683756374265217185790951072411500708751108492204319018679504039414452561753484586233063999178763529594543852964110949484239879762927115387562006587458949419599912533491308789922522513145677533854657232031434021456586428049905643583815770093483374968994908381244295799510211666106307904578513177750769134906436136597261527810239160455274444247692738469281539571681081007357360745169568900233669709891189697291998403592048214793671944578253575623896873600513468540931988575209488225395786910255357058778880392058213584316370518002811165177622426546846935992060787417714049966093611558924710774363235861393526820202829478139108019678181322185729852656527140311989655942830217819868817388139866399340646916444606248138484991011519290961407354284417303154491383624063877592397108252455246520041534581780641140130145565378117037895773701607708955587962133437162955249498824103915151930563268725068313096759973760359742360402281819654376585212969875417997416776708307050221399603539484559992768634380496805378494785743914215035148797188993137093203830744970192769311861839430916895016324562571126599246134689916959023828737782361673981193935155298956602353722741490119605769600298626651630305121447868122985504316023812929814098262579853812068896419474873810408788470888966693841416677386965990671955785019964865139316568586057991809900478314942409847411740773234602594992145038048249093682085144625393871967465414541119870435773089553374235566506004188634645349630791000818099775976619037273979810126449652842600276025956349179013061805303912961249124360368556698027618606674141648529394854065449047375617419783253810775105545184022132071198498773484651388444286525510534656991437638897020924710418616619285912275261025820659610688927684911430027765783132177427802000134041214556531181123187334911639508264441819297075144598955017921206750702779689046823506588923691427854749989758905326285227706694970128645128077184677322800439347726803968227328204609475753297628287022717482633610994083739647292953547382011272731486086749181926333920850051867636265033227378520232203914164476500331954296139414508649267818010559148063978273593612981158481071937490604833877132323381266422996375717616391934570776664969327023237828694689383559463998831773346957087935913673992371715748970419773086827557417332670154476762188594031826123921014248773523593523007656834709181172527647562087847483939159176000717999206107519547719246145944351884346545580558100017973214153443618191887550359200672679646701473175990604922274068342670927458754181809201609268761735589002794950728329197497513957212718190447054118060686664822148608096057219324192738362871843510330891085674053955541455115423315946892029275463643622625911478342159264770240402106245656355380241558593083225766333950639231778501359130922062806987807084902183765578003996805707454369695731175983243618298899846903981011900786740690569727989629150189517833645101289535286906970477755208374398471678457515046689915534907290598659955825158362789870971634505095940102990534670171860799671940596830139563859876045177655027604033626212108188119903479448003583064586714161579344935582751826720576603178371626946738901328529168151479171860755117554386907034849995076114190895293860908562186872866974338575396129943123606316748594188327192896478144471627451905788466960244991891437147404206582544896145039855982253903906158406083686726220897061753409576711492656415724774990741913073981049169893500637096860299102911217833819629552132920611255770793974462873824744010758361958098754829592747970588374604036852364061929117176906058685510999665475828282261223582090658830426286998629033553211542521866356180877318060296612747155956883305337550755828369232782718908583063487643806705025238953315480737204184134623935948910627069340621288158662357030781966998760050567685010175906291685398360002647783248932082180163155630026437517783244700472185467529312724020157057814497654616600763137924810276915640312674382322773161345224552034446437977371718222348329619278033930080071241677220842299917579607022138464504301946148634606969526169733859691112632415232257100217603387986589284523078377941573634171768792155113187807189626711001797472730894494186415366593049090505794398297508685045276530423419785648095887892298094407361946198170855054206962646447918104371056524823826341449770238134403110676396741895113398746287796876549145623517510518872808863398525947494387053738557487391557574856474741161797280694721970380913001619909708218284616075237712353855824030272119076065410726298906839633959016544982204299985342453831855287463402264546642018471583776591189260543785192578095676666205109318097883815461079599714046834565484553475489781398795489469712647907148639999612079082652585512853933573964071803026532669776054934432686710375589575727122729184467679984984089141511406193551010588400052137649015662276948912496223100487052361304518537357532959474487838092025501279341966537545947788577088859531942377000312206842704459692063833492037707045602363105049728599579729398291604754489814146945616496058745307923620994240689309436784858305931509484358722223526576153395450385439862309022367150847179076872072868169059444857502506575634692712865526866248415312335221712793981912120509144907462191490255539109835272555889516527866883581333470488819229577582393968286784639231229429687057771663118359863862453683038350017684082480151748868485417786912818789322020315203426960792001697691662949754794072159840449892294971914479052603280287733374366355226200359898181395832980053022389848489042619027591822535238385389843012582524165892182375831300994606743285729971332551935104607952948086435268107302522069301099579670226750282057432067932896987876948836655010415684496695897868210585248837180683299177942366398177036160334671087881992839045841324977440436776206548152191776424954970009984264359109214586480249566351012551014907746082649845477081460962677599922540147157587968783202230707603266624600455632049170550975588445821548032122901676820644217381749443712905163881846861850471154297775947892150737117690718368323825038369018461071873426598194489623169326218038575947921443310285999562518825885338018745734616907497571919025543860670186412934051107904003373529410199899069535165538361711537248647474708718139930013278328144787812798778902560205834478011776497935807537380237605486583664378842056852422110178946986558516959892002610978910238422125441896788435498048212375329907771691833989366852046433980088960082430041639699416437523283874841843909022412778559143898398315768210223781361372499464833866046260569555529776134847524220990550082938954457782078403533789827136683219839119515055262300417952978833315218421269575875331848914876843879529577884993610489410456480614493496147737012596048835557067518490598720838113995589891281533838288783015435178257726222457894115513004745962661030782566863984804868265306340572320494406585626705376887424117568942929583593967489799134937924095773742132086206889740934146427925366206565080652224514522226642836797209610298003473768637933954623259288354034553485858251495313176018779840346643019737948603619228854316107388291405198166738653656212999501439928491328828738757780658550705513551178998808721788271788379370849373735875836774718035971414126087705637204214101156289638795468194729093195899083998759317159180748054121881729208462133518437550542711325085940781800088360266452796574658068973465644473898923189927968923433637887287584671553343039740497357343833981799740755511882478982757588382678181058943522313984698270115866825812725564207315117741151382830218588382959047551693773406984628262169191899968426645568677766992269328888419627883372544161943592747534715300861831097202112782792667478028822757390933181452760352160346294056571746250269098877562532673135083495879750459456272879024381812393774003843136413081407698463295711393278360367796988824472590694807899287296303283566855557230337349208024119802623971099333411896710271110173108500893418334266179243664154668697768336710660812114340477966504299424924348383062302115051833816407132743579216099238418616785778241244191448529915868057507222201335623700090161464372212573995537094071008166050151220019606526029857702003175340883219471211167790466047767941092554454684163519311625552482944731432665673378674671964398845428553435070482402733411184632611441580353825378236521132116241463268390032662578143008821646650042259950590547470394862983204280803228588319467318590848266427808170524147408298669850559238159325048839801136664955871280039986793138082638673759102343836442759352553405711653096502794507211849132300779361292781601925714836359152286497912796500697177100452330915131403397045722961326059523483565026737309514847371484770170939788727277254986065834620028913846817364607605785860384340530292695905024506449919180948817394334097197761647362874028711501295165542162720389360886347898726928351034009634765881374917777392158460266317507458442001240833554640601996023035901567804447752511809256283560154085280521996039357820642750837124154981706826034330914512862140326504154359670394109336839011292690422668811648329578846380716757333516614944191124333585351266814758277187931961453355090048216930681430362009476246864203995738133743673082942176418402652199171942506301841201987915043984911150986678654717680559868947522376841599013710730360799733596562153920416735546010337180181950031122313857850576383974548018363777694439721609289267954059288841119748513941426750755147041650326012130055884425681744798921265636896410150738742288011816358557166430426398441814847854647971259442271742672807163874167759746450397798155448211886160728207571821137211935286984195647535340494013391640349855917109179476732733337523233820752778458150310991991586773512679098497202453225013832056466500840969447929785512027427620476752087714344870688817305746198373693087139788435438408057208205793983958556026635899646017834354539734323990862707334801550894376235279732507630265812653140543416945487824095731724719121535836964082686886501904063506300667282564326952456827017191981887048740304692617172566573605189199933384898609537802381885472923218371291607695561578947286540085166702110072015190929617573319105150328450038691027492157183399398609468541898340939164707077388386133597663239174870131211968373056947664972512050597889125006867820906968489043733150966957304190031205174355328881026760221598838005051610996567213791577890173768688247021046339013655646474860130672455880961873436316967974498730727400297563126787559938631634964280366623294844037947729121962409778641293104892645963764575867444006226866512144842337039672211908759100354674436755536056243383339385039841920074632140224528814530892908967278012669826981409190404663302624342877439808708550216964260176862056430472262593587420834402144344365321988798404679852637633163624056822634280062587996179868482415973608055874720288069620264030461648535766934983012073423228330050772010245872816529865415149444207095647860546674446381526600997205504345502424541526754956602132880602792109954629455250105138848919092674707968790976861867206182995219622034181213861243325457921485033596805086602984416059775926421247072828893672287278994169859457743025533375545339637947702021480263461898488432473825797589115479664781858324097594815810440078109027673214234300599834024302433629223225960053428605042626699250145561724443211493638921073702684806053296850742392219874616522977535275133916884168708451448662407626175789912494183330892180313372207341919340988313182516549690852772043511171609029329142824874595447789551348944242925316159313243163320185024865053467136048118029591569961168633623514345124736987470587260942690434777624311661342555861078806858006308796597891443098512076831831315676130383965487558816154527886739922816206637442914112686025520823450602194571530337614186168933825668052839425895348067407312233194177067691404705823783875807944048987643696904524648298155744590545000580747707532938092094123802030203542256814524083782275243562739245275336242878608464157401443826974992786915189273226222376016804864211259655764914641057237844266598613820712817494686831086103353310867124987678323234311498022641397058061552034466221464271010045007625853141713814704655354130354493051701569014124917538446874927628896945427248629729736264055295346825096955181392771458809836663313624179948529623361315319405890077474444039029010940141839969802076719442024985747151246739654476423851715229237142245652011270906833758917365012459479484023862921201534201599046399990349960614525504370305657070288987729609807572053470501612390755773061554948662200590732304414340070586035876231036542118280154753574049097609284746190481154727029237014048239940551903141122457965739891700719548983521620854053887145741914156498204362182692364265296111070826659110710024470526132375174022942999982701168904629232984308640671032740414296399781317366201095065319675256212105721586591983473903564015031379298755833056473469334226654084872687599638557586533086189157301894870544329269913547861351178389094397398686544561438524421918726810333046651276833358116659188877960771084495633901062158076563141407216170103187067600203742583380187910883865251364755065501180203256921157066433099840258680259473577595828337276432173540127836612648784343700045068928167732153296477512655765544371511557769998518458923253058572846208257727678415027974268722660120548539269075064747107842839253711179197859560971532335779614507369774359332342411027009083576776504449040758917258029160676737193870683403274278488838555252706488808208158418142072182562305580868582273366331929364858022359373587738727037529588915806692274100007924298117470715804455020027341434707572035966559163244946338440140092819082115741452809981634431670162185785969068597382805674700291188061087338988972521801255187403330383580800144803463910512108175194962885563555128303393002840208349548162088606603292030666916797881888118121555261241878619447873560434361906991796475097725360571321603399049024096525837265272805983615389222638561858667093548603160944034798124694695441313910483852978596425340539010533024953006357184773254583876553856134563336059585092517008510856856400644745504289378097981899411281548112306820026811469872443416278439403122387434216824704557779980275293862352414500957930142691386431988941291183759019138431366851985455837127727692136251198875052192260133128180738637221558904359163725664536005156609711920842427827064967694767042314179802066839755689873737726529720472392533085565197214397110160832313187765095644284601212374229461788606263548720119798277198372601636272899668688245052283415377229236197511266779742595254309145114825391569576246738342811061697721964194489657286009929480274013353458392512890802862364911202241184800995126027600009753380839963578118170743006962613019687308324238078970291516507484573006564131991026954775018549054230824192461530620839491749654559164130009006493118813336629027947969565412314409901273540873939229156726042887647098145097923309438519799688208603785368889443899933590466726852810410358932254518450965147657391616060789850724121360432145006935115091855854263285838135192960510834476697160790275395950302744280644528924626314900323784406635611465952022172607087179833837127970415399887526778920003278608615279460972136450692503838334268046173455761054264612678421491171715332470875615204097071697251060793205055034524201910719691741644905031740867368972493339810549379472665174362034796819920414502375950511012025868100399234624678619433855049041739019778870922214801846166052655415855174832856714714093758530051201416240787489568494586765574556708765737301201356623820478190414707752453959505365298989800523850437954206985446915104910074122511298270633554340406613858678283837370093433101594722871675496407172450779563806573288404566179250646531887299191758505494538437749621649855590329694650136129407869742238569418430205261801644020142293523539175181640412179157679260836505842846341756549752034424145369259164094789955146145457096983064625195702852829876839590872111509661824407620458650358462341203908739556943689369188204079501194683691465824049096903644609100018384774899188874846809569051632858668745092952826445723266026093211345122453595227297754612402206383940239102610276064683058719277079595168702057304800818986858664532809238320260920051785575185894173127511145342527871784138619859458642249451319346109407904201710993584965064585094769788740261352003038045506328616960804796537699049899618150277469332016215657632347657415255866802194210350312719496218131612207233056526991729605098435020156617847363861119929333899550460013466398729096357516289963906877081537892166756579372260868672283165739923718776777544713030845166217756643484742052835828416111487146896701333650284409293721816092583996122074751015462707638273708353967444770325828530135793909645970829251077582468112612927859217518454443517287214950502557078461954379915165930610551200308186974005134927878375304793202850379558244471027891778823954477178365441858251550241113136991490602091048898028450754639949096429653504933181642674093938241858996216213812787322763261475673131797948710115586847654806997655387880749294351408324515812453894357891946914466793446382738084386696431124470841878226970698699477764998497494693776082736985362359199430331762280785967353775070190140016672009640018948385075078511980098154490417040920278573646290286129342369709987749885377187105242683801821181419369068918725511025244777367200560963437330470622062604837780437844384479224387720515749903350833025334380676598923856078229023246284163511982598930384268084746373001923326642293389443324065713177108046910145130244018149591681869018106977763811314959422361463389820174539805406215423424963334841553801465896268925776235886428644982166873405405336774177449215407542787993993073764162170304380981647795168183953474146272521644335511372153811852949843244828952784717154393981252633641787776163135456577774635257426826355165073976439354091622222792975345240240317908174746966807115544047423907304195152896219798203124996882793758658566134213755600458611016342072339271641947457360404630001410998166926628438534321530269602973196382897664079509988045625725802581258303555728606334841847674798659207058417017882222892720616792931895849745900110331630077835990344264000392861322454860205308647915666187372960343762790573479169366954712909784730089675058539021803716577836827204510504682115905794247444467173630059412937841114659736571867680254889974966875286104541450789654992560188429450787623591399639587207738291144060932396961370538392261560208711902149954036728259496939406114666502562694855885043130663163069082124735326191813732679203704546943666364844226481684904819653316541824198686344134647104754801521154227693568361601957814878033697461970960596357793695011781955565502288131247513061338850720642088810299388364805971767364163133111026721319153956609750109385777851159749623318352822232903934404537738059152894069204449079148405469735620269682085625526018782492907014143270092103402919017892410620381884426767009771872432313292879986219822429287639828599310116364548635980329150183674649876231379911199452855571597729701958878412299595035630118792570677971227545792719231916735313386872953716738213140626404465488390559005285307842931666544174032445017734044450090969419760093145540826044424750255194676656445567693231916211145951877729964867715335809140434724606505889737007364465015385159197648506604357972895740560969080775922593843482969331777882669497185517309551013665310530343339731451632914233223839313360931853842051644613067157583897058514337258198377652216865385613459409867621260267368202606382643993553487328675943238610569074282430286993959144748588241765045238129678676963688215490081462230938622793275132316257777494670792493366551671945659091269862502232312386751682881692961910635587504531924075079453966437622419023318563634181588971403857472218513740112092521746076233615996928066860617017606546970129036115603337901507488478533452904073051277403704677992623685635785918180004379758916760221522678081463724445952125503048146883855596387493644726485239099683385947537129612236726312728920550091115756018865599610626956776667091478935737378411163109337212808868883853420291724951279908544863915200948846937951345829149518973080322403503402161612931357923856797540623500998091662042657589665131207594480617659244968784914426325997170016421316743617483208572534026906061171541011204216706157907427444913492473448455758766136308195701605262285663429051733281438940569568723281187290827945370022732841519286983409507253856022951821795106481564330895343605681649076119209803788265618819417093562831247149552066895416989977693942186849741220589873809772433717166892093868098124632499998608358470692948350139824033458664352231140378734984292180742924915308979997388433414393449765252335806657319048610927577315483386435169354888220681643059589317383854025078640965904508230226267340101176653749254708963085247242805586439523221871445210479618924372759004284596791880959692839498963026177098282798822316854564478002436207877783762854136048615923676812822670369492245101585315017421090230423153656174120902355663395955024649818489738459271349211118235151103155081606382081321574259417503302881030340006396609165700106568607066750712256012721236142986234476150670128871365379875341063417296610758975978514369667108056967817569794253031219351855478489276328162372825700606049592018170573311146275775015088912676156365360942551363538842390239694956087695400891475931195041551961037021442579345438631103491838520278693628052875749585875769879152619530954758665292250968292230036876115033791465450555284925473515092434130711371075829300796854038447534183973145372246719358410883618899322748535974580966936735559223448423947117610294027003512445492106108399989068836375758498240555284668820290023254360796894978084710829553586400442830157695802977815241768125964869914995107035373312465139267941618338317041429180026820508174912071113097412844630857130651917693631400692307710049868986176925940733984191641352499015241602879372663734084117956368251886129458113425986862503033681734941595990931505677611724419502674592890278118409926682968650583167672574340252438855926335515859193038185667850706663539355454473429979041517752303269593756435367664249511644573638570286344589076171014943474510261701282723305608323520079434206578311179178789976539765303932341667641050218019663044746197888999237017437811541801795380549793833045076610192635517254411659288698599094369325527126123790718235352994852259203166659797227738435356964203965470681877053950373542404962588152387251165361254789317143709815310635100198597845302651535556994748061691524738836391470286211703105978970615458310013488528207516696919966538506989586397390531289659631041760667010345903831560962746936952199424314949332879581427797071165367493518423265947605296547912806210687588998452694929050875643018463107460433835687986958631429697552470282245689401642558007930465816490674929451859789833836441225115726885239425306770962623259981748024081267299078360798551527111054033771992255765293260860463001753356212881895117284643463024807806239335025034813341525189930545234708904547855696789013394932251697167664970250251526550544054313293984870177171959123412821338028498225718353909163751299520940729531502496781061945372696481131069980271420493346652944864615882203102939314803008641237779713344489447901976661912297433739659735377867224529202448944176181817649967244493885165017386620565636658179943682160382287734217604346752074215012753484227854899491256664049393120243934802505564897489123289819733952903992955901213759176482485922121396262645275011583736905096422244613017227628032960626956363254338483891434891393251096842369887075051676738313706246992834085416450111900357134501210882174158518032987369788350560068840944666648393656548177509650066358514070392794795237285741339707018105842743575786703536467913908535694791765907032611775382334542594560382252184517405266365378344969813973807154231727039068538814580654523936939377812112907592490093030723406204964142025891482720830893243344774247762003385398676934025336236416026743185061976792778477751344302953005117943123876998032785553492908047055816665734473873733864735641556094628979842764438498704719424254422486995553525764856840807790017852618850242448046322650957015399245709933540919682238524426783530940675727310192800528890454108552417717156420559982163114053805303442911688261886023685073877570426741274153733714683095850415497377752122405327262932386496259446600996103364555768040642918536597151681734127960523578958890208808676557514724011650803726233073339952935579001583741897406572262867500503037861297444426049797960369345564107538906387936451265342368051275666378508787646663517141972387612815431698008343538347552909555339380559970827192006324373120490615625691538592222815619723545794675228559899202044497870863891658039266064559378099091205205871281594370857252144538716251626121143966349022746990695883260969873325184448146713493191960894898079545077616997981956260915983873524550383124995894012455149501630589482557691915987839484157208120660764076533283866947188903718245535643906283299850894319805161496520140836005031678164343661382892880979448118124781890424584012439718655236083414270264273281203259994764280564596840228052103200692036883199881837016311774540925459053066919101940754601648040801049382667087501894237560724021386066317665294452111609252529737920357221300578058091365405604126151237767963988400926352384815094336876966247254021989375028185244081128885462473617784411832069243975251419715926483764681227986452490450118826062470737208026213348584415634982545573325912045268972364177100923316111111636642181604534196752568974886829553444586960279117773572369277463185784381416799795024133027702718943376418507631957548115281659197205723768945630797317738432964554768038232105036129028077145873743625492493732638636741715752983956849211320542095389801182919991843899203275517971630885948186010606034561087215342102867047962617530023260271929429493859973466275959425305564826886524845919277721318971399981395612088226850111121465562117850552804232871242475875043845271699434582229360833150685512874956154129583150591770379404033912461167765767099106341504377383275469511398948172315303411404880173716788753175169825127862561294392022880539569255511796634786912134119490816247469801683034228934221568857740642957456805915224007786201256887212734286692443388469524584714953274533018530672125028046532613074954578177387865877567600897845610406522921129976453091752072648193913616401000264425049063102690287501832056432631252109736922795255072913390948354166269147236169313093079779824145571339070834119316045326823384464474547085815629793849008754024172887677474425815013454606128959786494703782182854226256050080707772855227174750527680884634763678814850146081272906452618333727275152765561867891786455922471577566263865292499061831032577233279668583928456503351430389563658872499308966861728575643964328349877985075980371103192013411458879203363278297204575745938139353640570077047357464753803762291587887266558235943326408978895874025481823461708559445125012062635011482612682591360305049435968467195304175508944335349946285813272063403312644287349101029098960516181266285477336471747548426478815737924968832197460676478672105189759673989253195713024643857303477841972168719456378696736367618940240939156311983693148337759008120041118063616943050761274358620405271723262539763982408618649020785928601984530862981092282775375382179190058725527165870413884960042049444116186138027745091907206623236052369676673342377111503803256734540430876153026821019551879357309515042316990473767796871705107765753955525864614423149421193583974891806082390001930343457657481689386262436806823786656503520006254812022388668787364819391117652905059668669374675637693839697901935142281106718381174257978976235192961940154126180971196773436284708485116128558818486679762143741851996535439647613423260114009303800021323022423573706447271120286903989864798520988664430097799475306006788041565977637205960547599408021938573305741956747028904685616088215588991300446013279831689420630890058045595576662273334224462194862430062475242139136628992530516551251577019344122919206147351869833268119137574160163555605937503502877154220848300631130386344708070748815977784579253942100773370788759866397600306013310451422456423001767717463098891060921295956713028284824931178899363264488146864351043531702974293619132616201105613131861185176870881821736546142016982771295461263530006142885134527768904347622784070946452650149476437466842426070462329267175759636005003808520624581548664232394954859698145240077379551210446037544848717505245970753450046138627941684194429897042635053902319172927604772201455840118570655092997385008144738352445215139180364167804605532003883745406036048846969984425388123930299220272899181202197790893567895555172064841822390423105623407101324661645350416763171850610860714287435439920814309182086631445862862599457940249104866406920264309779948345964718084031932429666247469588496687933800806631679120921944289873150932792943929261982475385797422960166590298626511010061021145175516389018802619414657304678360111048703541116159265591505208733195586882808172914596055069140317895196316265649794882388179608642909278507738232181945541825141339173898994326356015089589410956924885001652065190382792137777566095765944017683374809950535786501614128315265034171034476431150714008395033405610502903569278601243832872366518039371810185121251779643612510961898157995614254971745440932073718862093261840492324649078455286292863906019555186207325390134797935805766149212015775006275703924599418656645006951185451401748562096539079281018219597549848806631444551116464790719508639675727194148359096036387954442451848828713706345251743098782211050964922123819963849130821382549950499500420411576929088953437419025146218848310598625798230009625263636883406676961969255860222688286164274622485090291856575943510803019675548951177192489729922413491086308862894459904563264955335190661351167456732133638316069174404496967252024743656761634871758977999635032115865385426359781758520332520753169432819539643076253693717608563002213597689375342669961008114067086564685543289638068135549501406835146611531448773082734683603829309756544258042594919652891917909695896585817052499160117019625093265385291827438504968049687781382760080309086633747778448454376048871441002760394609279111595276056586869337737362891640016075469407748918807093210139462024007702568836295129472557955326469734065243695657894275973115206747770649512248416275191649339754324279273561303331876228723374264657028367351726813950955511954287913048114970222261054395085117470484351497029723379715284692915759460613351336555261437366525999320444617782396550059677752029140074352808004998791091930858755153607575656163052283288432127876066620192999851114306181775002883660622490568230513959258163324583638568911102345846905030775615299461935902002779279747527356398597829988423168709147745437283394910502332000924930563103950770379546817019673185959009326909624349583374163687027998688228683237121534900139788490046059317747224265804552590227755855332332997786721683735022613409277649006791544580142701744905461303633782286121394840493475970036837266010496646418323962153685772762161736141640671293236909058959994456336058343038728564945262348421751733985647960670516457920607692351672800441327210609069240735848531892902605401188485787856381904265293364741243455001867463668974289176991143112464864960045992284359806945524749245345059625177022183107966334739773838303658693238716361862520656603108421017366939888915217730312011597665335652203733136539553067924235939893887628138150639774568510175776046962020264721189237968533227446912724007513643621200340485777606490591012393201429504483772273479294385784056976609843351764163406769862815633546031509173483905331641888837535188396189202893172669518831243655903875853624174446164737792202388986344923831220142941635096210762334052714944181659611309428488098744691001478938112798602908845997387841336340448896791368993226092880726246618037302812373507834265737608956056076529330652577886411731532621494601383760484871123832154355638682795637942088034357849830655089068158901214827711550977376703053688930887425334740956790500366594346971237087249430819643891413648223528145487468683029439793377566937665940775469642589016129547372307101783060648488752542456243442351693720333473874093139848224122661360630247306499627121102361545016778030876809156147914999987525234079504629597376911307464570613658709917356899494792618116230717694920045359797266381312779081131627740939173602725260044659410227480027156126186626122360295062576079335128103144206199763113107768818395837679654864882118272905318622295525764358506971933675105403043556726142364171984732597622452009202435915996397463260619156825466922855230772779628942820546169610842155245915809840333795624419397314607330783915236292226762708208004536531919331947362528247061059403174719707881265538246599518490862877112956386204896445795970308007289982295014091637028210959873743786078220027620168707025802720496304323592760714705504077516930360826594757953128934208072982104454470644689315559900325169581182007144389470405955236532625120791148579823812964419828862520782966667216609050117106307492475789167626346903772531142293697803057288293806804614170452735491004523629637460146142199936040816843108740037649038232503489957595142686287676172798128919014572461802812977154281230088709121808495230574953400945466976052503516574777433469411157804990175350411475215861932797781493441125592991683595692046256911156086453347414718956739153654982372680215532659522615998664716922531525866256525867122280366836023397487437656541956399445578438108879305682728997108017154385491179216211397407110202849360670151103911667271976345533196857337624638442932121013255045089826878867639181479481978927541974769420661120518094882986147075188293896585640957801421498993718719389158771504561012742411353619632740972444311665998812963751358801025164893930240629247977988034737119444603442736793080896819999063239579681681790000525634679269463353045366128594666059471585684629048614172491550446256591699680178983505773468198104109045090788947123976254250776247173723940404583273053984229297495615021938773443922730555422509595064897251392785840258222760993275649354668977211218694848801445226126524764462875349198087636606567767643641052665667052960466224768728758718716439795451586727800293364261542474824994086209365377295234629216190009345221340368959115612040673971294583893439415693881820035116902428608677651034757079987193682616785986886424332999847919586577527305577488312765787974632843541798822381530277779088931912620883610986733945224695694571270826804841832506618055237636756849768017510125882201938998655886961358320732089224854649870307351399984648076155797701085292610247547181874629190597496654294747658395533323723853505138808644909493464193472398757097220099294415867119667075602530160513726483892925084588891198823035207918129985556244152122146647174070054226049791508719373570179164125087283133215874122957229096028269396788294666432937846242472858220620290707339691442855178729744774183575722619956718949183211351681542800321378681307819973945927242530550800136167289074053387847170497236244238255463539847919787808134734479673342460055830104906620377238647368360806448248904664569854127588248118071882001779602942728759438674310425620447016090011191628638667797704150198509026617226328260875078725196810011793632119841928829004248552062233905384213208411648518709069452312019326438901209750901667758763221325336044348513798639362062646209038248739699796096519359032797576836977923243131986062903283668837359662268150721694475292429852654536787841389867149073926819572357546777846346654354082626831135678122958516879719122601714603783147968719906276707921454572712992442328547642869892815435766793590745337685500659367519813112615383625003551354997089649953296864085986121264938617285145044599597907456585366407527062643686472364639519268918786734112870247413724225521578689048032911912420546954284699640802042456925483377759692144955754598548142446947696085104770036458298134269788002364378717265716660823169568776361173736648589520727483045921022944085358815015590386363075548544952665005948313124095453360358908059175776386507238572655908942711580440160384781113196169300743208570535170053131805805855233030460492693449569890092388177621324723218484490084517199514292467071729544842858028428004854675788793063264720570280391966695904744733679323231727427425383907067822467839884074695735940074907258335888416817435673445122779061775412987143794145528756086691695736344283873006693765002989452648698347086308285362271752881705963244204247719900696215372324715605481305515716850480782077451096458961655068366414895338373448628700705612436377740666742700994933694383459225536862260845412884074588974369788257698110063697537832634659109386178581967749451522885272708310688021505412337697228213019709789467908393686945280509345324398331703576353140292660557200434115243248306069737856173639338584442869649246763954119023876288824891704369179237776900325034036794324497408113857756339501916320325299822832040345000264452499213746386656589460589131855648956634096442880548988809211273098344300112412096056442542875954570381128961245827502758199085496667680160099342190450827166027720204367278078932631521067686177910886946338207063689306885651754863547323329698652534518025391050275597535732394963737703214535426331485777894683055494276051218331541952804045548346646142301490934995560216431151139251349733442112939903892786107130055990388402742135404152114520894184045884396682207961802558777527321068942653723394678244495361515940795220162336623921635460061127469134155829554666007676809756302352350241380414352040747339919598713656677316054188306750756605158458024268518168038080184404717209130261393061236801127320685208219467360613199654962085131387255013654424326651455435378326041410347569711278659781032670096048535684293280637564834242619637040689306822365717478549782678058719170943349456825246938644505619079166738946708120132124983856407902025606845869030789194387108249818129698766651190889318046527917184472410620213217129990489903433379221691492724573024345393352822990180795088223549604876990456856525385392118940252378062428016734225104987248747377595489397735778205501842034545408309106770435104686363110048786372237060689541097642972530336403480538658066097765489574387668760633056987553166766094044485587614004362279607969163877735444452501435530675302884724765590366500125463234899221019249460009745595573930416464425883362211824151553404320061000530944042266988827913775069924850540340550742880022412442595944557563431322706705002582842319641831793679508613956639312021758084522305256742885274534951794432081950692979047346428943212335675231228289792341593945319960638256139843310036192245774766610029711774918269647960383512435967804679013949543904588815017418165715463451906148439045440187522230287606699640413583069326566543982613920352129793697269935264006942793921510220947937572158243659327268007400894217868737657516426581078110654602595300998485077647368815775645857172095950366078647945948574651544583282187382803899541133433619736147634760556261848891190674068265666356234127453135888069838934983149777981911968996026263370114189034390696183670087303284653949737241461168234132151505626008758139631008025018718710285543876892902888277069692008964919484758817749329111225924617108412241854567606752962589992762328247123537878909790181720250930070254222449678773480088472871583560784244789513038648073865728537896531110149150904749601682883347743853227233018205081273937477252164024548823116709547154908543089292234738074542264784861682338537117714377051339731011237146559823952000040824981671337546926247440081361923907998626664153937300320713922791892726920350697518884191532881289669119550680581740359526841918215982223348783478182323510325017173463179270315013725082148126742737156668294448220618282797492278339962261201856135790324768227673778829174160012458491145498939137089485074338308815445481499974115241070869873885380328386956641655960865753668212260290127614975521331309609630688583913503867646660275983042973232921649509966434253999984873994031732421099254817361781095771622567203978155957754300118094056965848287133830271016374402540795666427627187571440450532819194003096812383378956661609569266248734316519078851796482764326170354874197772457930644455917212331519089244081230081469761694142427839409448542891231113664586631418563663112071796945532286412487755875103727540416106088275663030214664819267569520057518234660180728816306387038722394827123605141654013792764359416133614717999925892659013939208183121754872782956101830208930045472956349439591666258671612472467530772583886099881634824836572999174536659947563946479218406693871539412351469235813388733619202769776610190737481096193055393256798133850990273281876316102210390084488316094365202860576956169853859120552954326907284319219197614801426018066571105714049229189066545306659047018141397252688822754044891108202743021632540316387766272707423438579410383715495010199173156857920282678938920295065989035130099603588339825851322741107094686014984166785458460551238022366710144089243806136103646364186019638117674380181207348432588689165390568908919921252517288088052505935560502626334244515475816659891271675053031301125935711349050173757113656051798965766447722668335748078966899798095557230663816222495974453265144193812444301412057860676424948880017258602128204822974721190232043689726216115015647722849272635726370480000584807577984856361009631915292434116072173218650388560791947938967415746310796809481663760315584819311310777094145651144476773703301610776157248828565596628081438953776745212503912294945782518826405079484723757807646233655870826735188637686619055680858724665441836665386243730904862967120021558237381082094686002193693054323224098849695216932205015332701189785395053232566772986280819253969063547569376594444756436801349778546359865689244860127908934175766532662690152268613481629084936860052000117223603133246978963331565883978818369897061853993719654013993598515491608348510145315144301778373898204025511276570110861434338210746544181370010941724801673536751550601908318272515716262999154037751630801148214960955244389828368642850282697285136297774739168551910505000770515803815431726629129840188385733468724293642823084147166080606148877099165057137593656062857591017431186592542683633757889694334577710006745285356016480783962257298705956428645024956181244414531739585283130492911210985623700514027614777537114978458292447870955191540175572773109494476269930450724354622986963622195143740888521514403457765403539037644623554077567923604308157299437627814363290490076399693655043721399935663868998471134756713701017255086827973645366257646952885918786215040055946422067559831500497409879614501302158960484839750271956791549090436966177981527587493067610014323961693737270777909767981562763894990356895002548375282499546604327255647398626782908723781120914766409697242869321937943866300359889416791954884272183240495368856651262067887801936960138968056043396142219444956331463822375763305188613012159267008460887239072371623724821924264001008441796550742606671762986284846474338296817611729533543841410142253553621236866143040095478321614701420267252502336165518167731786413316895944538523717940490369493766883272742104186063187294126140381261484541011969812892477239007326198339759972990548783834502279432473668171847022899944436453801105972405450125556198753199887581741522378604962658008108403496156014465939294250675625940411960658161374871711984787257883183458560101940094919653637837224657383192370885645012949444350842793723610438620788865981782163869880111864714366716030638429489151141023748045746278127570120780060745916620574172328448035197058315677669703791387778466190653176361220957890395243705524483310117034771477860384636798216526999395704272852752888424527097887298798838388415397727064593264046424999866864199523609233489963004470814809277239984536688379544595146000345057413612842175180313206158636126627342434762149567824729029978401350627715960501607284784390545758750823981207355759517307844131333673274463509978435742477710160792572133499015862304954367231479889625929566041199804888984706460911815621257727345078516760056478267125092296640813997655143742398119831492261485145795201129085184595289728391633858389474937055518912343369447111402116797819808469358176147374293736900235145662173540320288431390893672388658169167129336527685423049396773625178680158828278827848702492118868075178647821668250890916964758128094536255368272751195517422568469124114626768111453797025170460000242255704253812514686105724556230805499186175884333906606317740446377443479165972056816369151301574509321952550989599766006430447646699653010035670931094617732181107614860547552433429956246285843000324168541175288071015119523921903597640496253342293487080963485696300529254456632286369957553369172325164943678215801351574360399549884811725186543218165000461622085149254066702635918158106346907690556614079745895011852976545371699379950544660542464972697730770799568679720517154097426168356658801352011955427302995257697910872509490139635644064405703042637966004415734027908156553786913615469287736898832920628601075480165846254259473152202388166979380887222561319671120241537567112544436837351976096527027410562731439740972351395592466724013967855652167244131424169308708066305395480404803517914394149753264251433032888546152300921544286838629000954095193771338197661859312976902056687544096797730478986265928854822778072602638136827833739610482496614371838138609752641138252987702723536050582900430822722832634232238037942242831327626685250188838321008217657580932528077654525590152533527116882243658677480112430594017357762758416872943707085841796438089745484007028565856357926978860955269297503986052537158655058558009058241718478802102379759241244047359923201312998751855621690976602485511370111825018488540392146392930097406991531439695924776395378175301172884401104682238056096931262451359429528647815184109331564152940486394259019203565215226412694774672049088692763174229446606700192822886385955450264491712988829233041398002087192196946814481265510652102198065292480594028633338138558858808163349325289641095548787792788589569276053124981274252246066642119981452884978412834583687647877818919750305191966546929061195716069076129077043606908137252000186009094071479752152549836875310880020678278409365425728302081325148917665712929415075626540810334792936919673771498791642036770156036486473385947576708991297640138372422158489085612409228701725913355329346949363939168823634239028129921094417363510206945087588224768829657202565888414221252030033646062127657235995844312040585885431636532155922995013306775593265461418983149725593866807509123572061698542877802255632214463686334310199458824686365935903579678002210194631489752906296592055438640680229249215090911951650222240866770878069055419029884323454919822751397874021190950344448015734932531765622917946189283750620078494800395256562301385300004786025005299537903958624976427018188129709454186168611070640054174720248091261637545883446214305901823375854681365953465790760151930985295095138004234967188582267891687230617424530030278102769192924458072155737342755359518276994235107190011512625662711806345602505001598236627337439159801171955116983333522515307279014679719909069655834626887644062536384498330975178404029505480052538822734395028155467713948831868057295158004653530168887398452187930377499116534227303043449287251969960288977094714620369417024281500861752816139349192970126233780869174535466142769668104021506024245964471660223660688718524108409778084435035160687048091017803178332206465663280462944981703275514891544697755377064306329595164183961791601262742684440512957333092767519686353349252147983630183250666786810217591450427767557145534233209590255964949194901289007382336871880862321470303363225241057392941819244108444739636135177925795163482052964069755849713712712152218030227014455765696339014848363220838996132330811144149490640617858438342052880018179557967126489126546678911896868149947121503146309414221113360627994727082603003094403793132606440001000135991520138165234604739348505236336122805692142224068936326432585779322455455321112889569787436235603023503615909869069083963795518007845999911345980243234597604211836921697304157518958236802345439093045398974826203385602466659632619435541717784714062532598347448727272412514107339805870432220614047504847775146682890680478467670687875337458786663045006493289205170456123522808471583097875682212493653932336462652172710005726061684799656462808904825918951142776196427799167783640562704861175778269499307121762978097341068138052005036280083873789387858559780685377452411847284306865454492620972111076545578409666872099457055468552373097877020425073337484836173210457132287560595503646800659397673996022409379632542102713707975839916557855071036580219977883376530890210946538359958290316417369392912534498427021288085054840234978941984531605099605838541134863694924063632280780700617593953679690164364084204298498685132987953931010325680163121746714866093188902524833030675101079753143662770485119727316956488093276370117791418078148532097553773274588067098719044872900088869599918090537296321417156413055856601034525561803091703228011068020563478524364666007476958635998669288431112056261190228867020378184493618587205277258264371269823900399336293038863592585748940108113250541337393445604306836552289536238993505258985088626278027799922374454839410041904309122386211081414891161918082042138190391148765095039773975840103992253770546406747283769412700002684600732534791336465973218217922484182378210717728096054047949780427093844815395990012999056529717393330785251072767780142829162093472461159097583231075731707198010394774779623265252687194995158939752607544222412153079519207130316482535332440189999563220433842745403801577033640908853365873408900525272616816172079475323285508252263426213438490104500069455297490981045422505187249514811185704038532631662705943534802493480686282302931110735558324752393015050137535792102193257651001455935117715904769326972238047176108749127923366994880553433579810391731252645464082328301914791144956773623544318591033126879788990136422411746610370024732090069961921017063479761822031178905159335113307456615951160318515322781575147123103172785128660922157683713797624471001310795418103072805580723323042819118149826006694797069993356650110370186870373110859287078934225292384425216448968148299928711609454941652682567190159958173079207022204329913494297248616971203849316330219159860107481414063392393709088790408341421762515020035940473834721969578835201604233424700876436484956830214317110204528292833860492890031799566810951929053966229009932517511036947020527550130343022300500323154742108515163870080131504548428689678112745808533443540301839565605002538603651905143855766419635075477823076357854702735821156112541527190821190141483907957319175138043471828260544991183491572103109594488540485939858774114339005532621744361734681947380516085297339438489809111576960058041299768437696584185997786103940582203500518699030513635760719607947262244766814310479749626516966860500521657972110158098327426306614181865926729147861737124720273922072567188861430238105149955857033695606044121692728905303940704979499372359927555479354527794062714682128101782554334727937000234088188077398197396848548814650420721575480405064171253561528268814588953438444635349460027693006770624567835891752099098153607305651874069871698214462619150682236119488366444134706854518036229246936817989868434906747428993751451811252310556626875896039627600590778645551201423131644079734053764891251702567798098687162288933284579484357142865075970688305122767074558790242448962498835203489188681302014432403108463381336480132410882133105842826990214981827897780405383611095772000927967637426252791224373611531278659296858393541428836212237515374795224267083664979665388754721172970703593233160874253770112607097443064281777897089679083531421649108927000976953969450704937887721777741153554119244398027572293525777833945544433120077931972829956750512488252677756918771937989112193743166631328803479283099949654807123567374029029926984178572212142680766169135484058205236753995881476644479635184776147559754817126713525094425425610634584452228575919885580384833294109787153356354792533099126945898078683561194739302545909721821713485225234219849000699043952409428815590347141260767964918200059963157260537688797198203832195135653397299609693226025181594124544847299028077685348289575065272782571753672123047184019840281252037304752795934536238029242469243456837369014599650376415321956269344821231854504624161832503233543163827101461272447245932893450039634134288626536463943677766220818124510927630702749685205160546146412099200914938729131038432935274498627572713313322887824270377380205898291515272265148613926412718962847385013941358411126112373226932204034729983746999520200232867104482888235091285344234188351597108617600800201667816175275141083381742463893155146091439640092633790333060766065762226461867369229016185239781732093276414911745495505699763933862190390421224091400553339341704568593678041886384073623257698647909932021195429114893302736591993227882962421637272099943492074779035643063613157901778633588917020716584228932965219936052517709953102750392302879257273145466708342180591123226670316021717836913173850467876494900399110009343340124675232669036478899947811609422301146305092628842592991019755332882048558345039297533276809898596706421016404026492473545102994239556809581665913626634234682891168895335385882297992831561295611559575709611935746276031597112164822084251490062492308625208291387229177328703565152731949394301481178194659630278235423546885731962409415172962311342663817526197971949396853254095618516736616649679327130795580913280389067405028092856686745744080198208914866038160794966675587155529751453415669244361629684208774757350777652156608125399892650428098547673940417960810505092533555777586013003508072570768621429193487244326442883587754421642202355991794091439576370935680804727685915348773907815828629287934520460333669940503160563993489865718871761673059296168790757431430105274618222452832953897432769476617693332211376281735852486680376588490440898675384332493219341160297402328352229781212731622711590136736381441381956097745133969921660626341635494275519992869924913990910706842352131249406116708741187107264512847211990745239218787603993043668474601452446031871751878778860223705341877557491692343497778191223955518588718837164117382815305323360733537581942689254897312977378297798474138557212690889512268824092427959482675667597742328933022533114814357978180263189487132167029086257322437762927833653681142686160915845046893178045805049909638812698643604510330045979325090201970591234679435537201955106426689123108748045148240975347181821197524601298412072052090007970088268953814162458207873166212321809748468581269779645809745817623298318087204313625916830985778802283912200411784936009569930542963180805206442250087868703516581380888946525928228904326482530223995157224495265831755290361452284888490387435853886770080260343649773160443432431642862309715831812149258826502848459166755321801950424036615971468375130753855758316554173024171132308050493904919349065343734041446205883261202868936805981582486149800212116744794347424658816788413966365590099357570045868246405552628452875973016842460139527638617041404065951118323777363324184166648152686041899944325045772364912406748897826660103837783952002863196320578035272845774256377746113728413042451367022088936174316035769478110570543319424541962441242040038399941228924017433946284288183693700704448895924252358913985976853389373478870130023265761680683219528362023424905768008181178930207078119578675443066434854617146312609477381511839004641616405392504996560445565603931352094242747072627669878245699491405778930663007714057986174514117460085982236824375007709200580524415370117652935575270936374812766201661681792476295283077491589081959293032258156470777191385605123463602239045331725496426753700660463993853178812629799723403995680654894567994870211623862277579014577980284587381131151735494068943073385203881733640043199515328380763251535834439332002248252548059043431949656805523037812169766299721356182201099850066084161171751951764251389018563757961217001113421487266929197013355633038369821359479349527224979193491405090256214272696762728730572913197816146040996066057733108053070961224023991233469458500470683997491101986537587608710005593633930783961197733382720432172721443289594077052329906757614224463440226148040513064904488669697891509367048721039974326182610890012926724832845007708972728449881241354718876103796238559587319364005072089436248221811554330348226951141808232645047600971311714683046120319821908429497120051752502949749107905481389462801690336245332071084438889134771885258010421273571276056099364030749139524027656351304840092768340852263749043403772268406912725082726064945555775237156900905926943745184596661819216945684643835613552381483628243975931394011689257695403775063401115415021202354154871819496627770224284514502156996080417608150305217681710041352525662425800776787923871518677014589945472291481479572237988591387922806791984317152321515513735042886916078261899817172207243173474467665936214828819662739304733506103420386844827593102492573281992032727936190123996987866711187536191866680262708808913280545740982784921101170560388631492592688819763035208197514537817047061331920156304986537645175633832564061883651964806280244747576396131729725353347624963067571993057296386917915602347652712054344649271850568868700613565401007888152334979917831393000502243338147393511551432246121947989708470509914139694484588933353555857841834782079047787620088721795943918376440771496616343458437934164472176311105611185773096304128463114563349721877000445754772967576913459589680861632072359676668313707866956676160436446564172990208778939743045303634555200111254747061935080292138083323564533251972890892392455009174298281815334742219604022106276148939914388941437736950430742593085767480407828360672118455410696603855988695102264639896792728175104175280386376405135618636555868797142241736890579544180592525260639553395500603835875772005562415111843550009158874606914710459014813949930801979537596644522172645683754671033729387073365320573619625335349293435568786646189190957997033208636744284779233806310388492256368046949574252571411607283518636006742682418043918107983429571793823661896224447485148114392261393562275765661695552458868514849067324905932086949411875181721670452608516352889195995790547016542752393682096152209748386163844142814142459334688524547258655485330084771413841101756538608892014732940157204824397468963780532409925867745136855247439094721416817017732226985114334490218237827189119143342360412175460899066476388685163277007017051788608441950172345269947584135024732186999997397030629027629216773259143371774756893136629700802758358167339777129397294455923340747188706099487625939379534184476021584812492031840920139305014596521971704911911465419900971110834014318137353121889003203840249916133894784992634820495300866484365949733280922425549875538021703431216101406301640265851993773687466129081655819135524433856386337797847712143583274807879412714619747499402835419798974104394414608029101939251612048951128309794284816094893072051346723976601779097979291366167244947173449772699698432750378025813821569255479279086779998872369676640192157966149957246862540950998551456834601106339492600067835757530761596035091906389445544721034854320559123154291325674938004916479181423551739954839483656192343451626426719528990820831303425242353723263530047705650343995007712327915758014176770890525681802602357755791321566521183035250579152401765279924318822775041939876569603072273725296573588282593258797528953184218551389487266238663513238650280402270747200759567550211232932564900701065750826861280780171776921580122752861424518642950983110474513986684193745381554519663359270643877563391971564561516079312532790436738543283813152799940520526843450487528486613710526636916650103223150663164125667119509660172684168478808976781011872032797698819040591194501596565726409339920069384733226095955014333843582915077234456744632340057477992406108690696583765538779827536916462340260129061972382167198216579426644275994809918080111521838793721126412224808410968981798308859842184447755400661487185446856185430219857914446353920009373838792954717203808771651044384422169941425303294686605667266339172835195036452653539584411582845829019891302971521466966876945533774269467824472223146761163485727857463141004652834958237493808576803342448866467264527255075435479366226677185519517274494850934624335306405867585111733027163463069708615235904052090777384225110766098487965008033675086716290798749930916625211249636933589250850531806130103492094992492935606760378396353996757923955319047760753843864567764614374590194851413750203413171011526589176852836219176535626427056302061050034310388175392685314849301728911420244446848600730081491671123312684427262476768979032377760311030625540462143960166531275792732538864536632979076231490323091219842721947868494538730133082479469844420429638706840262958766435241241293762340123393549273308587293325257480747364553104695058026599065124342881150645651565493037439881391225955662477620216939046799627277823288679029498989566891994951282621702093226007181863430847842182802078248756253810887488140387217395990511894239168614518108710006917470931551740505043071016228596058808900269338062131115021340715071221974949505714690604996614403059319922479672381624268754171191251158047974400877625216487641625935040069661932053454259056815418159098752457423589336187945000673243171754394321467549705781145763784861328122532910710095290099217774314669630784997476501171040135449149688297055121084176925948590707881026437692331296593670959262719890219223325921724717453774760903095530958387146491282213805320301166565345412220252752078979942703745615838883013794838324180635532494654373341562419809522088548337185166575692671870805239699475747817923087086571904113461287661607423226689265270694454698633777454078973822738204064234936265442901117669198628475063379843989883673058116410886186590039450711202524985801681893021294919550978796638885794790278004618123747950428356059876912127701987892141606818728863443562876362244186836932492535758046909458157317152050123921186141808704577769188267113645003428447223824298337808045996925433526958860694051443083320011029678252468388432209942012888251628655989473893385565257157684098453424008799631072140666539435177719370826798327202572955942559382963165823841749700510698595790715024644848928475384869315281202394772630988710971147486391653145170394414101113248015983111899571753325369216413188411113887945234443705206911733480264741601853436704689454881335461669316928019648776422018019654989836278392488062922249512260282983224796973033357616225740942284039930945957571000751688371704048663039386232414177010752909943206366319354033502432531647748551373957325366429486127690086597205683348555590972663143929742778049537551503432546617438916378585277808226354728788439074856100633533684862244834331707311288162082772450711693540284253896809669914291193137452712351202985242561210504634807427322487922717950519844608789662296343754950338542602906014662654525436143295425323471048936365010433704217991814361682684777607097383813969466558273368286352826627608383315421558414794280996542304348672884407266363573269480547245192444079618051460491849418120068758685614149487827110249419590749698653116836112807181716974630765238609511364246822886754663370859608748937448915658516921658907328324218657706526663841599322186330086876746612166441937735464275280739843903574540310760317157519396522820631801580985099307989672560238078478749666354540512608754172786813423752025715489906522323055328813317585855047784389253935923203142289996603689736492809268495248131912007512947426152219778885268501430380879077343189245986988802027620809836757060985650154193361985764141107483950456211054136635775235645614569285310435631092000474859403492743948310164238341681694154975078268532952836944932530338194470888732181365802289407513584024717009886084942913600582580069181348620419075940680515225482393902936355433998015274236120101817015757606138546953525614406407176306572320903669457546231279470208025701985061355827787888936842551287998956299309762229742220034232480759942218989031553262785277688040420349864283510386188402675462153398214284634281667927713566432626242404945164135268406003306595100722215201231687832053236968243126574614258263239964012197952471933759961908758911064224771315303822802694403741818589008517691283272703645590162489401682372251289160160754130417424037226629675735739685292735262181752584493177985998822329426540455786867289845908309567549781279369448598993044126538161501366197698061295639728229490638715140385993197519348432396767904597763711585700647109208507731655910319524509178612087876516097714421393494592748043432784597993763556728936853671785950790950330886278714222723756698122724690890673857170821461898273334825787241902859116572103617334404279702794414896000224601973917931937241051266161658763362053454428381752653068216778774879170839945690863407176407779522656086388132322464870256760833804609795692840542197959346003602841261105446850900728497589092794840406542865256696773596030734989186481103026511238471070450880889496649112560448071610873707254431882234706712088404881760062450122361874626604734115283931671461212595414069770926051323808166907732832646460498323954761908552231365799433005425020304408917622540518905171068868506345895268504163617728289506227543719257545148208335997754993663462742250455492253389255305880093576182199348006285099050034044818952658083767344018478916360785433071515717237210857983488459354853387785027266184318872597089609811786590424653984088772989525337454119157876186124436882148504517216929199776104327855641058612129827212851592565981311419366365991297738696314738291539494380388785069008030617263761799896606793906104868110774987497939442193662775418874480415473081161035222897424812815889332780128682225285920956976682818561813196624123461580333879109221567005565059228802385939823973632579133464653984062368539457897664762233138440870662000379468149532848559730610674819644305954132512791637031151964741802917966340869894820987697427286717005860390394620923060601864163087993779525176258893314251546860339655314049901795096190375072836423397638363721082276048159587840491233624948433538822651751390024081808206666517744897091677231891201863935215190590750650585124872244715898677917533889265820452053923121901597740623301142447271726436751283386791814736685981772686400290205311141679100213501628177593875216172101125134359385829702867510120520120859472691622999605761065541475682222181069723267738638216681771911047013044056476168049281609759547896631591464136107155721540683288037088698494319381580244225550123855345886279771669503659244860435275499670514567848557254163604771287928407598883713603536862541777067687385781426745112200632268581717684613921786353713044647782611113827127052011091347248222326194215778885508814362794453567309890236510740891822445856697058575148496507266526221461245412747204135748320652746368575769770231357216446061292877270447962751434706125743640288955369907634425749274015731500289545848933140682416489379259450723024917909128096690687699219273480216374472517576047935588760826092183059585049146138185323873519899740237227786456484061026585343247095925743680833105578838185358728450341569487580130513382329599406472192796647154337771224208364762744084018294336353854586537501869156388339575550572336714782331035314117118966427406900392929804873700835077025274007644920767226256788499765765070805733758606727496005523679234964366747200292517970043943400238795206698157277200861184317036421787740863018972746972675241053650764986007021496803571244749583893153735088264962196199533103657030599427803462878630999852218510783923836210286906507038827854255078535573026920739145716782001283407038848920920976972653357774631408332478449636195337895826293745604429156037091224435276431218021084968705923057029674282753381907848293739885717930840586107778254773100726210491800872825202366346063418507706203870406852577369547890664356581702236220533726971871416501184747611377677834611995464004787684848131925369609511696843865507495998578146794035590335867535839341174005053757688644867039785515368289116673610066117146093053589108634324513950045825472346272812040208758271860664844428820776828605450103305022031959683863301456291892573421447629525455859977405001571884359326994741356504145925840969942976988345237266215677740856439873233989614865430837407352717328454998100608105185545863954363466629146058125870047251433773709994083611623923717050461760249965546035759953984415781831828331366102325790711354644662845608930787998352578465907181142125051589110504277249235076169986552461252485097050518763609062649158605398574651774287206339671446142276319161306513963403417907732937446568064394159251300441089770561551390713402502748913105381586763892645256145704622989503146174482834878374091522743774844806569935262316439218411168700970996891993224445425374657717586937016330156614608464162615095281625045391133244848890360692819065046083321963469847809254419837784295096510207390692026219384552506511658886171285075451320073164716239389905642732247629228649438138542662515435766598788220243539896269166190778331512129079259038648719990042007693294092626982982956932293843758971182797150142199081557697625452800995297085176204510062647769969949071548316511166716091159452991357556154660514678062852327852413830715596953285183776202026239215585532677020084602031067223252062051539189243430061052868272096669670966422874209813486278321765947064319037344805461476213966220949197982397478893173534426473775050157671030159728317907614323757369520743341181703706077311674463576172596322492943787798987745770842274234339764376058992548538710485453579740402616767615066360933208813357258792001216066982384104499559913045548407476759950470140603204456383966372008173776776000524213478332213047111306049174748971810389352516169467531417301907545867061964408816962039340658038134161570966437165836457149448869730657031838914530666758050585355871632492128432276461117964069476818904534101188132949510837611839329980437957113287709783536437038586484077746220489696954879895465374271570547065444071725675457947616455190472198333635670835047584846426343974158093462186858628540225913087550518383660324548831804735740666981598241870516274213124388334783831687008583015435679556722513476270656963759288682353910266281984748095075452467125004260214101327367953599988965219262632450331342715359357257857191228683308519417549611855792332307795474259277411355889269018207927330168545222684162873444498519989048446886289931996502629218343243239672831171750332438675775186320388196264471726884285694254128359083062580352057111058811525978316567059001025976201818866853733429921213828524266287969223539880827994146730198890566560429045417696205293871551588837472441347855697314246127614287920692341899241757924520930352079019013589874382174702657456014416185485811030970943180286921716862481066014160519288176398291174392417479206454588901818731390991891202850357070915501212270821142398710471887367089753135477958742512370991732990786279823963621893281046006939918228326040557667103799958718156380663091798426623883441426401177294753457501932598008509693762687158729980171042806913830925140219497843081612679885619552386716836417497983595918537170557454348537862571057619039714283600810208941223611533506194058746328941184206910431409933507054896476398784601504352343459515145766656287197651367475645193171317450762759551864964388141966696399732958804306533483029640266851418136295013975599106636571299697097903476292549913533537934952922343734591019535067166830475416715730553844694516809436572539684599763569892503142045328954950843921170222278570029454121794459946305444281952616510889696085102699238240680342707872527025174259282507421296732980259346952807648610438397498430671413267960706384190921370838073768895310513388910519431318661390986164580834113053345347957006360795352064829165831430088341875307580134917470117461282860258467243922233537444708352728060867919574740320495562834375044256344941572720970364216615122498590432640177500993554852131600776700354339767694308677928301231879284223120602334139666901903800665653383118857402433930450401413413045806002008384203576105597398707870571053672576382032550663181952770051975785553733501542435086953168662075517141011079379690983207128506729260034433746343181705505751251762039460096907647762636868829915725248952454428648775295538164300771047986420553692633208052463386830324247377693101358954931792843200003422453688079089312608660649326846984340569694554030096045660846563668726353629856540164770036528960745922538127384420248996344862789633321115694547106646928293100782496519338473276649391028973685934926187007910360060781134561839683653145059829744398841116882052453556908358681442392410335454742700205614810304510991207693574143183960063750109234756068749933700778777631661903838510286353107342172147572377409755406118355908256490753850919110503248885666596361872496212077566062016602715445083776364360510226516504180612685780255669503797393394914212099054018647127758460018776769062462094837057441761474749764124368126838975604604215454559171196286814218010450321812520921978454833858041058092245058791043119432234931268709525915058871225471715738703954367101837579866027422895984805452144403598296805825705744057566618237542927459354883966901458012706122061002406600625220607156153527847922300183160145537629866688002944534823658699748607090374002701937199183232616605067100823620105552176507304809589276316341419120032785106120990347959294569767512701867990219032910109993702089167236228158225308133718649183504648911094193731266291375647920387698194910999753517081547460359111857490960413180854187077443449992547092626983748316933890450386807060096808470583031340527065368259550682223395272044954058704559960031387060954438103338700901760135798720933442159653442369348038580086614222123659385335220904361719846274575857415233598696073144277494302923159405132557405928079714428924892762191789586610051688858945865208321970293165331684673473589440090833683321067796215578300049443377917825813800801452977476832376769604309492250311186072262303149999802485932776621205106655380590448870112681519726232276497871217061336637697556264180135356728103411165007059582804271111249275228763920041379993936192608209807856801129763996347361654986633935683033158767720902598417668843346616631893070327017364832414100552495013406130537139488447897598061231043458590640667189685765433942150236602114159870498652086331350987421423424555726339501847836415837401217212076814437679680207289413002838223558981788138406243139812172572097538073804731887360193669327189724104458527235076877977630794479364074608890594529391399846192833405672360786355181553735359636258031598053505988972844121381210617979475577145820816753945485851569639982415794373043741079052267992494891925462098440152597277954169459004061767332699825280789383368930196093735444926542657068692935153302476929248025986110826264959443462343595167352832555406737785084898060029748210620434348613268625003461673497902721549991051687824441162946171164975612278699024611512127470392228815528118313902881085058780511419285402955129409910521898962922326158793664016830236158434220278173705518287093227567473881954208281638575047427479372858568934768461010473788403220140117239613267731783264394419765789547703391126526126672235598143776764766099313832276325021569698924710217491160429135859461619573140713504505325534989898435722347718122914658087730814273695385222295871720835311664384036351148139727589170526649403646353878912523315693545617183491709256685070385718597781944794534363781279295619510863390211317143171568040897709884331086330519354657858052070972657307359469178604181318997314904784799432150865497799202840971705956497520747794306391245117206144998193646347704612508115492310840548786007629987191757496746131180116144398608741094713083352611822208138980518083501863851821876650432935568961691742265144349827387193603998644198958104960244778664859285995563842458099685810807445235430137242876957931961319589684514124469645297314119874155610797623565079980388897686809430625483838242722136068646407514683705863880081746438541058752734755495608151312465485908996194662513026170740569988227587380407642465738282797439378096314468379562628633618858594431776991209698668513994102067410596377307565188878736152532385053359657193858074591344560124799519486450293446324873400030512055818859445521816607118522509551478644858954922399137579762011327695941743087675870048635929054588077450874677620395737733698676225997120030404994499761886267140711841629094328363119904997836228974753131878441811742341670761232172219735859361237170960633250591250915001485338874958023424364234501961441549872728194187960595486691208395849336319786918021643467540865016846565090898787354430896534428498089691553418265170394819662024513348439898391887683992861737441968891730765810333558362366080006139736774264559888108733592851414636580725503685585313383194745653038637936222948571893786130190332934853448438913517283450985442050112423710007183485993089850062197525898239107743973294446308547706269958325387432746252557797236883827555323659261398369553256837495489223878380776510347362863359820414502825598832057769952460966501768863580731651012050218913143817543561423565310962565769231603150859892324613788678476378325718202146591984809961517890851235605344383954786392947036528773809960869540683779616640786377053427497775832394591101266622226026527682381130872346389255574639432152126138670053987420775356289265342664783429961060790441145977304755271140343059637789684820738168968440037907044080211781260165997705456836414815458063354275303881845249448082635613243764843681559037977129549282445474026665803682864049833971693518303262979687919005492390073253704333062092236876714057792676779272138602392128383254652273492266536782891712536458513384238541700304996000263167354817633002075065622078592479394085175990699395162932684750393954259982390859876546252229083315178242318812152399452484106383089746165121013030632475473288659327731333506441319660207777947834443851051795670915749631335164239154657030009725043816859397906982064286493863574062010502147782195648769172127135622463932043839625262114935638683215273690989552277069574629933225367070165096921833347717710045081680921418352124072088526592060247284852574930847426569229822425580268290466492035750208386330926565461688392487095545341872743542719455348570005363895470847851968751401624981157997073239509700571422131166269125257177460858353482004168824103312967000419517231800189984298044131373984406375920858353459563500235356838307666785967394307798247902297497532898218405927400069145028212602422916181332408448217523074886743350820614193178765881217580116908471030319344536199052904230602872451392131076206605797982545572319284513269115868946325361846238036179461719491724744662167446194867961111268510064292040604185381218464836526401615346651661889307002314237648540253630612684928336895476545629241074449762047402768003714009670967290251926362593936369714617850053667111774704879011716318854664567263821619360520023354729439382569057062923672435081877374840986479664188561445226823392259463032066060435061797570180910122785836818663700422428261572378461968253753357112107494056753696038903054760375601205358326411495934976249290550156618023591068878014378893142913492660594484097739499675814989550819025846440005768589018919572163828454534052006112140605792505217953196533050097069003991195230143176421484484094747156182155999596645677353578795269736300973259477695499196021755142560935685010113412288098728601411839652190135001009595889693408499162586896751383120918726657579125920355154998854137207180682556756512415488416662359139103666987355983902364394441113889779983212091596039244056189102184691291977506227150519408713690219676532305447341704806419488069135572863148448351391770261130495288545589218609943587424172718765938743971035079005611331420586871583032564211021253212592034460612541722397337509992404315245927970430599882999765435496935311352860128953056521324860855348973774687841528645968672397968989693760618596019826764122804798257289379591326085860880691737824280144828336525091506669086069099325553116498263092182845690238577248666217322125232974220347865692292140920321790318773670527327232924571182093554975105919268605959632437153006292211997949637213300327598385693351290841885419251780319288796157970999908400934448963251303662166599660233861848652730680613149029737563503075713948025343069550262940439343107397875620393286353409081737783319094550382065402300924016548410331328071791668040487388598763222054346961574509465714110082332384927530505872871648195417711039749319848969078436989541084923893346908589023706839558676901318632514452667963417320813401920398678769153414770689081414608233220823603416190692746250052025722901787276870461809698809846188706822758259673054365011407555147445795351637201582638554748282288387283890307057542579657323793416727264059395898752080697756779190994426601073933803307210811686801099876062452136775838924897057859573872340548141417952409520702036442117272796251963285673303517091618509890868772253891779894403315389330408007539888021020237593641630334339290396785037008462030338282308345699792443038021900943889331259146972793208718965725422447178086456373773943976457248032242040841489090175668000601917966638423676538029059904807031617800641161489513387731189796868194244896990225416021392524213257530561982275696132149201271785549600430745511991662098432009379331251715242752533634957650275002517493828230360020210515801506187014639906857596121427894959372085718049250488357999280587099567517655856854187662076537620585001461154140783633668355835607924972126932545899298223006553272526080274596689609510346289179430730102571737061454423054345243066166277900186770181148862852881932218638344426023762467769189510715284740230924342077092104366917833281561362095548265372131864835997273969443041287098780036916698488306564716092100451259372452946429226097729873715635001254161901028183491269468230177994234688130552547748662380665417134773417919218415264531165343385146731922759575863579489900834636961647751087207993620982867557012525718773114751412151231574281527045521377393453602758885348367072216269425448302302980435101029085613589774898971842437400733145612083660412277508049213281801597001800597999147779868967861298008502683350369960582460290670876235477421286909849377751881173236838439919645596085774895909197246363479123070929030047540478959115113089744935559477236851569171209916931712793934292131110634583296982464017688010560566366547927334341392759560932710717590784089175703401637907530141721161434366731284240222821195611281873160613210661340859199520070503241547382363478992925683093013012959612151781754262378399599663732271225774722989589638493719106173806120717923104560773784718606142270516308932504295883517303262849988008455646156987973296310226769230601116771857286144781881653299881689132524083833881433175228612317232154459943724863658046257288641366125649556617486287847094654506923013597296034858898885175802832643622610359519426314505126092040862312688205537604330431062823550630357049697887117792645831011652686343544872125943466957350430973050645112106045443873565678863506998178592493919904680237168023575804497450992790116574235407328759814094360657868303232857496754940992985694103435435083734443552434099669069953660835937193086270296033146056645969711513898145849043500686278707437455488635096972346399883087912611553790560544292521195111451004981966380288002538737513833309020601866390075496000308481850006788002990155317018443807763390185409890506139982060977615021593933364217108404449765532401096539038337456487954032129503321702291853495632552302713108899500845909380346848169792382950770622085099197548102178717122775141329144902408802653943019888765344548613132503199269240674877761275234192245758365395077664943570120252506299609138245592074629127438420291796999955047493911963429953759319657398760385095046494037336093238127590629670291890067409537011172330122283077636189113749504118070095852921637208370338591977943093701248937916301324619694719289275031681317372168487848144731707727427069424710815493203786486810396762547657837788789037243941156804543331929462526481740361187320993479910318849548641988431480324252317153841066090863245848410690617228789821659838756091955978923968216528967394929994912352967686360297528451630943624783335547866982707529248583032670405282441691901839579861066228817383724292246828704690670648922916142903180437297371366255040313834105142363702879931552516617980590487858649835539053505260039805344840308593357907933829439552618465730908672104334571592431782734906689769667796198997366814011649686262716557241888425308641333621190338335885983136849921107997702163995437310586899284716261860530254703981162426331764193628751553994638247277468449978122962101782189169280657513316901348072555375095247721358961742930475213244849467921396055550666250993954271855662001450154890407944333995233115533608805806778475361424164797631349005741719081298044419787855735944379794339822889877726365963252163987644914286707836751933937319786129329206671977352006688286904967433853567062101256017657584249405553548618801814842701479497326556127082742652738511428397208738145653262578290325449715493065229420891089337514505579266865434705678702254171334684556656980528015486144807320178793910131041409529368621191565750741017732725715201635384792735796367180950662147557007297515794814661325077014558663565196122207364518416269166933830300795981619459346286109224003673276784076772207966955246665880273811073800863959482935771776823558016257784544716692782524342944465277559999205221903821826983555077448716071759894382313736670455807472950224218938426091245111731111381432027883473145019190486503895351296622489792680936580865489844583246152556612433199203815663070153484717305097711908433875970776078234011248653822425927145464246175543054250671857267732474319249301937035284569820530149602320479899154349103836501135054182682874610777903142753505006652985848927509680446762039710455780766318111543438358642237943825664388702635465414102809640486217045218510417543735193662283140652874095247451509197618952019194928343046029673788409744132494154927369449112251565241499441903677044921542453456165945636470461826128065829300238396448842453258570099111980408058589581640965617698400408828006149413345670588733820774037262536716823070904677781967023457520649527250490823250726059318503694995713452369214684170467113618720627636482875433574618519012881183616675775487408475962809505340916409270176840914469919983914957829366035881908398527872646527531014439848840072546689628055230365905648259552673841976660701223202455088778359847650064875370959853053281970445512837012152197105661355010216310521077178773889615094909090058321690310730372374178642957656794248690599959659166730473628940982697053147392535857971459460078376564623788971874088424788349601387314926059094811632349845397948549063247751926489661122278441969470335411777770602873990803049217091229329516421806862026923541879596084487031648027132913939703839578969523816115060574747896085326484396936808776216979330328982521635771200785550085664499368011109932837730175608137110740624331621082137361652224716256172707812849331923491351888569389031056380691981793692342567185147765982351658084450578969292726002986719818450481701267258783993788132238226342180891806106664265979543721005062123582218401748019689045241389828140218801312040440845239769690671819537762729725762649076686493996382827936878461865946136050554354311972845014694860604530288236338421036219157064492991270209939303112239836070022155775469206285164790521349683822492356522147404953126879998476487397987418716606621459278159998257419044471903563553668717891540543238073625054593312957438308293351289732288539656362430375044165099970087030821532321184649031110361620954501760910965541919378095706150208528436312648855456798660565164407233413680571505852639534554034710873318458406998497699152659076982500597196430166432425270783629902276636829097901255212218416311482431905680792354613326524343198910042909700005317997382206220981125435160479707370796673871953762558287347853740457890307437870692854305318424047017067996659709543522944791480102603454702334464356086326066536295836118761919194761538887403639410751569456172447020211150413023248960446266877600874779920769322034409190986604018191431101689982600127735739666001584167989725302509664969586517819995812230781185549755370758876458500160260380442042431070638614977370027734815124268155502404124037667315864002871206702469142443033379073465848835002444320867624812109240442856486987193603742517848687173865094634391580503695989700417582766337630625502075103211632706008955712644766774066089756872849525657780368783062242884564357056199685242563280052364685759950961326993873119480670823216132725082423159043505041611147350513619260668163057799894263456953003839505605116505618464391579472814520148547203971466683437187029063675956860180620269636372912191638247312838275981614987153513652625895469893956452446882826552523251026211091016308469573883733895298488048406137646140165402613085050738426717865845884919857789803909788385677981386036734697057073209658607932335200489692316613029627079161593172530547109236615729903097974784280050116389561268163739592643487782348898516271707118569907264888445076238462539885635011973707766489674766443976676725139006886423808899565949776120906403245508142412284691321362257221217754077026485198366018224903213283061961978034422954207601225601645484670526089556218639708061941585855274610645978338111061020242606852838371987685538062035722296993794199002410016132707196232524700190727938710858391628633262257514331697942373984848902211277147186881592690713585939790807237129398404713977023388046292824398155240316555463122885219122210412292367163359334146410291897398095333126084224698160855408326390618424201725971781033882591461579287372788035294343350792968707708872334080769480625942720247782708155817563174683765443448891953051739965619096633551391746589053574307235787128672354556717289293168025589703735694940597838013749127325594914051868788923747474014822071200642757957925544473163264530047639847926106079105836400773196044348786182157361226861755980170747527307664849821786434731571977931399573612210348981198012815536084172396654614914211506580624234067834524075345479822373743395045914611639411571031337571538094913988774285636415674483272511928349330054234639549270812948277205365303074019363519840297925708594736597187265048261130975768301560740539318467053558624619856860718021535335853199441218852447194144504431667153075337662316708808088483041156131351339607140451814600123069864936116645019436210535077899139048698773425972231455097372019391343621648697152869496419010036190338776660357017806118983019649732458849203723482377462568620617004306048719507072463711875198298507143874430974381914653308611050610788030660576292901888671126002206692454365886494480069217898595968523660343533953190487102572617913889629541331147999113513706204197492137276387088992689032551205802273458419477055936803658137272996610990990272102927847884816494186514357520535869318136376673624123979696956287743014202786322711870554387920268249852438317602802819354123850465005275570252242563183416554002706969265962673887051827503778825481504831488342973583348737063470244178761434575725417174272322132303870704676137139825234771507690086973319802054509657292733668806368367126995373142064825324826891181207146302612201030014054313268225428309515059559629467170452116028299902707399156686675778281838754935339804653473102110701450603211928781705201496356291068844920690244034208839510665286751555955097984388317000278409363586801937633939060964806578325635664760318777866487195071851673920735873676508210259579451663972983652638769297824194431073606565539293505455739236798352152948137368179690122886357078917676499781064630151257304133686676249652742530856951936730076697058203273138542650724814560086554519263515394110587604689307452685778739607769037029392870613039713432743076065246196480812375197672381251337273430386163847516684569156537012756066887412126443241659766640897661643991356563850723487980012477842766299698347212148253380051335114870737589118400252787005920279748292228685302035541712517649308235011161368949088940059167563704623413817003991924387229348983967190192493335130336557861078132862341541707323167107236949256056002468677608216424238251998552596601580883755274451247717194645650015850606721374166247509027477400751207454478279035856692977148821786486877623288961953412145406004547464098072702654194460911069893560796374904778478713823237136903708613576029838767745132859497894861210886438557402593416721876766740592395287410594916136906025715383241439116767463076801272173879071992620434311448790784582961717054313384674135448350767086410773972762129779605905762400559081884184720418877622788170084260468415952875877829289840861098659122290931320071766251600081905767410777528252251998913760423529092419647270402056654034548433811319117508021040309482863330184184788355299630262961859680489189517077749384325624231859767360963118935737718671713751397200271305889699325514031593012350053527142684983089844428618146975965214087449817983728614150019047365478923770029346625647758325443978015248156243556886138047203100752180295165817795117886055944712597550224486959784137507994950030660021227100785134272138574603217642239988388218045693934316081904962240729102977147927213410823901809382729831818445690127071044795714941658516251728321814893535238110338963194453861655843078322413484167176233956868978805846083007768262893906720625070365815395412835599334239913871071958069343277209982649945608166338422259781886091250916334314338633919274912089344633145298207509247965405775432078512236318574616398641524337735977969650126999598924331925467539090906666688358835280193166234764055288702650867225373897517439146018459918573064856575938764728036837063817616595038075074858277640539773883786230125497129376193446498283428169887010473407511930638692416600437904902408117435988681857401745076300124274510876551992143904365934128911558433453500557846616399220183801327415906898105721323390627207812137777672134085696661881417697479861508535975978653768808532353288557550185475845413556800809596105421989117585331067711670618252234799257483531942606246252164029274576232287347263612025695843147609770018434778766043407147007925594906848957023185780048845592414384757960307237851907600200193026528738402934635138633647617718890843342543839650480152427231961452242265785878061191658320839644182406856521508170011099311868475852481848861696010536200301467461204439264018657073425688270437204079811843593302161031735603796538349288055011767387109147681202296516857130617298597382769861919532224156862035840513517973085150441299320731245455876065228718136907070362251703102597538292625286224468424060600952774986485407188940765663942458210906452822019204201882566248570879179868393638419081026051416349555144727356507715683246648171955910535909269961695533578696649720604829387228555141470336629003117434190844066319261584954133436733672950655001334298218661505206725934180099609026480993007271538998844214677660111886576729314133374087917259115197187578067921692662315416848790412232498457595483487671135013292979662311206552411251258658395670744870828892200019890074254661767481837541471516146541227797998067005258456439779931685739498482989654293768474694898578726953139817604677246895635320097116327693192343565146298322503308196525855109235910608688189672942909681735753599022374278082704267042202562077744577375169789812980264771788143853970165218820858978248035279519899336574450071022816299567622955097432034419777009584512037300219652700574302799550150696009841152114506228802480684023004744093972512732868839834263584832123822800897614598829102381438723342410341693617229415312007976360825526309443084612950466940204484352342857676586032485679255374060754299827854864487355193128200347551756250000235956038258359678416788532919303963430128812141003811534238880109468122207345879868070899302943399195655473727951950931458028845541610336883772144415022642803721914397803400188089306494967429990142913030521187637811894171605642665264791430297819513241726207145635554368731675564598178626829809334458456399863001701365368384408061723903043606592841886675046033876582153080030387552724376434873301941197477792997502172576871938245168038595898891044225527791540809168275644753679175357414904044907231230943746572876460391886505235172328586586457304806712730370438299565620235113115540695955758327561449130491183074517998355496144092530515039501619993992520257160348485421935310526000338077874191273310854221733906051535616448639420229826429242004961898104642667697117355769157711726687050190337156178689485046424416794744610464724723165669955339146857600169026018896868563146688869867991837663074178412154769630351210175758436078567246447005950905415039888278762708721274347628556339947577101417489461554702247127432518271228858306283858945929088605031626937855638009426993979032535853648053894983154775579021361043471466365000948636504806739455908398503584448970797364201213852578766816365340390744689083119351019729080322346138380450288125166053521381633438804515796629292938231990157932498862054219836510865968643397163351304606976619170202692581167427568689320053894403345011622002226257520298537618657007728948022269233467432022222960463104772562354246089094052128399174418115695081704804376664999003359701745789600393249749528497798293944552305767388358530189309126686038894026789451511397147741867909414177513462662758500973691876100234557547034904397173445842552677214285815019879918393281487499404164621599575792387172679367828665721632261658878083904575200057049766378078253081478768339589347069944785308781668567724930738406189313821698089129902243732273121067308442440543202406493370630003038175727037662328431192659142090704062463430430459160352387753477079151055468543195246580998906302877192598503812253284876006532399381571732303872311818917902860906683395875411578698660996456985518149942683933428179459000354911584107699626846388481111966767370145305758361857862981005743635797907640674680576134589235912376260767507558908898916207248212807069430141393116029294790646429350728525209607758740756313296549586736169314724218896395412200766983112208045775616261137578315505897415076612209727493027288190454895107238329761341994285816889409062762122246783278656904342940738250578875334910640032166839974839947406430189444295661336083969463637528480036297871404173034064020148745971720338729633143611022454907515839307021905871398184515244695851151227216118869757502081830727603975378314287826943915414049309367283064286794642666967041689090183929829934091083888503231236454861875656898679228772505752928128141047380971801783730250912528275322094900555615983770071493052559239617125951483121340750363836620181824325511596498398685078247491037852534339753745568393164465636773895841824411044868254788649680442690426750800100145124355643553595945054207566605253845112813152250298543308959905749434541644165474328619563767168166809834354679606297556342557880181319767748805670803520405016497503245252594141025736537699210406362907079799893230919777783721228827231812531022909992337335220085317690027816670828846095245350766212081352967725470845049911823496388907706701378080646419017000461063166497781711328645062952476837486665847753773593366703646291944893255662599607509027935614279872183419625536322284479622725757754510063065007148154956812235652647325473025758758491243819231469278759501469468868834824454675474769709188829807654657987902753214937534199043951939177329570090030192353888314931197202423811798908110220599839408689385619551789344154758897719914787977061330088825946996213019770779213085627468565766650283934736179388620881164283023560745159077203476729179819260829439366893435003612077929320643964943371012714901892948686396170969757173410867595187076526243558259457895230214797223659673706780797345071982051049511579863040386349290182226421084004267386738529240663884856102587628689076623809418470644997424185928329291402169885240376538086875390477967863450204530089553232866294360941839240819280290082372357414474434833985755223143466556731438206490574299706055616096244738330862287811738110815626226094079664025957940815915642401621214536809663621494863970925971069484967980315490855652793874543940196806983431693406802491402704831293284260095648931611523586014827262770385181134606610162069249085248765195615691279153418988875301410699160669141888236558361222782968705267484440623919337246979478329276533133053121127210662243881025167981779911891637777455952812809250504483052890897613227285385171899115794380882864572336082039988123894397705935672810578667102475760635995645997485380159081400023542194969846571556413371334175878501604276586469890911991253467339987794363024858693706096692335125634729572836731293898810335973324452794001554179279642793712706538630706857303691070892615035813164530947693515055257134503086757490231370481443918020598423416325988656670994118588695806359935299043851675726214957622788122937227648644619806436935946562002923503811172066301268268551953760621883535451910722032602273969572790703013048019021432227590312059518704617366086022960534842219998542865584769503111625079724438008094048920474615060144992550272481688465182605456411784560876872258130414635505269216038824648316344963560115784781375821141834163885683805187685903330088031815312438223940746772798192065004177208095912276054222315152739715912872230411560246318844661029554626152521381572291722984747017588191869819062294227383132793956633199047760534659574878066789821877521291905142713459789742867733363443288159051296241981411434921500195914521560279214297636574532597344336329626864854263788171639036086025926395276163111829798886589769459115218813298932288114737237499685851749466806771404490683882267006251152093055616707028934060158140025919667864246123858927722699598289303286972136774181883909088566653221032736285409174870598631122455787277133023613268551359964422197317336522113824202894618562445893511775052821870151999041819906397969001017892004630940442366301541989765314996233165284925442996254745385649167803720578306100473670889376182863163720240750706032716838926628680738717283188757887663876532408141203412959436206588059107887737783464261155073634120670363451121822194076855218368706057482376522064738717251468212116455929043036702623906727246042288762609970587574590478320697211407237127068159709463992007487487995751442638132591146185441596884797362322516062537728073178131304504885168638409594500465687412533265232419440791553119211754880783656585764340171040785966064834360351164132525609729431775077530662557317658305456771161434656245060742483678316916138091007576580454297072266314521426688006777110774461263372803769783331699478494857028016980045760199566168302068975470906712405566353946758799207121319120478747341344996163631002481799719635268075016691219188958317730108690028149872580636397838315307436966398407944152092334911676793178658202621599809112709945546799899866844766022068769550006737473941261475754806698915731826784171997878889182390558395747342605735448828506943644557553044843563266234102817341670352767693627187687713964385301410857547932687292630872683871117346640959050934459479530533642023276652067915906730154034092955566758654605502503911893459240624258244996436349732342154005132862029834803874518649526946427354140932125257027431854241273639073068747789026431122520226108037784222362733840463825031790802161745567860405770472325517662468854029299061370535508507632598557254459447277083539250360340214343087281225072459710188511061476201185255431506711955285922342232364532702163361770986555394726645236236872818168691202662602183615995115882892752269370044224413256958908326986776701316480150124869431825696965530399018827451601449760142453208371960933171463167773865388193016327107997070802182602861594430683086156628255637882731905474199914882752219355982798592984438545036408040146711730218385927760977486781007801330122093377011122659387429370707161954787568636197141129667670368454515094306433350290320090302411152928085901686588110809787814365760790145339609351773695247715154434241902565115601524985164181421461789070706954390142094421417567724298284810557356629623449199772472904303901181203946403189859431226530772863125473478399829053604128189394412564867862631874896070808400238752353404638687009734906922602645066960708243702278534675219874526683856512888778117076504823923308663308045937040190416467901084674351642345447607663299033079635911095713028528139256744418014167384941091603016125100216104812174430711253265083249024390356945631131226547821158710866810391075345039826006628751973640722041445009718978254185580980237732299614755444255108366934003601891453100593829222653067925026370046554763186516707961047681843360911794254467948910884044962321470674175404368053506985815230056667071925595678527512105291464143128762479518601973088444195118982321449981526708392090681536727737661803510378484038944052313671054933266431400409963332037902275172240021976578435220398560392456351366199409092529634103637879424830956437966252504517007433504234001306043866740850396516295810785426774880051232340535879412183450769524714680571222810225883020714455133244116642581010704997853251633603943808161157397076511378236300922213437093850313352839364206559681486445664118332584635368122335783544674770745562090601690795946953661179260101470654664936854102340433761730239966616986389326928466437383736385117005435348449302695693630550000078366575736297340508958071176622419059035402969604906140681686176482480915614495904970480136932534103338960015573035392278661518182929754343903973622150506288797410642589297089034737605453407006771617774570043821030468906441780245081501141799511818778885753436859214846055058496068244242343435122377667233669868148038571191001171027817428228902524167407635407197480986301528580418811636816221194045947720650961602455132025160249796313161808584909130718203115016975806937585375856626781505041971237600458949589494999702625472750336969411033011842464720789878515272685265551111688696437337918134142623031445977227591695274889925419295065822629786260524576596658303860231189548134189862849247743662756400883342427347814925818573370145024721787933422031132767422128616010135686440877166371636999587365829982254182152028985949436069386246652775015538036679279825298918651949450908794709579730934999551232292731649004168496189557417759787996651676977080220152057033533817930727948471053815764220491958818764062408719419607532537220797980935943630044756859009512473311599911565605486485521428213610992178868560863306884890138206666508460541020261934785538623588618830300402742656289683982376598017719654850446322664387136587381778504776196969274104426397694877183911103030629377956663566177026260734165571563651818961896066949210468829463372981833185948241981316645936450440640247219111273814527282827782364443064684657924186661994764739088321301885686254533155543096833029597095075876840210492072344163811659662822099199412550145485499254695061503339719803886922965049916415213381778888699795514329654506857344220803487515524377748281619303374896636592659271513155561094139054189591484136209888757921785773805130691555013138692616235486949813564485982991630086853483068915019188356207953577390368641142527432822486315113193832922813664925097423758433711894520183477207302639500351099625380917904814733278078417012782498071272797095803324066007469536175193753841485060242758227412560710196257789506002019808437984581369628179611532600324158552437898356418551692509080065701479890122675333062081499922665936136688719840625115980697972410403197380765694946426032034071098468267754089002168208328175119228298280166549300081233979092926318211624700899239779219267907628036144407707068867923695844079802705312703946692193022141340675857707122144238613258048786361942802953288475712532224683120141331003319786102133667328586707021636472859714580746296425073583195419442126438375382834029898366841849051633281407724171291083027462420367844260284340500122801985370528204687063443296222001724133605165257886353779251513955562137240846227487626964601532268733592425991728930924488465950662096641075760339535370730565647629448844079844739931274058873153881060626939050236973400217313757377552454615584568186718683971175176155975893963832159407323189224409078337994696229480149428497853286627666962064590449036112801746306526178056044077670906947173172237407161687858719020545105761737040527201304865937122847652736856639320583469995459962749595793556273582133753886983464825318518171438926226076716664483054261085295759027496474371012459830395883190905844354656566241138117198582184723927882125867820497579201048718709812526195028991560009419730096908671949718924033941281460527343039440627008569493174634953888411433389853728714487628306013937920964506306331516838813857837660981749554873527769585732166945976618698627256364255410888180535697619315555446100353308832444598393173225796456657072268921063010421346018836316308829061829408778527897518120372538377437309371429653237434515214535124740397773385913582995923354825506267706360913196799864055159348654307081766234429840713627265287537345588912612722114683451542921270040726880669186271904004902425362353460802399406840603046373582855625569165944501283883352733603600383167085769130217243316244683741352768684900062300136689015945561979910645750560774866678197365346381571589842196529824275581237031786798441990247482043627847761330822642639852527000609107050730560743021127136476504017179190597812403886070010538821846163030458086359970323744663731040009106297590699691764879918270928606093856976641554488413607612647889753098402003523269752695611251749445319314909876835003678235863958064477060414758946454095784503703483570652537529311183785780959280796138183865282926133645459015162626813123567074741458064599713300445629992315195291977135133626413920892368049139586997620689504712708197686613730208034999129177699794448657630372764296895059058252935248826147306415087673929936450043824998817747201057499289263644165351857180234974318619519669585408401441474344998056269736283229259427911789394089926307959095623958345532570095713531479407603717119944137679698398289478661610962618332871071355621567870336368840747174818527659555643571146109977366915684736494877042302950051351588847955137658727058756406766601024230723649997863855279412827081411160102046876454616998284621047648181512824271598127622973716754459204124374255202745144617441559960720294667128901582614889028123802274240267742300988279734056313333194309927702890720967046975009423176082291519363525472311383644302249598503287612581047511034024089686343612475891331058430877111156248458404324585915536217945399063665941670646607979072641673898453001195375056758290625237197989421960615781320539478518623229101840525244587104216422095497274916973847974014784883646855442181081994180938437607178518361444394805609176202920394174653205505940172620729967422314171932627719699402533050013940627121785452649468969019129081360314046447752596640022610488583368306331889474329778355372361530763731176096242524312174549809753214058996273834722599419196462191345417832966073851227144733445217602278411322402733311009634819547732295014257175922650178512191905300356772444069652395113012075610025595979246157107196629760136812152075399255845374784837704470061368091483849235188928993451168869379634467551256518391104124344562759841111693704733429326872973359279844077834784848423099378057746987914082018571832259312062759570761831040231587282235209518571644779644621155532190238874457405511577155923423562488920268175521095214647973405947682194605544628133748758208505673420095023870405089136662170361824930649014721155648887126736497181134357854479318522500634873670572236092560318916841177384534620339722378643714587606813251255109789858205268595114190664061227625486033938060475042051579335632475618873660074912611497857845503712329142536687097267184326503789268643089259563768557622710190959494350414575437956636731462588429568582860740231827211603596522868574518831889930809100460782624836796963144615514661800568652091631565445208790772518292055897959163947714048150334516641040827330897436041147411057748790921976205126279224187018181917299998099808562106432632232459741448671806608838475657825804821340703324492267006470211011664215115659572389966071328385496684933339105968007348609731578179373953041657641676124533962541073904462328439556493378654483665650510943315223647879806115886840968740237853290082797375499881770711582291320700878886338546369386456395376554495832024494816158239221495099757131147415230037790228515822550844165321123358579523911423379126813615079154712735962911099679772243245572667420703577705707518065936947698700902778438186867262854829729035239001996012562941001556106612115668320745521557172244685603886130454506916287065797775798662528022345291750309777710810541078725571177899965918564213667638207752675485147375301410223556942839629128314101710794718245088237592807821526421706168987332095621682908691512100693057281208794391196378327803348010547335016799011077654431010669106379259562627541328227844074377795429054296567814074693235349727522676865238148557471995664479979126804858467474179932469194485264622010145539043662539926371873857148286502099777673661567690813452203697032676716126569985648058552108330809109035035395177073656693975761249274203406860381003954417803172528876786411966683623574801557947461380290378420848411129627246307523766197628849666772307824918313291693187531683373273992444844403862087318864557260749052878372125893376856991508374717870134017817809364228418464108628370552014637444815827075163587040313060088220468121225908250508744423860864403965324299253159728175267885861177631797330997003588958557583119191124990699936049888148448715978628568064168607921795555129800614738052881847638464223691794822959932623259298242646388430581438745040776823287524649641528651943493593210291794970099810839496573529568274124337027937766906064132878821937412230311595536847203179053996780042207283985142196483737920598865914329026577994257790232377970828912858226371060527363806453676293758874837234600627930460459092299263678906789861858823558346524712248605908374909459879867292025447302867788432931078659732779271565409051580916273281592659062261916113392039865542516215742187090362638312036906082771175964788453675671611084125606013749812151633245279315320496048114378793495110608649013189581864451749904085911162305890362156407917684775873851640789768149057194380966422057348211518161715348372161086789281826686303807980282687326807540225083578600813877402074633469367153021944344156472729311680910712354027875449065946513026348219085796538181156926951735159020942476576114330205764220635301146808671862307651411747809514936779660504252172745583292532292581332763100760541160991532978287106484512632417590423605994660981568112149182460510634088030901685929624836504053330064235010965580751907193646969115575318437267696491958834297896115804388320205233357053608524040190201732085318550281977517107994016102224026330812054003309328392032969624944526550489025319857822120347864555290458977573761594155383274751411744407817180058188575903974695192976475724603981627488369748888178901482697445553451911941339137339715899728799234710699705780144510719000569163261222441716105900401994781359203925805186916205830081511328562546498811443582320499401027121040718431065439665302934104117641869365271415286720343461237637895769168128651584488171038304308769846243903363885183450109248471529899990079342738027266103877699398051745459444910567194510749653624564982422065481773247502554728094681773455240854997640900288158053317953462250064427327416932727496501035520565834034952009210597889414932454299319255705207817975509667107635520928022881548192004168987858063089269036880841525087880175078743907197328591888038453281280942674406755621040349154538495848940816349893658752595777302162914141089650894856571031689903417436570925487083066791941119535025799060390690013680355635504807573540151083486280996303573927234872042483257777919732507427385605790282657860280313615091484692506867402645588251952092879892228259773491194421992271873509979872755556610890757702778650119929471178302020188563813058669358242532310844524030731730356625871375758317487433778287617741394028890355161401949484757617047910718402706309626367432566564132777740845551717075706720431375999632645839863586087055725873629126373247997331341109896796999212742611536127574956383607511305806172690439691101594431310991092423912228529176125917544421191736201727721378575177736161302597614559836670591204948878738082460486673577233315751987415883892250833462316230356051409493390567731614029372146412088004281495410645597748195982742022078148767678945517567852687223853088092834501101289752503603917883872484843925927076301028767936144840157572814077097471216836854051853888631683895778843868636443514688870198175692286452155628456649401404789251260844601571757067136932451213859426765980253950799392739281239471585231719162505077061907900563946905082932621972886751360934973296728902137074933187664040782170299328185681018101148684917336163231807900092160953187720102748520735696264937580946717861872417408153273001516913075849691738339118124195270313505387637123890829324443723030867477774999313743521738879112438016226117318414358545503104655536025040136031119225875175708809069556256880562745453142953093440750679694164615923079236708350299356761605661083920872588381377990164804433611847853482595636691744006274765893707601591565778713375140450384439458455710142295902842303491746575401717387566365697003044947216547938333911814362632899875468107914819374999511777298751030663536496634715484551565837564759711094157685358350372857334872693824276150488411147616305393090086180568980937563607790720433907889180927398676703316413950288696516264285524509549700453857392069064686096009493681211598350602021333545772584255836924194756235290831481015840496515442262040633350408632627636548405749499796788217098571230505196370964137001114697381653632726582417436876491015867217826923462465062604304182658689925088463338713016570812086365407177673388105295978115823123049116914924447531868568584826513100116209851257417607037179600034169802208279016024806868145101742834446982009466566460783276890851629142523636149071984445827104045601543047706647931570200285047046022962703752071873173574817950769099008848312491401002452174372838541441810702618327328532653518250360502480634960495246312154178274618575723493137758798293257077031288859413420276090460848631031861338789962313895964133935134127402080115490675178028672164881613479415831392710456801009559156858350644409252636188071367708867477888617617263604762701700512946822281236685029561330549651475812053156121618431804225209827394170760751442843051369838821101119428315245723182799264982557194858338475148600120291868755264837252236327865613482964735305922436430976657458644078436119752499224954202383622705917790950140490978589705489697646647288396626022770800162723280293521199583467458009809519368583853399424653286179788088541631873051732316160220528448997992965384642310365961213904844404930822857532644607570915259565268583255106138705904262584394416617637179923063886850953199237726502409505797439143034496517522444701548974016994230535510642463740533144117126833385933109175673825214118910896756033856254498336131350005863415500200752494176785716212698799729882317849012125008507117813069800928112206039570749096811046522506928751029324060702910282152555560230146624065649028986115311620513926810972072417906734151106839825302373052171603291507691194310238177256899245031868683527661890444616790502696198631572978090349996490137360452496918003565454278844107378271802295507658321087180816232625423041551202210883176352980421659195205872719454664191116230747485469852993411270832231556893853548348050153497885805702269024984257897155987089637276581559916431956705500463362674734056111219112362018898889214812837185525155279018523733983691572495999987166435489510194407708148625858210596903052642023807360529187058066618559070365856154953210482658355754501191202231668721752932422648471310232665801771023867912925432590623868814247015422785917042272987358113481107584967604239426353042449124892144177207343565503970355626864905767539480120040536987920034130462292404948581240248400861638449549867097946947303802568200784371980478544994608640888530650153321464808297456252860426567944730762002640373908071865925099910433271815973751340174870412748560939471074492671899554095898590122989937495646173707927007597059439330160041399665128784278589596183733925066681363997360435906825016759257803328399909303926895518130721132531509364070713726148502816632414184780178219263120858239663788180538594739206627328600123811096242053701978869675481719037166631460087023467110680965892547003854281765940179184212404506439917527379946296928732296649322054643165849645159091732069118384761558076831808011322060301733935944540979506358405537269088078761464530668337925478564370517393166851784986217757980722723946203109622781065698164990999152672465980567041658353885120441221779664699294822757189789214377282929222422863343291500765596981051182438282044111786234068887568315226150503174214397366649702752403724008164989146583080959817280972818870989752832491877037301211333878785512430348797330581072581456101297366094289913409705099614948862643164520329418263230288621789807221166405801275896425342543879528330006522216364674465969128161120215355925050132098746829899087691477943666523864272414942396832191466149625338950087837358425096664037237055420088250720994798061768894470788741080269019548111699457407692341290979291058714052782593856404400234387726804640383467230615628117595379940735542994482153795739252102427017869202770984316237851513356469450333993444333421724109877637108913592193207814713755873831759688267446546329772169704473435932439290110891449925932325702600534310424656471513096667407530446181279291321002805886462919630302309382646064107541848272545673393560475657092049179042542315327877268260313731533998568130783084305746157333503090868084254122705920953143368239795075664669656240965157592201725558159314367168066169314936531518629533364390447149736211007484480548358166170392503944445554691680920771535170199281047186985602809183392858058857565808278340854829581641938903336762448258018004629618734498926931365633319001248020876957747449200752868449477740601865221270840744273980870537218804406770546154724198767059000929342840232305853999542478427594817145181999820990875655074468146631109945766635067735198224254781968768676781619579489750093080143652086807400102821645312860686218718232418827010008879654632132328550964357106913194508410958635196330738859982984089278627190803968898513288623915873962073501554735159685351991204016973159485238940889553756737167057921289375821597393142325248104815000684249760582372529697322822582530892234550026520787722431312853543361398825791054211227441678769128398563613791466438810463788168805487334088144057753427001293589780012324705589001416965521319481966380516175029548438517404750686414388645021995121911411258974725064271867046220999245237758669864156270304421770866288487148160169779060798390303909959829439672578536797394105098972174595856015479913695461936693553477933618265883910108136047881730204094703736358449842635482185308629933630327280080220878305814640573455532312285351089303807316071834170474385325735540216257170587316677816563150424362248548071741351738944934829270433345394193800369804152353391444432325309148067459818102515856797541679778408370545453501223224642961786001132656479893240538813163669698673103346537248688404874397426186193967061333574984382961653738772862032242979823146005425206358967440457836733163064590388281846716971919315785176060164850559038316049597968532081467007044204174310808982123859016315803148797437430732792310404455576554785590085893823580562943670217838517587539948237618957865349381009669329754807523253898632858551427221600639475345521913782921279758501489614368327570288317948186381973278815961571896914838580257390996865315188137842879560787370452947163753935545756931878675457027471659569277023252179812137943125617895126710315157399013818459978213415021330451658169162952764872659640638522589427965533272153635847908511130942362391568239245020564847387106571491833639935562879786915584529804288662592552095624185858374807792380637812291606426444615023600145654123647656740054059545525186157618418669607877716345258630164366780037988400699006671189711713016825389746349997543358700016428859295027410112384248452869489552154628574910653229742864744843657677732049361892059464922769501281797645103613990994800462380494030853881040577067226395282854694862906779253386154794248918420671596465458721559755223065840192731527391410284986330693381422070271366466230947673307938032885730422800652197196627307631971549866089394856130483724139235652063668510427454261955805981774051372600473686525037769893271017943440378864262481912111418567648425319557354750381907836867554095692628298378058566452137903699514301524439570546625334126294207018317418371067000436697757154676492269622033356162670057298374495738214682820084229733257565155664391895002866783478385778787630812785625816106033214430226461617240517519414170591523769410952558222376666585929412498181468725637104324191320142366190510601012693032763049087688695064018149622458245572842561329013170640162631874536012214442844261210256581089595699289639892362443431152639643584476590590759070648934405423204560769594992631669400598028401561895868121654738243006289224513774764576621302498163657410809435027305058112783744272539287082415081888283340853006638796173660064672585294937330955197992525618636765461757005991207387998008271662486531396783588144173222414090348297738649853035340844743776265651326092639952574524490748501579993598647948571776962572105079416782475433214456234442979748804578468770479397309756442143929683667360898237691726076397942273917205114815456979963007811166050242842865966648806095272728805728655797418653645096855308786615944227204309799099609916262613137304960891793432034645921115262587154626799214071494966630256048014414193454070297011063379305171653120048692181818065003699201666787870034957057691847654537243547348797879766660928790384078744348995318685834330731661899984227432603337535651116523193004076071007216916656097919694098272239616344768780924084787266044649378889610327605115523465439580156429865607271546826151347224423597590881818295904034132162491778949384692441611107538063976628230186270222975748539886850020355167247884465088217998271161743142702287186443835371650969428655257293463915504369522746132135131086206988428202885924321553383990003222590377897437185295447674114827871063402821222906212518927961770059311113624827075346086123043862840937230222995569304665417119716236065250988522452623442713794385734506362956028580101115606047928249253571037439813030118838466334924360010213151611888698518174623926518542313569026484362556143579865260256040170372960429787195220029222425553285106637489729668226280913319118892584597057998034338679053517662260079816828138884432037417089096074020089364179747550272504021377811701502550350753908504821498494234122657719932910013065193163191389285688850018994277679159148255604595921233523257582227118629777231000233085152562648498473188199832281611825446698363410316113696023043957142608879415724656875542058803222412330407584837577086160801286786855881353434368414117077435498046458359034226832372906323167402710239266083314384221405176549258808695360156191104638756829118167337824596991020692671458702375532011271796599332758734158243660236741913071031654939438724112844769129792729784258008105410470631203551849865709226769219050084129478481972980205707595074114586855301624690511224071743596660215856222665429386392188124389225259128514931240967778600847926864260325895131874701259330159400005222796323062138916714802967828348849018757382377274650406016081255651494181883018419857815492905888951269564164850338051313526525372264919844019170109636022091065631564017311259025686047946962460633845111692593008466055966046536724570452077507556494326440078104435255028965147783415205668675651715487666352113808538761247785979143904988600328775666486619573600597712949559362536266193844479736053807066009912376995435286891822816312164820665818565781880248381277735728680309007091813963600058498994339814815243003330214677166826371069922641917408972285433207641664896297275266239399131252974027186269233553489620554463978985134755723379381333789971445337636361802367842058207169320191073118826912868559773118836394371867791064904759854443929702737440843347831869798637343540004367953606183319291355945610092798081333992937667165751534777826353028187796686999115201422012132138174020806336150586186688841378600585549736369069585659832414525487370632491621878836373002584188303653036272882292261646451123887119168386237094698884463987682754987535421205331219409278817299533663886144413544651074601475506717216971025092815328774831835629791623272167734174947235692457000986828975631494613185159173282799870134176988357965134479445500191654886990594511700461534862745803521182381712771192687152814100572683761003316599103809440907216331939386627300336031886487544789350579279968961441386924276063373642080079883011114921622929480708148679012447812023333315897236859930809929951378197283079483139032809913458340685876835841050339614036290288339983217506780115356158868855260240938862745021677437985189493642474332973544786694410019809449211561015607748277633767089267009635783332647106671761366429862732465936429501157440600950961728874052381351613448383886283765178451774145734523848522172792336969077522159199100064509305394869187571950386321291488152318960168004013626367468350015149976193147956198214271871650247513311766450136646497111758938062589691573195112789950607714937173901827985755185260081011331233144875687119317352397324997300835913195093971057382957117136108995838447692937204662163111355678067979436964818199862242768542047380791608946226971310227553049673754679474069739430265408074801673217618121761105726684885992013195824550639000837934436143066493145597846037314992697358260626404371090259801459927263917120653743380487972895309820072746753407080686333755881319475011859567681693338422074096137875120751012842580419258621206879737900904724037157974342407707060085095138626720930047017965627600596821965122869564955707647753356399307601760516038488252227424856681121282319566311226249729866480565868052586449681409772284807760530444365954411104595820861551556056581270471667835589630428292012548363590805287311563687164421210914262930393009396558952473118308073713191657544769770200902914295788522690654474821154516621584290981278834522367400765350771724405669992300879357959436408332638525064816849900312851074085915256814847412242022750444092762558892656376623281247968787656068878471313043914954696166098971483124108065885797470664274293484746866495419622132172896288252768268732421306733887818008640658571732986261776036211165652190546141528161506355520394916323702259936548430765725409664330670718694945730468362112635908726525279144672406028600617693614933904812843824280984895344197980885160815447048587664641997725884828746168917615331238447845304500920839516803171073516254007736923212113988833195227776573037079978913933920927145519364954405619102756928637183541640500571747290766504494960366143735502927161305924675771802335007881682111636764718639740514005141129980325569326654260627175269387183456432473569391435828877590384491688814371874147162951035997996345883628103723157017638757833512303360095694801250988108652146747124364172138562979821330228393942360753238987940711599318983703825293624313957326245335177448820954172541397051991585164964662963113474716649423073382461919509689035426264447490187086471033634430167150633473559696850566062675984389665510162658604346259011202999948585988497638643657257859327277002719359112500269264018323816869603584330818924399754375060483692425904869262103320898929087115492276339862312516271965129057402325583594827370748184375611931520938034902248665071284911341211947009372316862138530350656480217257697187307378421809300367208001082817856721560989967137020993549815400716087601130120710421095106939123466108919529378420207159612727072087354606988037027253027408216476077612709823990640456037379684417158522235942129547200271451466415912434048637864191386530264290757962522148312327202909261739382492726813806528024127352346882794370295716694236824589304531539558965907888677538314861940075360370955326595106933652900124107464754366977027609674738398076385767171766012019977492322186420339385837670179347335628924466498397891674105283721939196257720745470430208590211851932085462365228894010168072492073844060149919186043928496547432028301294754447789835092433844117614700378569359941450041844565583441928501639518930422966917360585255460720430340338822632291567196338542046493594802991117182633947563078711795611963578514022005996073695295356420673129268302597578896000802962548451399379948369150225565944404599297373869598477450833593991085934086663341286791235631554753285181428303562228885200437848188542090778493890932601327857021803162587187934781290616144020025601560299099489667513210422815970283034544813910365358379865117437812024167045816526036963982029495170861131209757578028835674137404641395226568354829099718138716404152541399020024593087800254853985299353374063677741616187931015712301533610360920725709118515929173518165313790529577890928138179438969106206039288083106802938204963099514835058686517451587596842416759150549407587498643058128941275020663996628647265428385191387180830073070458569547700785379284387925161169709704348184940855527812383798087497294778363780998561058710046405479462460038802899327664575752567405389308356281055757562246459140720496842335961296527055147353898283680452979026469329023530492500133504917041966399082395989707513226364437812026469757801602454539985888185873336544747482300067452665687358817729179527918102001394163594047085955897687937029477722046845050789083031580883237675894803663126422133610395229199010564161536155125287472678249573459004190807486175466712502733826996533115288098312695380030627131417464078767618228794424909656627891202567354397796631967775693417310979182382284134923263792013003614774544808587317529773873115966598951420397868690168189093087421782686485673129331684787755141502502127709773998870339701950733146299782237057910199355658249125266818112104288902845631907219789925740817332333638499264069807472334906009234715042147214869030463482360788410110367148671563597783422316013976391130959409041386709691842005768383593358629013666340063387103593391771184660489969191778530437036861435945107991324168117278127116365432023859781462804126544154141658618626292930215901900342595738504559574563613211374112859476731619083273429405088581296127713118142817570716998349638204232238591999469773896659503007226380725492585683842275191173537356955934846600413735125928615266786447470596324930158513511677092576666383444914321555662816254004701126394430208141725397332017313141240708771144395769106584885592562529181143284832906014156603507449573363522665720156628096070935737796083913191842398125986597364222742170215874536001168599206153141944196542238981724148461653550151016822340263946764472168749187145596247221681952041507470814815452205841072432803118698392544191957567648006523650592610863278118276771103729691936500475252823877549214199537169482282009667949981015491990174401349878257905622959148450375429121482024100245054491848552235359725995059166800577795092203222027259864002065242585309007364505717929420826926409547424067170097972980646878586641218051054113664669725205722061092132214290387063486100427512692504128834745604234144708775388107943632741434161940422243963137033739105096267184623502087433315408263434838626820390835837658853871375411555070601774645344138302262776353620593909441442874715319410141748067930343950926353868070073644639611232063122178513427909115949080140318489912762502707686057865396695137521016798798932873172684983728853271834849205309716562376715105429025176539857797692293703013831032959864449613564769429885001552290510151401856870686566743739927864171957745576693742714731763791409959438007372137827143981587170490543572358253091124978247862507650192561641206407928235930217979919266434793237914853133416479445874678093048501612166067104509636142529178108081134624407431243808500782751657148237457427125513975390941537675023222774402848582509577217008142897734046767957135746053518669487391993885452214161683495394098538021433663612359790620838020785119935423164576975045087554098792685199299573190400297123985861903240335481035024078487376438411208071477513724487363013670200084188180887723773965371950622410237237959427235636117561524907841667343073390660284247464057426124531128701583932997599765104900414512377304240038549571458765905883386383894360421388810571345493146856079261430829729333894786477668941634330271547396302860100146631646104350979366505249409641732447001478828252910605525892210271492048362764921988103082643223205244003480018549429889044578121066854121695729041334415101467348370525249356148765914979246399625930950466836621024251108146935253292691512554227848108658224613873561820757463368113871570582585372124154048486726789669915566826375664385689029491428785461157602136372067056313596646785496907127831442848126341983135850207969995438580410202011526688692778959386947767024964378841544226191314992183117437994439058916161174133140294347629486537863198697015309215646690436584646977654754199314991870781139764420054981148759118025615325655780797816112459258407693576864452674978359933315154183002660867418935067192768160055382450731790215316160394423882915475825132955174966232300747167139826165302632304694387527271808194387435467405423264653322425219688043655295843460281428613480873888041935247182330874948284551696463214479055686675717205040703861772617803166957457032472603278397009386754075526465070152424428195110018374167927855273179400105986548494064500362158624749128039967440104170431772916804266751899925314107247882608683744369622055822184861516858686523196862784114786963085905898840351485563181297567771887208854110868563492405060474490553663741601585230736793342721488477802699824166513152409192150399081512756479732071440260044105621226386604041541652010528391873085470290320909704431153965197655033983619497997048509827311558506434102366735554588733619965836307721580149808053490855419778769123595859074227472728126120853278170018499829739764614750254426989536857390760966326449374824154900770389513310651440356946275879521579470546445174578163197086194630665104257580741582087499211288021965753314303736627488415274505846843761136903721394939380605421152823960152969466711808514765047951362634543938210483052423187632426061521646897017839616049482904937688837596343241180168148436496650110768518093568432065277984656399265694140384449395080761932449565809327489592339041008943295180627397678843525155904097177270841025256606908124418289001945277745198962750159293625390144239925071813904264772353678283562967799521501351030198526450636778666029211897431745421934486017768640060469560820680432494935309455069110528375771582642672792740111386342565922354908154703722024148671660719985237820591356318563825077577807606870707852035649619763023324233498450050069395585890715895127967179448262337657112278470065065342296774311637023827508647452610416478466013203835976639110016873469883772246650683324709635146662274165956991452874632796485722136747246510490456148075150279299172291647531734843942386802828420813419077428648249470293983346440625941265591640066064666983972507738571126094520497734503222834681645881992456699003739304046275453622933692857886846241223466198513273010550440465982823427497896923052990191251299106162489711357210827566911542944467172242492272623872791668965651600326608674981026313030583864005341539048916034139455751412259663990239932902340529011004393513358440980147746082075450246496808095285381068023343908126945291200861443499165503631177114821232116186292934510913163948301381696738931192934428083109393650576831736581981720563005808890093125224292620691475730063391424792267496524487041652132252998910299087758438885985325363930207137125640737571730773927880845628484712453750997443531149855689313053406534638313425383506630987509959415219229909073648214784579055170071437568230669645393541149297769724117011731375135504133198142491796976665227585438460966887844294647390496336175351348564141445574433062372493843153486557444058122162029421390550487988840788923632388880322105372980602463352473386469863801245374383471308417938378972101477411101204651506999547431538971873716416814421757958028721878338721826905296224885253159640938452847516446128290211377009957099576735935491699812258842555687737657158001689322387811263855397640663387789129914799164237876527978318477366054309363947902910994710787919758132536112542308120303231991059992785241642922803829309924382582340179755853666003726582183325879763780446525207618457742425429020336059925676961308634476471753726718557684116672097682753002445766988069462211579227291506630376696008296690040458840552364210934727302784512352504893851201096686766561224601271912566668110327412915928868856557010566610942732940118081572463556669051483670281798679226425262495133870742409473527991241849186927147778270589663213089536890505315744322416102450675187598283441821169114286781796756022545403482158216537931341875044663452453613948112711945563801727214784800618974850519877685445127775572019673482658905190682380368825468472987417738272284281154376722437232807043914788542626233971945131203441776937251164102157017039429057074789381394011300647668716540098293921301962495938077007952255698906252983359404327699595047797360418544764649368033335622666967876344011528962136371643982159620816249114443443521019723601021724240616907236894344325044217699032987793463229994165536115302597364255955927551501848698955966551400988396781638086258407990076763824431390539483723232223854279021825089056814864179891086508707977349314770826218301267527581580429771135909660798664897852611198831820238464636943332180446787325581391178697611885578125291302598008102667529490035061589835761317507609006037797691097687324906588072350870025590315085233339604077738211595356884983797957352744918744307441573260520763261717645647190612025901559476369974113533927688750288388016146158994105796998235484517302937994636455389364895468891067119867959831541739576512540234643663928235302516905093804057012235156670554079567283710918580991481995953976965695520762265960736547751012367607473254604100776252054119252424958662750661338232581772326633241909702416894011385871278131825746877763869774197020404405426996374340707769373635589374895117377010980415469188320853085519534101054168162687175881994759492233721499071687818476935798417280199224247380339945209900474761400152116180185458148291144442564494494562523055457190628237782769779067906156381061977458234239114615763469152055935745094386546926709817358835407660468858666949983088895596523176036998873338808288030220365023535349115553198771735288076755029774708889756850119151757597932208649860645337138579898701865049384350673462562350207882175865911286777643383427667580527475863568774549276197767845156488510980601239311962348811717506071612799811229207220825744859722464216860654039239678115276965672025389206871373228453856906958644373335475196168846321457703108085471690170371062479739491587543420314011995444452564129494378292124225352094348141804992780619095122930097151095134196051353950618075845519031214505596753684421806741899459500156002362604842358588810430586314389203148562789432718511067305169876212467334433135616304996982711139711153659837370565079913399344567496396050730220512850508035812633507816641916503133453144571699100636442363039173908102589972658671450817611586427729002412991967673673676947362016699650235194286724607418439832151259407847435656231424972065186321089558244042942672932749772526891838564227439267915748318032885048543325559341418395369532070643316116093543102612407603172779989558898078919141238418763443816813270259937425102729944628990144133537691528874440651470902817976170275908776961158575843569882394962734437907851838624236930680129367019083111724180275311464103881467690017862758580199747872081677894213011766904009712942469703932550900401572362163745220175056345780633218623786093609002142285276337901698616859511287295497190627748915325927816521701041064473422586970071673379369350783458945179938162049543553822268259217073770406930100171263149895137618110844495939319640942266851855454202351412512776475456033700241849855987489000666535429517601506329263143610051052999504418076683019271393072485565868220612898820223716896393538718331313845305399274190831707437407949883271619948171770667713732268214579639621542809764470805424101547523258885997279565926176191972647711211615954728345813967632011165622736681721036624863596588886223782884596479250272672266836598657255652123448497563448211841054807766507337922044435386262526675068147134266135196846090368561482302154776794855681893532097913697350261690213515374929220078619215048346818642471042674886246968060821478736420005601431087258906946049183419380909817133461637913312823528908976974369164572513954404427037006793449315461334765548660330479403691489703072632094517760560020675471709846511643220034909122670370698089906891113758759540397116788151814442211055331121274608666599771792081482485955126057473401521625417731735105573743121250208630692311169571383126304157884162681706600136380255618552101809072736396510797563965673178707038365578057102703445228924827310440375054498494694081847300834968603364515655960696513152330659357931751563594877920924553729786372259834527781478035848563919802715296564051237087624248607993380688918589236046087971008296219012232301896169967638813380109775826086722570971882162282516203928649337052298031125906866981645932202598079635669170018047790898248988675199154106441289827494456131729659648721650207620386975720048568321540467704221735927751761956952350837758398345831047359447210362331999090354035496854464061298352194463411142881387615076981151942655226746102352124726828057554895293838888461612470697775148754147371815912390679862964046520317307970827304542031179521678893669602079192935817953131608587097952273587439720624480224297206209187974263420183375610213322059470300294651485575538422707009400127342152216631291851923438035577159580888771512963915416094146803832407053865993810946865198288170092826892428805971402143592195196460367546153452076991284614976172817252021658102143042730056737066287681094425162679558203257219775363164457271475608866546827941543022194387853756816890016251707790708770914089828733487759779419423869518929316757223359058288298753981816049759424438267433093787888720827940299355376613774286343616690054288090637733277011433736147931953882049866751943347997095328487227391528005613327126489770854114644593707828847028436614279848661502881481865870031559070117582108370708637995219565350740436807330451634238833361370119616285168868838765626737639535988297731375358504357783205255920618994215042899008577804530608260147345060236731260007289947736759957288873623164214146672055221748396080747403244372340850281925203578177272095777588582076276365485126587455530006218413670605894857294186407414619586999247996792050117767448912306393155972913300231130257615587801349030569849327982873221746491214514670439352826257650089506956099032220858450333645589840596568614637327365289804075548583057655028162065348172030860344454224188756959234863913455645903004780733323351989997343213517383094325768353505155958306384336699985606511365390241653743784000771736056087616684119292985115304008251279779079661770321537970058206070132346128786979513053219339352269179433716591993426329603753133741133075110097659061311725779219987760980910641863853738562961587778734387928278123960516691997156566223836639223285376919642824424283409895849955092720868333520884913210848808142740386969178461290820723931011333995315129845185306132734392708555748673480184448961416027001072510914516041030545145508213481682717464934088165238780897907784247272879355414315755291927622313129624257006157529000300916179145554837593028995326377809387297090677206351543228636753077385013543228017975423968232255414506158041305279614592330395828627171295784024020149901324914206344857110697416987182488992307915510765676743890866437949022773533233322640297284059218715460957394175182015531856486593385059046174643549323851986365087155439572767945181116516847844211839614164324764986535299298377363476823231110106935927414292048268058828047643335733529125854398440200183413252444990510188367133660907443007185644361692312370768479661121289899305584549383273502265718434216915942917578405691168787893628581608477448495303991917155580717952079108712150358767825287081279272956212642224745676800074189625825729963849479255254561798296440709285299260247569310744508629587310662283590021260596285385731686697795545157339481615724623511664622254548272742115303491077277089315716133678788297821509529660237308076950346434059991123794387166952236265811083235294757798322676726483847900622993839070714518695560646271176269262078159944348264424126415497706515333009690151564397775013112463990028728159151571716029756528786127274657879440151985674635434785775732934951342333864927854488016308192354706562112601255798203414202325324317041887820356797474164148420810445860985763400017112800451215024572815160308845326374200162447328920740448205533004791461006688682805671223955866050878080324760121115941891731237263706467069210813725988799534175547551703640001459458050410835783514291980095321405665359313354386643864265340741368469941660227575683552914855750683388914628471699559870310020359241358342954211161136697943657774935942760467274852652488619676334300266165176152795643548267323949642910547397884673524844440278173528035328526533477379364008917270974713206338674740249926076468695902575517672870808603329588297331623225333562294263333230488472771549200960383830857176248321451802217975407832146259136689012363239156410448109577535915581968718179788909073125898766768784302033697405737884414516956994700915525133046803497740282315137304817493018742565814237554745347078670133222319833615449411837687230440774520891684657362745240471092907455457808027610619163031040204589772566922141805860775369399327059861943150254701793374009042514768620933175803432233247025035778496790483331417664510787583501122570351170384127975257914510814843900203386337526735317695160647237711104522115196614549704286754769001204747947530791913914798927466559392088416233929504551338427649828538299740485574297036992421436661759504390714503171236295541011563641493074545769274215001360506309255220726734157994916237664772704060921098405791453766906969225914958539245245122387131566655498713691547242474846365391842687122645927182843734238141271085395107321405931465068883125798835722573446021012203136817464292097293533170957600007829898185322539582791772756590748614372210643013154246007842871511675045111864591280130217322254313579753143944247545874898703550646936226351231428102442487353031333848513412158232031268378856500371718010713248989427603793536553693659628471631257189453854202790416889550147743675366795823391703944241087616166807411251086239150652362655942555851913291635573647015402327105977596888873544648563286178305471577898707661197907754737331163435457830813321035533907438638982438799401992854188661172018017205465383328741607521378303637830460527247017626029387268455084699345177730276402892817554320202971862208884293107347103164689829016574316172651287781675555599644227952654351787153101237451484437282555570343819408974344165906302400398708728174897488319140586825956373458684625449230890936130342565295058253125223705662186443687135034572108808660912225891467314498059337354274732013554981357852973270714686096955123472026960645433331497323587227644881668667982297539548540752861291820940597917345907918877506319342929148595126389577890189650179684420336270122006973005864863739561403712424151130350833935915803537091698014893780545915638694137246309476167752547240566283538032313012986098383865747547414438624836948259940404959903278513563383353841230651299501755243985958727791950136164166366697673485367200795383782045739438807129024911392648652371199052536583601209004534779804997217088685869431152852421333996817314812542361055999976666796913563205030402200352533411622081238281665288487054218507533332803270492993451462801666033143415941236352215166168552988451333698358388573382116755908347983165563420052306813898254750328833820156991423841102855988625090285878673400606344091143470954387381658983564267923249623480888555861900392459406754925425129036617563800365326809325642943110357180091960765649002473166575950582524940883775656093330203267837709005173715205379877179702471281801037909246782297380328389444232196259427625431294162328609555957384090360866227072145922706592812802128971430297841804322906487143048393455833938211239359477761509215186897901793158641839988653876515214683032889008133006420125762211604283885349064782451830922127677172749479935578465229682247526311171276663543710933770402165268684521390455493530719834690498105955483880705821457891550217409299666850041262612314552056471965293022998072477807388370844099572509518525206472988151534292727046176525186460153817571001091357917741968942629878215330891571839942185331115068285649822687287891621537009204595140459260419877442968650141923178943620853278598940824644207390578561689243630369440505741150583906995049721423326892809069689880072675569014985986899749455140651845255775740037920081864075728400437294306174407491137072635426543104146769563069930925039634121963556646224707771738594905278261081095484763742933147284587176446022068515804866422859333038707497854398718392077633146975442679134622223077905174593962101639197763634566725031823980439751759043760109660966501367459944337481841483719944006814525303095408306323506051883363207677386098695698379173553296526410023442849505004234985752155115685929355216556791251972378375041530368832265028957964314016426368204544309571799970852516228435583986611958630135583127781857983839755297361972474243187658288253693140610432608184949120786447315111457435686075797051524120159383570278682739926669259083954676597352837706121161351776499573841222382927891474742422991955833135635015231360110523492638405564882987293419283259991087335271819760125010397818956186318279487251640758947963412321252666457667730354723827944781406842115831514152885561917625361015028598312301438821261878098099740785315073359070337387911663844298709116123368513363996862132194304815963422042026190640533451608823444369762858686750807517715590212520092808669078777292467320805252483463953839917888403482682573220143577254440631570882920763089996363477667328925301387193018761550859219243786797316838666133204992896716224281631940977352985274268280694117117139219761572377809027770762640655423360266191812422879316287195510156071165030739027720351702505269940797676869913644536322282170444373872915990076595428790005146612476563222062621701746002848011027308579655608988978176584760933133288933834817915508210297627603328214296853652770410057830744090051896401478933078442568143618494411716840682670378843740942116277387504209304923701145115894015794848809387302970047524373176428478739351681143963387743349721085775401372776130377747455376440103767262077083737808879039767194577451427888574797387949772126738692471061834029131699007926317904115730909739229313289740117082556386032875980261628495082639517566377003024091444193402389616251251234183287723523782368489063120771870651345697397332951530779087117245730834913785454498115964243280924581600537836634792913304120743954590728314233030705907051627215215250779185439009297235337666884775550257558542997640118675067573667790131901869662361244032772208167970284003827186339626147375008689156897082246539107227701524979112131637741705724663948357221682707997687342231622032891538173131820741543962201246587729662104526683954148558370553503023834945201907483355695364109963327034611346936306091225895484690890369891885460245837469900229906448023231958117745691565539199082535111106578818140840171233840750495101295207751851471145317743808320148410218753484936409642275634251230292223169956450078292325316408942515463928878626523454282792673740989036031840233450315935531692431256655651656090499810170166406496720178635858962609687731231644336385385490855946847518903768541159669016223880975457158172867214227942315762513433493108815519315092359752903318535284381713024791359654101095199432885119488151847644156659962170739089403911133200382631215280177915410042401537101644861955616136122533270741445331804398445846150472744769608380342082532569135193360880552450236143122900977928312932625008901576797528974700317014763504313498670840434239341069607050860229769562962443103239093091213620765268060422645554140134063482033153209515362800000848880377724272920964511856251066279958307857810470429064225405405064029198326760753686171031959197255253654851382148456968595777776699308308810061315752843944282450927878381778538906571832443270887525778325319585319581689989777232037345466607121107349299468005327470678131313831518049022295792654230264966470111270160393278257922975549815710185413936573110270999539814994624688708633574329129000979135053345627787829354501424005315321872321784196053072657527168917445690918537934836183787614408138723388306954333025335774011299016480998937591166080432585931784915535432879941577018442404306434143767177990329524981543077366782466594050501676783516542288561450421552452648298175159258118488080254843955699482405691599471643941110062247280526372485346217519136618590383339538924982933233170033760598964638118194615145256219769294856678044750593855361857512784706505678381514351125897065407627513957943372187989073749290547586798127226240919068380112650227123670172508014630016002376828180421082992827129261092240460057897405108151345301039060998639991629478563368739325056295024450767558758356878225967987548071395100098114242377305601594934998832875818982713828026953941341126910758306521405166823247454335854496500353579502697415953939407288566668956826615146250534405733600498742006570780513164647949873075872101634609238149296730378291789195706610222081353651633155501650530856784739650596082531703393802040717737192729292348554715664626830035758736716353984654804022048915904899726400015889203011670572636634999621569981410851044168467466986169182089050525893315197949355081542064950756904830751256618989466568254442715591015474218178234990036355555538479346991505786480422342026356538687427394798203626088631284650387902122905861827896850912751951720783829561739863279665577574692982488699121222910565430273724559121622104045740268478795987524727123126693966869131520833421939987675833264261090280380951686788762412254180393509508415155028881676326889148984083136680450558065471524867734739527154618604199216530457631779063750127928927827501213636095662203002579041570862351396590217213680122493106194005914451294183813222013373708324861456825998029222473461172471376064267761431063357503746559744516976761440153366219165814720204247070099615534788494038146649930114355581524920566470744329112907607339265651227828186072288672300262727826226212911651485167819090268962934455037000380981244336986606283048331589554700622766011171035713786097588188541288505999710800145443843718205475537802229185578100227859781778207235396704793193511817720293875978038440677671671922899656528135565443424883845099373213745703503876555734661883130283669137951040969559192673893335558723932041691432587881037846688117042064306913996810635302632190664096109940510735742989221635530900891166851009066803801442500653928615384362467054010565275795226452228649982240563193859607059363387740966582270604418212303067134955902639361908428823041462076239372317740240789450937431355409348468958986150730544854728537382401232967283683199557898521592355376521354825117230305467624846376754478906479683051707252692556313255206202303764123944364967387405011360387905465056303906626496935840120124722931377730523001174893404894035469393290485723784290243352822039719294242187438759783577217793056147717942198371740262636420773333040965755413421748727307875878044653762302030751621961880323262660639261562832991803583275211390635507318004803057565193797084242228804290377113956605262760527283544635257162471308042660413364195567354772624907931434089036628920568051479708318111478443134334682492058421020618946079356561376115887423055662536683930107853041140156998957368345150606562764303187221219244975796934948669523931173196542523514932957755692071972927658036014998622018556507932885679511227872190645087278427743207249657727317751490880709084213892864400316105307091020916451862260410025873661037316348127024552477171824661846469550208792713540377403839062117296017325388870060683106124255782129706783003211009099447934508047767001753987954542178534136839204614077240126751119558799311341174511703816447859468419317073722715145232022442878722655587941164480594668273283664283950338759164236304893959145516581423479045259983940917787511915234943784634931813719753322055639362420668673584512164960456578797561471624197480677205297754278541219830861609334595933426696722511310674814902951983580311603177183155977901683494235179611025197496280029891921019314674057183143005521763114958226450364173411497121532330508507830337730256299351813978566394964431299527154481079721351776077585139164058265215883892522203254647216995724866874661565227048713229721748487482669819746140390836393163463103071849719337158175181416110668759561301618277646969145352238454150458935753610494238686736896544181972010347662912427744229688583437855144843977551321890284048875951491770326898222046556300064844990553903442702117667972511001140040993425095186973405588451209939902503526583682249178826077807339019910645780295511306338715308932176310464114811499986368126193612683603781916457035272702441954267220923503130574590006789527206280683167786465038286272436616230636800857525410171063117191443230604545845940536126315556091445319760261690106318051312307249598245548570991228201991063851500122101242729462207434124216925369142444135168332024684600743954027840871486710112547710971369050930241361214286201911005192627352243956283174444922185419346775287361992339027685097365626087712469530798946324691068704885106865680542178716770312158095725175617203903080967173547549391476387266716469306690091825363044336857147320015562301601926012278910428788852686870626127260791018902220216593349139486575424140062031501072273942438137383442645838633846403887374806539348045374843323893634536352511718463208773178465815375622788821583331096126081759126818243491905779878139842340771297196113183904252078753917140598965681961296239093704461139605540221426277788258074968670331632688486741348636026629229981540185002767386422231996101840514801489495046395504386436446203513001929276594732142046997433143684169460713414052674184203986794139981830704856763669431064231594507803254320646945223401430028640868653721486759940728804659010825498119799962901799452847169437393024514045230829154963488612800026032706294778372399745683221455663512815417616906216416874160175642825349558097162560373026651377427328339802371541578280394749245954433765341558583018304277555448269014624940086017084765112776249164944010114422302263565085002163067128240044639287261318684099783441452211717486163161114362473329653635216230216708991295075186597295056746296917133108786847724506404279471891650845052862084373979900183048214588411113858336781299045412111302179444231979253996204924933202541382467136506893762783712044002417088470306926854330519346926250516620018297394779452424255392679668672080335057987808566537369600032289148817638471622323613511880816424300301036302272420522565240829990611853012275658098418786197459870037563537434714289935455377984958530479503316815480628860687465241917277470781738951946817569037955878421392211802074141729403602602527926578439620824643492892441701528303379684492606672350889549894430919748045744158827183502584104829200192430764977640197241641188650814779777040764912849708383375705989525048445584973917044733878410179218698398580388194729385625820353614292172224707120126356738083693890171282490273348322850770147819128447418671351203010710667814387103634281954779747167675437727804110822082205237812307083788555999062540934063561409857668770250721502323094350075895691947923476538306793132272054266783070851704361652175287290274057250928060055483994355502675631502960836166926292744463917853398216471393374162620407234583598048541939958474434052491193512112175584749823536247599501509557622900231172507493147449955105066780114188395573787715595148280240376255744557683102335031657059645363106732099683109450269632562495025504173179270309319169155339437838263922737906698801723135746019202631231286620791163091928197395660568323906365737427584507828721249794086522342062194027619344893068052630114397637950646922006396706605490365408387136141923930985132999948794221140319618503208601895717985125757093014836352599872748304339120968847857185978930561936783329917209924772551951905014505832423153556287379229502298018853457392354775241854935896111353821833161612811406296951579591193691268858329606599196758088436363498081441104553227363547750515311812138521309130017104692636550389613658168767969548999350415930558487117431153769012951483108099512926890013645472944952567797611644721939907431115883773556819379748995886129098890760744102441428044609639442987967335586885801657692589508756469345449160327614183844914232967961342072022434762331407691299624596448337753886460992998628176018509323455876017489211361726121864971509612179202869498071300362950236272810827997495099389222804707501762990020594055374648968288583028492737354484561248040873589154963637596351977904426410729604420570644440193441633234193420269483066497176360800928385156590874239604993461102470185110353931303439107314810323898157526509659292370748893095273967809987886380182874949305530746249968469575267815217106873082758135497540424085747645876882403868337208382352699480930252868182611718094969202797981503187608864946410619840906054892310329568220869369898510424749808990247950193358564299880535683274136532765302894555324034918817000608370337644186359685281787642384195611596182594628944097167543121258307420536583711867711780587056675340789323783102061046013122514221430665837431533711367331489563069441194144177816492973852035050774672021797030750323762219601642171574427537023441153323674129459097948655659790722179428362384630820382381722867430889372251813921830002016560379597934659805179930063300676824853107819074572854239609178003478683084159870059563390528062784532037279519742009771310426446462344021768748558396486654360465844524490052627567069193968672394928851578790660191994152749612882760548854509016101944723317006060965619690501430031120019982985329754245558024042233623287178200157200188974026310501196107310062209260404622976470119833489178410169978102265323373357520775286515077295617400417242438554052317637837137853169850728061579683026236627781648479017841129375695376309698599848487143842410739440054857624639269086194791585469348895841360955732046892121920948564068260326787313114345594859757281408969249589122740014320136014514409776473218023920496305552466397064694302943691428094706337516982507031551347633156778947816627020762349364455196336504088388898214741256418887246346646798065385533163849779661724035198737945066582666209687364986063280697570333992533782123538601464142392693099196196001988475529744884907608663543293699242459025172947676374590162438119973077121919514690588694324127760133954983866482461684485289161525886161383474807461702438928700328184877027797922680296580633220078662211191261706965158548983169083214831437400362813990192925269604603866494142061184718360271018791354097682985938185488088411196335741858291600752185626185943365494880868686247095094232381279641698276280703477113598496287819485972813216599976575587768004729988129995819694259143420131701507122618542386502908317635002809825454683653992603063440736543302380727242994859643588750104446765294193969280155415148610061447902769232111746367765732880711750871209540157296543567630795389722504358240146314375690881815084084599997246465795108835428979779009347682268650259079712685894536115294844649233025697031199325964641463972726367994329834074442176389873467781262436818183469339721920880131982404228382592801139119348329133892445046615946874121097505378841130281742510996896730937238139005977806988988742650563210839072095152145560631399581424376028778033580555608427482337338737175791040191515914276491564433266214231524687714190775467746694795767673922365073461824589935594284885410607397903211871651966759237203213811435365914536988500465789841961677007722862047278374983514353459545510009706890671262686440020980854524488174988235667795601479263864690311363518573184732313277110439712615746516012669290080104623439136348917212697616258665670527925098741222326409921785538948638149541066687859654377195447351897044057890219247397067501541075756662903637933642596557503771821116474638337241335892890784982548758387060682318866873447345006986312367386890768619073539687643163848355041137407063968297309894645809888876515009076225084430697710129172188556287059221258955367884950438518221094368098809401647117300964269378494571563733456754987440685150570041848439825003865759882710388843579162653681609315690150953184170393547715965813454742936414873078152599529910344120519469510488593098945173041121798452075369920571883362969929162275942226167104492868805300454028082360264666472511269906306117600750919352396848788723078235695081289727204962807557653843601398936195563788452897561375524012711220168177200066034286200523008423315461393898943757932305633880813776620396684072667146129478854017228549500712392796549755173679641075145378654921727081111616154524998689856235925394552528056864677856311873884584626090619351443594740470092679136387455153585818515063460058221570448014628070491345641857678105898495494420765536942833502168323299747749951377849941541751393360367346897585407338746907374910430876015953164237615243416806160189666279722961058324204162534008383608593871494289109532522307832006052491421498026427445838614144621163149926445530287841701332197951623121199716789814487480759721379331056536292441573916754012728911629334825411298501755158564568608351961810240638682033612580781121640276347362967800271721987692372791176195605380383409544758778081288028451161970562257797504866864927789914913110456387207167213346996215644105238114650234691395654928903847152451972344209128014780141705697609918508538039362220850484195013802504713475346566117487770573175712421625644909761758362180173270299285655699317395998925006367376250577490866464574473639282058505521604239270166047026962758793323983852986929267962903665035749647759820898665153939519145718358349500899266672509796817729268341219348338922468196774872414629511942755638028507344012973911402586052836748990454457470895372409521092583633467044281300507242805633029070022215763857952356169652299820848097320519067020220232061473178586742589681447007234449959056765821295357863797383492606786986114542766617589906672690970231218623293518521680007970673597030299213127626338008588786910962734597653165240976440508072246028535621478798960003934878211051532781608296721803752922425564968682652436847474536703192761495125709443819089437704276062966186599777126861403034607421501780348489711017506229490903163219254232582194201393264998638417797440484203014067510739805267718006239084123928170318114129882950226950325290729956986267709803465706945118206126472707391270525664998706818139397295722618040669226005005826295741314550464159329896418014595215487481123230181785596837854893797501307120892323607839748499065985866579680907642985904685117862583892405349784716227344401722304584765995419304573883177970103798743176317753041117467127657363488745933401224574839821363503148470077856306547407559623492100615112406980073751896867916048215424147861503316116550301520021556288428473530236436838994946790839619899654530261949776591000522153330063825505401366156669438657375145602071915761155853043297710625482500386451321655609844267008845660753477987078612618282130586799908055381379736290261296472648033927945531769850159502642260224738529408685799691599079263941759708423838342563726944546790501530462208041829783963549880385753446787144921771939401634898314742993397520273398925808771845317428413125532520147402325073583875550822719641378953274494369478704419809156471347170911710896065688354356696720043671935144735055703613860805098566975472320582257018208596298533271443588007713525254595452610268371311721273459976207157172776608543572227528347762627762875126272465966922696503111116082483007980422496797231384596716427438646063775735488980593106263630563604340190593101405783076263404217762575699362755575626942306580003923358483141088291873627427482295827646158266819919449496590693877363127428899471982251922418421358654950453150250095664507149758224741171361486363314409722704421765354210810477259001612212083058829494861878223686253883534262989482129300407787695126190622382279586140385082677206804597076835796338165419755279887528780852393902697455650196220861339868648808702707354841243088300885946638760678106920862965605806277128541176410785528794700442432704885283318386377035009886193148920600321564260376381299391621127884540736037187634252151569298456506727879881234104908501098187900281020459389827151131484506245046676539283572984414815775775073206902918657748064929591191915159527461152761267522816826251543103477903274095118356613047191701754654792032318136555048374598769848771468407083730140956713801925871637252391400369147404967414645906457172563120423718714167882386840100073331608400116546338331562866318216971860278569366145317796934801570331631893776139661006133697369971236530438934123675189695571473183125213207433460296207909825790338911701171231902960689000851320489911345454595589280159326720179026454736107311477513518958452854331547590844139553164570102061351202636096763426852029611138406761544934464571523911242739937968696905376394022892963291502399791929960953383608532983794186680428070411682292581274663860256909882338135525974891206587860432037500020330247470973945168192508131113343977784605545628748312130920461902357522492651447857536797131737795444862006295170379207906115891757635315931984088773220600503454970256804835271031999580225359436707144802137759241122298874601554155722998155068415683646057209968760820357355436384149295658620439681825311358020022521518700448075444212266449593928955708023647503599482276850582595039772499902146344912117051913879402458847471945433592242109824585351212827410132118653629865541410613185961908589568394658087260273229523375977592968570517542517462704426909204548899457489884120149825165290391877994543611417400606286888227328897825469640102934636043475646260897120863352275685367013562130553725910193928691021955179878125507963523433564339640754284776340088713389235864789946846017770598665378568434832876454996660058675498075523623145399530710453982758944618106788691920221438202823914122700757692453432327141138559578511530475116973480211809038261402045201375079433170583798336589960374452179410749738887724818805687636289655272485282200748432899985040606639305568396614253639791707984126378902752724346458042964549945740773224881234069592453833652294036440828377310766538977660076291113291911583711960058333405306125209339537020462286052581256203404244822921977417910563981113833676302684790452572358054424787472289769373243769949915894470852701208212292018819696887867875944816172668657978861181911786885565354035364392090057591819130616132393371480109266301985334965707448322669548676095594439476748586983914960651051586752123107552269089414192355170912481296582415572166590820156213322659959058270129392192645354136110068625628930107431992871622874036886979634507152282141122668326377623889831198102144508951393657828372156918995270071415957098427704378607451041309133621382454531434795994072503320518595048963557208188881676708209633938384005933895630738579205644056694418055179042775842151258936210170423128759885834731732752534876355391374489558366905493420114902247827280599438492228079076489707410721513799417242970432821300714693662617244005814468174537304427423721331403194120488225676783160665597358611320505906530364342140425449247589793398019120411111361213853531153784319139933989661404979967133482183914455547100915489676683473033037945441951128393038563346280793745298267961960231725592770308064329302967283933926860779276879042004126576031017007300180960841685825324614821411814740677970752877567303822162827611636904529758089056710178450738272085277850818438025988426053065881925451815240901291616037357968292491798585624171819886927097670521318888302517319668783413578061482761531308105839218669068880497720742589335547821345379873006942967768063814785559186853053856965046037548008310793034340963282119557005321939022092252826511812030566494947799345147249416530377072046444820110861928473355821014020464336839505130445057449465049506370267188282866523050140108626107819887642470350673092909724613816271636768470588691539737023616890457424130785675204933958316479968284704197597946160010326395953088453067239184253246352497591099363178971073464121732924382599924826574306406237130819150729008568785497580960023485318706160921948812300971579177733338256779712130199865875617600745868213138438255959609875715316920521937802432747737724354437217809287011232165212116918055423593971147679880767985963704791903681702769239708391086365812158212990927146703311363115462582949038638589532805947406727707338804546540562194132906063027757342899234049400744816312271053483071841812113321243322976777535365760581952953466814555310742943670742523631043521218194061211179654973257448457172033742440997660225802128824351354543420147482710983221274035567676982485417038222644505090930645104712754759941077197174812611485886256648264203660364977435578372262631027082905913810060198260467183132338726093656556025204377212417036482687551274724530773916441384317611173949252548883916503752377776163094060040005791249096035158246619685230161455414698193115695671840552443499897868576641894034342786743079467727321894124771844264437389956828183875946337646122639224846723467737964979934806237263886112744024230050108842035532370842030419979034555823764122083597696517377690280984541213082620088656689057908222778864041949532867268480798007011822233678216890147580781633373167653687238517498175313179779863376429168087108540038994525530625873793980237141400527567232303579130888596990672880646619779889656791350952739174783493094788906165867678258853514569972472690586115997365502374631929136222063357771637688108997609650678703631291503947667584556081053524799136971902736409613561907663624883800634752142695249431941265404310884667614624580831512626367423291559405861938377667555776021691718029148228586079925599593070163036030168961716032523873068276781889514057648451679966967022866038098375566465797556530379091208975170673115073856982408924511520746070214331651369341917675210583403360303670585349508640434762826010597304349393475497717988330785794753014012046546238157331089097029141267036641279628118411813574152079824895376716169425397265150536062716606689042066020970746990004978566482606739536675125367343121144201517489743029790187352801420736735763727854069327891836976894126688738761700124939299269813370872040865818236132559014163790574711536191542495893583013432050133443777830590843671469614990756689010988059610055103726887999872892040123073984142035506185503054033966478455309970600171247891877952233766699417650646484340287910518945865906777665421877172041535368485955177303882026066805847412434296255189896058872053981973502002961711754536700300056132961447726172024742001751051692265022648957265196393051487383997074389087493091947932216246986303024407755422340032276411746809495133848169108502789929839005324481358523498837243089396441440913497447809433216516071718940061582054191132141403788431454476842397320073231491801650054289651659374546780076743406329751713104768675614000282274745601818493231786847897213266395245733606681007956834937407003581857711575998925804407536957523189004387225353726561562550934730845811883577966867083333913560545191193238692533051752042382949536122404415725579231851131610963203816317295512752422065795435709886614258818369980540871132474724330296910103195543694100610926020125407013389167886568134035238638348745507659680078660382210417625577314835093324380382320776575148889835040610305655054678816571942706191490103781987923658705348452834375064935258664504592779540687838106841086558432188901769965169287697899274062613603996594237737462589844019492896868385123086654582598946540568019708148506990790616295967937729551463024391521222799565591091497980642758954898861185063322992946971505892119671338293494808954916711499092351115408300177642793780737254850274032851186054985323100673899111447977673395784222109316212721080054774535158207940511011411076345545191488472524464661183036774297467616595944786914186819576720586561997202317479247030237358574764187340425207026654150304423437445590230982486076027041304412203370709147604934600458746542947748196356716620551084311833553185871279033509150166333646104791709613953609414870804420993620725475907303285404642753453952615183920411995318464298257320501430810447911727666362725352877783097014825400341647870675385813450450675531113507243385014932489589373261023725058992239356474778212389131973239186716204580379001881021005574161907393234302234488160278070680818287684802639724613752374959986056552785869616747149508399435004929711807220636792369853835314763202456000158571063077222153022134352503627580481681025032781911847432386291601002726416174654054540564648105416541710344287645924108427614224869368296159634946568638204967000825484540530208005311025382406224095383158849651759450005437459104398644150768622197671766681663166686607196888928824718403110623992882545649036014521632589576893351887183204388719107283278480868714822378298082686473896673180095147539958707215358499082040960670742894440815645690728360094044173078639400005520210899238982359975656162618334995546792583635728180765408187170829621808201802062193963312481240082425816941514045967697544092482976001991342074938563568052864074987731400172968876976783304219480316366955736006285971984428910233673394588553237163958579584066705815405778821525312808113784338035652212244219616248871382175014351010946738733308922457134723348513171117189111590559662701162881793801170982450608742820902039281761937875652450247325785768253312801467719290904503105885982843941337502775549950498105070930726683312746840801637656885517408087128133447722969421525983040853485921227886286811640637536205088007270172310017260835705652671773767952240346140907191456077175303578859471362063130759134718156233555109435846850444176894264313244795563131778533984788570975752858533566090856023134639913948083304293860724707464855112254280000022434429382886237617940584741483433343184384197461195971941449764373503266602093231679900278074337536975016140438347606069149209886319918103947296982374239939831268393096344093439457218263556736224007614512760910914370420862443673550081006580115196271513334363611263781450972845418905350777096325484850455314720927495335778584489339855446266227839978139877090308827751646756886462288829793894656775228608057574700290654375454255333644071137564510603678712523256167283296533505182580256391167625117766587217113664156267892931112389478270409614389088879615617764890916267061291017872675121433671215828596890799033777066885174154849090356582614119093772620883777974361938582665943672657295269199833969800820971136524766066084857786061704134088680055956650453140683468741626544084898055471173577369459950186205750498389752557023545744908273094424086571056333617738500792144586762822050263797781208024531322112286365978451166986578194274451930189577105939798313581884538525647405199151701939408586984112829976811499258351999564171147316379016628434176653210785605242826562148166154230245084568376969711925067649966777416991650218197482494001957093835251664977677327165987680375201153012065079432421678906122666981051215288218848729615811978276743397472864730421889299267840765843016184740283971814355148904205371702200773639665645420586135023458760225217035428330001959277490769857090731517057973444629453338196180823218563812751994782748793805951688036990533435505224685379071429225287210345718281538226176643615253592828904276252082803734632829308140945636070144105603684370007037408850729021364239705034416553440205839155890678114169847920699117444085216700413241763851540499493576665870862316996987103553374469311981551400118263525537798367662801602867723200613545331017966328056142033694110615126020979204262534526076939494886439463335386302692348734572934897723010837542685935082028666685205359420807573318579137563945283972401068945011207578175580803441637030013658136096120009887217880944633137844262315619343172145048704422274515456768459566126830017084929807947848699923950759749899714786609514028723386511286173975226052656528367961113509675712012992610800200461775845381990894891978697997228516350014716774488631705373263870759258705450891010411604390043187069288046494166275490698461629428883085356447380748182366431653867223483550827892123474210814795073571760283702087139518227961094672778264947343148096653432452007350292443647369574787035356747332446271277295257415306510907106447077750426381779783600294086691798801279365867709325636614533331637661080410782555567855882275504097537930808836459411095415035117688921740171485375278645732018031676909682705818012420920401434758204846205545737617552601977122704013698507210694652307441518528557044382322809271201386585198582582182022452903122431885540062600593005898764800613286929196495878677379635429286369870090504512896860301456908950736807560007702687834003827747936687348003650526906777128467881501151930970238331578192715624668236761873345569579432677696959589325301231037428460676558754125988320848260906300401464523092864810965169161107232450715270244983099359246664384096076894098266199890178021111732577479992657621773776143161384863479464329049182393314925475192488250252548959925924411181811476498904316214771934713739101626651165510367644107682059504961725487034893729075102940467605738307846604384539069464383766990424574973639140905324219063459322594614305901415576059909931458963964847503727876449052405442128567874038892709191210161690230980656762904472684121040031149910982656217011493166419045675924515673614610392588052702903124527615592370913287161127750262774930666868671052170198445348766634393100349544698294478562085701358179148940869112784660054059378047439927926401088625012036495027592252151084789037979522490608448657567822697603632535367416099662901219777484870748925261604478260358916576678372060281647805606046269031254732565356049817568827968781954143591922646493947740944860905019372821155194133642656639021600471049199697173497551521268430253152836821273887759495297927531133334126754164703113340636130953920568888543355924697721716613422946859267358656197663943610873166725126112604214116087565970334001840763279104888448661602179629092407244078277396046364484931452041544288857092382041986262289324377492601418602692925692079767077217335923436653483061019707893535053234085691130681796328974884854905092575180031656559912933149428503091369603602327708105721758517148992668503233409203258234253179372150269771802402448655283508873031823276587551166634534778971689886865079350582359651459113636662546136279547069874850467058212880043822442852461688031995769564622628581662314470697069730942489367583680218150473542576497169976438831037329990599466565465197304601055045515271952931535215699828539237471481279584706641856146527396331244918363160052637544320985224184080231325734952456827440930881969077060895828824013211352177317962389400453312343568112403636916896067512679234542014952441679626027147436171088386149223863227755211388303015262291172504634046434820684361199704675144846093941828838872530743346200706184792313062690110170834958193651426516653837513556721096622113551849252852252498373622285613929594875241964009096093783197626020111176945038106058922624855983215465246404918823188601161454679474964009528864602408815359508780988012362764674090710439943250214972248119067181818909033230371359417661163945869830739125873340331443243420717292958591714321882822243141821273010163160606802243042423317179244607294193829217998549919241290922388214999557897938660656406589174147900498722752709746139713646656014338276369387659295258827625815785390503365343454718101932383984086976129125735769049205565416921124592997659318816369499397619800116818185074998391549297589672070387878530900517622847356048820944968163148422322336972437542788642682514510124418184526064407921325146317868492552473068281225354525002141282311654353672962362277861046602431895825243784777960658204862271852568729027800252332822807370738643707912234904539031221580684346735548178952755593203263684181291293744403439020549978956081987781975233422664247366187748966417321769140416146989717227253174609501717339256908832693084636347982193274026738814499746888775390240536722462906706079592240228648845853981387199474835538956309592210648607211678332514709527566832443746828220424379464944819820302322734142920084724209949400264313547002210516823098694314083351125039758152869124881732211131502868058665362873175199758039899990824083299651968148768852823276751543020257550057327927932827966342356969510289314472852362432140562986218140694166210108193298826370033845469268487397112122627036444016207071352447627553174862113372398770791457729048061823137897068736886215715352050339047627389188591053155237934757338155743977219172121094692747808286123073637080282181890830047029157179730824289823253903980255160614313447083158353877374209947089966899329107064255820416927868823825267175103150783667958481895657321026550278841600518095708994604993378951512052719169020512440038692426296099705152360567032298460344825459556357192879015331490595630703003904726511547521404827887814467350902223411817340591374305777336519954225378791877798235069857320881314747728170722351981392470958319831128392208763334790200881267885138386210293493338499073958895161437598017273170313041997485149338244608087477158711464463790636241378574484052467154873088953896556467490362930509939653917897578159685455487769459536673418305171233114076162518814955595822950200238448247143329117704202380313187314356101806915977086534874330295383175015369872005792625625052423371546425861737274994694638337450010631746504444155143170678924651253663981039722405077853111405948699471989987390509946109091479279415776430441786980062179602028763323951634853085693493977626374364184454122950946361879709380185609714388237795787970873415870604272229550738560802240693443144423477947054136816325972184403867855706690708758744228159200580222259866772359047117338363802272733389369634786847292766970369263048051112121898169828628491810551747235872130546200049626234898151616853772920093624228593727433725320487481650678506087702725160914619300235436334765674176536630828306005512702967591655786566155842039593066669323608976706880402686618082331405408604976363410637403350550802834706620484935107023219583820954551179880448755141642403989137816496610120345996989846920921075600652006027494202261964520007953281459244383772471233825578876786558493106992496992683533871956909960304138261349910009906828197916203819287666955075882224101495584227934432469706746547408446827259216114319478912442166708913016327340328402770703856694394718820511645600917515557429086743032767460639023251761174415537258563391009033069094772124434299301599088198493632309310797966586502258798392889752148263899218196934859422498211877777312614595218123309940413446595269234914715432482697544367953315299620108485973367489035851027531021973319733333856678360007277413313629460331568043386231012962220186445008531079716365366275526964379771155804794537484249374832287699985110513885001825696690803453383629882238567699782153019642672523064422029852998069232494522654704860290310492408586912701309068866880545268289442275755825364604247787564344470007442161516280403062041774961909351394056276323368177515784725270672552485651715934492005099578124102531767119382341354226010663748874734161068190367273705313930831690275122107899538170228297091357161823835590052157271278609693348208542458533277823050995160956098596521972635373022986341003825398298662058554210114956445985556001789623400663609603646911512409928556635332933534640797197408007045534417531389964089125654437651727315061116205163655349206352106332836002841054188126515847915709269168857405557289459457127000027638418783723576427136958560291470652241614789576438247160615263443929637835606510074941630813492754029125443381781797605491485998846584661686714391817518343576760585502217364514093076605655955247797712134981272922109354491285769436785967053919057507119161745030952066821482261173085540449141725717196713533746260239916816968184153915435852099821761000031441503548661592213336321068580805462934645520217298129922280974235511967023812492622906136886486404581048884105764171071987360929337213096365448986335588349164269743813012746259895297792080794351750323432780644110281952173210378344960052367558828777405911062515421896407946107149318354238051687243486904234487810907209897838411893061185749233040469580025202942840632344065850113827767856886968217116936448866290368299132198638774906792189935409569882971372654950047464033674587844311358527640811090001557090076438116753363323641983791420096962739798205247537083193529897324790563181293150408127354853784795155223993536762164185700455467790560313925340468669576618802664645350882809968075413677114501134188409294928628376168160861599362936025073693045280735522415981763138221798866330475158016319500270231345826646410761869715763110435944100703902429983879343583017640669333788479292303983084074303639851352445364697542684304349106995379514729218368280701983887956192664301579537867689359953413553028365636367388717404570128994349958722803469139161887794795778913199115894628207681997329609937964402603874755079829844443313664861045656839249779362619071529887167953685223204850136936895341965417172615410849366098725668443980725577443882138498434860760685007419046847103751548893947615157714760603245233005366268430939903331849669471989622398890190915486521817903460166656197681393637212147311883698487831976481786631547520810480917659511532980107237103189125853685906019156620650109495632094661054663090816079541991698163873788583297518499821456112415857454181454812169947234753796359320032534233713856675140379890146548185376312414262645447007973769895816891814299352950304328133060494542653579340277077055381528581281594324149369750013227777622724887576064462563533236031680392208589229855536346736977189952139805917878523108271147544800969825901557098193960843436580262463565360569269561987909113705659738026819357263356670804078886415780277953420495465044989858062772226167011857049335399684946980690255353124956035118559621514394050730305049434532988282714628677970043304427093141468683581111885053597735488243790744208100502804089439601273010267571823697474703317010577919856230466910373746298346916358478869706735263368902729037367551211239498497444658403670823985125295247148105151129470634633030802259310792018405229205085075664708019789771391537895251642930905863133844971880730616965729345533370063907557849830281429585284401737017570571984163807666710600125805494476395080153019641535072582795514019132441839283820887483276410271672637317943413497158890511702638294473560852488231721947221511367470559979563027064040601853673763877047915354448443091133026300117362363823904839591643334623275760868366858964291527402391280489541057110489383545160040392023932756427626161822437307846653239836453294476589460802194710515745829334521304025661234019727242286746468853146768007796235007626103308485670992836376469752415645650515285128521131886576424734219820128594199144561566074298683750008472953368184123788295536780902559423784798256818195549877084998410871842113772786994382138904985144446079416177826718746949827453280164996032859111922101054743258149402054177494420296999302098131116456076790364697165657219935422587770282719035374188425427521777978608727357595705958628058740343988396655575059379243526711006866107744761660491885249672064692342226847736531336353738816821175373946608920041365662265133752459273658474114133966083475677669530097397164728656610823630636782247995385731707545145334792039765783030018789552965142362365064403621649709136638398158874989205453704824758995262539268338764846507186088352649010161111698691826355294169287097633413823177609436409223885098184283131386069742764127179698806191001744030022059668028849919237905991734497886267765708870613181579738926916708814288352519894521662867750337621607773257614279747842478276018786100203841171638700278103827572949346295242217678551085097706572910525859584859267394963797167440448062166372784290683127529965966576499137053971245833293276168203381123203820680692741571850967998927540179187340402419897204454724226597201360908103724632788144456325005400480821610340958586742995494701165693104675272700486211569001452900434248102493534754282800776215505265897423958223173496240536701422204804790127480162671441364838801334146257702394662823460707734007191789332605841724015357613895377286462633014743511916462049254639599390916205272923351531030914676945906301992915260544539991000026942907234282404778846153020238643543799821799705354077717474221263698864848294237797438979765281683329463655057398923662023089547360823107139915467760147527865991760259700352597663231369279442883946074494497726871357092586885062553528037025388061978772029103087619518201221829954604427861007249965378553099038030249360228020702135600397643713047092334905336392930323189020309260021992661285048156008495562300533266116875276583495475504573187614146892834611589211578674283502395088951768249886566707553525765372851210288107999100799821191159032194335044482747406688182819775155616660322605294886615657953304879824133209916049071910402593930013372610921892898174103111322361861827702945748730336065197550172829289380392801973792834232708165736495104679656658568000411858284625124624497638988659641154710560081816064918100777913363072980975905811362769603285096266837503581661231044616244874642565532777903845730006014270341646104140892052775740438950587613052487801172554451519320722533179468870348089388241649591572934234531654895209022966806324992274775686215295798258391820142242065874428351432141886612138623814725254504344942533154501278942471083580275746514326281586387177915787876944406316446360220619795917100213293061607655277207831882183093691179658343036298447668072836994528050884167591197172979718252712766596524929601698554573672045255290100249225081297776947954157536362061976017225080987298428876921620203037717020415222682726854094683813809319151436497311658061926944183211818552386899671032721994165745017987361003262743381969224751610995935595112327956826465268184502031696511229833662070890043700992122000503632298137451720050024142592556124632298077238033290265890586897629017964093527401368273632125042322337704831955980343084530367898051430109159066693074895093382750067953210549806341776955138084508322929238796615483423383981462169944966936532570170835970146148565382640321739084531381804941765118436685103202668868256550159940181293416110539653263906291664171956543502311701964830863363788363315629442399425549971781700866760992766394905275656489646142655676516224626549178416374438742787786532381148718536464071582967676360402014445034517563231909397023026499595263059958729338613328768808463450318466554425124319379606716190367767077920052783815833262739376678545174624301324942565963546015670554434588472671891361646761096193166125023140151118665890403429977154167888130175622811534436915394646127676647905041777281554039236948124511593837617549145571840404004411635006567530860865463685430684705879641635724378853883298341012958833715187926032030332507063045767824641596551940335008479574299934846544946257682192660559823079488097202498889834304741969195657884764678399156179210149425209531832122227201251624862801091763723148815020819986145840688229309807439555395993603553857936103297450688923484687627379206717031941109464659518715838917577968880918143197842608218917744940949916001615673766639001443696339473306089134910816868542779876620516218263500695418106287517453513530169757061442689836146443841414968433420562919773301588749685870856097805970012546818888282150355210006651637565901143099140126095044334393773178780217019685895962739105739445893533256611657396099579165879546277359068661927064909590850053004818704758598825193588888664739631853818171465465208629254562209557665425674822771534982360215359179917227366660654872780560907339028407837322121052601889031462075284841358175792094647766395731513929023326255328012229968201257625323302534443722686352208255119840257729071783761172982669831129124204549258617944373967137490779469068244517138948591721934874486246265006803000351338170359147919013804113059802028265660814109594370272769275049872792217447502921171584804298001955697064555796967062557935651094750184421883066359608272216872971086183473539431572512405404018120964442086124303803515429211340531348141189687779167794874966439591570556896219060039260542197132790223468512715124359374297752058459771293078069455041397776539971704966253491682008702961503417822879424806554447708307335022517269921438834361480936069321785660233874534009801791785896559552788470289201252662488302515457358172600966566506604032433006141083402671354475311321495624833826095647154568236084459810392536014916776332805435371347848995798664715220129898822261320359155853956648366724023110268738063458253510256517752487616316739152350373338289111454580370307956992495333758323066789576379522419663276945847141773395965410813009036570502315612108727196968177605447221294276157740500260167563198552307589271606296906510274945627253314692868585839347499319872257600497206149977558014593679434461010761211856652251047941233677837626795132184542621121195442674624671378977458450414120740953655131628179876116777503533596108938132479351460750550529430481239139386720931737064873179132769235824215202463953192144473973001774126283978024730619780706113491934215177088846839692733337176749915800379762403930230383122956098221055970615701841005766838029267050502037700076300279993219061042539152293798827348370645254418358028794546463044032876610691008607407620040557784576250591500843581675488439552683956217651412182094994324633061778783149947252387582033967914983058463850055156294670918590669285955129266287654137034326299276861794483539603806463726771686887002454785879684209801870873389643249384177857858817730621113038273359288336147567952657758444585119450550741211839900592919983044128444642118298481360767165693994478950428479655429568293682663184265445476608573675495790739301373501350670913614861346344167823614339182127154258399494637069044859708881725555498077869531068139998913268945922912887268551254283478315632990789936252867326847787425813544292295873202807927102975788353023369932418725106816534693722764099000480725516976238626807745214557197559509079111276742081081111128795573494802999290001008097488225210830209889118716865745592941082836715492730706757969213781003874342596002782953148707524055743679028025504395551367607540943331690383672767133069892954505842106769734118160545907297148746692398072362201784355803313913264656078139330470775046077745776025240312230594834148385347918897796114283546787356250803532690507606970795150738260652099871798788612768263795394032765621710861054442992947661326560500932317676920456610216316671801815131637982577650843554395894228876321208092932632035429867221629073033652608115691499767452863628503774144489939765168101086116140521323866884135703348041970087115744511957279509554893165549699740332684194857969681601134797060387648858243849653622136031652468753058002123975674873057390366581918993716076087158810569795150441434131345401087538189037261691698780399259285243922824589058412852100139695050464513796615386899355794811503830293609859099560273129374239893545515147867824918443511329487595067476530876544151845118807756707347870029202637850759275376533768145821525035735291575574362989623363884254263047599658724906372372405036047583091303936731408781833243374299747806401073594821862966667896729357669020624229478575906195644459181068860330337448386659758837923951365660125482902558989276503727564012946918160418312492064235117612824525441616764625541540121600571516579627745677074402829040112706681663774129547292433495430297590136943430000263066912389276666030473234315398901062156013103315380595030314717993500220479751478981663847824845812678793670602426383341006089736641437314226769060747886138289838783980957287292107225441427818696206864323879472968644711711796449532743748574558261042944571836837728309404215094953764000453274404603165180748146539498283899501829603381652886868254833567069676308131401544151909437877563274759916847947044707770479576545030833560144958761559304268443150770337079588947185172793691623289181298325628820198217502786510902156047907995155066088680032314661972746313302605243404844667552004210680747685703653979742878797041252469706488674988542769736521436019200700527161951644405779487551803730658212418655685943621860161218241625830496382617933646338925389399353848568399944086463713381622885989977427480758080586625001128971559082918877439443777393567254499676429276764716430149007378323921068402284947326290342575971086199941219762119733715042154894345602168723680599406175776249905650758333463555521818084796563070094711848821456726994107176108446737147754803290774221827047078973883779677324254656226956836963291719160373690149639160695780928264406861783284014422598578043802647681171107574487842792510523215626436691099822753334024234849001000782989409969717969253259529489849882560140361417656805351606264435797670621396865230639947008827027399211245752476442644120050619992298406259059855881814469481219153102608719597678426830019060513569034924445096073583244972218403128145285944376329499939417485270880573709609065746356821655255862569937125802550383362570537720279771482840443891695131819543969702960708539429016101411271909792081945167965946041797526683243019617800236689807726159269827387105087184889735220138570552911855700935771873633071827170132338436476532052671370459718727348905180563299631039010967276877163096917392214365747758065867419762891435264725726343543017072062999932251154056669312737286057507212379222508567793953010028411003915084324308245248720123637440082948003172213445446272551397758798778905223206428643726090502928782258847585671136099544315472075050877755808424701881691269058747081390149075109427492435489338264229395861916290931778814851817639850384433923351782710538970996287888359827093909758626108500228751573872111615458277481243507477782380504194548060745995224962470094398064691628756267632584721557332429221935654391717176992317682739913606007355418689101820309226711533542213108421327176920640453801703935992472397846664240070755296912939489764503772144766219346470860549081383226689640578028259816310577772044366734604854286284949149752005793834759742393578532510321534926322665171636393998866757905390800377518649195208928062945272964727252324809335298593705547809591304601123964952835956469577484577790806088406971414412300360921455615508459791749439317493419948769781776423772302082422541702275296318515788984006360206459930076241345519896024852320328772278165591186487700958329767961823445640350248207234011929568347464259592421609805704624247478878485123042089890157591831441010801758592564867888247248174356778565279994596814143250389464855763102827445608562045172212948005440095494091279574652748194278792312370640962995772661093137494686058852585403061262944641428566949352143468170011772598764059946764080773029932531536979164590082193539885323584662257254580964403622305615553556133518482504337632041387013436262798520912368617255232054746817419307599392698592325218085398035646232092931815352486376743070997151445083404542056497036608199634249904248377659967981854263880393615081720543160614585036082979014670287692910762330644081548735428712077459032150736001955066859785328032881376562090514854908604973978139953897340720620328659409355800822584217546582250391209095660260302634175581956917471367137953466318880973488476275242909699153067960546170472740742955825300844788542702655455855583600242891836956220037460958574430585407304990286037673519837418943045210843240263632699695229754259950053032384006942663549936111520077562963866350605284681954817477878537318868419112721667101243985577570498024272254027530844948132483006280325494517366219239301551489214989471268400454770014854431989432232053937599765462187632006779290491747917619805712343566809673985304223296459362976604230668209406291171711194672179724852522748727997614686974145065851988888402337620159224773030554223327979161869655257123103429523615256610835356924277152530018097130559373276312595931597686556403133834378096292537066847400401930149292429910764652593099402819738016601911842142137989958960203059501073261597988010987659631540657858237438136535611653752878693398493728012008206879926957091886119745113886584869292766733209853472327473150424395157571219214714017726350906136031481779325637741055910847151554313442506915025931061541337072421445266057569524808880307697511212894897421862954405632444716906633274639539746221617589104595065809557850606287351223953689005149114272756322900534626504975697127236132083100708330563217640095986023914596301960783818109184837370020855839755009967839760233470559525435563933863178671235433972956334480429328260981254080390574460525259271438493686321905922773356525358973883100135794832923155981709166940082558821974619174589492619215024719543580797715949210703944108331991022330039857875955868876572944341577445102471737021205585483991567827998750622753594897487943877434728628876151597627189425350513738405949633241030458720014778179840048197806540886752690757851007986109616270864284330553595319198747517901673953209285308828251349481640930829315967858582400910791388991157864585747380494187311033380739436580603270999976858304202111352898573016136801189964959336573875238787450550641166148059499420381291830719908919313337525247473609455876347366397582645335911777853314195150124424206671790502265433109201235959457161738162354108684764821027401520154476329651347371429943845831874830463921978509847542761141866085481506168686527766752467772125322822881202271046705105852770609774774991150724658505903633242216445207947272164893900433620852671878950268779005428455763619706373828187994578623586008155559131497546581961469930640362446884950600846233644923721040951658089011776362072612063328680267200601299119660334948978133048615128948016045981131080656335696332064947408226444294519517819825963412218892176290282222497042579114929857330127987439010832624256362448147157927188630386268974138630596520965264221931679213664809304474799347543906398905795776523093395776983252618398033171380526939368688539465713175648901880021359401571105183285344619270578933527074553272289867499625477481573199666360477086307300563268784106074269709343881912746877427269767971733558443786532983199883446852547670004496781443982504751072942595701732548771963972143493698972436220275146736872616620316669107525106643974692488482688789285595381290621238782304275597182920158254774332742539288581188756339123462585982263355238180282219786756996821997636895977933245313482016255250106272034082407052627061641382863583099493678533687460834238512371291775064610632039728711511523253086922683442968114212013553495631010367535836774709726050214391617972896556606077294450961228194736192336962434469297867283737067689520319111034760549246918223426011606316198146058402152683347977708573857205323645588764334383757778395562219150116248463537590656953414606386042442161095116212554649505042221845607960974043614285645856085386786386312836420801986579289407339233902403191454101603895302699939085304058821917857874772858782464664665491658516562267390256209339717726122827181264976922004686431996342502159275823385565564945029608565452352637557018247959881122256087450777794901560857941210873090127314220236376690716015710741782419107702275900062671958218116552531860116605156135822654950040004877036807430568336522816552165701741349920611190211650201166894695039701226420315882007601852303480517813409619395716638011174131306066994395338183612586573931712962076189915589093115660368577973465873580503219226929486256778442247343019353956043226738331066494030464076514953615835336022959809919897668493393664480532782789777132907580166159276482111176865664530728369379151232547792534617089928113341865155042526505241879128166775458819536278822664005591792814968198114057353861910125264905573681767894976870686679931504710744493321699628515195351353361172458200394531748375388943908447007865735090172031649413458048214860916646371502429178223742167013338430068453564670030498816633548455614814456953113861117460058247698895560892369352086168814645009343475289310878129473629772155999323754078711270743855802915967000654241342683003879268090749797052468732432477694392657760119874858544607245856475768785739377593886578201531519276316355036508689332402050512379397789780075613295020091431275663553763113458314179442997271074741075717595285709378322701011179940648436388040343941783358194973221486679268258809294214610557089345364461979505559930731093393594930017188678722822250662676555256253340883784235140611984555022824550731636151506269553077898621255348330108368254191769282892763768338705743815763147594231274858207550653635797241683574634659988967038524093370604025391131264850199775883608768465833057360647448990554069504614632123874897498127639411255960810197636438500086265430324104520864886811163140442909061729389758236737362577351362219372220876361545674608206366974146190740073919677011495301879748600703839748292645197936412348769914329765673827270053817169711992469339296692159126330722429005731902553976851506484102273101354983005265481484678352427710278644718784043355058635587725653085232472891360927029651069175007663818766813138453587881656328388489559789493103656970777518674202219981538789239287436580455709267328604895547170664938488489194413454429113977138212324489095157027069852140541370814140275560515793115457926931945586082530549401185652117030922865491702138436679428525414983342244854475903290813814138193700187117440533600378598937666035623941456158990888808084097306489169136460693671483463191648704271256274477904906270059390563282481122471012455743974927142900622703197868301392066202634951739543194251845244933881324431035809826510113895297878502139534379999717418470972373081770044543157811171500127724423101243655747070399530545748814704089398586113265567283923577831949533635905758795328413008098752397747028224265433679858169875716928629954980744269403992731540805419150250641504828936108282210025409834357117953449100897781269709786635589333782180327294470972366755699070290360564721768235986164397150194939453789151400182064123094894927764672430854362702230932857368626007778383970476229254912669073103506075207838257933767115805864345536116835943102942748473767538564189403366012374311456858555078146497004001740968969393325463804210059551107405894216508455184357893508438378731517208218782362156034153965980482470336335374837133464559739076693329017849755632719678518680912750119841963739927993189333191681119743790459607134913821601239623308004783019710205982202917302037257072684910380358065351149608128216469173873243153523027839724385248020902292937005710173216897463464486602367938179949131942885703367424831393549594591915493749284493301305003041820678555156236063904967010333331869076537544569142358026483424574798373379117266186861084542850296128638902582399950380987990416118658628606979572567205352832479393204904040601986240640960867572567948496725825277689049001125969060615629779549219333555443875685743642847892585647372944635161167589902628662798969712973236111725654983233182196628115480547454130026821618849162547728253884013685324186799712818626815920112440172356270805907574779210620112318876075586029263121116191355409287462732492617648866926323451364592075302565003428204546066020759607686116131711696184191259738270745982228184633172541005146008157595916178504752527251737620819372698386633626164809620003239616238891059418167550860487984505396277263828288868955712144376251323304361863785672636578572336211462504257777034563309625661363857268580851231048140570883060592346033464281336942099198747206289314100491266635110547254364480407020243698411678091919414120275515260005454736991190949677760276148135641885996402868715258658103206214332132769682755941744643138731942438616509159499279301959448582227292078455656619697413889505363347545714733441985084574356294423458807963859711440774518521973829521491364705011978797345754521473980151177474035321323109185297519709483709664231703364786476110724948022043191061574279539582911514558198705910233978519436787763501251171709948718109628387157562470025727963293984883871162372486668905552435665780743060495195492410123783068022880810112397130554547187510158753918667248784163974467637912057868040578871605199537102904728408013415271133873080267408227557005389499781404317046298086898457810187416291358823136581774859226440636704858589760344212846884506599896029624770392737642746273184298286679665608516373526889726341355144879189965825573866794306572630560352391203485913564687613063558646618782145113284533662751742313065262247856800160083108476041545658212631747066273168937733545157330808309415041001093425911297216856389481730580273978836373785309297521700246496999376598093354925115427891800271501025702682871747559831132657883324834278946759772201322755524291398848171501395194686184095003893865465351104608675221480367992899418398931870473479146201111453539087496668072086186636016497231411271636987345340156160304771347529595700387635147510353535412905115193201853730704379513954278463772450887416722690893380544122965893203373932501565869728013169889637048777345834793964300054144440957035327670376375366197832896272939251609825590451018227255112276842586354903094202539843825700767904700416066298830031646476648631954824511612940753536076346942724800071556213567273607957385681984317203184255806653621699409257793471029433634958540565028919535632090098080969326262021478883540574029805940817414505310659756762836410876456568583227324421485439101834595228842695475330291263527145261846596157904684427611739564089287020442947274959019017929921662345407077787073464779021292877025787227109690048551725808042531111651377726133434627866750767976206200792441101760365097406784365650815114485111319635377367033807083375242088738606126332629199097442609008370628474417834308299721759912819343312887730518064377456228008448944721727277622219840212594820262755241537756464272357586718817199092845874066561292413304349175696243754584511749106781403710082882811449079136199112187177266280886384915537232643231780953907837018850306034736032901014982536791487949616091736702407690194425461418927400194651096577217910799899358500589575056704898205602319858259011199855162509709164477236242106059478918107086018208678677993064316887288337173573065528343655453936670803370246347125617496503755090452912175502085664146018560697463754117208940657337764656574866308396891596144908562823216983067778675892688004713501780336955786467581621549664055165225599457237284215867747396125965783593201126533715214057788154858055879087806921861860254757522721543255314439304788435222784889307280166107585938859206046820879910018515104909826099300905485708984590544542291590066624609778373382747940633177747089773756173766335669120576572010507880169548028325195440327303597780479765373877965400157039473571599424630799196936090394538969051928820804173589796960300855775774706282686830549975772007544838938885072855367051116806018964281253190825694838470631002635371733632876185168813059198282667289189969476873718470740143992568799447338787522137727770565834955969348335069970049918276315713963194304247582940191049250274055537242284996776166898146324551606119417193129018044263919068135296890513018285681252830548003350800463513219275453445865446409989821849929705349782654395728517355529954475416484329469768223127054025855959951957085411341002743096998791844605102112324158697775861546074603583697326903948226342908143692301484505856355198734747983556600611469054543373675344643649202802574391241853120029625350040760301826587440908326634625879733628083936325616109139801973082389094546063254898610437004307140166292009930608228707363451923531019656425424289433638474008034807059306920639427193680916941505524259844626892463211245278454975776628092791632186641861850708352671195975373577411996847067300210780799431156499012836380770277789065522858305071253849578958503523615440866508716855093282632847253076618016340472086913974510351217074268265042946658931312493028659109054738456254177580900885886027413489358669325436458591192253187763312846009458920688498394797978470932717369973923868876717193278354242000739794191413791836359954819872682540571725397911595084565281177926092843849663442833602438583330261469621312630308707195120857116909603431684083990079361246184709558332016027429656205428160597221992433579468587711231787460068045987346929915156142323707277907907398608729820961379186284976667644841974758672824591403518705567639988118438094954406416658794846954697999703148971051810338305805335036799214548260301539755248516136708389646628075945144132443636969731569703587776536944318405506274662224110660533223142355005289042437796359712139863157251360027548354967802210236940450006121348206598233999626476536469252367147337073764185069259446139246060095974331100270861713431979097767583436606594749416747232537373071334934567341965853773995168182566955288464251865269340624005915688650254588768358563414968720072881976134978097410221904488764227123391240312630324519094415502048370617272445967925740988674617682606179022405518772686982641800636330438500496596148170035373639279804178952139566668429124978951846386665577151095368746988719869914146211264127684592621017769481488103183685741980256809726956471122721506179159385903198606600752302960507322769743447463718395877595932839887912886716123877773544592289367471258552086952176894413025215437991506177184217059061820115792724954476580987867554538142641880162321888340404022197457265545161871416196370653520813956939812893912103019696858816744621886424000343988187371201567644781132779185502242252423416345105716013554242804717677846681397988591179766917026357382536675462286973014240970339294339932693332462695361045178627779741670348724525705040211969054848460338853518635895126130170659361647197785929953667513190144069601654884384040579395298426924066690627880469829786230358856264519524720368394511150075799376960929600110233122873965388345378548181292193000782061860384133448498360457920653946972043049672060338268555373459048239385021853863612783559431723228081727654712305531998572308370322815369512625961635660810144962884065435924686733901036025942643006089521112011853408487667061097719519540821481232610424197011833554072950784150343662958207541621470100752860186620766337967284413882790584282677466457352154260955154645985452523719312567638608493150372930183525205284441012820506507030055724278995194992792016203137778590060986316923823175231851914181189243836429281243985615506568172105041525812146808069974926184233376787168751526456991970765996347571817822480265827724208304053034748234063278092974594201197787891564429338084767492909996630319716289182351716694449639909541062959648753921750118529180017942640528970544802649683270042334863605412888440211947163948408993083697797461371032108969651106122806871089128713793973044818122205152782873092277624809104644956608835775119998506994355468232676793595750817610890671936572990568946048766413974914125446826439537946541455085840711671696502872809944595234397044925190317682867922821645796879662108470385963016593864567411220229400674300893791267590432563016992705208854504842324635614367906308747904340885968678893656805015534584448967535782309729656784007624472999498955181832006976367758341138589001592075707669367964392846016972780093328539258899871122662338844572880696517981912715781455539500215429542323351368281720667761056158813192058911561048933483958249460684478705249838957775489422853023226920366831228828288963389775192535070057470040820787473906309062145347408215381751717999520982655985252966209911411599830897713711984662341038203445503166852497173838011047498864732771001623472036189958963930634762676463860319098537571646287763451465165194899153050879895997952464946907514470247759080364313212850137153349821578038847491138339564971149671392859475403762145252872142642271054901849035157270964361904422381440158949830426312228300850812204120447573772922722008998425493635175175365162720808870677946504582832424501211878022174241225984488057185131062330371634236816076764444730813424232587853633424049926863731124936604523185072038976224961990106445618532223000616458902079014198183677197594543517877557205361316261571859610251243045343569379044407160389545898298282776375729377993474156662346674677248933597012994219744738114134355454083559448079947233304974185220003506663264725898053718060269407518442037876309922228356576637403702966965295488711333718686610671964395563894368788639126106226487528210900595104667123274208536484493956042828739508211025643815718715654925600783203640197691953515716113396369214072366619990047829857505711827554581091700788733808999463488375197265448878621538772136635951016807914956433477758825939337347052280309012608339939299489188304054584612944825747310142435999884617405933408661283014820869556145015572476322547153293522008791997246537396067798280416579578610936065977655723637428257002722318138924334113035298610134282069426212475491275413290091429735022165865073177615318376656251116587567930718517239739383187011852335582101933930852323129823554433279100574577000596832466109950301776449379538669567495398589839313830390679210197617802918148803175827644535570742546003044372958248082930884410485208920761064747265236703290581455392563015175066388564497767205688769226867870271237573255821084586748649586953320509112768320174653484545417610972031089595235269942054235774389090889039132878651806323439886469102737334014754006824127759249467813281129382190865613005157631900502478469299525483303471109388199830251542443187228639421671002288005501806439304109977717069112318160722030841664225627623722999021714919972068671811119432169222197575379204040172170979572463069086548502741570141234678980303698809680987622020905100318022740635994247597687289178269603562753820097344245950246217398359818417545260796145922129928345123452939379999699685181757225786510201583440429712654765045417907846551684632417526972371725211972888796847482562856584193100987908877010891756237984999379199999667357337965707328715625799586759163084523227542889163473518923651269043245279367531668391890142579237663476604937688875638289539453932654480802556650372796234537713894853581607501905507638287033126379644610832433128178719408019915536288342909370151063481865793214378214141199841555497136795133378810617323897298022270746040626830917254967995308203048312939728844348568758745285830559689912128843813702636949430125002517671596389286729395282775583734448208878514073205734332460289907337666570242923454139158838871905097129970757896504987335454005716801067021135039452610381209224614095786120954759345106185937628677816892951082824873643768053985720846596595348123140138628407158394896651171715550828429949112444443991920251115189728820558085975272885128470750003339711760034077045179978699476181601777810329328401369094416918559350547126832541155870114202817930554563721816175412555248151682964817878091878751997881038198339237158618520389027661691164595236400005662169844185583759072816231345370580978870801604229508334337072506191576511982519950093185687263862434148438148975656828184214280868594541247397173465010282589509206914648370267682767225420748761006682427485735053939897256163311859918698013885337366393733297258084854867968014844003056387574514193006149796795099448655973782725866539025683348904503839022184193523590237041648299289527262603098548913227656096920620066710408956816996289678882768620049164216750565012228875062434429193764764200375814824022396024338644082215701091451684983770375127244437590632887038487853013332633862198028414628200473290939551343778126507953906016531076010740808615139693636779682077753412915366975315060602495881683474675555227462330701163721405603742589416003059946802339523499147475493825589681570228298577088525122657213201039127082413784695466451098381328142049177095941580388912717141424865663917840607067941262247208186600473025855482630048718783073799663428028484324370643428316957296430412573479004548820141885826900136038784851678853900443596353495981822578661613629084621861777910101435531681810707118270789121260037650885093482453946263811936877467492427404190470439680339032289732189071564242338887569645221631464649129222155593561244317346605283731534765534842651473673602788608904863646243960718162173886974963891937162237831874753788998384331183622635826854924161710438552739315585947527357834935100556425590032245047910769528540597253107697949594578773372951564279028608160587052422660059169873911603034162004542013493109703637043287335903730050456449392547221048076959651692342961479180655278022182059357106673885526148405174544023242325505989205949318401216126536296807413393702309989772146707177568403053347538041344073287873998459877481058367712486526558439981506622039049189141360812871255272508295027845311887899610377243729640632566579912619888381390680482752060148931238771106804586882311401202378180163447580476768821754156350326438218413130054952867111322633075874620385406123124568792595278268802608934273718025078810536857871160655745494166889568514130180246858510277359233682627869733590954090974025248422414350760112031891898406601396921238047298630909561790360318631049553365502606422886550528992199542869075981902111078229161801849708509154102769930140278205237108232805151237378152006069934051769553895799409736076779022505033747845321503021228345312912494632119388827654366255280664824496197792288467962329049253229375800572901049100136871754808037872277773047170511249034409063687041428176757912805013029842208376058128042840582724142616588388449880659054761618564583705001413992627969310804623356207025920433616732549467709421592024978169828507915549791521151493659668942188641639090066121961456334031538279767141319583805948535949329755911601582569991137249049247716053883789295222342098436334288765685825149086626133317161943804702456155764656743425454331747989103499586585421049355242704680811985770782685130155514684932563528392979643995453105199691432708163545954764768504034187189436183466711558273186585805390335664442852227627882696149688474039912199258859182042290449906436249019062249225265311179187592588485083655516271690025778186898946302029301137738097410292134104658157608330300933264820775344417187229790494957939416122654255921891511660456180102469610385318719565703943722402931595789289147745859190188942048261677876045824489343361371781581284867205425024666983071502228186392618910321734163216093418010856081406250846177913752612786415181186513931245773147347498710525560762794380407752252893728004667940386006285902876410175703250118298560026807567557539626258445620977036497126076736027294566630830995814169631418665693803297737816595815306371675178330194226342914410042296901580741155678416025393439607622282937440278585781606578775715764161231525876384235495368806599410151510231533469237297467285226705696514056855237105192286702718509130107813268426399511900085317527896497188267448067921712210103145829983197353520803012533701646430089578240449923177917368137813897166901463825664908238442752690793122213393858923709771947429073482596973108267149248004942586859064236921145556759383306626423683800997827412206617535909351042805472787120094039273777584166123561042259735854088165781014733537967256186189606577217031070185727608734923697980176194655640756499902040219676130172496109816019160323404130330004965649900910692416689047918352559720612439538253930926721254946752883947100543439086210079758978242852284568594722796414984879204641913924722979652314531543172454408421401051397968192391055350587563854592919485227827153542529519827612986220405245166650955488560717129196744656471131505977924398273196053454351246730451837806524561758060600278224829011746789282867822149916708673390676866136721352856418682239591847939079259489864135390642190466812972068466869361204018427563309091575483346643853725017265375220213120837398131078752735250535713769832992331815556228217592780960043499188122467724462453946880560522213109493912790868861250452783187306400735143650910816598295481830787912526715232047567060146394993175291831719732098595145965680911941005093081036667103675116226720996644649402697928058657088480195460192643091786078423604049710711582123154547961752391690510059952348583723724918869932686848015264930330029529979508195274624636989643460507668869630751578533277878637069276059796904007037264699951072018810662602044119391458215247741688978842101784884503562366959359378816244779299541275104745494809628032858724235581671350785742590852886042272600524402206302252685875469433164410601537183374991234685004895430778880181492089711527735650098742839758285289712402909499454919618531058236517438812373780812750186885874224545207024310668758724679857718250665918642948904731752643836700436856683487220790074649086178758847266499069355316804514332311759455314319300565474488334751837789471402729832103822371228582382785251556488463510644036834414711260352666886787462648582892199168877908339403630849514519429056169539653018952107842138123304118484973620557309571327834638529921754127319068809907565488507541493478655117917713162959391438265901235047293811527138719978736848386364422040291460315779317716443947636615310965144218175206364701101443198787296728087516150075509234992344496449329318313556722329253166550413933597207550001397059481295389763074821813960965427320773555203353890081468023763932703235054570757111666681509352531795358788483572336194869270687442031563687710213757935082627862345598565482627261778679270847430587564911683777121219358254021897533739054961644363228830164523107233339717196169216237014887488838241454853087061489736011877433168118504558660580311540952577410424548636632495788357626096074510037608741405012186973580324198572570102255855723363366097031058831751802324553238521781895179192497336023290396405332107740233759171732531365939931981857978888195489791352506927662824286435946731147674012655858389421123766721482706065288881964924983672687856485827613484039979396929362243091443045029143080628795329796351434111515846498262478209770178101580684536412136712995608745427508322654216015684226983633700614940995267644246583033238314296366091746800085973428407162124216152487422901643912039585066784507213243311430562712003096481602186224225008496623310569049881672470286720754147493381445033915280335559513356474763713540563483485998836899221559125810130386700854161922461502918377417217387734402732703739727200039612850836861346961885171784848555167140222131539281631416117196665421841533979619752578203998793795588488826489082205826828498301997981247815929037566065312458915399880956483423198997845600731065526610718254466548260737361619414768649403035514023161220954315343154704391767135405029572411083401737691067342302821304988365337871869108707629910254580585959073618948374672607428546363850066840217172592495160091359283738603260960648125692056296099119122485452506964292226825310631160765449654566978456926240815566649288512956628352053740807907747126881393811721486587782588082436594154008474536908620869466324270847072053305655900858997955986886101261364640479231673471494799858914657780778185769304963290702184477740283974419169478116286514030720199215813183462008748835296417895282281169287543741879934134893998726604969678136402071351293417819761604160817831785011104494639781684711929550434030361209547076082849829170831742087605324217319050904113464812407933830512401499691048142581417392516652966473940493727220507981824399169862817126148270350825186645678010652057864869048164285062934202934318861002623127255092800035094472625094041903188017695565886630943098219077615703614889141940970157687726741849203121355252718782848400786496702991755190363174580554972207758458418156954169576652670404758430700947393606267314802756498439129924210023749078260159151778731355176260793543048929529020704238453145522206207375144246939264746688336201949255031417173177262614431827983669819701393489241523860989921805755348194551768627599488253287839724541586978543513847527369304905124641481116274233091801047468881093163690340980134157201047841097173467427753658975375145238565188443056226893275543266823796206775480506786877483755290026584102440454011928674139864079910702443458028524232345021028485573006347633184764626563131240654188336320641627322663609622633574954361575086912765596876396213139848134146007231564020496133174719103191990001584038541461989117224631030213827787495331421695700454045220808685715001206313693040254890488350224023768752970479041245940896447238455655864228308374912428209069985760223357403692225970114366098650755003051806053456878344345688320993804709233497489672881020736519742436595540202814486379921895982154122578830873206962288093652863504065926122789812704730780504439858143320537188828832486129866873327893856002641086770865041909873747949794226910778111690798491351411064969487647267121827268899981522950997411720827823746849095149795986233548803534866311961254217779662716160457832304095947520894482369449319272086130598960456378114986471410519173309221147554105658272904623552854256770519616408298393176198751961639477006984047587683261838967984865008432791445196979247913065560642871304582502241946430763440176736084603762427429433571546027491088271274577350868724971356711883373918126170636352857330694361366765432867746366929785183864266966485801146393980760889627282363114010429090741320544869951077972296435959165948425754656107084208425734400730749414850260540530174479698453037198885520392044624225790150996557069959446373078837540035114678994487386038553439487188242411321299970673872215958175350050703041257157767289452305234710728441499518130096808311165777949398555737277309409625762215482405472963766587204289134105713006646265253533517722318555340948795840087971786263388998738510800066265261750932623382890225218473340019438104942940805547464670154195830808796497960124112183972154024405659045545429644413388333803408045629944902804150126934584115149578687111762765020666691997528619954603292770508434947108870857153623568459530137887130103223952475997178302348417651672848602227977069278794445617392699618028073244378572384733723138961333192307707241651224784762361967051268032644487424160011583788859994937428238576763190383874268947246195682393403100550866888683733145832561081159300941420333085432140678049353286409544031369312726924262452846592263520653226725527060144973549331232147336592799319147976716912386388203100970889498466186291092899636827947558940343072218791849011469360688358442839674566006182417473450478146792207012209523584373641523441936921304080109124937272431690275550508339221749605483445005054941449019387256984670022130404117415097150294419735739296800746094278917870585391146821968531377445973452507757424690696487481646076138627309031801693869173235996619794528383219747589984729356348470284926644502971127379081243509581995648169860981445552166774932714049775332510622271029248080203414629236242975600905271198896568222973758762250741701533693093815968314584426132343541823836959858593965199997524618034246288144172087739682495150988457776782096868880879574555769956608862665688797429499610509127891940580084994113862232686236437395564572777139462524311004961567662727295523534720395242436785742114053560944462376965701450208099872463579506361099047113984187313729187309627996071514057346190266795932641839239687451797127710103590706067650308381297522783079783974233881798506773413877546234268935368523326210647195891598521967282590206340600264093655682336605772653113768659175510216974140618550955542965621064633570008182752224841171010470880347712548881255436853730990364124586350453674678925732127753178520839227769179636546818642787530661993859368697470329714665339569747111430105055011693244498925511906066252262097031398791159064594458628237565337543118569145999168111445213608872109584296132986921302743031170166154386470582412725377881084605843702387556646733263807966391188956637152531878113695444327393338490084273426304644707806362316355301180491712286935104621653800332323096221685549708584664420581617682192913410582608251110480280898124413934853092913846904786764860322965042431638051629121523713331580068591273677882910858577911985819849728909835735235680371005386139988750938112626955480631940189978589208840227185807949346396903618495238099963866819319862819216852679504476950352528543229307267769271214330454373087668563221669150243543770999815407887551114376706552415652642554717230433252845920842808581702604985445569554861964912224027769845636050715143588003230350562015679978694472922683229942593932493872662572271307219694113575954083424004168034806258084811643870298772655414291069586833715692423650114164459521529540338398453649929417483923284343542495758075838961880133453096579297959340664621821734796106142759053074982873629788985682446425429853223596878291828331055949783414900083823010022609813102945464714561917469255499242628868828448016246121159668453495522068963376523610179413523453033099451239975881868440258671058494819296206249256097856290867582186570115327523847568294531165186505081022360435016296491633485667741238360172200638595851303220351962961427348961945285737410659367250243387863747283667345151466926887684378115391754275909831007640200198659028675712209312478898495798782655642817272488260322843034130125614289656384901774128122236953648612702829273162472447854431020300882545465058547681984127152987809589627829911902507063900644785915344039841834237920344194053778927558231580779141477881136851629359888249232363519682917163898940982455039867468152099646754361973784332978931265103998334899552037943456142258101466153180498048162108903138625835112684939508032398489190498750230721513495557334031688564871725418785564950675855964695403353669122018010504136488811173761596399739473751567131995784714230687390268443063916606819736063802774970707631106323310883082938230485048903364206952649527077667731967188953197562500055259397424135842623432169706252781926059388822029435739603713948028950632346581620860395836127770273518177429175282419416617898417076460983518192742097601995213572897460381529337930268711600506900576291949920384371948522458387857405871499193310802936668048322833073131311306276025800111837943042068334756523672434763913048508945777570011544457552180156211822965926183854111031519650974149685860467507874746996178673893406187784798736374084457060082205814793302237159942376003936134670952956839355310252608328631051154571994363438271476745889572287858973206972453455979146238260051006988770304379225371742895313614675057537296059586568566214740910837769746998927294093374816818765773315954581413387810426430751020200164799146675873793870789309628420332364451653253702773997845563422478865589935435952257690269436650767451127337436332726951928596628742470158497595570862215688863311408655977795246380193573754461034387980827987636412455792919621108463939572897301211230370905302792397604937025907600870800939363094325143444526610434094222142447801632689170624548376483457252460089993938765390503032962520244495495789929343072356835228277454459828298630455476862176736241644216312152878911921989326070897339190289866548230371891595049149324463470234358048441680970117330049373286559059902550448912885374819451355251709925245507846668356174415874831234391883567266580821611248259273803829525525239824856858875445275000838504098873347697843400051408819034723084450610755171422141511704835251211965850801080886087032734085354325856144134167135888943418274268403157615387961478740679481035272088249484169701709759384393334566431732653268441365751242453671605815841462220091216416048999783844568903696939321608888110418947581774843076642131169176769868223839392102588203727556747797239029835527239174209682225096254204835711933167415915768724607162686425575693573436143596159733654049104349927811645784506165580110462825094394502429103196231918383288593187906529408319874023043921639439356915875650933452620780003041259077677574862843725797520119521745054093163255855115591093017712079339372470627549299190545643030901152614763532600677524102586326169539013312388854314511491461052246355430871541531467050705390927300490597711893958576489671818051497112445624961927277306313230292044370759713854945839101401820371580500486525015864885290423859247325411322418791233094764993909874115955834435700241078404310137993925555016798259222473450712211182466695230818847480830225475070499702280516396745238764632739224484588894854774176586259987269539306742591808445634507070550270346464540298638822052295102026303239287258993491865450648318754975757861263972383923676678849281189658515694990007367954271792093758898755958688098604272079003593224475875396178575229157472165030002300163274409980741597859566248288865050366712870117897008179881634795381648128563022180347932575350213645431326306104733570826068139539962239244798452188481586027485717302617762907974937028440490006281008239158837077738644304436084638525574655913732604775510796822960304560244041908243504945837734820459012979499991329093446849187792267328190805999095494839638834360636228824565133807269453147262656041024803194753938352442113870414189928062424375644073039158754736432611236269874599135436124591119046541279225010992340675037537377251446422378741443358519945791115769172567742963594943145658420622097418280590256654921786432248006408019926237230971438614171287125969760461689667351520511506328668234544928801726490619332567523916416632349040502751446107006127665013452694748636983913847324476675808243947579927273170991367219654204314769182547367602077594146737245726647490262709067194628736613486971820276719394196835357298136401148398602543203696279761515465453957949636659535631517215156964744546901733265177102023176927268443486349417909532811606607226156600211380331548451216072782330503497043797289331398775991622892927084539000396439012803972860365348913654777551096692960875753542655922865836451273416287629671454919313847286953287808463050666131404013295482203203297516026316697861314752366100721013139813887584157352760343025913058585863847161085272143113544714049438602484272129091630292939014492228586255194930323734901975239197650692842542161327783734008319092528949196974839692897613596431567286990310962044443916288229075125101062890797177097880402173946948751057868118462541372663903605382149406143241591701242070231619486240048760984033241349473941010190662327053267625911122291005874029769119865836969477580203781327768696586194361404102801737562342572118339909266266133296748222128103765345879356455182983384688103341451152908116286089799672819203924105482550947848255519687978069406613783713159701881027918832991339814673742482346404768784395780457142647380589549946944033372751935955829647532856224087441688706900099067802777579933021893165050748045326644940188024637060299108928588531651408437771302387501133146032572537621319943215742631916400231173487862509133203710856422694008655667825638584386610620524933007863205270918239957565669898456746730184167778230699840533703029618985658036889418810881712446654221623301664377878600324259606643893265969461409506726596448724813414026635636244068787247321734138824608104973093676743057655251203667078909914662036785329542188079665044927834404822966061492621765604398126860433402353433285798897952462891121954027742169915221372034063980725124265404469941766536196383641932480668124726985725744163409986118297399367927377576669707687296751201291029019048120864809116287723258759171575116089940947403006821590323645285351381965824577065706779045131420917554857836360278035379690552220183223388181756583981264701063265807111708926145740873231926914674010939805222501265530284451751929025334758407075002187339513756662001547763913805883390090294176624680255715921091270485805090418442903273428178047891624901532801549891423943806305927339907655318932195985492355560792835403290986357891984601911514185077904547268958853107730919620581418008895045659757277908152599661614055277122052221117094693724038662745968328622968547425267458404588515266278673704095814246791841592603079581125348225690761748843551911158728325270720457175477415998501088021994926684452810254943874107084644189681631309219877017382470424051095952166895839302416734036729930064725339478028241449342103620716669698904974628543935948610231105851423955624314909350366719271882245457996789455106936034766946534768139247500291491275428415228374252104636878760447380631611899977364819838365411635505937509922655631277607176054964755255643069031804049121521900530798877692436435237786407850129971649728457957409595659359849610377722484056683796903000558929287764663261607280515445469806185687875107744235325102351526423741910912683432663705511551814588999440792576088988000438276985611035852016198122285445669317415624083726173546409176649300090898348261367237953354357703069167934369512771213933203513491770839793297517762924634363184408358003645710191893713648351460122527509944163011236496033327380175215626930809847539553256835391301008472196981939823601890792464205298032462580079836021019856726515604892802349467553800724525504898781591450763273762566729705199532511376225704690857404278467618372188360481783281107533741730898208202960450358141893796266021900574200530997239409059659256479675155084049607258342564340880506930065617668700487088588970715438802496508847200319219353850348734240894229492435395922051672017307292418196851576761886709701660974796278401912695375897493702860014542642237655588552857643762312520803294146069597026259054624393408009290198941012760702366805331132223731500472116842028183115567751965342231004228914311088195111453813251588132761984496539293342623768015916859534463205309813682709648408489962917369312578768960877039874975886933468776307050339129376626633370243400349580907672952807864755549635814951378156566676996719617297648999081697975232283716236865030137747158298863691158661854930104401322736209273948435789328475399160057404517979154091860994707907430382119215860398053732708938049277408634899539648840004799030140356975014773164586497645119582326073563430007249136170252391687682526075959834984114837742602580322741224817534358483610683301990444906159053887797645237693374404524402084466021355129438250695320363116540132648020905099484539997855998970439243840694411481069248473238296257981412965948088731190338920308784777684192484504721191229599008175709870076381368067412113749137606474841741885308200430874431562346332698392286047452311974010105373333182538737071071858345484454755990519831790763754926812372596401260402338944519462775794694703974413660922167786166127806720487207767619660294713799088021581901225410122661799298412036565865009224423159324626397231928887246817153323298897389883779053982630805989284098169275932897079233307305607788742141793548452617154001095306442773531149410160727619317185579763932007541101866481979666945713943843667428369255251879382460048819403882144238399787963240187958118682482495403100939943820412361395152419103335211747379827855434614959967820583364565741435382388398878629503930787100077419466780121866626847167355056452063667106365902199486158035137916045263030526769650963888594473188428343348933677872438999228059157702290730809299694470894064354231267019781336196904649849775683945135728122341453895130005698758735292516379824361437878694989119913348583054642039503983779225342652184736445321734734068276004437424636052538251664962827376278633052442765603323623047304927349374053613142799172980302706909027253266384900733158637341873419490828423239971958142139027538837654447947544201870571591834552975817055382732166604202746947387017111826965868623485083387008604063133208825211289912402622133529901816066395416549036337462123170968177793798992422157785337737925177686753695280560016776863029172018375599405479956942626661736310498764573436027804817118413921663178744961793599211355714260904083065660724542471225426179063717413408503124871764876372202991253023982625815568583465993704133593868151418816993283872539524422553863314098994315866654980191690766312786225078870093917364559399674973679712398118233307098671532550175428761992478420608971240427645198888600935618445791281149665937500653714592673113755633009111088517361415937439453011914941330686500612657093162018272665005178103035546596851736823312056247332727247272949961493424859122249636665957957428478647814558704903346901551053238047799955566532992489974495653941192924734048775558888887820619095573957014136877190028385274891775005485814039967725274930340698886112150074455721751029088010812939725049175554409418668069163384096409788832878141596368692221028878672074867564643425302113756253103258507978002870937746376178445395867817194309744393135826374140793320282255429883143789201025068934706573831134385615922697433457059080907308249144255973872395849681171588304235279242484580615547382018391038431669689036141117304861169129850883229328597201971511371696388241017789228381862532793028818122525071916979908281261955023512268826331986730489854390338196895435641181157715308083777708545475798956530991489200331844618411554074524517452679590758652118296955718056048058072339710005559163266622651923846340263058601613678515865176021526284527128661755771298269130395931268933785645627862571085228093338090285116578775917355922468753266989178802717257895044513407923087418372901472323838750609199033730596724982035308884232333979086193641689236611746074879979380723730623556718670252465158968489259158354876647986476733113399359192707930286061235534915416303767920659616509845023560826828627793679027895231827743710012147705906763559127489921792886939301691193907904009411334135250537955846314229249681898148014797886259317743921826226955022238052355993529513159874930594205703360605882812623159849763485144474414403444954787888256465854037187511231265650173615100249056568235960120045956925591957794099915975017236061764364388010361512092130549789758608909105499065910426335572865824474817700335225271836945517788500192848207448839821285459360145607758808769713252654613849895472175094916442841923985027103944954149923644022805207625324860377192977001588974015129821957645678508946286534376111396049381963913331137360955406611133142075344361371586952865066352725745317504960919926756282613269215751276118269482281993644526289607921406260290231129313284396694960196320385692093686672549715887014370840272019745734762123888969787238443169305518137510894821793159676283108852311326477330218835817771707791274188166311385811158944661037419582167506620450606363523333060740050384056672327916901551580548143527838089552403262214584144341159165820635789930504045404802624507042385319035312309447628160198073533393970310083691732550415136606311991649794070479232201374007374740480460715589389516334440611383929211929683600650820500370497799219517100881545081974854176349673526301530154853280844839632021225170728308430466838761154239554965224253081715861373747083075711825970816821906949435838131299212843907459662094398266691564848241553517499201359181012880823703481714071649404138871180634692665654189214032231661712351604401324399998613850373751986356592295132118254000675098035020156600674772967017096858944913656910094017459729531947183649960533789984445393546634658133628699751638705294112968073659935842979291105439329242551284484162275031959801176191958184282788939284836435672525016064570800953280689200409414950844972733125154110974212248332546634635714228644083115383567456727154568744425352661183463411969630052883650262503035286384116662361352270680176628398396384046265628507769247311277203134644828928920444166983054493768985012286270231954435948204664959931035110818107617583831880660950024980739971147344558265423217054123592792324284237574945462374905795703699678439095454582544828156240528084804558896954053955994708955728251904749436724147520873520368003984470084785155983686002982799400818755164816948013935569057346343381182742743530534973000113686057790754156086327211112866945278650738523157911866039156575117312011311138437701778175565682872087217210418993432677499897660347355562538961745701604416135614209412847697612806825899212188730869854565713121782967442337548057321556816924065822603205958336868619096291498287896694625393959339894213672583667114059433319401395583982227219140210130825120817656013599325881199081539686785773266177429124336524241955962267405423298095771175132797314501907082135890545158023542697242001908583760890738499528202110173304196138335098473438076836844337868018491499901109416812868965900371206167598345942626290154580988616866060604404337041077011991103058997237955318052407602258727105969392022130521168491196328797527233809824677030682013125531773017365149324325279762261094002380550173098280139268237757435941774747444029343479780829616290647913668149411748896614382528226078572304819746933714521534400262967681517926469789823531092804621212315927522709172002232889058456517200319124375175879666650625104856215618593193214407695767902164435869061268242179153846299383828106363963252571255060941901439860834118609866000030549646922552100960710195985547030629231924896696467389668938633707318575851907815351976712929598888542242456492226970673623888508581746394845986264973384520229307275772064328721176596142853486322590608974582113758400490129470846184241461925850909449564222727850548788857142367809847732913757799599213082781739721225303987956806951254115194060412686167414496088304137808028614171037911283260558800687989508278722500075561514622905382627863731140671702346585230789732779088214810938853212361709181822721332456981656673968033542208370787993500613507207595001814827405548803872855440279190465820901850311719450414753789834631225155808259047445903287577366880062462721174272470049768266369728486757399250040840121623094253609108629516663220955762117309169571766042914938858767319448385190465798739474719635257230254919783520288472269623821902866412434888655591647717533765715849216986489792497426342710357215961289492696148682331322400646365215024798940761897504384299957625975630048521959878970928612270569980933209847611036799692315898491099767138666250905507962838924361201697450355290791565262020597007665444873548029421916253982282088879645578294806452639567030697717157511568078690344864505515754767733392994221551610356376577575459152754025766497559741001812881218184710797616566569623360961257714698126133718183259098686289926287524078998177244829891564130659643090007224219111013855420875225961784966574519213590776991665456364642086591506610777940072648592180727110268922642585431985851102257573787184092317706645898067650222830905469242478280427423726786538905726985468506431832525590514264606597439080379022183844785466549092517500159356524983575273492002988878617961604153893990555179202023202613148499274311988608406179938204633692943651203357910023901643495280843941091666506853203616307983643723201610672727399364108194554928309164373498012228297717492438901091312555291957800377563342109413228661832069987516679348037044498040229022812717515113035140597566065309022686412178568646116531793310260586336596554310175527413737693876446046696643426871495779453008825212743512952687633196129392601071456588945989919528003712865107738421318040183485384613921401388653178740638852580293908912083528516897221428608026289589750736442472942735276192989994206051205561662303668572456121058293979355322393630283177981574426588046854320286209547937363963088414328211989584015817433149181041012925936444416638299269420333352138287879934336360954969212691639120260456304636775387556415317888873415609528745735581449379659711788066800165127902310523518839116191500010576329787084087862773006159446838429397994793372331883397837203588159536011055209484504176661309899515773422290083478070151024119878390081999014915763921792024929328262705144834168787631927838732584378319042503733952964745884768150300647441884888190431504324073567107717455865979659732446416787566819811525564726801229174325986281435678339664752208183400937385324575692216061198737831619485910936139732705486132621644994864080862720713335436498844055651139826449118734900499666139971569630858528473514872999300179071569156108438629715647342491065166658466783856609530255774050322882286233141993663699493210617908523594038335290885300222040184607061881077386205230777204114833922932283106523643579138592022090455138173152749388210980534978560980299408021146025627173033409734061659972213027453085298318104996212671107065147708391969279857601414631710625386108722826018860868782141614480559235382779323681525937784627597050248125056060214936093126976678099423937700568353583827252533521769103797063122579740032270183457466362241983073699134280260261225483499280080657034329417422698320724339082154979473052850759692228301231773683562818544970501946115130028682272650832945868663572907579547509103350607302142180231360501961796037703451437768963136052561891667609391067915723647781731238293005933895785232675169713065190374414282914736334883722922634290329253486344078286763892226998902402259942483991476061007767452085838388436806699977608975508427296047503471089923714892415769343516907337025276207229853294398304266275016457543339076871458395688169157163589426815240127506180237852406712155307149117878081157179888549550327364117470209790397952911789636072483013434773874496320544477516207431397154026040652600651934278904045851705066585627054454405046981289461541346342639398964681780445085530517047098119720570945574227225470047041764197123525424685506779714183389090182647319600293239997082708938326702278021311457591472213697051887193155604235210106515213620046169364733388248821193864113857548906205701050641059038436848039243937290040577919651693664802419172743873100794683798006416895724528807961235684947885832256506362668731907215337548064363061662138261616668430984441679807028401379142875127014643783248305541314863233659766624003913127389114858533386481092554066162612040671254469357626452559810375264601273875276526699622302015217913853181591490964777766464667183021002000647310595160931201438198302977056073430636421559665995667430343820617758567275891567633702555930829621156910644043877904389104330539795739871135755229231301471887306887779297845491114507150602093412107778344536562109095871415417918961530013700107479628405190988433282869093324799575211521096348754102407945057204307153379043011700477033293205874484399330264720243255784430476972211318063489544941144663012757913136825517913285592090568810581911924336281250196312347291130800205843719721747132313905621568693714314380110158467012559653966311718580707125488447982632728762701234894022409439105331319163633736720487348287237729797677178025324307243678021548554344667781227136955056899851234201511320171807880803839179448072387594719843021114045623400169550327882809273625497837206848676361630768002150497157121352474873000058322602455554344138005961831416779880720683841333259955823743345495340871407285163125330027026440597202963174791907096847010807103507488654110719627064663641592466122148059108922643812639642622244266641924402870981134046095212016080732349080318164861311886996236861756412362288460776765687787038096911809588815531528910463933254147254158053289289042930973677193216978674376040620894741496256906282787912030766858388907792618701508793374866097031638348895521805119647774209147179818191939823915465632693167565173611628607101410699964332947960283137520721592443753137972656447986535153084210474785944178069831363870524685543275273549928708848750594647386358189729974849163984530110926553674708612820357013176699815181141235445036487956387879940904423563261591543891400790795138693482025514349559030541383952939459510106090509609765141304306197193775257571098273760012616090758066811021636638594648520453118886917748469569821803281725526930171999826666605642874756717070931752566308845459122858361199811829420994617941580082520837085737181589417718384958529611880218796896045349984179287838922453015585419181836674574522654673923045558372377156489682576598728668421558418991268760553990833741382317214916223773972766377412433556912756356426713100984928633476432383087409054236069887035984966491354983942073533129632594364360536017835681036776004928906798779765277686278361162586119148259198238673796327600073987528251753755482957089512826740138186895529176448837253473999246480209135672853738761677459038929054109554144201174847714690562833736355525207796281123736491998904611471854482679738045674316599479764025486701975836460366995758647571065320007639253404094352896899105469562660401113965639183496520773328102953248521822631996024944999678410818189341997603345484161636913851202008002513181133760776815025396011886072085525809033392393440866857128285809190969692992580345267040373833334755738483053158729923589308043712508735281527922073228704297882866130417161273098429028478774632001229798836067610579258376509545791577654891376602101689171880472710812438340373447452614811760333844851255388072557472549792114532344316281998075462181314051767082629269130879013710046087935226239151877414127240191389829503491058587037101152045509601170107842791388414447638147997956442907196940539766802807375886608829784019783115571186826308365300526540988114272226716029666394730792177741647219540302691146342179181497209785446284161405909607667232500950559288933531275479218467913863951815056444925981064184791559945947137912556299110489080261757006898373525642470787979373732841224486183479089480012845771293827878355442085745432153272746735475496806713085929494774705305943146477888032623303929260446544662407021041927360520158438415461379233790514612067544650686623188471157002983847095505970045819801408380810379788352377651074862625888528211414487833498909937287165372698329950034285457857002200788599279808162152400073460717775029063443919144880498729144299007358551998998208599430379405501886303976342978493464677124433856232530503952224933665198924333810677802142102162102085210914798049301987921559042573255006655245815409447017352075452633122563233025808981743633870932931564220641445447938777271969398040205079814937667024562447863726879443158457035582866740424940464890871469794903586864003268402460073383875936048156848456371538272627627967407721176498255102088976503231990014660313731902175881549521071297749501663998192730361302139713077967516011259101363906176423463948493885667293349555935345561303987966905639741214138867180884754570166049882947816883822806217141543807115822815569853618024687398602962557655186790575091143676339733486214503491377577135769149699756279121953524587647235271660040422295338123159577826210965084722122916143482604516368197082507455636135206906596194689570593878209693593251425612838338006590174756489319499522424467606026040467997044395415279380143317431059267066667931454495231144167361400452593330043539541668941276586096000716916650089874578301127682640203348335253992989270685076500009981000496482160612095118620304311957982558277397414785628579083717278833818589909120065266858774937514974236386094330630204680260291580867222279129434929759012671708845748735419083958445750251010058630368798208654660391178347646839488195644898419018285477459255563535310749709076641071093727410604657940500842586761851204283995908344055950100208325946592984027938518070116401033107765292546669887198165598686951823454768589129383992908573085926001870495896137463969129476725428547854562482315144168897377061239059048724299295354835970748174887883304952096280461124332769263655791570546049161596075197374449863595462275380491835738078183686709278006179494182723025057862207590018679761787395194714594814694552820489882259794663360753715245828173004040865638345608076811180402902057338396614765031284542891708526352743418942043184782588053069403607659237142410163053165421138327291932487385330297671426097512354836392521909021695521293428206185130727958936131102790243583169687751801345579369428249399400963329616133862837562116638748007966616215247202301002721202631811665395953149105096333585097135117904588364822024708809874588597118151855793464885517955558956326776275330478990923755693738247054324301906235137024939032219716645060145830291900297337437390793727104853858344381349268001886838624607633290060257014438154609409228833800370535973032050861267248380627986600861576539519692230924853801205726044368227170911366249467787108478091907771899906973828301493759255030023977745441290309467032500918543796398470757371005591043931433673992616844229494477912307371446727619279646660067379485930320035148494911309314274454405055559756089876145361154416485762427289681212431216146328905650616707748224552224337136455113439942545697200601267222141822551574260359614817401379869053997937630666632743397584302611091363984451525559829474766733027460485974956196983708283539874780132660373703016328171469063314228398329878389016533347383688819776446436180351919426156367054397065207674383808467832729893382935638460385132984125221715025471710924298172850592333850683398021963107086935091566836088650921636410520733157646825199053223397404018177884895782477366896821205794724978540989787242817784853317485827419379932866260946587314589173013553168566957534521789657117906108265114084969735715597227952379290829235375187887368138239702846290265307361710732523626556717596118095302786756078684970227129565311658321490806883030813752431496131038259482658965433632392693027259593405967144216980175790836952262576488259091777027409639152163713807024729286899149262319308895028473586387218943329248923005311366217425153335589091609353562823191944214010411219106796864637259191190711424118763974614815523710090010355856868284421143396237621116792446902125891976415455468602113785953473488499825937167867997266523738548947684513849553961095806036560366913389009629081306710773452700847926847485818761984100765941688326718503563144285848730253379559554612628886072672185091604357769936678419418096470947527703423312612739844467557664875247884442845403144511576248421324602340977423306191107005704119547145014155487484322665298581783473211053376146687249220985795144342468324366582042228758572398761978448220302815737736004670829493448935705248294370888793342370286719262606825495657041663628822317498591987672183068225136808622739536762720090220699094317918545896716645656912851341965482923205929980357223937242624125245988220596930865290977591887081391986528105236371170760997471549681172384329489413124585354845706736029639629812421994667315964124483451122792431363496382200770013010398090903233708912158189654936928870398356941113807702861421987575303918446663626274711471114071817272844837505283824758559566753600630035718782535754788891893068272866084905033100359016985865630749996157367852748860725372729240529564871875613903203800165429814086101240087128188174549928513351078526484306424488598465798764923389699415019557522115053897879337509090378387219206885339704683279628873729151972991051246069432169652462630412663358476397811522243913475830923437124527344535766917883664781745409506181234079787749016734521485779371526227947484814935439501669402949160050704082653522465396032903128373161957306821948793333012022504159644514352166819527006157386746080570980928553629325718028711675460480908353686678649344693788185011168231513880877012720115500742099419149298023185256977999548414283322803517089190072269924653047981450817680107944420200497770677654899947872988773729443278142131395861446553457747674400488153686249680121489188155531964443275860975812584534729343628101386795303662353482687835822938275610252178512280907358883439078095115666118503825261123099857656750496170329736422602635021394870328336008300550511145202206982963964326043865853403393990094717411239165470731970426041771673900303515057877637471509109026119672931949449640306711616235353461940539038424181187639687380065934327363409488436818802652070635285824947762224145813625087692146655259393551385629131312094517372519125296316298324269491660605128082287780857926509687033104430665639382153913773086741659422204833816061755772687222648869701579656396197201828482254101222803542055593086193113332457178623692488367951589791113135553159277888429418732548387432117199032695951167660268731097787402982861709174135147243006964817078815856180712338560832511912253456775134144951506263902517228442994450080587383795240491173763554459048490010199190597833345374883774682061701141715115263734581528639184652778575337108459819292394015904922259153261252069086573455105263573618936493436932855474117955766628117239962477043222510183038434550607678051280212317066619040737942259713443117688596681188936091983202795410057899060589827128209915722687719030083857818703768480830814257252145576681232857530250633387205644567467511933728412535031611279319776161637208210437302153409293082521181309098501811288098477165586809773398587056079541617005039144737474969639415589159956004745427336301833889186601437574457344113215013114763888075598624944398167834014789473863493460152397786450842188879037538395673843006390219963437901815392392084690044683812219438414872382114235405165189806672337833285519225674693279724724252702369731957186526622252438860963472546937732846959691227445492340150748812443299132358766043704933845524895260759981764060017666011237197323111058559996657682426361808832602652230804914792481723523261478462415238712611019117419207597067313118960515171276341361448100822997888880246432368826548247926946872470455368408726107558099453899690064518059683462856702681930090029800655785191411568025436610171336116430470779486077673920885772999556132551268925204114273334045151612072000320069953628460236493052033726103796044642327075187151706781332171348765170530766829486045284962598943931856072890895007840738146512936920159024819046999172665411275782781265316366490611343617011374289143940950821632449251028785545745695113357810020957742272700557784877645749032878976054630163333406935267573698065606372303247594919141557852388764955661347260264218438479033043983511285867247602986349342593376236594955871153229366842439531591735053827212556816878326143541956232800545408657240864795114236863146797794638400233192342028302820472661614552774764576929535494429717348159133918264937043199463763518586694807544106476110219780430959406961934519624287982966428181473684445042431216887286898993778481676993446536947104109404597538885985551149734580532355221854325434118141480373095655073245434553518252534603775676318181596797632951987665260716746352180976671267848602868492205264671355871345400963333202969148558194387912349801602744905244255409672058767784855156321804292149937671524507531958822205906157725202607911258226134662696999960853688635448903076979862818409509667839169335587282330296444865148592715762753627888950718530503553472919471551288959963066481512843462047755571780449904095265976439120758680270843258361142725430483589747797914757920859438906706670190166348668568503136625883102074484363551676416434076742503913999345323524748163554534831337597091270286889253275302262508061017410133248626135868234499550460536294772886976810573928210148252120260770988863771122419049822182201117876918948492116679494244484690957913074679100453586290505599540166182422834920140724570972107955814110813266889697377875823770610050781098801574234685673474562159600680713524895066030706260844041136384566037391037463237933875779521802887063986260999950607698014976312261421451992263043346294807286836462461024463900579387382742560563989653807380906536641183749340102155357249667914775790221216600677043220035263815473124431318840011355362166863573819033281314260363294908027257538952400699669410453369481374593831834832785411699189957955016765744139290049606559800027256764554593395520063535538215888368666625421745128870025984376853219875647710470448319832139252323996942259304136757420014622388631940761502982667898298365322557673533378057688116513683228914416052882435387566226555625606505333181981694631801364890301350840413674672601343211928162624185214720333539803165582270255050736891184781451680760046430461601953354851267511716016354246979094245785468962474039507254605271784902489757763151334664823566211574306867885166296395174751984267772982746860136047788673946182467212722615831865006756018850761974077820424401910051667122462268191967176981827360665325615518061557192312762357978663289201415758708719171029440042608059651242826132906293608781848711436219508841727426958724893427009060871637785161019044186405186438390691862174174550428335849484379198685077897446624065606070995394240016085639049452466787881371079448983712938308514515088856151036233327562428592718919827001400242419262159389004754959708000127294935099107171935670387783749523129763056618402889235832388502977534896736691343171819853298884253836838105444001752407843031343649790710221442344358659588695716340775748761421923172994307813510752392491988857017287906821078551339112117998090916784139809122636704964474708933505232820922778105440119646258146265823526310615906361220574993393277414924794069859866307658971913290918311529887896870379750205657112759436104420277326756002805825879765802034145010119130619685695181043949545366850188613644027433997001979377871803253766211785076832153596686803056800628170564965459578263800202780823095486265729316714443226269153302249919748643060744501602436711509437015876295099018496450007865098797933168594766230742233252773368621841307225515368414331741590347941422786889703249684465256423588950679079005371495618344909793857376249993354194008782806958227869002443990257606968672828782490180671741597106885008171987146316075243000016952236337728334040676336810364943753499326665691976941001031441247315831974683066344041416910783992799689899091167712936414762158856402541041902472797096732627050812312092795360438950568679672049644653229614335193676260395527669648751573409930654510381771446542904303104373684603640451688855381196031169486923265523706115187137843368917350290915470981400441711469542905733472794696292254396120564394205968337501495626780030154207465616036341974462730516776567369404020983993113312539892746276930719699423380563476480485309244303895997863083257708128614264311558793094222130871093679916825586810422269541953869685505360448647271826657194034248085525958062590878506608694442070197868798847269353147791470683591047988292260125974886045985759002200236143424750621026255782164919333219874939011204788578182219248813347722531782552967031338521905350871939471067064012278030138527193802271006063323198704057083386534415607352618707335276150704516588603820972467291707053164302344199227509942294786738662733679583772529307529262885887332846899414266343420691591529515365384373505220695804421390408460878450779291511706475576731115608529092596530748040227839100265083936290600050967560098924674916782172799592172155791036392777018251275470005865361347789379301248843150190955440449506891895621358902689109536888834062553507357457861812578955576382804596272112465704045379864643624994459586249453535063007286592798632903212048036574181615948135756605908746803742379946493587157471922556793373689010294828105645015306211486633046609591155631684942110256022699411900769604753125704421391534231432324127891254691208963281490179405565901337119721333874026059327314900861626229231896064756063200206380050503889031052615653939522416790023070920369469966249330503239226738827320652208333636047506239166979631717186579485263471568282596594066560526662079422276161556658724804045452894670894327009069475048106470725507770893817579733757898066762075025951081312112020205710427870934256287630533422363033299282709372728802855258469132734657540772390726846042782290743250351401997719159352109375637553774247320470910255775693814813233627451178852140877137626743341455829980068251032553737697842280884168636574791133569683417756384680979251410412543708325273358661476200576084264601160077082751608849816734173620636998006346492204649875633353352781368536184500201182448007866332333442161131343585386232485617723069408522981265811016870498523846222140824967415143301070262412010331817938510990201805253118008454248403167731686282345848605903987242122670815838333867985704545672314918216036074675782540730243807303604198973635543051622367127902103290156706064748193963904291456950162444644692686159275646611631776817948201992357128534701444016007319868477278026051910252269573474329478870167831168352073235878744894833023250019145383707234877628212808193405205681772587897612624861938060605254890450041743435882677199393386884071259542420926158312037565969587357839422186412351346520904182174488260513595763022941694388473193674203810142314673396144224428247736976182998548137061459312868326155163968435747047891768463960923661054130913113466386160927592310112030344344597016733993840761428366684274158813477917865543225066548800200149639150591395270700018514833286569050644305992457867633186539837267054102680370376396272385056790764721655607829901535789325291695820728525105251502507248252677420731037153152186147880910330475108135279499864395874571237974721409015531584738669415568530497548855776712313873521584916180068785660028912930801194894350083938751506559234977014872432601001147262114701170838352938905023266114155936315832258725680391796020866365858120752652506028771108145122749370920410398867957424308391262883790832663487962111942154577889016458548943545966101803545575759251293612122219407111753122603003322977194859800568399576505590540160127773635934788926094407879886480436030879989138860260999927638041993713688413381119654686995038865369600479492766458202690868166729877271406615128916466618514370955608934809579422017216548733607160335920714772147358184434874865867571085417365140990445081644767035097846672500213426873604162771992429776258504091657624762102693459053922524928727681899415060097070258252917507307368925856479255745365425686988207839855108231755977799644729841958680225431878231062719763533246192885731844522071204284331892777180897124284961511436457149494307895012406559277211425995035006254560056882297191204186502937329175640923831990971290347695553879310024461763406107782428768979892431947703597323378098730046483903702967348953121493380080815966396383283816231770008290641465615594379144514595972665344261395353238499501815296700507636059506945641798583272397259999252729194882315549439004648869843370839255441857250291018113575063956780235191737875967257408564293556347198664511499563231622164380395202587831029764867096680820707346499565621984212652166268351346348021954966540673072151533485650883030745645683191973081968968982819606844108854011584505761426473115589759712966415995595664264324680577362114452381713657954693090951650983303058166425258074383031809033127293234630975881943631119984291263374286951441911051013845885411223834208522688978674223205232966455913115392200575030500889572392410055618887361889683913703619601825243979182100287448547650316056163458987245504427507444951486712020709544385957864900078255696998841033304969576840059288930571374923916603268189731148293436187534473757707482437392623286594604613973007597143334684266247564596998799451277787436222922321333358841631204908164311466154455186882788601736111793752759470533352169139273600633104602145924241516205678742445261775105844441928745247012412101339192683092561316219486295234460829170890927193744657222697245857338198918063501449289135996707194301298058092873604466616851420276105504797756239793860716685173493443273841563501655936835254991198917170707524979750479677529036191752545941091877477006571473221326367984421123314692769153521934411430533470302537963602212068732809923283024470893860999892771365955533075445673414839483140945102448130725795586457668153826930010624212104500915245396139689087568383205455119923518123137351776554432413744478273510516551702607075242392846511541828574187339521988277179113519190892893431533749990694561510092771123688069449736712573607032243556465855766880449680028768270852142244186755479802575553685288321995603298052727235276256061599434085646537460181935840015731048185039646985900873874497667115718457842438685732808324172332486830542606455814567170729424980323539472351160651919464916282787104640961708309633173701826345263679401073203760808538301687778913920814060517991821118444678275764700793557534931607629531281831223008005785346682066624970201626640795495001252101650760474155580425251113830019858894422413902874906010603426736433482396663145581557604204793165974136659479831952019222040555561970034869648631852591531271783836981175962035259640922845242556781043127861585877851451348859839989513650474156307062471937111437870912714307793495842539660654964970842134478802434572334392120414320225625020010727438198033980940540363929443260694546599936605551472859528090279997121993450456942494993922559757921981982897286887979227065015389520481622803864705310387234710727398956538297266751232660416922305131500582792601674285124055140673060831938039769554966487479632546824401900471428866677918310656736360378929516527329461803691564434424832148317064172161554018163448266150853127947600930717153905326672783798051260598078350913199975949456855382300965627159955638104540516083125383086046104092280018211166627298069164769562766852837031328115458647972057232265794134168197527722925753512653588050751255013592424582829879214561291063903292783697258667831844169466136497019950954154470318554424177731274317985951065363608532835597664131302278643232336566622450060706081506558185467558455659647665998909502372469834593747150969277410551078018648248985495625271665456115711035535926089624961962193895715997732263486889783465041884637131701542402334636884931598017833939164061844353921064020971533360795330691395301893052929827566063679830916049777961809675990187003709068952362360607660458503918286130594605414494766426896961807222465987809262431172496213043103452455379835423776064373808424046258664952568949820248416054404379282936054746723531780104930083242020800115620629291032424621453733828911030948541437005117701251800462564864444442119203117251319574128995578506801909056319903684085486009341281795125099011611174524246483580829580991573479479324300810092093837544878656684979694446498070561975364775687742422080969168024101472485428868404817812313273306362990215821919978580633370433358433635728011808710804408522692694696490214970161186117921164187438100621809065956983537499581499916236253076518510933507880753886858338827782716849170498367155473464345117955275128369567142139468591908239776246499265852571774551714218285431950696508105382288387050183689291506459552215307311425702345700384823471265686271406448437152317813807763276876232870295880036728336301148912837343725413961418880418413834464868261631666170470921525689988818532062974493875057875574034278462248191453381347674918945430035084349631322886234415602979528559505777093733138905930877584057789489239113813768237777136238114381078363717745701865623270424732802006095416206844140805473055573001469713916715075700193333202450789855890282615352944853750462130181022898096122258702025287734215857411598968151810456306233575301921240664348250427979326470123117529564988624076265959702002499645930658560977948304160665897004526031487333669044959629639364736210389922538562437319797404032022494402479121822173549473815703838961138787813157530690514616632323027327117959977160874678385718465772222556688525464529346237297628763551600490612068143325197442729191457322371884575696278594287766175118623542809085144661997582187011514021338716981410843876265440411794439622866126292172998859146246016360039004077847886232657668971280296424607283596496276522148281449306618152241090242526214129039034970343075307313288014609356475339298425905354595744104344589418017125137658208852318721151399361177993311573834116611372322223706730969383405417105005814558033479630439845771689980161972382907567340793095670700803294840176342618352364339288963834994069692449674153715295151709375408870694178796076556793896300139914640110155355923030094734388948847487725774233062713533587414130816608879475483859759362418342940993532474651377155709378057689243164302628880203821191936582341232481558613543921626268354952323942027600746767261035015338962454955699354217798999803995495192891357645476638134898440747609309290115964489486210946192992531749738861506959407479086866289620323000626433307726292591991982061732411174866852476916473556717689875594926873361832857803627254541510171698603097694525303107968516146118199996273242759512360054767413129203771220006611911506310738740332092146803298750448967517169860180658010504369258906391696046075453201196261546544449563765750703275346329310727712764984599272391365012543915440625610304099301916884448962439186945270326999738675513875044869819915415768229187607503305981489592091992447708473055643337191620590266468964684666146011717817298836204712083814489736809281919468194571475832707851173643331502733000422605940635578175070817945688262127336822310907165281202093651303171256885187330518864281571794204396167718124929195154083058596497339529752327342187077885377342535244457702219295751051904875752971373866267288844249375731298439708993177098815356414303914664241191529171760240592206199857677805268930674032409288092820562491106855687670068823593525097689425861460866310721795473938297277424190838021687466402457404437897378294156731153226539637806339783612619493767034792159147912769288022342000220950645966559342561343675343400510687493378776488161706399095893664863630585398450743695157227940911632971921128920654903870665374795456120216115008421689423814013879235338779358431869268627210313904629634853639114324486999313428140391420733303316799676950667530577289109866743428282603399912238046061281677459268446472926926947801731778136782097589772755481526033527022955290552413170400603601563603227677804405225473477673907239564438977660942540779178264527425642253260424018352516513957873527215613393851732380391462431084368957569959319472154247795620084306597081295159233282050020428528284696674310394039796721168843725012006632770655398359883260720312755137004759067249494386804521230911169814390733910252779992476380629314756417659659759813189302032663031371481050792649655271976835983190192232690484008023512238800310290531766768796819890600371804214269378114889595341295906099287783246560226350984795288961109329227781688909024131287274116039090617353820080695477900759669728422273733326524392156491481690370968813498335644278936975675117341534296480782623098516433375684296975531236424188981624269732836868306131064212036196693389520393390801490165769079197846022948519463616115390162522741383543624546421389094317493956422030001735167881027056825113772235512606193048357290475658176823841670385568020905804744126907142921710417721707863400901280914879338228233015306750353329138590928896207970693847979041982085844010143827812463883534950454111569972845886412324721458600975285317695224035047128635519929791480704473498613834025724360481701832032899585563820537202910809258451084931390003453546920148131393049836502337911169460289818082684361138972910671195569171544405101805080011778692083494048483548573597359272629837375202515308709217376997465255672774840998004369715163655631900346742061435159143355487216391025980921761157212772789423584858516490465307772855093903378408490519152317168583198162461921621220314287645456404774010938584654819738569817302057267790383860388651685432209162044953312216802280088610476850691328957868209784605817799341490157977431157072499617038673681049562775889618835230559303333565847264045781654839639515240252784690967949991845585903577511801887316748310217907140128281003279463899413469270168556804837656347947769441563202968764162279652764362700211696281244231774317249994101787699845337428468580794598273162695411736358031624995373652491630137710119898467003202915905192673886585748228675485020023349383027908430596657480357848735742572809374781323774870624712251494417977824089838660721818481435880375841950702534984846076822490134732907349633474427901397026496566285418525206882368444082753965393955135521133717492636526006886692977886533476143038649728688751034572188170545063890027109543083877595359515237198933645399514149263591920354182127067592332752043369475666587001210008445140040684361610464228670542898169877932371082188386181774752632362164542446169678840392058159078427528728723820326999223428560153658457500936197713778845199882742104523930657271952846798265898130858869163008692213190873940623835704926368832339409606170933927577590265898992456710342550036066244708008552916151766463451381517010753779901051390879806221784248170276219391331974595145670896420025820088918711503428376100039810231153950202602255217783741880603464042319186256725886922086820169688917840612521728364613826872146273230347642433846203394893703407910359704987603443406739804291297897720977827778889502372057328030128512148044799524210854432036556463016656837233924607568640655372303368933246850876709267914886410002032449644906141554436450384840320523731088325216216276067268007281756858581505348981144300583534725258525583457565829851625654064549790596019414580803055765903045450758712171387126074390555039402694715970204922062121693972116400149636739892776220546682287100636967766651297771403772445299698700776567249031080257567570673195621115118624257536403239843466307753569072136288400787205616701208984757589978316769437014066789761792851102908460931855532973371428901856147793423699153232202934535694673774298267363969087867364065578013073821194245552616062016585187522596805026985703313541068290142087481582471621382655264881834979422388150830416520027366902050702046600770316514388301204274303313235732850551308500548456769686412811470843705191718623310123021547640008793945064654756167625555038762996114124781787286030616808665104496264795390357347139086891521177962382936557934744707705487315054351112694546219456604887343516296473567929916926091099652706551619624239048353580571453243323447830484224283862034502219837301366640889282660489610425559844146455043464209178449102618124552086940340364335501904822939103137762816906011017696728344835229256370113628812191266807845871027897940881194957747367398082972127221107122035399822330988874153014394714333273902274397510428071972859184224995800923354555688292577914926799645321705217286677898178987456614959068741869746870459740879848792917823928387779181798717442903942030859732426449439456468497881587955568913375090178672014864835370378578374730967206572650338965562597057153169244106444054127855126520979193725544037458087913703481901737037728284809066251396389922211754608818329243418924927530612063979172415081813075195230343741402997948607617594785172773717963893153147035012133530686348796962768407106907227483233401278262868291576191508098906506755229645989224802528510297306112621265514628842991217143943340210401368552064448662788966180996548986823175875664695523918222169443578051434394771940257161338697584539978295898012479334063359776200993729360590924244434004028676517895919784387774824600440307154870340214516393405367093810381532832399601205383417263472955866527336312718317420963314237199018034032058809548106893023971039620830646074456997855704886875275441981047008799466279252413737378653980215285518884134057597840137744355977777510344822945549692642299886916652556032745135082344353294221103875883735891122422849915458087853497872683886657522904256107632285771381590876262440244613654109308529298455088499031271173385162739475830385454733511454980810039371329348764303933673634281334622482308526592367840599406922963436166856942181084755676021002910775452888184244551258140812405740815249393275378263657911803467473808029228216801965331487432131279234128803641798702691683133292189312750787417102455089439005958555891031916769344636660496018940453211770793011283119182535210582978559153136642662640792564414433223692998462033310086984872994640113079457593613504085502946652049394328672920832876142675875024051633219883661144152439398242117973169611623180562659865854564504167228788291107991826401928754396071515208122311929281854670335347859225621717219154066107884662276016197969782475916517166881130803160921280533399411494308807643015778321646651197018749405663107171956983325607846606929460809926825202874703180685901602549206372318342509758885319963579154333972109224637568245517158597260136660004196903330703746531522070635560233845784564343116346491692993902097342152753094486408085202793191097224973928388546655574610528760328049123912771528244008341295202840356200133747094328061874055112973365477814315885922866071911695773179534382831599663277572002525352291453039686422325094120468437516860362856774641143483500880350704691799200052795453047441815518973173427168063190860354168604694391863173325268262792625744044671540693045765807698247120962292352323053455736760125671339028689287878878016826684090561508174238088432947288775032503200842560886056593736588650336033737465779142115853102486248929501708464782144959101851874121154937088441083956616568071104385147679767495608424896478745153538265297670478979569493169542921837894724516762937438777848356617511944830183975744262815455825698676196112612584331056005937303598579892363348353868440100714387864184937706798327739926495148677497850771115366360426405872220867345545840642146694815096612057841855808561698705975502040886364971737575271618774401463800163419746530144774041122765014847151129864629827336428419360030757977792679217318547108394610522512703494976332105610732159928752709130329027968292287511622394004078206044204533697745699958793932474153924355206573878063450633488696627189540087161233835065768875621015079911016566686778057414424039579470305959234989019138901952828998625976904378918927681870727863883065792106034342479240189010286025045016217450789301456129208916219094198325194198699758586450541979331996174821824184560103930624680276646212499882852996418895771115685774424921734673383969358092022282491369155237003977852207678840610909549504154834759479834520812621701777412738829034948115010048733243819649973715919549505993163408389336986940945520133362015512627745727755146488462312611186544339709772780607625201792035557804790038178663066634533283503398306125905983861840741437164153126580891107567931294811558774103519207237164426303867261141298053376189325372349872762759919696914346122542241248022957913131706846793337632058629181561760175219574301195825760292564320448983798481551806760497572089067360187174559534826446856124304111375726303490796902295612150938302747367756739323203386162875028608410614897514140714512108709421971641350099213453951345648432638076767374052030203512057225049750172303917317730643384305813366213666814247961890003795592927878840220056059485118561753899538929188396643985012695688325036630182023861711157265499178652295550038751105695320991520268605785525417692253456359081652834506545997360819743913475328027747436018288476914891841659609189956972078210875146583932403960954062715277039050850891848005436623612726930521553015198617013252643046483484185771221124702369559451496019729000007457148866345135903454097722521245960212402883380460917056467343396395433170510367813304400583258943106958892263299604892574704095245600465811281564067437875078863765102303388882432521996684100244427812494555023409783122608800961436344696137176172578596246965478630026275344728975683390476011988701652124034449409688353463817440820245377067615679021211347487444783215847485923878619902704020982930091761456874417376850604209166176070732825719327392756467682545572900203406814014633179211273045559799856755568097236170573617470043389353996072031123070015645398911077418066562295748329125029700069572816318134227344532725522285570627947570800676018878721048025961450617434905499167200743842373988186788135662549506988170444244676357282840756089026283620581131873142127733391088433546243597558804086845476693368235695528390845844797204701866851739229083007659033231241610194100279564726445084349255565039502314379096583722239864510977130619105149483274630329169941714502200267250736175870625983948785395142203305201843123965367096852332775203134736418395907408867990452041662314740897290974725283150254972549986632505096827355795246135722885317438053753554606084637385216834518096643601125580289724300968190719570202438153455976467361308927071460479230315171607459981349285753876275652513642213222957159759794746351270785123115906547434058767430547775851026998447522659224015866103323015475888768581023442638185554067659892921805376175957704818496600618650258707587670246130772371419361121170891738026082147696980411410502598045081747171257206145462727821098965728469930870486767305858352885004129946976467614871042542739662182863291152466846341762790099025245300751633897724372294082763265147882431375103723339669178988049680584393122688198664827463571998795418303453548848004110674240720469031174027727409272083865630728616124207306721718263361156605425067496683668892686424753858655468722086930256813413848188295967204651613063524643232064552540509929786193727004340791033606198136611925593630240268591882437713644354374511428100149341555719436142296025908601333430209737259691995913369982751777856550436271918522892992881241482733870548074598881612349365623146791493792251982172608047815529633057654928042290465547624618816622630397594606231227312366289377618815447256089383754110084433296827586256843790800950151331222066099606083530076331632030555188174888726963437897462571621690218328176655856332645990730166700393587083419047507235985290440178351778484562808719505603148778010228793672345599238177102672246402120797495360258900881919079923427153338347351669426978503076646369446074927406859720927887619008815885489754814255976363426116697466181525747856805324321019724964827264584845275984225643940076416691604024677524893364406639437714277107779802419003637048708646939341970939615717838747799903282342685234706387350457669142792796342721213737170265807093541197030056630382808125027732421097209180962285743087434096716956928312673420800567427376633520963562122641106612552455493901174684981973522626224633342077055667662495090976992677306806516310052105319056714129388905654333856146817279853452847842669363133043759714523346409495191923653382894130641477006741234420350369271320783079084191504191735070520872737258773885977351497258328720316684143650506920702038956566863519566396543194230701659074075806851191548415181604779425649638867144357302465145211907350671877526044666729757995446476589535214955002222753574349876109834861109736522962883970229817717777556384412321886396617048739169216942534141621374571781058850806570162812028802954888520328580967880134680618361394765282184224328277283060996420961745854135919203514538763943242903487010262588500862198033049380361770870635560736401661877139618374252051194716579566476161441653201104391175711758980624721891073502219646138729215777483201228584891463882726163126811886470191148138256552830820296388978361638391518389987477574481479174196779975703745200047322512859360119373090327954286662848785658627333477310650915715620840954722490102155484667455193021202111916155323889461612652479284118591893057972537074297928236237832812865758495081714451184620383159455408862215295990763708698030802856169187417899808468202511809291492095302641281741492201711209968243919008672765876583453007761099406341640227492449073522019196330947032676443086863840712320429216636477264387328939200417073964791582203920813093804478942683329877200627867143509534576752994000430407060895268505601496878992970270384725518386669076187909813201259086839700257605359320732479323586711854809092025702304531231607236925300207591665917537020245837019257603072217660537942401774363867296407734123309202081502544339748093443204474992834934612406099521490581128382432913902181280712723966846791007238481747610002361332844305772823598228813352309486503665024001196686872317709765220243336937429508256823666286983161648348808094808110928368207808295422537045241335856345359282710076600663076748653520464017038027739241904694983032450935620821246135773282771616750738196089303393279023263378635116097667406597754719309900097778960255838972882607086265659519485674709189986641217837588531301279069184364174850420108031617155810703992292765216740232817612619945334153475975903612436258501496102497643128250815741432307269617525865361634971376714279672733067831704929266867649240864392430722366851555643877564242889467963158220836573329023298110937647843373027987457659702593281095556862055485940976381851807872424514574510075274043314551451227845814592462651253820178106984784746554359860979791614096914846474200436097818380002133655447181058793163877292153426703560056209633373051066237591836265934590382937377395932972336671082919563280706235168972289090008092362818470252408285557557600407791290011010729195475885381907105714542677134868117062747171478002576882724087516134543836935568350519627480183184717356649606337544896059220898977478518376311434962665115265052492479556106308329177936866240705542744427960656434208305464793029440630119027583169361239602907069377406860635450701331788846267685647223564561861403429966947454695286951304049370229611696121377867718635839131771168461402324344870420132082535118911633358806797170223763200217531594992000039064326661682215042236697230521106383850546210621580126646703747099688423254570111919456753271597533152583747294911014650434796806965706596753823845632828915625908129202150627928102042216371925848898198983037841581607832545798560618559264242354986994819097281094669606416182964012202779179987762588035576866576210395499435728584221087328567194240908890946907831950616991208110670301553227401484623936055178128479348018219768066559911923472915029398479510688508640985359944055195109304317932921952662717780426527178928248311395433736823922301137914679340005552176153436902687755850360371857806336055009027462052427747571663170054643955637686978849616818643509302924426025946788524118582277410101530977203864366810903800216663298955213736479329017425205244140509281829455794830291887098378798378586482921489947779340059212727570816525436329142419247823096994380737478374103830290211674320882603900403362130519125042120015602138759523381984800015922105753503977804492066167596828001285610118164671189386644804716142930715184202969949156328969571505289932295513854705321933784490852684523770269555613041649901500993083065040366472247245152534833805761451138044345681559476008438191996106103017851899136259059049604190388198127773997981832435795433593192147784115974140262903856356927085832893796102084696425137193936535133398121056549040416976757304276216232559672628738410745364887632556913026585809753853585647710956694482343111096944180905514875570756037714561881026942925152813140929393316291561630839280493320352725299123744960752735623452307165480373697644416828040742084291824279205242249121405251637097423531630624409944999774394399303092676556945495450663155615452954320908199322455957360623889837624661319466831406589769992303690847927280675651985790137887378244915073278397395356517859979917721677009034459155298346103107422539921983486942640053443049841830769861384737608947887512801690710742089714862322143444598756314652385660137982832329808362627524010181570448956192872806241555135991578485728101178490874202321207569770657524027495464497788461742171791232453343490070142624819228703372943923825216754703987329179533801604243992572110625796486863272758186339238732631702642272883312689984863437304221828288706445092848875299449143924396576019057842245589615970352502765176765997023850430171405024788674381277459409945899194081750296308731720374806051475693837674029858835873095104952890583371464222694636762819110685057757180271506760483201131163832543648292359136954242642077447917420317548077608942157084550611816255171118824840799180798630058330361986594347406878417409797297493070021450411343182854716260440370740743543962412650878971203188375913895696627690554947440685823193082682410014803565705135990718615911527931919115360779690693960545212258806621290296949359953922280989299592032610043904031589784544463400569716546536059164792574982161213283351502002759136874770514527960412654264059020784099695065249585391717883241036231156031195517039552637790845719386624905162690580406118893769911243737529822800654616018979616763153161159197868347862879255210136991210310604298144521645141095923061115999000588475769738568155838920220970993810866967217554730112677226672378597706062961860075471723055837569332241657611372830240930302970370189179812295250837924530299185671739170527852149943512378396157523813133023662220269905455919941611615704616854932589642831553209100496574374265003669819806901851898800326283483015160003897786327360968017322785276065821945336713661629013823480783711788663116682859561223997840520433287433541717626053877468002130527510039542955134200561719859998456350716458598571829193550327422393837216973907175586859209712159190113019797573416412703948391775573068076307917533867093845216591554869779848383501902511725499430377848464481472357998000097840706350659658704244373180677686608028124035450664628923658373677305499015768777422054092330862351678857523209854982918502499018956617533589536535991314083149410788473017175440483919926713175562940118984913639323918436347715107625741548143339170803424692339250200720165451836457075120216566462776199517443138503374378898561639626201222184381560292668353698709695513124579147776671574912757924393183968199820102485440342814068065008696459995973503769135715907281355127945641993275752138698995540858036434631031005767202563144434339303381512569215394501616672951319520571783655721283253788922693688856227163982129919933963423163534592043080278604749341961059245748048856082973954997460743296552207987355971975991572528640329508204342199712873514363649910349532583743277920243925990519385752777056906772157311456253845253085445988009685728561556505499513381313055941881992496381838329213366370559092127278074322982386784627935444229591252729839997547974630949612620091805952362377574707387462431241785765356697731420362419097468767105903685217900509644829210565177690301173981060954989708230233845187444733712182264677277535123739013452979231069371250784708455881533386140648689598623783822095422433299498665832971929102742941068557782328232592599077136274380397640387558814855983236262894175008336397800618399206979601845076770832725021558342631442381628009865974989100333231061548873327470178162128938559431367416088463503516576529473890211832076341658705312258415407624215698567719828393763855713709056101676542045621155436174268145505660846461738797701675578745733097326020110523431223978524764305387702638855505246541680915242840161255719666488021914332976091924603068426194810616847957946134196193103704035985491291534752594367971332417440412966087738831346359169753979179112246530575170050756100495996808143202189365342541469317080798777926404983238334610769755633297329519795728408034080515230062000566347368327214691362513569411975897016772954544323498203147345116290390302088084408585595278137828094312558563052979879221307903312383924443175567746349177863218782332577363833658679695565009682763033833167394325512082098114921987690077820470502388734301508992142809842973202575005675667375530472529673528396975260889890990406150873379665933753695851887202149706093682825635274030358301462191844815008349701868891158039401836632879433228918750472168061619447855956540453280615813914982588911585866447989986013333489364901489546815133727774364307136188526779003387476803251451910418111547262569921960486908147875683341204869342823770850827207016697952734417287772789655044565235091175811127254417303514004297805239721789733975428597499453705627679821237253187791637844117091731365341101173907292721732107099332242817845892399702352718791458219257212825905263101061621530160794866550869313571494704572386235536255675084782691508970870227294686974818179812331611167051494743364087490820498342775479977345476867382736922062680662492240902674618061115841749655898593422600895906724576071882366168583539776066792029535430363514127449995076041226572451802795753996236688046988806592155479472274226867481986570357405417387961744574825654738547067863577120629784609904116989206243463866880678132571534020032247656129893093255527146808104208199911223678240620719530135627908462915883301073471334600298799481489458897189129782801079857086202472186703773459482254002988969414549707816460300518697695625178612025164823732718503928321467171619032537709931649504912618005992382107889767436502945713821441498948179660550899147780828185786766452732662035801060241720951394533713589147232887968157921485684314922540791422619501050585149276445962932604439070658659059434252707183131685450861760352420016610502738431204816569549017366933514609382956238546053331990862866007134113684056853729262292238684898833085900439962236950652503509130508320010207186031449519985460320388835486808620161149581052831866458986789505642108097682370724978310855533875283807938282806849323433261874438534342174295125804456358084221240494414238333369305583947132451574674733342441822906685850287211267280053706998756916617389628406543438217346348367304911835895775449579557430697046549385927310115972773068286790284126452992406389297592709581999431981452787609305070574710799341949867224582699414896777913120085721406541739292826260875268805050947362671012932236561119675117912771085463317481894090416513409714017511479957476295593281609294366023539223652130277899082021878407472443874322206274954712629987126195512283381417654201415197098973266687094681190523725577767106573932725753583512138569025279248264641972861516451930445305795205858299526509228802067083848751945435771286924457603161970094360802230608007337591076051327617049882088740978073479271101615637666395813860524094135885582747395840678160414700450780104240939829505328034799395230154743704974908986567521568507006309300211665883076156642722414528920164338616565460767019767905695713701747595458313738578143172317534187724605751051787698522537748433398010464615837266566121239018023770802891751927536507281112618235740704842927129946133767674256438923731715923732446626698788424479710449108548482754431965272430174959477252399484533795223417748837462909147474199932757322622915092166546498772687675112828860572850266507087658084120907525051056549376078572510733509337141150509825797874815521400074773625477629352671793653387508872272974234045130891789549707430535371121390259139114632281119522781345258059914006836205645647145893678039943081113800154679642089583997243772718440036659499695395951608649072924080214250493927986663259089763323057873430098175212358277702857353414297360279874207832836662934556549531455135559843050378232558630025502385097109000346194459151391824783927410915513314312885626566562443649470541652614699912209003874144140362909157830596860697804894909382434294115600855620502981683566600218098169193978328550402181743243899253706038554712191076638165243138200556603937028629695283154624538583952956237244369185415045548784055104907614136169385881228443600131282029929249865168044925427687663167336120191187255887527914444479325982526120912096201459631603778415841122797227963762577261009956149727416037719684335301389010404384257591662698890152919877436487792727055348016478632647649217516973737794074546885957424702432054906013370564962886352429553636012269417985452117795248555240459260497066204687685363472346133376687722475327477852568471614586396346323378750589961959084750567879934510451230915325993662709496568046294026213509045779202295696209517549804231255023566030521490308387945443800975009944621813316506327129083083998591887232088486564640339766655426785617795075172203701205364047873153404197750928621435855475461669203616480587010088259438145229132642989413864249981759652865391718258724889541350844269283412490455964793289008408280295865097057858297606702360497928358225558193486788218297085301214395017345991796355044478607994662358451350978873741562422989013096251248266798528236177944202954463638299674696468619321693505703635730721030465946927474909380800946653246875700377889605048268694021594931932588614105997338081335771420924361062566446843841129470353208380149931693972761850645624031619616625603424109122644222598223294991723208736048590566171027035856960513766564450710152297793069455343027473589303671172559985880536230659409071620174208237831425478933258481638819920529827564769491005316339656236158180084963794030129975153349049853288997944827674211632160243122079567915532994845760995581633240028362107742653105647429909415215946508965502922623770425283483045719665083862118045142689758964363050309974713030642058723868287813035774135868703384334248051490386134811470315668941976378974522714739970284215242697013899678521798026012611913541256421203625269594305525246574663067789120516352937626342737973711476250429375288947297217210892946597299880728747848354625170733536779553570146288596741693263555090026475696024701485641591645737993154897758539075917415481471006665439028171326902086701016363251410405700174199676536100236187594636042461946108906109930940754792323069669072735915846178582283856036531529277597342545465323497484634611786995138158308919809216305900439468870407853821508823603633921285766926897917102211086474786065685710707303243569949941407040583157215435439159101180996912773248567106165293237859887445836944670149034870756207886251625438559987523067270223550420608117845070925159537351518034539181865490759045563242589726809515524387557139785030769854129417677380932903128411379505294399704752730920016026465340869815657332452231876835747627624380938866112976377053665453071564681464853495048754536407170662341887321236281516563641641446621934276088092406713719817893765333058174397963204132172481682401740062965394188375819305926282872345713558356541902233314539844109291867802673804799648662036613871816406119711938217718771387617114326945233119799008744299232962649121323676686376875507310149474266032932916631644308868167335882529276925212303664933526474573783665905881153385342822544333587259208163318437172891707955512356299056436864669832949780848396144284823437935938150433158416799450303652060622110258843009219515857653459678520523158238209782205641434750786655896710435627190192560428110727955486103439948783772750777467144037015824685061982237712162340745368091112128140734992066965158829070410365333675146902154001313088432815843823955718487456420729932414335863601244315144611459608115276962404591709234752933337723125471946332137423089821099353834031685385155701413615819438226932448331557410370788601900465607915031404339065167570490224042354671807978251786804636823451603718175401269248051446383755338397568008735409585382659172739651270003920623253893917213546051684030243214498449165744788861060305102423198047394465300452396308920483896337672114431228783046778388360648905020421135063335733630553862371274785791248727250254443558681532851505018062471828960993008212163628478705939594498953150000953386972290292009326696948122392779410923376397272261209470492015815671762244439552788512724363582897235511560428406642190445768919305169091996573343155924888947846302213809172113424819517914127966192777066226467446386994204442766812531577237006760039535535020102532794917429236878501430787756085861451438642332532493845816520486651813910175694034701999747821205383880649768239662057258139076314601150375763110155204246139923778927528366396272984666640834313821120639398472272533419762168166054282589832925498688649114630454859682573704817270663872737750479437656750564963778135722501236416179599962264260674729662308924405106192734626453447305062719377321646824256744420222368041029278676250124036327063542661289996715925039912882892384925061269047323056711731002397923412900177742472515967515290330864274167782450723482497055035059282805723858934470687061341334612027599143857518495912581481467259953768749516175233624392828066110916267368363513371565097195242012216728442400487273502896699834257741542274139697009663618207412784943413658045028985078058303344340781569635300055756095881195437336709186365611692330686598462128551171542436459565298298072169391074096755792931263562098255575120835762571078771428631233850132398185979182004873247642403223611045135374489358335887711905352750628390146497018652476273074171475136914741975414146691596057198033920441576393369351937160737292836646069548259273704466018899115724930332189766708992098513969707440776807202202770027155863859447532684830577246241756169693368491120554666199745245288514812938676267663724596405870523158200960509403732062164713388143273859074441791584671847615922651913180786002436930576796862847955099820616740340841896180685330325192952032255275192961210799297584147595749148875798981798602828222434576971499725011084789032938990313949676390600848432778691356586472969107167351756166927055327766642678024440673211785804070155231999517390710153516529477972526050467761959529453332565804519609572341173725045268290539847385591325994581406212688970519339710158942266114980613746175929835883833404717827542730875526817653981695326630022927316479429788400717829914979274687133583598734780397156414645968270009205017321879815219813744336133156907704065401464003928937001499937794927224169133011502983236139178880886993008668260002600696470724523716188675142656850185899252585499399139259573485081619347122262476437134578155280032443773151437169914546116348070758187207146938177134896339998047461920952120673126841599790358556658736236708885867021424381547542791788672351327756539164451091580365414031072549019627190363404757758678555040852387298889954169092993338112003579223574802821407139387691824947698873536156479566495741887325386682233552733832944046117187463254363503908785573836130518962203218305197752082299414707577330976440784018027754327173438638737903633524600699342473919232919249560624047108162497043931559767152834446447179565281452646738668219835736118206942272155636066205205569199634100425238366155332717835466108629698057434864913318597907635768534619781904585089500936605222126126345908659139931546249485885593433961298948744728941255922517038184074372464253362963247992899738607800273571194732410746314273271053813645817465580253789987997862344142487390816214897066245309549274129569209173440501411407805127611188952391983726141459803934880646542435422707187621211314706184801603102091297171691040435954188086148175519750754780320668256578482826241653624995251346947592080355253755594320453988674353748823507347289349523785097818692021377063183010693764550437072109734351164154214948029741140133799461599049863465644494570346859043596818489031081130935776249469615519602861040771239825997265136516391087182331532169945097606215037218252964383769685525757363549860373869518766945855134401905569176548279132241955149324463948175446775207047423739777562662781903366531245396196894215738559382734078103911417776368425681733584077953473703966233858611586876043767501069004999150454471412018744383954069998551823958861205801570834743887345995066006740829292858242669528641574494821516040031614464500353182894228657540618554791980312044361804872062670796836212714101951119189814400360880336895014705989210811310519133282876142036265995469311623302621496338316339786389351312146395997262946510170468838424208716884146675812730261855892863897032817012681705465336040579967133096887056259321081318299814472310558576214924739447175702996077940463460592266297074880108742661516835368781407938609388619587410345563805364918332156041429922333465015292916397582525936857169962372705977908047434417459222778959718021717501379341900289230149880579826404279453985324456489959075627078838303412450522826549340227251534378800128162953168110591135729018123182905275034657314530959819757833543101926244245988571817576473112927124497406024762400414344817471234054301238609567378209095742929241587442534475783105631812327691738756303844164428422734745252249585905486128499226278408511213205301688666301578169309393723456595678160266222034109205191409067741125088815469653861206391390170329035543206560965402654280167599746225075171868042001570701661420382703450916167794970486101072261591109982610703654591570377556095901143158347674052691537677690866297632820427878564897570620578772980399905520487346972916610931550338553995039471767542093927287720558388219958749780330273587998325746096183950918650895522171736975050830591882728876863295427973043683316551609044167706091435112337112815655644098025691465841018360896670421787900638763968612037794633526409569002138860949964963019757400202701134312224430631445041821800580860100364223323064798072898805111636772343835080697386905303024802940585055812281369717967291685268136544019618189476491639007115523053478284751830545471018476745339322445707856104258896060584464171790263989378742851243333882667542957320945564718238455296297084157759041243621023260083259013958562569880968252646859115105813958914422993751244731210955434737211401469016660564595339829252404086291169312787048259443343546343206134588690037659230389133673065256943819005551814913255148756460773346661165098209066907403675828207251026413624741621803690837384946836586380248331387509488004785066769591722190640649359888169447512971666113995965019258269928835193350362088186673876799739845356417655433371468701114451539444904903948385469830238009528106854098040741534346494452708451237569380494429432052012068926058703817542387667261986913557715570838398238037590528194638477263750980216612705324891242153838483161391084040995650753202089415482439463829177528469436545703452298541622460980419520895817355677563701921051851241020580387817658975055245612546969817748199784071245710991591156151575947478957247245931320384788485542818790391959752182420102120860308533246151153309118861806043335469252765268156278985155144762293644054999829894103037381172072835976924449594272836545079163145876713515789322473550760205840045733998627555257040742550583015092904823519527713780298853679826563333279148312012244632344937983116218533159862755594743153451521758560469820928794502448296560611409569931061531798813932600005518938391520863781577029183763433949624073458632709332017949076767567663073697273917749162981326043506497399398181732346246608557270454018116114023140754763801454083575438930105076060312648631703256307569185746536833040481252257009963457093757122617817848180174282907162437549349665587880990374382268089850455935196854199605190340664153465562671911388543174266366217635564942524368985965513368125116334240814478263067411291756371097238106063032435054468166583569656868464162031299671466690901414823522096981093272467211254576838936494640723437957080386805273561779168106433469651071063671777078538426794249355218228860928321240034037676643862957391598232267341634438844156539246924782697274474969574400763630979443547074755738607633770439682740505124993144524809152098303142371380673663642494013871578324337097803720730713334348779419090804470853306839183247028496187602108107891209840108476257798291497351902082332218480204026723587611308169391860093513114852032262531587670714185092056468874566914278153768316914681580296378459577175238193151939597239903549294815292503785448776712275263249984568202946689194664956322875289320493967293846155629371773298497493987559590239897476892540043481933807846745254556150221893187148907283637649493879971912330668452216296750814939241511106961359120441163811246316422409445912396219075091394943902814398631759348161598084716232520697890970168621880130772627529831201230352080843380260266338869616808752959092344594578957684819623269696364047620069851578852857765048657829586028555137970563770570131304194813942942957033939792551056386868009784156110543250000446146831684554403391223367581694771166251552330073336956731152017161439978845672939878665014802371849170625126473123084385245256590201464751143494797621562582041814377999538412182748842970213616135987861053206462800493177643985871980966352010163031274528101614808034546131316301590022166794636529226029976504216754147530038827875496928821336107100578909925127878144764211850676526232182626269966908657830054325363862459418022561462947157029683222090942559129403477344706754670988314570881762824679108707911184354847021340783800158459163629464394565731531683347464309465225049010364871452426166600809428498046335091766546049602013690108782819089709155253016562293198521668179516388026375442649192704127853100371997483818301800938652429769095882605405128057534457547335402429363663874573374295132384769166386832748146030516763719465259274608653985845281223877857793467732325089826338084417465498144491009811446290240210428856991144341300791737717485567175141603774731675124427318773404737288719964611273480507831402246248089609448792842433380320649364080359627524957747671513666598297519865894578888472770280627865787050686439110267060557398261843746637958229415108514490353462380857417496973396441403163700862607038252182277987184710291362267595983164685313005401116035294381867446977310329996012500847504658102515575123546021875702891346758577879971694118118533623767775287228633127781925405775035884923539311609587198791354978921528187124711875323964470008835236487513661853964582199653157708427961175591718017603390898676367386537226841893483219582994239410078951432439735646513270137308331922857073988408381633931757250670817443548263149549674085065873961416363988380724863858417371374515444414334463833700185441760274914437228422114205315540945158876983967052173294364770822547971682505959271766630822377022894349671147733107413632399950120748699618155072336018438074735078447767153992832582268441170561286942603691578476844878100220773838025009642477352086134618598142861815973432930914910432179323797771401861368324577990717996721422025633383172830529733651734391945156043461827634427338184774454663155757962125503058439839927367693982834198459334311601245176334671583665873073298244725382189073564354236603149031834001096487852148867335526736484363270832761640680994880275522365676284544800487373053475709977242675485029026511166616107578057251309162230490397529301711879179686538289429537966236835524020049917628955443370934068692664351054699713524433356860338285279389025466226259861397573999639703985074385737736767466176616518034348651548368189425462848434321347920250656428328350127707806417660515975221445604603953831259467925369546648260082925641313734225577164852379778165862736903631163888749109815616762325828410318444521028508966588530761470905518158954739977610328595969770664956781259895168788308154269839667693544177924992378996331559924555473701210078684408927059189024708472810297803460413906365177531166415140496888454308752347557512511154246030212713379993082605807479824074923485212610454966717484465586276292034757272995550424813923226993745323133467295715694532695090769527147075734396079553290801772981241128926410524479201093608843528366409806552849303017823822680823727445606987921685595713173671265489254806159021357939610965104297826263952392532523485286086220801307172443318616552643472166282809392991685741797546963392507824417925199281557011944834324361688217473012840184346908576685605861226176702035171430110479985326896262940423206765026226451444646022851682726090387599827440854038066386343729081997468243830200624768370432429559167372994219748431434099012160427679185700394333874403925526133390719617561162359210083646813350287695262666280892732616020899481566628554532269340307442799129964979843599894168341340416148222641795637302377920570890369007973218292870951392814231633926246735014932958446096526753543768949441471076827952657011236989588310591361018001668846424695585736824416529729143526700962829765426603108435012235621066327132913602200231402268629040969356367989052267607931508478883911157394668271053890896952730258191165304323709756422116513074800713800145704372763461842598333749429720511972991073264010484084811252923778658832602857282108320526298668562172480361461833493413098494840775304537633767149808682429080205521158979880055532689098844188134213720477907920756829071778150428533600958513955290448496348984706403927796534441860446283556393789913219914285410986313401667104596806667229547960894452266534268987485836334323648972874966328191400322079923728830127234810925366234159560977503977918518452165194671529658848228998446572870275644926716205710762780174614205938124624189738155155612075565222499821010571422604212169120445795914158723498989900695504101064441161269986068411257051441707411050221392367764866158311054646241904603431263048342793367644471408324609966429287739244130866983748315963214869345884245643406781339735153803006971114436152510694643332541713093798057787929670748001659119161894921489349052309683878583778974643238848944799110262695776439639807821774642934995203466119658324942986732755277412566492932172133615046333016883711659813534221316073011664540551152047351971883118023921787208023037875287809027496776381629897644485591983311231725562093004684344459403994633047162252076700683919663501735062776820468431225861382312960873145663989522576081770847460879663717954740648847283803979123603215829441921067014114166855854579601649745698963428891011253296345829261288503085273882930749340167733608942669643027928428224101076531593818984350847504632826250130902593252803201315480143079768447328291343255919129113707575872758234571745015851990459049585824672903240648969630605341456917111615598573345277965837417091878562598039101152912341874643509353245038185523319795853708806264573839127019752837496386910137125717341921568701421448191341326711398770210883755784285165359269951448107884583398770636543292019042230801083736299281567480029598128852654271180196673304414719934015567306428133928185696135787072594169335369584682677995210872305804437366760671871897084425381608628193890616879814667580770776817269431789319313441040335624755319380561632108339530549195937390928705183256973407272111028017547232786825162760938120729036607328638178067227426551803508566599131056624453287328198884420955490813897607712785880659174260177503805972178996244742177216573493416495067391856407752254442007767493603986206928765104509827201045320682537651079838063590509050837713557640160191931758053883999461688545153296860756165094850057106084422387726752799572717580159663037150229635502406546406637387441364108268220039918129482748896611986392725416432511670154741356538276241129651831064689007398239682873986113088836290062776226145384262175087048287859981264659479283556063227309520002174601115499345213325402907603658206801571891270500718757517814800676870566181750988592719947458728070619267286220234034597082343380626502656500147493528965212443256308089703603706813689530881945074507721585726794443173117004743761682195220474064204365032149773342093113363111105535288684080663504918468370712157347813187424088596203012108118664931927728022015089094778970655797895362444509915319286519057052826164115469619457894177136665227111791956270617717283403702496986186857053717608810075250070861493733533587472591138164843356891672799621365443126052057047469862692311920425788571239699603343821562685445866135415530679897720859330077135536766970560685070528743079989142582215619994731662638520250036741167091034948067886088546048124958694282693168750392336146039146916767176448197459254598768985022422681862895990162444677720299984555026810255035968875784991929542300984187722913123073622290608329176390377399040430703057418321474616316197853628645541509147233743339300035861026256278242775098617298428268745984967293692152030732436876514747758218553029244950097565762778887889479907107618878367610690074984056320428411983181040230327995500294711665901186595319999541409369463027529658999291522188483599979245114870356954157604306507404014411019042257236233825968914500921797239028399995101461975815877405003634323159000123850880242783601805238313335384577623420706386497499105770511841770737429458614045302174289081670815390658427764895240328584971755079495318533123874819556184046582609237827079870297508657273722214087436135565769891234161967895152518672328036342192237472382224487120415601000300994940754122291141139716901318889849230032962718217652727577060838924190719647831597925609254696795373984756190373450597379551621260272755018002539304326370333930985006914879754531775987011155780783380408845575869956404753032905473827347568034947430720083065700242912081513185291430408174927289048961318006924612027150181860160420385200848535093774795302085081941975566906524105852059417528438173786025872802725982003984164817962410119518105384582342213052565294238942982125200090710855436503207189764450906114300967606974488132713934435098487766168158021031953893752047739650480855204150966396779957410650853012380296993939082536526281865958961353955409614371981099721859624938816238135007965716441070224632772097470826700878944692945875295956022593693269634757414322578839625393896834454036471866628370769546227919967548428196989081553909315383486199013942419662907961766742550456191938330683289621494938303677005511881231946658130912027995070688441765750780282112352754668899075100277995738754618024822852492576866390190660772309331439513467003249097956587670602210810735017957695589920185765395005180259090114570946123862858388647440223109121035933155458787027517056562863151062542619578454878009263755459706047991073232212178502383354469256550309307437877558163173548880277130225985684508714696242218377438514033900460430440374124689238121168874006643252020875283020757431548938983221986126527676179304607139194659143440980295742716038058205261814422960839215653701468553931726361183431890903362170603327033198446620051478455932403916167041611692740493561681350385786254426168169144739545178206602711577826849263397132138314934413136241381791263504764289684500685247781196503488981757827397751148421331663815725683207627255923175895284037005155331317458996767480961708730505733355690135458772136059588132667018070307162143555261508803262121942929031935199775929652902331586501332572855076739792112649699223499775298626471516185628967289109183105187009457918630886086413578028887809346169484447766929021698603437504192327422568446492699592691520810816883366923521273888892141057036861885581631973881552720941963596995507722892205529835116457041539723216383830997857369465459458448077924098147271017480523010136157575710013485516550370964305465839594796802516163636848222383340281115310873406175895352367279780033018626354889921507414935874536951064296836196386697604030217309108456954064964816488587920739768789792718248849159450108378154826019108554248357078504676168153130018865071397477774467140184151140057319224630277318983744111024553120808710593986396397575307410981878644825047160646647770324659100458104353724675821253725772598302355550939088135599217921690588374160593546133934104511252390214839500058594570455260816602552722496215031411711488132641278936743236555145356532006147532053878204322162513203416913334737897063934069152007106441055033307302149941957897060191297742080634084437353408531689179180070465057651330028416306594311199580452523409990883694379200324896091642214493869712635734056128422383271915643587502935505055330898883821055724987561816427225238927085683087972389736394353437712964391266159354310116524694625399918017251845366703259102253464403687565568258931851121094106693458832219993997166722859360367605510080349367648916103698209222009219993102170872013985090616138410160597938561541380878421123014387539233013770148880243360661325491362920099950273106409447117391439129079681422666873518252531171097206308131395123660418148040016530504479599406934942956528854768889863873024924729601033867982183372975211290396493890856728318864193812183599129854416367143953719615317438654897006479877831435941911178938216245048267314572702248290661444510638682911725930710525025825941704487805571091503217014879949251645055529281247959030763515494533147005256446598916206139941586859704191768628977413379619390015707267630027760842630494778756136295930984202242034993831449880194120846171227037522009937612026301444462522353541937554193515808180569277771512896670208834081800868167645243720017522501890021042896371444541633831625057454023105404861942193421377636238616649439879107114623092162494866471119463382191240862391237299286299177163028422877256898729812560407488630629630880928781089867465442171374684657895014899634271608986409495021484807348007854151706572674948484053844965314916064147870033930817516275645815846609560347820933647012088106489027086084578841894521735178957550731738492636500713615768729045403170860197845052627601703235343870206791320022922467433308495854889537509288337540015638973944216665623707223767318984565391770346879158883955572696038674684650717051460858861108538215402280334110643871908766189523835019021286539952807740728620465942979069559373128397623921019927011251393257717623682060833724998056616070062225218208285342428663954639931104886345134716421195113302400312158613241722805814222881347341468310666759495552264063097518594523689525291037759803016821261599656305635255925888060649049795513055642921818647377134714977466264973073746060308070486483911482169741739577415047885469710046204074810603391299192922951439403238215509789949867514957342867258116495984163825331037034402776719156634532145837360922686746040284719721003421143321335216943171826354303806404125981427429540340881436285570926780235065404298428732525095592744074256167261410344515672456776473898242546976423301753330287707558821029381031665228801644335277220876281732487520638237583741556666056598890000174889112315435817588211487502667089381878995293030727676650835802826696574011466139555036073847303966836984124533284114218443350693235914192964625786232310245364610545965965496543551798119063149487679987968840050786637014926458791858937621195960934881513009058536864423521038535903284457234102716946027868614489076385668566848845269411031516009306530128002383432198588126882770172952614480898662073446765296705663195402613720838944327900891288586258171244598429697471942372728751763478947765094464199498781412682317366231931753178925626295735029457315962891016885304068839291320925777989981219418280400425395633392403503619142025487877264842639657084531990331057187923234678870214451028767613745763552670552410620042586413104536424952494790334012224635271179484096425827081189148410062327365221362142821753640994197483573987002356112287962113584637474421282760662103722904531008394434628403841897588054733810796792260959473388572624092076574483653931755580443219937943702903741350566611622100065272104220939119231765765074146715376093822124885143293713995213026046623384465186382052122623617820110896889843277644649600221953623546261547549286334773216582636970014589710637649712516391280759378384284933209551149979247257729856593808752243729358967224502546162635252340990017005755384409800208035976425530825947675645697146168907658316133564598650537397034584456079838485948226850628505452871381317803707387186128020719515737469872854452241375981323638161876375779385043876467538502850805961766821411361699188888135099380150556660297255475789557481029542178654035794094966398909907362055443412534657342768609202445712003912306537600408070369691752930362439204788646332263845663935705239716291712203201911069924010557088667696442392960127551072215171468788711141792327735747749661288307418748295982595593207153976468524450190210461255352238006194564269992361977101495084944227292019801962245685084464676704698300464969077991675585179013611581051786818098456924251120229126570043615680427854557276816153640261722341346842716818514298513735336600850161393778586125475157767117901006353331651089832620968085477358413901134216276613068090282640103690190713856303067884189514280648978974882866639332800168567305650858988564867200374256077556792378013277508201804005647108063946634749749042670240807750532913332829710695169934496544772934316882136238439275178891634721768549379908308417711924903761234144609163434762948694132696894673336668091940255994616571856259458649921151132763124556193681412896100148843661129310223303450410234038744083262232125221314035893609960357028389133620360678994524281685421629770440923536996588745401466348130581278605188482430353403856586558251105804102074386731788042302269073616859105307438511181289735678038983133595336927144854364742697470758280754905229426513958259083980097257561445698803080834433529765624790558813722898468468668134969797015906856486382905017662314266565426427535894507097499163345642887814099330925202885203467856237471818196898270553983193058444113210153392483499577312938962930737942121953635998566408322161977991354216444574894092708825172986765351471759142664934639463513096661500320419355891820625035466321590405908542176061609296477339873467780101556109657459483806526089438684241133767175072710356349805018232036669942919303474713614304781259082958796291674499803323970042881283231803910280989434286005919393752333648647571399163166521997693379879726817974254525971206984826570118665250770073217492067950557409006579538899545263656669627577085562748384157094385675723798918958357798508960249900549268243995250771388679668504239919001953599284377038957587482285621690160589384242864157054993323243875580597550823025301894745369394483490033978709845399501947001305074590684367748360001043797779835091606553397412998261456439113436566486275902629464833959139870951693878925674389373285163898212494303798422272303483629142465224544782164623690409891144586759512290428096154419741949692044049058558765573288377654575136094676127044838285327277662347662497509911718166759108322134911667802744268511890960605237369490100616114074676263793467197714798709671860179383093686921348601397645439429059119128614054071197850961725418916466215492362706945399623265837103978672694437448722705053049118848249952832912564045796207710250550521354091669520287904174245628962960468388403391724742803501579310556654006748424077575734113919859534178815888421879091782133868621850954380796428237408065964378756687621466754714562313008502994196474346886639569620484662627138191667242207298047428309960983297067182114384387721626376372989095878915182188114282958311933472513003432869922051584795238147986342312217387437359928404676652503658026452546112825308520826061341557921741834090779747142741362726998171162168004408236310385215458010689834855968679846759970234345802038000563352443058569502055512980878892400166152734299944098196131491246975712928392881334409548491484830923990867757223058865834201165288791128119011560711681007362197773721646647976184064577244987010047102422747467216820303747112868439599348419230209128434326228697915576647992460264808607769704353566309720220195043724942467587563887539189638149177674178595469017128072290776544895774108854212734466157165568576951488361575203755663885882753395799824938228693876267070496640790465215451613937165542953363003761294360319523696532697800061149998551614483007413406014183680779025834402543467733024377048353857911427963952979787609167152602009930091728798482696826949759062350057884830069816689784402768443508111926389794235675987800461706125311191100111528036717478376982296580501674458719512614965681247150492375583134418438325705898611184100622977668724560735968607953368443077665820207638018920589313470356763659664343850889428788274364906674096612672342009280250062815411240061747642651437946420769874945568970785866068770873508329636988114435424511932106591157896245374724120373886981380705253148339008523122598393916285540694201992959164879470287989293743936427873692666569291410056581685632478663446005963817631825772153098885441411052677138696470351307142460839171578190671724722607763281135230333474912386909376767564344741200132089363477069053775057355097027325783102599675101900098149973989830189866507032739266955399778974674235865080458349717300595061980906303745924605368364295750840449279178066303179358395601088212019447771707192746840438395496892360473375971492879432694064291305731115736608697574814612767414595547297225384964040718888266399432954860630215683689578151166164483954284193359124427116041768132847353766287655534459596463324011930783212072733879765692834319117055209189610896376631245147898819018614324849123712312489820791368538308632126798470356084957026148582629824786489146831507029111558887277474773296802675349416066220745632263439549378681539741671079303440956955482665933810657987072616801786464253632969225440594057711283048531205349660038376607388091586894383568738149196916097906337126412234367836807312116308113711764955982768839612408082836637860503963724432532343003911254271683189823434964107935010130574455485097572919057790080639079802305616862386687227683323650905165884700608131641813318776012809710928298433823709606201849035762485112241051885560300864028402443596582175050911853544459800759883944336480593192651290590432508245497141420606874218973771248119329652964122898683585129551915093648903017449117728944278489457943185887324701376414188914855133837139808247684997700236382708563205534019094137309483392511907378697978132803157624466077280177619569278537201315072510276103742427542706274224815049110712617544389736166969886565097037239359762103999283132979324473601782620325489262298315466935617687037137928732927146029827538793283804497291356300151386229595669738898915440271349180711137705015223122433746503440104771140678963356967327032404205725777064862493158052928243967382232816860947713008438568737893853336964744518069957257223511054662706478659307302328748148103108882594772079201308023034486853190412949053697818419796980765722528118856640062906286243234702986674242154656715306029185237048231876060118297406071682934434657368143007885317061690570007943738768271454716691155311276314618853028143653572249334382889054167560694795296508071650792956598248610371995512612066600896239606930214730046571312172665132679456594952339016666471709643642395607666355106068218905137655984889189064417741573919622820612367382263617160003358348542196090969513278939711738009511733629990965054201877400600587348689771928424096031086278319991382139683289974452210776587599657418343039558871889665220326997156146108759364186088879796053701834680762618603141963469526543265575603492082224996023294264991793226396773787553588494923271748456736608388710707143091949926482359117902371964148225538649661162835116550183281805949606762346143216438463977413320388096481781149364612767260780376257020364278247797504812259211299191493398787959134964696003053153593243270745041082592589646226382117311086150347058224270995173692186112261501687908889852583755889569342210793981014630666590469377013396558008883794224232966559247358777200970878127363387889587182812304302388863178004311278727012036892052118756186673132199567488518588197503034137805771270014142259160563360563273168059056020809131730584275502556146568431964108981655090053376571248120830355445392336346796972782265439059954437728104804183625873771029529954186316989966322579583051603406774628910839544558360074633101958711686703799935292625792971402267284804479807037419649669712823771068297571109121360538148345172938954925619941627172470393669839275164536665587889808061091018289707258821009731371383502977931778126778790743578861711795605136674575768967372981921739590500000869822967266439092798828936544488099082084372444001738016411161488634643367491056493203002698005644797064152311595029176981014873953242220831682406003487771358140026792793460306303656774427099238850835680212779267885223598616489555820638349997506395164756398808243559194431872096257695767318436833870778624388805663871229517289003696995985036683913935040490193808358911950280624386994530483885482467177699973255147691022781090300421202065264937030670680940373531718791357725771689104280959098575456844813930461856520380532488447772649711840152473061232916225886728826606045621092875509882996103854655106800889872190749994047597994081677773273486358944423412933531291285514235970978282726493764160047332980116502079084498988028637778090599262900603434945700340420953287214664080401273300907316437405528008217844494420775765675154320870517613514451283383083795218915085795838094964828488972716845728294175685916811219910952032281667131594049318538143535210077727377412015282891899692054478879964587829441644883853503233081065222919438458410155642730003328059717566037491587958390732296909170321294288238850490560412988125229769970452811037043781715063478156688848774194983047463653340309235169545491692912401282016581814298407197537264546073226487027037070371537064943548580366869063388527226672838307674869406215955217870332948937847471148574958705134171913285668538850413344341079854965846547218719544670518989220383540237829412035007556908216758299764032004250251987670143216024463048220010333865479530551084809361517138752891594909084248057237828217913454240444000767719700742986525754223160301994503301474807220013220097757688942187851360677399692960672861349249657436133552949127899614695028849604898148318036308721089148491556377341624870569753893031906968198531830276265978400767133064499566389713803973155982375178098605388874695551714172898344068582135922050818241333817240885514669040606539226586027651478099216333916275042137683577801134281516860653409330724424063667059849564642830829577544755169223491746565123307366384212744088793600671582108981405322533308738558670073439015884293667565379451916252000613007087890071822920353058580102481228492268884189620639039776229513280845336207799052912449974248416245913638462449972749057937505606124576649810960234300059811359701393009506974494567592794390627620770560599106554677852826409706511169031597436166978396552158822552154700470180816365483254359642460066714826925872324005762464493362167788161672485722478856019497052303598498280611373117978193505595566084423219091564194190044253107350822749290879244349595528299040935230198145012581870907012199873900574797026698008592945489123080991110484684332843615213472884822658907759244829332587908994312503968675999616744424925851617006180001939655453932244998905023264108894777264400187095337014338682976705273860458362665756405570649413052960757661973295080995117425951131902876908536153165154936921510467142509194892684669915981149392838100223808455960694528619955315730279818272707554320523886873315007627246363375546990674394194275008602341048361424280291602264153455868059884995238624637532956683425769990759133848038152677738997799606339297062042619434940453580204207591053235721424182691781826031049536931293754470585802270782685556579210061954941745872576158318389367896226398705313921582504089236286028677827297760064919101788739723314227151031884636088639211787133202672182572049978834614221659357067478718576716536023052177335001664984284191046229946384762763030751915587036190410431865013757455459719734454157049523358421652857883058453639241397676822986009114472853595629905727382173511735917119319788460373306404730877360057009474411929327622232589760988211140437636714450213049718714577203524170779720606644107493158736497605183005231577858003846619530173870830086304031587144702426443838439588960805968038177595827232589231741638543247787977881385697036637860264013975478508659930370909364820709603910485716597593210129431013446201057457893251904713952885065935121745414024709406646323142618155125786764098455417533762665537558682993115255014168872738235545866155167282745210072999980084413749563905186093339868497651661412338106894036269750449372459815867735498441001339439070818938944063369050929267014389669383945659939653184092089244428348173949613129757129647240107726422430636294611987604115641936737734309353441477155071257727423282281513857542207174418646024691466135859192712011150390445496032184188358222958570498230924133512652812136555902659214086932758470159508638578819331695075053006283346633556921215828783028940464232608481227331897408974972485892028153835971255162689187763083808987239965532062364329880565009287885872931298065660965447669978779571270931274238080186091212398036556415913194050109061361011951848946956590917689963047494744884615666544982575236740870168023996700000688501102949016687411104687325383703622125568010437356570775901078738697433655732912438099588636364271532259745634551322551307261320276791094526597336899992276892460125810367429050773081393239458320523552070905432820700028553207730433481346081748581216319731636414233682735500650647675877496089411557849648266424221934955536101786382368344134555573635423883175072376309458181010632150603157200649095720676230930682852845975094963917366081547935669095635413608430869646635554984452087951277641808268865052799028993400294991621996608113506934096441470205219320568652157861538943887576497846184558715721547962375853479069915719319863602911696959184025838040671368432337579461453988594281856936910316414959100078618794569077299194119907751853687972772689014268311576317459861471797023070433097136595284968170281128757717703515328744630619053650100515817731660544238631921893819701143402385756543720413442707635856537036071867678227414764954141874263119287383355390554007815374229817989146502107788194354143343485975519615553408791472726966686080575904767721653872355915697043735613011535260801352385517206219496314473296126402951664361529590695517601744465310528096168742417802110076105876396642628468495164515075004276735906139867602923554398584964260531635178465437090136482980954035835365645594756680444973228239860582016516682846984700507666871776635665329204870764214669604617216002443406490274322758870418076667369840246408810408722782366181020932087649620972783649646409797756541302991904279182122680647172830290561592550872977480298268797251949095265171337412282862805179401353638480182483693751869740995912267516169193869889984731136749921675015167417884072086193760529720578848695258984653668413213626663588143364285808852463698520848020843595257258674537542479893239799643648663716391340194322620995595809260673660458866381456245211808443152857211381815919575885908922408281939752530828214510091047707742398849609491479643000027079177355756067748732575471860722620946547633605649710210633646242728748391973125905081425275564286890455442624498306167365855838706740423506261287843337173604507768184359184820312815368612807530595108302826616337517994617157361805917129898020521230440726709867845271508945019846312364546082685144036153917272568791940971353092676172604982815311889947915762195020817050705124436639883591060271544455425648688252122077334903330328280182465781161678592644559803520498855769984603163453155550135088942798876862820458909865000672944057567007718656800532046195446735052512568155942656091988754477156349002607153456640917531841100366976897705496833971497314463022780636511788349420370600172199722260642766428555952883379250264999110903114977823598857386410335076989686153692397957547309001157990984610416939009984932419950495677446555381887264461693296354077146036785519666508285952162340819980414070857090364427926843433518396158947787314449983039729651930788405349563859527863635278350202365937536369754477478003184411837925003480024854639988200670246166322436950386572366043171421984861339228637633704984489432049996875656216517934723513019969869759179791968328112037824292218663888572509197052975570698039750025657499634353644838195800956254678395367551670031954083184170575633264776664614855700848969766542513112322964529806517575922417060663190846456306948872323174198528807810126311786189306831512805036848841981812687469130442091414989559279529104769046993231255701397013928920087212074711708663518978431858219449351349585250039392539787008437647331286688099670488930107049104526772809869122124623348648946411755547897690535241246333712572463289325313099034770253616871079637987666295943751428222070350772877725547098170613432182447734858880380299198349317989011987261674990385725839326186189382558926937403447893424393641193726883289681440390955154489069762355834956863946141547247867120162078853942979324894381289766155965385737469830098240654353344132838963410674571425875212573036551740483544073896417153585811249979968206704714346939001946316919251900894752998823852303515249771950828873227857566409517649379531843847122702238507403610338031540964949286095615761158027677231729008417898187949566506780711849139828461622046139986178099281097406885690015746997422907272317762705445385135941550079319296157318755712529634510364157338562703908285270777940015565828293545193192731538545605999888837314816662585629220751272705657720876076630522686263716178086227024144383847855258019450192992810137210909325947435395110546487677576467165685611988566423726360428294066459138646431822329671686752848291973658160734677554141842688467218746987277979023289603969304155693641605298385113646144527120040954582569241508557217947377425721749056683492572013202195784964078131018897366711829110961326881403273396222050489438177392547054749253201925045543153389491071588496584716125593427090169735218959024847635800997083000975066410315440418693444256348147920293925880246220073144076576811208736673320173184429164309513881332043986049878253356088824901802213789811399144875844296548986946911465743090561183451602326536258299526593808492428307908320195497435771753542255547541943841316481173559418969565334458698834818447450447770392340318270802948116810400712620626599874184454785620020807881730047454360833876876103998746850849252675013748898681125267047733314059735095344167203246177255674752521336062448543965301317635087990610884226302516452988744600143102005144557084125797424553362924348967411918349105965915238478009236228515115607127049464528259823523768979822638328437933355639849516511860296520920878396757354016089041245339961412787388256960043949668131115597739098425667334058003029373464636801931825916542337336788531899664525341200094422769477826871711618618916311905080878322235029600272296810852939932602941595171420836827045787809668399518938675951665658837351271743433577062905499542415573531220159022202608070978398723320822286150558091634025237202104291591808087602142947010636885951240006154324581576856900263039138557227136708506103913090805468905219816499769468227531219902370360422876630085538099596019896970449670990883998790487519291341686434839087799307615117109257487734515515083273521961753129504239150626415100715866422269444059907121431417035942193041156909029639722125030366047541098103959097430861565371671700657547009736261557038874854547708972063936276284807018691537026141387615976306853507582945016148753986033265564417873521260928701270401397568778505089746094036316471236617038012836066529894088728963621857274809263495851142704374663017588429145077368901993314483797196182944009543917044622602242163963883442711159018021385451446617743783265588141095673441074143788221007372360580805282326851008099095855461042359606723565019616807623065543707228106117645585884877358746963748158859044077416605664627164811719183125479902460711204623080181800357429395134940678957510978507902867288259536585680457307371554153210338275850772958322651523780912038963788399734481322183979353286073079038300022551653807242565858159799998727829437909082339068962588874640121807404166631100828919799252613241850389812786558486320525885856831178169865169924154105192119289589672401050085414355241131410581087510562790882523071977243683866382036616624851514929654141653564704423720383529697595141510108754967042221734045706876965789979187858570907421553130956554114990938106696924069780816331752911964401482159796399715930232821005616896686145684461908459943113577683595497341958216695916279567028809240481220463348370442734461529212757764685920419653139834523963311484377572416809167395843761527900954530028744871966186717958552746539611809656869590910539062031604126446609006519781290534576538245511381705617255281022764940240041438048333539221242453487349032073263452886174238723111339499320128025928044293864111598795752488225898357016726526986274806384505280756434575113405846350306390274228545206961028424966065471917846610315567086309704193273477305888893756234610797588801260395537298267067665973744828444048129281676479543439984184102328171462146871291982578302852422853585525756072080832561736507678006232555740931434281795449159976925613149473951351401037522734327482224411411542861919506187387438740915155749351952255627200691061090308847902386534877462957938307137936437130907156773878519296041933850478361607712026399079048995083684653813987809632949772905485085600578101858818853783034535816035280815055018913526898586620825606763069293482129790240665237694432342968925313891007832906027957594014005834243777035702194116889299720406343759301947928295700886930546202827462067712801545817081030865338046329154221374438956593264777093499058921149551309577821798447436780445299942110847063676416468642891067028375835645098087463431748088126099055640686561558929690260074124581671452999670423131831435791159598384388013809768848867729451218078434800285296377317336873590472948895370568862411552607363050821324364811907613463589162098445248203621955746923769106415225859539591922156488964046824326927316515829504890187436443432548677216293902457274383136558129983021478244522309318899197133037242856203679138052941478499935721712084366705645661549131332114944441988134597815898843194847148112769079131868268724816185464886320114281839001202156022721489537371354344835651409606690282316433093145574291567936224838761673801589802569531662441606987431316869112963436036449672505514987278524195341235521056471986464094342965181011546207584618333843814318492300144236832252976149085878947377173532930218778390832995967920695383074979777832247765279000242437365078971592426660427251397284014459438591286014171667922539983503592514495927389840438904173759716025044100747789349404717412740407308050066286645540766027215095573457374776395085705465230187608232750944430142512625856957514721758267867430854319640220771640256414806181966520359425733392787764896101657228280352349309679880809284762735066233844709574864942656091839640298356479109415842168756329851223261693790493839984432606466361428869739910779896849411345643971108171150703265017312412503212480275618634981823007254810665579746685163181194038753148384300010718073154730949122956884267714592717303294163291670878866006008431030798432528629692837240670382875186197152086273437744993429264751103142810275845042054939459101551912347606762030693201894280108535327824643165173448020256786609320311015109708036219010713161313579144822483215742650774823137249145170920047961599223371439307226855293686203780992340967233129276769392514200973120624659398694081265661442937877460172289966254149963697357268220035163901170760996418494823320453632788570756036834374073243331940845058135776453632748556434681202484031979913175154414451123731743880126876382802743704907428225474502369383896806862422767844294082945150638168531352635085168705580660960584109757623673059387878975134039218479373945985224929657517496739356625459013099376397820941429434001077577730117538142517990725207651061944226251224125019877064532426493684852859404680986256411097169398132474857703513511381643818154794534466831706194941474752637927661692563257490203170789019330515010688134128294190056966947067286019247896043485188377760147185011646154364295974934444959896041832938011846923075382721984824746483513979874904182823631356912422225615598002969732814277932182196831311454478683006611007530857683735659935539932746229183254259804097135570678529051999914899850232373592139832875531959169118760231898784467117089441358629918032056750586397718042336777192262273211602324431053968128035723553216548030468330013430528326958199298913421916447653480065340520680744848733745682689378014915331946935814366733679427256316659160441499142793299734738488422494935871988571752123998396104694825547313102428317231685161241096054397428504341721150209085081119981986027280741318949260306501158115449623031979755803411417986148419167098505474856030600754646579719867028557553741217234921855034139855915010433458343258403476800231406825971478629961837226646666675687880411954809001841625607770491700561672053179473267130927736412096945171552539173389100156007524957444299978918128625389932720578697863541029074855448314501830135580557857307164127670717607789574192453262095913775408159896427599530502396025538935954982476724547569819292077583771303886121319077175049625655681439127394937561809688081609118821912495456933159141624481558083404113503084049270276654595215238371272354229334356736261205627886895359368430060399019716317039874731671110964932498066577834789423436276424106052219140462928281700839056781961145259222296342353982602163687761422797578819544201561091960792601696027133428974439228931840747506933472285606740045019851881523138413147644714838086070111106104499790171282904511775002366703772367387011119713939667924244826853572657804935468918350101336601784273863688462672617910889615189783645826200280055071510447814383134767544966664788451495943144607236610705493210584760640698527745212829772118780595615214502918742329867808927665106272382591157686845421661947344407032835025320857025527414452853296422231030884359083902683782322856717031550201971754676561785474369047074196595711164606233963634249525717517133139576636411395799991260914689016341736369961108513733306974797674430576266750532830396587722667773039213321194093174808680637299019936536912758004781614780332943233939143885106662010960244922478480297660416938344936332865437568464724000558381719284376858458642013656166781653185245193649199502343385828178904340690942671287535610335117298575443115294025359799666052067783766604884303135540897748984941327272494810109479846410036111352819215156867864034200552708551464375685217105744147597631365219126912321805726891707177284896916934091398213662232387353225594873971247922584427399766617373395964388283081430235842116294765509361309052649647462519079944372777864862688305644043072404102924413163324364295530402858865049271843779529877008184603870564128359335715066605130804518022233096350581617720482744667990815586357873512665298345225520578419359100666901435031073331928680080970717624085786173324996589273854522190954616928826424664897892128665822020633202505972192896820287332594015597877326890831500591334920553929541210665670002122048116786085348604022642856771568515941382392258340469241064345167625764814065095874800943640480875038204830895699003850134661741368550691392530851356624905990117980819635919876455883290770488836076062229986275630678520401360005614001092737059899077550072371374460044743948306069588705740525472213876697445622158115803880121954124674703195918246298244900902170003134050596930878093955954924039791110975393027166133565080889918324904034529159260086457671489967628810248954262208779560163593249139976390789579080822524418660795366043498249253989079986170939250922404113251811850098368031941819430328301967565443531049311763697926768126154174182929401163240806741986315636203545668349473034250040892428244974596027284840055214686982336975303816904702026841075569710807348128486021949593607961687079527737293248331447497457893076067911172659339979276191055775916519461725710536390688739458775345071435731804227261857566957792606373856889060178784573051046222761036474968063433618506314819049942859260569744816265711085199171886100539340132109421424075254093118782004545212559825239109658220239146356019708283422364304995195843531888787974340310061648770801413642489583946482266462158014397609208787738721934252074483585664858704401409111572909869119002824144720151966177717912937316843031515253216645529670031741115915642900119867221988436980999022279209666216195602334880582993871078859872154367229648281035864264769757649737107661387296704068220331328384502869300003633984024594096161015697710929915201596292846636107232352281812282434307925056152209726270080453780068715118952548330953925874840136483176664910749305336379708202962776453372586113459217650759974529010168560191943875655779296429741091572166243225462887594544184318589272997217342510158513283548285437058150077039977598670886405658404817895091632365842826728376981731999597088749378038011107473519386539095546520931767572984530846455605648813963505970649931222920621100591206530422693853919593459580212051894680768024716232801401327525826778588894412474761111405987532836190432491745869108895342607323200131358888021890819912175804560236066907000058317983051143026195173573719268431439688047491446021699011079654830872051677584520821647356303328054938894876221331489560445863425194986203348529117955242770078887237881381433977755600833612459013973512606435648286526733339959824052026150951669731106684878953882447002445504806350798412467249034414071332719684377515158636611669756020538594003716823630244228465886289328838695501716023881795556491099420024109848853217536920183406244659023231334173845459448195860596381074724796451882320031976121790217022414283340190785868899359396119251178881961234105691637710193889599936470578932511681010152475523350126053497285710259895239500501317414490032672238594632914465431830629470893473588452519996604520069778810023116191994822960869848130057347035419364597759180981608276404311768081988946062884336844822484522366101749453848738381075034293141585861034190438313700811722575909152251490776193288354858384456826494218126045595859348198178949605137196300839633962012247545351034965722600652827275934132370711388630320986409773511465213964056810101826953472244906747691572343582562991233790847008048844052101322781742973487935952757918606775313054246049198876452319967476571615422480232084597373521154426411821586617957281395155120123946324063443402646813570975924942388902903540456332028295388560158892330045535896040102561114921148591536053003456101964181927073619899224907269565374818364477996446435458871348294647688576049559351072693352102099270705325512935272424992599955157254308944966279781567966185449114377928228517364668529950116630463446682079768227966957744792727705591026580889177445512443341458456728038325608925154534622164622398152595217197456155810138692968936954926611293175357320877287166818768265533845632658730010407460210168432320160810958476599273842773097344839851841024550131497560301421539695225282396711792507454676302282545852531519447772023263865213650388157328162107541279005314339082959671909825369277240967319981554484959740768692048062983729214407468522475504533831602190068539431874726923440726574703850242191246606623505794662865821796853154890635028824821304952002101672282841029618906372640614823862365407572308403289406356203700930351644516509605657282301271232001834692506250470022313568336480318635366363516094145925748019651943805466739919206320693258847561721079795263545260065163893925703952113555489843777285183562649000480713560160706353920706820039697910423800722421499015906384976142571534286366985585699827153071134521364651104371551819512322073248931176576562704587974175122703994461357220753250449835716911084093599200070676844428938006842355735536363853814933502705580333809460817552237116369503227186590482737803771743606406795236031790827533268824671212594868187142779809567753081823030748592668233019715511518906746455626966783803427169274529668477279472606405965806950206315133754879696961638189304421455267269105695722002741842937504536067418414674088216229527293485336710888734664769332863965351979437220251600910395736926973679295077115763126077410507659423505346045290981471479277597064716379458409081780667402942428006658747713006880502759477025608245548531633175658027587622197097261680849381575505144130313010602662591626850328256198808511035958863438734830074274562100583550697734547564010754258644662070278640963536970094732585343405212287056716976567722394732452614358015135618721663109379831921105188287241558183433041350216633036870507625104108025716559164418504594189111178454142657433384489498367857137218111050529422743581452673424372197612267150335762003512654700433151514486330608116137295380268500689302676336557906025427081855097809409723732202085600964089601009941591200787992569063758717674269558248171676817841630692302492070221487820605256921249336661150766621662840154953356340189323305935910694272416685670768733324407866421926336535858058538645203009394765980907268592640309450294641088510048209741730640324556323690841651377905600147497728684997517254639689117698807708290251390290960816830605401291253097784780515177941833000243195349347531321077587729830567912255960584443578853954922077272240718364310528613225966765920223366693456690093346551368933098635215507162308656561733361201128971451026831848590905290139827080286534035476190367655639800999211882076824038345239448971407013812883436881196126159418628012527657835494826184113136914339767925455223697394993402370201105339228785861906214870699773624871161936024553113836384222233309255428183623529656213744589119883479803864103268864864776585591804897535130350680438179862994592036178884863275591511805296726987273087423298592072087978595748024876035230322140023753304172490794303141935772805279535981799318851690276400588967328194761466853268370942505054984899560387084094755650724726276071969369535659131489024173461651716390902837051730954204143629752859981545604641885738820198273624844626709607618175569910712503512694757428893497144549364550648605041225187429854327205611052294975253549463472727441328756738699835573382090383235136706944093824094845708404653117808905021080031932733091413177613034293236878800490735632587808857559111050993698742351484579551075153116995319089303403272694418726131220046618457079760632598990504838694676389699961898961926107827311322744718540870003787226564133025388544629713122527738835280635123662380351966349205949437398941259966382711363170699051688507572383895951116976856418403905017324095524785128472193845736537759748493184972064518228159833501182183517452952693732222352531226827857559887349990294833488591255388755001214455730486561476213254110187799774166857086583107500777363826599609541425498615702288021521477159828398144140873154969630146107186961435783116310224179747277796523034480523075657369005602354377846094773539993599630702873034435917207589644710744467105134853906802893827896114021203936792582388659062402846835472033344956773602582965646196855962654293081705569250107065077335954764451289189015150828369678158949165996307259490187929506354273360049071048233657441416998688759661694861904724170090300327589233136738973586763691837378216878329399861863119381303637132440731376778572864643447183908877490434705465939581215175038340709378277449564750974671230884785772200807607678296839893100345638974121112989296954829833094735479630562498402901653571626386707212395415300935964760365119467298819941037459608756308725903540878988984796145422402244830956440538379205521499747402968818463077231870088755848762672395175904843226495902186898685983841604944503400661522136580107772997778085661988911031706421915241787781811860213029491848617378102469267480503426230035311963063472738068232344388943153287442010001498615173363500093698416144544343318293817687294657321430675910072980030861089522958174512098155506221049602085181649903163152630008430222211815582095585815758508560816721303014113471486894670129630258038295427231883734352322386504638307093783115397812056423449745250547678980851520023448479823558592127390293474894358962007670421461870039807792288216338009038097348719340198229598657326723692588918226760436364821072875339465322641935204632768083479749939874731263591761820641403244697800894684250104271510398900080313871091273116077460169128061673601820571178446774300571635292904601331562059517313667015207485909337488259186692815771318244662078154448673620679276245473613213388630229417711497551874979618663745063342027875654899528203770624504046162501475607239115982015031657234593488563014514033963628485744759821412024608352204733137756626644931373165076131993376285179910669246586072951385586089176640407151519671537444595832410727433595120162046753661813925972520943866094945244615944843058753061513528610507507020112102365272042892152262457567825118161834731431400760735734550922742657469818621735150720007621829971002616500034509136918990034566612388778581240424986063004519214951331904839597892843270101518255945379955311198251185677323101191216627037923662982397647117666148096980446882996792122499137156992207826300088447031972809007877102191431722158772594902779911021649242093951777328172645375654834251555507242798170337402626207674621487813203995204939279317990920130263017545489374657048081259809044087801095563023005430481293395259030692307399776598325285718121677269883299423685175489731364003893546502795583934366826290542570589416300729085089648801517256294595190308245299402392386370095269101548286378938127966448567378819724254683805039541813349679118076819695053230794567071625502983211999969003732285787361472611189512718200946225408285887152102573183447847968982650888222706958234791398161936178806868109096968522108767944220924709707488565500993446846746879236109225969804506244928401455099517340055291713537562076121057643756512731086085109615005338681902613649929685005159777933655461324278585606063850169562735753710470777957417369300767909429449678158200439800485567678721650727841653046589790603092643490249801389261167438260114631805321094927183432488499497262164633290385552053023132005669493847889780998778602888548590117506752342769154662724361080202521231263333629563437629279701334283434392422715985619618812930181382218974811229560801757116229250295982201755210041980204060933279908354839943836038478224673752752019175193729006900180655528833161284205408690137529377357322652426438277153611557134000097672654588656148338372039544208633767189755635945593729415974883120312453635915704131426515993241990331207609235356999071769483640957982294139742267129267097046067882570874231330947224059233069652721403697336700134900656893888235451710728945967632077906379220538096087789678180123689413915963184155952920613456977831949499426904802269937810628633889096975556573288709480865306554157039413694552824544920444397476981709311424493534316700716883784539101728445797787170193576638608429708628773691487956673255120950739168783705490920952126645953187592045467651418564286554027561125730767643933250606084471702991137112358880934934933406565388135980232811281814735118347517395855584858308116620642745907930933177500768233019786076214939277203053621020619849015417572811799178895011710323825774124647881862791275544912897211481296415186166796587071759926121560920585282674978219615593498854415877907433990877225153100679350467415085322292798127485907020581081545558087636977735627635805065623223772406618748139793793619432812846992374477837539350087756194959647085526256862834778378688064316543593753766368795473027256205912288589838726015667720677058628714598439983456751432380653367237976783703596202410076792810897686355929725424217848361506527737029077878985841911672582936902307039411259442350569101687260916273652581297391041136799688613307103322844123335016685578011355132750454312704166081977686585614406038030112925974647033834134320466362565508452176513386639829924435893111231913708032335618035599788009732672372599485380812876277210597897616827070022950139637497017382652673478498176243081821298016104541105448482209612122570041933392706457084681396924282441983320999243999468793374853363696025355209956697122503836538752334965517484975266075562296654947929893876492694822727964616313119712465162330522677611370286216024485159975552753660061560651374792443909526932829119039575095067729924442039705315126610057864805965643638547621459460542475526262597415303576031159441295482228520766347683785822443194498476379171165362281721597908875221305519978794626203755050656759534525501630880090075264682716806032340688897403729896775528266066736697790101705432155818780732127859490934986937454460483124628812835771150315258586593243286143999639194154847654976938266720163632327049402746446675973020124269574856087765302941123429202789376289412576783105261702193344100202362589007975893719329807893530406490103305728463295467575013974513320731222330037271311223047141918947767760824399106330836461716738908268679076462776600106476144722753345865747114005263343987589282118898334361521975525481061971340824469617036548413794455052471263655834581712853244647342904391550772268392878970852642054605127056038982330041516994426184414793079550936725324938771844743667551048737470280263928922717044782239322779725100487083107539172551524685828616412070447066896413580178905470436265023122010643231319541752258284623462499202896039742545578386906428052734376278086832008870906416186052878111406753788604353266822667118241123280414260754830390504289327188780269249930614543116303836967207782121199387931734819910893979471745782443687059242652464251031386294864224181054953178762715984037505019417692219926954397308253246069888743272951859636981848623643910699955664327072894421000297680383889023448963463635039627314472490486322867416062424480619527680834319610578551465250974461241651632135603781209385314141016729412715105072945158001361883653245892680050906175382817865620560408587796074914137720907419762056414836462378669134357208339700076348271324526970852384352946460275674644241890031110975961898859713002399712805116572482361627108759769423374638404957531441125957943537413426246773001589735852946196454390071391538871701709238107381037360300174645405926665192054277536699981709511193306516602813215953126428273018728309644419496589725344140848142760924852379266332919503349122005300218372957430178824557010451799101959644196320441231930145046061296700740221482371256372654204750307103285460003806582279832746235812838990440113879299687018379698655417916090470577438806028307805513386918531277052380593789354588266220122341515792508661725679455583429752021600064533734052682369822455400661766061926342774151304436336301164957665535152857900337731025607553497207881745828316002366028747281078117654804263138470635344114598184974164566118158508804544783822060895693104067178361894787457293436980919774946422840906645314931572213373521844546806253554251881743587658494040825875176830493730902322551548687624681041638001061938713914485332891439302720714949187774847244172587182876924153044037294567650353050472251854827401148119782942318951498194737268146844948301355713650042937294432794776432583934043831362820584041673849492925639593867678854034489084816311826830165048953112495368060696472005222983570961261057873103527621751547585532764034840292289811124282670425450513381485944755032346121173399730853208876311051388287522551032302231188279132734666632897956521772613099106211412142026338676301755725940989859434417424894504781064372816029996841484244169482997835074320056799637540516646592191714286261189913744178418383523524863603056448825394312603194155482680331076148325026136707134948661933100281624923501227651244717518183040830285484179656140570448033931274202555913951235223421777608764584806136114253022933065392185746652202197367507115378546264044814536818268598510646518951569810989879570456571119410665489422010905978341738786765293633304226459311158134322887772046635077304731483998666412543294868584706316808022623243239994675894757109497818184267449979471743998266906360584057545065529639627367295744686379511961991542818860050981874976904257786656365023052963768273467043823735809385257274496490007748670789256672915336543463316714337655731178949692540094057059420845972360792846518518360231286431391580541240276967385002416295537441214345301888319446825951707768745026316481546539882171141659084689794868089836987492916614360162547138919437064774467876163092602495961868991932270466744753509902527056937684358165599528711209197769922033952869916863212015704092927582805986146709800059702880988463637216118213383077379453950967684827138110503950739866364297789304939953708696602356508837089431928468727762802121931773703917566612446652057409145215683846132289381742675704377676647205799077004355428808978646479014346183360973131093537296775535148415952304908014827986353029755945231778585659492301123868097437545398669765297842507013733266352234710807625459136623225920027326185718920508206631997530943345028820464012845252756170172391342011921248031540046351557507178308540207923236826109150622456709639609949532422580536765117721780568415963901833336881258945870708534550871169754218680115338664039891762192165745129927739138482936569147767343021945901071136353200341510578334054649614720663972136196535994435879679965439171820363315703279158528461403974799188991744670754738268362603794185196102182564223425697404299966491261895749184327704917130450723930746331311362627743117165150736202317558355036661559955465879628070424787583489366529433079651304102134509205182271475138916533828864663739045629843226835152670706450223179396353944184823444983096480327320869496209817694940284809683871567438398156571180723011259406654867785975188069455147905225632614538378752575843422953950577743352777038516229687867757882542729833261433097233377700133479553826070886332295796275379783940184527650734849979836655582040981447040863705441286094913831462701273549691476993460070609608590319010219976572987739920729678062076269624427897683029295740083410396124142838346377727720960153836751054214921218547584753984766407895601886777381626882116867032355014479517308507472252545777971430350011067919662882565577774575685869472276730285805969345233769900209377349075210441675866510627118353975280052004927083493543063670302432966399320359315848058262587110836418595476769931629418615158106463213943629312777449170827774701882567622578761854859503008668237712406984489592674740985945191521394546127944540224777809197672080551520524743059914145833802016406674690048967541621731349379887380930640763555701111726979910775566224116942726418151155831614577890258384474609082892630155296177037395535453646187674373793725206641265405772588805422129134872802901636265328406520089587099683999977338934676280538274473840435285039514380620471833794897768272954970331750400358843193842127082551612789854860978703267734611051084883507884748473019850910123396861066258125521993650035930408623401471132317952259388476775503595576707762177335552214635398460632933074689235560743497759979791815202869465611765008935205146924682459749709142774788113975534357136361273110019036657623295683586158943738645421464947586638152362893710191020307726986305363797136800399357600664297138398686103809386662280338940120743899191472111872694516703153511662213559107938107120951478621241526342454491013827307646324025272552808998246169847665554762855281383395966017778515683685969446500836355908637687259720020834919131749280834365235205423013545923983833315143748614713395924552325127366521863662772008464785456550487718002506710528469512201648399344123725909019866135425076859007157151780122541071049540314053044143620590377708108831303638027262644206633695665149480244995201171551701840570587872096169270195096993041074821294565727046663172105568232135506440553125487154603772248492674434772363396901418502528678939980072283811993159445911051634546082417353606149675063492069535819643888884096129816575267920459533835855737663426967077572309831288860658081337809922979480340072070562796103431672079662274183895784085874547884112189310049781300705792176999257101136336472960962836021074136182834914683166236480566318051378641100484408764337013233750447041596213360969689713732860003152416009174400921043870736095719798322563122232292932000538290869867406696149292156059761577424447824369133698334932042803926461615598351691171948778966034954452949269169538065876648349599535978087929432458574936029360520174150876453824321636737161621324801294130194636459423681399067268455510545749460083582692860293089384041008322605672655943578855860416795180088865891169106997012182981005520920042539492825378459589787033244672211433057893845406638519240009095436914322905506318470713752471711266240493144126869831623500842234796404600477539188286167884713098322995617908543478435572843415869081820164402178952314084864171916829119295277088309368124531425546380988123879005471035519682455433296826452594627507485763087092716259087703618811627405044879333764893148525697462923114063747846664435647945343240097717717095981036252539514849636182776614128911224360419446485766467016051570393031365608349370642746694354258093070181081094267187439015472010447204265768396716177035957272039087319032458681478534928086050983728618188525887261581068536504736452384241558628615271777018621199148143540328002107072570709280278758957315084355824205658428607822039985106992144921889244788894546159457216319997093658113143504747928297688343938678693896946255437246583610923409665382197897757494621523548397939081664193482829893803480998755854242000792246713839371975471958475795454330550553141049179799629420509329583058340054332215072692909964377295893110001072840249057242163251252966028609188689226513506393222913395352108244240472448574568816493246988412516280736583162191263202087114490227318162408220739225896512671551634382416287453838218724273157392189400718022094271176160775073068329646214438529079267111380373821723706932729335703540489240390157577795395537673346063461618177560623849617100643261459653540215397218695872902946754523546940917448247799953231962100324422211523580784164566531467685684624500359553509895272616938765048755554859665497694340143381486626707769210722183880421151620398641619757099235318496260664481007154646374975133196210292652787714671687812051368733829234280212222336924976845977155896906721715036525173032961654186690839115035403664845981074867768605378135571188270084796706223699724741576588878186895042189663555832502436607003825234982989468635850206996552537780375148486373860083663239175956679101368371917949413651437092199837210421809647822667925763151765684773250967591314887246867744236701261130252089465588976020292555762533542778100721899692546908420417504870991872121057548626284602203425950032535024407120360440065110319401873599135659411520195834024950323852398741119219218678211362850262700889620023465197196666514593539261155559577364417262417011670877751496314211779464827023261935924901177677780753233644157792973181402103695049095917207816864109894472479872778833376633389243075236593573882478895837862372859958603472831613245883400200355681050470040378552735840827584277532289698225177956061187236234623074181062507391592017614580830385614190960988810196658386109467788785995301778467748770558788550515909821368438266757464855304325748812691922038147215797178683104769273290314156054670956304995817498683406342768151731965550333474191802025518746898695784399311113555168213470657451025353508641349383082094227770624161051836754344479388938313061027143500900485517024874844508024103353371480673094399823029351836115817067161763520678290884884758207155136817486534720937565700758770027707758929837460313814937173545615541746500307111156744579541224322917181239244450102718710482575684768051929973268123394173712489230829038554089993663894675315078847999464175521960705160768879339365537783797145063323299229441951270449270388614390651912132584849503545222688681424655528431555023714499680981914398416577187763290228231557021274172581133410333998234310902975606544368055974406804445695364385398742308162142751553772989140321054547407169101637863229514739200539377864884715176612958990183005967550126968608567526064553814013871158459506555932528601119684140293206465075442611194283122335656090018533610667099038910360901429012710748810007468207817163474217143313468506693240986535255224802451342954310190264853591793018259720174039358537737219379742077281724758066967193293799305713906501819967653954395119233026017205393626752845099959753728994884293552858588245190629877881051256478005366506057915076923878524097606862377524513310285464037278306648879221934838862308151511600009604641411906181876798844113125285807399370993167704340049936583834718843756078413557873062559908166552884386464597291903479946995394831899934598755404819773620464076983432403449343856913751072585100689784786891619407288942840146618671789043613716880804806306347417783836744407333089145341241129006466997257664742190826352219381122402653234850433940935374515645514419399312099948999032753201164424232942963422050990529616794878979197191467865020769539369234004666924134256786531820055977494290263543159789151517237190434070066575521888908651413351142313983158505840999869146061178722034745942277526299176570889059698277740355022944294859342771889666150903894664257930111416815513088147606702855586275220927118478191164964073021911599272471062259129489355562429647678265324293430850074004253982520423398936157043505979031845050554332072941370808597563384062783422268482714856214828598127207510783526512400710782834512611031237759071160283649885026397260774433089515500520329713062612438166406122271108100068862858083153113528302502956585642153159967239736136792111978059876263176363713242102806628593694929136003658544325596896918096996629166010144379384336517199606279475988767963952357293863396475780063336435517310547604715726289231797051982476326855749805110377020259006548013718639890717199525407267727906348819967992329764448916294524218643354272142016913820958639838002667722897828765523969507527043044617871924899963790381533771107104473904988966586394358741167491362596478427182374260341918277395587463252433647373865617587135535522100598777801683340397019288982758486760909005392605651557126087151716603983336888963259814412019820844625069454206963627777132012547297589230935910538592559262094909761774917128264881103416064396895099190862738325910618464728050154363301848672560603805833568715725252494424623884171261504840327408451692405022545444166028721080928121159479199770626872232202634549736834648707452066159919140025366243544800228400294208642579049958036379933968094071583991622812398368569747622629051754762398790133987261753249203796893455238398293283994582319596601895968441955109679842772324248414270615139768881974674109154745276948527938041686291656412117515412771489883910849458571444379272259152365867679895939313966739308176395250652414208023966114690081348290206015955122649271945609861076069389007056104906038692635124379938963178111916017531970615412005116255225446196074879651269053316387002535376093448244025112306140129629123398880301657487819272442998290389651460013633482414114163096798907537692507927366665611832076630522726221809213880715287148033425496502066213514773057539002337019643274412718390187568941237600669470582315568606714803670043612486780364505057135562573015829510609465177737619597741491627502317936444465162408491247294028741444601251631840498283949374281774762174363967455201949629744390697503345514021019135284342197697030680242313753569109195320330856987614284610556394873458609310135950185639489778985113303398645272132443311221804285827248617917007177914436403511686848357431320286004274305158563663625263322868071881973643302265120127816277570167464429985231147949373368597552045454344821722584138356319518159962155442377510856868464458894335433713769057588954586443831110749062297157653203801797964637881094559785212619171659231129770075062526635591291700414693741354317906583281444580833846839701572665167836989651999577049800780484525925652529762341278530167003099576991634644693625777502101040977606834732712165110092992719091946978908173454760439580611594388200864253886926956380868080593277183412463523323435643719622452119964844101071909002688577829933204252776356024481501349841723331325189170277964737533883917863967375275165842302429948006817238614626745070945154593531894137361410501968182976638352310205340582222603483705410046523916607932174268094216946040930571538537101361244857091992487689259798030248411797937512729746766110833884143073965532395525736841163125201481302205847333238854680807950943334068318876830264446869942007393809659365529173014790709610017559287784894003328136872487393173147377006203573770979138322194233164406693592040511980500690477838358096060304283415916019903173220156165527299632413919713458523350720981335716472936036064434993454641114516766515372296641267942274177865880012873839671748912170006916855189403537405113644796738210424070066201591109093080064909350213618040059113043508014939760169507770734641193874495760844599516347679582663241812207206883179054577068443286461408239096132260215563363720950855901661270759160440129920532095338229500596917516675542994241210716134724068053240858657455857608153244156948690640059389835058116836322430962815790270617740407529423790656707129887640121848012779026522474815847896296125400749400660429487546735075725990759752125322265268249523825699898827678721218262016225954012445749972295669692752565023718011836439306159331927394929194752968561884534150436120307257720986253815901340432239256961027894411726645304134879577109958788215074039515071151267897699964385788042330888815132678127196007600531495648421383455262054234661768873759946172864934076784144997109382736233709296265070221782270714551883421001295252192433907198315854255182768812393564259135193566423195343904339771166393532090451971600725217979580666401528224112785898650973050616213345333359888845923565656696650988953314523819897584875231639915427030944647081867431378285405832093395821679367974862514640743631193244989886953547095695801212862846400761358674357798506035500099735666561235984782213110851134266013964545509427826251503091870494244679858362939129569242516024308945840265134003015018672386371803024537293252581781858972405514644456915694222816181427767719514628698484235561694906130097642495572987396627273926142669673717399473428993306540176809751746585093648550916881706321313366261899098053306511820614349075124260256198153310740036247214371475392931157735439736268425878225709636531179025020983242211637190028189577486030994628449914025188311188876626540998222346943984361129671494579558449278201483407681137443379215386448409347313740815019953385184733049642347384089293715363584287376981711578341218908626362633017632049055154099904675080034192935806672028510249904909407529373812527734930621828859402376323168949473256283464979490855258005512991927258451614226564272527704480033409266426149231109849643126857184961095057577803721752294225998094501595690879076104646735321770460645302646893158458342419954281309536637285356582699004516668468199332643437495963170960166793888528352869701101543330922133762031105609860164554207857133147617727702641552182724448406764322364550345826995246370394316156546923212337206758321111528958097646977081850600330714170762699665026848636966034035826179239221471880038448719189909927768789081643796439972692628082893488672232456248978749357998786001696050510454482846140472016331377147957996783822625454587980840933681653039100125675115934888443627751075196955818443687399669962286077817166780510625137511133081768334807874954632610437524495887541307566697744895265517806812043768932558251939597563544563199774658463169192365024105854966583206277083644251706251377132730308446929957621174384431290731999175064520556278231089164009117370793751792272849791936061308215080367051835296787130406740002715470104700797873648958448668169888244079809869607910015678867167822019384298332179588791336054916154138108362108268523363202662835695790716132076995813959500685652829327325128322040747616035800473905241405207840425053202041366345216747818978993308056133409182735439939336734917168237199127230578759188935701503106937295382839788636149257310305497968976120525400237312699702732948730671265107713262507725513137374080947980880736142687005794493607227956601979078694042141032429040324957235944277671147617701221541948508414737526620631398986655066567060307088768110853564869815975534216975916412923870527210603153602154807419210277148589514007480985394774271442666834296560916001733685655254477814025038136563497532958133128998954461519059808039469223541278816851713016476157858433575364796880659491500090288632301641301858195529587104203218941648303986145970496610494326865189782005283730104325159161776090173022885950048265986312414472081047562974341048260238303487363499290231208863613659667555091070117693324463938566971994307645167399022492634635165953868906968763425637192648030704658654328925703375486247090673274874624103802479812457438233101258497495238117945428596116793959191601410776225061603891962787820996510566382635102298159707855834051989917689120846712295448812056129279457859683887176984329758238394407298824629722240802607421743619435211964325469841193286382769170939410229975770864970746302195765558325251606739043747875008673355513186893161283471641196468817600856818426694896624601118881256969444101793023790029146885962272862169263763643358130476104344734973639564615584806276566795110092371708161632873588553749719702391946717023901148872873330191115200832890903283808389565090678608830228960177428108800516525931446057473026433369884171647653503324305196726116077582717289605418640261277393570074194555206385724014597695170581905764612252569426438306574104433095386600050006759223253053810205158048208318547686637350586496753833625462291895746228847360690253872964133337208185695586366314652854558716712367365874682593443729509628677410935517014990013547957113177001166411196731666677297932164108120907935673823460318919474399938942235956131347997878692462807034875531295514043113953483369089688323660645537032129589086990695714489999887636537976890333752344545206348914535176644705405794364762043536702712702538030839382795323226280456259986406292237092400608938146477586207687332143097511526682311227316220801190936379666568420082733224912425821086224303568935730751929273616857607418447813602970032660166178321256433941867725006336055662132015745453869466176431166731743828370836293129393435178340423726514622204418099111411604433912713209003688268186005904123542801791970262592203309661124978965440700956308351948513536968644370523447496453973924001758830371485903338876207937939793563788335360703108006812792973814425946142609867117228673969090356636330083265394736148817135355158403284658281276485754213927698162735773922669206261896132077008256103924042416362807606790041409905599607473270415236423711316295283092273321265220187162030602768442758975099198285158868727892415213570078073373261557592092459238188154825599653249470753212612011486489704498714201372781458243257138040360417221983592863641982491065879685177163344946093981269099747578392904240473763070111466852776369914065426994458118538000749442808848332431896408956414736941966061870612502838571614817273938031328276797793744194213623385089629981855062561351173405862931204279875331576643304882210637742873890185972476806736594982485245879424855808296343637217694746184551542223410856676728055929721418667413191263423470841445146775055931167259674991569443649072143227839779138755517478936838973416459213868806824985861579708821651535372432198450566892591126591919904344037474346280935055535597859683681222132676643391689709095501143324627720913976079573684519303942684765551155149899438210002027030288467156647664428281656949785186414088729851203936461776713491414021502955637070407326025399948098935463126093591622262260055244129121116854417733640596953724238474784601350799171680892915417959566377871394144906852222642211036389385561794814400948958253240529483932218675630977502895569950482718622362481778180668833663441800617780280936067672745752230065516140883476720250805317261768630830549407947136003912927348217233402558183498606418441194358651635747234493379428841778310149176919845838828959614994604645384756234705841044696578545380839925094236085397258553072940131434972166722907931861435435247572758230706119762456245656135012440801833023292709765432261364438352845794860976654638791871279816468718700659226176760800325226156037111933460313739297640694457046263352231574553881369532231412862141920153093617156971132528139812830002616629341122258332416379140120169160056916915430498372360330121548506644929463361658306853354682009730274842972195985500335116762172199656985566416807899891693331410406047184271178580985131833756944019089229483222791951829189611052615985035111002936073736540843335788879690183896640608674186391889626839437343972114412304918461204371726358867549945129348460815548375649358715400358937707248755794282639892961129787956696441568099544400261530645442022234533863542708060769545953456980159317350601227670129054071903064831698416814782606694204516855460672234234839135295054098571064016962364687379790008290508349998252021508894183605575067743636915475460095552322165654016456712991778166821193359842008832676694504333155149643417502568626832164396969821775919166918933001901034364975975585134742937159225339789541098375424764576856927467186572999760918183402663640889475833845036886237177893800686042930771945806017704896554289463367898979319951667013519955421308259643652267535096647477986734354571793710672835003166322235051520044054519972163850730983409340509776035012095591940227354646455392600344272947668714500192105743046807702213822561748617812322790682356992120857071606109429174288036154463559344458834458131952712807836431469580520498585974861913497310692985056269816487690514138502305096321226229115414132833474218817838640565907711879835181910666651412253675289012236332863632914475537490370004290237892608329245963058028233628308779254281218330299420606732984010633524822473730040689831537923249607470263042276740071679350815816577700524305119029337508274965711057380110031864148688961343260223171605012664024235836294952279722761519828081081894555433580808019417688056508220986138693463565449515895195838931433386902297262920631626903906707083828609097280598817512591560904672451472599033276500333874288069557983828747766882311192378939863768451282150245465526512152011711699914975802457634910575908654996484470251077938977791408249016889019623028980599834701779337536367236186919836699472978097238153271342440778312480982542887440905022575361160785888513138613451006569426274091248025986308014539794763113559460185718639910026056362906615169624062446783095271145037244708328769656220779834421794624333413696418475470123960589876544821286686347195632287902610601574034113435563687192867884820135365363639171136474069043764395556596846425318413729608377914818648458960299215265872857971550519611930416510995546557045195311155889465908152587407292710972625219415200529077372726351452068432209286790356130177017385739667441505019993323462540652001370338779236738483996250117898196935474113122068500198829839312774950570903365110525883651404545024095883746412412702614671789638815034470742600067647635483459386797529416843546400526526406442208489248085267660630697440688878663454373288468932936669255352621625006346244693937933659662573684041755046013817470660332923769359012741491913776802579130193342865266399586239234900627988507314059188215475593814981452319469143406378281780392746972968891778606193539093150185313924805510974632086921843993125499594913161692034783650457400024017333143014348116511691096515687689827881915779144889505616091961314478393184613599084270062571536849626396040107580406054410750809908361631703575519036924116456896376078264147028059504855512007869662892441423511553830971039643669366119253726527395570686735784830313432729695120388415227061880881935575976577666891691263728179878834332197380414505474290133161658480023463988836684939372466142080756702494692590454465420597028551734677162288719246278262030280714557689006579900584548784418674660748646411958240965783355749112381445214697224608652204219907820252116795435466388394254570714087796804593389020600069913001184010806584961422265624158522282534023510204687015590470546580521226751278308743900773025778737361411543405811014879893790843814929229451057177408884866635774173753800577981558057457133893856207124239271115333099047499147213663931895464149418254477751781389726956177166393046097510413588798047677230789102343230887748078728703102195735514528693246936092031622592213470569567430008714171908584794140380816036880843332781670096123566326044922517972841916864654616352246460633602722866553380176014418914159952353453644691423106498186415909452162441550900210142568814808197679928604570614806379195629820899912566036307417571852039768594756326753452553015641106020891196496073152546654309175063189160025118303579054144461468908419719860561461873134456003438207083655834180456206548771289834884180647724188240536970702109534641822683905844105123519750346849748385132923775152940201485005480403935128219141408897893773422653637694089399691472644358812663434792859910891943270147766454805778516045282510099626426042336676782158080698088669433788609346221123840835202218296385025087329391364835824030565645496716997658430114225451822687160726317574337634817387065942030138579852189848098456359188052527604562308798161459999469982455044002150266551361768603882831979126146893606573915136193546068529618485046963755315771274334055678483316138081453769819415074582908273447366926453580248327487973976808928921707465096711548420728976365189962020993960301365981745321063071142189023685151724941084763264654852537615272593792708488772625787116112309133000860707343789253007288511976794892971423268129654135661295774941769811503267808561325780564978992841824965800108161338867587188666110602480673934217853807703188959229861391006662684121658350418403318029586254361154595445836397357833106149707166750748171720697073510249131927359858667900100171655030077840292208001450308426146935992045671121972476071909246001488674645119283287549106926822194942881746724805407089255667670348489867856076759971508486464712108876226948785231037345521328626185230256334669755252496492345772506754286553473057187268623635102010593558133241712552269131311561004732777517864936342818302281867710389593071046376197646105556130931498160329462361196657590111654537136812566135172335186503514858060057614649907918482667348734182736810687989793966257407937527971018841041532084424412680514703015031790768457527222523291420263143483633976553231847501247235526889867142402072017883324823495116210832421914576332936432138506246337061648939743111983728669664071189307370631371194077616252480838017638405722083195274802025413577348162231933320306632225830571035290621122164425744658623872768618520414734913180823971316618360651807573112383059114295137886007627864754397009767235596147647161483232063046653818270949087823374269228008352592806568002243159203966099438937667901591808386577262583043536934430721869024788102000371088568898353398487127834036500198477859243638582889708768333123534084896967606836497136943883723318962983698335011664857467211352503324640285821406936784376117809784280937978388591170635734616440099673646668766922345532999070778704332393148575490376835779212675758620861386588187810417187759390260481187765286112717169091086870352715784464006971703232316921946395166848497753612932917147322215628228461689330382582605934969184942244657954706327157284382346315032938087211560964583621803270495796055070206446964699339781822098848389423065328101141888238946823859532869631087104688048031265166835287244637662513506203074549537303311854823487461853783144959361681490920655355153194040943994130667930520371557342133123565577298019285474908797802650133614754585628204116045027696917328893277103150223408059428041521286318757753572996760851199871468597680261981735365415363346610413329956904429739706487502920294631485993151866927660460630039659456562108363225849135243939119401547577846112925386531553230322140907728618572716705627121156030038723740348077234967402378292756075479279280592683884869146245960062158295452127741117188070490295307841484415831300930421650696705944033149428015339829963961967108188373161760437936021380902116510008140105738988339315137813780991057409638928567825049843134358304263967571082584220007666121768813768392980248765666828054969556712222143839936687383550541753103196843538789247581927471531676813407584457789678654590569598399984745203229324483543394954477431579432171524550143463552329090466991610508138651387088177971022884321423233305219832388973909859467440055827580182670334190786289808432969864043088268327792357008175808625849300123692753661647171066593738980696735563792059134958661404509107713177805448973483122751492869334351711910291594323697836208803408550278487067629758701033288733578171139514753278975109027321105222136156443813843768581658735392197543731203985790041099276319636186783416674528754423627105227902206705200689867835278160509753279771039379241130854438280571716234148327385364581040673449082610386893166945702046099241724099529089183092417849019822730248861324541993776293546570248922780943959978651855338543861525785332622439676166913146241482113720960452145275135278548370523588320128734182599322385099486338632531892736310982233861828975106501524110980045375980766773221081386941929874197843899325945178448571187762530113762757045157579207091376213566411670449321783392229356049894063201580288835537132093474702336346436957981763111917232649182751972418271294473265496419264141700567921509869579025411276152654855195292768750900205153286002895723304753145668449517070693004782053436795092732692074293353608843355209878436136121477823139688042442288743562683991827915493739439358144611511491577422178970374584319001253322253638452368912692401635900621447003554330403883866569509795842643042087799155301625977827114308246316050938017281740243864771649480351801031711688671720215094110206426780037523909937414721371634198233572159576091581929379576169393783113786942224672421154486411036996995903751528823837585504746952662821631739009828734375188062517555113354249050170708242605294202398069008693968946075401086840239383091633902770291561272128206909529779798930283658550987322485669650946068546491536561152276324504031820243159966274548631383065636866222821591860734558687608841291560113876704271254806937416297404384501605957491784427825048110585781931069663033405288922024929496901203202702192690750823415809490807114415847199915872460152466104323038621197558863182414198083150850593897405856373903671252678835002187469853116127493242723739213534140383639555518437909911676732947282902620123406256239748726677700133718922839507652252106766731721451347776462627713728203206086045004419802814226108893027547821572831417074029756813420324583582601509779670182595852796508401596992478980728070742005585031997848119000678854445535481091744670840947776339353080291573479890328291241342992593211336603516643607429067065238993241634577364372057952421809331797762658334836308770672291304477402121331762378454716361833492934255733302104517606826705734959514025952809173639168016486081932625725168183714054196069909027056560578887824973649175706734563632171419212483455962755683399251356010029809875391698709362939414495745003909852565050265589119043146191032151882246117779131874932480013440492732332177473354109663392929715857164468938124999997455797786617999823609743055996739157254723751108373721249040707604814053515716357840316287870089060421651121857038582579122628683875588724147519008736746612895308423149822752984215904856940190099353621232665852987680671279887324846661091664903486297796226034673507428733037568551605149305436260038657861985001221724529838784823848473276132120429433018906971508746638940412703356951476755542885236932723756857463173078797135249260985403406488687912320037046108946901184439506566703830888491449442106489886642448981794164812248654045431398226694814237233246935397255619089290704576165380400975622132787008670939032242908209391017982611231234603317255702105607150737458060758840489241009627437536737182415089533712619573738872304883338360955255742775850875103184307432073975640674637438618348779933398463243065060448989780830584070611834549428385633309108686850916065189006280312144227884102676104775103112256382630645428907558475770200408902282163634825332360895683529274756027567788780285788611502248813635396247929718007604555108024144011963168146564912567158770812015633678470592439393586380736826496223981158438061238883695715617108110229754811821711198337829588833915951658827063388527875722304745822268295865361044781691299936765006802943901529184139891035225850799796929389459164683131944938618898803135646253181749870023369895269407397432683418511730454414732952917562509110916518059166181356497477750897651150739549676944211908930873558798594739909487868426416655840271196710684742800954920786444823884646392867415911951659236292518480586029451376565703452321829041372852835635258782410089427445963821030768221276440696198561345166097024817530900675857136159075466168859506518471559180248777651307172365583126876539238797192755203367494619164134163526046749099924102018654170787621423040974716351953766144140258680744533695815246465218307333534282653348529966482946070561667296250407320770518991464970267562849597369452745032062622664841365311720901077534500062644122110792037832915313675653149151092082884551442574013151957214666173094838742305878712993949776383846442056521260536164833251994091229210929141045487094221687863202477033844261037987038952546711464580326497119979000199893877616569744503475689016194728071808616068742594149101994933651160792886179171847370845195084381464527504347694038515514040019682941123877593566000768048207933509131466822961914922093795203433300772489002560457863581077795214509224612412428799698842890467244908215702447813991516080890296051919496165579065821774309019518496965030652071968503213572585431957545977262772531066831453802789733031768638582255513635994279876910986267273454383120267882892879303198720208463006357748476205914093610831548344890468572851255383834128574344159845043571779363529102786842230605338105728894244749650931537399497193120911691704683573090451937703038797416029483315556044873530935639172948400914396075546030655796143771405580356784073704923562705174542005550844852814188362308690931611649673790849913159890995712403769357254901504771270733631733327781536846817942840716060319918583134401951400722187977981598137691646777712098694958147554584774140754888271527871027328025100312481258157096787408322426166165366703376814091324143300804049646760592484315237806979651968659341282954958696377897733809866185177091989183307216620802550249653942131774365638717278349649784689206850126936449986417043845226797483344938599558342431973982601749135823210079824386643539543878402939354273579682868481805762511404162399953143086025211468098252035519458324158830161036348003179708293109730337363769170396890335059520629463106102214372645909162851777643972024435396089324525103032429236493904528623138101762678399211133548127454761134073301197625746047236801253205968549596486838157895840172588176647014270911500237586290661415740205139887607081068079616292380557784183477796756546762097500132311116430004267953276720443460369862938727222387397954048912211776730692142994097276293532741122404406327757398911291283771047075356130751363575852712598891815555140700196618780481226368680373922349700328624723536239063664744748636543307081320194058130795587760373084366325810315264990007663185162556646426814141470007639559089489112080074925809801047777943207568707486183463894830663252217110056528653250878266571301956140747263065792118432811302211267701339878306536393210876681253615324852232011917949106987113175936564288442764562055617594271259158595889274384307740820416300398699007185183988683072705101410436627650377115872473440033758425459408797358366976614661996104228136210889966897471448540689267038628827226095544142985860685935257182906288717351923708513890932016843327473601409326821301931730882997386542282990792843058309588071082538080540168269408842065269405560972547011836176835196221199505683553641889834296835014264295286359448118896553205621342853118140583447619222135012465404025157273864433981858906103857535724014581759309831680372125491305090228063908116487391973973980643145373438171358597422050335535449119383678072612030198085239423122857500679736533746470394140195608354368463223797928684316855276088138686339819021901082016101400021338943191765629371086494453152950066108710306919791359598139286466622154578629557137332519403899856940299528282874261298181225818358927082424769082797391495063389163092927794288443970686690606574919079637081818138941112074038656037386463384950672919287556787098076628029469921726188765791858454549046140887428176166978461680240816166185725733859354029290261021550211855983746971541419639675768525462831015718632748382935321845297269510958536385928322796909404100231765505345627719862716626949568018804924724251217936252728119010038882257766489401475971656467909398387979001736943410822976000928782979104794049647282859672417611201626739480621021894499511745728305622457561815828387616764881810862163740846249651436668441698776943937362771012069426448005973441352305311279951155365059205214606063894588602526442374686441698072451581772658479867639236381856996585393662053456209752503498278882753180968848942863276578829716933317919661589375778066710512985884510169474174241818524035486827368553688604114849868210922067470959265136602213679021187836357599410003716538752058681471183599461838511769731655608752085877124337198999867024777475269874546924749143014847581771880864600786265365710049304893779511252150786621725994071356283914956084818239695038443022346435091482432044921443920594985062222707915757322189356946387476621748572268868081564110239731961877617416566619537867714979184024183410248033239428424790598484363224027103852222759072023354184515484832051708524600253778040514597993746926434742361160455081312403727852244861755447476051201446254812952713018653997916393112742544399959988962993045648149002976057852528697334837478832962922258714810819381503328451811330053335413911394512703778118615580798351007202966336891731900087392711554875486303433856953946563247888717870493920145524438092266744217289172574625151148579385995648046443934480702585454334696597070527048920812938075568840624687694203529682681472251223099659652559712090599358545627198688246692395677289499987638020843767953961214125040563704672041696262520764133083012661358714489918169536131567382209132193317472905695376666238579745536558722285283619125556374619251311720880323601636477436948704796751038762806568377361138868236864141785475411889008108513942385789551715285452042909702725274239645608320008187015030562468168879333139753555350968509069026640790562903465698579059366766254356162739693703732891829045676402035781617352765105906702243294444247652615870627300100620355470884725520176094134504661358921473561941201462528857937540555229974005970736514417131663602291867872897845214415612647339075773731359366687979020708483241549274235138468405029927412974469131872599088033659336987295601133810186098089271386800637525951900889825508325098757256237682204586870498284041010232488206563709476760577164325335089521629519464397140097043327436473757208893796089313535698635662421635340055972751675914848351098680287178388095380606919543015457262054089481086669678976959292601221812837949581871936034871760459790321089954834980833329748332857834961603274032864314006405697305431134303310771298637027881702977553877667764495684137572186877559284778603690016871174298915189383954186344663065243028917220707957381363278234930665013040878536699152963199720845321605355799954182290678846709700233581786744448791764882176888240380860618515768871972700405978731741800551263034061018868632773020710389319984622851920880528257020129100574583670466645988924072016117866844526879702876429752914914661935312125872211514001513418115868384345770003955719795269716716190453260790008004248225859779176262665707148998210179196014994547167280000113295527970616083436984381422794190094115135346984551898077727769250031522683903780509110235839111278612791016200968613283096727580714848472858085898362503035990989058029944812228640900051309540666172829982461146260579654025504030122084333908031016453363935065899052514511479463984377008257160534013661024101175070210413159436092578726932480939125631796327826141753146552370932484673788202886682557634089926653829102049245218773497855094755872357582011475177774557348985050288299983364464398357175842400972932385592234682236434481224867293847462627993956000532983908305854244565599246238671210023090167610413801533279175827195636364306600540277376228376574936883399157760458739020381155480135148000024188071730449819748572768252525329185964091689746653075268242534141772247385877275936736482795695586400533873729448338853234910157613273530099495471279768130883939608589666926757907672836611671384931188405060643951014121752343635475305459244349781602906078096141226709926845520713876291424721949860541595924637494186135740472134277665628706730262607903554283049281587074918117955511698517096139814921048471109690897189908602304581442998417612760713401800245468376864836890631938934353594505695350012212028144573835667402167436537725689109099100092710463462693534779895507652539356190686788287506243385740876337954353824785431466347594738859146535931819190216878425085289713413347711142327586294286227743342425767479731470244247728565443853457576310899566269641851736215718250652729143239657907933895340220287004402603138541053851770620150267722855919892290901931981647844259108169545751697433474827972566525987752966548820932000114057889385023166770655334031778358912113121098248379900053242746380596309918984597436857875140907485496988934787394396404045513519844249428599864441611766546637049596046581837621147345008615739259167747247031263712171362824674061966497851714688202423394326940020007101249537311127385929059548670105211470477144879025782115346637521113127636943860298123528288994377786132530640996926684686235405295396946134280722040200768379828095540526255528863452380015552145935547021414894050873809214981606402174410596463971270025580610329991365593651139108856083660429229325625655304196939600212490318036670967273224635279845132258707558947262322114267231695654696695662011761356503571694189373534722101974735745379901718229973456045100057173746092328678787804846702278823586917572157922387218862474892665532539894197002460394989129458804685300084690630287372680046451553326135919597706574621800001246149477771200990804019769254052662782148647171437226198412403793764459619534982248440535642431740483770346435350801269413219796804226279452487150022495685662146960644808313327867943957524314240177266117038712252546925231779114036571398405700494576548130043125911651405517470846518198517645417372643893251353965592103490853253648378009741051103326670755808105582810467384652465378293765911510364342545848276196232792381492192421275426857712636689899489034572452183347635992521452844842919735454922335967230326701973904477288117033816924636765637858800431828257571480445321535518895436230298755770835996639482582706913045453570179217990562362368193599508131423405675843128241779491701069383640837845527391057321708815571200430325291931441817673200891267347954701078258082375737512103433283196798593737394514592538354013364781485395949556348811563197013785644105697337478454611029418286521781051539255302336727285010896039184454983260067511435746407398672251412142738856966868335514483221561976133073851049698390011262369406423100967895511824116566538985980173579871539428193094370878483828280536896068229635943012702128648068758085327822790398174454513358492836413393353972361580475778762329167113992834835459060338304000794825280820723786776722286151417781072921538613533227522489641688435418974935739018281108708104807082637126955736603623876622414853229262559526260604092144538141452038007507354329812738434375488204672260276878415848925129724251937982616974615539349051679742737332518226216486943397689700330314295398875300126768934948451379005538183220803568158470556343924273354622960229173656239074847161363166401311177860497006484072926553265546371167154751010179138221294689655759372559741223749598373319252291771082138134071708613384698515564198216192241092321887578634295986758542252078661260605160079486746053592279464737988242525567385633347608623323481314663047195510297065182370423691342464302090898697545891164275149355087912046629670899239487471642858650368237991270057972073119582055544522573120373574825412779019134660231744990394135839618670569750887430082528619606784338144365696081037408170149009074181752525472505507238813819839230019877719730304701649309864086970021011549594551106323870426069452446218874831377149793060320881482070063639332320563880688958116874848300971195088289301569867796100273848735180666711783067855086045613395664820630410773464136215605482496548120514591451015671849109163461101723801437364715188602313830893263044965106763649328332208213487906746731795456916814341008938212483278017906479241969813359083654717287456598630457992883884363378719876712758486723454194257249488685730581519545776831517699508303410477323323673992677444257486284568815009195136057025637415587192789025567616485051584316035359464258542741820671795756672538942745606372264163405166173090442104616125176183961848228977394043139029687713275809390968673889085782637871901077240546645883568094429396717980386940759503238096449542814453736657912676136626457845578852552690515932599917885131543598371892131231365754932446781785086666277310264386348477428081594241595691111554166492798715393316698028129838784037721236903299299877872266800937311380721769483704412780171321637111957829733622155118566879018821210957987362223409417891952852530570460290422351761604137506266057002415682467737321059895927827737305670919667382750001231944333337860346880555756587093941361444073805826210546919180486368048140613105711851666956122744139971964774343546605142342765095704184177897775730741383867590084005913688397661954489587987263536112604920654929103294414840257154894338145083291571972654641117443439605068890827767065535113668937926370252898459325401806985308167908709061982060658009734061895130232404993140350219578897525988712318396308905708754436966530958194545167221823459070749898863920187957394647135658228407309760888050879241401456429197454714863269884727824559853758565216168901332936915667274781427704302509481471404309355228236116687415384062354478432119198896629565038656919292327460745460452005990660389942974092786309195574679110502852509874674041668137620543518318350538754974298890881268019107329650774668270250935450177729652546343535149841205663358905956850571084958753644594733260589601458548214560524977801593971608246033050072293848412319390030106204170417741800164957860526754783319956188337828126874024517469064760397421188811025736026981286762053004322172448332431103142008736737833246621082307144494802215458568818968895927742535860285203394131256658591203983434165766906921945433764538101511388742919306238675662471113398318850613462953539345111486451426901227386365559266505202066987436962014249629181763224427504345459321575147590305325753219374819424280490224802114255534546997394424916903539656371699630125078803959657713894346608118937624250704836977989494872835035813182542945127800226078000551555355963324401808035397098972664349873995449501669041639743605443820809922112508868063830692820799868940301248786915206283037946702938829705779410894686557683667962423769628079725342976171332665781035577132915952330833429823336955336664249668894972575975133761507167057601375492394511573209992246290734639601370422185474478187865891234142749833794351565257904164876669595808057715214805629251181667247976770173289626375283971921469701775090874649787483743808076036730048913715395833555322627822412611403889577822633603085499951405892664352991369135796772631816722282961126744277498197750222855297954543674811123974542491056975138707705938152146458049924390698442197651846273059604452812147266548814112265668443115909536626030702664776425058521153753070516450126978476868707105880075296140654406934566313953822429842180779861760860266846495468266782649000848746416374064430408163217761803657321782640927998829073537589608491443898201746846407592370534207318754587236339792776492918424556504376181282323565512211435951210516661369282319136874866865318995154310142211343259056708988954761563896501917837016329871795280351279951204594583211476646001610331826952785969328851984397191562000179401458196587155826433643860325462720102445694539243792030365921642805932404084067908878323177531184829863394505114388298434032213964073309507505431526068486602586773186402783495328097817670311430474554995077884169106071519269637939679023460812686482804859118526816475713030182509005319508757689616213063651570030745340996713399376715782379656178671094591934508898498278101701301348846361122704889800543692217435561574251454448420982624921602209401884175953162283307381399242998319645142453349706958274061551498621947657707157854311065666026271098154990802182567608232760660962372819488123559805651929500779932285115773996310909879237794050416392042298094592446411188311898783271596781586826298483957917721806407347571683360135559991083418740917411510528546858208453321261056273715350578678639421895693470890580240610414843841494870162852824361786963048195215907510143658859476367953488203276484820179151228547165925417143950966576310038567032210530581017295877744555156422570225653844106696812387046418606961018089546896453663206579458358392935432330895103542899166195412633498166131328523747092799458726733138739572796737551874429043187616014422880953948546320676199793808617498271322410759897023580056727700799984234593217352304790482397496033804043937445354417968096902748829117857543022130396752347518508664851653302884861588520194853924178298091576156611267242092155147621256059409091229707325637166298085624009818427886870293637396249411706525719521295479297021230229479043815323753343522160181565549805864056790375612790524640584795843131049674310362929558111446088638779045182023982113959332777122092013760188410576594292158723104131414647476239407145243701926657074946799733405683531299259199899156472663410446764393952021124337972522056637323908315805704055977812393557640328249474536636307278316946053265836322708864681476780298872713192013864698748782411975628914956613016857714877509998874910252142653938825702896779810499896642179870871054266258289258036908948054204221315110451106983022363148458150788349934599832287791294475833370462688163182169170979052646992383543939522064743595539440764069582924169159610777237690165352715616985893166766802870022520082948469664737541143703751153897652733563481327177342735007223000486527760878698882367405155933057496796454756549384129759409227568352431327529321175938660105109335760903318639862937624985201146105100357856735057333190283132576508142101916516753814497669473504564999748264062281617132771547349549410772229469666323463196357205277611225698090891455883874604147696017560159590463806322480232479792382710189433802276196539926836969739764394399333158342399739403094352249660932171500496448077519885816485510033053274349297490125018627436969005482795317301504995330960039416370569150771462419768506030286869196436021967123593862653567325411958419665354248201317876066019813681684069387960769247596199025157169395429508940885700783395113336709030573659023252296521892227687572698920817387347623871523949172140533677852573594426419378983068642489084790562746455587393837706024140212518257898017672068292198672797229599561298913917732452924866797230308785542947567393133690068517376289204703340772051424484595185933276800454581396860446561523301111930327640153920731728897760445597580233314454724667467712585656084212897334665139653491435061164708447965395308727353485760072032222174424282770182666976874811704933752528145628352172909128591436627933593057102223137807234422863747980727374477618438483055673708523098592450172437315198215011288495960782632724113910678351133783713391138661558084279266397100075019585667616108499392824023732235578227417981046161500877622164374968510798738341631378054285748783082373548643339796900056894973287614352595090655546640639330325716477645581868927153917967198775256287932014032630795931309459418964102543646392590009910010194671445299650574508117209998757516084795420799494543061729205496147686765846810315798809242042605698861812212042658971576003958257785967680270009368723243635493378296942579375684792235910029626344993016795549929002024827092358523117327153690242243838346157936873391699844983048559571250800758141966798691581248443943340972034773239343826578214767454899817584497555132237925900216396428946714965231627614199934865713191399610426031797269508811249098355407155592736256982653586755614580886512921627730017725127312689193020053065780044072484275247560220820965050778888053022871791823958800724729555470258780536355865535307589897636598111391623833207040523778268991997397557913324108638080418213746585696393693630631941882207978992345274943228924556588817041219293457110005829603802560134432657925296077077735443099933859066655698729267099028818603282442636859635068490615750467921453497634169780358835717229832541803315896967009918509436943336100430581061794144532356596134592340923262255912591529541193840365357496651113063730158941172499036206503266655510891634371293069994546439050554446749433853090870261069728488245945377817348226240026369330480292573021512021394408045732291719382785269702024533920685939054270084284586104296334173216134770927939142379594302210770556818691616482462431185853530510284081090330609924797870723238447105257730023001302200515485049582921323186908671013806198933462653759081961612214727275276373684029586303754340521790044853418824707086262412798930254643386926796966108027289853858188020968964928760030865846209527885468283941556765295295035785505412758267714888907032678810425752522381638425000292984349657697737598966286912832752472354890244066399184454666241158909343836127386099805981204846221256606449693323425794958159518016310415336490468590770605568943434409571235556598186043233452148078049978237369556171816838813188376678815291167151621829737412646919803277061707705541125892258087013140550062459619747936398122485176467380843793612587567210894133717826862149813883095950959514534125743811222933666607587863999522933876821490799701065681006100994268863480415805086919874006509307241629432240054634847959365578663033847957491487710832505709112090887807335037352563179809479372061055440041573126413827860448887079326917630721450741460606568441969934993335827861827299529877488578370350276061145698088779092911641212356399762831787787324091189299395734785072659557036606078517823669270562146656062404185221995874697981737561906344774281666107191287968772784126829105119085689549867753485184925944631723120012363311200897647190118045689047314038092588024319917714053589237212919707683865592118899175704252067939085700689297123050028772240637217969046544883732122409146256836009894831247023180836471170707066024525383107382952646813087933052771541112878382884266501450036449178427761965453421167381110493231375637805402322972552032198037080206592887591984571005816414458362072956088259973299779619396353803895011246811172412747317518925028592832969578784883918710266528374084090200248330578405137231673700623758194396476861306817657983380173117525147835750334751551457212904820081673403478771110899888779924801673858417910610032896933385944473698124478378337121765527998811522052026086516539745527070730335879238843921693679699283690315610689277384048063437919912775649831979386553698268982074927126803795188995819080906223781030707039450990183077933888439156902643991814924007113728155378236209709191168608650924310341146133592226901559263473942066133001035951230633295748618152722824210282061174074179902410889027297544392004638136990197744415838162335912205094233367728734071018345429200299395751289859206363732086730200456786849683036560921916122596725577350558679321172983605745453879504585533634999459920766385971803694535776729105739286319995014367604931577248009836215736283270893856610203947755483790980625980781728090059195798391974482092266603220611990454758217749489470341942237088067792164496719628497274491194102012422807655560379717012478163821167981418318731480313276788333085246430102030606277732339268167869776561920459398724943930889560169634007413744120664298509034139425617923184813715102888017582034914455544117815017026472768886412079438870423768137819117466735375099443012986900946384140612869433835048665137848328514774760831674216739256418649784700954753959631532240987632640606453219882946248823468360706164764810761945035348040421084027265016965114527593087215764755751455804756888466792140008405429982425648114483740831955510611451801520427668535848196682303941473860679133176296520457563162655134510829597076140846955118617938738871206318563271538379362422000195104889007963463852286558118494107574848177846175674519729278002972198696773596403803357655453109368565027202840733956345859505401323211595115349353717702828013315231333225837284541418339955454268152755695877425788816228120855979598232112573558764882313772636004771360593333724436879400753130794153686499540975696741670952690644406617561791669754987539723822017497720055232365779445565669819847215580499575932555493946146199802804101530225619628169751186356786058511231551070681670226134694123524286955208526229707058245699974570683604596535126808933960574747630222087977335411567514248872280961176985384709056316441092918294078324038119116847715978181057138003509933042228055085322400195378507265660723159907867666474214122477670599066510993495699144886385001120415380922765952459938194237073964061973555200053891038291242293485376785716391524906529367715112044305698355481556049502018328833284910712751626123085083360806888764487275041099632281119800442321383989220349488864737645863128560150454692246270513120077018065420717215966232069506866967851187846853411100525849772989976123644068714881599057093849333339243284265700654548080539270232413156924296390804056223603146808687750497773197056716404477888938220016319288348100317029997718687938603178547235663677967387900011382611712401724951038171581065747013891873887969472244095495916610361546769178352778398855840591004426259315382073789400065885735776239364475416638716547701678283286992521703604286440885702091770372633514008111937273256381242765144532167499379996002988092066186084646178747674770891072469700529066178654796384014143112200686869164090237608886439547581701522455733680722708101904815918609782738190654450104019266440968046491833393101531932104605932203949769312238599350567516688351585327358689116987667247261704586259104123669106821771611684558455712828773589974009994351087451981007447503829542870029651269888036661304731418926486695198396230126281455668326904094363462712111225501184789228161666132606831783272415061131219263740763612108838578545340488949503686993445899284708217552136584228568769216238519886027376644611197036365627642486906609333243748293776795176226077640781789537925414649868365277505581157263964639958871573689580610002493869923979270841850006297201650734424423588434491522480149174396297511741883376434911084151381272706283941722426392271979486661833017989324527066213359974852680306877439863513183712775411963498756469882836295954517017760904728977539846812114730496061615453677114665220611092594305864705636445252371504780373120498274417455711129266347349124215373020749833841101759540052646531259006633528955381329708858224929285099714595195979942612881330315950706612253364806521246090127339316330289076243190202634570075709199651980772596481457548589573974652888768486827844019858229553446968044258618377063808651947282858040491397113581586376247302658153401548226108133351363738618234691183029443677254967671773436379179823468314042145686590204409986283720002194683020420159341161955607758799980477822760719410647376023640975529151699003293734320363762933773112866530400551152438034667230549879650883432535060423705029623294285720847629715918818952068043587173367217045820382990886810830644655047264557606301298596661085480519092915017540572299672803770484728529215810430294268633180881753605646917205847576460034220068180986592439010009562815019064342711984352740336257401760964777205172786163614079656820691489129107740133822195591410845196042146921412442885468508135441843039131986847943741254537967340864167554551574002656850564900453193202522184077215975660542847836126333340463095432368242148833725512472177555948922501288864444693794200936354981616686862701000506042594607086245395936749098309674971516310654654056464188469283368053074234814159626921729977034524450895575638262438546292124643235030042108787140912947092610261640999148297794789321959926749886624612954729694722660565901666339140705149454231500763916493154763758341484990231831312958977014347610580906176115562614250213334267015618514232098772439300081181748383414375056194784414406135929018254314055359670909115876390158858993572728605974227995337209807179903466699008297857662606370621616219362613538070333655549857839873636886385244484852414029888170807636676997648879349375927601325315264565752731934199032880123147170368140877393469908578395221344620328923838103743334674455859794846831100081262058498976098956993909576829637154880740818495364918633215419572712706697390922237884026595398645241738172008787467644699265705164601012772667690485765113805680242671066072450953297757920022110263071554201629761200772233010368778652133358806492986268779595975066718545734691824886572435960688092392487997643923000457424699432936431658596976476458545294023279010002686458969040722376074140570184604588130003918273084384283255273717418017419772566630073825434428561510580582530115615802100078203962235910172393680205203065106912502811988703810217785993515269192955159020722784505199296283432197128618630935166468062942434768788493293736005886049851203778584640920980816010312963262605583265105230239533652189581600157563304831108810379145518900113834965788087047060309658146015327173725065781284295465880352675479806861372804094226732923254565876153956522773106771132984515203807432590908904134193405931001597378736055995951706844908649992746685998655524836397615784603056808774174433390549657197700585717307304534348335918918099954830690975051586198536798963303689423966983751567706844704671782308552797524327722726328141393855073587900950131935883725198461256729360417360155806006464894977757653039470270129728607912925566364564625200193638985976170335222328523374311267092550388183974465978613746200347383390368897070957728714838892921462532442286822116989716776558711388250543654356007167103189849290448166552678578377964962298386307716470233096422071069726342506495181537736759672468324622792363218317255824159249414989478341016876735818668588941377465254329062120754428856338616194344793190313431385284280736801220244661135694825011918523950866555349382315357081311203273143199463821817112180081124921831133859499545776813554794783421426209839979759071387394274016827343896923672071107634724351773063899432865291660520546353933546969861235737569556188221858004388027433971777102046662396277530908631511801622358812811780391191631016428313885141201050546485022688690900207566319714856372992080585644963461790545443531486660054584735897065894311672250653544723853324212873432281036856987909847791737214183914480043280568052794436453698175178235417684966452581238861098796681205682682816339442272993538486792336788021666692751781856922046582325168787414283375525869951715711267898823147533769516665566186462181704373221483268608598799870111615052090024914904774477624511604925677689019192142069893493663724743140925550734397537253613733720900905319291284949563936744743018009364772668046175746682505144812350291033917923552049982302466702663328397047927302578084833928412679856464760259522689277178220695108459523944704684373399573313016646900698580215726081899126302886882055494822460322985314910786584077331237618599131526128677527257315313990674802937184954237887369172059747034328403462666445628366304341091705165591575374718906233023553737224563412729031584641195867853125636619788065848204750393469654644504192683353464190354546307878702719265753478955708365981898572448713167632363144766866119713992409748888396510417360727528650002161149640301875729147121975809128236310515019119401226762077929715730243874483174667184882473969312425275940439224356723540423540062134003255777673238644474306023668339978698836549065836547717627340922277116758885334762626328054403120410204748906125475500759245339760222843582447868659356836334316524299960258454494780021665552707286578924663127965791570296169855278983378477019490920398759666805755739751628077279910525099043328068427816989058730087792284880836343866331048757593856461153822595224681867068088891911433120102923549664021029301427919202644537338051309967912869135793440849959212724913898761496759201716475648174975684751876329221223796623753946565651558870003784597105863936274131438053556492416409615285869631841083441656130714137010457285787113117053488956954977557848837862962226307698550743846876000323266170629301421222203363321483971714138128822449580569173564695518188155064518395111703846457306125329295190554501371725625481371607398122526985865614920974101491630482006568900129671928409916880540547353790336098167310450290357944582445149521080691173830793517580007784772258997668035988178636846907351439756381817641964828494049211764069666290360749948603056350982499045872248303673855724333509324203941151865877682371961110580230059965044149404757018768057632816250482434039605419899992786480629668484470310272985919919360050566593420413438361287039983560780828705965385259203458641672977087809983564449886394170931257817431793155003524676847985856912334809574785028777386664739982148347170519548695390553838948872651872286570897574474804869447632394679798158479434459895409308702952975414574346033679751169780765277902768949617372984965345131922205886985150433337389346286466111261410249282731009726855766149568868296198464167707245435051531901023171331498850429656456844297774058495664409305794575986166494926441224962023717991653276481651435681453533510935900245063552430354110368152248857545534598393430858454906440292502146635102380315100278328858412385711636312336098868872363567210403729709715299975651696507050900134966005761987457592111642231188367587138382696484814514698418934041607846244707919136572162283812769332816786441089548180141216564712722179938388896029967067729317863406801049639302508788648477181537178844006921735810326848506220121308229215083132655919704791666157835052221034805231384465461559429752205615191186877615793366860536916724229865046914336255491176489169187657661172737774139546959687696442348524003872008907663947958758114554351333863455394897010723622661215005116817423503818750904691491292411182593644992054474485106624589947813831325721032810520102525870733424579612355088291668228830368245143494385805537591429247191000672387400203748127775363412329290267513140338004818144272166674247671701197267908211408889131461164180763981360703930971071608143661747644414206839799179104165016638329422490955016825558062364415677213018363303975585090038439847171051736240332165948856569901466606415028164638371099727948202078000729981275310174361279128203780761649574907178852183872936033755070106149637477389860853161187196895491319119351480703096406091371435870661090456095129106974494599743395149196819422783857943159468930962337605505819935020048210818929736150328628725061386019105683864862082763198734986077677387128700227412914917197096209047621961741780579752425674449278919875709363022643018272561899196696975106018424575265827501385925123609338969000869783408138491671500483207403638581369511990152079823413643225673275695414714971312373381516321856241626658180577384013240916207227328005365796863298022322638435074912609646119229572052459151565425218086093334840696938020632050617740314868094716153607110888698025872623632852342797211090097523269354644640900434613726905536624462014091994085170633071814790974387674990471317917233284985914338358072245490961536427284613092018160595859029650982997946167075232471218533583125149052013017402318818065911348413568026506714851868945402806087508998852508115603550320451012807670798177713756124608887000758122285627529018522256412804315931621085980816157998318054194089689712106718827831688208982860379360880762376320304819693023640169047092468446988074438486148231732483720128812044575186238829695662307597912125572066523619886695114338122116451886982225474678997875822809822096370245310481225179596526819101582342608631894645817401680997747294384554286660294768040652091331414288109710117510380279756892850631227321643842043358975619777790464879331214393195351301919035635482216745860091431759234970461137492632669191328106730786564240749062429737121513934818628251380010104030042410002779091153280742521971827893104345190699963915008091042727754329241044854987922937211613143563623283166058116495620379252251556967978563918627212230700248959638783754609970385105463184971698264229992767953261674545960124941002071680296989260889952265041810053584513612508860148263227226421892480819006358541303223228265561182916982261336201089813318341001710657853908310785615699746280688091340347497964160952054075236732310959596813447572847533441319785603668020258755404713118419826350288970614664136143925627205708038997010700729939491777793946928827822581674031427186564762727229382228236658465388539668263835575785484729209051373891115698033457501680085714480333061002017954572069371033926160864761558070133454774592851933050709277231778977431706761698143488416542376558427162984372430172091565972011488798749842288634392163458556804333721450188695934498744861655961123153403735799555172398612964229646842537206274930083678432109491281098705569054347683045269923050722848925815961266607844860791096721430661021773146766602978703797691989387759217069620760284084771408273410109017688890628471156496491229663407169808949240730418253451707882898455987864587613712829533056226565850214730142236671455152376209890058381013719218135223738762829621531457673821585911319419912943715490091685053032221608552610470500453028810623869935776758752792883074081074118381353842084464552072774799273929553949027287939801889395254486931789153007464866767793835198875513444068152055765747973762353428456103249307989075848191898554055195390226693646324881111084433918365472942940254842577270506008377706553257498189498279168367799401988717927858268921352034721084766230002667833211358337780926729002045066286176041658359287944289157616012860978721398514290696493188925290731714523589280149302563592860671475017976239925228668254005802480537773036726287636198732314044453198291677395455825147830487796938996856900004175310033592221455479827451366031385184895458088453564929808907639824932251148302172795564472414339801033157687397361484719390258197841497208213126316230428765974635964402236391152413228095183564722239467708258660372773977899153075684671297161307326589364607745349061144567648028503418431753141273418054445607779679175799654865180807803324715461723505835702252245535335147715157831263231450047474760995502344389292026877652766579554520454777039632693644265477741942531056103826857570907877780166250315676744196825686136833166625648396474830909172610134508792857534159177086419726499688404707357341892116244064562405779350536721349955435767502841226497167973072614663396731924667820087634345933988178246421222969201008095531858413171006055307682898844261630331946609254038133593029170849639315996774241278794914661602475707437712729506761060363383100782240421503643557800493416865175753196050002766584214188562332277715876324790723534206100395693928258312845039148738342563040045205675688004796060246935951740132332965990172197222541514407853481556303311200349551801463063830284510692166936388747497008329498550658585285912582879707875987319393499417260262083654847785573657554641530987686675289438865610000417099642811702965484572027987686175637671741859624315449457172523630492319392001305081254408137175901059042003253198947843239245065410427415993838859664866052051538055055366614106408445946874780350557060721148108678659714028292258473143952357883093535556703283565815829023051194397563283589230470716340691076774282990163445169455339720962791682696953931730493583359011872628219773484307753343111262417924898653638087736389593234803716020074317144758178623721825199934850263234351728982001539193969831542238200846965303035987636474155199724157414199528833736915359367368083515142503808690579871917647682205756529994751217595839188721742511149254924543326837231359550637167887442180607169052800898306145623822763947075020702386698282047864536971101899382477624022745977420902722524647884682670673829482398458246700180779788344939468787133568233496711970582630715065312703533226384642230375565390532700131777235950438954726669593982165440785098089566175426522312513898563811584943926088348060622350990634286460737786045915033581110639755396624950915280454188096971835581507895473890929739421382673280407758773834268620477663881616555320455591320327721899397416215254868025942774302632385538445054439567797023255011606640897132120248918983333188639250396470302852779123710429404007164508909641734546672297449009291184220274124838113739476414913492279329039584171636114134490559462581975812005111247098502839402168313464052631556082741405835626159962119612234233162512571087484847105977760187569030684245842728761753509591657605295950911521367693631789720474011032353274429412566383859837334246053845681782211403412390521024376261983618355147390764897680325080199931759261133078158109251357291638523371835847680721177788519772626970061450601771346158605456144607352059131513172661425766837403039370975742314760873431206375454999921455440263948453034505130652182997465929362405426320635307118108609347794688392640827872631177784544279886937990981508426161396778937528759443018965134659595083046555711025329990131093502917320960951838917631977137846256560505001017954624074508811803200484314071877925783962985162510145626546130069021948455315153911970035308868511814249817283258569792227251125547160716094397559843933300612542364510077916555991054847118817837435482852955915831762829547970472660485148229329085803847635818331270307352313721060684351188099679904588010915939187388191429627079597054604827378965603096387546254600167375484009276058821081343257007011192692654227238676566781237473095419046531338192574239889318745816500004554879383917979946916898256474564541091705952952292093314676368738171984138080182237875327607129692749128534105256840379345589351549402324739006781687356505582649444834145778175048397958879791713691584907512431629637141083982134698165625996900357466841181755205308625682361334269425129090159055369839605056797741973935498936913073256323478696476693202259256577445835674263308852630947653543550287066320589840941336292417420606556060939979966283727556795669835809250298383580710381978375925075155497511186851162330805688023267224986377513357337936420523811574751521692067829145639903432021661621050948503519724290364251433130116411194602806782366679668139808925050841698796904794091164352652914940033416602033375899004539158451725285623449401117555327110049966357550422852936003726391955307469228672500347469446972069121618120641536894424668516967630510610705336696022511289185637432707330065725961351606182224572360036299825052203515868335722664958389652877887791278762375626325048685792837121638196626980502641267979217795212533860714954951052894397297842914545450495347947372374045815340992163093327458664915568233490894591036320126607254386707572293463834160529594841224342901125033397806934114003650894616723596928396312174444349392723929257808211579519765186692261599716763055076031564810598930088955020483870890358463169139371277976079267301103073568175950750541915002534923531758082409576232162389875231043783039773762745179316165538105355843355734624828006747816531124355691748943046218243977550729435145961863011604907591702599770245959896250789677966238725222822757712839593889543451971772229878076878794938214061340351131603140211366823298296156528236305056887594095413315108995114116435034528908473224355490435104433691374680151084513245448311463603327092369783790673790476579611430974092649426809325718994493456985037141438749352675286464796456638824502141963458327347244836092293345681080360281510133446498880009724859599527915409162115200772124017172449319196828714696107527163870110880803470749509427952914765121312510828070777905870925552852693246310294368456925422575982750291476599456093862053299241531910638462416935032587134847984327359195165927165918320200389839607348145177714446917579801906630494592559935485448462710599873549795622312865103541970377540856003118237744137172533187757262340177665570065347018350468077229858806431085817935718822000455120992762243696656179414490349075078222726816668020097909858240159407661249414968965439839453337685008225862139107498123955916370373760283702596724410583051860789252742425295889072153504985101263068190413984951620384959023126730377032565489239437141206032849429611712313266000528871537033150239362158979940218445874436157403377018624544446444563266600494975833930529191684542604350073190910454137628999931016506039518743369411485671899765140687257952694595627062215058257925989049947180548278326511115479761401426368815133417969243112105864482663043882231441328675601617478619262671523562722983163145515555066127768572127845181719284995862048795490417567045906615172307539205797273007848129743967035773163426069234322208373489665318422405509143785298803840487286100161992608994727028999217713267721699860972832219398055177481605443755356672135135156489325032171216308239905962882607970692753025969315440873746017725792823775884167006408404900917787524323704316098756386396111227840393610146157202075041998396871655681806411807290672383714552161047946639321826697515101902048783860618204142538515575907767868499418514038367564433509478992151507446514451150380338162824005986243405982336045144727846906783245180668856196297991702561976897891062699643366445504715439599206431589380922781130965991564432527465069162217177145595349292359599975120207243914271749021466055101219437267252545957242637290994061263313236393404017306308959749203443630618995385890999081338806847863725106950662142336138975169448325382410857846350650829819743177831863925465596119719712300367785313279193538616292876926419405893001571278669512870131915058457731633023242718069566072668378121190556309404030988889138208904049948714515238653505846440785239922010701543882577920500013707363651823564848708173736936846118850304966548967712723018080319868066661610932738577848539215815768954335741750998661250861084598464866049500945304300413862931800494407383254602300769421622719576543927352992053477357422552780216311781971714338909066383564668658586342053663033387755774193182532996198540630429961999257576279698625369673381056925743724289600526288672890120656230898424984917871711759878614890422764339691012908809488861001389976322989189638369959519133210302753141019009879137383541068311897492568708739098050692667030525037829945770615765345583678843840827044335709976041024275339124931859408654610572348584782944344270365572338027653410948491868370127156596477488056093240457858946782338601423001513355788106627544412639522891924206231364005932599649599482812101891152067708961530444435651902372579257632747394633532340819869106259158991486179105366549861186087185174150514852837738044331325187213079058051756702810270211263188494924881688992668495504928004771471506439361352660263307868479317855335084809850486268224555409009837271603935209855854182665899541889942243370591896285592089999950487472514757284959909970956893844829435526514624816662001598344468774890801167439907161538772155823405265245540249200748614831654957574190683991641492127148657701270128796936419096603183249060746244043536641644485489031773491080383228054431040784010879128249419833513074175929260107131318978439946268157524078841388475824438020588988969521815023595427109344603175233140256079889071093512021989489798832281378440306967609667241186243336357974153606484130245780227150523334318516656628876569386762120879663932133813304129890986956284202819747236529543256781387500469906238442158823362454310082861341827253019976395289154896416741296407869380998949291138282094084123857700884168867759171751365639823687349557846483528544667708639441615489694256162718134876116874027341321918052292446781669586659479062523785135596613285882506140199640738888929493092649488392079604167526574262832810012546814482467317799528742675011020802938120794462015540674745444973745622468066134537261921994906163660915998628474301694846735159640657182179017918999073097078903427129709183476042605327302986964969402364242303441139159667217861862100461696212013163944652123485179624867665675711425894088795657038841305825852227482500509320973078815924408105219792756838518167395823282061293888486076932696076306627524841706915064615163828919489309179547871369339118679136931596974734942037513548850387757642575945610631106651694322531811540199740277423172282312103709426861704155397082001247081994713457433000981165889906904624008146717820289707444609525705971540490708218167135484859549577866486608001306238626448050408445242738546432908905846961491357774888535005905625847442359868978439031890917801630834588630165062289772200820960541053048569653181833551343444636789788340413194695078085946640919746430173525073752672043702106010182301027828555271274991198992053114137149957720934903963080162083287170803714158651280580074728362526906713187815730878712942562345629960532702389708306989935577558995299066934279406323147691154402325896505784987816122750871946217801886921038067693501519364851891505374722842188553696406494420354122724998084633210249924417827590302477907113277363431451808428160377255854044305293109357204900150479828715724052543124198594000817580060140300010555304720926837277110018302706186280436520687057770643128167141632851618718384310823637383089691933823928104118432350205162306529378878121880936154655132885761850989700416825175661939539059855076730438970737828676639356136646085971416262571951829451184175644983432453199055559864144803426391713223803088184621893154874734702632092671157007814844949447044299606510852717858765674215200965158970189221364605814886559062577613939527143073169339512946974727579249032703318096101592987595124298446140884219135768107764768498611918018184849074206438032135416346867310721882682517872616523125236712881872608672932681946036943751583533218696619543120160351779132424729817220034186300088096819826517140001674499228568254190047567726416925641415595856009798222120804571487157104153330965936405841128875859562178095313974706557471811287292933290768040667694536439265433343394196532618736549564427251729101546925176011446084866172256082148740986670277191044955351864738576637086908002798731937767944030044598252001512735964289774233412463458936330463887163417762877260185529371424727162639192354579927213130074290213139919078828251823424924935223748123180136796111542408026992927486700523465265070390592511921380868982564291494529948311510494986061007899218936704089614195675119489808414098348432730966324954952221556185329533235917956746617069397807585649937071812543824787210442365976445481229475186478763668423485364891684250777532321161902557786214283958560789120370771571791137649416763147613403257239710559260474764347040763212397316895658845166813170501612884479156134226658909395419920721008723622051622852879580076459280356962708699658703879095555952063618059762723704101624297924671268485312709632837353219671115413504047077907283168545843537989268321374273058664468138305863160030813535419154175109386917768273581770495254335427708165942459254983452197248160562581343809455566680659393243900575441211496219125353675115539217538802914544310339435663743623373992733328671924988765280939532178136688972514035937910786940086278201442064875696621413411049043307398568224075553460898129714243624233934598566089149058649315533717809949165192841985244814366447893898569260456115751335376628665230989932421829916117713326106684157507999789627055323749575642509923805233878167953950606070117506897114903120943048826219139719280619302098450320665451897287992849847985691443144247156316707805684055329142811952453665557921095025141643495298688593247309553854854138157387245941448214388966666678503021736303699220611172782150568355893535205197466151314469605701446496176497603846422417969509826016200135908315204061820577290895478770049141841941782735703156948053261172668595442978678776193973589738069790382902995284742966752018785842115108913752203998010772799682447254375218828244674407296524662657261027751750850881062179992858417534165616222505717364886086620487413705252716359710937145113088683060852016894062489654840205124514251858244200341680099319268065320558611248770070339359365841394932500551003153892553024763664030072855662850796193985844021417441152958334707915390841594025356100083770139745720538537874168787740687312053208359384531964909138622691524447893354823289743360067850409599743815828285985384299577168697726700859653628194155873867491672520945222246462060839535056569328336533313926027992252668191801506191680503030738245812086954023837653189497110010901224769703870399237750342376205961655587068426318496290715102251537834214668820926939974500622758072261849912942275336147116187430823666677251879729617990905139863922882580956662210785498924522162306828597082647380996508790846527955422285077621272834142405650668982331333758597902880505923236776573929689613788336490767206697832241721340664571468724682277961040126788065431528639984692585414324389331707039867296139795280145421872676608146311700656292745130729450767547913418175132866912507014208209595886143051806949702591856550781163965266063511445961360654377681642680113491113180061591642156827577609472450012709694277099596650585000716210087183541473808411521380899759290054270122196456630365856578073585952660763455697770210968707244787046248683172159837506746196632450544168104467440747916745230603780002199498083340601592387270822666957175767607491065098439239579281076336988737521925578147242558444794214519595949753050452273169769348397520635450276706455507472682494163032457871838905998767102743471914823369057578556489979063706936021880453576648808389836741580836849800975115632061340659689680157236598472171482411464033500523850447674833793801543193734435378701318235857561619177050344986936384800814915097627947553102453299153232011542118464853512044495199897462106181353390549864898843522510772834313964042578641504477449469316035200145560026223421904096857947400948295902311574652153114993589207772663412343932516787159292902301538662857104904958074008105120009355476273913087247112414939547989007319915752652670698261526029394296769842689301047038836452761555637271559814955030499835178794434626989346510131618920336964211614190269160959488860049399722653744995329316483304305067572545502536998448733124729837266200390149110593444671443714266895913532703988821641087103540534470860702103570146943122668845196364576265631497836295171242762477402749197278362111023257950330541971605687578444968913517138421058371195549995596857804516508702079193553079074842560418391288597969752799376298151497336650076683421046595201991922589429195069417578926642636766982871929789383260771592756620704469398766481203764958041796569899355524474881856051248221434293995364534874505947124366130188746525636889115696985492894626272571221212963471976227043894947477131377302315457797949935630205020460470465453553026659530706303828563695027814097702382705765435764152741885859325069304026490983394493864144773474651920391404946050517581951222989609628966659912910359415694814290142450916910912180528909861360508414751751729844921244983290395616481671397455452835843410598251639352245072200588743387244428819565277374785264651194560878482177429110401668202256026363620492879636747305264154586118455890989820614176131241054447545591410140462754818805031848110892613643383250264789826064010279215192005084266264182492059338780093654009421450853028216672575657447918042350822175663168340383967662143710450738835713430045488844024742197707614073806948878708516117509739532265197747889166563406253041414727153239474507138890362603980446397459269989612509764022620582862008548463930635875088576345819975940674477114977557790286801622072929802964724275017418713005771505696381225813973941932900294600163403818106293002247181774989009313417000536138162532481365762743399707263036878781875192424000242105175161984286002156768490869499039209879877617819095915632480733477471903786172843749786885855787566477703481732152301714938798635377636574045164022201587278210397393962947663711176326791710074182958579002283059437670532563405378993035629380850052891746102760880045960933045212143176079688255251404568506463395792508917736868464371141978569821046352377845230718552760777596748344779501496583680445889591405474423430268584545333202861126838774201352310321786522684405497130561918851665744534805016170001264339812451353136256351102238866810871972487869349216341349839256114110298901103206880008435038066469819493381218359723200397293373898916086939253374119143033492202057355574479948589383841737391795000594214445858351496220923326792696690122367923635166172619189603018639296729306736350736216529908049284252086030878760267893401923202716545736089405537069143242000765162222433544594022897989616562967077986099383868691991375439400076668335301072452527575605555730310729014112691524995586914861253095817187940304234329712451759044078733415827923799426938551431892787915922780174670456681142646048823652784064471178015695167787767898523529871073252938529987196972473019063545504719133355020169773414171816307988820041471371186603059760145115247420975127943427812802106185652333281260897142099282180818569687462681194065442784121011567083770582581316635595083150414807853671148882723194989452135512350693132443133979505737538302339633534701839408084457124183180905202175767106107091060398741486557229810287051192793576840284957813684474357899463780722694183038427070009325861371051505178401569975302541553235703173447866324301560916327766458273784122913674091043795512238373158194049473137921876586209492916076489164657802123945267726173071586630737812572323155192588314264676892677797513172807540836562744849555902540683336726006690138402821434141253601533894139085238847347808120418029535327611092407035452757158909413753974753691955829400837442216931374357849416410199747264407668569056732766427727410494256892257332646223645216808843917335275399083866264974195683143770786646020342696605795204383870150641888989225656892338917397252364533163287215603780627664849330991176779618036805664485766326497454134194641629645885826715756964637130046225558446743779113998500440684417332663657762014661364740056150670928607452044416606924125594936256623866781161262670362495973723330647632157677097527453764758257317041370413574917531069053452734888512093397399094649876290436724677190916401576901943340506025788670554646901546600817743598275704234352664004726243477806965303517418045451758370439634480285009276825586294825762900420827485602457819345971834085085316439415226947402763338193029476360963013898844272701682062575806321619295321410462018223680538282634276559814494856946806647243088262032726931329181125691581495977073876401220782300726400883888488309088341384954267709678595391681891276922662978365247639030631812142676061203968060800395392576591520696455836086431441874061724671940393108339427215911693429642449412044405846164178696485451003407586404480202450597866729944393316222077271260113033154515236682163627684255889625671364397064271003978460104447753678560082958076027555992674430597204535774790267554374173553377501461051201794930116525104928696188483929756792339040800833164521504553455247140532012110288651569473694390061549192054497731657044824974886471072041584494039912279564579893914926316544231768478421562860261653076199618842964977185099382652211688877141407576606194563792027697389467485632001040524916480031006593805928126106235582354360721439400964477297021511064981079643532502766745588014539855738627047025058709412537011677892073720226568972333076052254645112434178999433451326909277483213560700266072052035460545534186537283312731800595408378396529018466861421645683195101395379382251870405186759435901414128738038119100950301036983057203116676767591656935542975014098738429958560223643062366493206902272784180159451107522836153551862180377254945718301607082381035499420775640859980385561444859981397112240981461854721799179590382854163248800671496567871000322424049720978450078851640013735236864257864741428084915095985089669476260533043118694425499719318371974768505764460727090725561166718926056436896937864326413592381882394646703441465950963783596307562999557864776057441999785056893455090027935659198641944535253352502883115074960023826643060352667805419842550102825672433535503141827284267737064690962050747949801843824069270474350449083430230311684670250300395555572629373416240726370692510762539949692949573634607036110366412241550130451806304000607851022895976000523548323886871997356318912448765143453939459947674334885355440213738632642386545800074554335411826254998038747598714224888725035523127986573535802627848831372636513755122612881017453843703305383157203163823597454541116605802886244350515402908502297491288344395417292054790068282557483856073871820388148333210156562063760097782322979797007033981553330000625161535335633490634409848648196621992949029596633282934383362916926796832608333824329316816003303018767631436876843320773838287375392523801543953211799542352128183613166242646313821251205370248430282002752154642374558144189068212281767407779555684246224952113948203962635920974152625814643754781683738416688949698853084271331056282669406852799870248810883856919605316984171518173405677326174839858659617021709364885543944349474962186794482878127339124475933014357258441093991765508953781269125736029878086259323236847116396514286356758304496312575485910645480565237512088965283483719615115600928600694232174282920111796171581873179751119691734146931214511615650127936370773381836837710630014346084208230877654707045648039484355631754785389203097518665694917713067938977069568073597278881367156067081852989696033414368828999001589165075735214764757005518000885023550846094579827010247515005983008038667109233901400110348769295327678148868959271046852414056033257172809824072067812741615398748150219566480543007594849109623788649024638105488485488133158491824623341811526377033989744951954311417114795745311284024270650842227620429643159797056190574828439646701993973797564382964316207676213386028754967362874362739865912403889540220281613293795406811395785414553582320014955023476983739805622467231188474918590256806619533507344801163215007184026343497019329662657276533265437095756369836468289315993633540996910813552520165855974672907446525890920564133621768699370100633745794943918003508994452990578557324522681202324481717985707421638507858161439258007265231403440060491840527805651645553603110293006277582297124130150504232524502288022874630342274127842424547572214552383507630664867322534432474981023893466750931502065084686741136238753045792233322133726070228238619197461794872319380104602648964677348072722239736777979404538776952681782444289099136406963880281147293820833908953882766589737971062489402774323987121619527181173358021253698810728408551616905531091706736105151539583656010688523492039261609955946486056782345012805751560037677808019988646694552169098419204636009376118951704475440145447765647720863059648801904540777744159400157806436877673338002669748659239916959656776839289713778851617708386788506173899067021819142617945728400921149567271812111489698735363256247467049757883098445072916976341400539145322778992719602853268813010654487019417303670116932409696462549518376999579757946523930968538389939706939746156678537724328372085320503746596187578446507701396807379669664564021096425186361029938008359228101187813787309861248568411235205601596198805874804336005147533352574443650653729010722814975636695529605610172766121074267507625926478902147140364864510821400035334732691405950108546580614080957863860255477569737035163681530873179355019979447661612354764594291594187761192453218600429575048935573269430056884727530766178869843023552805949823529060993187496099470494688932635863406134788618867285416170272088233744500778118690421554427922887917002467399333079166343153534501017543571791737331801657424488742412899992998902411983352024224899397693026884489894028748844081354222189633259182058464955508760573788760534625084720920097294797381272635226205712006322106298745408754411733208984185987451134080933292623815838921865786326500147164729795390615335007788292802871386334307511351287498246087379477796838322182656378747926714681655671242209497063135691451940504029323391649788853226337657270348096051595420875183275435947499619199173741027363657268172026351582342871574545614802433002251922920430244475487166600277412072861970855086799074488424443682367796810541407578372155773123665841376492394407005453048228596793923059857915309493798348979050695857667346283630685556889621615999922400362308941754535588318990251307684219040484677781856876836239564599678440898576688729385240577012737358004022839801087124968455657934442999682422906797292101616995000494455295076228236378755693903769734580205423317704653317316141434160499053697240806318761394248394986225836603202045757163155656480974556550474054165541843073252205482786319526200656289684822364605456322471349153731386596047841792164670434399245584608273132236505857731209721663481639900951972258963584247423408573722207081393060706841071121883258427498620642755210789997824530867171095829026296929340914460771802085407553585946220297103383653466165671082367014844935835953285841734243961061821726715947733033615716425852598585401108399920406523637887976520522136336344920568051747469933165437512656636517506856824356440162543449660381124441214795304446120629560702447340367451981988259112771734055347613904881132739054698486546236782465656952539406567577090444035259395405195891750414370880150721007047514810590657720552105873118939463581578719619475157863788479675779955686100595770994252085516687905570551776331659289917965922071654766604608926735354582746896995934083662718770240011508461036601284548560706565194657727276014443748112648798401154262063313233187998307845020720531358797939603164422384722704784767317392700596842729537615307541763256143566765263668108419892662309110463688895080765684059550657405359202475860165786274520046026914872869348770825390940351451949977805453649718758457829057374979495243192881675902709903499355110800223348672094837509099560624341788219426241461254002658586797494024261551850456823330484070736994814275810170583410632503740362984295508860518426957883244718590334947519790931137133522504174448737495514376108721522071393703109379925088408122331428315550210186288802960075358497456267155930349060321498069268440844744306511975240296255363993146362135690399905269052819628626777208010896887389960739553184014845808982813088594343068215701039918872157836523585377051601318001499525223136246021342872134284590552544044896088213266372476059575796187852441395169100431583571159503189516388645691175881768160542602408481706787436042760867237705585325168810576573969206494285398676546623853820255553200744655053331970548564060247043858634157221077206615111258546058035173940734712043909730481592871722894081407730214990295978616944745738445361904123493888163922286187286012346918817401474008965832213700635733283845966973979739241819490712939468358541559710324195389477323085769286492713329312587631999806538248341982846162516589091481784824475529435491951403863973085695080225274358464615232001040725921233828528420992860435898017800112382097447620135425369855288718025442310627492231971342319509267635316303589723759995160414909531287910831695827158530042081345390635568374464303166957813972049056178935097784505072394321522148751862738865872947043905341328791024367633063712145648779011431353680271443592974164085502401738433541145239759934880656055422127011036137546405722638283442850579632424098565711347355385761855289855496189314296267119720193692813303021119211913016975025578970095562271716527331855195301432577822973980314731763018141879435789358293986294227711442434269585221089167069360848976198313738921674606035191970357829393447759752603281687825017559406307757715635774508079428104490487978832237276978503352480742997861293455419127295910892638216754506625822341327005383960608709950220742702476375979359272405875466739024725629268988340160022525261577921396589452027339605849635009835937717385312258327533349177328963588790528909261723817603672461170176655866730238249912937277107690673375319894411544159775720399641253507991689405917565858918962980965110045027122741991642807092717191832410209418691977130368786512552012362617492933146058496703326551589724633257059972876162258166913952831734066833179262313051273162790177137433371972763309062446061751289262388667497466132084039033469403066698394951371925267010084112673238477545068610815908315474299942532697577239984598858523974209922005050967002358859558268000166217357540573117145538523900412060134888486260192888830927966910716090278754950986696338912056918327947214735430528541818847141062663138653031448254393383296853064980404628652745242249859696729494882318091699563899817489765797833237918317370248643319579241864167437596934363927681389993399756280173577974652395259522059547757042243901446071936755645291254060785666886444845698808537287450601968599737990901916368153995114967925730367712328082855836418529217055000081045897778971030631015443350553441754954401104198978248421337116436398466532963281605401608254101449614146956170134175243843807808016796840488631005970364406425351847907117658588647573510753244575759715263543176627402120249666777103514248403639654879834955606146426812265466086783596260549241989779081284399664325759908144636810610381978845707341858504894113750880133037848984919447512654013273137503867209617400131649176505652222116213913903016659213909902024254442280192807092523304633423903989200144174413542947598373941183081322481004426088724921119497536902795533623746577480485681588435097009872202143705851174813439073313901664196136210651719366684748305486717643502523831673721032926749807467185131804814875312056162826472789967931306876586307601978958414775711434817908127159265112119177158308278371561946088727695074102074639171155496999188302259401902044755422418177494852298438039125883824690453944307158195288778599874534901729482447374410861569092655815653697675809921665901625101930792749014179405585478121217706297220938187105747160821193130788442074054432522357506041619232138442051272253828321508515393913804324115373078449891601147999789895771989683120640667764671510411129562216804787250346507534943975611112017271186883987627180760627070566442907435702144173389736617659067397711556863888008014574135600180615291403642208217706963636638039510367880048218151460080053284303576596180737569243325339669125282607165435158457543020634581124378933579797639850525792528813026968701637067081339598322604195155969094319101856803590060863367018678023919217029474939587828391639063380220742152750857091897625070065081877372765320120914458762104479251118403661722092259777115024824452157759309595955795246186177423816273845719778505754024908945415647823108032462879431994284191933721764504629906565552032401178486725786063690518559264066906136361603899132189711274230706362898430988970702686298157669885001935433250532987483204036682230445522203101235186522070628068789975869560142546450275057097832781199098158191145522882479305911829411633411904285270761134413963436514247630780121641153387265202939487167438379041389744674982043937714656435491282332835191029369279916643084304345395510677351046772454764883461002175167323019854628501351165457563834453399107811113024708978042478995183427345404453603650430567491168819397711466624939206433950732221637917715312947786668358642982149262860720927758347533793099117061484460576593989216259849053005290395509011302841550284798878166003822023432830018961361582542360933213626002496689657178120103248806853178242295515347107554656627250600228371500523544646269962982983492815044939057667487039574243793773054120321730453568340083598030270968740531699107703572502042737027756735868996808902077325256390596943887546760284947659600427074157667449531334189092818236027838968974182616311702013697123605703467766349653645174252543213633857030676366078657847447534733205528895487469877341867216835148410978378637544189040570275390968787471674588893859629851759921624339644101818546735184986514777393511955275545159578150997805939208792322850906638720208129586641307214958534090876297401626253740215867214349735162669591158736952054051197385329687290384637778248219906594573137536336336711370131947113192293282835746857345202243203174572809725960970003045682957932279551698630208751266018208025481868863784812220163410345797666490534939783889921025362309718288393049005582703983480175864267154482487453251988078902887728430722744029000424730224204884405282367087816839061393154844351362267801475711931676074901593089285205797528049492585096206670942236400396119525967660291613845600822060037803057142906507155403634582193693628381470102829346733496645382656830538304755658201236431049892073518469768304222938176708234169546096037528106342445078238319450709123272886470409725204724840590282739949582478793169400151954426960296777995613560267467511554471156499802626068153000560273838217155695216224648506741203007444533899694920618988695200229643977807179549258233751304543686928895510671554861191812473360881856940756714640275069731445631543320338384947314664569277103990872823958323681889428167498641475890745754431307623548736321883839455980560636413847001798810117653088772915585370013969978461214890259591891367611929675221645712584027795836334567305939856216375105350461468346035230820782186615185663901416732317896298523237774971636556371217649135723642602841147308390363572464446730673870967696716340884117946725875443282978719097984548334728571398278741009778532319675976003299714289384400108181195661922908221849076806182778663411101264313177681177800694942484980527674239293022987825742741936492453090438974917000181278302652856217881864778514499322982569447756699578337013053036163505807277335808171074503668322741854319367309635885852832524043817848881323916965874408625627215703520595762304342215946139579226834207460778830105383088981546966951950459574690020916915191325190180351282634367605271027557819273352258827275942240165286390645553131718652819739620159896894297082785069586849591870815759357033743643973870277580188523368133368448118296728257812693819682285358794620993082710737546926794910887123322195643528023238622758318238526584645348776567807424503852782806424280954105398219443725390267054903866428205689340947610094297198646185720402605465678617723643570579568306332059155137615479593347511820587438279352966392052670609111797521027733586841026421820750150894027488057358748962788477655809261389848018061984680850709086977339659373821587416292421161839620562454020347005922690981448461791752468947782007834405931818759628634839831366700238437941158384793580161621183541633114410300307360774399902676968382740076901612781527505239518100003062083096847589518236964784797556123591692852437316506166659074320675037321137093234537516926464171544262941694689483653314677875059288179462100945979481018326057696918397501478914052671380794872319332586926810139213572930645648449282248543377557091438849343962995525933344725846413244262967218355155490302656709350318780281827954199940601835106940940701105108342125530670774815649306506739163344221157741630118554049993052783951016873728566661923583134054111615564786778393659010239735542680251740032820255097734053862417894818214830249229205341142949471415794899597932863450106490894424374620504915176247750642865190699367833439495331656001969361155721164107814723759277395861700281251617134284262139034457339941827279325542893310132214306269449084343447528498644129535496605018290796938718212550067232887517663846375997715581341581013879041266038443794239278391914743193723470452433652662936226558142445078391741239927170442657632814762572015113264982280566884946188233425288620798715009399186634376628419230921070675034920124103648468595331562193065866698078852542781236524842157159740525336367991989085017257874332698375969061366023969965003138126363035421817292308115134498675158067778669672628709138957163142940531759875844023713600596097138162907691617675591287554403915752682153367400628166968618899170045370350395492229723696584193674058980422838113131351086173534256287321733654444914289222010255594878875569248741334830673562166341580122093009906762345891130843388051363902997783851668840480719595826526811534591062702852263076278963104493935822071252690752075399620403007311644871646961771103500161705004133480629772890413659835402363980854112144918959502219712797599487870033275398545585705916320490317409451406245683301496315940929915299275734210986765837833157808764759641031421796445811073544608684026613683383400506835584144429527347098129618084843936123037635003024275772326807545098369983259713465967218028084541566524458177319726259719756301736997449138821926860930104576995449164920819965654496828020037213169196492914651023226896515099057022682674141619250196819455775393861663437066304397098063767191907493741856225172734796174026296719146847528326099822922983662674440959130844948772909844247891459757810031018688289323219319520942442917174554543589737751593668553298629652935910127262559885287810110523690938426915830365366354743451057778208284862601445167624867509068899069172607441962118384369422292301592069200416856535745535828612349897854513544968089174788485111975354564610562273152139730482635648124795642259720362042010268529807898352869448653307098840165924789696082046268028663000284071573948222203148436277486714028187587559578992511836057701537386068170466921361390634645274361095974234301210266384760045749111800022629598482522163898260996217502417195304909694076745625860900584289032497220447408391580861856917444656955482003681570530313001467188003091451306173514949867440029112289563819152165426768683442026074044980952632954623495127078176850750634399711977315904491415623933785032093187221454138920033723574315836691537717260080657998465929768424604864340345061584424966687544718364597698678531781963686136030838555891290326481490231993668156907915281778713590655800254152576116286097565598034244134907891719996455190629306826820006103715201021904117195678653537734136421231659730149704126849528146070913086663783852154401902280084441108763415014562963127651588836102812482177817401182045449921411302465447972297691549014027481091754730167374031814454422130088982293334643547398309795289370095667117248930520332970176289394666554812650110701269310189076394631533580380016571506231262962217033262853404069447062282924789755922903296416080468791744887272451424741721708894470174167226449756735977335742001439306321552976870800035399137822159991289268036234262024013161954802760779908866069456690843128985962567834182441233895784320478367768120043900778495909754139834858663153731312607256283868610431839405491617973288464421441472526664738279551567471140735105229726392667472721703106727814508924752239139964592531979791162853968755014378771147614928353770996125898100915902091297755900032893981535259454410793965137215130543068348070413853832435764683635525434791021593036369216120450478583736190333555228358795721236987197412732371574977922949583574366542405237855369615256029294641404586709846612778910646033385006260601299845578522825760460057367158688191032056825274038307622983683187980146347455036563698805699372074723347221057517217350520513819416251922417460359824510041924495907570387211350691808585199985553358494534199192692237808247577358880319438305771851908447650685079423345482139003529602866867317927602939298226809157525260754208990750377579061639731981072378232855395649626744044058693011743749667813058354675666946076206259469064178284793088750503116677887885853018722757237826812789936200284251233597588231153830496746136427375181743157161768062311032023116747398312383459882589424203700398999008939633492476460467125265264277265827584685454780954854965060729531778439812498279421793368934423241107659300041130456548432363383668421784368198412820175655776525127774231637194702464082389486829317811908566062756114499874385381014124490649005891814090331965653706328722689012655290234893913187646065632068857529137100100608977072295881077199064092785314255593564804333958642471251728968887840429589188801502038378015755177511039378461753224129633564510632589802235829219946920659605355993120658196467299274951639239939566163694877229374484407643926846326948714603736643174626334061683850099518474952495522455278218068447430262698717832585320184263916097401791071811331317859037184691297643771734633475736127140912815947308862112974324500052461699774658658960983138069594558783980512747019594368575582988582550217621211460955628385733824597111104166021206433682143154333053928664177249203877146569642663366420570075484580964844864867857710319318124498099762581925787719711755348634271958231074096696135354125179981147786068892586013104775478104329922301893445321798853898529236199174643903052693507874146900007565909005485797617666039380112606402774066682339128532688830883108782851570768702362509345774762128812067611068528790890414142144650744689414227248187605521536779807063439580383067551889112587239899177055971692790039473646666591388989882768410060992091690538036056546302687409446029069322319140624296107127989557052663073391702905794224072022313918285674286708633767198220114610733909426499050845496832825538278848914390256141214218414857411589101878603259599296045684443472018910340202579660286646203863162434924537585749439262556104022251008594171107303967828978170681712192314231810114544418980581003653233192665515348612353023298371675238380661767768381058618321484367476243881770925202834251877555886238052450421583399325476156884348599251231083683905720944952168742096980171341972238418398599040780456334812139128020330641794689303000677191041802871919191306140628886975938252951205020644122915135263804406250704484918010744203974227436194266558223384073142772074813928195420361177005437213491949196554233187613103541225701997556352158969879032575929303592633676528058820331596127758687236311844101933859198282183958992492674224343399449823565087007586433657900154765671780285091867820659041708605195891691751140207440548872093939952926912284656857299948245657704740727136990015189718369488742108872801064787922523050649802323985611836593138547749746988045261028578460903973901671130439241284488155018973673658589264904271198738685791499414735462957593601231847947930956248082385871362147427008942903502364210758301446227374587949696985952033773064963139049493384424499643843852114103220459228432452260232361778029077743839005827047521386119409116845051146113831463240249806898302653804651255392783612931732917953387619873955554189125525055337532755485880595970180834667361428231452635689944300920390509112588698513866049147411171175178966632382267874782824597146464091065167595395443361847529530048681181688925192394923777514403678208902701110019176336486621129032114963949368540250379924382985144063116440616474626660844563005568488157116867141398167488589119966642619626108501567524950039039102468545484844749144072125177025204031991752092754740575011786203356629040649927632224800794847958354956218112415262340564267552750920093880027136710985066326094893109445836546328315073898615194261843024545513797440174743239877063432617830260580184271158730786478529620658516547965455037619331084706376656496445169301734448781862590693033958492828127226098601934975580828478495038020974428797173961968537769052440847774153103674004749631509801874890728250822828628144494155352713960644630988301112290636591144912323153532804243685848331038023849793089180564203576349713627695102038499618493357626397216081425401206713120757354412620935922728864022342877483580429805317083597141005286225179511893861397876364872424637959127358523694617653741444405276442370625513052844382187626709399116094468993299649104165283164281910317950577151875637033360303952056913910252562002869167327571254428850650271317490744620725466979222977357555233726835282676728180376116568294515313721152938875592728668486462862176050262719859759870250349389478540991760789092746447339835171659252393526075595815423034528641363699452655611684919736729185604306853504653721258639821465841438143632065076300976072165374619875157562307193273213690298230761516599779163392030452958786884741763103170338466323305538742256011175740971971216890960310436513861825624279581317993625091849541234208527983738054731330782019087456669892866086416448395525381922832531735122472475046949632898456888636421298640662428864368754281311137582141698947258771393293302786843728857048523583098256924683161667500016557333988657023005868257292771030657354068420904771857997058356883449547687022178508164739097848414630556084373522319861732200568775241692774376569974626706375635739835516533026620860420133872170401620324355866545386139156300663944563701488112500105037485044156125181825475266093283770575288184753532028527397100159661069639692221109066118283860589099146168763477115170321490235915047689034300876659915745808458604307084751362044221479297124679806337139912934737207920510527363338529522007534269876729617200576613270456819675988973810264836200308102320814928863787916574717869896649063705114695844258784250980012219346076378002882692098345351261926133901644107857231075725852388782437566591294911317039419346437048878206483611037644531577699752312391960191421435417843095221591085707176841823208897983729307404426843880482947058515383208104975977625607505679422936098367629124362586751100454348406895414386928261465217986512137491266996119899076777547038048335684265720350754447361350059836809554620215977724712575867996783316321643786627640585930115322835510340507810560986619690304282984438860837346980762832032651817557370517212408492491978414511673037025110394195461397103506913774651820882912295123505385024617505339953701554352978024697772991433831050661862460557891003948959276805519274823527423578092419889047659836978424083894981259938193713541112974974433387744117283402402395228052288284234681095060142294537314705726936340682627723437696073353196966482527160019180105196118999476077851489317443439294032861652645818376503876345604813328522943965987738040592325899194773125874107491177711915202844865927346464293180919488455076898924767991782331150689561662829767329405024834298287741384039979948559532352273969860715802764539738489931167939623042943626692863598636828296551935831271135821067105910824024840604774373111665250454931114397455987542558221586013312964576777085753442991527879841973419396010594096233245694783865448417569586998128002971112400174817390826253437730905546575322984521707112975328649844906813398771307540425142200164983075344026844057437211318315047290296731099745439258297727930422017629635684936312914833824796963812164318286176372698498184546761220300695061522454563217461512132038687328088046460680680911527167654506127012728919113583071537448131741989270368363876792660281163859117814714861932896092141276889377723143528747688348897450321332783181309578364819831583798710550331255010017656908878938576738982939170587174420490432884295809644172370851018743056314391176742844913784256070467814638159699897083036299608985399679720894622277718433750799519663920481458111852221383560447825593469896475133002272907452018320201433243776893055716635803080767944841750519617648011021491196828575116934722302393341941801513601211263910240444928681981603531626220279681740382043094376791573076967418668698092914609673437903261559787186618588461145631680776637292956539594208222330326324357198028833982292405724750717574543894442778325579634432520873365897370105797639763370659703154808293599754027021995457640712798845513677359567960487359389238117228601452220970003121990814245066086802559996017358354396699422407051554717404151796632954652657375085476095419968225277760459804258211997779767002599623578667197883591076126285056457288027324271533596638872834154563938274611821823437358476802732191445430617798608126803073906394986227433883272715536391420726916208114720047740447702646773762246001503690211451507581441201763486517231063730384666944061199875621261530069583011003914922011782138724558481857055182942248979949145908087909567557207620190681995060625642152473786445959619122199874148869901336404363841356227741551209130467198468808583324503986112932759191049510237482535173532647010198521557667459838556404492470023001778962128831822264612654767226039058138434187922119770922328868981487262937468897810701176161521875800573732624838513727432431419023033981871302917248039460127495130634748816561327145191671114840630689524236286742970547717601040408959894230377950050067490191876997025112636028974973847850794064808639544265669960982395951067000360164414660419403969990856240066416178886585558583718609208310943803300798561398260268756309037068962216552633182567289491500201053876731574535883130662718033474242326288173987894453535830887110310457556941657798606763580533495571037410087193132882437335609077202399683733319129260427696279427762886306669221191076059409165524683771272714476421967986033152638265979932376127781048341902672993925747202389273889538265690377478482051211687752848308512818854327063771595384119870593267738088003231479184109841692468226333646920575068569323835501910913088248935175957371080987072440681440121151767362035065454339646407856248130090677870001374970840616591443241147041946770450530445076211072017658692847666876765953251445561493793912792934370080721346549407220059088958532494842402057028554165571141829050083683045663108758097151420539093233411434341408380168098843339375737859738441812156803831564278821496676356358741224133347321000445655187694601130956122421129283498500317434530528116662987462352276938872234649626560079233774785649298742651963667260061209039666830926877249666184443935224339717766174994791156190347727784121477471478039226377559772631216534626653740661703737291164024253459153964466214065693120582283897010834845496291692510981183479715810307040439455696939805943399845613420162121668913262995492635487426617751327496125543659659357776635761071236010749144390707631035461012132702837578164237262256251869318268242272281160715276420457623947112401419934380230149194275468213523440520631220933433188797404354540879413356861291593203961178041180384150424778157292862705496413559631721673117642793164882351344573563377571544510092909990323006639763730517613654354375206992410675723831922341150195866513681626281519967701360189238400009182973998413066745879321007864089863965382284185628492790877302475049937356017147640742073978362313221831464440528716577313829192029548499920174635507809220347888732177127028824147289961287168085842384753033382263205820231127121568477700155298755069984434148627394876839472400750486728870906133723330334845875893365596760314350098369884781492077366012993202632999740113734602455059461636243394920714604137660361672128327436500236701780300095631589000939510648519401703621623909325463994118610909333243900817008369675024562476782409225728538316902946877117095694810960836694186576919787986268508966965359662744348431025664194885551717639035584039371493168874058590225941033670472217377716905130665557805218669404097092872991190638990594021838441254591835226333096345808636611956434788320308204906131222492492503175598797273593424742849987171482233556683252756132447250631516011397256709948137270807150334607025171430977504345509817559074827664679233600852881762493458994148893171414969274670535077510616468294712609340122569985595843316305436005090088016860840265254437040058422437160744272560255989190654953768149613188795963084353018096025007772378964024857474567456024217936856349991031190723880344101540010172224060594303304972823980225899442359706200469858683042693759048509554780672708217987975410867370853798248046640305873860676394179350246951344734640151718471773416801903853103422163647969290766754968998587928721092881533156839514158308338727222065067594257936967006891616639924729201760244814817759171186718890403348232175052790683361602310531508647900203613972211342612198577037403789006369169957736524437511813874347790541674270241189747041067768575163685810004527182230383082441017756239246352063084740679234460815313622021479728809330722129189366453975933625640457047530623106697758590468889756904076679435873858053524683699037109914026817487574039433000035386978659958608695670093976504200020110084230986733226645478075812281526838444923929939062295720326243292861007306980267529858509369097318449827925391069359606674732570657023042843637358515191660417770440593003408842780849372716070143324198787409510931510850342364613846092357490082446936778279152431309900710380642349739313128311184305348174641354772039247679305752768869851446152022919618241276309951810180299363970430138269891885693362323702300830932835672374913553858366302334876245150138056948019479410239298066101164745386755221969593312999546825318164317170785455795965182342747796477223750360866302163785584863177569958046096168280372720198210538177922134166780178828141713894295287770135690329629933391681717654201158847523915916933793785090831759669057772590890594234541333496086549452214009960608941599770155377040807866387477254471679976023146277102929770284472373097964717868460939792978669561278581989721750371713163445241521624862285641570875004568369897391469679528834032753724165865689668917658674118026237711611825409437538401530822494577934404280033211828747156084060973596591800096044909846091655541569233482055689887975541951595337257879587527883381102513640002843337492685652265869029607362015946113422474101969164751289018453611762180002952926573076460340205554807404913193770388484726281757375375680241544231845480326969337435158169478435345340963755479397889119189611169978644786858621209574695939080588081312105170837059930616924538176731629844169046655825075439547542418536830843175108030865051617934636680401031288370190081246413941959659509212163975557176729157893211118936946303259650591939588651441076990416402889100828459296755600245676202708146214408422249629151951057824128383119474043992425497230607521553950112339444171503907943948579967210562578293970500592842045469466804031791468344353538659582886134923808588915012444910684269709008333624874518628003268467034522348353068704859058565399383768551885239907779099786917307637230136901665946171360398668361985653562210552423140901874095435001536147586283913410182512169068934995680404437159213202625317094427563218999484758834912185043320190275997681798997212941661186139377231701800141225062538000704436476720810735507751544312603970274813210618782719547692202521517889603209271326942378164398654226537755884454181752219925938189517765104231694703605949071288836166972644006085287227559623074055575142727993313296815253158419097683958443058779546404314587991446288976402656520010362525260332539070565119788130405720122335288740878631844579802193249257836854407356257874915810913087952294449723426602052289169615894356952825991416719188443315435478355322375886098150597673463892401727027264866121538405005438305787584039673330048065977476814862989608081189561981649921041949353772978646441299660390119783102469934933307431395734319395052214828226803634475979023699552015978340806762267921782546628279431819387547101729619906977761265035097180784498860629142525388221983875846519415483733550934232190266480359414336454780228818947107497068512935357253839389976507556830032424166545244653801424484376763633700637370483793840926876136308921838567285022993031315680418175294434503754099185757878661474070014598414340031830107336195102826645726188749900797143850743262911897300716038737399818069074013042919174442731056415936672258561133384334537829198586512599323704470245937306171696782879561528547186479874042054007936721202967699821596100792671405996129259558764596249637922546963054389983129677350232193841500412435236573504772631925827939220494537138741823972698197615962038495586619325550179253263196790918574074142223338940083716029988976337184784591980042950977353010792519838877841611928964573046852297655049179746126413749236356013311105411424351976374339971279197709796886698642041999351544125896287531691209205842649252968330151063452585105288069607800603225776357264893032876719827092633765944106231865395545794864485747222959707915412921994418620725983543035483029355768273613948841898399393388877332753501022874401422429433064200613272415956018887878372109937098016817691596201104914568882986231468049759109282993214104097988615322749891093189665343446605000932003043019360068726354561671015991232074405490747337091727973653853135179204981698180542005650559986355599343562652954130985324336302964923663634072992615845632108785845968709036301478337637893793585093759706750222649530501834709989150500074981472072529582539631157763016392825401763607184038459814382212432082852906109930724043812451724863033103360215787000339740178804892913349560957683851229923149910410071920850718396753959059622581217729886342361048221772851947244119955701224093842499608653046442483606199450584500292187909361771340637240431335956353061192040984918285438916954773926036778149866809610390558324722057931184092910923177357473429063375165939036785175472535564573636278189553533754867835671974793349066907721854065209924195063461555277213331460546323809134373531902944615036299182849805826663573569114004500061289626778179819010493093767767277142161691395718390567569941620328861627919904414366470357950077910510060375892819438448796331631330089530559843386977069913260682169168257085805848242837952139599655167811245173675817423351439848960842568535641371622555128592284211416886991854682935622683706387425990129065150394448459224680118875168171379898131870753835875398690125688142468581207795315282932500606992645756194781264261828141998477926724707726388673034868442456552952968108863378891745537973573869509453689636736995462989552097012560084525281324555498407970097621887689077263493397417174278701795018276520510384475291000192415199141253244965456829885877383995735400243321061139653508041586329865689505882181489560303767671645839276783592998632767225668078735884302686821922312632462931196455502225852324589245852366369193732513972826988001085526202019375972316634555879065126073012312828493406091239899372291618507096289366455945304247805343510425000633696873343926864683412724844542139591165096154751907409158162411950094446416624060777309943672274501348695476865296083714294192530784121213095015629773037178368217932260542094280322734885843926079356702583755452626621446415788676979294807851644275661104645711050151546172576055636453710655923069158457978291365281789027714299189202100149411195248852290132526946099873959549615298707410488402425121991348620210088124087400551928444600373084596036754714012682068222051157831357021596155819771808233205531182522803771801617775257543213663521149776878231488325098062485839018201849750029086720629178144540582381712859076915415937429095820546987755288548104540136648416643028961012636942677089047391237332805596718468328893440720569674929690912926695701550504065044232424033668800882386280737440451306170459582902901961606701265511916989189249393258224897727540980154137363110601709934576895449178446845585770587389963868791577729791462876064647004547086530642661256105213434581464717238259894848190279043188675436406714264301119216106823397246997846180451868017618474809205786183522937975035779209901410431642987482430028696657169466925146641414239764074589313419886886412116084418921440126326931754657275902660991484274407755855143962688648167252169467282912651235764092178828747831426127722148345344333041543148916375690644606381985932262831754403941877485101202568132137225265086934213774243871405192934049915120909727832489061626126620261111652152171259106031047717542168426237966874115281878220362343200668786595377153878377909539488794392006840171527054325649869169133833538290126254764885221920217557631355092458844572617811116099136822625971397535644336497238702372433131430638653937483321879501542492405502541834596512496211188710580093571578664106294869638885174992604536118017009487820295234624783682544695814213878209092757153048869120071276188928384371317337512145651866401031923607932694888566437352086657431658700271482072893707414002328537458432049913997809354727975623787030861879656607613834648630520838875153501244367655152771234678006677023501355151258975583447554976031871870980535135482857000404984535376482286723538425340601584016773481075515075323945016441522009795395157566036362482204511331155714138499663396744831494266864152180565488245482933662666002216941180893614015177528338311314320467114007616996098635715658623547125198833881197505250074333226357756760439708853857124804371571036694588147295921863831695304495828230091818648372291808117174395618452057745452116307806647653394271331547789860295561699439371652134724017086290391368293610416228570466617154885898310394386552235318304987644549807609423871996546545376213529571762841575277834309929895965046457371669323827998948550340264409090580898825478898624063869260557646908245077549465538455263595094889568918131664225301140451915045584750025450979844790072123154687913063111204373590129701897410961046995286479557271404848505823169881865164131788504689432938577371530661562277113258337041594383451480115109091543342818694310473227623224935746213246167815108186282670683662442827317103275398611261323894539516871128641754620636903542664275231935086663604116243904943921930074052284440987131020083889538210307041349641518649909786519518793584828027295359467610379596903678827287101705137575459277593961162633763468569828927876455923835213069013142300450675681234410366583029556989648787532944348922273282162116002240951881182285315063394797649546365378217029115625405932631945442304187137514590958297224742685300803460380679522765101117153600205113746008407225504802219224321241418262317382624885997124752660505210816476735626308318156143000357168003817907442781052684488482985796028484917942000107065680001257226020715299801235403146345069007967742722673155310537846229127608371494374779693423094727783333532364351066476541877667469443306613323641595630688990739077970120962947564944924912432922287548805680154366067010102837381655676951598427776107453844309757200753228144934208744652947350491849576664851125628913108693232352022686780416109580421001537161701107175652998531998636622872675152743602131814204392101956350125182225363458348993710312880149910833752721138066589982520841703954185944086341347003054629477868730370796191173784968769018437738137238170305265402040258854243479621182563470398311417604900943872982103502841663839577422129459192733693494461466460513782168096306768967793874218180353298490384360680736174146018361236109875754234955394710615400520171901059042070727848469989908981966351062645208217272910026919965218076808745139231966873896777550521568993895436145804570257869007032587620149900282826719056629774716135608582673868049185907992213641374623855675854183387529618803354719321427197935088228191944534888214898121482422496748352854514284590048033092214177871803883983652662080220552748768978558614464978545814007558887152732148800343038756906793431825944213033000414702607440218213405143637071500544276541567009033632240550316062969969892853117510860501968631407687365593063464394557347112000810298947701051169680785371064458173485005734864110290836863882792380035259320181271962040793862248032398667081274627427912481222750119134186011706183676966365256796904112103432466561514448354848572469355742495500507353386318940835970610520832969151815637852015881327054214452738714377551632362717591132142420767981248005125767060830094497949536959873639779473440079298967806174354013871244947134142798775829017611109039664146002398112930807464948097752837975875776742979152647101584164493674745299576384008227554911343311708968504895253961598352875039781919508436551768665458091300128100361172294146722722933954859249282671014183861090579223459704458589770701664657705913492315668408500219256340735651541891964130934079259637284402645885332049566694702253998413414937017901738412718001346770011331048033947432513165309889437252577930674505494532322707674804963686826825632341925213569327814216243020034154547241536065237070057929625067617196491973545091433733790968470781068475580259498999391449545708315198851453345148982453020585146748965473862071030934678249962805812199256897993295105399811653233000817832077782647812192031867701269448742563028673263852608662130533301503220099549258069022221231599713673672870029694370912231882912364144920450582250680892147112896074291163250028054112542639703340336449631362435547465143298346711787406751770956234281017376056686868650994825138241112454930276895491174808115575401948550113080724573569293435795332382780302839105589371987566093153364038813996168284833646658245777951874017176099242306890080367774023789393782642948613058002894935483555531931215698857534408411863379972115702963602916725993688363908423110873641261739006742703816120293338236831601034797991035481081034880319078110990866569007236977182572021791399590067805856335206973628468653304761938124665612304329114912275210034202256098497562512198188494897700010581859215230934819888215541656038815859682461021164247640309213435705770151027088833795353501076237895389058162607845614979924468673217050485562982982019964091645838598946054244477286607703937579452970176772282346440309968839393418936396002124063191710502636745513515704356646757234501748102194028751668057231896540306483881016398250833718559256378823020754105902694728498357780113610268690489491197024676817089110794969700510790369630304965076204435258602801237870116483956471749447675222677761870973701029920906937380745638991108409717579291561583219396001320330419054075385981186588041605371603121512511234114268546833977251433102659539045662188410844291332334836344860399693457493291174157051798768615986778335143796082019663599400303533544081220317160608209622861484170909399586732789309065640637048643104200723524826957135583201257468944725540355603310041741231421361799654960759063212148676772510602842527527102255128264899995149626977607442821531810005038360421424016935203879399266767959670245550276143678470692201202180187955319901636583803937169300301843218090546331480400980730074344968404021969663731713767473085244605135164766989803830262309536817504477820656251142464356314714027973517503334760140016027038817307715130503717197914404397209977212607547225873404121026982147012650836795722287717699893915625228025601419712843925114683357690661022073936160821770934305225217252491810212606592712128948333982522304574463744040909609093832670399259733487550334659964060895699021354520182180291140025365040165227916382802916458773241533002122224774110626693937152749328828142749553856310803693501801028572925584871759545580417494082326226689837090003098468950293444056348409441550678990609202630800014425521404930654864078866371726247366318201311153833348202494491861452959276561584062770290390328236596387720116217217980346371736763209284377597765177647304585369127458318070930161715306391143338835833167439412087873847968978533502193720948212734115201183919741349613768234312603063100078865134617565344063966504428521168429159689704347276217643859566941758356787514036195070721178385284384095949169086598145104137157785384444532800579380140590948902269021039879204752441882725689991012711385678561818011377008453288156304189152658121961697937274396949271384610532244143841730473505900685329569686019234453969311085298079508368242251883138206365517371220229604115049877221877081141790523891046943194729163479343361322435453666799126544868661292704840810412896389179387501677534252030860690320103903341583840208521301631167373951552924980871987198424607516147943442380755259223538756811240732228036775783387413162074885889253191221460244642944120740053896138036251111544972986531805988423150268377034515190312796800244509499491994251668852439136967382888708049777939195740412799863118446603025956025317961776985991391328556898600343021847542076914421759887725755692611337193897315231383767710439756152083359173370771384233443350604114776782397438382491807515234409097457846018509513224040710274135806528571994313278342213582794495471687162122120218388994512823616291306900929360848248909377855810854694915873332534324286382768637839272675617483560002494904208207067832541272645123151571653718650360195787755603424672340280577783827857698417321196355501874549201084135380390324314056419048321413114959029468938280348701976826122313415244533145794880809029078183023937191775084535551534934314403484020819422245676773194974094566358986508294856945130112855859554565366235364963811589634352671332517896414639425706286984544976168228159899646773308604652240266833371988121936110159962638930553684258483931440756637612574985656824078287061423539050723932636029007306204623010620619550675646402191568262897244527928970943460811018384388785231556036234242250628501086797002115259834876516058235265684071995544670264899069922348076888592965531131309322482534051845970914680349703898153988270658461306792230577579565756221713957045717459553474464376024584720042556647156511261913660498944462593943592347462513565958359056893268800343181823859029197961020845705721680814530657817676586371312078904328013665406657476213282724379343412946593747874544244229040324003649630369925991421918235186587642524338089672736005660784140850264009674999460705327507548745962015964528392180968188926507604158694281769575536612369053691159379414768299288770074636995098774268587588951918414783901178118417363317228227790796776506914384697452196440907647810784879346458561633715038373791164008640981142623702798238769527315359058762141428403566620420685990445390666569098483148896880195365537923725170334329557396029980111632228149749461525474337778505432032052696085409250533097535623321171486443943441422403890213597781238771341833755371833337161532941512036388066629599549884143493435607632946623609954071821745212788363420917271271455949037187051554483607069680480546900936282653648944406069205901527851683619769099048502024210773867315926952988774670290560056445162493261503818718006996913967696976119928324927567891082613639588131081157098801932694198899018295089398505700241046566340180939760709626459845644521188545238002350396983175424381137305682995927154910082016674709664118821545042566868319556570381335820920601862106213247363313082655019381431540580661648058626367827492117193163357145722884971011326253362203584970075346218999971078845729131033257000538429963082486306214515026265344302293991956549036119091681720505417775162479718954416707535761736362492131745371162424606208818341649228733210800662775097942158193487166780131271107908637124383819323946353660000443936200726019684065464648361866502829798706298142085160316619400915187090611433644913241665712676778297491924948189563804503676518952164014943447584303365203451858357992349438478963224107629721119860514709309329947478997696271462922426708810027983066904273988348904502074831153069979589415339450656463532020285615079449227904831114149280556845780832157844698592262125986283299355303323340522716355815529269956816486119135170762851582601551825541798797010235722644289563038010570280696923103965480379977725724322709997439819607742432641162185401134263368419253076054840035595834109581913892733796512631698611796032768649148450064813209496330971774157853141844592543155750310230677592938957323264023325455612243769055104613566421707215045142300548212621915163587665356472318228490194323111821834917044117112145261248820311843905139808535156459356813615143849879677777846421498211643932626126011459314373195447178056810838875480329489303414277380390390493970853237509788279910399841603239938579210159789292350473905017199203586208735541498874806034410642787019848578766591232757308244448852456451565917984712325090918706569451016150231371649442344066833116521152320221913635278278351281660763762916377000303748159466117950011860052515828200920584894820781316986992494424935839124907952740068192903544992684328203851095998074774320099939823186907435676361083704297175669569787015545031712244670886367249539684434854085534245582423882462691406436913678902916444407833315540917103779393709531421117194480170557208641715541271007973005498211465705931627191403166364453654848170782418642040057155020605234846356549862951464696299686684471080951990642648020608893180775450860003265109298704591137605880880664046540540353751270844048035420176893473398284257032445856741993494611203106072171266350164010989534726295103927155515840889996031902401797709212450144426788071901365165257943794210062869667241359050884207626053299566040849875181812639313061898731541537236038492995755696945732101464280827344275358386662487992917886672524892445424316477783785008284872948992832916316287922556636218079166919525357123397729364588585141121268590151833357054330052453563645027351148639833683091526523752403605266867226413588731479481047375105745306992643528314453344549284707663230001610519205290651987569044180272414479731009046393292574891016077323133465660315749836440747970255467159430143185313696719957874265512483441110747843242487112137686094185538733474955248386124305215775950901393662579230456201375450592483875025891216069513949541652420716301199612608753662364428804842318476659504548218839513846308190643401812046948410025582809459951773431351774441055582459798815169296581247653789235071567339895290480083933473103158805674561939077583487666354885082387796494976384917971233944690393686631714066637195283005504970643585418022722829308834377965772083716547404905223157504608485261225331114094679779073686309027818079188695080752923222820092365479220126534057664434830038181413877708444395449409159980309667971024325740680008947827404389103502756422813495146931261752411929796479542352066012688292634369102161555423747080910940792968416212450515029491400589756244524622705479455243862991967818571060604493431483854551463536157590958717744637695718344303031142665224162246596114741898753226830500684702657716816663042691654685199431345607076512367894074065470215453693672395573703380007293432300909720174346871758048018720063048371576907283169602564362314756667632765313179707791376938092670168566722550863622784696398184420101342511365762779764403714950892164568235542828098138925928172969370664739660086153569278930992321395742720960894758530437893546704572959738129892146040711102710926774468241662349433124010265584125182990855318117936112975821293020342219468648405289624917859935712149130213874396345736814626421179320897895138721885065751796991282907985555836252645788415832867021411848052981134401724114996395504603899906994141785001401537934521650236474356386051580493900793380658745195084670331706159619295845322371203919474864846623751102318605696474355688050831406539525444703306922414168959971806736992126154224331975177299064675158823089242117902038682219679108488027650571799996047063428095073875154417339151780735359371315167236816641022260527574859229127686832600646170778718846461129299930419209316654823772915862028798411234421719970313057113389613410406958563620178970590007601649933867254782513586973467816394903090091819302768239511093240935242352317803658592816265790827317971543920364972857493705695978922718614558127030854824582147412904225631040794226822784889103115271145942112422226706549813546648007781602621056912147446323056913371554010304046232293719690530592023993420514982008688516175679900419429804548793687310314147204300991305304704265064202530783392972831164940219916628888510593150199046695983362690784359365190819909354904519640355804678594987800126016404546549804710497431865961975705145877679165014847632240708446655799923326005560889103733660613998440988005692204231282625320548332093214258243284236452941710045190339151353701775542758026248817567388526639426921304106747945168400047778378736766600000923198859355034618006204376927714064946095070663753958142019378099576874502249763258454465206664499641537524605263128181115209625479778676304319501338396463398233517682049076419043573457461306947524398421300629577586994038145261098485018795136649796289845300162501302690433914204491693221454847852780727461858032751522534054869188707146382078702947563654640278496864007892740563967048120753042709846450428465975711139856022718967707502840633034203641454470243238261612381930652139988476078446723549897849272198517245010960904258875978290296568781212040313865932144882224588021377736844613763988930945907587094818175469978756991395593136653285399205050116678432569413046868708572986150591410935866884637855273075610612870385627162651128107677848707729462065979118247221042598923409050776244011103311713202225027223241095009523461175416663491457931557886458610430494261222875943093294793879213904720621181994522423111269917030675435335854778390931520114033977159855013954447286464504982991749702814910450584703099032740817926772072363327766452202059101213784209557785256938536956940778593722498263526811274833558356861577553547790367136279647959849399011167407265968682965929271329073013689242083753373031451477373472024367445317072289346869314080260718281307184957263937803450512085871203048101991937091053202273960995207870060296085972564736808583109116181300419632653084875754063616005368454616925913634993899736311061528667579136895156978580923821478121252418638541448644855900943151702882766797941242118881002102778254896367461111738018909862113830917176773424564435780033029499235026330735635216922552618636260894763018549319123808352885293163481196162751091664140555727348428766866928221014028946751681988499308478833383723067242668831422365822289735353472337536046173383170932646665711144346273596603550157596582008948662924408455155375121562047316280361208450546589367087019743832687595409740987519095245967503880092107520692149425553461460781007325659818079032335105923729985151371647176384303671850290383499309489712404034902003181981691988632432283785954763494609147924390506770198380981659122387096242988174048331066085071882334666175340215963847941078329003267088054183649015395670723414886223632666411626925582098821620480607713858032529964560663852217435471149934558938855992331754021772624673781717738053389244916753830095545441879630564329890862562666159148930501957928473913018796808636690366321549909794613050846248662796291317102896002546004902698470474535330271154067574774090705149527838217552137018054894390503231634419683569063754393333882168991402221029287218631244737153077018751632960613876768785207337479070807089234639799953503904449411141488457244867006301155051419427143956312216472527392907700144251732134474888790050415410055051775115178970959318412480693802784812601722041692316172248482897938285000151409769184186747723685583507688274311569414179739541851956607152115503452177681999699554285901883654454918457215900501078741061281044344742238599077601459305805740894435240559344734193367789343978305355453452454671385029035172498997581374252325240400051078447818661746654100087925374234230182275782070521492739582611548057276362737509375432313334308825694715030193580653014698944123523680476686291293813662281422024674600698527228316181219802945670190955509941792996769681706085765360860179205047645987595517436633149432757330411145037342259390180311846278306710309523303070402406385547101452370106034078375610295522513129732491942219594216530465244208755072690523226017494859505583435967401194842514411688424731175912282000054639502933376405230011876441259192225003346630816470094987625397244691437691237494924202340289962983528858097554440380039188260994949630728699453344341627629516512010647189878683959051469864928743070106874442692824263337481438429971936418398891530305436026490632680964478558915744615184630544684618286447448398814615716058265304056808150730863368738559432362379859623981672558531638469073627365790248505229245340272955096592041229051786141602929582888100657297874125368774520524946981524122583910796563113603948757618921945481257095590969489628141392924602841330483533095817362509975255906323977078121268483723975478695775099316847452529055797963049663783258921968434295816961268797858393633195932012453511804943879719773600805297943225642786665535107917345298356219612966558157198688389478336006413970157061189009700522806059748053539798733061455930283767412637522373781663660750124771953507686152334817867228428817466651356191423805164602642668271102543095298178220275766389104486395344536533469387050158862125827157613379129535931345645552113254280930567901424918812270934422382680996781870592968864946371954403406104743642683426578808153588035290033377074989480452187794359240802438254608905147331970910637631936363823187236531699970696940223280414033561276261909802522219433039905372809650669925751579031923792251986651680102909165302849185936067604087092364427855914787920833970739996836133449735639621697923454503932933484395710648092843680021494856894020787504867776757456703776947562030580727007796454467398490931521532289971328881401077459018989016718058485719517782676069945535304603945295335805896379044863449829934867907250362694563927548149564420706708781278081757363400008723155897350278565980563873750101585859622986661763349782799982911687297736234729801127506453433506196092803105712531190731899577286611753072137697284124535862457412426570401248862263948328147876883720849694756873350817478829973587195995565880815435380617907737093398141698122338952067945880322218257432741707398999292017954867549838059275149083641088615637339686782132365989101999779781172211771755786148809731403246555397928903787049787103218640461698037667022115336053391509104868917031884823082206749788391165206838123243961109893842499453588751086274701422416338134929091927872528732661900752509811810389630553910305416780022793634965892668146633613399638462085195283725480222424544834424823057127723006691446256853093815267066940500230515052232039504782213233309367033504483410328375321518936012399720575396712757722767625193654349133525889349275443782653338044192221784272769875077399212565941657787351962036319024737933507449478405552119874003085704417346219464472099740902350334063494643211931902656309351568274378817401535753463234524366175848526229145576162023005387087030997607609157086699920927983186527478864191189874688421552250733161804559181053195098123670061013967813355217073302381975421765854595270791026548601680340986657125817198665544890745909332213451819655820414297821815556416576567351184453027924155352234490293263994404718989847732027240645715454257276962297418879873543537615852387609647979171453877198471390635240694182493007648933569777418768723484061273345605192534000559677316364174593338821782547339394371041263826955374634854096973122959988064913354051548582389801575796644110964006717805086442842221028214767394949794438702115469551428037120539545783968155319828634054597662499348633909445415823561337362434433698937509299533155764864729424179038727418284856027521814912419767348594286647595306681124781241986561051041914716485112094431111861823354006471228937645000938484871667021224935036394290062846526635759737214987424032214170266264721107520579140761519523005676001017146218231184104046917081093500681110406515732665163758630605330646048283760187029302635155339246134179482618323479528454031857254083546597069400790698516682837707374782592242158455819283005649050534550899770722513172185648476115309375014239300230525388662596260500126861261562810776153152963269539711342092657449366079495999262543564787903324274092221540041411529530019748531601729707370415883207532216310886220596633919390034393424817282136764941565263405331254226049697531869888866331903097737057906264331268068256922646588803077437904707949998255931109857530076527822792045343245834792724483094015535162092199564602653606040242770197330249589453766653599436061375955708585528372027951692844770269020700982245912599135650387881080831259808395595319132070084381866053080851005188065677568232766427772630213112511639058043125224840659439027652220448504369749031274426190910910402914490865007791872675022052241272486791357683000145495890445668066791278169568902684559859222158328128445747924908791182546443993089533611193311154771771336419761337680399775014701625664186364005897886859590465492085675283642341307219936641235274427010576550718263203084804153060763288797662542305719157958620887243828280156259350569200701512632101392334597158868407884783753325057430255658439793584780049188113551691310405673204145976403940252868616654742877796077374588360570907118398650757761963294075672221519895181831774797656937241910083539933301957080314763892122382512389993107342888769371893143705850269001900950442328934497737678364188549878284838040083680680657601831874944991798367487539788310308339697281038510321750028702959485093768035027751791393913197302836316490127853166358296652248596192636388125721802382444039813243889768997785686596580942374345274365322048725566831580162148782841027438343164318655626361254725238354187804263992753242393389185205105649065613473837763642732427514762732014402166518783077115768242591015985300294131800573521284962316903479881647623158777525889920182309695206098278751784222697732578816379263659599802154990870838079119772114712330948363909229097810330076996835137543148182998579165327396540045064519279630976724885003898456246110249042842238097691574529593674350303877392264345009498373410138714944841288304486625858127641735318102430777223053495900297776515360871284772185783189388083690408824196995866647921540302413990168445795398029710452616252725583661669726232982480726030206652960735539477149108908735965470463227586828188415330705045748389783670462230603961530293516586821163239330844989037986951846483043148834911625653450766694072169635439708071794025357875944814367497374894905988906124002636977912106082204455392373422260350867901065577256255844736479160131535009717850209895264368185386711312612309984313329495186552197437308840435544839694701024302426431752570837770083381285478404820324736622946141271930899539203661616770591367107214953637488414281268185059406414978001747180694428371900060075875624367074900659248122669615328617816501068345851323928044626424231200053812638076084220947043586351722602138373204999943302943126769567089104096293093528591138034400077144726234838023663369945304104235653783866080996864394125639924475804473668819570301511073736491883684018591974069736417504614827782454739767508751718182631354604402529989000653114586264813724459247854987628721238359029892780629987457400524333073680298069231945535425043776966788738526919413416998349789336064076454209972311987010944073364591852250156196995275476479497577494984491423480701109157994237713423261708051686339594928654831297797234055917775939925207967302872093378213916694612186615254037306609579513909320058851419153427861339954088175297651858501699697489063079367084457614165172897570207284102648524811347676590727836549795888000442043241977321014543473820214147378259153681713224943985077437103956473620049192791976934765897169880492876974429642054682525143740546875586838799124020674411803142852505250916628139191646791945496531395374323644614983290355077927311654821424611579043202103695352856125905881030518421878080056924208340852743638298530913186961302075654494119823957944872789281625957051247871619491329931159829831640846382043397876302022041375585401658578485131494527598367855958670883601834783320194784557043619975114132987431372261250852965559946578807298452297920191795476792553329820577895015317572719492755962030685203047134783364717052607723399282779340856438614305939208152147918087086040913927725697303495151438972977482277248073365984575597862633816239925882375093989821140390007050512934997489622169434352504818126549266247592136744609726730358555205261553981274023888817251529577657707388440772514522253740121027219155967023201883371162773559461404861273041202517087801226178120607858514337128309587606877681592142184410154321698829517244359425429031387040631492635071029361513096052263037796679647794095264206433043161230393018909819169524493038547920066324870109411846721411174686150118219246467685828584269717871428836348141233645994906027719470790755326181138561274586464463230089160520412239118314748044896074496030311785426362937642887668571663621521297209755205868447246069339776512042325864247211081324485488536261445173436920988109004551921008995466511686355560532450765552382663367718735154891912426611755597020639016953498130026755396109068058034362793538850883721460054677853319067281463684593127141232080714529042756764432342750757663642657784614884133936027504081846983813234595370491616648923717214543825113502579361751754554685003432606223057550325832267556690801894282676200028604828897027936627387372194458870875260811997663939504805370106430172211788098970631399812310766413877050894645566000631213136221060953724965671887553493623373035592608575043188009357890651416323437768024291087047747614181720086744301887621056547172259038585286893424654431643663087656440744945696968072398481173710571369043337688046388768541565687516347518908467189989328937742107795408920344642122689793337584470486004165988351620856971020485630809024759263540451112308690547642398229686307778183884349629844323543750905300201717448867854399520563129075608710843543253129939457294582869415475678576815278228489489815079034918355626794139512929723299505551067960715794278700922371160127014293987984727946604138890940478361744759071947943911987753047137966097758255472054610752954181082792979434381393973677004774108757518414968850760127301210054687912543815344491538664801265347919546273129072048045929970692160756090375328162562367953952065775185505062255371432839291849446391965798963804747906203835769142843723132897044334523567319617349220271558443990777918660524971963599759909244025256763126803719477059436632296180772920694484074511230039639179547778018966685295733004312237067588748238528166480823006689941516650497282122191927598953623788819310580365225616306995579459340763989693177557278517315648103557518150449324549091752300483216610548506259608126238796977163655592674601641378787426207888824292743362363188936694055784191032005119002383019158490522456085186620065750917506245003122683496532881714694541253801113580205963901174903796776837637554041504986011093332881734687903199568985863276414581058987267304643000374522024203018003303792490270238117915329496036123567102696546829248682671417337013163260594550744218671374969313049818383677315901990812717849025685656955922459779612688122355425052180341034801003112635488013527714071078267885559703281184674278053441968419682859566052451064946625409764295713835515412452100882234424410268433217561598427720906460569758626414493671312657174719923641289733208452797102014234624915502214764132292268422715357218650476438875866634031849267824050045574894411249498510043172755675310936276176503575168201849589854521650591952248918495026060666897942109040721079007557659510998289193294260198789017942318252107485035549131296323404345748476169422406689158250345629172173933700156219408021704835522958575226058830845103664308595104262157878025652857846705186637800548136423110183568311564498946724282692795142269231955839606422945311419055876634896538311837947371016963993375761436533410178935778168303497918723411272164414856678300069109109011847284550997742522184682996918036225554034098742121893666271084870948480138719989303299231755562544618573634363116874459441115394811027347183533290557328991453913851242540569821108933640683828595880042782308141160147199699927461016801052767931553251840552170895039403460272843613049056202186250576658852905310091383112822718856681465210788602421142146616160472847911996275083730064806395970880888457678936746150671978982671222859086805344746620793577271403873770715709326224223550331837148706522461088451972411958769674473363196700864930208472701164765229543038406067722722734017580220953447351494900736518735504972234827596032954838520485072838672709539026607291365670482604557816709924119669697240099107107274640740857878847380864898075647084755146279447462677925502330108071660574915236542750215478714142729790316498032962412469431959779723272634752141489920654439081809425730986332956054266293275167540835610560535554203755956268868430451608274936151772843146027972762308920972884373607047660867803239445895721267984589378427254241897494889199843527318697060855026432334752989728825138721523251441043297511950086336476998914594569571831192773853357218106086886697808827999679243412358958222582662932863847762064880352674299029249341457276404621931172881637355271903228539050826043817560828728367329611127175662760531143293938120296902029238319602983370903111773973658708351129749847684450901539266683483011041712702629305016075886591965237370341559189910754262147874026319446888935081288966518200348339199244662925753510238185072800751362372094871413258130562178882494868549518532440662412284120884418403188764685255814756656140812730820939463493942539385132362551699140356421455882130880864894354371377397454704877478706791066286044849139899142122178521041876783503626962081403885796145313434566531230551301471366524456864603923130723954424225397834853693074953707384531784619874622551842740336613580277640000585207906532174850474503070427512852342865071951088502606209303811038794441308442998150835543615503875657240006740546521888285800514881159754064120643776748916862759502178330302296046853618841639042222227166872955612491762348112480397622894065338084762791952747703318552223360614200135119439209422641983939789478992484196890489826195391762321295088660122344355042355593115503063397476116605167479046816333496490734623806560285490940232805170519475787812178338378616080980350718355444744336193390306029123634609657463639475543439796879455920275041177087272439753707865563912478545414390151131905752248663649056756149309495658088004199608682867209262395575368328194851547679202405904348180903341541909893249246354267310922526189566563700497185671372733331859806073685272260178787030185823194576755884834759501367316246433911922070898588807545694590831129552257733144960126950968386004585920248521216956951171591526308954809625932218579558765703685397203724187233294517397232323343403613553265819486998250676430466952870898503394357472869200630648086077060173960763372391200606982919399209052304811940363819208817814381185054362600687370229088744668532694258848304635460546172301753503472050960740658553030737146637238014475753238217168506646032783111558843593951504888553341385991710511775077282730347637350001197625124968292554242893899491252161370423896240434837824485925587271805299980436399757598777211075613161244137653602877590159569252092061942595205140221945251524576489845930713978175016123276266130673479779025332457746285156452405882181659606221516671166270363788039177269912975770703554247817720793349296800785267448727858778481598662038730791697955913347288209470887479303094152283171491694930515255642083198876698820506645221912918442834815549339659403059980772331058904543436008681508952559788567815931887453384707732033396607101336708805905259045626789559481128089001643146248318815419999315923593636096121580872226294658400467087079099254975956509839936668277486630490924362772795002363678740882774239032905228450786353451584247408765773039819121739598866743015748048809668548859678011053249006477470178779144351133881767855317027680102510316596770385936407413481930740409218782013120470738447046846743390980553937089825830700112911815242800069631167472741737114941505497545739104620169630537240479495445712195548942353519751420052870942639828871293044738950207367851718390728300086815409858502435826167186620113875706780892169536938042985938144724538693343362993902016400902735088210803683502726011909664907946650745308167818635740599179971109555454266900933301781966701430081840426215838672947605176721991916166262581417005409645812920899068033078413830987226812372546699286499561467960312176949365502133784652035758416011843105868160335546325603918941125785841236870888403141789742057957882723444148454271641901560235117991511561637046044259994795732623028045609101526333311196824757273402951234970301836883738097674750549636675193465247132718674992393352970740242535167933588027008238988481754024348898301185265002316582853300796133795703900927206632713818812407954843615887437127108346041980174165877961225560866666330286042307709097516431237351257967428903769637943780777560859081080205647180817558905368074467864031117244805627687507141010962784038294963005192800478193187935280329181215109796260863418136479098377653863637022296607262851930633239803253255230529466767222170944920245344094748471085928156676714764388179273114477550788488007935536571338761179103112549856851726233612143996694506870772165338519677456878992014879074601124200603856398924532627323507012242626395399850515472206874274260938252608056910719640927762734160777427190024863774885171922956417649243052323067188964638519461615017416052198676510866294796908623293715327035563534225516876619787533709651770588472048368915624105048275345448467373972597578421991449073447103116865994809211316765626939987647192508217530948111146502262925821742795837424098015457114751080887500980511923026131947368959448741242036268013919830044010378144813009557959537428245058878280763754052943699283860148409711863331309281107593405007779436338649066414359952384657399823927348773031079519353268629409822134395183286273702460476193211053114132188505588058411288278345812248174490558447915932045962844521760573218496907720712846217038024991598343177207802832230917577239106799964593412771221351477525052928322447003270910377445479805616667699967981342047869768609328728845563383295055729155764758578561992137642718450601724050534199106686839958895556233487915843741189474323563572461783785169044741480447086107073778926940016555646407780580917155201919900824327092458136554898467763976097817962095598357364180278184461017653906746312373070760969932228877749232749061995310832895656483447015072003704386151485611403083096692113844666174405442405997496241338649051652723271234213712390033286395769334288804522043506649247375957172558509834266955443272647930994747021025193541820992983127570597189089322548653637955297788267674692987682266403684966266959290404555446478882850983714885510528405685917325836917771929982268233434006848034302863617376633256621864744290684514938053669648359783551119183310825136331724268153532630764695433693054007885476807440898853905815274016284441129092340432040204419722798702870217621506296294956575739747197155711357650277968045215955081411237477794205179822083097229054332625181050948178756322996068660585718653382718657725891215382764829689383440904929811004370311521308409486529079253155115054969746137269898111597514546807549495768321243279771670925525359959851140632280361384621996642239947000724818061152982241540239098619020168810748448354155546800507082397641306926147453432849762277973281981664336253592647557357642762976186005615530106764397941811196599344626131585813846407142529121919931935774455855695897023295490758357428512372271364197574491059610154640685703569941115951943383919625714579311821792478105642592470596201902498632483776210798807930209279517423266702858149075677901436851058441681225055297909307440023464179163362324937518289705357278100691389962914548216925051175726013110539938136597806668283533600743956421930404118487664427007652977407116073059991301213611761548704185010129015464830630870957161010348403722075660151880652823426358257354187980648624881193813279086833122280852433102070111319403445913623393194880805661563194587006094037139604794201614849693301231168932845043713282170549264832733360349605089512378096238305087143253535453873482278100081342185887339435412579533509124532643326711652477353040392698991909529373954684354307563816947732961125165969584940467169230948242508429353856146169973754158842968402193492184308672117425105045259248651938707086566398579627512273075521192066853839756877130832260060516669259704966254129243373372486207325093092374010538572750046089429440891872712244899644910705475228432103740044477851866678549475995931226374600233717210827898078320056109852173949597502745563354262625382488959098616799282566709737633919609177018304885142678455136923045932447654460870269929821863770923960929558405876984966787169300897913236253093233627983597638337288065520062042153357575908248031158480580198529831465767720636241789425296036980293314178267512767729915669553126773079993104241204114644089376080025468871534792941091909040067257098919866944995731513755417812193176334671729643135598338784667121772013074329546364007046911033099944273749027296727054965802056624369293543367599646350699042164783905765036043300210590191059931143159927141120605190593779925131181618199057304845486171554320099723796012707814810886293737496547012640504135855234627857457129314279044573373990814026359563589006599938574530906674628876280772818552401312324140882801325539526464818114243447219183347475540458024444934511261026523914415465064684331091030319315352519134036190398614078500109262925656240900280217372715429711625362141803208077708409522940406507952218753570522339387532113220384579523815338601650590360199068359071712670969129029490696913380242276073027500173546787389750681541074020346196938486755055535862143628328925628597256440372432977314915848137941914626250154435662360453705267814333454724396002803506703765986007774932170913580801110189069924315942130886013539664615382223245114465690049817259451671455972115406698734024063541243849657344369994657776337937490589170783420064377488133558767276324889623828647359053910550190471333276814859119619940923967476909998906932675044787274481808617673067357327267494001767684263660506446726315615723933822583538445145535573079890581079525679505014447569804758470373006613445328106873833452536361216837472053041913316314765250932985030809524605847874597040716751533055120126180943088646515425114217901476300320853900558653456147017878862357918205066358482421589138361221452488042632499086546673974325683923914145649454310628143652432988225195982867660959047610042806817421764645151338541999105712805055097138193331258554985714399712431199518501530619480241379260924895716447724271493369461055045038024277851479974077797770872839334196710779814798440776678132109953568128089800451323470652653467208947099414089390801042257542909588534446898423094779764115657510812170497511875214001335662857947323559987820766661349402679346598637653859274952778603100425294405241391896280089541286539652874438596543470347672969842432448410143629098374134142215045075001458258564110580650465962346019591236442453790878824941427686578900957978770153230509738032406615959462315094791922696371706706849887333118456287464961196792484795544590591889776871851304323525912811032728239929432814392684871561030383814570980186696707632662381030399917470567100877583286306507026576126515445463276975415974196375968993106980683709512526245721780602705288004690472883383233105425626295400519425074052423012049241440351584422046418407734361364023024500143260621236985367887276007859584668865505088330491386775890488108780135752041432114156002568580429872401683486268886746983241210656462001099874048496999229111262870236558443029339335851093981619215148614462120325425536115418833934111281423026369016740091903633152290739759038597444649281014082384323935796953344518395632710364123922205218733537250468654058358502641284866223912027644223318485637107190360215581719021440519973015079965745345163522923248107626733991155005118578102645987845827910361097680875865699629348864417928760748677053879568362746095202422361664800137960041307572128862529841079561821693695832931941095041977014747893378836084382500016096073165878217516681402134335960094294114140105794900181398467400462950172537314055086308226541032609233353712043532761900036745436151828018507025295115384508704395227388027961310547345356766959180366177524692301991292509041201840464860924971900393851902961241132061754088990608445741026674117673968148571293518303431553918967149352487041235050276570641909754031789813365396616705758880786052162911440029825283128397987505242528219187561847093564724990604298906419656218135582804149414247337943642365374913763971680900895943349791626695596279618046399960510104720958789917402588188514835395211153955637644932723169638841978682817823406134063471334747926260298087857949602782582833951572799452671301959338288072634527250712894334506966468565262928965909498072592374036318833163770531213540587465801873643977796220948257203344569640656760050887659028812666126559399369147339317073285588309843833193455640313338896822204966230289115569674771814014324227622436382751025566650955978330998028424569536433290225100907927861057013883956529667704153416586716255421878764879921936684125952318864584727588435080013887454722966496976671178625432968418159984925053135640398244833254918136316238173250800470049340156943133850356214277052443393640022922903474500108915247085864173138252234298645881621631010526512262058378727871601720438520211162758614328432800188824263758018890707419683224063235590600775809891594249347874691033036619860352788698953915707993195876564903890201234679506679608150511987553423055013271375633059618171216536169340604452493101114005987258304895422119868226961585756839415675873103469059016024609108513471769123438954726650850037782069993583277540814125420855814286578366562744587078678119884510049906465227423914841245768614430176915498288712136126137709078963198855682114637645664741925351271972528587823104484880834243483014855199934198258549522921330329719483157363884699005154527842349001492823972179665302887016847698604507606975528853486068706575615381486361071671388755730967373170937857311339627328588159224141568031026198275287534772022619331375457217402476109866307610343309633806380223864677641995346249670525139750362735205781301813192028884060183694862760684996804395309444270641256068734281336067229434577124564397282868420068279396842435303905051327912625292882685040353951116379089351064074493360826043825801196587267286548267844086158995843312492511160745523282997283492144431230415805377223700157031929447582861304668325988737739749502612498561157471865655679042618933544011284152738298217708637036670375502270557293046701775906567709595208437781436512817217207198824246406673376920498349246994527764744941692321576237073028006588945557457348802173458528810844801221769460858627912348132403556421935815543832834426022640175544726090723537037258212526779359246294124530096092231657105424840997651719381733725386327273337579905978795484318748463673656851240081393394522093506924878762221407377343316306471003434702840475354889403657632370324310978061055203756722393366130310633936669636510276812371303088857617321169499848154823741756851039671823964948049276797073864373716905474360711198573580940427265559708799144306808875624894725408559400082271523914088058818120717565915632682384725575659616835416220788597619666877550496516685619879152154319505417559264722826713335678151586698185511136012929604353988884193054551328457935721487974360999148002092579642980053719363958220409012367819199654052989070368326012211042079673343788423397657715337401374720645561375485005014598793583303969383897274737810096228114022927277211000611702350706912947360713016736722841735783532141150346115472886463684307875130356179324176003982747345278372379045092177161691004360942772812590429083036046465268271964953544516276627617940858315928343800343488194451112848150238374375186788005399060141435625506089031788375512097409079831372159540668419496253743049757452403378344022065453750894564781371311296191944228293337268983326944007793418646453306803908823675464922332173633375860987987089592609471163653208265876151369511071028478527007610093554272847056089984708089528189471913239862619610909239291184985820499037897601678061529672734303617413718056416567605567227786130753844046231364493200319535570775003827965691635917482820169614294496055462980144141789638327635647535069050738904804501453827722926492008161504291571335889035575570799934244302277611226493471591787014389831446469916320419216720634738462532639472867169206616969713060316501314366960860571671295157020269448588073156357724626304935805598979446163205193832697123775956524755932806262575470498121064713124364202814532644450888412750334660013625951104615785396234387796261693566829885719284587814142138644732446357929930038625828527664857542934885757561464691582626298173422578233427397418842168745692204744366126707252156501265378653838684072124282509824871476849543118961503824262737245661149338304766989087322000171843838750550813365104497523523873554295660427056941915405410895032818865663837900661896858540460955529390246099818459174053314212309381264138498495079161399961000333268970209593984444153628843346935323664265922789147141172572434333293545117904994248515009254545606950787848162062587792839070029989833427846782096168144920380970672140505745665798799321089676769841750309372938570684298105123266319933517286629046728877535142722104844912116255720066834197960924516955978955612144048907789196819179634120542027656512518118495790735123589778852078117998303478580426774943231487938082106362927409228675885279297354754938887068625788352262862484698589716966195029708924188021545121396365686199576094146525324517979374031791072591898548468888322023318480054353585675515463327930851543484392256206643934223277214517007626426001148083284210349233920329589097644464782313966586627039901033195589746448219852850496748597761172522178212102135441397983242421180756878491890960844044575200154176770678403747937977575721071098339874099895449181478814935248992897020993527020970685911259406738154088057072014989396085654031310661627497324041835624244703298929051226540996825330536796785691693604603847556976532089739896292369024554254658071306543944836332111427010175402992428397372679449953009799086850057747473763388932183510342066944644272710214361392245699857813963268848462048452573093939115685381706377527098157787181261856070230563978229610990347681711007967168113657237161776969114297227191283851159602155002156630372945752017090628518178181494348607419377050791956045584495977343640925219263277515484307376167633398957118228353051772776147003878594996810261062551576924848849204241973088283629534931604461903359002726820825368679074239015790715641969120918010306164632236720822276948586482028080132823672204097529132908108978386760484872431611479769006465155610746637713916943517905657879099010798554059206524835255612302705581553518170628953934652689263622619239452480384552193967363556785544429347473169187840456434105459614220314404984937835890511994470883284695081676813337954029290773672667267229714042299071831986351900344640951744991922134098436838311736491298327681905376995244008720952735671557392327816418372984764137524859550564270042663682448761145901818086772441618847002912548191615245541044939693779932741715643883100927812969252077456802762824993251299404402314481099141182256157430995967822776213184444194512828318938815576390923849297675104700973424346846093940959497455118114451228189681486672948185737566210828247566752126109486630904971212493700025898609457083363611921134190243134297810981324075055568299181537373468378151803366294383588285816585151990044201007664849037632891810126510534014857756184362850811857406005896769707624388227241860009743499199848169377651084923261781975700799563514512405488131081377601940867831283485776212557242404762189078949642570349050300094220493070122739758307390810849228139246645861654681591953525952534746077967820138830808341949722771657320598165854232685391011290705698543266367804535090971363576935134925534200217615880666553130323134542368611012394665821976220989212449773682820975124561477929737954659439997321681406173648411723280277154731767076660235545741271016491988292593602328630619400151639897064112434056566423999834571071052472453152853292815751674217847246933568993285943193974403317379892406578280640144885144177471123988120548159871798989918651562359734735068083154742568499592060265809613968221390797814158662561799875058348778570677674853632746872816156676577423388654927059385700247754244641758184207468883863308125600405560253406144334101462626302648445671487207926167460108128027126572592121063762384396255619802849334315774898035209669988872037667998794943829561740210145813907319199438765129547193066787230817819227918877223657226053492469053820524923503111005265696022229180528137831839712614643268602248689657567346549466186012624241169709617527861718091439665308391005518953718503306137861804393040811752666007362642981284810439071840359387229512616220189972635013828166832482011429801772597500907448943394497553252357273403676750931247038997948565539477954871566902724281049574173107927616395545787281814175123067191942497659905593137748487352226157596363809955189994255569017661642719268755813998290976800704798282461970926232863101201527802488105850101964791977479491736726446134645508783925075471159790454192185955579376208303938170353784336006681453260765817953642430154150069639337013526948115274534678377071758845324186601319415405803305581817022934548392191069417358488557972060596515237801320865099389403603656371565644335967211210947884373024845574390678836674799040103625893063468943492990253998327266912692897392450181970613740339131526747570158684361136156951595521970664977585887721042005923498216563939752515864710607529689030422572371440028415958317279571649852520204939441232187639087992234583308877218115252822914516825946570963335483873383428617991731752708720576095467920236783947629617080740749145882622812023637564647603150242325429253081139726446764884506228777187473006489129500440540188525018466236382722596533821441593298635606390822706759072867393885748553572435393969697600443354507491218944212770855335035161716311103807361078011500066886383640520651192002512932290828652607168551922927602065282607866949466920499495645461168737771040946938815596997397820816231929713713770418170184700441915829920348928011480780175767002085825718651207795281631456373230986935723157447022324855067671595139383669958787202916660413239825730482889437621024167001241631929947352596666582309468150139244678599000538718605799855306107897939887844089084223304543294011930156237123607206492472890055083045896476487058680028048284606077645280667029590251643737012838771062655198958982171182672933896865070337479677231520031865684692221388460465811037364112839992256713688239012957322177552553059278763692690796093388229642076372035492542350866722136017630602865404921874909524754233223451606576638813320471903121870053483973145428628362134830134084196721276727271489271079730231632629298283000710301576851815092883610385883363449444335044551161809666270504992690694433973800061578388682871817801741817064451247647442229073944533028439186947987420761687467313680222908753700799003874581364504926956858220462214786111341971003285265151795975774623488373380030457878486845843878517425370660408082663665773796192820273461584913314226469941005284054124382593924369343535752082036315654296868688681362929664003123312426742101850169437860660994511625680327349596302879804645320511320699157704126368475836699814078502013948834613557266925933651348092606882482434554651356962565329855150812400004646070701830015745675656214732689931590225329533612397215215966508641434949219673707628350353104362678664902194519169161454001641380927181228491305956264819657829934238722351055824717248599796454816324215775677272405098161960235399568471125871832259611443157712506652364196488199629217148873861730284148710946619023069467128435205039506090125575223491137687572518806875239228971761389555655184604342352500238119121037998899713957917349677381290335210836954435463952871936385054025927144066065474884106752002539650210186487174277763526480874153789498332083362770096344619131399520761876103224569166997360354929397213349762533436792900395540883126958730280742696456173505924942681225523977869953222882922457561630285092054026929526695525477327191110834057829829315309495313552861885572279005477890479095482716733550254018459596880530665138361490701010172378181524922683109694877825100123963250586005114954900702160636188047211303366991029986222827817697074948968098142444733871804938210204322205779459855377014878818934335730207772982067169561742596629797839605864023848893630406156863107983338735045561763120400318829021190895103577243630577326112266476598586500885300544433141805747569287867578066660439781803697917562183953514505958667167466604027078507908735527424344430669446240083563514572666132473856883102558641042287080110889675554755121998456148546394816562270545870240373379590924291439700848218075840262118695831069343304904410264370828794752211619230728535120417795029211074284724759448393487261638512004723071935342108518700387576837233849037450723150443545874119084690542102414805410490843348456040077945091887465039067472860138645486628488154507962678239463827604763511268034683177795687654484655483867002216472911560056314512474660397247280038069756602633582542805177347200718077550111823131671497588152901657567136675035645270461996417424763159100615809885182940414141185236771005129052864141632662571048335478987438985227982069485287263678961488989342937870861959032355923595955761821493783858288568589715712611209888462948773242398026422845343856696246238131180420688916656113910981001691743760413282492074817106670230203525513583698524471810681528929369367603458137762971022358982420404171708432376284687210727397156919014487694694170373918934261966066108998580036673915492424944442138119139857704292801144849823688087810706438884743331737353940197309790106832152302489447430183324816947711561580692240965723095377850362224651597043255323601264452904578052947551272018292414818973526434935570124471962025089519763225183302463403569257022685870817324565144856420466765280628332222761403608689265413125845923410933292011173734515332652356961022262772321048636801483765523229796166256674907623635643010373529469701309101016224035467003017828576135543010422668688620787169348614760617192285477648686085685948678677703868589430181947389383721737033888880197625502629392110129918010278402867694454903092050525938159140195365977650007533873719293001338397301945927754825482870803704588783507112683260621576517297308017333153170458406798918733666297192716123182341487224856267690895117680266505583392368470036722263723693583814649746007306383665259900325916711905540839978495723169924073182075848729044714073924935618233399077971994862244610674715388193862631794589663208888022613772983344559718168943983159304006076191615861454705599382261285674014845876181048492234099212256589455827715518898756332555565590943933988726444160635297881259233178591392245227986361343605273677843658660446253946380291787465816631714890735982302329032108905884731985781722103588541384346579622725711441261372051595469255717345130498936522639345185483868546605264617785493111259069392660516216413208261154680398324402890173294433536278634956730607295867969770593734566005478030576163498455130934037724206355693689675657593149259319971593881719898436215370040476175687747205958152002365358251759401298188022410447336428379320518128339642210962640318812212921029230868920929293815486223188184306637857091990506363704530453201668795400794076180744411088930078808913756972789711765911181046469937805552715289824808460204324780154908060031262430227779856912426419507807078805005429883036379303226694172347577151556573160512436547084315160624808275388366019203994584189301710235868145995871626794509565273949138758831691651513140107158005623061972188671170073473127259071123194364231088242077093605097340864804814070343529464410001974872846691994965348010047981725322923374893347503955241123302301774564542842761179524607455377216516245764851424046709156525638028207426514781371516631496605908324468578057026146451130950913737438973971038400588411139253209648047551388678141584619260920805069990439073706363562763698904768611078780253636985038774703750474946745156330647113560831776522129151457845615265825604775219911144559727115373490996735068722960076045659204603370843081770570291563216503837175714828834987034414343100129231904147895444838315083217335479347603785189404073868435108474407490091081633359518422986166853641856271616622741034388103851751582495430330297106135655047224662351541921847035671940024396895439824748559795835852681271976137287475805324851691699708233411531789903851866819984443296402903467550053962922365299029628368802470578085928225485773276294603705826534758976561809257760542115510596972788089962316209759959971847521870513636982391018288971240982868391365497583408857577486658490386487035407909686501888269802203453677998427635654967633834466322770826359767589746345030244141377919190524228841040356093491076777035323219235704044913530069925400370322819688612766420331613267590993316094366770746956692830135907702468563445781297172651062064715015779659939880817152123559008122416954704591660740212141034571833016896308516765187771213173536786720934192662394424392573382428958253803143247182260866735899790319448780736883412634383047330018663379438519149744367906370446222709350983674064598878328159123726143700740093321973848709162800325876029745147809669962871569408377626592986903921357185128126908088130169391228412609646813366719436148954788613115666321881444286281941080165110944626954887148753324070699323282796476933680354312812073310698292067923600703566360420885962833565635995548339303042621011985000426570675526052907491343398170580289158753140614153613293243951654340996386651350604290464988683821725990428522812194775308299850262991293945370094897610914412694504781679467121916240448126616706623355224398129308195294977320352361586214024092756276667400868198806638018907805366323105642617402361649344992185382095664083294563116855508531801013421845957472315499555704619659807973297540162026466338429652265450124175198489351491173854347567965092169705103300692721037633827665874393126891824007428152168323490053413424572776674164335133707830490596695768431740616277194320230414758539326880600672790951753536997822888174009490456181469196889147800989112026215263735961610567956187367450215887585913268451825943963886608833173532128097500173669840092551325710372469787164006035420942979197943125325542780249959365011154286360417458532964052432154578255510444830192279554428686326405481303061635858001057312616649383265594119799680926956830181645640539809885239177412307764963583238293103973648946321750248572402748441780819424583033855053165958608195086543848455738377978996234411401574702518593688187493273277276348149173729095344753176156201023102861232891468898984375984925729546028935656402748756532662892282430771080412473950570080074712231065091256630514916369564311343181599378862672370816293143722484464947687216509281467164029243041613492770123271994821619805723917345781504682021993657560995810807367978036253986609545209058400405696148260404391997846301918716684034074202951150777314511654250938638384632649333192755247619632089075224299105794425650777300638172139566916938725603042078384122764264334585580853153071420476259390586827690172244223517974844899452408850642287966384540132561444614452136121224491436136884228337133436875618371962327242772825875569816172222729752474833923767264074038468115372468908933238718979352781430883220992098572455742826441504267281690301349958396696619885809379129131076612529077847991925796820277181428418659907569145058533880594484763420124051991459625993099247063427310726338904056915630468087301301958886468167093194995918420819284474327875659606780678928073588753226181316454192926290329717932932590179239285758251584189791450839843422405662421197572465100206210990148689694501867486903042526375910551974321874176722063575512279602770021709800060281542428727866767312493683444091476155145697782704663397639074641191139640576088852202699899052409414471412663214471338523540908818457011860318022632660771897002979741528074206992965993188565099870227209147474687944831083919616985546885165229247930018772498398385470383317140256996324470084544601050887974186601579502941537991234972645276938271608874933181348381693562535879959692645413380965379535556607488300869347843253582553827426964780825314225167399068917107121049577550132636970272080485435560299013228899796970601925114382268406747382394252710713821790731705581238566627112406120821892756979061059525329220407707277775240558389508058797775737137176758407383571512788963270688494566421659841983191410699427676760344389511919912694680826175068814120011383954503582886679093825422720882519966639858961541840775750750614507213614039706926864332748797284440780422968655764029197953825434036215504058498295350654305066234613201977394687347436009296107769212826881243954708533030317615843039830517279050413085446151156665509965792584295088888061733332977627274562577763530824559020598286354573363678717795920899155105401350632501199636517455642284050670685466158128359831894850458695473659441045857078156639527914566365274499085772299024421563933511230543807282289346438528500381746485512746349368973037562572662586091617221899632944566289307600846133842433475857005641460796683109077486497838093383645532578695671900865213689992173323167407615676047938983795715653942409406325841504502690171331268225113717305398895908003885322054492901004237267299813934593099581129901529485145123140101062689414847175323023017185293437077141597058667225228063653851549553451500569220312065225994636886861187212885774651347531573407284686237491948262227048152777935438069637632797672628611008970778680269442928609574691428476460733389464637005031293444959232042263664860030544509621850216372203478134098341799662963242490927472842713488012017277578340228515887677996306193910175252668332468036138404805509953702853584547819072224412888602285003821370790367657196306619095965544448699781949575809687088505467114421720040449429824148129145200303585849797909752876300473854978761982127388838304526579781919738461070856329217141425969034193029762736979231631764862863194983136121594921570204726936924048782827871242372711928964934620131711910700312914763169583408284640964637086082987286751456619136084038743586982352339154712013624128956010373473239331678097761008590148819796431548814624717677348915523235748805494646951464953917173072939087720168142035232815488244938744097652114490457276508800666471919541534458065717977662515988646493827572256112412666323789365894342064854911278491594928071488192080113636045469705523434593231578348705286832054709293605283651868226699080798202020583753658016273329534584007771518338693554129640631190126692203967771792006660940670882716933757221481345356073753957874695374877077726153427265499576114222782000118414114272894233089095294455764677107779970942568210380297609030901486575760114214397432787203218061409033790798686276769858784934467647988442457774244998432140071515298273467195127289847660520113581997708474020249228442984506730134823265043365110136827203701903959539751535042827028695451532625975666777558572484397736566149439643868157460241628893772647051351556999957964383951174730329217248872528304154992640379909690724882976890460700601242924536973866020258785608527004185367196648693452954936722203026238967273639317849088814036374256115517039267525628934698122325484525126825397138814199074516855748999212804854389096201980392749473141190130684769886973623327203630013379399730722578943733951253241543233960381565558763876563597443425837458695067205613927634950963219810071166741290429571592468793931431170194268405437434498805120071960674222621039984585911503106391794506316125825509394341863850496145209602472415014214500694726111564387597152371868142979075692977212719211915949375335065338317993637109736261219337394924472082174283138847432516761883114092524394582583375510440652311122939382240738612484018306576588139519717405790548741757278869471597849883443037408933687536869746726627492820028899720396869686483692147938839942734600351041353034929356404773216751894640879925685246500633004886571937584620934974172100824441582144625517519753628356628320490106421304719373151564071839388670958515688190675515677042444461302315734539267182397493878861542209567203948166218263538861300252946103657042572734926370282246518785435448380037739520818360658448309936076585477502721681340326984771294633070667375523024811501830575688400836968546060550161623993276099510463982798327938972112836438317607223966312025994402784001338043605691683612674614044162362881044534028357061847484793932789448572272087451462530791689044786967647751518803639085738072683219964365512322599319392428383107242302737582423588310317627118272096157940064086514095200140553672280088185229989345620709375286501757833554163254932388160377213541154574499784188088950824781842793628830582193331189492643980074503032868662901036293212788160355401533998147105535193069467484050360495677484872815226704477418658182366708728419219869885618160822912393965136161419201442392215202917429819237176412250697931911021431540324244304813828048799495042218130687593638926951892968475524074194668103624972012877155119947898763963393477853488263305240783985227495145534511910635414851265353958480943894216673916634509103692390651370681593700326519666049137465590822702182135179872396253723218239162113328766153432687220504509005863678393693952497370300129563425684683386815494908528305242480456042526261388960351168280449236750579209339648174336669056200942270793406538489031508358753411805038242885260193562869344621110917252347227076063842774587731038791808266333265867896594661080912043733784108661530171566791034447107794359872156571589409184191336829702034673757162261614532634909956466531140426127159009113179225092590019188759654952375030101186415430788207106603843898073713592797491969306887818142685437127630400115121075204543246475269395990243240253993789699172881290160923730573138216242015005886935853253065579459479318285102658297429165023660175587514041558473544541859088041136033417670022768042000844770134222492857301012538176628180636938019474414837590260838146478483252767797746736152586870055359789474014321679099586214903096690805125372468457288361268901260261902129274229162980413114623741607505502702907265552424010253187990891391781464955910595795660054399284968305465589530756011939569111384398156494449944167358065399899585168074421019792476949452572025424399567203066219989919447133302009571517332372440355222223294759764415578250546242494950105650562237335107043564733865066395080715847740925815396304994229984303893374306344730065987075697551554977236671756283548904434641444321509422560216764105830677804136147569154371820210455699522206930895939267277579602027048475649025028098338040661643104690129795728254399449533440375244979038959432685260901120089695278974479242053355943390548269759195791938862547578859591592615208895662872754977981285885197119519028204163227042552921507760717128982452857504236370356119940369604074233780506239529191204658268401583241581986135190471411238460129713377482409987358195726955021630335357042701714480442405431405395897697419769433590275523978584222621062325866070093772776091199117200737124967991860301311586403933054032291626071293815868920666187675573770132981006429437350321836346338910553905739607908331891253925803057514478723161255111160859531617687799310506275708566587642441895234292124490748886464920253215017172302415187372501775154007476091384760873403676132577585928109043180395409271377002665642077829437018543561014496425333308505332063472453344987444181132153567145898141561203956467505654327640292405538402987645991590919897809331882871648354270257466887772933720090278857576219517787160747221172760306624304958273416428456382471508404354658886363384915992390497048908325618100913035481137923769409367331407647853495857007694034476888423563691309417724874812798446158331319197601820703693349681655349982474057580600489364578357147053200720683955488361428132595997268395785943960815766593677445682307710118641275813028269186675127730543631204436194724765259487038025973618879014631700354712948814800139781733735650820823081095710957764564206568705364107305020401124066112357814438533023573232998975969391033261793501971276723588760814528518554000389049946789696660377188712553104081123068231909388350622552775077317257009229889372369625047171879190295777414247395487981074473463532603698224985634146799176766345871775313727244121417940890963427261511404990032113068758782151550918401598685714865993487760975336999027585095987415203025098590325250121930201852104167085381051318890285101148091056858987884194438271435639566425062869506803587235740063482347234912579882333582317313103526048690468324296427332322200975649355667829708036685918031394097188269116640514596130670211299952730373677212034461088539613654852591082263228141776393919378683848591532671486899825541930795423649458931407212759899508139552583210733477947572283778901816804053913778031381624124666435623447572354975130913515878850152545232725059694191814247975137612447198254476800391916721505056874865535498743278967018586380950316336437149890455731751420924781126126998383944583762019036223123038399725776034307336618137225755389658069792891347569865904873249561253594736945597026378443972406222451426307531907181582306787767319704322287119346828181496091563231392976520057897231054772018306789830802754348890552205860515871517543494854116396300522349043714551126270622097018749048522338138227051900061168207508025623367771068719205705500496348172649288573368677758500926263291403912182161373280450825925564609371548534152376469651242231256780941943563545011969515663645871094760940324238114104098822561133091155979748283555998298509920606988713810308398163251800840151333281684378040634962306237145576469956817425447957914324930365510775559695776474765316463757538585632973916644975264515304047802733725447515467341627556608951505138669512029541699034927762352102506418401974377107528537033280413853166284501648990832915265958136147123809524154022945122552061497574672533877498632956771624167527015380962550895993811441832441447107605823156073291355920514308924236276466047870844767305037484970942931541770763940607614334048393184794708064229922190468868674668782017727862356945110433924320636416047070011001423087320361271156636412774617082464230035884226213149545083177744221136960496508186357963678015994563074128869118723126621946890651570286013508287435520681453917648465321612489869098538713662988566789733923227183815266583448915027339604866384087768918783597577215967704180054228069495225048582037392870691593350298352647371840765319630744188678243785069354736492169217439360807548691975939424162714217735599621921696041475406082625931651986254283795653280255656074097424989441737000300276876435962830763463486816578894654017662152003875047615145392074597623256705820365709487572661570287791801932090540591782829816112109989253632510499856146311641709123663734221881691336632342478695667673155738241000818910942715576273854675020115590344213485622746830766402121624817738230078433062862813412291555118993238488757515927538452150786675758278964083482752315122715234195359240395957778494169454628104892086502023733446329023008903485307850526989778860247417099952387258890295870553310353995229790335450759051838691014283811981321825062988717482596532918158731174870015306039135678555361104664973935788332624968464104327243490231976413067345824903146853177247157783491539295518811979224508162173505510472363270247503242447384313193248428405241059201280850520921410763857981058729504208717143007453945750741462462055095806788190405725744017092863307488080446309134347220362866690697851121715297947020101586143997589706985287438137290436701150645364077850368538518453787140144809470918685967222780152246920485656568186367495694465248131359114952374904450680354951710738787084184852271154620045555328908430061863625499712631289596540310821029939591962208137524448599598240191629224643301511921270531417362525706868468071065516429494556527219633261763834033841278351407177708151130371246559944862159934299714028660282592190521108689201328217496294619682005029947994322249947759072304299932420164687542699914452062352721488780686936240932113890585277562712286063384319265236548878148132303700475714206457991138758703440570016916757616443195207976709402018956097342807591817765776053880450106124732059174053829392194171148069124775631781278104357724230001224120954677110227935911595568181431847572941106831487356337864376615527392388169342908984783782738301604071848004620247304679969342413601182251140855801564544630388452243740165346704664614058051704318441051115216452593067030652797556095682484995331398092498799037902731452547334600340579880762496460174333964932615401787250744294281525766092310037916445278514484414377601087043042076844046276472991799950807177613554009691449959815943591191637918116231962450380397835885967190968046866764031505807488961626240500780944619187437693267091796204538158529899677410783773778166407890508816903999540307253996470702384612242982217328465528255176692401725242245113056659879236032447385661901820891543649761606111454825267014501985872865157650270185263528708994912803685453316074104005872250692078268385838067183063365945091113796999981950099744881965075418202952543115366500380685916901038632413595606622110504719772696436516166137372296110579618899947210346324021614286407183821715447312305111615398292280070462639628722474700086247730018420858299988823523331844537842753644359197655850656607334064905523580949318584959316359843423383027496793108748311081502974859571153685207143042814040908766169075657589993553024184553875105502431447170696838320745259541236634566165121652557143890952871377419123907558056303817127840192812068818392252028489728161306011335342711215013749029545077184713847960010117019889269888185851050058777165142643734036404292787344415186312811805252168384911487752962147751924919953281941910513952434591188243351606597746712126162417126718520906496205262541338425455895647759568581865458652113146192918699001074508388134170542976620624938157389234139477119489246068748987867350433973213157373936831525946244632172390272813427253071459864701753332497449618768803031762885619996743644329445328563151465774295617948664960202429052235475263790367263386929515638213674820133723137595617065196952371109259546235921946792330440827446838238316916810365960010334437619862938043998616256281948260329951104569424428844702405586958049066216640037986409344543691256332263484262014921832778957341328459455026538793352115540070416772473734064153336863487344424626670306946264184499465955828800472854070153671007499126749656633876927293896712458962343570114419829295312005003033456057344869876148614727633472180374504705707213237087263698669837159812152966758287100057448584931255846384032357915565563171208979619614682860219226823015610155017058631251826462882724971896592236424998538740299243435977392712341649166271076728411013429557539763125239477072774348011400983099648380152003463966167296977522530792803628179812729578943438697736481239706280214815829268196149345859956549458008679321626842761718119023492596226260909224907301795408915015356575815996775634839192002340769593371549208612254285715479303679442946743878078780164082003738517779408464771842030837687853747472514412341467372323483569075733948311215085754890514954264018117739375012033240371476796521348118086925442283456826935238934318921718879242045399366958940345803933955812668850674925567023923693218044532677517646425874386366722893819558776072011096817265953440027943674199791788676860307953949709250151288053690598992141180062814606332864252706532182216096734046242998435978443047696791537122637672481997630106065065374476595350470449788016140615782890985411198608141150154806029607042507647564767391604566088336102370474350340382319610305334116788770208290627038576689096700890528234703896816348484382289772203245481699320884092894917939118160606297408887677907798679294657385420665882095843691533930704398739792579652101900785198658697004739288592099534397433328752851290219927876899769656564210827350172556353934903944229473733151611298475430131569765429779785899407091309931312999902622880701108617431975069448696626131644872785991270113796537635220485399793907493400750311606500943373490892817464895393868683522612637143905630872478819344171920961844288461459938429808265643840473267120787198732691561756836208449872154163518191897961687291640941860495461551677110984276127986617718028001119504980478691886673615629059751984594830652587697478574427870712550248352490984926586777232883391360627314624276465888967444146817788985710670030794036413159235644851890470239221887645069699850178419800472163483403383406891673668858114951437908753432757392807307308996996647497628754867185435492720266302372272006650892564812968132993804899636711518667414560293206772335665135958283621233255564836820000463692578403900172155760528168701393285803872064105110690586966469593186027785820213431114273840899368492674305034463060360607252455894894366067174498739933030662882083851006597272309174010139066396394106015448674756064152580978068310353464944232820631703847560775672071485754517594758991389761746119577280813422977795010778055631603993139418945750745210159820950277272006697340892963339790417724805280236697080057456053228691496861195271136684790233257281294737992578103678962628188577456547643897153798898090590174420387330096725138450366262024698762101774789207617482504804027298123954163971787816553717063686710374802266786545022195317716321651790039745973907888555331404576650454766042794408009102635809414395211605725551903606726968190609018521068354921743946078266411914814261006749492636125697726082411703968519836931036764910002899967064040126046821183904048895956879167434008806838857616664051799066141233307535989186123317087804212291308237099364501426658948116860024008958858536881549356329280847279179422349598499319631855273585963155610795767195266752318366259956644653224883526204708828546978836190257511276685812267467013230430380217108537763615427591366363554038108175291122287540310698106243009444337198275189481027252318259005621422857602608673313315795117849222802501668347146439748773672729953651667763604731924010851314590574076480986161078627526375120796456729300629956606271077007989027876623090741640518868214908602711631106069965546177628130305794188256520935048239054973495455403205367711329329256674825382977202890264792163768221465666579219657787338687727396445224383274967357530518855219680370438894766298046388629390255026026721469167107208829556584657975093960146649980942865051914071296628094722271672034715850788322441598335793033758403249473643755190701356999413062960164968261339547882818556505297328743803015170279813178179915041161893105317167399477090191314982262232373284490842663157996410941011507379071172708173620138373154491117676483321287999243978830284414240177256502501375390023339269294945649737359738598202583197943850710176997395054499404229974203103311477261215518741006029988935683432477820991736954401693206075438514938881580533674948249356634083631406755696345628564693160075306462969760660150149267773751319616192592771516770378505463777514283567986235819579729810395827968541167342794361021339570052379841970085490386848023852826048900866156594713309499723969943027897469833606589274245236434779910544832147591060943569841857392119625508702369737389188139950261050896792911509121111863338239511335443262505225549113558905148199775664314345391420368861679364760166654226742755652910859429876157771204091405597183764161450611960227105774104828637211473986254841961112489801995179265691953199961410745039046362206643698128433177550368305054410246957783510292088873285843437481823388091802100290967544224979804504479687144289559323512246430015514172435976424700852833996361481569299218765604497029199645474017529413679914167844837651292274871156286839251458845611197928780946335840823746103242656784317175563219934687064541578372132081660831259547308335290607902312031416831495253859173769995309996979797992733164341391508972905900961319827159519110919771757593159809713925627864319832412818112591282548192829246156793379920966350523040691889795790837172332701625197451219581521498844398743661813492076396181381030473421694117321989833860560475150149891313326251615478356589902081542305654100025529789203470487410858291077184572930266200236899279901688472767295337759388721333589513326514827376767108684716054393169789389126535538438820920783785396669106297066111398856165609567998960270287292588009265494602755269587521413334470037009849431359342571541769025768423588856474734112245002311752904755402794335606934676305261137723752989622073923946395424566117685793955978724996567173343412880817694661304572508140775817461338180343968657413909038336260816378646978423801085971716239426825846824517023375606082080171681139852744767344440778991994234067286491379124213085647062053568811260411168369068634677458467362069752987476801315476903710191997724022276623110745609832257172486910981720409246421213246925908958711635077237750919294121450066564511118661770745594339925123759765976110638565031851228741497757405593934078945826736863368002099743008191399377078149646875052591560006444227977794654444791893503735627226460862292901134216589570154142347434584046178854424669217083848731996680714403640930616059479159913595660820509573390695167639060883831391516343278552084294245518771769545967854644153999365714211954217410354381520512706513069866877447430978835696129658340963641382759702051917721890428091891063640279266400310504939260508922652976262655764009510774648045172884172033796413556913760785888359183453295202980811837134877767810260014066704022026826944275659614328558214428853128721253380133615992805675848544314548248262847216358474935760504673300523269359332173865159786930885168942320061541453482930867860203502913800168284410769601647832449775904091882885884469643788406654451200280098453964900203041890474935457210312796984671173074069162577340425484417835401326334017213640630806790468823642632241608040551257761215544705574800935170077948288824061137919232816024125609771637994698524397778349647738103359404578025501783336097375309547414499500215645092464083828425119457890104074136106273888159486773962887274704754188795850473686805165487027126615287915011751603917228942626283220027501469941499926045744746589117063220087491151372650092980638713911027751768259894699730520567707202259246175555057637911315941842901025642518208665986528701942539982891451544381583331892549070161427014960635995169709861667576534730048748302382076236090116970601564252803913546081348068974612278312711030304607167463275019469978475870148413225901773314786394148141724962801062604119768848906617719453088516061089937180570761214502606796660330735597770524983891495696956575799446396413934799940293662148968068729403240823615664814710558978200130253407944155423154496064985690071234099585334987091915659539881391015573533226066858950733754867451843167009812740346838478973293129833250049237775731219275810304074055969451152290694352453150704249078656512562632575253372742098100105046059017274408677468899255337774536429390275067923362964601596038785049962114596872651174059916453650300515474801996928460943650810732395163324852106821162166077198256204583224569662836196843547733697953826079335190092242030133914745822685280791116294547755922330529385686920133298587188947791606396202590833238681269778983871265092424831150828325259921046381884241944561960281049638874129414286543539763082518139554584665567525622536930311035156819434610382954221132370350568030182337944968751829172305976608608763461800265063959416058931652634367796119392127795423422349419446365346114996810172894118785683959305673917274043330637998032757119136573949389405863598731528340564071742306470151815997548008013656413765599882777358052109293734385775038467171979942462224655533235268681392984943134769804544886597997047820153057973077268119816864978700495708529687012738649603450789556616212470872546064282972788460074065407697814237794649748449250420693144235398870508395253511309843041188873778783241583992807158712060149897572599888026672162615817016996613446025663725622372071174775235527369975879931530182918074809550714517081044822120561866156320397803193399268446018817818874137889491135010097223568294778621878492383377748086289626236311389026217675085896623801224432632745323091306377029549469208943534885803252213529132557563534316672731740506729340539324511438560185544405518699661575881458234071609114528076970810831410221776479205756612737609854724430848754506437591073554932290928809430625569944870292286963323299864898535399457789283927503191518165282947037518813342757687489641853937154893109145537752066666005076283778256041993071112366831745616446654225755764214586912329316915347148440812595588933742337657006883830681060182724537553008007564110066340678548926833952448839125373585901286769956399804762886300701802194880092165031028059275128478653800481064647475973246369818661878414904649131093130946017953082815737620704182512454672983838969400067796209458019933408944675735510725157532928852480934820122824556022280696461304399285787561088964499645943595362619224392894743814443507546097662212931814481289971228531662791019149242626023303559299162961379287560200569998214454352949977257322639105026006952339033019646729411758214143475089543538979691368441724103335506726595902491348781351110209412050981831548522391331236346418677209709829736039035627388414679258674339394336468555963359420043027549750178551068854546537638522760652739222628905661538722093836733167188787578399462870768454736608381494611278116066187956855155546716562889049203211854496358465728523103079254820462942805168746554329300696394572301465512130543060472305464367121950722556283377161680858250532095825349388249005191380645022773432894039271086127297245251414186389094061014730685377440157299316581705603899480819757568246724244069590963861601422146033686087829396886500433703136329710455551256377148255027955721080465325882386589512915687628122422156328861178093885867999254030610506260737341168143953939404656395714945440781632811140378397811667322214721286549026356126076261025066156651568994079865137428724375543443290571415871817413411961937191978547599220417018128765444901964879176884147873113349699714956845420501821191041981299063179517725035437843369878916563222731876297281947469323337680885910775881146879833189953169603262314296895620014993462850080123684567724748539991180446955464161892347863059256821409703009819891419901671942208482242104074664189507669650497454580848986328011588416112126416337928213989929942044076500369721707161481900197950049862491270918639622380572101566294333456713856696569732884092139880728345494281894630187486546857426390952258309910187453913317453653332982899421580282116751834685738734829954023069549266824839088503689602627830083231928992489116783742381210358036290117772873515160956342941120626642474050201665093966895535507690739048267862429307286203728756504786053879639816710632276591182637052945909364526961309336756954246549766018623187329194115892152317806762004196890746662391947664263560509066591777760627562392716363508455893688346001309030317573492444854002532590349637746267810955036127733209260598144761192958712925666728973194899794901019056224602821534881155634932214653832107377154922637378520103640624014009122901422534525727273395101861980375655960034973923416408948368330863864282430303075762345578351976553640244135223858191917172507673873640636938745221043374661479463980727024237352433786873186157996458613663008726446408041510868755590613126541054539140448667905458189715208631208934606111824197023645724436919807564304379888933874028757649417789012956557190428562146335947233232494566292560108810205608738000176554989000420101337896112286282768808959139297757423709985503139321740797752661086976367126263846656670647115303054533634919256383244694160142634137681068247353626466296961533086240593659837181069020343323717709280094385061323246587124591292572399037992035066264685296348075062392959068158102081916741180088876692073756417693419338774909945315864076548188914920567660851566081651390849430421306612421226018768068220849008896871653261255432162906492971705179001057464897479115117269421119378756016609619314973138534847511572523822391617954783174389836552024911118348555020510365856573732768637584895474537018752826923931994589794877230843857515072850865129383443921813281796418876812068713007984954715116114955543947342350830110497989960628420427471683420259495424978791335980336575518146181763512884621084545918571311999311888682797824666938802403548940476365341294538420603158559677393970818288997597971906329924778916349757187726994468474754730549062279358981863794218962441835574327223185184228651758488053733494311877261091254081638878034844201100249791074068554416695157680611376431807202061790999163156924170814722820861759562469955335651951134319316696199775798612643525421912367616346709220766823677111896478241867789808212548514011709073524510566921527120496119917388412249410984773573789529875522571489921613686965011834099972316507959356478284721827571155087965968207693825468364772474078025332003248926140811670980745478947134101203373587304533410773514715947580823588754902817419537266602608193947564661632839556973230589126754343123115891853550564160595079563133317146159684801954871772447013530525009420149288896786321590790238551662191380835327946166756192926515358718757269664122181395892088251023243123554572508075690301983999385424681761878427369095045589879140811279128095287329888641712394497486558091732614268478831533749748945852308032942669454201376398027770672196601040537750123290297645433732050997319754638650616121278392461301867611526209513955611312029809276422099833796561116465953738051320046633468236804027257472450949251842157109230990943810755372773592831218222937898801749724534535854360422088432862737385755695353380998150207060922102383589903944580499833190308087801218407785755593732765276170010837652250493078341364728512387096215483113308847827785103076123374948838103787109811908688704818097634979727735138990129723093825632644553953079399864976334434606147079021471593442117662568892327517142074583645111434339985889481690583854546461870752441373905409801932189356889893600434196578771119912105127928839774483543619318930004061335024762868551294879039269615185580537757802229038711492482581279005436186109322977318407388597036717349779453709719721088967716679582742291050261180825820511232583831884626918180562838619519880369268261759825279982406535529752810305808986882374640174339933377554807632942560940012543477215984460444222757588872857191133085712508038924990484010570688482166365345892692297017342577299746932486126949104314177558411013848348928370068947870089779784123046655660643064229506238274123612137046208411192583349800342151574727812492953105886020177395346836396808706234856736486447738550014746430885821208103247363136745512437287476411616125119088714170363232156695778169075901745468127358830332615746629166958067546316066187681524659304684955713138650907363738836809268129572511058103932438861279395604992108935424783594535061377506871433389827725384644049660806160072614121459252661899129523055934081590569902407976492323092973797387559302107360571074392173633969840634420147669219812838421511847085479172703243279090880631962137067265574721599537716897012489188140615445399560616410264990295055099952790579505005423647588657047642980659511834571523369912343818656767009645607017147918746598771146151119409434808029053236542787632880299779169149080601561978262602641343609100414821516148949776429183817132321411310699676086234264750093263222978989624814541272758387272431445533469953169921103209447252975255496658441339501209681134003730477856107395833934174024281614933731338679498988910967817600275646113432867601583596928828189255370131693956618110979249505042232554846433613158792786848733312173463056340727040596620129847155063566856965591082974333010995581148518245977359604621253416504078178173640362865827134664826555170397619947888580176020230079667075782671701059230289271599467320750642315727587720784787341596324278581803835467291622471106858828530252497154545896681026705277674520181575078132993722239105656046077842442999229152608189410065987649471159830997633270668169334494115793709110897539266853509797851548063663106352649314378100494845108439876270939249774006815748563871759290643877100699735028900207168346830195471230534672564171288657564313657831744174593241771599689728616757158055886358459534722287086101501223828113126571646094137078641241247963615484834219860886592585078277087200871598511848379201053316466293563213345657907048035845092843535825963629323422831704170575592588437609290481880889627027203113867245885499995636566729823293860224395552577385337597943124011381524326150905420723044577077944429156864412985864218519303054572758992233659454120812975964527702818743750708141009593735809003811050166143878856994923039042577738836104368135713617646352436648896134856541281136022597953088024332213957084058171228138557089417433796418585255952352227942405177375821842117258605591061672570954120020364057750801199675739559391553688663467781336860497373995897008547384369506686385586093608813010193813625360282984877365130982719799575690343491835320707142358713060729149965612179154018311877622113868361228514877887870711998248229943484891913222250727598284530684349520780049735211995227321600641651558884834196454771888818633408165656462234089329460853416979683461417171278044503798588316804796011877234444400057944061896325744580987181862400628990209061995134438187901828677438479383470380406110396069929033856315591383829147288844608647638274714372164036895349329796560083637147901493875451089592881725991409688480326359249180514272357371935685367402022062656540040846762076759383516918673052335210472298008488913703448292760890937159566092764774659527558450883524158146112281081066208092828064450957319252435777514843764290044199413375673181420598094736064287607734752223857445707284946495927672954410039482958869883782039806155594975069386755742634547424147767779869905426567698520839851937152563228387985427071233334493839493253531814448302934457732325988283917972898072186667816837405921375215257207316857690636864823341690776531908600389471673964184247448936535436330435026760979309988644866280552603817850142744275042170452584300755327086821307224003936772535050750750123113919831979135553368609738793146745828851961839089570812028003475364987658214551271166437735862414074308360835383477345088855306115045963286508362136240587279910605908352898979277773223374993050620687630114758860593282929601911023295287117990358952849601552758855271985478091283259488319195086584186524397224234085891251277820195089954360547392733875560114019722346664222994150347874336971424896412832870849577781181724554652132794291990316726989290435375184287328313314496580894004295656924668862548128077908212301219847658956419854838861488997860467962127420075050418136092731838846685893280402752622193721095036451595801648785277903364058923378363202456021419100488948841629204349463629216023082287502409010105462188217119233579754875065074371622828659940608165706225967670459495405185811317485011645756521269449843664727620336030177848556351995836085644554466887387740329602837009849291778755041170253622877356948548995466815751795432683239156696248361630238801725548650782870569665314145068042669368156576208862512398780215901262198527548357580253872070298768992405867807668259898871215544292285737902165980256627213883023450898798189424778081710789975461556875048909024186060044785244267212816267680377808294107202394086424556866382728970188441653362546886033921380162266301330805688565271812125626266991005199918486193082527682244319235389911350198997873511365299289947031098862701882676782552257845417157443004719950135254468684340961271888481210849098549721254685588599403365273736595908952823386849470376352946166212485584391548239683669083785901228143539410908637846516776156758416500806098024069946055273794140022558266892443256029223464011555170951754277204356835649084563744079491566219951916066749344386430561247170161812845385848454442439946790196114669722456713401164592278956518401181133325511049028881794049846553685159180129077205168529713348395015269566251139018857945884910430909219645719349886263325729007329580628146346719473867772655142428800899146154880273539980995927201372409355610200943561922795994024188789450437696805853308662878553591135421447137014518675924507007535916319918540664137439107620310675849587602682741128723216523856625881249012689504350855930295060432736559970491105135730931532336899579775247045075776700912396648839382414205319914857234388861144018891944112793650613750520178056414846534447172701314312883540010065756030830054231520336327107780178685792858916614804579955506122603851722088716126421089796707609679764156419126141753401134471424380084840762801944103000143621028186860819078106695625151667857028592989271963085834951529279686264259933547290920103597496353469855773385598957120730551286360630599241847772643950773373424152028604754384598309194941087508272347535417252541016259974077520081063335036625782051244344965784750367693776468160010914624203472891859942322246843301106889234620214142169628573297201058138816046556771745236927038434793818919153927860079364527231918125410272216445327645782671747185118690463743935977836165804004466912195317390168692439726930459889603098230112810332892876334431737903800662590554696686707539471398122677446261563282387329733897339946517486501381622255712645491563311403747949831090614809809886617446823070830534771608946487526713738079256546176015066079966992847662764685290209274383563902721736771673903831645970833150930698071440840558377878662497038123829680432986446514963286494619359794382484080202572949947200253003487062690239604637250797472582833704443293231119791664308694046218829914200341056194366106588639461728546174189329084081816868380579688671029790610272169708361336153576879054980144526270561936098539544310282104670722114613707674027639884461057745403220421879040418948496248505467592794179380646963382799628086460660678143197101941101155798567038616978956544249532590719250325050640139886876039130995557363200894828504062489798278684011536333805309612475495090529613696791978423538191430494282942134581418119740892420142627866734671862150401779029256265735476770839966532134127608780013155980996607495248030650611543323907392863784829071710387678372143710756614506204755091301807416652147626575011565157314235988356588538073054861833096675386305935962796793060869883060389759273471256922851133657068519029687520686130632070403082401503540981322610426317993716529808754420394398128775694773823881898801464993831277066669702942031423077567940056142174372426167161647469230129041458682308212910490615555992136721124685174838361778253058423007958857689573964626807159345410229341749568968977613586019556084846556376136683918047095724851598367469837867184551733222108100266654863905322668938802136105550283315212004630099801862199675845597169532821665439108280059168269609350839253692740564586841148710711854279846753183935508343376647463099547857245671306940039028428063946764914080611373696532925352395355077664841482380794762065262870713233184094439021391423232172583086612830363481523136270448609543733856439693674851720058322237297255688079894792838865530141119266263759377676866446477216774401762951915326279986403591319306495365703489716955189822332927989690260514361418883772322517344934944625080199160152582276996224179852781462452373852719675893558792760268108556551321414464702754349037480166245253928394795993830087228063922038057438456430319252722705988761397120911620284126598821840656652142064888913840411254037338829873703031974775954435833883947938240626598589986596098259168411279774141529821750779497886118923920159580745953241194478333067412292181719872425869995032049324188134135823982312312645439739594650761198919814235021121194304160871330147404313606029683543567969443449322352056250031585279639696165555395421772488006942289635270076236104523995020225548986719803920119889517206260444725575359052072725135919627402367536351625988109169724114167435713302319029859476115572319209893762393393618874886139333694854800160384782221726594976173278713827948678198682794947835219931614897412889275512819263447519455508891063701599582796452946258992151387059252895627118381133355915187590498633364410053612629836977312575818575090445786906514549639093686225527257716016144578106139623718529518518114878346183083907043826981159946283520329470507536987362305895814676701632529967148349831862415611559420531176449684334779418010364765641338468163389694195945590801213733092657643907996314611881541527610156654221751877003108447084639075458440296854162963860867365054918132945673159203562855130755328128615320259004531264486886466541330289155496104587607180792771655243028384347836764143824971256991291044230175146059702740746748254507307085755829574630283809504680555005178183916859229333380539815789780981841737296141524755834850124639695189283573671707501037856933565613364701632293901593910546443195995873042508144318787513400769394019962921476101599374010704290750023484365153950957632083797460612788471725794692853306981715426955167541770331925478565131443471356557223910397776808962215252658060665478588610733739149279892688301175325885986190128961760519503175562934010285430341614391123218203180183899157769438048755468594710414339195943611436946125802906829106472215672566230827548384900860594805145958306272891497567739300361759377241661894876737909447150716034538812424866541058223674357019395696877469923233569798187009719349196287160151054710178381890239907856838904633615232878298107335533639427226397983251368057022634829151907095737164924716093643514634341654634697059416209944126781122045429223970099514384943372006002412387283011168117860622565404572421175189039768768298012878895566538623668271462619141508498914473454481913325336319325879178179202979135248892944645994629820842943650320185240667498520359903188218764445305853998332910490338442197500425764082150103690523239788102085498082548018835287322920489428682601903947744140783969058976743362563098323108523003892884389509871830693292982777855478244144610034873458360016938061702418632686724507369736425652637239759351525746649559477653286965571107447366250402388838201704012524267409470771490523673239428108424287668924017922364300476983506435798133551257372471358056258808320665935513750619591182683933549582190684232943322323786635243438815193954470739088284847692036913391289805685372794696102192387871485705867911728859514939756957587090010301202905632319975806088826518057796422019096119450447382846629467545769449357729059158381166088259251155668011945271431910172247380682535639672547164015127648109346904178831090016558686295059970587537360607381258043332689932075193844064867626891816693962334863505817503326489862325908769842450582497388461704897327647255289498757553455675548005342086686015203355240099654022464594430092020847550982165577227669314400718122190989316158337477009018178622250291465812790884406263948649420693937097072602797946989417747270407709977572008810802928264734840433977469994815625515493322162260544401116546642779829190099817849323033130893638301309314139430510559432394464716904393495469494692937483995349774520370778643790213664081920898830472661756522624554226169995246365541131323606059939460240252101856726409541305332106168671609486752870845479203592082381051526384910807418141859405366138069600858790674132683062848887629259297468704777237556276366817680833895476195908802572154343880909223443901090728107354865449162026625105790236545216502870737306559187928506645498051007052183510687916076169235366917563031946295830116555080923620067108335540851750596383516955296717944209146047074941074836427150371682579610206128907973984186278080856733696030450744675273793321647279589305627759343229722589317767054801957633717302403195544058550333051704506794209853619008717979579834260589557278222898738066095776107649640036595128339214087191037388687025668501034935686480595454205247169537386533738813467093713684781417294674765854927871291408322809755572812272202110872393913038728678415233456103237570541222694828568747142764525576288414234582040124128279362443378748776771677533859940935732768525953976293740125067728901191749084958242095960023257893590356279431335365711258414661077037645292809003226161890030278964141504404363203920538366051339086929392451864084632283679431182895190118981489515827504034529405714037174560017896601060975772722785892184730316481830942352948772312136924383796951769856123246687407641648243465946410960020140240383008004346309263230487948624348117008267546273560773504898640394069688048665689587405336883264413107209046516642366372938385079539644224222580991072356458467354269425218550555674026257291486463531563241168623899123721378211313446115803042950865174266871114204081236263414226877139898480051734423936290505590562923110454572463024934842280341125912059998792482906344153679138168525537430041296054752149450396411679204923649185080393338553480963494565779708287919037814855715364459228529852348707738776583351824651770160292340452919636512906445583447223610244569564541973361932630734823198451704966191273409769157701437083814459113451898116631533629037069279658170056518557898044565022043111920618892432990881987315816972715628871668809497582975525794440384152945213863689613179018489953856688784547208579654452807723547888978653187012678952521790799733464984084158155713918691702046875676797325817884052733919794339068389595319276460887242326072057755399672597084488035070799565798251263159479894764935127435562640641560568775731191964069719165029366385709430873260325101165040935341676659620585725211112242366864776683500418729456531058772439823063236545916508864596507821641763118159921004870464064529059398119805615465621559981566794551253706040045560807584104796277243632165073488571048444936028808204531800464884330375700212281287028122804973651191485221785999892944025924076194620294782985079179192994168101830432588826790974520395210249040193911759805483424981672214867045386817975680718780826304914445147973748332011076439065615730223584883128560991512607108572241971131976921286867558139023329624058408593975279794820912900772752749632651433088367171530125733209450313575498379920953678984908582844454393138846374193151188101220443200974014558002322605644935471273555304986363497224519350707787101094643561270914205206828204528736016406200209185764619124739007011474663690496756723697503843580631839122891161076353289908921458045026184813139782031141373098352534539372360249295718158947481413403783186771853660253451116518564295319434180017022267226548685729262508859861512001066511646490665187916736228015653189247842347334414427938914631529278462504313696112659921101241097979508740102285258987621588146116957252587344606256167116811970060663925291756406703489052188275983009590237268698098151437560459681996468790367392411569756654139147001195186517431740375661737819945941454721376910606647105312485663099579101416691798327887415747505354617515744129155834497141221674634740639151762116067182556587891598360065085499320219993809556952961811627196746958252944111128008473166506860319720750290590372361450069824710367104751844554097039764694073920389831412791654940531092001309143637179582210215699099328608439112101145841682299685553233867582234582313162024007201465098078900377324834483879343305399782007303427380362044351962628117998050979473981963511286309546682345288746102514804826785194432604616528629539298500360774424593351018144526950935751070003173415469827430824574483773900923793378591889389388664645252167748428569464439536898654504004301116130471928319933620076320879717523263115962997699411377762677505119479153968208452845957149613414905712715593041132460951325973042255118093130986783653963666529371048497663173001272513154343260379088153197322622109430055835034526426040530756705951842699525976577288333002603617386456869347709618051023191200391878761199148813510505453870688978814713069771190807985637605761691325449191567628768747430523354758113849001193133734926872052160594594115721466949103010447473763738770000880305685142418060871562840936627346257224233044920736682595369946996579558313445252443700165924875972964090905392246586069216476608026244075047538516533031313273173074141437910685198155540410946760274762194628806101777599024446623221156750319440454941007277694388448521015077365748099158730261200448168077492122005655897460778007624892890966194113105489440165672807885763408656922458797167328818903942271109453260069776710100926036629301503357992375050772423071027434094390825888253843280748161524098255082814636206055307321642374150200124783425691631684401061028848157718344691523915820602012805179763955960006437324874869252318867671306031663064632219091052950545742446441447034034940255059946936631519923010759277341962258161782046490649634649830415166076814139733941375068818033653808108925081490679391258006925813314021750184446505228734160077676157239952372724104840553396288377185310329399443018763934328386690196019826365087996855143315048166213409513375207598565260449445610487854452095091116415833018475210196030436583160551994582501393691017565278931272483481680026997728236818000583991938429403473870387202986603607164344361217532135819241899046253957564957222922461823589988067681405989380321735363458368221523017586407704587093453859685972714324881742898343357710219210267186846039800334155827562797160176974736978269490048626965194108745005364893472149397704996941592852921730565008818975311856339775654386094602506602176742329589308007165881967170424447656675917145535987247557143438714717960807127588449738701788526909030066930033832164050122181899535932571405882070715215977311789913263100207742522881476782822938379092629697075737488760678911249377914005014655983473566850378156537337232075894886034184259687169919754751022535502067684511077043462707333446420221344543735338791003829926510338994279434160805732475557901593344693849328302003441383630157451785913354865496746901438780780326873593329114662848782181009694942697270773462957626453482985344106084399113733203362274662675035739563607768431491798740461428490179025943923438435999812826502625371521319539873271090895531805497757076245450540226874254131811297136018965025532859361822998856378638445869608775332785770795775747042949648941194598159388003819044272136823953689589358192854398336911960364371275576470192294331384038966930074823065160363265671248745955127165362290292196634695083690023408213167338067864080948182864944811662251797964419104646372699658706277676456828003915200828678511736392423925894669466372618974071770835340819930316098452941340961765383921272517611320851029177376777378382918637084018671509750652441097066758548234095992906111236544065733567758743080581118330727768131948862346843959433855519539552828636269699164514852336661831491708800445340133779570506779672674822364261731701660009318509655081354927380472575048171016954877135499930202496274838666729065688006062635425952214754064005671899934681979690441692593175500131285600618519326169896133891935604912171936615327721368802641653087090528265952891555857426950281711450724155623410859465770187817069660932286307511723726786548476136477487457174258391112762599523658915328832459570243997685860875471888534114374125466784312701796710783216490825127147411645657909188672953347540374397611848834873123267044535274092919332356549856446043777933626049912706428723050578953099215478936753065728290627996829159484369496606035863562912315108702014406017179725911880263736558666046474964400646785497153115876496001226993632655528338777064178729216529697541492140159527147291700576734812850579686023588549074287339810586703771386046699311156898110228587011586754959672588659765280819906790075861607293397483916694372119771232172808796522139369745712268234081449627280446227497078241431190235538962689613039411901416050396976879281483536732656267824602413165509595972605043393793238917837890207661314206631584743558940624260737927946364618378001558630650803929698524468536990233636151162231292099114388803559280147070959301880083038073325458509571328386619609969712915509519434108229596450393029789288566105456649132179938469577786188938818252891604490607829835375360340323868504397265474001328664277266959031102676537884472070368459547559819475780316992095729073793482589691110757917418363373606611596785796491558656135321141704016578924936592625163351617479394485329054413295532971299214868452738222806903330827225126682381751915174044618406175852095791747328159908409545405386418420129464195992309815663615372062988147822923282415566846587961585620127908033830706585149012493758782290955775458839179381201891050627120133394591872391739905457734310834167825247492847480118305755922688730610276638241383637780599650211304988865005629286394064156438525925049818675719722627875764847371273008568143941510595865165764745351596933363463220590597755598685872956299655623067652361306251341220784221940413404302144111231844616279450675616913985038713141237162911909103401429683768457530732459655029611426499556809366136621217799917084601179319636270039432997430018267662118712577004337108856413558123611133442291439759366697814543600310973581123611039911526940530404402789374202632732154153857785446899286334450996550838992974339272949603698507507366257092962660634669230024071723942147348352737779641432612671093561367410499051824306225262278067904015674358866979260905299596190421568298876915295496110927033250905758246995296830332761636257194823079047207034575777425218619886767644754836616395642790549839853352764122325384417432160435093833822293920214345821923226650042100587185311436164742704268769488925267966132989436105438036334664811599563635352988124452695667751445059729328166189062996622803483363699052115649321924986712189818236056667004540051421914769621357367825815624465080656003217216251350838488637472667113500533632456573490144366851994867475279582220203375537719454140058870153089028951473835143984593880789670954562505187550208922485217787860003009906703630029700769891500145320088841647388264727835719386722859893097473332273458566317248489558563794237414004342623821173499471843929596085969026036557468281859217872066480218071929970096891877359159460220717470677586844916780689119910689588050796989369909868301682381077418992772661836474095531101299527652124698962834360495723594639371280209431490164276290236852898924783838139576501619141471970808969820338611306103776270715709658625962455279005263005474579978450468942342478502624550455926639379209117724361266772365204871321235935857762954322946094695628444973877892353279528161179110890088204268123475131579949587917642723640157980918768359178409198330715555047925462458932099423388602320241785697503769039948867813450547667361659573199538486321324691255229962987260589381142355698680573515984929664219066251757878810679673437897214229685555464031449367130123625761710195295785740280703262478390364107256087789994895625401553582826005454264432869690432490351774743738827976391440657846343473674248350335576478498030559171586378363683928039859178429400006411020117143553521701065285916172389260098993206020053837390638351044033550433551030615514119315368309060670617134970849942392675384012257976477475785331562434980431790502560867296464610094375207653584981027032056353756092612901250604518664061207757886584556074854260510142153630185424182707264041213224761937297599233880307614051906412063055210234318055730396984518438704188022468315903082491077085063024627312135860611968802256923985690682032235623673893153972672415006184589335227987468784005584399970583122616713993050139269214350378141255942420411621355611867554854764698736998751973407611759925893665820429654962038262488167147569044874905569703135548938946826253252587657500820306969599512900787733528610362524651833397849177119576014943613936459160646248872783504282049853230604723032377062990257266327506770885902605192601832269462455275116563430422681047226617420374596572553783776888271728386358630025168498351583416048924744211622355015480775245395326912413660640191267723774092393811001279117025329441415231038285576218535542155134009040988362713530219709103186093771211782449292092211528921866096673564705999137396437918710767851234644037161158567330592924992783558791682632206539473729699934583091758811319424251531012029644913728024313411066682947704233370465951469274151984333671272554247506301881527411655705491579750347625480002618946624936734397783706996273238325941793026545956105302655964398384225561434726012948117814466068060218139545937499323004718956967287023754927075139194411141361237767547162474226437335418402540139772504495573439034014597438336180780412326742378682275123992029364543612284436532305308575476886099951197464412940496725795383718662741871534601670519680232023572211178781924437467620579587339454678903848374956621436882173209119744591304096564691969749700265034034398733940907469608349609447544560452601239917172722259972839663288985942172199657468411057953809743564188603117404881756958481747317505751010193141095415390504543858059230962840568813573688813382796651991538915766125154237582714556988131580321321704870851106146320358710837426878558201482147312807359922170096327998448524661852855415359259332951264740247563512568138817766375023395385647720418656929069577483073451915551395431678089708682056245582714569712056506814584457035030584709358427078079218099953861434484498352583554004436383554951307455958238753167007514704908899419674785287570237139490727683571891130980092568369341391230899732631003101164050542459488308874635337883736112505715951100715061181831759814163981541858010657752627278397622427206992990964462775930549248488149803792695363614760095312750773223046424138457327220803383105188030379191556037496440815221279081538646649531713912264854159818007484422441524388147656756556982334852962925132959079865595154663145119431524037015521804743384477228059453376600454609949431293042088745190798634083538969762567698644699581108818809940502079081380365272675332726062693739057761818695635628365882198549007442438734298001227086853553942415480122842671823260615900920326393131467175731038096907892542974913024975521110801370433522942865636409795640646449080961712519146573887129107107562578524482753856662564923535616066347023224909554223887679311511316029591357183834377184491457296463277864989366309336319745767282506316808345470925275366481470684961987791599823036814452178489187328998625433226544843279001632702778270724945874127552396909680960185893323720114246538806579328553341283983105709488396713421318591310796669010474075932699754139814076154581782951376375375304482761120323488507007336684482259317538497481737682176403129446365723847348179025647782660761846540656509366286401269873656021790965366277313220269850449058743621788451915122395338736524040504324337926079895243216606489360266500992515552906592890468596747086020088135416512231544218954388994911921196823534629292054156807275382834439150795762057474936013483877508825656921120110336727898514057445993692806255363444611194687266628105318402737239892216751234867829892055494585629914415033912008052728399082302541200641839436606341022603225303593867155946854660477368732353689347537850517897032406883162349262008889241008566692104549947171526881489746899527459377283875167207923525440952101427092398627802778352937722141068103323546489849836133556727610038554394072614010086242164606342136542497665855652770961080800328316712260192961022590478628828840382034842920821292185636600635979475322752860116100967574522643739442204222212346310871230422328901466432598136571880170993164066669615746752986088886440009931165779765591300661964971021882126428171002362514413463454878748487246641254959245969568878100036409323768105781401014318577366951383166242448402935509614615410847824922111367577186803149803484412479308943780135500365175960105792067999351445660905634117498884012905014920507174576090063780861113155749396940511316283277688460209481134678795275683669847109561854041930779727146129011848361368728876278614105071676840412294116018447155807847426868612921892938528426663676929772412957057455935054876902236268571094667656364344636476435596214252273326328924791565819691922946334525586228634892361658666993713824131208159679131160788676289878063530676544554709830648776169256768247443266185116824958099304578264915193592376711200996728022121704136091599402771103151705796760822489919426963425617850732279537930757806385176275766250970716740119591782704357994707244406032131898577600036923471026489755266415681377811530621377781956823988184782260262868788478737567921183274367740674621282929721769305293464009132943774008910211155270586161286506543574701241042869364544356448160436166992903917010026261510612614543828284087457205511305187679388395954162630840160533130654328044749250706945391252311739477400531056395353596567883969073227889607004546613797493810916788445123365294846011520741574231992225093661176408405955054263434540672182169046347471995902818149985065684648829910787099166793902567573196434581983630349794660188010730705428264454808866544216493320879987966968467381459049121179381553874736822966352588990587561555138057045591021939684948559776794790763314654656970060198255298169629414246736459531927272117229559913746542032597698846977922312383449772137446543829017022797314971850232254060594333760284044181549067217415009518628629527686649603783848856520078540452706032381260740878858035849520889281258454670381577825436381437879958164229555894291503674041472888893376469658329283457484429404294473753113028894791684439220791648989719429565526625453632652019311117284299311275141661691477255334669923754371617566841003110453722551044508845123722717988027082524818097011844519211883392464708830749111528877893281561296298223911388684421431803581042643879649496326977148933099324244116410783419675209112347927744960772183558491998604324202200303822274134180277105222500421427445445792054230004102725392462977079068786850032715181499258467364003784521130750720951048372265800273923565419106530341112699373601338376316604665967804522059421658999940960862949524556117098726313202271267459662939868592830168915376920415489022132540930765120157853974216740886709933403131024190190197822166897283440383606288214798218904746969375344225955722474028168273009494492681261448963914242190396510724691304914472786863948739017244665359503512327155363889741553236953597736925566566679663860647876585194182949528990023432094756305904941849309388806214267929758344334189415899522227164484343521357092329130301738446306678568128823165013951782763807734772730860431070009711797877144112574081797920465522166142387251993117875854340554503776354053977006964454865849789789686161565231797423080072997220075503730299630631344309208800622280412622983380181424961739928139807895848689852806361724353390578488741164405784465740224048919674019394484522851272898906589271794878258987075669850195746055181009829314227093271299444323751049467906014365277897269041738530393025754141284074744191658988936196218889076873358796278592315235346390444087286332250242040486098416893609990697719561961283555412746206515430072001026625338859547087350709466545223595391131337617433945008730103915895475490781301235581094738417664085569180493601256019895628242281629751524983076151438133965625718131600372121088289410954969439783334996525520138940999786038496170765346413436865714069988904022210148130781516444632792554532234014317999535373968079144900376773229111332566961530642702199571874408356574088669642852826643498378549460572160603250347661143203775518999199786077982396553302939290601552155929851891994014127384601109658770857342110143769866343635961230600251584823717106648234871527851001954573632416150623202097825195068535950560695455281656299990636303921466148957649186137244398332587421958855402951940253020958443281029839491768464883416808246516552058897820076204542048517484232536332182967577474704807398529525987919048570804039948715330800178399132303170295464336957716634877254074571447871487319067743559134980504351418173132601908461870013623849886927483267954808230654424214737887785850483070141831486150694712527867343417829520919262861279641834884459076909800518603232771714511896159387944679282263411416015101404671927187564464137738583981972166141015958617997253876062049031383496247355174867084029573531202935912199249206141285514122658946751856840953965269579374429190811228279405568275405846949277304819397225024488348245688367424340043905180593569469808188693109061323666194870085533089589939743451713450753018216801199370965137427230749472034306166970103993008497994301983974377792989480190133972988805923899651211809918369050684557338554970306495399660130302243829012073573574546191164145848995517079280410943157258403276805673703245853962512187798100929881703141220308327735982177784695980584612882067220547434722678428987908434068836199458454317491227714172196842388874064754055744421213168928228096361980302568017684483887016890825705206912826184267922081022887648319306565145250725100801797386283105868141103739243135801694470793964317951216671411798604483495320249165915682280278054930261970348552305077554592729369408846120123967807968686429291814341769242331985485671471496361921165896542540790277378392708784312269140081325230090653896631961193904163089597133232750109374581333179754066883595110531591608135901464000541943313627302070136220375691425819925802007075040933990069845851027532097912750155613573339382441831495015033380391910776704061982479589421773840223512312985702411104722688746826098086608199194773997865793605957970210920559055924732686785765543872348630653522148593482299338329095966864853523177007228679467481372085418243394469459272050807890126073496436355028376722249930063391015228758900197485476832673291898831025591415819269031965298953216483895886195535574955988665462131647185314318136799848244771089430617675768967380923145308146499266251101698479889637605829036582171729283630161395136583378975462325831606455146317206157579662703801461635233631730063422482383896989482510267396466732396260447301968123019065284097503888100365168929527180274907727279857719164999276606162925009907272117337012418218831824745226258652281193362281455458672811107012157073965741458796294291907886993174920048442551549411357149714723846336280094331165854933095538784985057136214164726192125550357637938389878380622805397160428828033768428339948122939572975192124310716602528457509229564847193249340842093402922547737332458612001192681649962184499322442971133316091910518010381386147391707319047761104650661268030171352328216838373625019004054085863393591647215664740541082469086406488928973985693146736763523986973659505670083646827910268817351745150628505979824240541744853920235022713022137623003765561664617461859214521574215739745261494349898824755547674331086724323906493970682037470363718081842163996544124796483185586114338559814325599315519155359500564628532479814916413625006883391245193890676606498665819130704554307874599195786256693163859279324158135742875758976849769652806476476654382429426978148722677211422031353638709470597723711343898924634945780352393108194437314684144932099641718123014126521707691750788248315674389190630775667489528557797307980247899397371315462788520015679488783100704577278318872839258755735388222625227309359315051503217695630181998121667163756712968151767584619582412804407327773620907627921759760171757700813702555872286693388299581446157628621866079303660721663583576820591558047868465438535639512368367979056858338306408855187208501768428980900872353679251615156574606401998943477135179313360470962660658321623213277658465310722738885786019616608825831997558684868609958936811639559664724836417256988486589383909097126800351200258643751193051124328642609570278498933939645447473163301538920418610427722129785945423831972316761517312995778032915247801861126551591736363306556306832158003580499822909412594496461919720497292850998012468202510616591159493537472142570241641517926063136855108533379861586367474873312671809704312833947890509926016971010464009570423271576300616178809378239292564003899579953520737344283883939184296202881427193715839629966552128018713820318543819137028195801412493946508595930955709026778098875761607319672410308395201291305496277115233134778171956766098316590324220692017241816610257599930700268226020472111328957730551593493282117087308724345796316023337705931478926052143608166493401688188374540401968745945019979031158775482951484857986529611068586632610426214550881797463356045044343349998959509521645881045103551917251921334573738433199829289531288498800037423547687798147309657133599481627240270205393090307393959586977493434725334206916592660799625070816742663200136092844184788358434931012281664088362107199622812550212824398669143316709304354758732598747063138990862387581470091384887869503258016721697507305600332180132289003953955521497191260261762096681743743668285302483615226234160292545920862980884150535888984088029528492546277995685102316932852919063267662320368003732363174581212010119309781572543432974097814686357880656742428268989568567050216870170649744693553541612996253376895865406070716529438428773636121446712999965615241780046961894533332021767229761772335521314517695636739050751493886930956845849918850548052954298101371985745366830680633058834249575215107811758694093405982128899949475655284137751078577353811185815493477433323779240835900286824171204948409155665815363938984426143002073596211014351773985832803745327995414353134044229379620903555059575694285103929662306571087274377854761362053161248577524473447157194642372581618662958034694468363634853871134798246599195826846590352561551314200713960929969219611865552647028836167050520338787199920031752438311319960782797806431111209015644851303556931389602432340617048732368465429920487397796642462244676881200622216814578395092777594876088592596420304612564186835543521055237687896244376942909757449224333570380110724085930888139582717026631306967419961504219709081540363360443081690266544843112993195568085011130796751164903783556423344249063565902156247761140303831030413055236492207176269862461785403102480963788098987286115877498797898886593983582233772550639676495792117112483695316779756060432378895607077155741623464430502506172861800750395820012033636261654621456021785547838671766983383527151691701652823497224789307060140932874058894413848836013060980620421246536628004359376085392671487406039164862402648105587123569573845563972365860748095511163436723946533240642926183828890957388179828257908464613894331877489546885445708594767884267705690177316986064896420789392491247043311448020201331175740594275642259239759488419043327127352589626901344743510101395401755934710463448366393714132608824841063332552214304617725452026979390136320786223293732154568911660880000992193075320418500551852605313316427419878447250246649505315203058821045891601131126968449818428312420347270132809542549721301152407328541539827419679297231992276392909746171717644169548830725433805707350593998858381604182949641036179171327178185438835986092286322588514147648406148718273537255975934020023794023716947158655293842816891062340092731996887839531995189919537866855007168546422630626304734913479268175715647737840542804368261003047614535735417825973750868584376677549411117045452621889008538664732155228904535452310400627197851231061436841802101322864289246839284505116248365382831833589084024254051752830557240747562974248401422211615184371459649740956092432514663110523669314077230890843679503217196252708032540002344771403797167449323755474524736436061641345912818900522153280461647429472410949378406845849026178651050836269190798242547391036933364241951294822697843941425200737359896680357675735482504582517593651810310709865163102074442403439345279313946457970003999169078494070194474779454761486793074925497382410267257837667667412102058466917542666586096307025645927774581654173672019513507869745131576054441291551620647186052952177727575982347262778538802341915503203412615576849837003054175858061380424541121916529523269490439029717207357990726382214744425216809196401104294622245331980993792564915608238621105953048012527190540280772109602188687750889515235661820599265782499535161785823333349514775640504440375488195401047150260271902341296907385462191517168782434195502453367284507141559348043921040326599676584630373553271111140983412080408642662222216734477538033831104832881645393174077756692676533480045973792621721851261656126484713677122203060334241220163130864702501116070284442897275811851617054610523195733409295130386969455916900195788980175641772620182919217466511107422109818233758234350191362048459245537855223395007058247070460745810050825632422352745734523938984026510203748755308220475869702268091240989650835943603042334948554094610114896317115403820675440964660403439952811688528737485795630148281023528718942313075400186053394644664368919085056334741143850297205187744352405393808088088342495715391622778618878363102708960160600909042961549251736191894311422317771794732425179474590533945690529190503584088025280590178199327409318941139098194587978269679966084652374357604538470119029941833830399049811519712856011964921858087963129939901985779181522738969665851145807909490936535404931371967057452028508079733953884323912306568140980435649153749494433223929695118276555770306852928599028158509898190726010661319724984229191280553501150876286715086529081421491936078893772130289881855181108095976887347091416739325007393709312051880838418319577616814299686492399952475312463848743074559607749387421773101085293059092823653848402852622406728036309630190658018066042988349346800298298516494977760310829223350367200496945869433512871139549305461975936084748720861888489099574979782527133820983955158456857745195411992942167597743268169346442954182690753034768093831357459996255884239775777788797674759900512416531809103713921245553883403884923721307354185967246877027156435933361602418864949948993722003494797356449658783867538503903725307239643142030972808151818744524541361199915881065963165329918531055748614224527131692078310407960614047490804655682844022878680091092195266846498573873612914850901109657067816874420897214604837080240271624724569745790314980420754666270378898528872425731168215816777302085785158381910085879379155512433362643464299953798214070229859187243588730421722620293941512492027591781247931937664437315452657171541400994553588131019916875810088899047411016990357673702735034760725832160836519706434146290928355047460234874208642775971283639294494701614028941613237211642019147757845318276122783146323229771054783043230313242982332408521364914693674285543833946620796017498335405807613835347866947320137397028627009734127668654983323814928901152951729119533117430235151441790564796228745134735273716418236496766848828512753780150029061017913224563559333162342682366460334738042752517087716110832636821809934972893957501144409799959513268791062624397733758640914401180361140042517312839496007232379431031003593399139609462276297663770629123517151914125079190940258372832685832060094402174617812582854204748569755140328339230069975654000486594113446332172404670004341387747505483282945242638440024694657356788533719108112949342291174017469777313360189324945443562537249648158442357717938928700999240664801449025248478461486421101289473461755440797298568729131731844200448444680689166649733065194592471964538652458590415130248436868340050791689291669486773163684714029342437115143162357677498615251352292891879754374686431422743258442164996747649106806351594483633256196081050572064409001642680435680556270072048160973007662700981078157525584898167295235877569191781696475742271384004722338945799839064987417840393480019517686983964933843710324263295819302986707819094526871475551743721737106277397572183105248731751947839189144716639045660005544485264915725594650113318958270768246410250611389746756250223630615766505931593083803476608690703696058886579041156298494144475843433490613459066811173052890156174760039629020205415878437052756988690999213521400307452984080730714535278502938021006010348673086199054387342033929115674067353504819980006832383369097007148997740932846868433292892995058438581203960023582589894554884184250782879644029356028895484847646532304146432634442048428622105542574609791053788616947474206670421346245437577590559030994753566954100276349960533101977930078745619533652836260307591582700337203538447810884548750937873585578696649173128259350782110146077410921809592686912650007502334011375177273495237977608786302627700710925385771546364245171940128946974982591564946516318939701819302494494024825665242129987631920652543772873690725482994815044729862242389662041706272654071657570513425167180183729870497616369151351878685156437883424641072298017096727120951979842379402848383221073055694996520177914990742002776296955556861457435585847223951064153534633913315433411913073658383743746242016721399734818306708342071330444307970019411777438052400591702416835041422346838903022921149992622293850276112707607421548113842820972550949537306386726276050059486973221736827999402819503886037000146178988792044431511956149030227221285718253160471949065930367665817225582456807634375932209009491744164380225655903514007481480907423078687010408130081805124105149259915169500147208800980987626243991533013922821937588957171228778363472524120066062473019458829461072681771079052708747715641159739985955958201334686204586885214831464501168370034877097813086293881297964794609837908314718534677670431214304727245978806084786108393331943360987279859630513472290035222032919384661914241588475004501455443734113000739661963562766218343909000082876685283378979313552467577901345020845240661480228473689580006552765634022214710995961159302950820508896124773399403583936897111726667128604218865443332614756031353254976449637166583374984859652185382589399581902862247474553701865541907721504325067587318839827027543221471008738595802988988086609705722307861129270637541287999307943327650719860499572241533079850586172944260015885562248914379654874434298030299948009382180978553531540419281740274637477701209195773029204320185443144809613681635177974421082386434080578112988143163429072514146999799450611818508855661487240422675218643250726487814512775769108298150690977609787157769066502123606676001172948697885676225284955866196114189800907440081662410369220578460658972217111800180548691392327930531547250079776782280186076843652234079175023275803271652087137851008693697248659726134965867512186356559038935225316919306607730829187789933345042715179651807011805848235293023657208099602779120276914627256430540102727643207519169211214698309254810402673285978884540290120181262714461286247674016573151158690943319378927786688069431018144329960064761437371589297704641693076682285871081586450654512661780095278797977153458900312708855850841499194100433889078726698653743581546477470938648982360249647568400713506750574849416321593238522173163181244039849624758803206827497080212617951682978763217739870609616909844201745713360439507387397016977723732366716335894150916799071564073866875518616132603366523121244219589173988470824327661305035458993572372853609933685927404699711170210756397796132101881943679187550146889930744454863756646096458710656546666646224029151937970807076778549880187310857955030616069815639162088201757365769513869459977809102935808004500342140847603137022933785931681376124853513277351191822382151601816618064440299330125023303317017811263386511178465367900667982604992808110247555755788579131486353110408972268995684447591041827754788034824164992212239770276619163870016888793639069211661682708935221948138569892388052963487723856244475930572577631187582188863557422610989419625047259901154014922716785721583044840930672187352658621033366453442985468694007668831984804980680895333035683255414831073499364101034089766128262949372149356756738472538840711223825985830746295567857978110349705710192585511622963027378603146347124637704606569359862552012279546231873478221461085138049350543562515291436038898341120786380573073827100427075076681644205931427405979367991350557049730920328637819960423925820656110150763053600416979418001409502523935401741653796202123445736085853411523545594166763700365924332931049580805258984936922114479574910330451649813379920754853065707948683534091816598608495227234945697715985380996562638600831008201993445861958454448397451151758433070057907149140172161762597006541823169006861226462014118091261275659563746628577860931301226051173957952425658008028405056305818328297529130395857919648629073176384393498986487916959752243382958830458303879482599816183669323776352780215806572545696728267723258593710454490230184001353409669909883392681127441574660647132381815909935362817720127863769521037765698565634172818643947537584867241358770848204182671189682079930473798881486860907393971858950154665211295282585780506010564166239534536276922950414868791662243950557629108472847031990898169537983787602348531962351727478457072289831848114584659332756804250370458413819146814269815395073568304438625625897745321618372300525554864227306516728748621911730801145149744909303553203038489510382112489647431151037962632268158436956801977781188557117979877857321953592766371952716845650902139233091450090930526123988152324201109515720373228389751042391890527209699908546881770987146044005478775779068361369738224511201528112848706591361318906291698278142225717642709091049663195223469327175007320888151341233996676287464868405084611995897325595331476163932735132475123287703458122706945650613771040420220835892464269418865948757134005476904937720393247049278280893791524158611596855272796510294335410676754676389308655537575497738214203841668438953420258139432263222121036896610922631349132673019094006739250239564205026795522040720519177190167618525305678388341105578666331032471515669369929386432985201558825664992310421094879355864770512102138750319852340526658209964184171235022216414025031863557495333249685859063662515594360085216009910825250869439551149732426506987236572169497555453679424681389621797968527079312957498672165045763267932004202554104137274521240869784132463825131954217881908716764898381290306478927293162773979796182130830790590021439519851991778008691839029628024191020445889294191399446735229712426669141768117557476417617973850041979313817543961626822914202859513141954936059438810274013201442398671323590138285274643368083090415979103371851872955737730135344213842633239292100948031322475254816496853244838626121753887496906661237691558290198015998877397022979978074086131475050031845678753178479616308792911985954216152823553435048426257682207633651717434487473403561512879641112627998217122596806970023107549294245006209980643961027095318348733832908493821214818231598624967152918680314030586372325835340161540187812205193350260038411743964655204959400728922786503454043329813406133343140109202048916989516609505186943191447995900899260887875693049751251083985523956673243747353849190314628508893128692566833428072694126172189940922047661705944736017848615549671053600929646376711285997038538095713841311137777131546755339899594787260377650454418239097250210363721189128461123927524188298082722941267936223151963811139026453847216769840772213338894528618136001662287091173713219657090220526275897733776767316717029450933937046911953397922295024737048704661416651580567421544073337661655105036490748005847982791787201271428302157612608668844338557865392953063164279285069196331091268042261255342025762024854146186136943900639751637770849033926256818179311511046128888723136344528553335066639335696775238894630571605556266534121673241909545824919563593376793136458132243034258188256522186851778626599801538398854199638208152532709694556609577010769785848620598494231224663320807402755141717300858933705962842006076064664839877751340845566131942759007830157741898268834239664968590837274507568746331977953636944821174024797593787539902533066388144220708389063671375164209668325680660639671110123774965023927659776097822388165860292112391092548277983685518670627304336329685186526723777939270137797469834634372422958435524215334738846619655707217015000928391771339202426268969884139544957681384773271455551366103024414440630545989048592651714450696071997732788543181190920605746677286089027932279887796715453244101623390495847203461587871950357585048276714093528576738281103016125648502817000702652889585673037669835000495887593507304140500926550065852226586915739503854125634826597139348955481427342479559268251027721748690974345762031672329607654016314001002946818491338027849625977729773229758128694352246387693133924527475730910705067618697027902455753173374095756849113345529663980801193749161894320718610446167239223664796364771166617292756532828989200476223876546313711587435094489597964224271582310053202305497963988229749529729368712210798756654994873983616316104684279971286860186106569904366964653958488157709589433851511519332316251952484260398277105710841412071237184592844400025143130549325497007361223000466597608169921981147406445218411889422794953418109554448827738904041794852940995964196204668244664904324526800341590258084718193005874314927982805885257745417164345403828635068443122667040482077383557040580246794488111562813096988463540749428744610799770072113241173306604752715134386732959177766493448315769961217714623373754333371991257143322556758857333861995917208726775403639670256064140374572604510886688115846947651250742989779544597741352086894637589363151638278359345801655960236290613804243762273643337166514540261509786913863733557571149593522371240068376547282417570245174737818327562119484799298721633728627628909897802074704772672050549247671706287469344560111156803143852447520998647606312555717909628930718397748240195237065253131688808267829848641255720816908391215510863492008994188730145707636543438577916705080738081914900831399777072974949007831740994815986537932403916134890220071443418358849809684316742286160984230665602857585469630303751657778882675730899203305814790054990700765948502501236481145750544796720143062673042452948580053534968790232975739580182021043735618959392215456638873229914852740199377304546483160383311025822403172302497646706915640194025640472583170465974783514138842417062758534300565106934755407500048507518001799881249322182019125777074747263487775287012586541960298566602541549941112175743902723601052821469642975394414651876776964866568766805516870363907895851490655234922231632732056360630619906282619433131031390865789406240191744668910297349674742626972883723479690107501037431618528875079899337574022970596798859882947602050007466314552222945274133566601904249611830628421733616669365171216162610874141043067661027880863988343225987116876764570278295394158596626002500394940492884825740109995326044686671338502113157922416766655224548503945055948551167618865416210898573544687663515394557766654887399129783588974021442257724887013505386610098998411962375343774578683527133301422388615465788632773601038591104057714074307944428891524517321585012139062852286459744060286083880130886370548697432979964169320843142611317024976072914756490580000511516365037636504929362853557827631164336227315331918767966467280276427817013656738224405508826870224430488178659763187679510000204886084191567032987932837489131989291317907917377274759548225283437891772617178529545015368450562955238924541496886903790762473025785051234729771679129266025397568666146610565708490358695925529910845228767365956526714403167722985528624157150405527830385254197018652374206139664664825749631713483620339058253351055146054467393372465866903998959072510563743589354771487969885733533238456688549486521159189141540402424452339800550800630985636034198884859299996193788089663335301204635129968231049670013795996032926933314976576551931073321487783093618046287594619666836501735333599807728445468511326916035166747149896633258378585416149307662388536798276108109714619480657045298321112325472398674514742177834757483807331727153389392547149457570287676204753697658222144320523030189167264687107889927059163952856339786645921577036179518025608236886971965381065269357890552557526061256652095392312052739022893819766837716050277280790875145910772860887423208225846422868745247563308445384604568123099111457939970875464067133389994980228486440146244086289833778771581237413432121002683973168364543447269433725099810801251446728520499417974080678825881337941123184956355469627482622260772270168242076728244263028368879615683503018635906407406753093889465996874419844483559542076549005443601570883529292971020398814577425828632338361981781875996532049981140753349952856026283150445021187947895745777479573822202966725635374330676301589236188381877044729506397867093690581693873214018583780192286896832553237455289936210403531692458191293191186992949270633137394736824966687693292364528678640158478535606433053643655572118600062517105475728708123538101463284067351183226628202381986096443759034464499472467345731780313811313425591699358351865950592528988215694483988485246519331121529948671894564587331965013391751979623295758124000215779615846575411253750146741575060882199605598685408796012291025712077857897717276677527948270336205718412980968555187830018977323137693925627275554508230296325455276478004196870376852788675421004832817240961442315924876930798915852618469542493813578773039616726180809930987196502052643481356167273704141441870254649369054366757965366212609890110869904970792415428767323254734763698191496420928487520953036812517046693213834203963138847296463538995083834423282693966535468531153931094886194027744017625646278396521360973173408517336506506279011085564031565014975006491437393502349156702766827302079004126983292309261505759748671971925268815636940575141029913014061750612438732229305812022516316406169322760704407968336092915493134863496733392877738052001806374830733109704249520129175292869401632442957113390937528031531216169612197831709788007242314392303182272226609837755450912592248245017630826547231703864208938519915435854462923292445946562851395314324105987268439717573044990656003450303967892483637831115141326913920932264779664023346253776160184606325511822973497391202808923674036677943074083620420126008458015899505406657230121554547609317628796213111618502510455117201131897066044634321600717045596858767616239615143774480680588077113787898911543190962880081217863210580431297028513764344171939359965457379849726477337504099263971988554585041497914900487044651228658005630187726557589882283821579904784108902594113968057056868955124337124663540956335020518839533503447519260832488630283127893184002103956028340946154596614977409113536935471594319823606827601578984306949242355412749564915134698637646139548852072667750864493404831466420189986490923685157319345831950169620738215372064641343160020668946831840103116421243543827492655370559150714192952357200909868148666289954921369303479206183259950761497162323676021368997066790226941372616602532076257483545228195647863880514217753359896956178069930344509629526459496334884353018335678428670563261094661154351325301990189656557272137556675278801415065363238550329132119152436751388892799895844949598189052168252362607916014582486125806670811670231332573294911012069312617647069876213977712845733425768377559565381344312278420083006919741387350839021147042713413774704126026931385478714261875852659048775518829746132632673503340995227221564841754285601959081655642631974703690772590869025673343557593700034148173386793992542037523575584560524839591612092154531652521319816770358089080860522828517329117071170170353500481368863338913204701960361375972323873274723995684304155559541523756107237716750618001557324603684300036412650699247594659557715762070201720880992342337662337711037748418459091315565499335830265056403923767783762114399426571891592584946553610901496228633913267664444501253987063038777251562508522227434217148500532167269170468519762410177100296973482774001139530415469075357769230833981333797262753070363068125201333033808469697222204681813895466735685706554916511553095712798643787391515459313160916852423242574809791420097093868241375135351807108747088825199403708714474307398175515859453392767318255656912228203337093468625700117147472189226494488879237968832301380413005107509779518345434047190958216443244960812744186312844095864064244578714446852070190871608791743439038813033638201491868786068447697130216627885430602696979547512997642876920624971298707055865277043219156145587583408090827221821306470701758284871359427720581125828368157167810025200491113661153677295587108253967423420681292797849984175628740373914082379026108691297029853964339443600214528767281980759883205636593746093524768617134062327604110315496708539109622794151197009415732818658724358284830582722489942379307430420271974583056575733073889114313904408500886804484167460682001975637400099197224074990043743799514927558023819025989053261386193098725054595169243224557866350599334532533622822345063491756715725228534749185761587313939755635521869319400693994576495635351189131136603045593846138749601406335280941696681583684452523811663241616515467272503835333432700223565254061803520255543895745544502558628726042469144552720662535089042355289852909098340812546502900054644010839754685005373209267593856625012324195067022760791951894877263619178361828825747643067291364298010265466144762851695840080550792202061703797611833037333206503236760855614239111347349259594023726778779714404351578038101332784957455528590342807188781486713522044337879503982087753592289633832525007923598620647397241831319358290172791754836996360994340553818219712889443157186975117244608208624707238482413653942969001569824418867346338228648964372706021558367287926124752397361964938160543709512425673504612049725329992984805044905388965727503728382433882812122957494820159573508859097125257015759790854838539127721508845990925554804207078528767836079567454126485047673178853878712102681244301766479373875512933836155305054610927591899544589572550884039283489200351197775475919022400620000501269632862840441292295991191675239084598926714691301041491365432516362238998433830551680876677638656752033004889891151458286998026799686463347374128385798059118623840421347506236336771397669020197111222989298198285880954619666740513749764483853817691224648889242989079840181502915864178027401033658818356121635310863180261923004286047563679567352948592814869825298533321771191692197088305052866006997185979846363962380120174895229338863902197022235320886786255781394198089555040378209401441611844712537841726315483315552356036820658291375371732960915009996515273064523508376215942747303712063004579170444308372221534453885375403098683539853386478396028385468537721174144471177523346957034874971509341768390474521351340066103655907494442130325875865983615325091672000959174913968249716164812224325572223800700962869368125456511144057230067769449641342617535733475634427864108163196517059732405882512451783273636781830565466058201498283591841701624993573098194530522307334270162073324181068464877598960009776837006820673474914915577203267558371898835991166335127967784707590937115855911468199651575888114810408409882555168323974323007593404580462977242212118824019962880089875941907163422083470455147817320631967477118701671962847419399766325768949977731755307364523001106290365498215710397202740616973560806899148533050143157491253960311939277042199356328483130778560499414880547208446946419700988899842436824630358107138962464969491726517791835874265439546442533141665491095714115198358381147833645871089598827927288648578709875111632376742004203697753907695526729005787134950910484420265090390311347580301710770829310352520977418054227798258602550879877623690282713978100852464761138692282287691698392448859161965066088025426306431230116328398643281514947898506824386770084811309340637540234437756353729820173039618387734356557642021427529449342606421735078514616396277298794435607343457767418168936799655288259404363969262011826534316901448799400745067934845249291506507146367746502092826800767659392662723649595580758938781072511793103356690347597157082033927496222344874213069485820769902038591911778535283151900507187698698519859188955587569592055232383956937900195550837914170463258875340542053113048358953415802180966204851719486138633890653361665201832850039691329701238651475832710886729496394758290446421505575336399172740537531722979933301874312072980327389531797195256636940396869135165471985172692552959534431693964788164573511967059990517234026454572572293485420838493268094300158830839454304949053837921844264541952784449274324143780565280962428494408161425451854602272841187353125868294666275994022607226135219430022927597271490424000389277566443598976935442097300001963697417064988466625166559668469678316069852582562750902504809040425272339164617490719442030128856353517547189897223823329672416851067940533835465271902733148711685739820174097784944390460109599926450962019094321324114198047878099338975381457926525232406410238091584982998202987259123399453405217767655510526538119454531135791615730394177834685672919464432396053387109860772929053344620394709664838962405700673636404592635046151184916107727488572375539668289552613329968107563915806388589803966458103906283960497399192541908907190654300154935422456007714090185821805727920881712221974159832136706862552407295617832766875740261197374869354315137672926743906459490175444844218322217528807264135972088622970940157298195907443021969234917274311593712591722171080021376216827925203168778664006150692799001124419668964660297296965184207072180530107737221655264498830758890005112939411589354541178713430830856775511313296893159376810782467302969106568431990526718197800317768437174487003501370118074933346069060811045829866428313835402485942555184960067525685432848550082612008797345733482746987992184016642588131212977785771291233783458772648618790510716187890352299981003940825712635359952023750843892181970438995313889683245702958031140757142169416124119053751713851341222116613978208900606141625330588714643421752441703996791288544522935432879183546280790255887944961655506034882645220303367631680454034661136046644625023659823453919134473888113438964378663753506255439903438907208955970254257803662022425293351879310990207244293698908918874382845784791101325766371825949084646363384555517479096818943905873939154557288091157844671590439940794278216849440927702986223444709049482880474279894135525168407746285685027705466205483482910183948423383364863243679389643197861287185031530022439157939036516424631433071877271311644836183190535877356222990479322069389471214269718883913125308187945568326219263260400158147600956095251586850104382744985880078741906256656581719680615661089170316255366903133790186901826350197464597743282065351799235855822673486786446192378303673435954483219079759139978674063955641622302423173760522346490037980177456548808820957026304300331762480284553021585222059569305961093306782844284559777302500424922096328812551560540663694695938519531000708659224324557031247938395656871785486332081410979304015736660089450532674771834335225554752365023885467281711608969083240106694807706103019623643527218492782806820904406840663279080842899235457457854649697542205586513937461488817161882181679390846973863458998730221749883922289957003398971546674049854661164664119640437074067374574504687510566812366322353683338015444792526548232973911470114434156259584453965168375939216295945793107171984637541983457940090892856312881726021631168643950813169663798702981021788151511958376093414833418907680900923637119866423654937121547561022039660644361837441671166251510475512982249545465220034558689028523917006524998561886359212187193719620005747146400284837831998782685989002791797883234877942337237235766835314065768570686278703518950377057160399916058403398508840704539436105094787100439353581525657115588409100261737620783433763543690955886287723179548117736760129788189815394722262157358012672814597408767443152195015411349351992489404346327059875465737620647233751009048661408390261032783411810151973555450964040418002557406340444751109580245239524896881362692362661997177892675810965805295793608918846785973494705376488607718773921200138201765941173179714296591495044823273143286189195427983132012809558192754521913237013739940694689378854097951861867420200247345699299553565745574538548427054474338921455772729610386259022622200288991950345191429746026344136147351048862204788337685106904102372832985715708163690720882016434718074848796279719942215141884178048795230201264434911624173477369666655630605923129973082026909228722889357621565673854591421250207252224946547574472377003729925327948748131515982247702666782599847000009519773182486874322821310728085924042270849730641840623356640308397980861652890944731787029687524116334595869081204433559312292685583747725597975994817533162856079352319581171987255044706480316361889255388733359480022268294787774643296246285576043753216072559158973138881993010658360327835041397027266616183042060834804918553255955491333509306802124434005236583832694494178624994661764426516576576418820184897064278372155310637451637926669038239060815113119847036963666138436941824160318898338438253921099083590600941441573058203384372853858209178939150448797673379906970414107066336973837828414538278039386119549075343430522492753343321841195385945269923890635134849422706931204215275934874483886240814077244008160167286727794478903040001919469867562243921016535461845273339982469141394471724382196241049882524879339214308175625958877071815895686803965872802614623744255556195560282645302455431688579270126061641312830278678513187245020932642294668122267843347995231016157523903112987271396472542120383799664567996615073392693780265617611083559246457089626711015009972046610292866113572770234624296008641084010127669376885430631130249312650462203462479990834282771834984138756121080897531732593539521518160796461611603699082162018163688135808121639722006442687088022409591867432432460069267591453859964938053018841997041161209397255275460442903437711159786028128327105758795010720222842494634001217580201142533265858092928345475871290594097117290151990459909896286352577633526251746817794195222818143148838034814290122508226933764211764832962328470883242990708693121959540805947711473490354245654242150989773759996076994202702827994197232920043385947445203799911416918910807980758003827089524382122147989994758231121162518302048163017299462461556387433420103528935011954344181107477919908538935899592460852592355573828583535781764913609318907828039658233688000389060619795753989573964556207950815028938933899504459522787962809798641304728216348392429416669000435878829160237745174944927886772923930023505357258711028931353226822144135991623995876715780044734143676456880332290876992882965653978728243129616309918853292506190210256723446837322965392304082056233991194335752997336326946389316266162712468472621012489111938266198303137240925971613911967870626679461644328132325775618077324622514594398579924728471262203774936144289224516206257633661739619272216017929197067726098912318114856031700482684497378767271484113634810013742512398773681655450928245115517141123129559668964051025045400249044628983851575165073482842677782506721827278737605180999990619880042011404617263472854904951728522805396002358893477311108265671897139672401662656421921827452758611153723772032170798032708956180647321623503337700902274848795660744309093185337720950571170724870072962799788762360993452921483425325629421678494292709945046158945967797518731374484817332393529639673152126841029952687089120503145986414246319790375558920199701975865197596251234733489511410333046896049111290798632419233073157802239850577424891675182169236652500411813701355492371894118540810562545812813856071491784294972700647438978300038679413795025497864996445799086336294236469375209843889670442890772383779100999551270346569343495060925295229544492118152845221142800289048955666910612619295124493795169019702992990049702137644916186617931660438588196827569665492075698380660428883621633232792541655986623064918660887998397600343548427053377510749972685911144872395448021138325014624484433425173367886818640658331653597704866013748781658459580916536286536580882946549444954160772775228969967279357633358427622538873129859380423278211568794836722695225473450526652750653306564467214242999304882645718970414327222401289625426894867101418300814656413659447024699122625048585549629044386816906263731406565612284832128340036664208279201317963688625732531796710374090594088951528848532149678320624913788318079677740174258355324548967101042332839191573450316646484001440044091081127935038547796089075818346844062830333685967978335095357661163298243855177506389658294457741641802662966015562010985434496246263542756866111054817179984712278624885521057264747723555380492739093025714847714298989634134018774189477351932428707187058961063981043439500835623798622939553140879893887392732620733365617056315559851896119319956053023837147732887394878227432608279456283364740483551038926146761601503339211929772835244171020673928184624081627241639024407547114031743065728977112863705112920493863628170795278586303802496117934685625611658705429269046316451924451405619603868732643192120621239032152516585830154399895443581392634505086352248684455287356655617908288582614047993427870632027439792227787823299443390399250099467355271395353753481448161457851409017659982160927954867581036541554824808573300573076338917183416869457317881307822891238820827419130594553541994796890015409335866391684280226041638357858931641561408511689592438032482131697942482057592601551717443681483034456587361868816330579396393398173941717567464800607881513760625874810313530585503277523285734523960438077503873190896385919157310178358968498398760395067711507360398826837787553693174402479008797066625805118401376965512176438513656181873464799030729694818164276569550529890062363969345410311212555733338284293784277828678673319948875021075203512181409791130791463573668623924684116863517562998515571518376257222347610847480562213297304678146102822481286643591076456304664331000679318284144633195078972832556317362352366619453719170799393274383974067816444543322252163034644470402616451790695387162023469882618940472419909238369796269317441733200178149312545317516718574790680914553404071319143488306350150943375636807287709635758040453657097344510382406275200939908875947238297190233557043948663985397613439378164409544244214769695777406709515972351004365819582571269500001869411628494803282810594191709257954908848336055962326876585939549527094605340528276521751592082125716372589929803091023786747610589650471901369178400900030387028849994326884478283543579933669254095968176014228851570997885833310582230295736116748911860252806889472773334581277532760258052048236967935555056715548862321470010989536455828571769678476858915890313254347380102928441254698141076212499228575607959074686858204027031163133801078385527210629677146171698450946762851963723731386190260337194850310444706431649257389123777521049198668125802462623185761631631270116108194404804337001589368724282181488751995009051051897354617887081707252060118600836649973831128874828549519491595011922688338627781614558731736107153798533841507687715075692626649389642672623458289062143269954889651028118656890716661035776930039106444119544969196990263099260905322498319846395717412728515858923237081007927069958341647984734988967879154598541339973053019504564918560069878764802971259774906913852762052706882461075984239594793650497198480310066682422247950595589450188247421174271474192017011080543779212329560318829129969618778373785568105287408355925158710226553119933323929346472255479244051869859684395423925962181325643179739965198046707733415290939012022981676134974470810161797286362114905150177802423029332214644330842814123875551421681367015611008502604870287750044133468337136983608219648245916212712529272572480937481749681180151417861965426709842408534076815788141378656909246737471587256537463185464105536013927454126481425629562916118683501428128804711513011123745359163326569144772191667033629206576386089614107394906866598306011536312732984368957101753108884019035936291545507136688624887835455065351645045870220188731372499109378424566755532334871108108716196087587123945344251027402447873944050445853231746990649105747340890122452230192016454559517717431111206610958209078045462430200461630006899010272753449818184452935281206170861402641477242226398965900035349057736296925568405105949852545094349524067604911979824212203030789448745886056671461294533692014594265680134990244753093805881589060223704657378951353804315649163660428112604269275716769885323987452680174665474465047746191363944404208991431281460241749889291247418714538150541782727199957284425856209113946194076155333405375732089547329488914188442381284376374351658717279180856079801922173210380856741765193699808713246016588622662169971490253814823200432032543768738193221429204905255376396834647238604093939327236054276242905128733941575516573176089528718467865204872451967572984459410256126820025050211777496064428316878731366513883629164776281686322689884324650721612851408229175425882041906896149953445563116828839381072365258437731693666422116345138570631798051460622510830943911549964721536691073142174494480957809028143678780280852761226439332375750971614288236660971428071336156182510971136526335392717102540697391077679515417048963277781755488057513885308526269779193418811440776432511858059257287060934147491995018090171984145032007649270583603871581990611534113677771253080936837857033873368990928517876770452055390538002238865371181124331880560589973622746145105405473725945959156371576625219188651273509543788339774604427853460787266222511032654834567165846784479131851615680000180181497077372242708930611393321124141386962982068629397858557755068075337362153632347889202531868738296172746999079867721873609607132429639456483428859751700006851019636464685781913145070346735229515008620394928847220542518436669451356068400097859111211514376274043363657226657813669795282705093531877431182000691293503362782533711985547005040361316066327112470172116451718383981736263651083204987289358059770728486380725810133269212699550454845237836504133307705728610784094913864985904367862264245478239495328017391139954208429748471175484398359366591634131121532861921138862620193263822223745792224920040948925763586200365508780230393562455895416309922821057098486274856399721309928697200669898519320346730272640770421771564862620484044947733019243682563393356800207291382722776985472665080640027523520776451001209004220636581411270234500558081536502397095976731768164266354318342820835346270384748553873288658302908926081922562164933863445189142761629635144777932026962283523782451082550872682184668804873477369669904147976919099379638792740378628119725008748219720207079998823299967149543196005757427503977178198395292998795544112693419700835973410811049261621772380050299356036143166761499036151567583094271986531272487692317922836637235100138229742428625997793500870090994261919253078162419010000405088292683452837050385574174028128253081559008377013009774698648536373814972126413879247536059359768217222895105840440652760744165359419890357815561030681673531940785165515246712044399819793786158954116234571542295827477290270013815003937137816221339546518923594884320880226464350846111356170771282277546383159069703378591352196966912154842419162955224133217497230305904929081504048547735560412686391381207250809856236356692626874076955656568800211420985187353894034048324185462190838210932865153813128292508556207065719932096673125620434482472988301232439145678627879435041123743059599075518854488839841503599470430859607563052543241352212360593190587804065742510017914174955951484697859085917987236018367182117311480141515766064001045194116892397480475858502624658830791778409986249429949062090713508844702831372122304059138561724498066953020412234908736503893796423791934824073125431780769474181317442418423556826335568365904166618487708545887835340609700328220471808478818612006013059783022629201136995041728165219558676106389894572441018928662109948170265388844716615368181630344859238811797533646143845821910201251699976803917557826521902328635753687999956968531726393770453641676638877283777670257982365942978247846789355038940454807074223663904703744088427560520369010817587227860321029360427190571875229449132548196581362547622757858386536185612838572381960262080487796642241538230296701895982080102557497386392831728840458221208091642054716076838365850142889692866221431413207637815915401156384148196135801303668224909434932651744261651007076134939224276073480982335669855470336252720986500582105586284987936657443913476454071048684242951386066638056272778086636290548698116463502864042885853302811336042172564082654675794311787125815865914990470227367522841892529353696450397939351736393666104006814535894534878146732557662672261253108965638579967687231833293398530083034032783179689586981285180294922188167491575544393452164441382125924051960401248085058009589053444552818940528389725131990116560972265816871459536969064721509294478207295926254700118419068048328897524711935700381797968727877252145289146552226639900112307187006863305821683100612315167683474936338102996268112390085659991450419421933500815221401493855675306015413697449594053750961303275455084458891076347971585494198642737573230570515036502284577883705129191620719424317827206204337199219189563447652849239418602341396732695639410370633207431229334990592021643187447648345979557935502897353609869614007806874769813495037208395217951016987338455096734460302020612942628980398785942154946018420654013861988291346677516855970215542574005221193768212105860933969936518959938543807712254339680598052125346898977200796216972640566802311820933238247130299663733823024176427225441914214805614661739962538314117423508244085778646907827415848567407786277877123075878613356891549667209757467007284600679477141088117123492863916710480019106844590321278002073881463040753208228342728988377693072230963454029370970891200577504854151468169387194826615072652625468818060655537057941040809777854468797199507181308922636745439486491226464834291490124388547411350182801096939959711455440493999582863354146166158937780704133975258681720062358402418882567571350619118171617683473768918143252744063684371087372966512322420391087846560640082831991190597191969549598933419158408100073390309349223293909815244371191379091649189503693440226730867520776605622922227180106176119454761443689418700070586477105484531149583495777576540170337059583840235127046702129318070375279027707670007003342757083901436069825315116342882442256166996695059178151624075582800085639967486802361101320502004973474319355229637351000524774415128267774006956633516665928078476470800946991813744908367279770884123217996137457212276554164133547995390583104633739205557143763717522424292915562262507276044294762940648259690205725824733893910272716154594972086226702864617724984781347264271575499517508832166222200975762813143684801209393946072470549759763232985582002573500150152367419144950301056043107268282728429742229522696772566997947473550951777862507283031984760507590845444936106300565965778105451670190390501874216384946192464080558968368373561948906374425688036991476175257119893344486637033875467546149757105484755460825910939507512191965776903716681124191763734720898561037483847867511520743548487422563658756199786695913802366802511206710716555207260575710693886523205700496594266739607173446641343536210508997993261146188995456571249297715438582798275893472234924481318024863558179185496092896086460967413357119589656611576660720726065335093425164245821639925793896916700885509151788109170286228134089560215855247267431636705006920023002918109691332079048532016756641873850551830031756549018197994160651283004694902926913286621944866555280933426683043278893020412216324525828337363626067807123449491975920011275584000623475495984585692728402756013391348905064681169518867081345889792667757225898737417312530442991040495213248070798604126666994062063274527694655627847803037548588296174273733510595485819651927854803401324765217386005495435360889770960431805903408553804627401726515830714672375956606059625850357140012053198557290480151670156461431336141528402916098684824345993831737281789620509780988764056614787575810199076868924551293671676022544644569114148377870195624700107262138156838507289088324032021966856954162857252413650938083624732656684951261297299299906105690123803982660031909116514646343447225107408028353761461532008634582718603327569935256009155251230728973803443854614636149290921903131108159763013635966151165544554646623527993791760562858315631160295261485766288602810462947967073174653674935614529512279129757664988965676920383554975820694242731845664555453873611719293062142972430132521760942181244205282666431852436849697231863471820882183142601304264454846258123657737805695681175668118761049716730767477467110301710882068914214096319731784304968057248718888901021987030768391013357690483895568965356244566880122801508511646062314102693433780413986320572805702820177489299772175018531713679448475159214305676634386600187215267116158218476263632641216413040788646060655681609888132351385139050122479320725624928195729350175117826395697874421845222120447299907688466867041566482810386447473585205304522663249471518014897019504967717593830054668262978874178787050716013250812757002033450982605402010916284491968933868964801772523335414107069168786960036439759982970079866039121429318815465858751043975332055601671452367203881617988155984910111504487159282927281384207652213626749076327335901312891386886834919806502863560182682007339535703020750310959855980358524462535956356683150839297762320006663989707045224490987234650826806434170215504247727366915194377755625002363812881518454591849111241182616739088987784976200104567032351985355145761681415903926663994495509393347027397910184593625088002182823850991835887037247306989539843126261289679397642789015424258431827128533470635887555047982921509135160957616116533935700232971838740958070878616903218704902595174041394964912659794319984067786001489702263781977099760378540545811546392531324753525452320597090862164243172401733323568268549460773694368520704081450461607839591056217926471531139703721019943627856853197266612407913144404215732150780506579950479465443720080675258374631137184277863577739354582772820743098420094353220100973161339037932775989326840507912015861359474319072309434686046900289572551939312853256805042512198607665549549450701548326938464809648557427027215139878292988407417158499794423876386568490130996407320089252263538336930224416323991653964326849391549285361167431831679643951943814699797053311934180229124804682882411373250760395473696699242378360552129548108679158665679154667703409760310982584582151834258900064708880208425133668569920957144210872942367066543394701594746457235928750641750795110751978641494776241310835880182401440307438979774069101083349619233122772389913549011227417589804866532006625243462680835269314248461633560689959954843114576903615899394921088052892256915547534145826186484731044070874531024520201591564532125633980906071644715818698225946694816542686647755591775145427002446985577199521530700164580740351976227139739934690866584499224917458840479230147264455417192172320914758732293036706954272009662032025654876140769606195666556847211998162402624634972503584953225246684084464124283004809123984158898244076779905651340872601565244103724247131091485392540637037605753859663490272889622997921481047451046477858711103135283545504239153757634436905032547984329796075532776175443444452503174099657957470150184919445932174836544626938142632954200854500343732554404640165033814629804895936646491197570323616729324646582363945232450931345150117712595969985928598656634361852734335521700549914100381949095757676302097999163085793524316299296863507715769767747281507767016830852514076156451421102779980512832355141936451765874264551201407256923121016434969232226529135198009360361684358217619342215862133505292865607437578967004340207432848390229425842709829318099435769859362122198222148630751053424388962848445476158498793413566402184682844247631799147480450939210760932775601248958662165616930406585980830212994683780187730473390561897271227384178445664998324816617151942495648325032624491908668683637594203818064615651292720372807125430565162242319002509230222159585046403734454262532285409195310832900763373985849958175174178447453148475751200248575764151625143714898190597173018908774977725540404103879580792368390387917323495036035803422117653160427882274142006688877901897201577782085787188743197644850061600160137076996626339432910126357871553495759567767326530078557120025904746705689636154692289192008767320144896379489606807523752226357613146632817818077611680880453874911318440839444673328889833729819031120095849139664713091319022151839586801908289389276934111614099232672771672768509359764187434442152914259942576217619838023936482838922831538627751624501538973027977418075332962695864272392408827037389116616525872416282658983029135822593255040710306485233963244092107127211675345670146730063616600544656565767310266998573652998270154042770869766884256277705007754583048682424702270211338154539002303067317254260360058890060113940613403123536994770680405764997313941571551298448277635983454467389801091906171087838018402292693346587658542221723211485679660742860283623363974636496597995400559566316926952367978451781253957484638331517936330478003413616148168626903428270543778193158380102132198020536568192272711137886951188148378843936310852684455957469555757446277390709278813662981547411512700652298882034382009702935686608492468218116218312704045051111737759246412412799823449782001047274087366150187536210361290735779766134753838120767820026322928422956733607740240024519446482971586937236228628205134145542676523376861261120158536640269342561125614573022681100850215559623491419176778350176882916993669615026905259280775758059548080573346766316901254859273808459355463568465668227361000620701654448264261658795624040820001709469066057579725801003441946042910157902488545119831483554771084257047996041349234950262390124759972753209997900372861404005268718252382034696829021086687869333643227609355931995187618871187811409811216327926669561837450078043085129967228936724004912093228945422323711451807518138179851764876154226323971707578280502664478689172564007346935666438838949610832194373431875264554675279529676503165043343552665089710825856761400823194015043377248458663360369994277282856191804193900200578822788637557194624650908633369637246483413492308094948501255632522943550422817166610543569479758927420453347197087302350138084523260320220880243353338932043695987273046363681204102900381600623316410253035532997044226297432122773580844899456020598342877290684395807940242609598421067138602119258258219658162934097008838839559930294994463993163859245101590961398802088069276254615226469010473972166261694674416614813615288980397364996736472644194906001886759807713436093663804513006737027947166789639685606152577530419883356551620422896438736795577211637202479043844754101436718646859690445410015202946229722706638128602277577389597778221849654746491910095041799960665213964758991869947232652068518065315428332293151833186917557768288070209707693910397204685024159974902688039716395203813355062003811671657770223715787895206007156855001409588787284233145801960541538393198539888413845032832472932446830966843293928053499220809561713310986920398840326546134070385908398094096495938373882281905594748410065407145827696002928026253414587563852247537870466969324327512990016365522140964682897140898810259206172154105091710096270654207045006525010935271907579618450263052658862859834430909300872084979884808206815880996140642759160247450864239743213051786426108266732833210737798315434202103216374553528770349237230883564307237371346168987920994689403451933228185830022465736940153931470170639928405025421326271446909761469531624974918093584145196712076491144587563407136378642462121184301379765469949189075690228824495559277937046371423874375566827995652387816934391596919704533114784037687591358413738127857545567315874219858344329301695696841738843327418685636770278005560139468524425351093461803413491481623891516069540045742693898674108932050989478737326943809228446962647023970929774941517451324144662414797165384655688173217130974929434255119061522293948458597262405328434471754969457516643013919131863133913006814537611284739120788925382253431362214942290451850643051099155562281984209610149099986075685103391371058221750850441410946929143580042735750673027233712879929556011691130524385526610876158272912584936926227206686698878565810151839884369260820703196347414855027315751810613380000170950344416112970570254330261144996893961674738663911469487835584676847819763158438426843315569013502287597546011520646125995730896378812743322923130308693680014383361951042545605836204649531631795077089455688432196249433991352595784569577252118299271103559953005132006826878361631225186916537860259975685332579374267029727942597636185240124463786076001446852138590098528463035392090255900948604289548541465889756552645727135771493579685412608200376607151050937814996609125091987323630952913173926668224250643880151683157860504092929750969991207490673148291356138160466917619488387245794381563465169627014167517496583969691770527052479907271446652238740909388596921100495751334838704848794041162738606561719410970466903022962512060538647379588915845712495255158854556343418347912129140264307505895678108752225347786235015222541154242923928291652073641131900976991099370128725798240312709773294666003529276643990345185139772210864311018628317040804477026510446872700638244997479169742527871799678840558382172259041178284913013519529496488566021883756392382832960533096294291735144039188979509457389944639464662056583313908896866321401214080621544079822227174444978637234405345374671080865217269947707083328909989602887397619995172316943273793681680891600934748011603701503742048303969200447809084974260710625412119888003013843473131854129003022011869942120433515957306272893001133848810969322812772287357881694277986278182168338010001649914640601435128814127540180062814297292430414190316250173924753454507115757167682588394759292815137075821655166620488891394443655363781877062470605208587446800219311912095964599909048115461839165583452138962936126849539191836547359366178944897465541049602016832329149971884216102952309151930032503267461136870760038356943364580334724027099451868073666537303458224794656011398715059613848414073951257983220956436800212541932510065916018660622697014665004331096750444287818285017545897218714564120273982256183051538601875160615033751300824440468334189499334047683149509241788088094409361283800522215479494105217283849258177408759908561828515293907736295794383950508668056703598963750538085140485182569189342612754668771619198974251303473107173514906933421476596514130523828118500409317084157033721180579542657744695456889049246834587012544844124630205437786299472698027187504872967040268108164553028748889569405157741805605650987733373517832122832507841954761163346825146485643091790655655881998966009154848779999656930825039639976504718115523263051592091816862653747470731877674340452927112983557970600447988080597652255553260069004545819182926288857361695245970966604787171821270035149840130819271167504722870603906951730768520010974675266113375415412739894463609548085618114303817726808928073828770879621347297630493925954443453775898137924624444083871530738372245129291699518239449336389392219814067580751139340198583123048416366854414705492086004162234585911527459293079671737595343228103142194715980277673196230521263113571604165125434314564439221209763450409874596041559658677634000408355916058083597623480738721858554630050439730353275718162450065843687051193417787620399699836755574248769744884870618571113986689486234411441847197469680515244783900417243991827639254476321032954450064042828798504373243555180857920862085869277828274320059277468425894279915903938413081117451598066834944569076252910395925323845812049965983997054741024316673659489133331843771464525158227353989544930254982936597388333509332729528430273683120266757008637414696735818276955470711515760724943977463613162788308833243652544666563911486099250943837199756196763202752910070346201634361164860572094391174046672594307307089734387938399733978830863873043348782850476561096756523308383243759275681597219638232081325697582693149876507378809330043340212401173532894711856892191604280740631230668672042503593534068817762081838234463830569821768150477407597246154038757893363666165402521683753276865995205214423043301656451830190093815093655634643007693847345479194100505436938948911795136388143579817452025513215037696653787536629006012794553418947165605930862868642025183457174016380157856805009275942267959591668640966220962449898376239412111271413818985814523157706046381937141396173418348757577452970122267853294114080150429028798050438808296404008188231255715670702294098157333841259864885971439822256999320787008248319869127878834982583373294925862116211676984883382764179829420612681363145719387291901052973834608544235427443631056623714892857131359340224983486298583334564604940182672032857059057007761951710499859472328038287515633375961118281720872207580891968947736655230128838754444768975283569332920044361627408264386412706562029802377780683611046258557785961561275598038636446679965109588972963472894842383800870972253361155458450221437691641331850341939109952512082533841603488844670486120423877149402304754971464116636805864914837576604081054716987013043198378218354543265199547355750232323640053542471801588448316650285266455729845248743646492755563619277630733228095043983008452489051103724327959455974031336912307130060309828833064122164643860448875528231090648261304112378226397632210302951837469176827939204418002110378384494684726707780288193005639939975850433558534722676337435871288528964254008000574942926667012152058255199224896570760284646513482702398212120408977180739044804290827127091252957443585455507541982570847594370761514814038994151149231518365703387083726746798347590188444014192045196398881926553108188004189766090749718483429440792482715675891528814053497240877096578178496525551516673367875007328796837767103912944115704900143939089144838607784899348493998819645593463536355933366886630552493317434199935847079156804771989303598545278811411084693491267385212062653013240425827215260547784719152248827063099880391435902951508713731978957818315273766617070782604486520435418653230647071125948695233510352091117650723310469936314105030151092685165466655997899464611381443991164279918042152154118128592368366060495187056064146643406840437929087773919939416146633032018686012026902569535216401377840652617560072880083856998600116952986250736680134051579208179663253701559934577346711344092558941070564848084070666207033777306783207514293554224260968275433745367856001319937728809100548218053021426036976840919124001998881579118236560690425232723536364879100870907769813861063251023489123376041417177913870960543270392387374890713699361309174389968168685924557232120352336862480245267983451401994170067045984891087480661712135342039519259941741580726860216222083880030086573370505845417917416347766274217602507497702476016190429800429651856663697192486517717768203901600801960176602738673894990295547275259231686580495587286487286658869919293437160459395697610545013837283406530826543423131313435229588824365767970211644544149921583183562436201774696305062002645799982718751742510283878086074893082641097096630025019931539906023331939382101422905055069172996281022332716255433156808329065375391767312359691330784727153233381777227245662467963127523146215271004537557281768891862373624025998851331230641717827666338342878548986566595883842837182292457566249559072087145427699692436676292742515162573250972131938673462044387525188521048687332639907103594434381195054646618950835498940390798368551191228058672690997020096638945784828730438522722896953793452068405944673449870474828730845636140343139082029813160157925553474078916004229550966088433291642698390091911530545371613690005909285925824535656761765641340728877781618185162187214015653048931403497876447997354058710510940508687529546157851189204485687782843475167716547603628436363034234575764640643606849821391506663058581955532790753853662591987809807642156652262260310281978895854912001082458287945803354616795627877137713940928335961258538416696736420067168372751391070843426092290701984623216894993399004966686256542182373890003343265517624074187820958688939497143411767682730289164356787029403655210287231969132914825959210976457523187363454522339713617321786529862097446280786051532985841616989877649219978471687296073943252247316686262935368417547993946413681210760929637169725842598992071650608908013685301037933488608358601838133332274076165499620843367611889334976890618026713209808628425208125550449283158251411941812920475780430476700029578733336981442852137659724552742086987026747100525863053107814720768658691485747351165819888444057469941443041751713280760923040649504889385345228606889641621564926699872864429745603015030462037109928236781118599935168529151900911332131473775000456945821270965532747883467500443237644887147708356900011078656257759580529690453120932835967373056086394561262036238906180852345594545385440529192830001009725715918162621862547845097079406344539508842607714221174530969041560990309395816580609842272762148233700442513162356643816814565938694970465730637362440345089100385494290673332678412129043817147056120356089950108080485080517318552133462497058508014576618161085136732358094664116016744285823410913034374917042288151222953900864585097315982497871304535588605332790360598560342338060930541653375842654153636481250499469256045841689922844749509175120731644529597727277325539243391582547292081138466462873225222939658236176927168940290362628503025732980712027372810858680123941822346635249525001509273285345063507109889045704947028814065168372672057158361529035263992925297518104915388533723648180735907694334538092690857320521139795901098621395524907835817305580554463255154394380464747740630127656458571668889565355150941093754165572897089570017189126120377245529269507897154828265314938850821265326941368891411837987178830618889647259635222811355415148216340610557952713184514537657200317841405824424104927988859553682211927368133161094746347841567276342414562351018950094676540794260095334576555661865205281068680194045436987683712296402399097570732261197345779661586511244909913693400883237997515550012545575381509717722579223289693469260807630572396890822042941102287119308741963899579561838825180355673089019190329357605304321395228770419296756280182631908635579174872228881372619895985814693822554621386962843114082598030462645130664818914120664208588252124725883864499402179766504640048234525695658338703377322012184462910305691009665654319228642197176367196342092365635489382626924896245560510128215099391216325416626418538377815204290308140170224000220251731585018015009144892977271715362824504998863798759878894170851583821398469686745096583939548021437482322934214055326558336118892245474239176596824486928806254558118198242603707504662248770221569546431949835987773175963081003198687701731437190171911874661581973027166819738361662947569297483142278289921085529785251388351115608167184495151954586148223876926886975539583390169871794834691242063279496154652650825900169106225776853495096785240826514246771364883221531902675927024785885173439950286021887481855537188503343562945183276649211145047113587714340527240785258134496653071284362424215220191298861185257118693378763969160080767353039587389016342253783599566738993725719629009487407353221498838672257801156912665965363478267690498986848364672353791499120474686161381603269376005916280146064876690289634554995569694542633746943916368676466331504101422940791905793099595915831546789163530849553541343187830684832334867156076888947777639802234600315031293819041193054715910393818177227513289325101115135606022912046367574736112883086095546482264550084793520816817551229311306976756364090965151001983873300314405895801756012355873688575271660158480675097684937872218798339037409467445393333433011488142389416880651784479358641710789917656403813516015937573116092241751286966127448316338963079298432631212764070988593811917548469237151700023748275750058422873509285411295459782065028496534420525335129470996927896016238968703399011469973879141932740278524114130635215190160254800350941509941777409299709478677726884750875920503430720695882248740555897605769596383594805209447037821009597978599468030739700605966582196478025286392716646906472370161511237441690325692172479904070099584102166010073590079735383809492194568254342886111941446718906011288396827534363185423315944772040264298757939578860309994256901968534172203540498902981297378083111885524540289014033143529204626317397947087376729263797173806646769036877722304301116639892881758162299954341792453404978498312536145481500721866601198013193067293721718200310052080550972806722781572260696824623204135496409676641918665123898123275068922512411804331984442152539277456930639993635571800717807855677818946881335199465244758934912325422827363222916532353786336405113442008389807924675178413924668667586355599585944706471110686938138840506375814533007509072533346239472186948830446532776382690117512637379136055441271594568099101147130061809791107889174042209459805069774237467315142397634240296247414858105537939151296559939826356461249771228209116450633790833405461780919112250601518507569529721336057538745772144434318092874804579708062746477906349943435492850440329923444323939997756957756452412832251336372525426618481743617251768885982684659057497026545352036459962845370450469434772747917566167682675994877369353140017737705050073481446654005969578038318637309242712781942809248364780658615910451073090123573798969152305299332925822620495230026635412636618845034846074835888219883085203915233607830782654631544511137117345436088831027196960842411744630660300376836628096896154547159019345994356663516471152925047294089058493061594058312812799744549317971754662335471312164409172675496721040543651799845520685339600850057264031374638500147802982972026839626511960347439817022568396131358518950671615518281156997460868879594194425462328602859550241303625526661995914473903478016399204076087166818244269982583157127353454472698075109011826141170452898327368840703119074253728507977491559673003006188837157379863682825766756427541449187428625448629930074173492642682317723473339595630368402600348654224804799188782975846926170838018658501692969317828322766307516933224335177778917741440950532297428352731012851069943532180196298389848554603846865029185810905282823639068474190812316784518346165551757675357154450466442294142751472964314656730962369172921130882295612488883142231664443888186046968151547107871111927776872081091965720275355104501245481173964599320609022438192272653526504629625328197467004130477779959812610901863642214195062534644469486801117832382571017043539416290084274204486862823246956786327028390730000405957026920840045779792862250154922099278021610400358205126713824236242883292047204712062392028983478344007615274884687624437995142780762745755560894815532882925666413186767468297174418637273069508995326324890410374012984832129021089347492628201177406022535087735483989332109263246075302321069475102551861546344981537755202764552837368705108144578144834758290880897982184416964241689185103095273143395252315021699600328750483247028573720641837873478854381142963642071789770968197092314555910784095616139670142380255040797885971255817765166996747814974058907265088364989953458763082582476173729125379573652334769127780207159078389140583432713698538232700647210534437344248256260192510149770197522701367830535587541734623030619427395255430021159945503762227193777553159359427479603291058738609433376364801730335557664551340221280585154364012679330906447761915281786555754788787838744574935862894453722452164856239424561744282304825787438133495494998705921608883303377432406717561231141571649659236218345689666481861388438717724653673050999727921001121515211360759082473833325001078411625621973155598638866656922517993512815557215117048466325641285985259137276320569086044763764195121771816296050464988221340302129873413743233443578642152033493954042888115209502888356935225815674318049306580261404686107573537485048950411055216187682902913079831661344608819465644831734188962525394420085486751140733838014298462513331024056036200812686743211468597437811827238666104480334586176197468619062542864478848906229756942656547773768565830496854375716604690932757070138746596403382930412115468615808422351948323508592948925803695851433836805213476874624392340700203645714203131064921227411158259639575981526067134326723022294198243439168448397306367140962753730259663322144671578384761160894833897721700180470186243671135112292952296908221926842446347305706240822449093884588985266094242950838123320733592996991469203782771628832746964989535676132157227223724378219797007678665237992174625699556812554198081869985946564313799684693494617895561535258397707977250470996508842724134901453709973417841222832365357385141192140003497707558221064577687749364315162606184926497814198560550937408520633243325479044027346063220237518007354570769077455885755834460545296657628692860460137366035772148608242829248171651820997873092095875199893292724400879518303659018244349015677123912477501019563108027915476469869713647778530149045141953068814887316342383727341274799888291473296344418458741641475653304358324650798453254655043478723105373719033506719845190723050656549702550698575691170452934911093317735187083431678475348682260765423358193231615145728799983288573988902618801980109579455811621623669668048798833025116259310816247601457723072251453306509380927790482267638306975808888414105027929567322579335590248534887304346832928197895551066602416744160175334047512955976260169785038148073673133542548642140597467031016510064026341437005416093679534419816110960238531634157003949402015798771550920035317686226941797915980637785355252602556771905178318370931392912406598815506441635042401920723237337813734008795300780918392876924953817338755549673574890138127475032667583359380540435949981246313761995633903440153690954746410064011700745569854334405382192961232555219113378239445541991612178671509509271256341908059815335115482001655176614657978383402144897526540820255371309683065551955163180879491395867852961765164612581502250678286133829164134322596951708820917719068565250201483317316810859892420102836919972772595809818169589718826553630193628919654602059621668022786181588398004005675351241515165059984939576748126133828899646377590412524767369999923553022831704464089661915161982171505951145583482672676511588832358198295108092248964527384439311179602728077930782321317963941214118391000023865576630057858678043013069560537829063845942359157142536336745876296356302447346712724334871845943784150085306766312889481772203531941198567119960552642028809749660703126148137835299143091149897752873020058391608893250611360940430343096647037007933574729239851167858930651422804051930444967093627815664887276180867188879770092905915961648741945893346702538843843111844694408238236560376149920673390343307527328549100638725763524548635189641648637780618701495840824067525180270085900297675843098987479075200926635920773158390517328183232762745813900834453501377898788018558954317723190578047830500921752719123133316647476839605839653766943159789339400894063127836208401147080208533430579496236731071335091187350483985096814650199870915403561427197821700033663101561497726863020369647099444213129586662726669737427502852059028402321339299958074134091702493682355283465472171846277643702815706645599877728372901371529782107920377313635002968287909536954223408658994385200936531653150176503484018079882208700169505624558852349196865963254322141441061323945985759236734598571104453119824698143661235633558800608547409244317250735739083416313516865868547863702405396088655030781094886598991302202542784307813949042053102321777351026992701930713555034434149644470017445098664865320131106421961315211505286070564976258056336288901497288089746358360982049043766798845779491683595860587125689814914340599006353274919103598673289024345214981764468778191720282779207482204037590471938962123803468522330669836075770413158257210144433173798333632898217479113362785658055521237169577902007364758953627600639180333159366487612903216767372150167415967186178796816257270550381710649529144881007400315830181966933570841112125029767051813801023076985447325514510497179990102747779555156641111092142999642208035320211128355172352935478328999990703602146223654007443814233199530796301710311540108494727362521157619579831177239538310045577707978167904886601435039706248090719776521920354844402743139737726065059650957103200482494487283804932775676208634159344011974032405726155659635705341505276702519164236705947280417216586197251216837341968042793607636412918599085599097057726169517338080865033148221980957921325876879382095091539354276366686836526110276842996334590759112988035796097563798985551345513665336603833198211792479002184366214115960145383789251241216484021397006810877193493793904042953553855454619943715324506740628766239264561865028167796276703980028616847283617036478573473584651788651294718704314263125916311700356926997327845228206876134950729086975066382302010590593756440635230222434915499959355107941433647910639312336277401180867288977613295853325670326576876606047690305206970951843605689355220686606312956306039992327148804384821656180940309872123599073470984773269112297605033360379809772302716881450314295970320502241456608451337060731067434493998821983225859546370921543481157957680228416719572833839692827102400951455603654097437076340644563153225356564412276128134823628762395168020426547995917584395391841934816677465885060732275220861238606702909924569190827268384038983951253805924798997924302542716467797185237821369617859787790558790936951503151446534468821124979446530641281576318512748521347830246141152160913532339589993636810169811229895413075764206766003802688052190683978740979169639421490941180800899138790350073963867934902710763172832254062555423821987411941119797371261934624617680550756735217394931788956590848295072681950268681210976342923248101289880721409043116662089168013570948299064184946618820381850304341457514608097413061307865649107469995801888776791388393091870320892239363649708727118782850255223938319582691928704341073150960144064957859936141178954435696957271046215671933411623506530490985900631267553829205578865921036741860161988169225927611120516186874599290680808153443789905722473526872768546756800081658201920477213484778279019076093928436383702008612812012713861100255980669610963113314538613026535519916760594522903133098875408592067575711070782258207163806043784364272398726930552896183734651622864186380522185309448838399409462936149535338264911890263618226031671077614312674210659849934443404698512420486434328387725882157658585185916192510214428421305264154010918084891583880993920767923367375038819533134835318183541577986116390610217770180103433785219654418812505066711972139200674729084803527572096590474600956452214631312504269310054984318965433109267696636669161464264026606520008526929378135235491058648442618755175486844174529811291603131585264035127765289014494527075904736379690558907772683610157000831103273799255418229590610183974826869948382271641663182089196399425655068115404082568008772415696285461636112641468645909490101711346205516183710588500440114649092457592916141542611857449995100869725706625709290976645551145126431936132259330971093383548087557206190903395573339393017235623889253085779631117084308576963824059219146524688964513286988511508268547710640562438222725243492403724542656277658106289536137371577610354264094125171904474298505935151368137124460064437569560740166444693609604974956632499296841034021321362415305664528798453152383573448142243583083142123297693150403764528335067940575994467670720292140018885410764728448899739508344942328262270105985493044348372646029595058354611862255041201804922344998850241997116913210084067192462897353633659146873218497676998546303460057247676315582216875909417848298934090212905559682828893610980788177848580131520128340590777182114445166786079975446778815827838380249013327007685933563354191272377764447644432531118574253498568704714826184637966719534627681023143566173782365484536004464326979577938891607237014072542056164581806598648480899803126601097704623580544129372430866327824813455192726519565734064750605358011983858710476756713458286866693685185053565228947650289336226784154795889337559850590519872429501211939946584708543456932698097464477107239960553020093416341706709991695173345881107159302376696510843248336505523195016437928386260684203746075775482187057419142249099657928667111347057889312686018429780757073606851105682424713839775089139832351685979456671104863122650884367028784749098109286557936877392740837856816902953434516928102479084450771531215204064196548987059844843038231256339517493455544328803008853526949877263613460879595917302982166045276000495083530356156524419088087901950957957810491739845221893586820980733237315173064208863380777582507956876701035054906733336727141347203672403137801724223605266711568207907570784731499902090173448767909432114248347345130512306512246674342010029605193826325843970687511836238294285261020675836831874835745899105003672141629935252016388025857873320550921553519951624138241721085727097910937572431247536422963808876535591714734915431549909051973138273781981848951195815220562280901129682099392947978939046548813784023445296543403719831141988550354252981387023155478426202474990808039700838391923243793966887257863456346483335805101984581299843699598970903396888421073263253261063003726073154512943803998098318647481044642094789307640144337354513594711465981890638306750716424875907224842103302317370544034512768890213160114265885660203777903303577526478217447114565344172290916473594888103299510444945190075356873104862059220608329741485999399766552798027836309719701333466785182300774863326949149184934597061716425395182284890610399069036959495748336604590100650544984610038334731956927504665689295746755882169731182248540522074372567177449389979108798638395511841495156112653803281926386679546869560817646591224978807823349218564220848044830692408905654949119877205434172319375241881666393826542132312510342558743191131830950363192437663970619933514070284297827570394801659345233222341442849377815389233280152423096189743191293287463244499842712703941787297898145076908852011927864165968458634011021787035505370074774667731028378757972193067490788538358214439782018817476281466161400896278575263916949014921504897096189200941510472396860273099287649036714929831803009516601460980116078112890632650547662639756474549240164225436754360386274375936121696459321148177046736753215001244434994052226561227336199352617588047080670560394252214337970203287806099687261247817365188542945298302705800765417535470886667227611401473327858302378967483398529273985388950346526975906203215174066537561009931102822367358553512434665469839627481589268850453596229321114917982575714790835568510832710978708868800886884162275480160064037034902235603453520137153682154612616400579863829858490937946502698567866301778840934280334421759983267321273111260075259727933396974329025670325074421771807515886239510544444122790399983595588044021492955782460633034213405317920715878536524112473246778163446181480900905743280558582936993455372266480366137535263317901678825996390465087214597391633946527451808230679672577256225512783694156762750976212831858525558131979687510383097829179449584531646353660357105672089962510265292421322153424084798031638713569254654718619381132323376117653345774690365322980159892420834311970705535052302171309177034826328057988917718756893040637538077981871872508320685875092547976933122922257592426898999791655158356991657738205578654704063364621078262333420666230618890148389513841961609729299878986013711418788768246542614049258876885244157190719652230281788688517054594570713766193387458035361635700902608345559939211924467284882296954136690604798366556622286747061950080847683081582851086638938889667917226966295026827405361232835149959170414916320562805743620057922155260390962823653627252250751643781134269073475484930296698611106117068635442992222520127317698073667350624791535439348318550424233521458330738354215620016881985392690652901047480705209281328006050179326034466525301710518204158568731815726723113785378758370057031400533400756572008633249278126068227544473439210024621387321628842098647816313336950783794349797124468387951799842977536639546291757297059207270451895389417190503200647924490902842204118455515249710469660047595688287079595846650249457094665805669683450852434763350627427462073601413061837866741065107476249738445514284026149061361853301971131614755175168264382370832964060369040171104150373441858457628020351623563844469414191364444681633101900620491237096373936224696699395616784261015857516309268647640866809013455465623452451643775231029067250453581817913655237357360383121914602888729002129435554701860268953162945051585211806003529385941665597256924084739932980267438178355892769957939809260359599613805616679434134999333363970419432218528844058416529540915059333026669681378699349100966780578162175595826528886694196605269023680896924726251653900603550180555933654594028785854457198706076772092578290562530187303057279413101891218622813309193573242720136766694903773694667073925834804789403221586908619586492721420618093328161923095957091867681705288277253603036487664282495124854535664473395486454766833612647445376817531971877138414360690984987032412906903644506570374415972542427195904453246038885333345647875641001991189970925747682203696218679641928779756010221621853134045245437698043307896890408862015464850956170697179145987220713242110453452017860624993299830969790032425521485978614601515706396563470270796175448261308686352308495796662369621046891366348506530179994146507943014983182045823420478447392773183306240403181862324186103841602002861264317197603885428157395470998809108306654885597979788411999553055646079710501148364345246743774085636352286691201009887344098283999803230643075797522763379344386099718609758339469223891790449985286227118133996863636399072755655077341314026231112058480725931200778952718762938083206974142115168806374626556691611901312314405215649529700281238181667232954650217045887691783499016498829754545704815938743347013991036886023911591886549000143578071473345109447836444208358140999170360465590447607161373691578470203213233302567836066681607704858548951481484200967310928550102358353628405977800972420938802883821443892262211374539583440599820274772411288153339417375370402135091161705891785124483131681001950625460877971231438868505069045380921391486734352787167628565211902262305464793273669275140977284211067571945860385486442646025023915507937926761372641958037699400103802610589801732531605420405362107533642273011854294810364163060120542400066317737225207500810664376952774451059244315878863518405595959134266655527956039337781713782129021909346374232293324214855329658295837135125646021588961850989627579283732017130950216814396837440315051630434875287884785700217350499436661253278913069238975722597740974372339450540113195489075311563841371344071919689060722170240469251634950513575317332606339051645475960446133814820950926223279554866999485293657876300118830609716207169026234670706830626867907924827725512169847431187877999595607945927009435329825817025872218604448796356119743816073630321952915703079622586285952998704271710687422910915105217981974111160510245954833447907875000812366330226559178860295001691180385848889482135972562578989049459422467449872709471202825778585348999843358596332260260024815050783093748627697314611286510595179803860781185369083563868623863332792848508866930160560598772553109231894280635152258900054636558655628312163371839278158669876838963982498824756477891511322650135151727676840225962237347607511874546228141363165959977638411315430634533111817739983407879276866943677391128993203752998129178018357397510072825422678658030391797334024608232521931911126403669112696131587222159016487739941423869381576598822298600133753712289456804854232370207736452159136994396226538150428489657120142662274420440193256120783754907850328193534780578502280120189986720219360185447604509324714396138775642961698485131531050467911019191840227274787414969068283152942618079115273675108241253762141871582183212221481349938359050679710286052516878505791049597755349665200561749212421154287663526318923842411393545479898048794551352719311930680119002355750458778086190786333537732202244012052038919379798996690930675517387653668959231730091715460916469583776027558660938981988659596248798681945522403352009757985548530095173560934358395888304069440497060034565987416119721399253701776283013112718465019023854492905004039610201772753299408490886008528747038770345928609809179963217282882625167112390796451793803146696278122509640347007895278403813084496517336048922362850235843402755384854732243903340801897312394629222644629903814782116567684082991926389319038739895573129589956472016398048130569666507658657984437666229518120237208505725648063113061029163985363962898880076224015378521065999998515570454040696749493786490583200177895507674596110164637782334867298177702403069164938275836526340031170995455031528246211503525014638132131069552117541864684173397189714555045567486394750387751760584825389588701962220420967219724094291412575030576705517432349065368506978934774772305469093654121637332037111192665196280598354130298893307626351646404216197921789946885273164463750473557096819771010857991420742932651113830778993182586430563289152286679889397115852490656078256424239284194752387808409847491384735992943024964738821339191673263108048478554676696690594079484783152842162922980134449162236039902543190661683489009894166564206308639090892839576587835827783399826752742124578065165825683045905358625533274219379153027837949913349919867706133498225185168281720520265415979759849553794017386742452698648106652305639640537272314285084941408126912021677293831979360363284523326109154913693672150075564625091823984233100350951795456698361963356709802353064346111483010740729412121382478074324157811192069157154955025045298129100306705267975161910070916266898518870122509629587406399289685238106574335407089602392610125874916864565723239945061546910620448008824123052269497469558310683622594861106228934272082159997908337900777321397126349583119486686432577287719921877770709657420712159847734913884841929438446799137912099271459222677452463073956460994102731315589116257518273084946967713882625017191690718139492880463009050652997329566964793297481130325331466522835071802467767308291619318679467796594316784174458722791996917078862658750270599217855703542745476439876299300301722740378424248932528088203068281483551299020659985391014609873918693737576092481860009814025228681821744402191073592326842625878240907254291900776415277684934031391690572316578365821953619941707171071916385402060268555814286767565356986728311286173457480571399106642406592178064515465077615672041146159568128098710363497004885616332601291168829196708488524318326189048108937557619388223705987454516040394474811037733704087714591653350763826103276336473328839738966347996487569990490372736614125237890162187522042323080305836105645250602519127960412453928368225167437603093403842959520593107850996568830872240147186892392037693964320836646321534158700322242563558789368166068403686247525950911422410266770638855110898857618000435247759286460320392493833154045054628406241700954907797928551831390872823580312939109881761862773949761238156591792749330981863306910916930190627942616613622190658552348731491163611841458399073674091612578437865248703497173017975193507617840752570225334399297657239793123589212836742747750691659981868960664224325273567355344409533174475393750907409073597406074438251816156860520286951865114792682018808555100837182433132921390037833243215824073552128595223949257235342331371721350153193539541682656969298956339140678862328787120136134949540193378042607598670025297523687320742829274884065521886589684711350568130114541736675713193065769672642340574216422812132640025418492056029466062592394499425581137111794156253629784521497892105704637729175236368756479686440621621413868763947956084756390887462106487798612439989082380107539896531207277972741388571849813411231647037538755632604295156086566737315231808416600759577605058165588916138695538004867898701214530092435098021813604718375307519762202218242548700717298522532355116475889910026919529437711651613311607134696714975808235591504939181960844001957691067437245228464964329745107809127215124397510322762471739282967075017919860785781849122318516512093092113503693358882486270246502306503477795227723695401690044624694595192761517691581452788447002465863683903360027918533786975038218396868063710594922586760526970506825270079364190055958600878912502438691999269710011347868790148278817653012306931453648628741358329152229290528989979493212717612557510472392726152769884060822093548553513225524176910253313372528816456834451322332594974116209786571071941553966239901511051652821519115291981015398421337320137630568428589055847488125849143786632629801302360469782099461235109308591856648372142510271088389054419053464018421852451757617116139853264104603379735047622719646654802035395196153247873406622038122372083332710733113106449741754583520077740554424175556954396054246890558626444635891405600654405952806493028790848636306599842831608899820220324436851811477918165934159391284970433286538376749824012706252073583238247330612732045216073878581627977929729815513895601233771538270417619719955846493351181368534950666303231217159309067601372451655009109093459088908561257103847592028139780712804516206908307093369910366080157749848104942362125727471980002238504495154752467658006182612570293274471307761803479351419439046241324677451048637809535724433669548515223859211817724818818172857058596019376983846217502667857226298671378742288583697254605338210630344325312258226821142685576004262725861450958669211258509520625671711729551312163601840061577428399840684513293852575713965144805332105786068110177495357956824041333478790006338131533606894758969759790075819139192852525696885118728448846166228978432431161925222393992894256119793765056935853771051756457500797897293092253615243957765538955181153478735797106097945563515068883067474451141162247532606846650379863950352132387481595395440328232072272619409670459231509804690262823508135054071706357220515492682441167746686980624333264467869825889469278735592849895630075297062013200910147164022990268897620150539860221111440264469983853290335674886572400832894239917494108719203242080168177092285723759324745110481625642472646612172896252510044245396216211536792042011040301662701884080927627682639396335190538337737597345612789753235055123195024099911106714991598541838864185362978611420858041217035857646515796621775829509448375508119727652134488771555527090288821810898334475996744338238919831918222074088198210234990330002310544605506120205153237367435855422295524682604744356176775219858333063131104349480882043249382405440494278734469896796567657175168684536447970607353295251882585843904361486945018380037323612904318863085080269170603395871746278366367736318085307736717601868915116686531377750887964189315801685469766393792269823474380741860925218939421770216934113367968868966300032935092524431159744163588922477588813642710140832039590256667462196913057420165629464796743532994231571284260842172973710239384439250674554142159462911687386184855263561915570876231251270412839418465282369854567116999034484092877951025829277420558001949744780420244764540968464349433985515721560309549567651469169687065300976178973161431552693827842461494735839111384623004562502339891825263831821786904130624846823322103960206410590475456301490051461705012994393490638575166582820325638989915248859546830759942647158718668173743767319859035555681827946131668317687054812950788790817221758785934157951343132973017051834555713110592160558906552195507513784956344958723873220677733323104724279598015255192991164680407311674990257905387409509364282934383566896367256399021293298908739144300027160781688081436360983193763613234059630935747951379962329001826695417499157256447107278761391587599300863285770665112070244094393311170383245174329262366348309202161987034187902905177555794615097095373294191828920407004513315738614914034114035334851511152897306632650739006353920796398963190946104690056392063813059123209734424918910382360212720645496940458839086205834274408342154087060411102317111050712819386445814032545651099426748330416294405912177904860619583623747695109348115322543724224933419366725605801910319969292508781307853452671808155522627032790773550906594337697472230164471011705112605752642160354999269858786041186281935775102246557268215046870157935032452629055913732264087035907761933803314019877498871503938670953739527450833097202541133870187504236411035104990076605249279262907679167634209171215430950061120322926877750770224089713912900954149237160173928815636874339782202930336744476480095137636351679685646274690806481270280363173546909756110866444404365024716259089480447054290207719479396792333570538906837179654870253548780648564630821898904745450853405919566686373815714806131778090592373078752382002739635663931608685364591687892399286706146749908430755364009036080625843459611323661672829360633734785771743193067825931259780838985260727319721155910577726606834530243587620921363556681493226012281574625991508224283355655143431508568092416079805141861499974837270028621312831584052102967033467888218089564832296376660019949653094055012546393709494932604577408824984942983093260079712960999772571182499087587171778400347582358043817925495169249178754352108143230232800919524475553056971984390927983275922252836009130521700940726572068963543371508670641654419952259302323203378453772400896028431879176123004653933255314188291875609486178160184842820511308102009328972996854453872254129197846147228064210610621973531471999266726417516609128026238417019229967281086896072400391278342858533875748504629984860861344502662428777869729070199581686185153435132359486855795761846927024278603667965799138751052952413674602910579718495225235184713011793338739285109065267935741276804531690618750103900910355415281797589444729727263092080291134235458614499969577930156640333381980981170253283611321687580686487553524391256424657536195228107551662840505877243360399222012745186805096669168741547439237036955835039314584010743155280351405097939957598715721722397199547252102010412738565184834763425409506101605450470522968522118898949203760609227850527867682350197631574743447627944925910296496228480602922039792037153992698788140507471240395931285465913789532776992944025662768786779823965217037080044925542912902861810511103938799777407377707233136051598167862964677816626138731303429750950525242029492652808167596903335555158734172333309719533121592554245018674744811870445612809609029430372548169912412116650722397128418066677133319893656692670304038990128424707932679740832279253828769337683827478130706389234626883503070012860330309878336766610212813311357023739933591921329645482029797416988672299257054624052035673603051449170185061914060908418113518284004744415486313143165064134956901547301161843390417556495840647064710158888308281112415248129624805961236202060052816061330907350235785108893760707722641158055102422839659677018207076529738491261030182110829053831918863220220385154969352944563768641127938828420608938874152168651950268452309415296529227006490713730636400082672920855825342926198987749030219835189437569597942849387667191851192069515445233260820094648178016734428733982529513783550578670685338498507392812952898230892499453863041138181919805851476018073673103974664531930091908920233076321924837261703822978968983899767719751295838231464787150513915134608255034723778544935604817052596596894423714308820758694483270135424214697070538750634550561518141881439769481759420961219198092838963530505185556493501038096345884067791516679385985631907851715444409856841702734183651240178927767033445999545178453582919483443721655214752380143447547521738603434809831601498703166984774164192156703496292653783201659787864503937489091326607027077850119531301912526150112154748260565305583530712532276692418547202246653981399778917714117950539775802329642248750325497206154656573526084014182499232850484144509648058076275004685238523965595272145786845517036073024879641250789830864182003831497949417640357364108434256851589225815476350911186014391550675337121743261548048448844151901196371082763349751293060378460454916694898003093099625450707681853291456059817296018270597346081847194936361368754230287153109189978708124173614559566682312538142035416071116212017067756259103529033495465194480265932774090880065406394701992028983279881518888969804864161845413659597111165106411518886161609398194713502984756933911094270167295696136547047132300283133632951811973334705532112856711578567050631188105737445281120586608679483174134792478681968542895413178216049406284478235430907944705125320233062312014975312805958737173967685643015744304929591990092019288957837365695289942066043431482193617082067186843102813678743870839052929489797486762313341708941626182166963270962695598176390573472746645172815602834811509278497020976906960037757417528203112113146807781845489034831270551380977107059823335178145537771587490111875010609045041438657103305459992327116033585941751613966779063435028387807108093565456170665079923650830585437400412102517007877352909678445924721192784493667829763851546015501407608346230059707513395128129086178883263881258485061065148502469142687191613231739151004110795366593954425473612207729175218460159737441653838294589727794694409538879387009376518302506344819025975279778487530757825654497198495606236836309246319201138063419302193833653116566521713912356204190343693141935045958771382851564003100092929100305563898562854112442212152022423935634037581761842531379258578127007107187952664707496206000846585760812541731817039298388473396806983485875571167095495874704844570410880655011662414088659828903898044436320251529409415884379559944513164860039211783678687249228068260135044793428208110385491499188345784747448356302126357189322397711735806627949225782003546060774886239421991738696787713079223202049347638767886584931790006253286529253076139793354547423320241340568314406038631880987161222455130087725070754812648904368695080219120303070567840150892224418758656184065289419318003873508085685979909324066020819157976125899349692206037235468435765096233369844528018767798723411414145836402213260837051840365682739357300560608215056414968641913327629007190444898559601657896143445802715741355926331863025397029355902198217897053281718768730715105900993645046855288759067320682764798024645644999110417311353765259991576342083745768133080869181344176480206103790259997585555994148200980350530385622610752763602732324638947650367254730214588724671730206050417269477467509243086438381440989784627079414765228299652793545383213445299652956447240652397061240876942516505209489897530347611402501374123208075357485795942935072491712982800898712062815365611829916884732312086947498175425849156173216288652402540831767722577401105580127595052760586987292762739467174055623940013855335242928441114753494748629984183420411804176358914983336779110209287004888215158639697384315253361760702847935059079135601536398448781998614387304214304864960457397142349534828017099709558623785776937845930523144464536483334192834997584447599045222876575100747907618209754094811610710777587575826621603488908256766402060949746334112136283984286410893585452483888910378671486909847895094736601074511624913393588273319771778463527276665130483708952458100257622229566482304759900078211386586009544083596300592962703439709200187495554697648371326177443685869650342475212314294097693172534565146592268408648749486837657596943247897146608086621625425040148121304772744357679061369979512389751529005669047246459225071079163632616337603031769674013288374750063086728407388820592990635602807192060095619417260591355117963914913819224508980486763483086067678880145138192473705479151128833439680675471403869590773059910096416614924464851408330247347304271171987490060965634224405418849949616763096720889588366309511065912194795219651804174723631659771228491642486063970238948401511583959360544495673910888551934889900348253509040832589983837231657496810945809940430628158143734203160052404401725464601554434607756252692913949478630123670387887220305218336039685857941562434485209237075239082346511606263304857171574895820268668380029077554141512407998187517930263921066744050915473697263634887409427704597499546846766229927769937652475576216757019090338693394429182479125321241500813100743358705817628907076728579996148213593935157206421473716352682062639223716643286612370979626562362953376181099916145161322049812976646528880465723494660174655842890944962470512182612345235265018143800474369947652619581207121621837961422617048956778576740570056760181554783938078320391842615905823661220217956969604214218404442929289624882228453655338539164526658954253273375972588372726239747362692946955789000496242334893875145720806061202254284334539678467767152438954185327312785569557502403588208629500732120523141173310175245331877389230479477787938062407546070559605279695116750965985421084931041285959927712184445897370717400048771806746075157711545073564821511111822460023484417970563370589239876203903321119133438780349745144561294526516063750378735609423497410002855261412877419231570764337368244780542299415935801851394098830913517971498113022293990370272358323647573095375230140398676295153382478547144509959278434081714703241335180644699382056057226743529525376823843416932475781711076500514068062608806103303965727497726764515335655504479396827777398999365749658498324431854373106928826589462781729690782316612114629368844694554350111592727026469108872004339523114236379519627733508826599982428653190734169466284361183409157347283802431211325283848041304411329154925436736639685011161183569172766884152231613124675114860725613551816985729971376113197150253832424189138524525881648363647631150611748725529776470820802758318675314753782842185481660846583770440770724262893797959840731588590322766423237056024295386589576253781661385299409047853816003039816114635799448759056841330639208923018652726455187084697195413023248795903296313924055802297460816720219323650558063005595056964058985170057957472510497283631554471242913234527410908582684378363115143721032867087543540776877207634659870655735156484109199252638081905372323975566031697473037957167195030259222265008686838754448249086655575278226627003402463193556438282837982176343260361642839752491481041039031500167958495647791659746907170034748511631724404576046749394050583290682291848120863770425175791980296741415803038230142891900639505822508992732530197106502310394808674605232594134355107753763858382280909974549074892754508872933274770399368312115440552929747299836629367509893553175808330699224091073773329347611542944151179938566039848271574146166721758365989971975898098015057122588449843038429375951172174272268958780040909614921291891940032621161756623704014793141884484118248118193219036778357700807869649898723136076011909016236055402549868074851274439201169901183504397580412597849168697771314225952568507381229349592255295504151060988194084353522697545771898793495970099321962344471312181467358358721536493868413578715885209469118289802102505171430981301201937118489152582757534676816707615381628762633225880188141130574964616435276724477053656686265826412611399485081008883924433552636861767212128466058608549836423992103527243640787784880222009247228526820849685004418657038277154119570611210197845022870578043667532664241679336323823531062025895668710904520935656147579720809934069033917575745986147203001219021136171010329963908538021471699577069754178520492839170045976166959581203811519380751466632989450039626058586081691356030766724602410417190159894754557066061041873987531226475423167823932063041502075792369771156229712559226408008678281666064432383730421952468208628254754695656441102367810015150083040826534614356453718027626156298433528769527917896180681695227001580613438623554792312414793651225827479226751634614093636439658442621682676400232784891179907238244398011165187213994487416354488748976896047115651680851718131659966526728736534090862653814759350960989765516434006794154552737894675286143248182648953572869386303512387456808237887375714052324567446079794747349761362416251865236654794759075856043611648722296663569388025861641492793487951885643073019021923325121533146074365887629372478615764538693640268932040087999359222027127008978641537547951483543505662130650822119446378767305405249019693283468116468041128467770145354214160153202484626773192356776122954553171387431200085873206145012657962303322723579140591641601339564141657765618316137312454076217090882270229017297407186373606619298813504962082847634912191991274293177888162865888545095774253237062445091162164303917277373607170029181775527027772592954429231564153940973951749719206265644300217710518946056050073584934940392455736433517303984000823232644283779649792391442873630261907691635390774017762800456893326802661486034703869074408907113882651274712469055970690347077535528697504648845453196332732146020681335331377755157415719566899414935113311776529744180007575601691727587513565490863632359204098375493711894326780612805475481476907633907388602498987807259473667420480503818517908779926642069117184228351875434960035166101094274479769989913450436687478112362278290625497988815619263325183889076509976952215860077447127371694272924759019831470749708824333454410807917361271250220974973758722513955147578428396998050874902907423594353290231896674400857651341001526357746460192643889364296425201264788425667394216593425692427177748059129610112103057339788953149732156762568918460843223818497729380788337845621315542917277505604580180898605920243509915698072844737587485120235090517895214431468640703651305172817599770144784214040433151863524845654097170219295180458027906998596037687704572616865295253750259569597376780056975978528963977528212655448375942687153563733509983275471976882373526285416037066768613436422133594216841961870368397806121067618675262241299582749843887064561653165414737339408420289126512866905402024263128887941712146396896802017822668530852401738050535751952472737859950246436716039731093652549670312557580260789285478069192188181285718250751875752158835608120683553046182022272127133989091584539610529149304873759811206024992506183291760545849674248536503673057523329401880296288981681657276499507916505192863208869669651556695354687069766596038784051890228568817855095182233290399079970323317486765269767485019387421026857289707285202760386059956967398318412376440029789062778298322210456470709653478103264528337628957729868952660665617531341736952786618801448257093605464459709730259172996938107011448205909409240689990388695559657147686904309949221307904227515774884000593497499550115180758331884431324032925725313755587648107206312999024558210240662108801216848984668445839023076972935638474041471896082446437609237196947801512122393286901941498421257236446766599528651234633637205453486565856438401940061050861421864803619209212847994344792769185265866959700855734101021340709470971893159982703728131165491004748524812745153401381715231022063858673127807434475805742353903277445528685299947391748458440957378884814040220422843666183540472305110305194389760045766239447522000552193913338487231234443679459026810179467880227472556879377876685677954385684782705797683842687904717823507644172985197663011826901111288608180883242032582049067630912295472254699653915072793647586591849667576136581973608326224740373635198115080562031159909010274081478396677533514260400125976551390002839779560520157293832806217547198492690050905975768245550127235416175409166904212036653613597670666163993120810857944649956727981878979849843855445867030934996385789096813313158346392784535640744751372084626174912759570374243415695697794980724223858448836881690669342284723965819670747214443075332421791902622621706592334137736564058113494001735794294809265753809939314802515317710019701642643634654725847893955967077850446095853033091814782458074391010303684192369039344295758683255363004323090106674997112264482000471446289105210520221296450210793302120503000046246969509001152956711375169045353649162983239285768019414574050117451128242192133871297990440789294555714319775491706391157008185314163259603366027395473034560428819203875687961874184103301360245182852535634168357553341170347618816016606549445567923018032156559349089124777363870037731285178928675817098161075733442334439328069517843752987086678552233881095833013276049830342763057411955304395405220673719756669087848902449541581815304092432347201195054407737422403768256556776494127718320297051388324616060160740789068636731557712013334152990147766290375763894458557351505010561840029443011294590685350781658564826055616664453519522954950687419941826938137124801552269293689552361143529430923605039167211379953228099053999590541158807620655486578423946338239725253087043056439039160858267329564614947231008082890527533804858258039966661879605240026882490575729896137460349065940658334353971230406558802374698402938386452828057729541265552531011897919841698270149908073950566298259723496210805029661893600643070318769351392108802950352614863761364612561733975840880045010321594997746434874614829218798785957871124073199869526146692462374269949042494316353288913687087584189520235241070953781652500135899867683408203394086772717817670994699424629020209161008743671740702296658666516154852155315131936322635823085268214938391872032422643846832044884303344674172426468474650134051774214214881926781834773071349846088665242666655864096019553670413471340857767730500971760429532764794573020920587468033800012359458951157530478842391997420320096795934682656416468468667915295161937759801435852479959138159707437379688341994598151100162288865303215851146425629935691709858750888746569878622753303911921194422903748397828411524648438925470327611743498387498476146258792330344057432387268295836276766397227701302555803159116775181923562460322248686063858983447699382268575872622157420341219505180263899780366209146388691132381616444758225180180579356305518140730667301639856596937813042457476721795654910096319683787085693528956505632516210342485380184283720440020621281000580157861208030876646911109744449490604179717066716384876311057014978903086979048836181571141202240596282083277917736633592917051653860459654859991816135684065261538692507507685427431514125381046976236203181569121543083037777622356847232740057759282074584754792832632848933787508355157899009020257611376972295862632344944575063549730598196757192431862332588404349867854328600540446738706163931616549540374456179842880896498649179912259817440169046768886179909742025245717272239817107581274569164661872609848376335109074355829230326351996092515090499633906239796698981532186312491885509328649574845720231064018536176823302733514048539558548573233653308596418894989972398651935909268396581827884450122424973547530237327683050999075213311833255223627997162004112987900345490896032805770784892977708941390361825691723803435084837395693866917708828286546586891838176558143335406828030904951950425750935904216142628435522293767054363175007758102354711577257667802141848982815553101269100788029743527601197274074634005889150781992837103906640645316437269640266452410624342661703282268591911537902955304546360384071950102666324856843205600421544979146229398614109290034631149830269723387706825465287331022418667324337116692469991799821662854143709341704815379787987672748098504524593554412450682491677891519642695465543732070400063900341145840245844488153365586065057383302040392300205466107379246025975409515475959902573219534189653873675412822271543532774364086885596646072619758938698092189779461954481933290321725941516420440547154131820222833570570745976083873132646776107574123098842937780968417344936660677980855064217437910237641109161027415767244152142451848549330743311777937289110297255646460789688141398211736168392953574864711151323434524996138376994123628482450981762250938120485826397388760615330284372006818310075088382635463442076698695664561429765921015199733879937596480480429281162956156399275998553841582345115191599699805063220471934803854804188021149435984348674939085830599631329601282016545005566579215244729333795903900872637983573026861601100083025973092634751011437787758925207717817197282384703186829712328529353538036032402749008837576297386437297025652795429944279625291387514100198292073432990494117201138317584194255354393844992997105353649071702607864217559834159757450668633338349946439562972297206915516904403436302163359546609923037683485725152303034512031183335280939301752794612721271967066947222443208261093663602667188381334967470680130262331041400365009193573428807591620413989086264909454630785933802412332655578934416064124227262519405071491672632969347267578013367185155643337673865966676499068981826064411639705291924397743304633775832172364536150459688484660106108134606899342162986993175231790367608389941489358120866270477273894045661907562560193997921451147124786082500274865687013485274000846949650911571130644096870935655117340467944737133030972002209724298842978684667745376030512965150002910769259992365734912001404303650949674615925454810564224097772875142086720902041916342259780527181961752149520422851646733880556999272383705651069333612683659874667663984758597800773101566521826586258518537923121739408777459489621982747184357356389875712918183692293093473227025863528007807848127954991912862597758252899247098716336416191768840911636115439709257803722457359847498382694555222484709475101180541467420309808682956350453696969791126893717040125313424649371847629691511367108032528484564168142901816980848304503645382556617928835649462051629323889387692665596622920706069227493189999297050585885823135140591557979612789851548532207784124912234128259015129235560480613075363098574213112188925574289143546780272568523462025762168731698183122657058811323695052497584547397502895415256359873990946843814325790931252855697227705188383381800304959197745601301624883884751684366432028216929875044691639139368780410178917244748435467228721530678343655109189852604347428751148647502679124079121796862547252514348647263640374538995135323770253977631867996171658223031284765770656274809778492938522346353504107117369452613450660507522097050462871244812337875398152092672341988491672739184279326704604647574591744740506723111230986013130004837167223179646153700454700823442118001116549086574171493199229809991827713473156770340443919593675173493847891566093695405662385381996542780056129472028296358715356632235294281195129379897518771121532314985522103580547457254894615430680048162924226509838009934661873660753013405714943233505600448477411426772429215014717354156586457561389030436309491124836441913598656040626032795087294355744891650751464756867151371762864780203305148463135253408946113164147091496979198211329984115736290335819808341750928912168382864386225299220060672138712645363216328687272327246234950377975554734008920535118933533551181855609895453192205255961888717304134176498229297397068385757904772718125545443453444871529879306004159266010524581292546796735858684148273566455049674657534168147154321600563741860690568936594343635410002656177058993666066806716213771591170371361926065528586149976648086342298062747565838488731503202315017584606436365047023136357127731559066643308717699526754227379836724671421469641132585660270951520878894000293415472581348854161694867331776825054578050528789505025094668975945177565822733025503262934796649489091726293888133683287813505724366240065869329969280452228366846125298366038197725160908719265115638751442858485910441238181148974038243157760257120491002381719274847739411466879185788392306356130683018185294572566355394534376876997696153364412469637789718506484813847300782755919348739998368375639651722480722139304737824063863362017259904138299434800077674227833232591293879146015034464768591744510519227099078167950153686313786522075466665218022293075253270419239537059382710764576803580195513809285891048705682070811758983684035413976078551006391996785161179326301122922160339243505797184203399530969437862237198269065949453125549044636362115608136753705166594254262416189321470777239784100057531404721696733712399260926259498484547645642405419026834298007314090339136763369860721927632498246208473765427216759562793977284889787865794167417014042058625098983664611407931818392205354795328730818335878051873536361710783512309790202537578479895498916760878911316078648330169704386457887633548316602021239454935404564804310123376960900357646972672138758365810473782055722601798161125627074542346262480096708097399051567868550265592931651549149960940893271104328977908647577338025079629119714979115857043213621067995888393990537580846163340225024784080469790825950774905970418075422017171497735977089284343583966911159976635887640467117720435394663589935739328241179038509140436301046270924267880115646885424101674539814332106747081950187684314511898950173541056206698601121447568241566363844863726351566645708365077371163753958874104111920989983906996508297607554069774309219256316691661727388133569024916158349637109068731761372619344044978763966402117886220027327554511774801455737370232847400288547915032954352419870046770479844164191917817990215760313741426433401690586106125994685536190089529860145626047108561842610611155582178559607578478943247965323989638863745863543231547239437073994842059885156091541353470959723916033309735027772501665795747677891678792575704867747247682746987563572777347244612478786909030985854121102486741963578529520393357202934414462694522074503689538500040525008783853573864086913097762641611592588535457780065544596262586127335813401190162598941600188462296437544155545847665771781944856516109140686938018110281861481841758032799598747971924679178333372523424559911255841953514860480703799304606408888833843669950287976662853070911589766156142218698483797934637508369835257063518485661551757680398177272022785266213481462255733534660473237621184524055194987715914151694309480616020256671311000509632015179153305535777542025844040454187565481524217855042761533381962952288140638340470647317630641611654484789824686278755668776715910020778441088592674709141157137073191541788598073729395461939921387950548334289619785848966826584485466027069294268190112426894425286151567811934140491860778273633109252198730503078462010259829579089447040674080611909835062637554867593864701324807249023415922315602550857722110427972549145226500751743007098712378184778494034039107750543854215621931850372986302284968764978706530831043076756290639123041983944492668630531574351911363651046536599577634644491979378625294601106029647437704014329893823759348662158943944521473702574899612954889203377140398535109943151708024121519554136662822981710680519571529166691520579790503382652432939052614823184409405311496208211570043919741952268874694497400942614139404344003008332321575312300928511293181033246632099795806846046252796687024107994129590159022500818001338128446352410266918315654568273577810874149233426805369212707813278331179491448353905244269689396642595198826751399685970972573920083308673055781770881225409334323567985118171174428226519136800932873764371332820379512076440853922167682048067729965717814505388105387463293354283807421514669911373908584299736430587360389426313334232985180737754594269427917810121937703880912291067929373016005368018667622715493485208764237979745092043161077652396651453974336226159477338036414882417792125230513033360515083015041491440166233160196633678136332554598676146642357419906954199923934982986338645448098300661036053521955152183401596775785591395464502855073552298821491534828450871248823180640284598133766038639848092919726166332449916646471284037168817901127151171018400628785793035739794013046768033266614848791299705692889636711394347055841746161551008708452797235943533731742836768962086117990181922503699912695407226999212539315713967889350058691250091422501060809355526765349120743509365984450885011746408275417934992358132767632707678333458607065985700235090837339835029861708624591889048056555854085548374344896326709082270839593621653412881585812637142921835477460363323503165464331818418328766269920610282784054853764640799445861810363929523558502277593321302138536863451005243869514204488229786732927138339848454429469938053599824800545892890638796962791939787767355227706925662484180178011492540327698899076869524815495853545043102965448237484250345152205119621344749187810239057286004680862873523454332322444668845956985472617756086337234719550398085874471231390175806722818095322637306612363754857882121171342841904683370475357712696477218111369406124928539478272096922416104747724555740930219256732687922389217899982334267450974673084056141912774498354281967229679293589096826376010938692226016973671275603476101123876894257223574334483411006067547281177424781460374598682331764734843374804051430949051147448714647587628271250430340546636575109556786413189936868720727182259348668376588888650953018881967593064217787982412968821974482935742549575880852013998149707322330495167078379847449880907541714060909206047478959662599392725978941114505591794278215831392004495409574654447381361567571558637207391889519030349779671147178952110510982258140338105175570634674292409334084446646213771149280333852494673903308030487032175827754554761639987221325625619272665943225910843594075892825971962790912490682522213903858979479687414031035579930734893545547303128192913207345675510333249319663248316747934112637463822013103932308963269630061849237444695583538705357066978689800361552190035540491583815996275799224563004033429570573317845740115941440009670552454491370533677990846896977882267193165458723540757088505727238409265189674992469303039251207226968186513789100411898680012491985974645054313754276879226989968652076097739663853046757323815802832777073949379519883166554638371802039582767863275533561331085379108211118271169078261855267814648769670828577046464254888393495454785259851794659239769910695875998488795757649999011187726983661962837250844871560170165442668764462699103388199530118337604353355276337898304507550100297162951689614699235780807714804694490774512248721444357763526352521728277849180045471762107613504169035885188932898833749775711643934785602729177029038729426653422154113088348525809468249309733482311302368298712536336661532772333368335953178020216108284689915880220531797174318384054027161441872140812079784866710196960817920353686926224142004915175220349895214366269306253241912137703680617987980668091818048518758609844940060587871778100131406209517537091871801250400716740793053073224167317618820571870050639466764988716164805627322560241650252160704463747826862491607851673714955993493356749416223407096110664163037553303768921107914888446306317498739619165514769522874671642322480923000022800913554943697995718429222399739127126566422986269177284587758778249491144137312143791787449952458569007799809047187129876866916170476724055393641516938737721334207512025442390380876364667895275729993618905766837311843827351157087185532463942207036010589548445922718306196124161979140974488454277620501635113992289354188663330049561856041432968967294195459212075251718492626416187959814717689135739274360721158387953533302956435282677871181792929737928539315060120778468785169133127753085834647463129443623276466438593561878129726922444934065251157992989127925979082460738725704997707208305630747404708107201438045886747241392245564737077126634573627071461826865000194363463826394559751072038143623095232612603194623348404659811966314687473753669195945404092610012483948331517797739703040644481540766377790539130814562419668064847638616957657550882696326910061956353514695763541533192744630658418714676382354951881941948734812076949436520377095413033469593232783238874336579197636813907366799739464976057318616866663026895365846604504509620946033938893612580106335448301135087036608709495564005863270025201313469922587448338302424303490943335987517152967045150351345562332271807694675464209251262110351563914734203255032915768238382098260443989230682121696197241620882865745224481897706040545596697051558872291397148604930159429619316362015905644475799579529273222718960677076490125360686317508181149322136651217091336825644594127297246866155006532191314701717477811368091835554662551376591316049716710554482970154143984861693190109438921899372453907002769279029457543847290468561808124354320486689292502510290892457550101677427508136019823840901792080895798674557915900497385006350309184652479210368909357618925240406836483046174605871427945996053905398699700954006842980795423466734918696159997569833747172991359282570065077313585942888646779635849699470935635443319425108027288523917099099790850760834488213293123983756377538241768444457583354842078858226641315882129065602983786637236429834549948215571071505456627005297526209051812387015607963047830890219271549702271603961778973442062977543886123967767781138107964795761572377499057457875646808639276469346546361515277252373548617462384847786263916601837577978005333606687894622192348204542027826683951897123002598894961607023106831481599637755166278691085292001740963252441561215902975145847666512934132111676498122395050368760482393230896343751337556038606660761418108097530038616233820292910950549702487631296928307305940076041213066248004823896823029446264902269015139952797428242779444950721775129699023493010608790428838664453119007496216517539107837555574857211645907778125524023559335729695264955219934752304305412566088646104303348019378422885558929776523017581545882437253960044495880816805372450803362350184488682960628728705059279716851079680272804075146521570701206321275338697465141680892368858138674725473781874426457252025479112170358525389854578624523417300173950143267993883170887667244146911449682551448112091663398139745958069335542701814297933570343722803557411553344470638884129602431404891091417006533656654176532320120836793007806969328189899923323121281054445370849809729459099414123871319739950697159776919805846855536997506644020923474739716709139297587023340536020365943516613258261860470556972324932403065140283421770504208501922539651508722413543052909736831873156817760092295615422391413632264534027315203764842193496893989988406189200165908064180532731243164543576157483630325727524035085090412551482200991029170221612203802005038844203710338256244816272439929347057444969859135159445937696876977908902983111276890717896263717666011277276274928992169086000925829353633429445608362824421721335677313857602576116186629322920826047879230339916500327972008346653563321036205118483875094508979344448727925317194571673304562338080537015458516397553513434758824996394041517648781990862301054922202495050346815303460987295346262661394227219588109066428101931909089832590640583240452333263758255050918876109374296920986925893494677209285010690052597041834716924905299645529706086218925483876125236889619433100227443126146973199980252232860937455055118939383456339952279132630938920862629504853819563841531677487530762908370854171425975394187338715361938865359195347109058294427690814175796380647965472732074955215716517223127152120708816781446775030601052113783516364796365603436034412767062941279915214430154024139905534469910807729209784676979732530034733453324742867525436569914787063315720374258814102176714288263072773097748848529140240552039213557944759805236443719538116649554929613415174884024670602449494090277135194156144724607395276228689086460633033695169648244024057245088782262202231179356520972707829807426482325900489999966690278568575699104240381352416731183615743992012989292744423500186891288398666249138428781334194279060937573355688509714640871748735413225927896041332620080776792081512121167003765706387209609435433224367676080166833099896705732374457692268606910939621337582049019602287222912523299941847488531249110388914749830257589007746883618778057931192717218889363361988146101100392031012378552413395019051449007770214180867539754986998742897941182407287701503138673002798682400169066887450653931714594331335577859883569176472578873710046127170922059028676776066938890659029241285675182393002676311502939774752695542408660488370394978683052830913500116733044136113064129684112785285494187506447666294984130748553776058517856892445505941521740069028609791236997421587677026087931216939086354991560703447384915092937119005778762296243543374833779653149446045013764717074459411401775321006308584018605970034802176779259629168746190297924862161998482665715691978827178646679299141325006922194902722230977155829666390841089836861792581767659919662601990751638621560807769011284050902189832926769271232003595511455372555053743281207078546853187139305705741389304233148460445449432070548959110790416851276067523723569572785547927456453204458471697834890822536206194175364808380461579008409917861381491008309186474081904705031375672324318022605011080785632525855822230157999377818959311691415571527226632774538727361513604660708509189628615780685907731979048597331252128424489077917409407810175986633335868261806212645806243083654804210680266630180467916332794077165747243879117310810675844781965188263850832343981761545428385020499932229812132974227880960821534329383889335735679423535839758230200639378936629852024891449029072524640192440916801830946599606703794878162386051398964681065121303458054404788192604017807585120412821935337906399763457995571588625177879635638904854260307125203227563960501637307515339788908304886425664533569615189864273168186558464305040623827634987726188337445560085666258208828574820308813118496524251499740421846219500039915973201756360273589941029454339441120995660328354301126500641729156526898785335706207961527266274057824257065748002480295129798164789065005440649893530718156857836253300602896631755021611266393940570772004662663744487452078281368143160036096936065616072825301386636364101713267493313163520130589470594161076694688496775959683659881895209581645606274342517825991211456743001668868444720601087529671203285954106965900742726916299237807597235380399826075497895729186825327299485803731362412727822249691541990177226037444398474365058239219599079652098873960030630162532443775650817161617688419988811778441293206781144285289103663211461123114932975802592143493722235692441815903769096571211485281306201239058099590285181787253810113017297415955216388546277304321595835812955968562958660963040105454377252534954689956281627790164220059695875646483448672407521525543374268977238302247353334168405724750464295843019119405928138336428424821069358391097611714485691774664870295730920225947024691848696326055853823898192665536848051517036838507836606807370219225477506643419513663026368031853317886558440149406267903500644522218997512988343129123915337821793983966982758215400783786128353760474505693016603491677554205209161902267914483515425578054157506121515045859364708327295823923939165891463211543353296719277639705262228795397379070942863344434538993426095622783189774684116023289856695630720128283017784382798350836969294235496486888089759702532591025685503251779542516575193233429667307084542314098793596455769363883498611412097397023802819000771447789083037970279845691960978126900766302775223839588720660664268918383198546791721642534488498919604052675672258256792607246623954541476556728497768736617434579197251386890759383857908359846745985359777874247870390145056924878336288085877267088481454493773037428532453389458274299438029243943926498436109987590337707772917902498335856785891094072939838337559120260429724010218073176290565839804309904127946458952285408237565436409048167382965822920195398098960885103204039754781705718457993748395398266239641903860846950337697593350433692243632462095567162972936490312195972781428801357881788258749030517905423512098676930996356066722429295033528409817204043442689540924348360630337996198323845152732733718799356318437498074449381812637870358705122050755879447536771726774339802159330688912793967044116293962199058808821030780379565280074513488786353518842088738585521160367465892665375446101994522726514547809535103958803272754495868592022790068648863178165530641040147673108965262720421861975089381149120474230336598795894302097891295227612453690774945480308265669304586980608932870076608675928216810933274913758158046345811475830058242780069449839317707586087483511461009206552309191367510496804457577433383589144088666000835872183903759014089823493357175508121088159261744315845301392804602177293620878181061312518576014585534011720484555880568065597042055353245043724614599884524645929506321758345340060654069981762986661910657378867271512038399832673028800591482954996119253821472333613006857746572035501734669045914034465197562110225129935152320750704299418887720637506439130574739613802523213140123166920257254326123888996897027870082973689064869885061368406604522725055748644840005705632758706876205360094253409691323774964726744308902361054605554864939513254143114848637112914257529607560830830347555734223883795145217209137223869763867712385076874609836536448825399547117482745236940439378055786767259307950444647019596152966091363939329987968541939086802347529052135018746817140793706869365971249571573349711607128727900986040671252743428976193608134482987870019299876514868609105406445204644280788152190242441166871048428247156365637966779664312485640381672612116937718041676144956501281670113352253602568418359869237359801526977980309552824868828377375192657258963208864160578786368928922576764504162876353292067945463963371790647712095269360702415861859500650734480223612126039105531047535622330735624616349607297661589245492932130447185242110970720151380625048663058226058650954409053771901350868241552461611534620665089063658792522812052005590079842064860779058344798456824618891857666290856698826262609416395018696750538628380464638513214138818049004575369955886399974290060887115054274176974121027355760948118151732156574477057567871824753598976299637694977435051489264589988857350606971606943771378016175493322173914743739416834760767980132154318205548395207749650095799864977425992701676316190538427894104282296719543800299834577622796041192555416356764353499575054601844368783986945346861344001701258466267342956633932828552509813825399378642103958754873752255378623271930434354549240668559598683929914781947333226811893033155676039454669995929939055630971284431509103778302954983643327888706246806119856266118028168174184657427144323604744825635531612372668615680097885681511896060092178967384314007719550615638047394575238714461649053936523139209722163005935282237698283341099053597750367041935376020941012125366011065944687691357645897482764290390112693263065413129054566380513900997643230097163601719408998195393583604104223131891669829262207608128442893260500312441239433254090016850623027501536673061884399494128609115692517147014520168799986256430156851033418117801633363881651598154848436922194711415159051966070266690524441770910190695622616221829696169866588135424730826392459489238628988064719986516402002884033183825928258410524087327561049223731434697569616789649145813917226876177477755138988332981045957046571312831828124891958188006550931990583047500091795101903645012372235563304700962931688691269355572680490044115088524978981883086269422578301179406059924489720159395841864657669496181853635215427977554191622731089125100484658022776283928867123676126784191052956812217213298867232899999321121256063612107358924219889357995999209717216539006006924896525804534227194407814604829915022798532787750625960348270918145172140137839899822336938336924283381345660422974360233860715570864973917327754581589844972963615100337781118653027190182600692061733011881372266925381469067631239932361454532389202162534311335759180372126034283262177418694292858604003918844090909888186057769020829251240343444863337430636625878471893194611651724935155651022269265802628911279279746547828308908294826652817385145126888778621002460509894839602544613316561103237918612266661743792761222765076919957683112587266243510408669446915093472021894647331941030464964981386898696254728039271282299023366307452811858540750939307172622442291825039811713896511732729477222105235641699127830736348055816527558085746490883106581280590537083097207439365364636974234689970638601407304706073200288153713078025135178234999147786063026354468302998626819285586222809898418307072135035461394306931082449979270655167334105079518118316046181017284564593472397163731472928965481143139958102917643337011607927329618709572352000999242270938128796418911035289948944557975817520674896604257866914355187195782208358282713170641089268927272770274284606651075263793598100732814007749846901280262492907264584330896339107688206863527450114657659452471808640188383999009324053152404089340591910877493433422597158683305890902524110387468294570543946107597032825135210307311272146222466921952254352876179785514128354517907736070483842177264011611411973512948198283773774193154284891470898293554904742070079861554297080965096833390607350041426344476823641726697729485382986698708961353418081161910493294193186258675097992219852083708354266069028542965836362530040074233939624309170570494560390342703848192898721002501793919728206382606786098000123442640071999349877332878478205214040915282839508272346706158931727883841826229474334763403038852691729682770226700438761529760865665676131352587651462826647439054957586673840249259846359362811892508904443367740809020846320094243877510768207069703840702308066886104893099177001253964004151477816803819674722425509104029219399821730409484248338074959799969649031793076367108431284936449823554201445396598410823394136382934315171422463417941104556042226577277115271696528158845822215318521562311738776698572790859396573434235221536812118168108359258834512675888450008602234775136521602794058805621339922849986882733942653045230966301976583333653465575529308328709037594201783097582711805329662764288989446753486230752624560032407666859183712755066140805268626043668201962833599552765585288509206134196161098807652986591952332808106100881169172335781304208593413834870972111254714427714067752038880586018669988825602250027964680849234966587176231106998439768372092314524269239299258919184286499472338369189894207913070704546628638410704600911507931903638863930734927484421255098471365274444142338741171068950315332925172002134912515561685011498258929855374107978149959582552243762562987549033096636584544670540703316666591167249775803358871710696074620503257106692087355415743442942311822076966098032171016201995041814533262522198619639927176005816724456455447808322519646517695748883543562587302390775383616127471240904099770135433818664115558329576184514680428681135254772686415941312478561599444909720183322628512604917046423389327683867948886511251466509387549907390712870333174529679490679738419101629238480792530992878430543041598688812121514405618745557157810251021691139009025672983538232242209770146834159103963224470536018291244419140215831263387884975292846320672179529215395159928575610698912113193456896934410647986846639028860341617660391976677551695605178983671326333915068317064807763470846549953272353605170432326551628319915928399284717614274633048579899627203353071302922466556320739682549329638291946474533508500186022142937784319556348818698691714463690107320123279834517914294847967381349434316579642997153201433475782806229831858330441407381364591406719547839458810721322923715790342181604363195421863575172144278171237956689799698697961280770848341882583183994774103197683682647004172952466566546212741896305090498899724803355794444968993264038159514997004780751719107202191444059622645406418329848839494873569551726022867131137502923638515227673397892373242463055910400361291132760596980208113453236688416632441814303881501437740875433680482823759507608660790945664508330794815655172367038485956620184150107540507108880901176495305646984129848092305706485368736746098070315088684626942495358894939597323004217676450094195087797290680503762105106066520777878719506227916849934156802664513599374939991907558981201521327220067566910121857826570642523939037202145464393898490697221178790366205536643255100791138794290576630376915712645787768103449618774079950790082234933389793524177195054510570760641142363807213210486800885793212254845844057161154322553516644469277772688179927381676454055535436486411038204033569612598059321374572947449310222970850654363222477459940371260620258516296789619849417318659663900795481393564470394006241925440677871201064240435203060566401529976982918924170169936053293993159284865518269253886606880277463856035746666304450958482915385328208984828200109775565670618592270952935898909932907039123827216690727716557718740054390771143718583427781709798086175006100826372452833699910416772084597169707856085677027878212689326672025363118224366878837484838428843130165767515345029686806185466591002380901997230298962930923300517176582160419474000760745991165385031536946845954673135665561298218310770730822634354659641185944415068973617007601665709928269492545079248826826339229976675015991325172574937800625869209773240594364557875992659018085323952824649510940764136976144575672133287713122084016061464608658356433717040634845226952976376804171528890011031334090862781135090114893512477165368985324575088167942878229530306751476306591328127958930284624504112451755310574990886869581888041369085481238783408742327889172473434604885547014215508456474382898691811912975595790428137917167824711624418851610928892920928056528962067111443512838287475937330024139092601421876947761878143796709264035565882313106286646133860098593204541211709884382941172289432348984765029746295524139811889111495321096579721801940850816261620515345429853369816949044485745274846544829490941812451242417963316535898395455848855921433689590702825269720247727905521546216546187910168054998209215966274100398133297208242210152465961945879849996411284848528850084931394259611638081252628209495710183683021057426221862928408082494040946561835258411689304756124650964311238608733511431755535774000225123452653247514648448978061884007372617576257130435325653749795894173236769453182414177753910818531243482207780841620169805633793341447089714878412546800777291011847226838213169016226812051654990691789668296245318285149465022307602458827077300380549307175703207587267623493619401707212511981328999285298657884620171488924759708781196054252907944405622602532067917914223988561896078666184061101608738917802017539521292984283311048605748130462427272895615356468735863516436174723481650548277797546645298092026536861650670681204674709900268209276449654433325990360334872768671941391044209928972655930721680725900813766861584825413397070705719882700748657913359933274344616260579720439483002822214568011858396709426544544417736740851815489668453154872387236560228634914381022800873814994533612633370329810520659020552058624245091182605982193956889934698014272872274783332176218347643820837082591997986885942807171580064608088687825719778596007757696311042631774147618760290424298864068750611728674423549000781908444893961047105324775350165336755678863607286163375321261153877100312143183155150449488193065903085628649182497108147201251692969028208655503224162626249516884312635078038287411444735332928711372087892112957801119819068292871843879858518064208165490920187385325846375616743312418880663952587895688588828492071771291620335113294211034369457153095829414017769190748307825208102338314342979711995978075781660541503795422035476953622752548321580654769481395510457497404417066919702631387401160796100895316061524187848601564309552903715965091349230695877516359600015097369087309406668333660662958451488051757272980467442724599868499609693246058613606537271390294059206445965041051648850462959702947955294071658966096261770173872996423986431700294664889488162153321182987917682041448390020531569571987797827031134692217384549937168603584836852327277167045244893150836433719647177794946782739536491380573986562368505965982998879457873869015616789214508576019407008958047762479589005745659715846279328957464634932246578050935787129823438567398956953019391569827294746967359622202329456996835605285777401000799421861970279334865172045824402658934129364416036453904775285564474635108391831400800460335416320371168970556882033092465642996282015677042691329825982404221926356212375657246360099243641875814945982488350353834269395446623612363611191383835000157763866984914029083799987239146844471005622202376531553827335807476101740337330148880642938719119882971610045623073918633403213751557633741974398490834465446118803340638842185026844648769324529443651847533918222561994318652997756060603350932930238555327728186398446792685596275138347585505427916878395471629306277072065948292367950962345991430494772839065019459076884794233870265513853165486237094346126068507378443949059045812784155440872304510683743302026528561952860436037960538840384337436102618420821728564127536952612157433709891710821495484253795078443179421237696802092780375207170780282370468395846810210378370468628355031001651428443318592682009671005191777979748730789079610535012163177566545146311032254873895839790717987423748968211573343928207569021650678147520427777169139814774861299023971953826815807043830747087429670649561749061193925986610521396501262429487791567671760174982041541321683202892350176011606706881783005830085474784395512566325560120165278821866816968154483844969750932388642694093773001851304235985599984570517098734007199396733256430253515269563441395263089444335293333281439184105535401302654333673816358927735840294791628059880887062631936378317469161465778248946122041558418507346398625637772919514715908105801546696434134135775062413092767982105889438161346470757264169655575688143993919706780413564326830114994752617619743432175026467260865059650462321232722399227171529487167306073908329507289421060659314624859975504959807888842552111676120883191284456043569924679259938854775618962748823513672612533160732723318678991681216585270744806089011196231145848078465451667851421154211665971282790922942945699884336519755011988881254755923112458574191719853883737714680073802982115068831416120830161071723475290820096991605439217655012868202177837858029703904373754680004921312879446113296903389429838794055724989273870049148631347618586179806417511616054677673506573467125824072319936164889900014068687990752261102997351213045588792332872694631862927617679711381791100175165127580283995630497447363627214439752917725805873449429983773629808456658110233204596696886973090586734061840615626791183272481953041039745616613892623362396462253395437648579636376699832348478753020820470275010479565788330359708005667025646054089448439093162028318036109387681546177258361151512416068128998128493464379098695302954722091055031546237095638705745051179479030078989578888549889578473814399286533345447422506022664585482304700289882838410376946509241943974135544494326568092447930508938417731106044496371293540931973376727413471484225735001307040037435755758597907257014822971761021414947127430168396918962301795698824149448597728757818285603205898157877096368751814221209280820501952061000269837416216632369414608712275524315231766623805420004631304237752927007309058629030714680825783966519659670730672643764991841642526107407757469726892692549626982250030713804307655746548793981983790520228486902086363602375206840404185402544056580627852854927901308542746917665453811973752047876370018781566473308806937616171844942556724182080128922827368375072325754685737097516077980303456687770235451297743015220433944997028400245063608483733566855571935946418811720541131316971393317904353627473424149379871468340449739531162614468387486756192116082466137569084724507623296725346167828035702207649027424479056393774679598892388381936961774751811418241812656381935174081032257073351517635900265257712529315565545833109900380827017389412182891688313705329929378144047715594565772470755931952770460774776070013878096941590092959929268998019948478967384857184284821356606256261752329714851576887351042951606401881753420148580590478804857174917910617493351761289050287903632286619519009388614496710492623340878383323331389107801079962703112390581340055861355274199840483775534058271980757362823996363312084771590664534548890334198722737483324376349922841020546898154348638116763506791400455267002028299081822200772341551506967603847957659316138549567631506890567658199741018003298722245809502200731794080482836395210500001261182273368485637362458510592091795551556398910146528935663529270045851326611746148366445420815117694029925433920348059478624450500334289423873440798236242168315239741460374599118572483076167615896943359370994660911057187557008160807310019732222509400356257190642236183235476531767257296676343250320198315641959675148687085923682318680400399909223379773865262760324118134703905014663956015669801079247577354002037268333672380759093923062871478343648199771468092983932047483699015789503428761320439250880869821375981129625389130428061706850865160300920315545226847679560365990466615648864066408215159096330615579620999276234546195285252339027655745224562063067160635907323530451575998154781396886818042232493468531091309392195139990946201286198988456632266239179956995267093730251302429752407753846863098638599448784430969414822668802648888165099619511485791397257140657620414321152161308027973597140091060852017089925147863775978975969562109684729183106126095658154696355816214128339125411902925988093028689779235566110275013447074095760730965255256956031433136729933092104691859039955622089220337778945911959619956033124596676463576566217014048521250608441986686123889793204074701632077239695479344177409785503963174628801624189180208547480758450813127671379679058598272329032298073001490021769732495687545481093182947519593915729390396159133023839309752091652027371835125343455223902627550294416608688114904072148598421300776003705983816217722539133103644950479195468441970794435878608288545438394230692079518212401065117905108403028336794255631587609310613143641296496457678126293464612831385848940152548687440726196302558922158318482410918148302659451777729756255360491962625753727909150545553092947022852854299457448167968415439791511895089918830285221551509294519194607038210670096948194771288646766351938740898244241726695992635011736822263716707666489485732875825227669343226803457404731345409327037815465732707462397719077200447663837417275533011387011860144795043811582638372493667857063395445556919590134033116185569326902974142334692761344704707836996933813365255335112887921957320681491294587752739003312593296066965321837620450718923724560914125410926269420992254234636757084045072344821152138471584973081751882696630219016147740677539516655909160717260221914856156883558196828906498881161198590749857210516551354168313061962654481023873139478351157098948913879702310407529294901010568155009167840159483411519463000585882980737837292264721492453593339665024480502572392950234460709268969900210174175021690194492687113432676887045306530065940098205642933786636225541105198302093871743211670179256038016760252838568302747028472896875644971901708641554409840634459956597661297661107161264257538092050568699123133214469095669249082319443998206553420723259085511011986005844002302775684837157510297155451614735076794947378729392191820125572533739386011358832646688544712006157562108827869193794128586716987826526129005152689325512654456375813645825208188390412485042093080542304786361950839377541439778853677305518007202523771620306322534275731130515532589253524893697606639067546363077594689488552793168582373342034758014926232965208514574225206147447466837334775074268802446194056807583600585535854261604342727031170639995785809705988660087475885599342793876995921148783553196913758050155436214320456964633839826978914317590022432724248064098542808470811942482935684004197190474631388547002098149699177419547219889873668390294670070903034812404781086774554290730298917898121948196612457376409782670080774463675754054933370104092347083283453635364569294870771036696773537653308580197812665552241910886908385787130031491621493259012543467529667308817870408497818936395754595846345359813792479464854781585641060332264846508772491866299495515367115762819147461696229243075474146496769315464221722832320872762660879086920441209429281853902621344372158908660581890535709282473713854055076690116842802490032222251998185048223416757679110267550102044736826896287534842390900554719175174485813024464243988970882931401390865593959516436611414112256675814899747902859764583481569065351001541161286837453778553391416360107615933964038525755361508046768668652599755545202365999086007294695526009926496611001400628441261679308616914101152933524653815584383144016658719579259164828626273208191605894002177466168709857815744056290152909347515662310393124780549966667490686748539764912009641887828925668793020794653810516750328477526857648902795013630016810330571131844684871313066897045194649134824510736954486770141287521122127839628704344969643732260580792052239124224859116271484152349036272321968866600666067412229806873183870895693610325806504642592153571690520276029343471345906308650769366162039693043337283953032834057909467910884506025843630815169040988565315200955472213053579377285661773320808971425607814394355372461106214864126853523952378820371141822290595569483289992291309380554487298503463295328185662968621475877021451297523440947800015965226627309401425142938162995805946606694337443273599490017090455002159237404143258040816842889316667375007122497930000663179872043128664056197360099026413148482388059907860839106880994861634900555561711765530273609303819678533308426031131437111008952698103924028850512869348239643949577801628743694194514720948797209009610132584077567422598146306873473929445359944081241744497251106944117260285425956187927158739430492833249839145889372602839729051428620377808003777949413213001492765310004035500521729266434947854258489265176791061194566167837996046368249842343630547012818789877740848345629103697045030571775290881902961766053765082106527656689155124569495222347497685056177788684937257248654010998645667295816911625224786840744589452566253229946043970292661789457498302021390428979418319529741317611264774455051752334061530398084515624304717987116869681508289092082408484982747438713351305395542365038559922126769095681277264310639815474175393290262108849065756695290465829245410719021841028681964674979348359547177078194993595110542250354205593127500689049401255321049865876978832368074985776866316101839650899639137342427342541724366072413699991775141681738315839902715707918340103352767656306161964445418935463490837847277045233602987754492216157106148682818315963245234531871247408238128254978687119883861512403557935359768906887134772627071957577186340148736748626968217328928441374008806169972291035203754755003114211600780204539182791873219108599268083082139385369040632200229294433074611318645598744099665155824582983720926060204351430352515473341692770226831826869846794636455279607224222914225157443445044926383917818341278208214576196840521565398441360603091085500486468286898446366104330635146470848153942954949932427733195797438095980798092459486704586216886447212217585180807936009417246894196009048010745392495953983188601054692898832855046026095394371191375121967807617984340649395592717117496687969332599514900298983005731711965058951955815578907300880525678060114314218965898601067561767371086537747337899207751553487871350979248434921443498431769727419824284721884918721965437214709065157634778143275335756748257994074817400116996064428559899342193016599132036990289018628295054745353157684540493803500545475618791862462845366111498332856111549743499934863681204669102281527286733654870805954517445855876296657053390086969102382839706347472334732679772900532628657946383113326674446844729476095198474877990664028635915254863882663779430163843645556367072071423498326541026341109332041765538137341079753813413397510444764393030316770182161043253368179685939597733283316955382842935917732334392288766498780855406752150387973606036019240842918364301261076031297145881156173594447560257189205660326394907685019733689986127192600570330571972164550673934878172817234266103029496877544319407093210271521897075698267490048556784181128414211960275623056525087380262622849114047721187128089476418419503475720217026267607337282047566629241171304250228905177513637226656329326164526405089518504387993936816576465191618297142815783221841885920752457209979825793893789197544841425368396327540800979264269759964551880386785333342820813271464152025414562031997475156444929767076501464049430298825047970594296545976826534296495735308819632214310749704150985732495602562472011771019921063949759341794335363750231629881011377299387026425603914031522624602960942784889564467721968211792304848165768322920600257648667313364912920921435009040262603981589711126850588373947787241858916854058487916339879572549581027397327499449848486550634089730424793871195774550878647369747367117492871539190289886901922242017444714657249900138450914405608452274206262706246558386395152651887487587910567546061378238018365796427673854001809983413723463321030283355392451889485953067470635704314602240432021638171725397986485384007865662312216900268607671295290029170225059937606591822337369970881229214560649220251547062676377419868534700307550180893475160050894541497040924371344645703480602340615430893803591002881455176433372532694824648308154894621863551187635794145171456801144788232613119237864021659159252326736201767412494773240977250669592665461652953938369587868137587698400916197623618036022232859270781830194895984637919846903853061915335244014904917876958786519846130281095639124941950866181589612464313021157385503490206620026301825562989750881928956872074359176709664487133515508126631111333187528158157493996539032681574014697086864215222792979934168923081182990905971722876861483517528393621993679860332260114377230861911416476924283049794075081815881141470206597549464827968582086459489584509138914284039154598331553372441350982304139327026494693030316541800806317075329707118058231110110677593375545504862032838339726220869793436830432209318308326700180881963571291911900029863211517264208690833877100001033041289320681360837609178371972056273099807769468256090878888030704619271556136162960684430332907474104276745317279177636815985842098671342942957230871527847480951272563514846619968715868018386845313825758893606294229410965526428960782515650135920246788908247702556852570635129693123699861747401537422711864522491539588306503941269771907488920214962257996896580374748700218384884439636113497058013266892219458585645924718335751943606123830759672708516610240178142054271663537605624014094704435201494085050300848517568114017689266992851117564993252321587853913658211624143914503428102770742901564415871441429731667355829553025504409539324151949301756829734619123541723364868706993388722501830827058533258203014715908942488059192708237357958893716437015333516292226783242214753300019280309805122903407830256492118020974794247052771543158895419861411315940553272149259061945845221715679116735586922764401770103585438213743518599307012198599587683799817298715055046072538070006146502312003305464457528947473958997788839514915813100872882233496834274417702888366380731366808016048076859530464985084393390999758330049267897561836781064594099154462102287038283736794683341643401766592746198093047665041468601380531618688995842418247384122392677029461171976457628577298779214693736541031113200908291294357387160092192253729778528067222127609456270425966241836091003951085344198520114310196765854131544673342046077203649961808285388787965964547554403876996819187218287236693158833946805281615529668164693764559354657874162363966988363334399403016014562252293063645733346571272106190609310551456329785428180308207152057340308079072607022563659180365789566233792299391678739858410517967913445797982742566131489031174695562054569066421842042673682206284983523871802527365007731779633324737291188578157409607800584125103994507663029599374672949121398333438380224744876828824439023280524775449510283332365003322811994570663487216251903712503187189334161934887426156055972452317636126818497414944827928814778749695250324507231675003718184969584083016562101345556945727849676890491844234194450694158617104465093269040561313742546559490336851129919881614378693152665911415249890050973917995312438296588913051850905220773919583595326271405075453220059643875332957825794014299902242077598859510380070799863441355727712539662838591751577477531143209611446580963778165396228686471655591907495418512830997460160542999738865815022245127692946705050332115529712867434340766339378734842393583764618469953507883979909194982557586725810131850403032226499285309533422645341403829581626094148083971513274854115056989342818139414802563784850124335875147668894965544446278502120883209963939087962472336002943587119042187258826078808404874423689208228171717879974068727571117629465032935050884488815067402979877702149656505941418642137937349336235018517918992296035971822120420871662108397384785343767288067744848244389565049746289744552071422312016897599182816466679228823783379036807297164422593260208104691850203274044187652114530178353307635112372728613518438355840778344179907349098217800926853682655259238606139889391033341360537422941208432017443777689358685127435633676874642940698631841117628742397202293316928357192487017996109569892539063540512602383372721569259431278394331463103655817897316412774853042419526432154519191580428165119092867922647671459355716657080657384918929992737649253872380696681835836572875030766570387087894517032187516469196999857171012475150699613127656836513220987381996142378412770250921365329292878387989178934248353870817480542209929803061809315663295790649405966219587253345154583067928168416845823181768275989088438009091568727800244725840257584102772788801225068496622004611800143784105133072104923206926605901578230279979064135943734196179738084096976147668030470936342384843670739921005683407849623623215496344200881590950998429419611608698300972071470719551820295845696494562672345985934330902649005114512717179968232310539519691194025869996243728972074807767629452980422912406219716335890096777528538971537049164070558012503341759854266656829684502153917231213852120468656253536293334243042644174568214463068739202196711791307651831057567027682951052544154510834717963465512029416851996328545174345633999133863356300478904667723148716926593806080661102576194203027882328472794388435220652308684697523806070256678296520873254886742288235782847245999724249570693880892419255746783575329968943628632221906181925428445394256998572443752457883929398466955488673974427921419166597044741666973535824440000280752206331492416087932847869451476928788751256704612938809745070580676882100129922267698324915141534042449416552012419315198640632199606737268396034430055176651239129501742709165741392730599314631842689401750279053878608454324732792389447164056355235442477155686297304550412105786754399129420599614163271402168960314397126080536049558481071611550633281307916657003368649308928386354786208338590630939520158525003270001434473809774788053235899201819028209973935093793396923890805628695281907554568435904087717060735284076603370113506573322066584243048823149407379089514283259418950492798150047551245104579794246189916290900445366003581766652677831118529146548464828667093083944900480012676888815974044349584461387934758932024279010236650364395362097582930254933745320392165237039761820459687496751286747397991876794615596870257085191808711933734271195619061538412327261545144280880666740320197020549189516310805166593228500671731147900407075945093855519719557773016281811498620599205360960729771008921135929650051939224838202804120040293804886785750658141094242383531936686358876651034991835964419192055780562086280009777612407246654474834738909837592300170033731366115727970131344290326930604528509249334166175474166789839992138855185388275554690710771750246182204471623256863094510525995324431319445327295729289199976273789775836642833046523529510149571924762236979291791924015592035140841675909101929600600545158027003124734385093330099282778224183488153364059535738296177868146343082535267841075553619291923061204904907046686849996350810207361654131331497370327247101137569905951417385194681740082314228809506776113659952941161829431907977385530032556055349836661055482944864655153448813520191708990788497198824817450297851576081319522607312280561696650332374369818357670177051428679151790949193531328465411108339782698423278102741967926003162097153021218053455888218688833421462690735058800169601833149472603374494691113793885626951872128799149683454096059101265889677939518611031824771804369270620504998581829317941987146633707311372338048849870651171431861534465884207933584091569687436734926941010487654818291992208231199631756804888817331430253338891941435082379465016359076648171161051765979597135253333146995393190185979551209891454725915653103103719866661799664968170378024857626464437183908590282463930915143095489842865192951334692562183042827198638501382299838444815300894227375140280672486490189820975333251302121763463686416443839463963090999224962642785011079206823146184122427769832578610605452036840086195712297585778085371512479721081624098633744023465394909051771694086149644239456891023378571054385467520634615590716503663277440862458659540237023780222468235664429658687466236225125172594742533501436270440315809070255422005416544955189898913053220638005599127429879665136055959311472124443651512606178844407963357879170388140127151505476834381207065793094784665317363662275939832780767391032166630741842147656446193849507502744528091537674114261066183478709435669507668469989713721598555882175703488768494911612716351697561933061128255806521512206476092263875055043325138158290975972222206484628280313809346938819285489789583867152152316680409296525054826227293144049002681474059382042987106719851580127494301887715950743482374076244390599559278694377399781435292360786582990147266950958054881636107069286992066524917971335504274711784769529456579031364088962901560299462091770438147811352547670070447525755051769773691542456477643105806580157933888117693784077883506627729238217137129859442354475266471068905942442763875305666951080947747015568130536194684604982744715157529832347868510567284670123388212306043243473770185152048116699085255690185365149246377167381410835179133992592552463221430597961896158069477857335484426788537497266551179886078237460830544368157867948148555793429390225765442617755503028310120430934483739193142760581935345723657987567487982955365613372019037887886754462369561193067167114855925100989495195335301557075193543871447402549234708968855782613407198043282737842519685347129411083915862134014125643083991581683806726060434584344001425213366102733254670610825981566566462807087740103459973291891739557817364856729983185397696719681460744364396291553948732800441302970310745067913177399006097807225090165425085352509214379110525066021811774801066686475284071359340053372690724762099564322187456797745196948486442436206291498241445071512720206535814873661358545427642215733624136399428463616120210487906021108047435571910457867246348725445172766039192340268497553919699098540278574718760355893780448410348099682913165517793218875631642362948321816495913874317064516816893309984763708292796025474810958997811466039869065006968577692705664192627175156892100476163989933741680410738383433111660578229125194359176847911597340164995112577280321873201800277868901641595454761741826857025406568830899180505305158591204156299600880594701576916478778363470519655333201825548563968420982884658525762136625426686544272319400362353397355622272417669966038503206198619563810613245660664446607541329228480922535274216512229129918436775790206425319904408132211924813257422374719960823178716495265821313188159232229913142298508015123847932255582393333955936143317522048652963986502744943611373954371033977217291863903241931195294476765733196698904638726694589628931199508720031545724019677000419180391860762855970281864074288851990775334092951246671073809537649989054667961921273056224430516196693656357885131866186285918110866630827201141155010741084309900241566878298389013526928250361237311339185223159154053412818339017972501744941172564815581477502395660079848095788807605423762132044377996628268858619133627512655111048889645012435446787145354279390823100654121708310632951426897752637248092285356946981295165072387995061822989161978775407222562186394471739028163957097829783813632678118569278591831027579773423887232724591509136014857912071669645169945347478739947439346949667952605811438928792955906011417299440060543812880312638338863403577792552584138645494684396112214959529174851889248512841143426185572211167629206982966409538449874204374813543298135827946901839916572878373080561542054767955764879570908673170426853564598116491433390443049992845586500950685690983645500161823498341256721496247044736483624600066359267886233250683774003855794701321681208088342148269453651740728409692242243314880815816901317478905286496664354998494818213477149080571129617405467689447137028416131803294464189121612423642080585656052802188073209197750617968845987682042963480011982211738466878507949459076397551955821956350692354498397972018604134472476039262472661581116154742955855772219174796650479672826455988615034153954729837417782035647881000853305546005045344425143074512463874347626598157175645811571939646668841555207256122135663454515420426606999712261281585170317567871348682080322157909437757119854710747621794746331168415960630302647705810737714029131723948475406639777610433573367205287858525692773639146755995866996256217514519954390526503302655604905025547999308466209878917393212799199841104899186113759771417787371949671477153132760148470322927086303748375035303023505248331788769898934037158434877952270720966652938450392507873609487241054340495671896396558222843642790157600500850175666506173173982812888867095863465298759235601426466292472155729664178839055195503854775951302986920186818298898550526562124749414412881175106989604272081529563493545852677532444051538962471308441665418876295394660490032080501403332522554828294874434040686531368185108123370122616789632476829756540182691258825892851749983045319004590873309865641753033787232692848026029085089281026388575250029808302971139341855065206043595924345984259049218081462983804000389288150971468112399918264501805972411621603210552652060263959713636879740304132231430947553974651415630483710871940469558805380025022930034376200344675821788303736981909713906212041970920197536357415831874650803016127077863582094198082422545614381878147731810361131794764781310337838168448240280036292900814142429213735181351922265611291201282523725294388263412186110052405655585364808878376251564731426928703604026652420545365480930506060817258865289486122756956587300526353946564539860164490082144500923510618011897508604522458124717894379984926787474945867312970256499208851726931233949134558577950672531353269698701917132371258986436016976175407441533865690989438061982262084581296823679162829027982171857585893280115132137743525662393190727073070919253819534709844341775579285082582024374270903144089093121870412476323660190358597540008434945532807502662880256048869752998867049274602371816451474304694435117366669461236372554447151166644443600430446895877136020339479358961322800976160854093300669239142859976846884189971873475732367789541844816400679818567583734557541601763280513847727418132272781940924502110757513127598952999732824718766557571231809306661468220019978073010959292535038831993236620007875314802305771268575450677009283175755940247374279316597336821298256564193336103651875103197545657823737565666254918079423642511665203509533215338346308819187827693609277167255871504045464377010115105537713041040951065868897894681051586084599772594228069075418490052583970037798485604941738609077587600176562549407286056962706661585488725540994470161550236364315990824029929077337693705257323561225693564931324610638099773962885745286383333023621834788950475760399743107062379446924999142109294009646879285306185440287572223326511305480181357112243600195022728774435012593348646804834404800378543132502908544907927135963117099969307509045577958638764095760445084163113467758017543604311341801913509560805090084588903116889483520966104376294473592451048488752123092357011973960028712686642017882465441206880746886523974587292976422870792805508646268708876378241259418835855265115933146678699748543007024975215704454340743571030928916191302518707824814757569879538057776005427067259387880768241278433841203668775754669898053197288529130001678365290957377216628269341453041992904428102180305192833631729243900516000823070138108800489739104230962400228434201242547644747807075734024616343420333118679789252037507539039092104064741294815200947063121914405429471636055269149080900465962653706726144392852632490120702982259510818937298207339258145283534906029256205346295031500625941857621462629580338827696146965571687880828410298857630076720706563021455014355487877519379553337609241009532789134407388121384566013532784380851911441764486293386031788351804461516857638833081267617640345977034542266987669024322774054377114290365669901351226527883401548893714406676885638550166644817228389635291945794094130569018447594260530837956137356098132318182122106160493702743838541397428489812317984535552754749314144035200755300543503860929439349794072481453698947027254575164536342182736184912360635744828179425444319784796403620839384790677938687571282733270144255890308705391185270045343148929915075443092540679919684125957528341426635906306528875545392758459394792764678237083092573818776692273558920823128100599381852598246808128420225321814881754811275400844416354007131448255518170013358262687254010251135475997587457557538625774992645733222504880103398858728075085852992530623175266168483323603401417302369145580712377920018538802805735992038270697377727831971577618761862594773457249246280945644501651260078859455512291589397362493523802528980154189680177942723517659718117027725479224126100572912351363751021176147165405459307431227308019534781099058315042726702218001733007886321262341884418502593761395130319808342422770857793965494964980128997591916468914241154520208997660933255893953637843942153914172587525363643944231920208645267846407162961010377136709366263495106749774539972003321511830131090035675680923815649756829420269611056001151804791484219884978505390577116109003753281453182229550459510959255176026551372017313337566407387542406181658983001841425318173285133447516172797347368024994163408801708551780284768581480273639509667657311101162101201283772495469434803014178356180860762517155670794030532962759317181723154838045033163774438243801092043824904844614340439576139395002415796894375755886715645026486611505891955774608780394118164887589591159842183654093855217347822088511278278883219773906493509520606112262700229655861821862970424570614162613087787163953409970767097447161184975387633101464542510332395687881797520969948002959713121079086871585392480438694211861427297810409482491831610401369169344051273544424874308834807009763549336771395025656698660710117156183948098254330659145267521672719289855347917784799982974273583638093296527060536993533687444975818851361777952475906855871357319805610643936645745359350835332736937240182415933951543792996573668914579158374866601359409828135408864174379617306586020100493634036567329542491498513242883359293068566770649444428656138430981927003308477177738016792477945259451623699117919319668867352035615289602667209655836558781730117673491547581833880092064510488108132858129002951872875861625012511766774804320836825160746808146131650629029695336580222702664886713194561915184655511147130138678197201061079160409893167093072811646025549283210371607038399087216013956971083179759650552545445394783294970259614287497603709528769740275374206666452519515384121454564686329137060233954376848710603127808856366662177844811740205491137302192002239941195835444446676337160397698934139452328882307676218703532160983364903966036513518091472874748028691262813721869439866961659654748381418656757975406634445738933407947204727108617979282361401638159159347799140185579615580320954905679447401535212968171422812404303168771554226107393468885670337383764367185422623730877174577589007859041425949530781153823939216308222106947491544295408606348130275217123776198991124238262820079072870728721805949068733694441400898053978199043172200497943392536051101870437234492235154674082864756808190367312306345242441770755381617510578668244805292073551936664271895522053710042886247264684154459119600239221935643125948879029040370799921502581061063496369536055701366063959604627013799425464054127367468334904578318555602504620338892775256977737732740677481817274522002401445131039405065327380914970589663152345687732522218952080591723972449838008615263207053067738892485480234843391362571243931793898300956686522310116598051135311982028051703076793630735210427638393042525293732112796214955323009480958436850941297499466708566875145327855479889803068516447837812205953388658830004504936960579834255891659267612881366163159186963299819585347123634078271823344595661043120046860864793620090233664837837813578730301349569606484045792678805248525780431301313686428039270995016312705729763280186834557000608468430943753951671505580910310890309323889728367217101976913897487233742588192741592792986117406724942736276999789017911367982469665696573962048500861632149068432705186986159818248387112507727146238780806368416443644293048608905456626393159162505728458443881194495862397345520871513461575640326707576081293968829636868055747427041356032952568720566628576988971484101521849319900441991911301294091632424154946081616885711025951053981601690904636231024936224182444018105053727875369323831845086059808951007912500832972154541700363055719084182006610015062776772640907532082151089017426309253655165928499092284598860917563662199419514304012937356848770122663691023399552991529433489607024633305418191735223663669545255245388160393986043379893582732923364891712765420584941179805352292171098309424570185418934022826188203950461244606735895416926593300744388740929973425863467970182851492200992656134261658351915945576818788973120995261923964750252607860100687901351207145241867890328215406414730579027539183016212261703576909820321434478506241918877827935728421121010746406934753397913959923380415640761819089015153034833514056475335566380493599644888758910981876981771715170933005290217773872233474139172385560585839376220731819320664276220798538321188381651808637268395888847047964349566731698057078403748024752670892581875423232177373718672637371086811969211071978991302684858212888163041993889539961901448003946721338557350256850097941081717619223191402197200949723627063373543118366665393245958289750904921851434053722975575311987670076604422095316871749027402998110717981122579040412713620724090701532577738426391919970505373277100532486949654242545125193128304688225261815619978427647259960224167242980460955828439349329896808993564816517303854728190511553052994347177869274239731823722208205510784620935719621462996516788238304440493932924856855135690159852027092435704788160844594006314223323045866501854890703218957303644717846197741517572951671477383715996803419637529905134748434864623935333948753934794646020447028586832805616996083995673780197401569029830058926444498969580355401953945543026708295084141532115693884324096708259539049217031318790418910160195387358461028978905561203208440880675190742551658144818636456197065215807601209297840166459582586834211531955404395485511450198770931183282225476214674355888955660786392745527885366949532752573478296886864848692679833616297293341379136744298014748695343564455973367455282875434025993388792569304715524000652425789833571078565205250240112306607764379587819128822709366806781789770479671033017360752009756850420027511452677168982880507193439069458131914146659083912131370121914847396497938332953753900180520188771078544947969219701358199237499684702198180047132228040300611775576535703170804801029144418058108604371266932792268473307556333801041417631187396800545779695652856174967927098571201243426633509753922583473298847924182610733846796249529322364432422477296034533124484719710147706277214359735887756255569419490499397069334307432253415980674413055885939705253400823090903535798603972078919638164656690529543723543721727183168325270091895173516461046789906082960529608214074896379499422331244809711354777170331641748317054985418702914898304706636472272453714564981715473540162677672329021690719904177145640251111431140773951891590027654110633611598616706999512913958857242138246589583794787551006183318373132070678232440913819332376194203151869704157399226868522757169780152630769535047188937840519479923378635222477230927936893163513654808108597262742578128222846567622337604196199269777586342421379673391282681521819488158818937567955670070011385735170359863003471891220681890903885891175397990501544905725169919019008817562735801247659648081917560390808825325998155322149111785099549315602834994520089998811360336344225797006914912556359300683822278586682191269522603037094630902059842207950112100802445491591394929503696107324948500050122660377047272418049918236495101286336533442333331368323822291530668714895390604035071845535923269734021074369991704499070131320807480339350430383295503935116117198946018385193204265714983532405262647507620547838109891494124784462375756780045604408561333680343630908044290887730590989946890543423378164530950300917793801323958144279617924398270526062687415507547886000713957218495431121253352577177898598218455107264286839929013449239443578429026648023503437543948739848413067728613705662230621755002590514491590611561819615799751440122856781509976489919977543064666812841961629626050571439746068999302474923213458704025582909649468705192496814372350934628184183475924852418956795139505454257335888528209417960546551939247409661280241868059602806968928268895313006904131984844523154082410920963191598137675221856513495345212934825320141712428344531795034352357115561407155750491028478308571353765783666979138869587399502456405465901983478167256787159259715424872908926093850764827057382916418062441694633560111715589724246772010674831075690698786350905568370664920587962626015135198769418438645554551253693126746812955608630717121155017676778067378575597770047968529711174981383961578471540916342777628921771281247010418079907061135507961219659251294799563694367432787606007854799814736482994057194938816582974667048365321714545899344725469092054726561459187834685725308068395668006319727766507787054487590508546545860728759414537525284940054938136340693039272137668212165936307233078766373481798646263411302658331821461640351713378416419115938137960885689957659640828081864154563359970144660790860028344484051701417129680590020255590876022226608109091646636207978772194562369617732566406767057468602602773660791813420777749150806883743976542338333752535609508299471711086462765959864371307668458789778215974964687131859181850368378209317908015295971565142491246521357306337771683946281980870531731614719089030447641129075479730088008822845946646144878643654506946676800264209730233136544837481412515100903870263028628190045962951809101722321646397008050193106925935098210845970101781062370362678388716849441259133119513551719376161136364814187626670160134990356970190738398405314805112508251594942249439333943123371229674615917020955187350961831821325678916788714808791445699922471527845576855436427434476366133147387945965508749844086324570282712218412372773074134549449648799470681801272799112160949466992562486196551669239998938092372817821736441393855499370670667080213590108883656195939736255797226535008110305492498462602772058503910865320285244495509904647874609473477591685727008055663615200971579580724361223082960441193747259433991490282546658113489998344534172588849672956630439229715913308446872472309308459905256376697697869444472631978989420873674617604537631241601321632705306121272797986716369337324852328396464701664292933677684090020270791104806852621723756817268055861905578552192117237674216218609623969532228510394942177702598154894979509365075746611148647287585696107720431442069287458215222229352080258969832862628399643282233658212037267302458401820699732704461251118910486791349317963321458674527379986594200342422707735757265058105787998917734396585132210999594580923622561550948029131929582592891656040122231698625265443063074330373520093824770193182673643994414240561353634813402990356414724269745371562400329166520937373166887602905340823792288604516909439744431414169845204166045907449419716665482855919961215860320393985490614063259231919281409479710229929354264670433297197369605157358061966313871436460140715843517536471726484272887776643384390259791209907355982909790425057937565038322315828227208669030109498985162581322705310160391545158336156946486665613406674071498471601828023457651783962155837597011890294779880717994520298999115290207181446062411215322941518174190430117981159629253648760515362718466879285410095267016095089878369936214277989793339905119585309053455683878314027966501208153044551075828426165065354651362158974299122624440506066474244043582669359619285794414704393586301602869602367972199770484895660524982461185445034634378500986706848485630794836532316911891709749135704824885331890306661845687349012980328108103792966527944721754071223878885614809919136364102245845115974276944009689693635444351991185345152562087473049863549607722447578654672075787672655783195405499130783813016187911610303361979405406392655578236869325817230405551798664072639875567304822417477287649341779768614547158446581256569606261698820175190853974724616772482647323025257537408189105424683098888024179202060720800495980847945258368176570351806180185335461924907060868414890822976270885574379425643544455282195202593040661914285558855019843087242411674248197122093165663734578945151665977705877499082784953098744449857971909948774002867802426992105605132612579997607163805214980847450761990312580547121676902077450010090452761815441660295957093594876056907097323640613047329169801537129906752963258795579322105957334953587318280429769004061450122418578135601291390910474186508574513535452808281518411658454920006151262315017337612363919506812649597362867098720333742744956297117572633260230933299748398182413720870235393505413255372048330759859456637642648929809573395254558657348229813574346761521985390838398788189656354129969316937420244241982408670873919393629951189069864037600360859908309457404953149764302663887552411878474595045787366677534797048244393421544693839488929892455564081067222525209492283720270672123126818088645181368911187190468910597117571528053353699794077508535852654758820924269565872490191209612918034332700784123380226533089825938001615375600945728065840615907518187108396265988101398234327378636284374268442769144722760082950254500796421527620932918585986510007634638903891071580138320493493683901578758391863378448054929954180042604712484288771362140003096205752100043110514019945913667364892217305224515981736875040744670108219189615661198773946460294119359400398105118879806639946299224608470208565163927765394604507213882544418546218060173626311606063400786080381772905002187386913034009325320789166544303997394055533430263711397262661412359009149536373473188741827320248771756738046472116826255503043880153234347288458986949338835775862441155294202995351336949670436563936113595342371513771493683723369461926394524034058110178965300175537346296054131346498551070633958580515949688738364350188109585440950434675883314870749018941018267304805601524955400287185907503988387105027645026803920435635123670709672821620882147801449070329922066194538396666058592583468812617968522957565463960031375809956912677699297732769216855070838956070667867372786050824225845548722280473400054839941387754401441846248079986317835512801981482430914097610474109150258570424908029291260493113691370787651502630744057778867728214146860462710361332984931795854038190903622907527586368669644297570153874823412579576329709107042751640315092709690131895463235937005581846861003479368944803877951569912783248368604422903422067536085366287602306133155904639007394604088373305281218090370548264190409768510267473280096995750953627265070725256943751518412539691310577957320355266485329921959638681848901410095088237578905329839766442678427032631555248955354525704049854594177584573297926222001190118941419313697185990805798861100862173393464869745918000576661739660928254212679745220929231631646262276153910092610328869670815674353194360722998944752912072688114881325745124074844626612087226464989481384574061433802860849247148798506468432831864696869729203899120240106953307265821722935096497074887917759064620674340925245974528243977729097538357837654833267286311178335098382085767048524859808663656404553402531505875123456293482543876150225427416832275561166434310475137004301989527405716889521226248558012980360790981789001677620586539518851685537836709345810797986343456016975647275979016859829080768121798233244152285524611857005872473116277185407876038004834706453574949336114991766472136317454821418014275016843697168995995163782380458055958374087335167729960175601272500013623133077490422082390019527082300078400198823422033252983221966832092449880864034299656193973156506150359365090963656590762581525701571131747576959811235232596225102196423277726719686474156851956042605639508772645645815384568698238775283231230473946223352342652680960694648549870210457724572051442315525201709483508433453119043336906656107650703710061408537638644561852420456361074659346741983412838337459288955154852669055184859168162886917402721865786115329746759250781216666818630981905815556885143208075019090341208876675619353935787561806868610793151154017985882346654817493183026271029529403137338316140392585514249936371219514250627074175959165417729902990544971740640550616098497321418100009819002174552131696857395892150729709006119376058506712396453281646025962871756996624460395183303725924190860190825907079391371729907190899194909851401341927165506910001491579933323241771481636789495144157490279212996084061223298771721767090980951190272816304945249693745420916628231989150894465253469528768463815226522916546705328668947007697775129510742381389845864144937555886943272170450555897731478822926023924274151512672041225368182724667945913476286786266179023637077778754023129599650432114861093245476855203906738902854858364219547050557981598409988535975672302730482938552804650599930081513035725148399076404288662695864935241843093232243151516764629543333212556179392165342288134429213158124079002882210461311312057375104276516759714429563349650016434893804150283329146700790323901424424266846444931006718828199700240115292218248806772436519261702475961471350790345540706350125732278108839957807287136280612554790913682485497486579258865245030447836667337548046760352931966671847389206697309854138693182183014649086113941670276619421558832760360449098295116261210209100604533139333587556474830579861095041564021806900436139329557916343277487114566061687900738178958140791199214204317252481329925650675277262180647561871910632648333883215189660115338323700114874236035154373835394137092538216823429130026222549601507566179740306471361852018035378720097838250226226009395024968106297078035304107686729428663698677360733809598562125693262808426044352674623268504961122347020711550193837447786256988515708438942489952198260291545117782946784777333399339382686845829407506947755292255519882110011047190743831945436847244994980783312230830985382249352880935187644768278891273551974052390167022666457075576436052335926560452350489634759689260022197701266702031472440158776256016457868417622326342293228484453668215911778442039279085423228529184400977995727139929798812758649431795131742554252253035667548333840515202324726107940553574652542455710303335559151290068109595980090895931001978188809090879303845688021924797258831523375269892623289324009870803709352513478018145664944018108452609956670608848792328197778698089127046879752061504008429377477186087326719667639795834770034753258978010973678398164709254626004420084338898178216472555857712753261976659436240492343438098689435356203752311879963540646838523899763567240463043355588103455377796484421639712968532951840261353024802375025600446517569033934510643392756168647994152713918649694637360922230744822214446795198840885255467782211143042199173616024042382612123092119408595632845361555975402680086745132974034372166393747878699861708921410609712206797164032186744139405980451444192615693710861282145519443969593730935647618307643959317426215135830941073574879247277788325836535739598725294063214938619525343872912794202955406503243368854754905252883259497385102234368944074557503171644334230729259598853681474474792457053019713733926719360079800507013411024664973989368939162660852249032547313965482033316780970549746290882262090487129220344012533458958226655166659400393728152488609461021395344158724390644076989017208888619994511173903815443111494860110989586450784008515753043304519174357501493700911130227811015571852172701494625946724638871062757929973580834572752922661325954437361992809190697228016993738530158944719507664309424719246535871745875435068206996728685690017902426012772822666846028349586779319526694173106014059363410693260088700837882608216808513912782370100490673978928761231962975649119223817769043921359675668067644509810876518409171401219462423041618013432383499880779889102484941561331828750130955416942107337185221761390374632135040961870781634774380727529142760199502074672538835569876816058246401973113521441125035967920314141659509393426978387220141011375583702803115974694110555679039119415239268954928774337190128461922730740273174110187572043776772065063524302003902426820500594714263979367393687446637577703249087203933450569188756844072851941302540899520267767502410807863652601011291246291954409074737461469399707787459554547878611241032297232346683481584968869551133045642831093350205791713467073665141738176696111404785630429717569990476621798238067283716417117926584617140121160096319749453256839143252611553817570353893653499911368755918080461775442745906295510698965514366919550072639817445423112378221261503957639790281943158309937767810056225405995408806443975844062532120420315911652466930801103199499765681464061331977640674837654469143444111527540645727489263865782940607472218139178056937643665846672141308761114434267007842308370724961322918255106109146983968636021946708967491719023411729969359072443902270760215790065993652305825362822304326181299211598584118453012241197485817629142155248788112474126079495919625318040221743778870536252260088098542928382298871641430677516219918911516270085469519549134731725133769972578507936665741210339602840499904658449560078382119029871847453230501046648200146608253580609366652150743167897564057145038194208355060869627162237891167300526149781742670899418703314436071950800985329245170992806589098903618520508273478674079812232352565130416621853701016024880596297267755018169264233883308547835896778878090187123947621920493813003006414314655043847908820691059821445313574847164840905542227162050414546513175487550053899646386998128330942483107694918533247798989374229806680638187469877236041069748539671972086486673029504051907590595261982644222201985985000762999102574193124435074550090145044291581239691360177193455073327911494171247331620793528286350468233365639024053963664672935528876828343720848442885316733699166929369375289497584085664579502600961878251420993724755317641725491159484839459290749323841034455939877786872677120667931763546319005263686944185956204074363734596598908359982415221194716880665133864560528250287097391230049304642735768134688586140410433518994735809704508605370516063086618058119454948245043825374951854878237239283560274326515484188588795024116707509878829229694507652064702049369340841422368800643433501564755043961812604331970404457771000368361883895626376762114821073998701756122322350646245151973361874376434628079404060405379464449470777852903647047639204102866989161662452058380194979731312242889377545999179014859687276781101194985831699069142418302814913703619235108905136770808106202501558492803352716796532767542888244660889863295580048456508429056870302695504094540929273264021069277636943184652503610137172420749472733382062594132282441053683718577749768810748702594377837220800842865605870210001658024040773335243720262833582646081253946569940047794618538370456249013083828997977912498072972288823759701495066942548060840391587731547024210410805967318952835873726756755317602622652477400774428533609441457973307923146815075947056224532092042802859350829732682841402108793162060547013759024210045006546963382149254747300702331545667713730678587485481923943611620212772858999324196906905061409712347019920571950980663144855718596134834066087351863266836675888491376485135736485123491824535866983267960046933960820011026627805793743251768888126037793420885982245472442914356559108950638565488629856868173026814815971141893026648216647986328159150042693600620337070754429282074302817907915745081652388282162677704643993288779359001007498224703333144388764155829682275825496753226104650623301606993045627513459869024038290501705797394117217187536484240394185923685456414261428683539234546284020938041149179644337704241281463146600343098700919925392719189999175667075621339097734586263367814372071507564024494133685553006735207286227019245211888933305681034897993688543107139545805321139299070313434820695272735482688280442256963499136347531724118300110075356187142386719878630972756811111252488899519906354691575686872196856975696363818758416371835405457405032132850523075754515479262179345797071225432613766176015278937962073276709264917662377729700254880780213702486347178780958115761480891017337997267314668709437013498902134712293350577392122150667298399384015258480909144855219725859206297788138443434324507062379246870444470416951052943743407210971363823216496433715431801869023523235910911890866269219104762483355990506342341528377303919964634510379812598933354428621898566300093835395032019824298812125698742198583510380938677911718085218171870304413812649182818949671015283138115663235341687693732422070562937920099124679706356535306687672875700577631647377453547401660989786658108581669509426114593745869073068221830061775042592304143760274757338224337380520716160717417570213802104476987620031376254967794435290149311106135235317828736132043458962066500459989837874921365582257712391244170957598524421467000451209970674411924875354189432926769483433816153965415974105337608385370962408875995315251812033301531168505081785760190614561303259630000112633065193346230075469120434029861179172366830801564670197264601556254445039548308342421527345713251767169666133383087134342188651495880103797255274157915346872985234636436670655790040102888372087544263756969762719742247782719908067737500182383491172126634828516337177654251360787766938898115601336502064312709368223010360294883588125696000241403063857516316628539181760348700649320777871243512387783946971353418091289737438142655614868792344859319203737067274845734501635237478747322668721253425213837668488078216034228939961358073766898811571418726364666864710757509379842977245776584772749048812295680136905801634607946034058048829865356351986306897288951206433152507723557726938411810783671936809012251305859272428869392697725116951654422726263024675019958242205118285788679148791274872234577209317854113802464219595281838334834096089174457750460992467659313310015025292526639939481316979640992432164435324634746779861350311003837075508287692398548320348376990825160318809729081161588725550963491014646411659014193187399782015937707478619573048627697139561756032880093271876021513833264627147458723669363580143756840531788432502633382879552763210096838849049427967641609027552010992460130127318145723331229184368209921039195110204038201786325465009349112987925542512142256832934389395380669201723926476689418581604860796278301858915864534827002345771152298157251274005671326684608894860251468846484442593460870730706580002427018463457587625728423071655317826999616780806213811882391396909142586885405393296277266884390329471944683210924168889265641082114199296503730660428178064888448739700282588916073511693845392870478265694694350401497657674613097678951604141351460172484224552380927043634896722744742953372420123424489516894862827440401766482530838456403213448211925732622153841894453893694934687943237962821986937383957120066260159058412218747838525435443073623556335783315604283457785738761266737345656947121593379605335998278823700768260095175927941277994087807349207104617923674207884589099706898763335162492738516034030176592346110230253933451189853272224388795849746893331937708162341195327562724801804310422260126365972652796858604842620763014098388143157603898257171150900121480842774866424407549874567811564067160947853942313880930595939560105058391294246067725350850597768187038341346031158524699921102507423252460033652191151780415349285162543063891986854335104625550565670066242286324777044278550993192511380120520069922997081212243221624524349934162999022971087440810939697949178380754099116776163150511357566995071007699012245307930261930245399157668791307503916437563167688297791162799494149747083476928158425244046579259915077204169245431263584618748393895546925072353443826221761510215194804954822658671514783023030125983880838495838010647662248064459236468710126196489758516417887114493374912133661614921352333466102119413290719187553735457439728653725088848093770659066276538578500727552000146621383005684668856175954124984538399951746915939245914669640529357683459134970017385330820500252832769329800884803286875779008177617292679434243252766316000564841318321343058286407586253659315088782364279821846547012060312012800425278013758800916344385788681367023654810260838776128136526295397274886111975209265268559869822608313802915757166177914055203363512377337872093345504535946241600478485492505777579517214496944589813641835262320133872796017876178654139350458205509664380642405499427361989525327116634922693587955283770917856699991807246641644969427541238840280130875631655489207306298148437052838703831724320915174813545055068804573111944261440386226337896159878958606857420782050880233033672664782052378350430745879883511786725240059542662380332460824261132631097121301323858691169989328243432609252850525070830948158659613448698605360820388356426202152696702688749020096944917928790687261894018841122697863338479981382598062126055818089628165325104487389021403125739782110557820723516604867619527898662602133166553272620145701618973314904481724774246203485973289319358014692724072085259065419285259342089306220299956122480526178409445363038054570811626686349353192806466759362804436470809279105319440919704604180003158544694882369352807133958437214964146345568168618661989114903355362215923712664067646438686671486881088513482137910005638480625358020929526753292738477998879941256258908655104350790160666010226440485950234182490641412782742985944829831433932867320197905254280673692670727793610944483574584290474101162444631029518856275163172920400361349968839123487386146156653245523521107555865144157581345961900890525945835052549086484516709985683053299522127766135006743866198061449479293068003979080651154172833718260781076055148635660720344307188162708694697531139027286577405009287706820147009234325898134309888311663199230503462240175138974838144162263885396863918477084748277917657388405429827578746001465441523581980408637286261711956442455420467587420468193219970689523409157424657749369803520901910835483319074141062953160689382751856826218945944020048006244933736563919733777419969025367701561740267172544895557335487133167638954081271092202642655449991603422908769502636584090059096088585102627962246746499175247784642214786397119861417403344799140134535091670112994628077138032273931099020949313334398459501530086929985426651992976762865087157391996298543049911848750774579564414229505648586605591046218790771647477438249890692350467789410532159899292559773349638304236981147387255094418591729848783434342637790524679130810622942468252263534372441572233685623097050567795551778947475533553361642466416848380614866889098792576710442015790321121566978253372055043941044890173327627851989707652195569008569001068794257285858575629331819757357158654598631911512285339959737275377657657487162048870156255393845310687270961926726550557587791615289042515345467434143182231852484300612876652097999448128182977778876462196611466438727147148112767022288765015362761352560542421911385282979994739235083210497770379716459140060952441027883015501167651571262037435667097787492665472141180088913787703486947382200494615065851585538657641385379036322805869784161497105074182559658510169451711391388013289146232787226232851965170822592596100939595522807962204889096584009464565681568670953665470005028373079571903210296466129542176741679203036144901927707861925979750325861196615002104673805010585277264878548958652787642216021354683354466795956211095309756851195917691894322073829320793530007850388745093537049863903927440822658548930100998942616161266855648889690700673767595684261272048953485240216681441239543896670246499834344702768149360178379224276945762416828253097257436431396044892504143677885690862365556276125254902790933489880857075833604188681119784744741446976135720786544027716519308287533157360951813142748563758453741591753854872352773593357067105455447921924948530017723010984309505750799766605175943371727871620761308298250659284563491519666084234714946349169634458942154151887057577088278824692811643154903994894291571120735311978820270464214582638172747247191571029816187483492444487376821107303324380361451983666345428260355722449118747589034247773762464239550961735594025518790656716842555338750948508441204284545595440804818229697267747948874023779590153430228096709773401326468437168155884421916947782326401201412197457794209028602460405594606743519626058890361452023509198603476001572031406186776919882067953341714098762956107638348301137636588512712231991977913677906187073593518406095537718804978445652714921350577582399908732851709883038390616771291168590182784441969591884682165435441416086638159905259157981327862870883951980862124284335691921096069264399846448946424790424418141071254289803025828477030705724328029839547970235294659241828781138599069735061826084717006775507475654376347953847361626585855592321283866634916677665107561730065148363059603523443295938382074334607900485320601475898706615556343457326240761167178425716189479323069502553636584326113935441517100174952359405876961093912546434126575403622843654446592255368052170960928347157422626928890555173912218083131737829690812986601654921171466812792750185250576120228869467862833869287116491900863347602009051095823373309385869522837646838504288325173248232436156763234525343323191422788424220639820354715011668151605224338721659015061290865558847570810583789430149187056517539117660661375351778498148440889550232708103279440116681563419466645529934835734310129342449132007002460550630366576190243349386913717356839306205666566047418370016044364163664701128407391584316941524132737585676348774744690509500751128715795943057956910843391519834625458655472319145397401091338753410856845870300470304514978940742885675007735734423277369998671808475816580561309554144396431282488963369829723436389820773630878635055120656364676914804949915239620329268541206778501709154427434840670853573513602847778810368156056157819149343849115919758792127212887508676259945588820738140120140705226041692794585955285675650737979631864210730294819452100583177109696891019230776806869148024353648637325809176194958384508680416759273895602321895560715363413178085812039706403606364728168359414266517971621293496223612855885163264260011640828508746367361785999959106923414701191611015067020386812321149960447009402828057348973682769793818642003951404771913006763221486898224063984990101854031264755147780307875034231813359614762778263801167687500347816825813112396096720258032091383661479512088291648815288480948485053015313260728964981258340545590312271943268763541399304418473181526316345435634714613525149424409501608091551164917422326807164426373701571950327611565735366478459678606610402320462854436557406103847614922651253522226750991818121567960967972944810718947778745249799165604778616369605199232848784341584398048395014269432860655617189563359557306127321597164561567095332021496730341522776498572440496606387294561308569966283078524734697515554943712589580715992263153236518614580263781064665413729682160296751607959890785267063392276249577018670995961066568693856550418021589598453397143334093703677011350876128082802195851361874139881388518976930371196135121121581754117287412781606139015426143926538640295193443918090362142986961544144478405670004505886959290807080865564388436991523835210223526114421121571876360102134647568490060876225519848298807648895995041996601527630105552375197130893693759061210998395775202742682712519138503268992209347353245899976615441616303873755171361624888952811262929651294447437628901880759501135349997244626124217811270000857253084940167535604576247353661061597282880195338320779924538119045043222351092769242427559745037234713093310770749791325059073602088074422130901638507029576300087367609690424010745876178805088930324015183277809156209776278484050908579477117436627178668260435654782302845195241961828681633798649407604432538670937215425856850169830237163474757927531424179771309552024832763181481451953255937083118708625278795540930808221391368448782491772560060632155451239159777778798035610925266442927866244108890885863692055164987476699380403541691634826114836780591457243014247167613587685380827669932762337550147271437995690420525509838281647393696718379990319394166039517614154404860956911612006390724522018789162104981997283047846651121700789434738761374780434792157443780357420420695864141582578539556082331285935882522303249950261133826016257113804098854803623130873985207402639244494338662370286557552680571350445759274447139935262195013212813700024174473973935196200135439997451654146296132007796719450408986777987020148677373938612485704801247320545774933859646056470735245736233591942957887550772600991585516525562588802675653358440519353621953916859271478724215893979166537492076912554825435767415089064402874263497816581878423238873517180420173552075294788989683550898386322054001612667275625875707506251612581732726950129142761077578036299703067475277603125279320278718863979067232887394941266864473907198056794348420822491272830523817142883650716871545681348274131723596677735859908451744124038523310630131678669421702004951668929364114736099050772255735561217161785865008967615446210047610860714815034513900314723155938120457130483363071049705084009234734864343905605236091842191018254581438198160994589459328666790403382389726498368656956613159569659428276065126913481887321571624580963645550507041074281899571263872924457219935257755302120806044290019514689440973569599218290558003270062167890515230586653185828087278222559129547863671756496603337485941463549104153507416905071362969916505390505636380281356314788738630433730476304926293523355268184855328359070759884264921226758034776288365807509470918363861446978830850146312465552097116849385527046031854411466939014570479835982861519523516865296274599252554337261989264689592446190443782415934676866080737813217517323908997871400204344728876777078720483557308683396489045930120516597626958136591448337559818545785910499351008703656799640292941407859286603059575846699538734150988197621682419600780669078503414379587802395053311302950274798853101528032993605941701697393224399302219636685368411348979136485793487864027304940033978861023970846964238284205606386666382112080385004976134460082753556249748585562752013808573148223646527452127216824348520731110091631893478155438414560679813942727722859305285862301629578018951599142755332791281613540620832897204755550652538382536379341753163339277104075072326958372123546170556073117372370330964139447475115175164530156248192622958537520490704764344269503869252574096731150726367691159903562647291602851393927600079772340379693798153926030175592567034132487602527307783776099277445519997796642196285748754900557034959492577181465350604358390604191898360385652747738123833722073866336474351259741017010564208962357337708059927168409479449133617393403689597475654331454285949075510252621762455916625319262181760764819097679655015722851301089553558233089452001198129977886585937889381808457979078592100038283792884044263292106463215257084652826042295616884767467808465538612237666076049137094775250039440770594932292135956791767268330387245682222884928048943737218880276975099202886230328455512807623306713024245724174666249646659305173029476788705774967457923142190681928541587893440218184965925100461972974300930304863429194077705622517953424809339054654840869714983930759844019750962580863669621189025718313115735611401946819960411696769186611219464531718164860222280618637498238034756536001343914270928231960554262154946227323817210360430542987371183957842406595297429671915528808444799410521976630174332655581343889685922878056406654676004974559972625636727504598720055985308808497200152493741169655512446052817423810241867393126248166302592505461133009343498451182574161272513984387433498376409595017785888184553988266164253957907188562763905304587470643333382786916032669827565156191477218769665377285546577875144837674285409339561682469074784413663721821862640052313537155588114550515209127918921358971506915591869208992713649834926235873561827825279194823433512979541651741712665544560979719214997235364630954919313862699297789792117660534775824563960160268562738017180778396688897752006947309837512849000689583647956649903912225292847603814595087051764791947232122934867381484843665959537400844883888510540050842126561417818695264306889080444420045229977594829139958548596428182250133778304945676681174022093420507924568704781099993065180819490289351509019731466825977036686334390734773580994226373663476044910227932411989847657195695558775348962831367902911784372615810472354224185169998362858210660879533376312253044151432810039081419929585712321176320020094165904328961949027163359033446900663794890177662632164890980698269048347105006112385242967125252593914182613907256071313393078565867336263194141336016222971414043369977110381199349390232958037423228967371341550442017180712873598869214467936108002652411965051257810708127411188994350618125631356915991489710964185753866670929647244447093491971802454097414475527248865926733021350723467832801820760985173336579115789939731928861364847297542269434639221893989174468203342761543016811015315733473057248993146612234005737207293181343225699735821360636900983939831857431160110958340350365047361473140032959012849215083156045126286261903763746350477909094440944085947460729236392914670607459432783032165809746389383504181520852193450606958850083343349467048373166511679515933168906298693694018997491191400688457361650236728846671129951901964773150268008403236075138505083246315305083995332064450731525283952463802262281684507813257429289719327849049502115909381669396911864907430716790690115480703777477063857621452207292073997662753552148326097622840590408396496907714076165874888308718617312276277586000308966121804460584065984723943295674637940121589495152574712619411790434392880892896693855315360789743582120556212823072365702679444937428373028953909419690718129100545535178217321089658676384512766055860693976425410418614039464335135353182008520825282634452008161027860657095882815209299376356200839821572007413545520992200065931510504943198482235899331517885247072806119111343320079843093800328248330374988118011391966404201402874108721621478996771063278878977424561923885926947442703862292469847910327972100335713559011135502212144661453592708975526490254673900194873834917694442773996470818290688405794065965407149833202678762191942491182371840630135323909575836840142146770329942502745321812621625541753893028018408025676806774237755343535092299148111604269070375932576651738006773053186065925828096669948454138556950582350141836023295221625780925614654399578394241066722701639245737859778253037524831315793864955812271465398462866824622013077610150502643483611457491623843536731656898244343429051714980880800342648250473608445155507839809920882887222955346474858962926589645694115411646443168831151539409813876189355856759313309619240730092742061706231287573139520950420439071871859976749776824348782772195731377621898522217278183968909337512241364194227565152975264942707267170456366306139171219098138287511747692787086214099493599242969270517153698328427639189934593613396489746245070938454178731130178937678066615761035113321631674808966529208514265835980819457993959192103288041693098880172980474576462578399438321374855540609037318433648512143324313434138744534550539850728375220321810373241792123150300045489761290350351965665654374532395686230515779895725905609205579229171286940242200984887356331738458447257006487302345122522557529918973566632380666273596538286340214009345457118249167392730757022893045860756421065687537090383854332364311519375459264514761239299972448382804458144137988357036596652734818954614084149378130608480009335912829583433453950074626929900707083678036163367696295980310771332306797443892175750657604460056235854423268900508657134406638558056328457913824425293592939612648655382450514198109474629280342108310471130618051688450502866621482316370235478449837544801903108382242313319806419202589648014720311937425287991895811227943254668564446126541670730309226605573186237175554248465433439394933224691995318201910112445627408259722161636268538497767648377314891575239843108465344991786223450292883112526415614362938096849454463585558961626023542688087714951885941222483486965157052767161937907890995512446519709181409434974169097363505492739490043130635897627019105902020657430862312208411172470197210034836095387373728420148017546781991125449952122524936383341335437571208803205335273172662163829779419359213636996551889887980137881134680457904363706574228237944822373872418865326277324014292905497775244512426307738310811315981477179987306963708862131108671501612007314945092267343745037503261286480630485787134035036680828708258863360373357336827774347401797615912818918056719721375116647458997694934612236236073165203133577625297998873510595273688228503332577551220502814962405948866687105987371603121733118770314890649572797072148397950961072255508265488206463649861687447318748539058590944917248013483987996312566254235607358895392602746563747257142114995467126834920626817725774505671944079052836084037813381397320891491674966280484499537696237815283223442633520364465048987740524204364451542740306111394987570298644198500272157307416577282060717298457432562307842488500386465718739593254636717737336334850503275734202454676099468278394472217412956959591671902699090929469798313964138163666546796825222046340959224320512215685634716223465383987861749646472512359804795709433041141768372704750941938956551240328150412751102180651571339977127240339507691126335286809907803118383401507504167082119376556297413360011287635737911733585547452964196384426631030041173419500506452489711939400718639467587875738563895872499509357016321670165114110107295466823759358290754047547082913172031072424069368883724200538617362981784761960037278211461782772485033096259685192015579553077934612628338909520362333952985120361895625676557833677071218953829441900612319588504036645280742444831236054810082554522848885787372563494990479823640190899994388262283751391023949672732252273030239817881470043304969699501729711503955297209843921979354323261947493377859885098799209466370915396272838557243632104304719983493402247979476538285381578537670129050193634792280219891645892603248178372837296365118070164003301740220333235569938550183685199984633140659419697479923462197219909305393524734381712697979186924414499629603828564105326875040181783505787346300701906181715901514120361031566206890381617540035332500811707553426634153797319628802947924017552095715333498905713985624435900164048395275339916125095410272309244258930960245034956770778158716267650419718841061695926480897031470097192468409629920062432164339176839451341700575545843655570928555919111307229343522863226183594128156816698112488050141046767350073059893131524683350169829722153820751283745436796836983166201309182241771012573506505720089567461354300162248864207029876462937881534217294839753441027003252851132166740999111678670069541608894776044045831964072713355536611545632634957070605042118734079174850493570591207119403439640811770103371849809637104117122398048094360223386052787193912442981486946273907599269520053625935110143585725099646542930071434883637807014287995991642961821122317544173342910564715185902732802148553908597598390163504871715941182995963692039898123735679911912171509396917906201458030713321626805568664239795259465359493463457972239504349202481466833043088494533114678300832609330774640730000063909054178973967915395819902136502328677135813277301988041794081508848402594427265866060082579100596011995849024194537044154646054745414028631085395237619745065195104793353609253043425026453995156675599848253321807678202116204564481911959063808740668317744095837694770793268180826929766474842300032139773334996084796195047999437770652147657124925330409233060039439308401880481148199333987273635220362390000990079639904264166033496081433612461082401297642390818936840762431449056482003576886283669274421178523185686488999376821588603406688719270639899087377504658381126946256444812225329233959995314984052720227721551503202332642586716698283372831448492590431688671147002290925388015993216365326545301169466199980239915515406110716138941957362287099965661650335858138974506989550713528875564011877382461624640177647045103006388423875944756706210096624852329450881282224682426681514407010354966515801382178403412690301013662837582929851623402698942131435261950805262686547248491853774103150707682055476745005011249800489471049575713563261347899553422045296174635619535938885340765249849936396819092198569048378221350131700165573517870302216742411875074797549791725784941083178224429730055367201068154901144142886687507532202730201798989029233077525245682762468109671363916313773194638590440052020134236243029694180211185879285453384331162367841077933319769450043237270679195182210284839248980592387696247359691443934669836647128764464359973201394048999993690899339036107758581922187345005815849771886766536540967837407586115859279302988780474029875248307101174339029176849515938334057578105720564566047290857454568586183131241871220134067030227762962902503071001277248089078388363324321911215111160934266558198815545603504332100080696486237800522656547096755773444841476965795429523175163977778780806224251143388056940198780173943909299217639811619732323899663326333321086430325742651694743525067892557824302992707646194033164171123806055488115027980510276267357954242075587678894373464277521519943969112286181703606453049036001262047847626191675875881485393039920480172973972489712897546267029714442942875706029664473635879614341198041943413352794719180812959515474981044871371025215499528486954777243670784116989489221607368628984409884151288563186293263199433266100443806572128150245019027863374696715899143949300143408626530519314874891125580057423672351459195242318338645903583942555274477279200874213695189068382458281448737268982653021817454816751883076028329624681047502223728428569686984415011357273832162737002337042792329792061195399065214141765083173392207245100851266255676294724773344616981689938980829295002690259618464351838525609367345428596960270675900025718422751421857400419882056061027395828505629075771793064312296975608613552822213402875131305731729559965962239305507526585520877920303772030729334831070031277259299347902498386303053368678504920111771316807492381744636021659107317273831381470406842372799848715109692301485258439350838437741174398925554438429985436570950752687532652800420394755633008869509975171841865412410769770095927369922585686801960332702777491527090679457034983232810592634642618497749152283923882044807303671329704118576902174831017154352990750442674800151849591618419837388454512256157225487118985265360157839811854986281098084548481014507114316927932275245486243267816657447441240609401701070754663885914049167463591354226058266314197763879472569464882635896214849396927402026987842576274940384891036916649722778299979644779185706131348869410879508277429798698662464337717831796371630111367895533977472180967550471217969037975631115212213822739586544565794564156197726986885122208091074536298462998932185524748510889241650785845400888773800128879435246291282965529149296485075514829157898739267071452835930861564801568392912486302989268331087499177075091824287131545055869213756480847542535016339471303208280450482514244440356693743919790596748569296994974911369522628648470050341756516092654697920114000891467456056420138674774200623350108738146216013188361581359524520782925001620063861972798880232690637903109050688545515264850138894156447935474995322607832030876879114901980992641971489511414872045125549150044648199630264522280851566730584662507261986971329686367613376859890665635067115511250907658308836065416794342476891104267304690862721654835808693682087705730493392986516004011839368528948617925431071639812949850987846816246465263464034642613855146480071647694953707269248109501262243300085872508533906800675357351649602175892842048071155788031891633588957629346280931683325746656401749965515023505994952687175111569356701793075445394620416265836588603241017909480962726316430678248015275873913419635215739546177737348150856617576524732188034919713547316388401072967287258894070140449255897233405942234302772988985522730517139668721178570111774124503118033618966680455558849880926231042092948462710024381377609322767601702360608958433848791737758416595301675547407558982452444382901139891452714924102767621952144096304531090584831491769167672983232164561883471557151561983992817089770541016128204390157432290151988824078130304398434398115633983076769724524775269792943751666722860456880545640849340378177337072424534997520957695118739884446623789115588453448308458431073280356131625878150503681154936640489847013741046067891200491646956289395434253065954869955901241309649816255661385770865821644433065472650646156842919239442168801907215987187782287772483377337910669742893727824053252092755359807317627234900775308973059232106426983571684074296515475941775687106812839751172740776873320898214201557805904530809312006550887238825027700831608494677109610784391135322366017180951712837397786424666027784174346263803538845221178032537789321219440525834973669063309436674866300417049736650566165485486407834496969583602346379787691931533654768617669606375944615311562603786450406635202131729277415531336383281371806595975087394335901176407356534715817125966093996087062191645254534278930773078993109649521079065183918821477516937727168112461994416077468442635446443560769555506817450476962355749157457538677764287890322236282567683620764033279076602539463653402438430882089659116975636459392069218047456213523625828520564865723252873053359460402166912334198194322599029947854454834932359327980285665434433230884470881571125124877601327232444340402115311060050541286852868425450740003609336068184623318213564428229294730562213685007526469638369617689156983947708591919719065646666984114360156913754126274129681161778169949009317817912085101310387838489254116510599834177443469626819309146128682150900607115823845901049105912261769296605888138470572624876563846235632606342715853034859442616120394330406342793551882600135499653222114748056829363348386451519704158650927510520348551260873045615005214238452752141652243675959860105314484148157736504394356558760207647366242747739609369160347837880093680110330946649305783625617800967683879465232240697326174307751522815338532537222643621925962280468057673361791662234827254801403297050203262024351587970171961234043547471955592945912335667508396054508578448879823972693127087422901347227883741195727172029408459291236698909780267528763888953437669489500660159193480585112870449924600324358079008965027136228686720440559695879762367661522624621946145166941500838646273312312545616538417273920149163002953055934801981248245857866474957305588661639640744955887784593601162887362958321049440210619660245765203619743305586036795608098970931335069146946649963038892047271496861771014915823005474653452990451530040298751979607276485903758196556132272213570494085408932400220465596400686090761612632433257496574613082011865022008294534880675212588603452556367167703998856458264313972410615528635725589536537214904239547152809291358682395112296488741646624269365689002079621997197779728597873383974855804481043963508732358940731921840574748448362755676351058776695947402534218884687115231423301489758944619048978791656384727225451897024802185125038355195130816578113710366983473829732853724726734158413305254168059267146899394048003935705794892448015355705732309548356256698707086871002172578896192623757360451374204620099794290214279523013160184428894848235062884841078754366506841669415021759092941499848150815680911227221990269969926689946129814688686658661800866150648801709373691523933953951905849550149849934839227665388636071792843987076597682809064796642324604595433174662808817297647452343794006827064212717335870675622720249330292430476795732516433524120282058316829751557154187439863641743289174680057240438953588531777455648487098634679556173664567838192985363581081859626715020775708327558635732345522549123878996949481347011609240002359545069735613934037900411278019823974609061090001665375067896611588960867715396657487263883669395354789673156284873050397097259123701268299289801766841967790111490058032022616474913961583550271398934244544439076203557843383155188465604445838349705009720147656339674679520733310568510648515162991026478541604244173966835707852275070566440145885285443604267618680537173119741725050398184920832967107248440347944561338711353315352338173952563262614644804941727665053764419086199102951956766211412649944169562607626735548634140535378777595258279485248183667831123383309922284689084674991903423951539998983653536973391231973247455004022399429783768576833290485586965871176209670076965678518277160717526833906177972080813802003653640848782116337473850228179213022490100588738691094685677864781040336861262280104097343697457346629287114908040737644375765552316970871342925685575274368028787072510918242675375001161806270596714247501743555782578251552184316239203770076916755242625180370630989677520468926636981135967864199666433849569779787283803885778985464098338332526117793581251616826585907916461485293864305487947744813104594213538655816091968155608257474266403913840799661503472659731930542392469072526392168310321771514743002383417195156324964887341457664536410374353338181109727592750218911334466760858080334530835679902471650846039345685724683069931459519091616974472593124689548957579416030632717417813203009900692391006080871758643750565919096484858905589013026749663122299370919130157527122503245706737598879357438486478400198175101950394227846121843872412136092501978237074462508036031712532014617544250464336274224320765473712084259562042652222076126122661801804621875004178834866743712665317983597638023768141228024130382491539183133259964875307309879433556533244041439817221093391420675776647840790561821032690748331813473953262893799680144436356511876914837264715209752900475331970091432559061914724487456801242535475324495276475963088531717477085655646231938017595152697929130983991703233879819128236093522797713008659908139457100616350707690344166195649220515592097923810218513199983237332309543900613193052322841903436875455003719107062551426852461570005780040902067081592892668850924284181773280002623842855154574524276425215449348130978640981845806237100246562828554008522638191715054201198991036660244090528776661627401637630682446282385754091372775097289190675670395943928763566013051147135754234562532120327737245786011409324469128891576993716946875353555283102608351580711852718377018109242697115843511577097077847542531854954223314749076070413541054910267543994136043433558541225057007508849631671137076283072046696890411863817864144048383669682541827653800002787744828455526134303909990129721987399493460227339333491383422023396108952056100695039585952132614310379208552911606204558124936292629085710038618429594414377426412737619559706471431771506255466822129764663483228795480146333552988915811370961731555247224768868093410306905810062432209043104655401053907308994362676800868054698590697357912561224314547148126272367223385330224815489270464260740505143483798160070196553061726924724355408459502791197646459499969679865186784326539104648160393358297358967185944787615300211193209000060488626129503357574363071971145044450614438344043508334093930401323738517968539641498813744530001164538068407027869586752644499343971049067473822323704985288356042149724591889753293763904454258291547205753908182752086620736661244317311957139792478687037635519394525000623849545659776474699289798992632088266034365869354021505607231547653706778627547957502101863785153256900369429236992129936375817910719694473477166185669174782579977910357783758555790405583209789900575104572862164594909987202142346806674218632241351188220029045479985174681816359692994613127370435576887476346806708757627501125186609245494474516315780920524210588916446921174781118724944574780319347748696574100776386466627160926855582564459960496077458133863610410508971974825552327327529018614715343737775563701849819967030243727599858866492803948346928548350602013192479959215009561080615781875978611419920938706283732657512309175195410498924885080366830435790108637214671744949701718749973977898858454244783107964642399040517125734034302346353362125191631514369540846366212014152505935720658709516068004346824842673273456071742983293902811986440161112328445372097794271667696377971360359137858341520279790832441735221928604937072731428088998475093532884887795657435841127602636498518627557756611050441374841240591741712211102299150187870481958708434910126915180523191531833216373416935165392387144605807153610538406061378143822420090025686548803296050160605009612785302096539774327169009350741099630964102726034058524848706081677301744452865464787159889696161233883359726653404184716935886554971698267959485008807929685006890962708314099180674688908017086049635966642393574464247120802260118930539101070525890732152338166611335205150167492107042094808742460519930891507195912251339402096422645254223110693277567041747754060724813257811228117394933648115320252345362714647387303134092321080066219801298772051480020324010828696209135608217745076130729385347184495691407733911985616490302592698682863253445245762363333647126115211972148699025499666375218198745834020295703885999132749186518722487775562799222360885891151301038089738708502065479220296206471493806149090241287479940869596802720993550434120616573785007316836681731099245220488918418918802257220574730358744265024405738107072552367326210526722519900929729838653183763172236667528453560229323964796068248007092380600565082174105375821284582681715104631300968112173683892606164415960213878736090606107726231410333119590055573739645205273669894996450228331602948400609510369682558362594459762918903536237066123716749146304156615542130264784051801561210622868003821136026815762484550136769582226710852679588715805767068670597092151237242035662776522784703067198433027090288319315285763925394131402002832237658999777641327473138467229196784890644525761354559227464515081934181527136361624691350270170474340717181226899066078822959730063420103257244589403352728654710457089944336501646839445338896725160081030768758354472205126322004772654095380157799845801872698839921613484624243253934603958493552359195541994025720828456185699389532122200036158487534031161387683087236355241433246734356711380681410812361616122542347997817399227277691808067445875809684482317255701242525062276078580386960377156876642073675057439683448823305529008913825038163101287849208470964461112729216509936381165694640239503945861865559991143769604496761041283846427668446219279520610983716943001307998078911837962949759842370287589218957089615935865915530448727303387672297781212043285782509759232211602234722881184938630681217585001629394798776572872189675805589547249007800327067485975381375142830755545616811148845569966420323885746091932682697991107559261425187273139814071995725998812122315094561966899421840753155453034217848983366646440273414508572339888804780022988562854684571602453466279534343408570191011118307901220597013538584481053981676968594436147689166586625596418195246266097785153887943856939656991280657803826768002889383027895749338098468588265029539361373482093272007315743579900979584789465799098438949376439309210767790598229540015817680967362527480735370314457263012624827913704505450153995133843894005187544495778315397898517627990693775932017140174336305680367260352234221436858603414720481080719446285712113759185697709541174167661898459718259986620759037235138072842200881915460683862093993646165466270785622112333794875769243882236141339280411603194150709695598229475456501713726539262850435966408915396538700519310160248573331809902498661112322763516096162801139619039486482564491317085311241749635706407342431193634825287761383610816460446770114126805165614119624885307131987923952557917865803164773846153674699441085992243433909259862539485181757788899132876299886953736526692775018804901775813109893745559451254197471368538267490851847642498428213859091291961210414326945957077475102378770664457479665746640986936311798228215426954348873209324463027748028509085805483544440053606089590757890612766795923089754755054791280730507317628077535417515016639584551116713455155937047781472037457956109908057621667930982664629843833422113543416963270487504647490147223211673709687719169374251868097796886916598168380562334327818388704115775149044594023330856075334907599216013885061160110841182865403557349657657918814273454722913390005063106739600858652770214710145014248160090944757011739691172376784451039563599329532502953406955762038822743436205878401689445635488710897351080506004392885542166365934655229120104870073656738811266770378800664363739994587298602636458053463918261946461235451444241461494380699787723050969901789723792820514370240209281946710832304237813435991275083517143011071827298728465264525379948250255310757065237489673303752059026892200928518632909349788276519469459995962247539125861391049416915385234690330494795356526927375622742914327290789390567779696742689895379807802240982670044359434319637395421095294312543935361121514138289271835511356526385670517236730547892817943568588401827717450651279765156139500455804429572962594321631109727529086774780227950845194136160682793795541371869220551460331540097735988048025378034147930906488462326574538538067562126941111022133923049626841276486059600773815179423043564079997923308606786021530253135259189091487049366046436775379675852341999706753949725842984938312523184172253033396905072737865410200259994669514088643791561880912101090018598332286968362397940500225891157486483676703804903358802439587438962551950561316436171437646031486772628210208799536099556620310429670741791757793269573668391289274654834760933425181422116143656278293480198700350212010959217304522031386482277032053196554627274164329043383000680780728917714458265706694421093596329270185957706144954024051412535389513863035503855098243909121271487229891224420848466471673971179510114144212172169393942224827452671605847381445217608175337122603298479206075398473829339105193231545697222006726384740131454487597591088040250385958805642156990744531732389974849735222659159434935160143828732610611899680707645876945677076539952045467351451198999419308787335922431135611372937173039651799243931791500543158724673316917652334095858133020260046723750757291633011319896866183356261476869738839566731489210573508416233879736733000295623398063662326367151059528354647253497746758543116026427850222057251459165805158354578988716820370761000939373801162896643373201962623487859517072548314926438873680572160189677389581930602816965112812728980029767122800207338574469040193334317496840791890101880971728725425463939287407509851188128506303152556070021595691946127611570273618593048434417318369455030561381705312819445402186046973904467577521326826771120972987228229829519617191910597123685444584478841582108236500130653972923647503015955120728170191361729977392044144089636585426414966724443317326234232073801949391559056783486304225881638694138285242940937196333999861896152265178251007188115636549486526040290605893696531175893841600334713627867648459138459366243835977979255802134105258612716248321244624880921681410684280813560104341940000984977593702324818282653978549671832909968346828158369049237438313237480704484154574090879611444890081401202093869113293071488421231751944213174026248160157591766312430110360477234292996897545392631228414478105545694794512687793700673437032367521868566901088680440841094904222467050093869600630068433362871961546697922118675161231546478757628588205210483252955675166825580664085015551885210318400001097781687644361396311023620612969119327556896028888395305057745592322248296339570097755001292188528027160303410771222455017617298276605279275077430639347628355010487968759999446277294851131771499832097354556600579609300319400255646507248314773725396083362464587615552236649550283847859729657225265785852104389982898172146135806907787155229394438190572985579820023564049325038043330697080258400831924017974541824297178678656051728096302819594849430860925890713496457890778448215658066379191751508853348432261672687549372437536470078383978472543255985935184626156258277191908304433830388182877734484947988384002917846910350843941303635134979216767132594324948819286726811203440507493560621982912121767967584661194493293405675497123123035038118027415313468510234939051880169708998484003985461476843536263722100488300522757567571969086605131443594327904308589391035883427105194225210472082331395850705950408044792102992728122553935130736497487235754096430196535569027085130987636729960924329973512685601781056241040333740865278719140253900246223981543051486334338048874334755853686706293792116045056944442920582453864314187369915412829524236728247562786005726364698651595657003018880188197569822961777652926629961355225584605339443110443359169991069602618550308642020374958407588311899201665802273207957374789099852563309718052289121073573862129322850550785294569641815817399927568307112323913810893741612771160717152765226798119699356843773321128039587023995113532374794884227860259495192582745201975524137378054416804928921740754348751971413369139397493255644496132870490886297697952171242670430096331697197658025719802837349121545998684148243207877642524276649313139472617744852764924786019958135603737850388861270610046034824551393611760029955402815871853109512688074299427083917920196581805386750285998428366876877848468737679026791136582725144897104957730507969109555200796523509836606946907844818136878128090204001888584516758043258242356525530106338667367052496126039187235056138883517800287298301731558949245133148173076613100747520345970482014924057113043262515624823668266898893160153318535805705535193519140592550715152570896994362973658416320128829224072361344309440767620649445450766140157683613494262587805788988109836804972779546492683855849983332831979742570038633462489676879520241464211192419610145931751278760876234784352703565645272029469279699250074154890011865122883196022580293275958738012477323058568320772071829656287950758535186232579633146720402735268827666404881533453971715066311973477586704248932273632667633324128770550388299100066535677911512473899544174275285400818414218145666255293289952634330674551089490068953660300453615090152270097644340903508226599721247208391270781601017608619162246706706229645010666929376006396746282375623586653301281951363888672001650810539282273297110776459999359292959489366253437750759807322538298267677034501354059763358115524030912104972292023108597783474260526884896420246023292281018361226056108855136068246357579746961312484052748418153305307845525138311881846734765487150487590396000049895929680809917060167362159970539870918676821125624681545430351558079954840365921859060717818646153063104108920987916342713422856038475220388319429449112357851925611686318903710093802444220617707261697515271137536472619754746627805344250346771138602130432413892794333599711506566741626346002898203732291462234863170975185092686503990837282921003512432285576004278201002500019054801381116343371248942686336507642487283485291425310944634774256352591786558632004449020036966289971015140158451892984750639710574601728444762801203343734053813405984841479113474769908151232669503166491672172791095223730198555218487957029053306759113892384158947969598205099906057200286207583218440657314350902057170114659819641401977275228710588645299000827491225779544254674316417554751327520273900226104534029276159026304694956385637031628700636079830711099179471588398618528566240475383736389834897696276625785612170149665247500349269021013978530620688412607461565571109290087334337907979129421300059695541372407402676785335828389069713480921850139280505615937593932797825617205226685657654008527211768937330436906817548582232694051053419480019208347902102364717389846171924320310437615602336854513855846642565915773578557593857973730310239747556989640472707851925907626795002410234211762369024210581761907873541383139201422656326897996924866611206948704893194146395050616752628040041976927147295015086459472002695644316589617221872017445733755113053737916706426636108474304261408788663333343507064671365460018698605855813145114262784790627744855436627558017117464806578013814024989095305639614239954676355004058963521408927128616809390042016485480216941047817436423625362091471590367103578413768825581270862590661188891521876029590008718539279649242279631320703894346872037632298930092258259201529490884519324865275062958655096563378717989900409699889098709361834134441895605178482871447521497202114924028489872349873603291485037239957637015970001418036303889231868740830375378198042339925141255579238280787857093235142771019371538212855144245679091005808887444690097433537817029984199789594526420067882877453601220421824214557465211944234316546786471183843828258823527172443492628469984282963252098183514167557409747036718811795527871748022192760780652281909796487998678313308036284382689870263125343699182892856404067727102097574027784844826559336564487296734119833365503000372250957055907086352787548738242582223434669007135525436515988734840525790913935718584126195308893771060560826884323041828242983658983458501228644661225649111828986174988544253502509754944938316520340335167768837905768837453964414067516771121696758943502409964828731182067324534308593367176332358312001199573351169085640484958045210600739315044730492108739932589497186637622075936261725492632862996268655338549683615825547948654541699654272555526632353679215552093306607069789646475293951547297565596534429282357731644036800112794568107733830819051592639963713097976834159552000589236596592789117721260049550043660505813420284991373797795696089029149715427613991220913315729938608093143744615575891882840817375272492392353547829231329519370571503677470906192753655014887581301667831252020348467960697552697699414652307400718242644136976147539759496158394299864542709642786671737874449658034708565863136982379195381471903640930891199384442014121518103726669243129623597657414620752135726827607648325630493983759883626968765253723416918496959260682079348817752332889399408770433911395249715885692669304029482780696864684201477236922165876386960303021889002099942649989760994667074741299637202698128366929883858987294651871536405222957662524059510129613348644495696443267347413927164530027649268946933406252193818849233539457724347937847223825238279771763144850140353131482956561866930350738435440696201213798607870952227696058758480209558266496346300967732331766639055157702331909700009388941865600449438683768200564859028680569953912340721089501221877111743194643802731980890221856818899679702253124838045043221254742836108586351982851296475022514955926634445751351003254132283516678738527052262182784253112421228741223306512368943398808984127792118364859655803946899741123655103571141487499250286306775702273031790333054876119509088342229423382649290280300429254974287848969088706824115991938233971833808484948147693020550087160088302508100964246297490489409533895892042926400298222411404112947814912815895581020128563168219204428867617576086602320854881029166050935377789403267606777864090993183131670182476261768094582551919495766628720586553660689355655133136574814951961496768791086351602923451120306947112414739814292531759612025929270150756307141832589156524111272168242289303800463563753123536264506681309128605455048260945639980719231690881129997296912915901060069653754502779106912376857529975920985109640018126579813747915859420354448076605857247710044580030339897761355156970239560974649653252574026577185873161026719009882488543454335278931056144501415719865001670173856155642159442712866725335726536205544918514989726202534915790087832769274653631750319724848174846459928637349038220290370281132686037192724993908839097184439188516486729591543674427623435191915545960545090995306084430007899532442637727479970406047073903796990344535220442542230196493819463684190064270377441530311686800410568951468976389236402329002074838920973476544870892040449648314377501270628484313916258735197700631556530596564523980180331294806896168537269580509274366648670008394570396870657754374622217377382797435181364638618577055192220155048137553740044973928153568778633630955030861370009183528433347096879501472073270238851667331962925598216552497704685566183163625490418922501965632627296405153690516487601560139453508851128314197066248009301620931952629138396296093067918189881900787539644994884384591928963150111875555031267012520413117593984073574475594773491031514710172370877905312664670129555730956139575583089823675628296157576605736947134579872562807904519260131466300691627873048493034751160833755541229039969910661051193558920103366345419790975559380205966877947664599936939077183049369924272761218357951750996673168050800605110305716856988311398629662626102674852647613975778358842452812774659302298900338707600446165670681707741828875757718229965466830271455224347806816393863694560652277081685779021360099017067021922683132061036028973895122639656909006259469656346620681582818468249915359106378164260338880554989448454214884306932419021919302925548077714092187748426454134058872683956282767544815896481981362494193262096098367757300121619007731324288447113744252384393854306568051702486078142625938476222036720789158103344002445444751766815835803246644884389181207144338511690135176208167922449883306509247994280799536803900636302019805007851432219009885824467449488987089612185822112870977618760250304063626968882097764152396873722033320156727108278986104614429784136834294910736012305584611301217698734286055857400472675723104932439641521427852030060917109693660155907575022407943744675923438329406015978794299854647117876117950393297064659827169192961392257753486821017775824572601103051445492600529880084089287535447516515997648557667404446695814832565702334002044717562897525100837543453594923112228195032736129562032871630862642191042969018535196161499879095419616948610984462843201438482157078072735022272946911937563604046109890507328002613284413097811379439462478400219951655801673183842328721560024470745989761270748781727291428919800914823760845741839057276099332721509902462636991373214547506083638396620456014235625237097504257235212598563678278789043496991477033774603515772392063597568748564290730963813130890024229186019805314457772255113542354068432966980969786695361519865248516554973943679498558241581542547267265319133086775713050035969851363514680979473321262679851820517100225922713715500116746738509407781520073721707283153592984055647648531736874073584152607015591973381219058264828211441934048248809873154757544745908331186924310764087729406941713029565094043023681337729154842960872492027647053613717146969680844951544944883952328241740032452946139106542203457845245926628703362521055414757091832017391196866438322947865737547982206962279021317776010374717884454669701211889834179091183561417535632101816867337938752138095195061602850635807864695563414489069032831569714222350543683413181653090535394461938184543301567199863180780034383639613115733315401643770827883237888157418385424929879933553190771682534900246261070215451533751452305740614277706805443833996280416894247644960471015239190588602454342179256858528901869799696311313332457168952645414879622828424939835766470488749051371737374166103180358612212140878334027959094979497933704134108596505347679910567324962100135450095509945143279211313026425367604088818713139249916229831402144547238041475288695409168669894772431837119355883733486101977073390665940501366203629312130691487939789775159727635128179737314557276010780891870297670341005080048884996360491543819066406774730212431940295849020107224511048240482174584366524134294652431677690396660969107453764001552697659140997056627855127084456780560167951988807194055500772335233910067841864775696210209570394146003421481389800744718782996060116228548706329477144817259911512643150123415174376098226788236402850161984186422383177988679257651633293176919945299320058912915977273379650794888882098450904658316900897096474506010906269936382570395209177262193621487758836387223304930332667194982460257976886330563839033435345723259975035007432146098997684347227774387144129255056873447103820449838619153113603413200572723326009943269292311036176056927733382469608144647526518776781275134778959365642410636126833599284799433526932851127832073626199100584751610365605888773435272662412054785484460048152040851136794979654685486146420834867128183553991271116614194251058007708871640870075044264579743804314618441820162699245920256181215116851107662120142203675699603935629439953853678619092979364375757533598687501797225028993365690107570319683883130372274297759244951833939669553268633699384261188989803405019009792377255323024621769401629302603956626471260967776838308153422528344891655724985432168213907831211165646152323056941727752455823046790395229975143731561111892304811692358103675575197427855275084113333121514219559687052551909459606600051278863906406392756819000850321445323475792911286660947704808647615880512016447700870858233910129576309088925132524313809137059672219284857192917088926732782572135228350540926979158783709457206005609159463039400180396088839076659666444370697026639519272469948056456275474247569142433849196493470513601209456730799532971834037576737159548926771826415351502966951175515303887507445069888507561077246435143151172210710850461532780440356562366694860135702930341595965631158716016243452792985119311229199825682462989742816265985543897739943305272719456135993098008438839413298684225992176390933769965545383598440014551562517703243400455175193080657106638421920733525869043456636535066793113176966368018327854370905421847594995201681010202869700563362810366778396934254245753283395749364017839209545790914111802870554462639636712882948622190194878871641086238835838858271358578243232352375216755398201856219401119584467911494589406759572631694803199876639365542703183607444427153278712891095350571077705970052262828963192241623810773407403065683209841542986162629353010911515699894222715282894337469668417563809212199749151503240937455818825779784716296945696614071815666369225201909793503380990795216383418207019606525344807315384235784069266715202315561752326982747408992221535177013997348928043932220579575478910953026025485630985393449508267425342033317798343320571026605558993003626274460265888803182290318016066737481756915501383353153377745801567167794668311176839492885318638843394720952233509381921156647647702494418983961176684045359808417785260550865363198043535414324817823542554955571464437214651291547914447042527132484177017861783163921046433668163452151112933096913652996984083809084521749293036925485012950364885156706192762150738077634376951717832996753325668214277868900232761788898401981826604220244550348886831985671138539194857704142489704571158049565556410188382921895873700044257543058141856151505704899607906180852114256510730434031778918085721784727791216423167094726234556501543868911095850298587121624087477444491563446196550015499615430885766955083806944596798242511191503598186286194698930253598578674156373851219636215993341116563485244213004088160822991364914770461183585460001325722924661921068358002430920667259621118112549631138775148486507151850685988052640053931100295754314442229656276318705613904485858257143215000024893680795877523763059223172124076155107548434452210557698675029017664417793825688440323868301518597073333448272394163481391212913362888458671724216175335462947313924231514681805863346232431631537881197682682707627779073277854245426704492259440611612977229029996738040621222080339917298503297564895761079942032227090224677845410586715101162864013128534195594764586376354479707861651006808816819673546800865295454913373383386028444744727485746622496903793220368676969135082277060879719158049940585254178120755586684701505646992162370398171901933109494318663094897349191591126542972690036361782481996997302273383943532363977081015031807517246633565693645698640688295790191647253015890762812751088537131733713422335129285635975071865309357696251005339448201975990129718932997294502022362265878213712165822773787797013681102214282506287705389377298162206747067593172937580736724840694225576608438968982150024290954430160514376939175119536095442024638476545991657224085912316386770478640542353075056005583023471748923592817509272746287755224938633043559431846247190984329733625329527830011483819044455950949438485074571786416042727665024475938325191803615726889467773909068888278429423293086400755417315536559887976302371227997549087300465539482033507951511189353435478043757656539926236042287124481687784879281889275012843776720416035023871671253236005119281305923899294337894983640089686707000725991178798557713377343378769048870435995287562324336113143748191015158227184499921379242829444510866208876512285887050875679691517931107376625670560365324768961152859262873240387469400470448914143887277030142354538057390274488245492001971955861810195301484675783981684813115866911417935746004119892557019893933501314544420601234580879097716405174552208515610961387730227732104204863182324198544806391571734644773250612765775117135849388815881170948847442435600639655455922822829804210027339282470103520124655461089996486245748414730236244090216611990114815843277727857221973882622716701747918498272767867895420964875601560402997414209698307776285320179250537987638273293721893256950486070120555633972899021541662806353737087418196505733712117218429448033216917390336159192819091247811217447970796527759544561725175507705322301448981542768385992824587055718151793850980472897829157553569256540251016380743185987071256234609539581352124046947317373177528034361888244303995495766178071241653870394092702348855421009822146078157151782527656052323987293176982168802921200885834009590393972308288860334578466576085244436633130439388878472731054528506321668175080658689946199210960603988251689684936249424348743471155824638235528708098666710161670481940901180449070399406262373852806667573162814978674537615345818196719787942680781591227505352956195827878086731245047457054205254219389043720705869591397763531770305289915202472042250006033192721644147019696605891784150846566632411003008573109290071775846741106703650351850628269656130085135937131488734704083457527158006782299606201313622886827495808939816924164549463972552756106869344806134193880819544087137951676188082453453397721966125387025126506603760540698813203043270916315097490109825794267318187886042153912041915214477604529385082585279743803408038864374964218275909252672232522881007730904425509027808212836487737399908112750125098930675338156218554024351649226771041202114530710441807905300203390539723394145987379358779594426541770647009982194027543755554287889249113297465602381580518862085516724543779955518307242054853057006978940734531410697793345930614656874433721875678726468034314158120361851010847141720481956298100987381139393407515468974163824483685333355120301768297492767379947026384876772477075554047670883798193566435941599584923573490107069225780777362459824675509562095905237713118310649169305639649171114284676479110934560252423887190163583077415113282257390078932812289381268028290027130010345201892334727638268415223428589880546446904399855344045324128917656889779475040740729455507344217698875895646750811468044788217909882740834686281067009301097178522903088159774761930812972943277018252861450652234762242695508008012682510107914751063849233772844097691528848738247643447486609104071523419466898587398694575636654212615434555924239432527904518698385551563823336174227706033339553833512416759313561040706274534985874920147923403477870363342312269149112364764903762612512145055351338955659218847554831701331622996141461002233742826524030303956809258403761861682242551512212201375253453820559911527955661574257032319442022071924545472971231738734375638288311321225807752237040533841609145591741665970219197507314120389548860376508615593217874049019187962801090222112044833204491997421190303713015195387197217464241098982053243867315701609593424845539520589844239627506619649034965438202034002184808009992741125691902847001400218092026156018028202430592052305603804592767233635160223480375150694597092533833361130891134163761150983860280658593066026461806126064953186819070898788147364842426207527960407866286093089175526347426208129579766639341645117137817410539208799083987919365138323126581311032239482668518949655273910989116548613830425600766157078867877347289507639753216481527387519666527493928578794962264999735599775599247839904905230786659148498567074411089589796741062709268483898803926587753247195693127001230261388312206741288787615415957977211603661644560325716594602338148085877476889637444364174552576372719377888229934918863929847360174751058492486646924147258112895814956779602082030553106364680253782481294650121965258485561427630014062057647001528161601094816517414518941489225786024724435894067285090017808321849401721856326645261186774416513169561222994578047804068947897293580991909758612119908589520120802783718978671754634636007762103181639650009364775307038696149262195338822119191903288769806711668467093487247297791779102413676888879770420157195355468532385473840897987085588743264822904473571200600091161151087302217465516817555013414215900407870026197904236363492138028049457778918802987631212330110949632635243771319992848953963569324637562740249617786583771865331780169873167176073165725836778527403800256390592646958208471030151128954145006057736206166048472137376995532590522413050129510211829886160143746960999503792453783135855404503633800905679577335484251877124150657258468165530132964662770800040884247939766780575434975199057981038080325879032332200055620223471689456532090640742420288759460816649583702273993133374224802948856518289803705278589518562589846267718721046373818108361595292302482150295127025492353409687825400138052810790072031425757418785048970140558794244445555710240558840727990145302859554017698867294970379432054688536191112672785350229861377869375454772749706220588257413044545250916868821878394533236587605052867797653240924891708640283399397773887918532226738852121504074908599902722661484788784996055420667865225894557620997174426721356722792858824861879235028801986211953637384683027949190475939828269215132161085535639969114986772327104628396565243440188965917901993521510211167051355461803304405564262776340640611035354480430659321272975780757248772962978716005299702724089550134241989352746924004147744090455887098134542328849059178717609389424405833061870156844915897158034060600099590448733632992283760686651179505988059832911509234807745993572619855200913412707868609126356438191403945830963638303402154904921874359609968232004183337293361822545024509178940662063358695785578961042518955958743114529798998901966745839010157972398981928711472118444777940027247378403317080013581454693561099019444545128663473350877354900069900840277251663802995719876297999935981191715909886709163376513182399176770098807029815204777681788623150092277543114585562323981279842236086261297995797624988502055165997215975342292358560083350106511043596919343301885419665432999437123588007153535243674740937213571430045697367366164492665614951783368484087364981314129119414525819460718980145524146987342588643444954763174394684998302970189427984829528331131934612307242950417284392326907523927175893692513139660831897935927231457416369204712847340890591624447333139811450654082782131801224043071094517619273039367710662373467424404789437121454803421325239201900184680624781401414096385446817247981295352776864861245076589418810556939513382690834159989127707659637866393923889889052492783589375218743531935482756050650446368672646742266319609951293212039018801285709907547684528993444249300049503917509026960469492787960508892851998094839567189630797174945187360170358033543682432556119265972006143898616177236922389519796659159511863829570552155958449374725101137139598867741347927884414070778164377641287795100059077282153192873175051770829274714827724225599415871249107888472086118515063617633379157714976544505689071187795124515604316713995804667503963639697406390140540744757210501484447721076729153862609527057522927660485126997311083816194603542893704679945495210286577568190122547535097618654296793894155851509380718448057419445816015799928382611577003992902529835624208265740876702795252189189217428957949576420103382197362282006546651131074644763240252855570455622306859198560434484531972165500269494809899067776680425898154372105605905256744927650750756018749771176286529452521361721291054735779958824212974484003588664926994333893731043562044333142259552678157199911952327374852366298149769266449126613635272477272606236244213086890544287297525219365369541095153657563473285485284672546255509465085783612042781797422830005935793273276862698878397186200688867361614879709631701200143101214984867834317238093624039580473735825484927144850068933551902290958109672248856260573771743198600128439308343828640718018053883058334483325909711123511174983582745342916932148865370213773004162412739971256354487311076106685205307132441174751854107139595614054418421768090308151781442847221677185893526054232744773897673526996038123682775591474267424990372419767373426150140295116557713660330592415508789536989950776119953974452911309290326485828727072687804458876940308744873128596408220732753540446764906475877922450447062540233896687327526479678509276361997355841920221730220866005442394108704717530131460698249007039934546012910205688184139106074550968417317706139854798215161602521202411558177028959290841619029467098323496664347961161693103616140919314921997632310275383826008784257648180615088609842648383070672396700642642338769468760175454490049135160074586084591497850830021910140507651904966433579186530068179690205903915167898274442662433861833697338274695906002510259665097933094898075353695228350914775590044574783340740389735686977265495142556159433032244572722692647601684830192933240718846583513240509596257542225747227767495650638793029741499769655419800619083644242974499987829880893241280554982380375198137802538867519099269185635560195854762976880006351915426049134554494899121076003155381469925395115302470735609844505431458244159536234475755615486300420639059018857487289127467450186349743176446621443871540477428134335665171695187359990683352266861473092965327300778712392336503049680863929859709638128848363932433486158286662743881200330452527731630594127777921994840339633332279829975231187479244586851765255341446930613879414850143376840115730526143260595945179778937355028138391612974024510946501431482273072052361361120724391627347579442909239083613302264091327513075900181961407523289598193709174817174546053829089868054271823535901852325324794516371860864768745880080926900099264212582081669403041846417672059715061934110972238241515263994207963361089617157962124007583522523695973200156364619150667001559009658625456614904857024562537463867838334449606065996364677413569866819715442527916773456028742494135337868004723179351203766249626406032160948718220238062871675794408995398604590207394883632970300776338240487707233146118553375901028606125723826046846897845111162637657541457600334607789942351633689580335212917935961371317626268481963013984642354017276724631475733866246914373446863615863748394605979812627450701299364439211784773756617036961226024942498631735451939109950278067912044296008037518090249687045499893260335097987144948647828703841217782272193250223659624425706175661025245649576244885265245756054225738995454822472884514414777121205359117619453297251647780340419590129331655746485316540621683587951645916574085849228885950613058288310059704328662898821155002986611408885579577131336064705939062639937023485307529927267028251312564452253160242132916351690405102769581206205300507040295447320910100640597522835690944365678725024583610030575434723190209704369921886555041735933006491607750181448467182186488541380543772924958052103445431567528952704580698250172862169146036584643101155642296993372042100023445341134448241917182010878842068465898544221017180083824134548517752083107405849896291781107645728510639693821236063169107253363276330312330712926668199571256682896924657377397627498582119702367312940481714036054604597335790205675811811306622227318403487740220194008092964612011410814578184993704549833141989278875745188856512016871662485968833684915731609474864600927317162750250582854089532542116611040499266219835800152950253111181100774382031551666756003352345943456330149384565024256024929896540892992890073407514803450250895049569789691782811012162899573775922174818593188567632119939894832850014949036818658541091588942054524004077299774705438183303214259088688176639957578723452378386793647774199883036864281691751634744669722040802809250557041426642927268876346616194721517064240344568909748778854080215838954800149236987964946755151854316464513340635397599547798044406384327666433651474843471022262020009258459417730037389417461995287078729347225416946586213513526125424784683958584724165915105921947454628347930587984558971340026263845217975537561796643641315905421570547378245339214206984144076636908182386173738029476225275811984138441184138934232493958053116542664608854482512299813002494468828491230726608254418571248241370919881632246961038281197841940107444320972086510742367510210235983687981745530101950329280493828242839279935602832387588284105014051847333666748050360868980422783650208767422944727971920507347985105170381307177926230997083559801544417837070597052596519417517824150883642929001628460245069618328590822833288383529608291861577442765110914938833379303687034889896913324590412179881309009789894379107585112555635246489830164654532895875667365736090022773960690615040053851586410522582181995384120345278338192008760037788247714672375674119922130176359672957273071915030511070580129872783680086174816686508486647242393092893458307984334265417543423428759694766243373837677982080649155468311617236019541177646390561093642302809817296955917129430061887339225987546558864168902097550075673796891918949247273085834315035156685684065912547279503401818419415764666587195332495556308164025386592710602615342991085005604780040989468941436016084126471877479936122768982418020570260063696330882047041280474413870538399928972100125773569666862488941762138532810468536481160584614752877904529952953531186730955180858225894732056124056470560761534765978051281599139194861436360518776310717401100506370014094284192516349799074065920692245698900040948367818406275330859923234371286174583242514826926719914519263492299718971093385623263946458554504405622699458930372682544843021282420223590258285624636790315572311137700352540074674996594230951936527966739890675248354846319295953523683545984121613428510022940805459656257889557028412787310807220859928045037062385225583098900318103731498610371753317836442867104181692661947516337087792167768781390464364654073978568247195667161949051327625962671259556400506606648995363780353010792362861043837961030397274366299466771684981698440835230989621025704021410187720463338211808597679416542345939922601393316609808866195692955196982872720127308067852742133447690560900491212489509737805355529876548806947908421601707227261415881172845195816961134868460487615336785978341480853870863327871864449281889985973945911978062412856414716846936403548862951317094066956433634313823153425679691415012143071507787984355920589982490411105633795530760182119302460930853832254901627746165765439502822550324034374871963359535556799706432861782825224109728625705650882239694343294041520622596839557245733948282480461252902733192853948111887299366591882230917865326614894244969251046185712739482833398037471266912944395943736500488260441170044929269096101061867252176942127084406272830246592835936571203997192536839774312706908143263963535987488523314809239416706772242563700153930880647151578558043921446012094611368095975656484559117468073619589701537987149898372276339373468180821457141416100018014181245795592666614832411831995517262132981848429923299369671698592898257931926034027334248473032104783020053782461461162566098437882554700500228812514906235926780638923076134582169986277806940930733423491517231266314499042161531275485716604642010336400766353829156018516357760507010840991433240246904191568807912952959784054765132743076810324951406776828887180984821594042149431947842137663462673546368643145639507951096372358351168256901437917737384307849359903665067152650398693002839689224630875419421000999074225317144422341706013158291442728373524078317811969298081073678627576657573242647026845985886009515563749488520628970533881280922800429442612040092889872272143044794782821370531983218372802755563770037675258010226351004662460879432025543523135686045522261311263994266059285688823935925921685037765227366290896105321004294435700908965315503461814847628384541767907628013412589814754678140568828778299428007317095772197230535291487151185136831001179877223091269717144342313124906705295552397843740495482554517996473489184153475349346963262060672423225115961625685771323915427024359378371416223369259293745497804393042583810572012347069773277413629650235176379626909206900866698616926195939798359331675581438142074132143676211466052350610384834473131048480139894040393870333561305283133858476564280853336570879300970107532225833851591411031352040414915140843371484858743026887581636725618070257266782926995127786185075052424248410737785732783741462677985853227256956747040782635705110119168472984837668173558933710358741605318473853157317314809586577287523830329608771096889356134281680984355691147005056857041774976938008497435052474553339326453964296918268141881509885132846493809478505944972569270053342531185393974745773945826832669481576246307773635684623483442946267615467352960548800554891546390737632981353014730309692020438907766923697671250166529312622572931219699220519337191548321703359244660422441326170354464757900816040318238333961700620519303404011442258229101618250616395468803678037612589072670640094869258375293846381846645403710621989235137237358271643651990995504460422128396940991050423452264867876008306383584685204762255754468465448826203539592657636937597372720952803174652857524120550704310584450085947904868473592251907769597342972226779485875959156918177347331773907308482327452060527586015985239299050767183453699909053172193469979508582773115299490445336960926055066507478980119428145594169773400532427539910235054854508758563156497245543413090330594242884888790079846564380246780340540488239622039918147630121530260053181474591196361587428653015023776534889193838911080650416657995859617245151247539261717870688720232931891030070403619403125753582093030466740701074439023713671552221381823201832028708531201851488340270365117018737429940318607199656172400662494836850295943699486922661994780834140226465002860584775386776569410900201218845690112634480349418788623152759300786711460346267501699742846710781277062407744302757552230941551328374684741974092232167495881162431399663435445467892171232891195318158626934480873509036104782323075096681701226210110355360071902615426375875431645148177500882992400226321774632098381986172761909361359484710230998668186201033318328055213334839057004725048157396009064475130940880185158734688797925298635647005279271781504882392470940005666190271617082355413029523262390696061137645940368060188706087072737487853826144877748976934852850737715098555317001849958545145906278407880808688632956985086498049268929332949449101209562173012042007264577784775689159640361400015763149255325268941265068690896601728839079813100069707111849564329627572379802932464698156731000512002901811733186339425634166933062999488922786792149262372020120047277805668257923971569558333330712808756156256083015633456528975675411749140170159966803192504066249935763674135937350455988606502364022555148667571899877439150935537547584147388286326586648197168441211062427320814785591960038872658405565133460885710234035684843723095404771638793083924450521383042368060913224022844300335337681611013205702390234312875051777234827497832663135777373063635542505507974536928865141785369775918902807195182090421070071463705957054019896900475971851718961124353082090810138361396433647602639346827292458504109598192729534359500950618729626187732993930217340691993721401841737121441073792546294229465370011244859392259480701656221288810551268142492908396327557539271775933449139458956766112700957752214564950933689377474276263866727957366772237914622271960568791265994640273822501369196514047379578586414443849994936534696631661492273253549452387637399665757701980041500131791699276359241115437615852621734884716193132658502669291840404548458465816106079514949219623695677850925049268931950900490000822515549275457136244152106814544517059375072922042667308582271763926593853879676768879130252169357472093100952346707415763582177755665434426063826088638561510224500686315634565155718378371172629011622950405707266804793540554656280383006277523997454037372845408783838541212158136698213196749461348268425024723382422499148128447254590943687226047449779305085420297664214074484877265556980537834755149162721616348573844432379687903113661469570869295652728316280058280005269279315122233014481252293449000470292109647193666926106723960764133461113856837405844918150556915590173363627657571145213366332285317617752662530514290905220306279117107741272698829114683246880864484204844692128540868310332598152106412655540553602429606561763899805123263376148352220115499980649955700134291722360559415541523629964607250916344882406642274420313480979691938943378808907206326791457175454807006495761298930667215928360731939352218264126592647180477106162548143813749519995005887660938668634344751942597962306562059540091281182529310019858394992638874337023779720917978953572277754778896583967984614375567168716064844827783031135420866634537294216561913697061790329058534847320163242058404900282042718761765455560803673814588572287563733724160818710532792992653555235494935198166303077165048027363664861935432535106663024337091753144943516936321991175847006204386673154558844770595786378982632941381216402928924814156203910763645711515638408095530438301575033305759753449648667540286854436109943212596077236476486946355310709821695603713669941809921367344293767173754086985196108067812731014859480300432991702634652311658097635807654254198127890242812604367820246528015087742463938369995921386339354893956857763058013083149273192049550962618829705279465994763276394226033370460069183581951240008095536910065590373839632858999903299863827752907554050212758320816488451085376275870940021276819575019931591143672951952596361348494397488311968222997773201509124520289217479497597335758272824354676382984865449607581696437496349381966339711995700053557661426100327083624875711278937182943445544127490215797578943093373850675725056505529143118547237935049747408250497923227614811805920028069666105240151397277816205046550479491251067438632589343318267745934779233805578449226313618246700710569756787586596740447777057034719303578139401342958356281468500404783849656703099821805907725399041165641591936412180223650285158248161898191518699825167288577413694981502058360625899827543506478296619133703353964784164282449008346887229239830844204199724270062679917641518011626999430173257191192094308890073789643319291957270618937644275696960722487979088292149898940921828228155082469729273776623880026605330726887089311848904525975435911018199195036185921733207329078149551784270328034462060599061284103135686778622977622511855219238035755386754501819566779512183455836429970631862271266911252532864057207633402688495854812581877912167629018335540479529548028353336717381276871174201452646854040822662139008067454426221520929040150651743956730567646522694489084555006111780847644199057132885413111766129016158953662400955276225487208363717366100270665534758843381762123242600057673791225483339523562777113359496078915813966922015746742663004140630343899303265655554969661527905131397561155534538140609389046227812887606523922023410756547692799911113282412458785306201438984310688594910572082409454898091380619163605319758409886208162101864516290310598051908663156855568510963859472143768874350027882860606646735362268683704871965215040366417981043209308695527565940555524102003025949269733203760058525378818058408264920188620771274283333147654312761962187246348674380317137207031945280814628016773715936546638802018158014514118953302546976824633885486466625517040714033503047722600836388467437984882208098405004145758686927763360768126425329638714828452480049058641971314993374039751755219099159410751715945497977405967140545984119677579429284821461393677159191729635151570439974492205485254211589310808373972978214207660823063774459753912629030221153706247975138866049115590399283018779914897932566215649822861201160096997203363450515587126396442109272391767536567659989561445507191625315589170740837933965030683837403372754663191891547340425419189508115733553737134398113519135401601531302632643981047610978154655883947024150176630170763114859873323306260421855034956812433202172667510192887814949896408307299752271959709251200463035935944536295784105087646608754666194193504363561697634057982392473149139617070636672591380431009027221108751089016233013441037525371152805723556182074414059250858945990492101406514136225089133953477728378314417034738379896508413745832959118019660981539920180141449109884188798464172658484491770606308879514725852878685600814190116888665799557225878614739566933440320086874967395921881946502807939901682784535776494239765050498278553923025946428382482086058662809235271402981956393708689269656150193078610641967030060495788626929532942592015580477693755289080573368419648558907596261489965448408930569890147278482987823254927679902713299827353379140923172984914108229658224912417730799812725823275966871997055773309809441918374233035463973498043103663762284993975181605704997109287737270270654635391830945618195435962191227317455882802563063047460384573146329743171858788656268446945036592762190215350549768080020351759409444873815574248265170177720899634275727859447612745170400228606564433504964831513866820230633507189818118141882785182076100879850915858093925129512945494291588012808741606062703525055314158305196068852058907283642354745112142818957930171658925635950836675702168708487300297161192008695305957115484525199680841352156403722355497285995188394857800979361319376821369849476279747087606108122918561469960010412646227394618256368468345573133329671783959325450263540755557788340585044879344233340011184057648506131197509078164082389099975679264513783169293691703573811043628452288688941717443299124123948371391864286532088307097202960198747534014012304534601842245121604376156693247300050335914984933491557223563191604101576837092375007973667911449460473415600209835866270866403018943733337235921182752487754773596116416303179867339026465563576217536641741554831143755034106266007592410839853233554336746554662145028051262941792689372913351146868436281301174464111585181095863356583737240974581969289237417811501969178699184916957612270496880998324151165877593544846389374789060762223285390134662023193598187147179466060947360590161563155317655155010880419605027767874289583746011402637942873301267707794039333322355767790864018660801984329777678350283403538198080727062039529219949295882414199450557867855561080372734317264573787761930592406087333220301480575412516553171709695437160338342422680408418690033754818649053962132140479853497097785754544580910647924640589761680750539746249605518272738202982482890986070369131424431402425142620631484043543488893278860159412651201115043018845185215426127299457336350311824960336326053166453426485530040032068018553987425191158776623706132463833301875577654700231960933135858141162795948929272326584107695239210038207279048880780154716169089291727433808013732847481333075384322864481567057026052251382328724199523567291314929404508933058038313977354600819531556160384104118955531749147884261347529206978130802058518720749006373403304834881393023654154400175155624488865091606377246434032725708039816851936628588586515920461595581438663977945252456150294022492380500589033709255531255366034170991516316538926570924747239792095448824755211692267881068184204738351094621277767084301310929576305679999805167281531871289701880442699677420937657021000795407661901395012558687665776236096015670734756235063462381246443632111010517332247161582209877532088212491901779028890598676554116818253974436480272763394427846124280551321423184699650360827676981153576666002679553029488260794389217953754258351326245715410601758372073510809585239697020890358400481211330259894475067733531136466572961250553604474022913958624343423752987562171438578764018206629691202374204207231987350686557670158759678628232682546688261373865208586904462395803298564394172899826900104219237359940733765503097633032131918024620454039062096133870105744290174589002316213567327410259444885984241717576421759547550339099142524867746273814044073470337534080712902160502267546261253186986821720868526101251812590630107842034057960177479399199294045004853541591583661492648488870072997386789168550768219877420664010888994970241867530958377474423132257005216554610063869602410558568359278597418342042349218908924994057902738747422643864555240487826339679933020809710599058754501184416556873960732332592826723195858744277611352589654903016117380173455837428088849548568328321530190993693938453187653479237863763833587407546030700900398131864448333273603551458315478452084394780142948409420484238112265944043120139506421140508221787796565139607660748140276499521675015613894468311555363040571974093481884019922074682553946982825287247303978128567574954311207517064637771146032015383041609254067158397320045539212948431219510505307231366388082433464841487397949976586083280345526266366895489556268977330854677265790318793877027054394598538828656122103047325953066517839849943032007622836999761447362735160742010999435153966077331106853136834338064519703367786719901079083201865938161153818379148956420230130662561133340057364830440591509914871870782149450171427121580999887898548699182845488501138417501472247683719878480585440622367303270716097695614493436136540702387255483351477109910254097402130459126901144990064870831829804344167197783094501112251757476237798532602247738924572413351138209348941542259983889677142938239045119044494551801674170584228108777953638991182146560481340960319043038529852009454135307206432220711306969785427381130327619250746114796804418545919568187327716562430862205832884693043411608649632104489117073793547898818516817493255028122684477572775954926455655510821965616691306593443552534271133475405690053353631892455536980733796117126157043155204709890111380692611153072290902342307888597869165590471875904761332373115281212386119477916230011686181923365258330698365688298254007273343021965702998447311014747758914774771461623480408711515511731301421975063731297686177307133391354549972295498143841904955173726682758195285293985067317677652734184209654275035026507809883258287001949130387317646863397092704973982694066792607734466693700873881973209495483722998537070085023848860269072521834395348405192289037253242662978370436568024516797701443875343781119170658926540052064519049855422959978795993206969033227217771202443510003744360861532834906748431707708852963806171285428441921969109227130583180009725482111002842073099153569555927761485357567583230212314210100055347697809208972921685051659180682851964460750592411580596827642312161931031141722102556840655143744590350761074054019085350135630047880321938587806161650295423454969048209765779285938083436542411084529089596113641182531096170485128980882903710547574898677779580097145132787643172113639030641492182160370116584708725278814332347166621840373845262885319347602352762204069155154916282337602239173155989580446091588121740009798586190191775515982625851261093173754147852507403879625117444546628229107706571707859389417124187269717650645978422274824929944207592155995781926539510464676051534895625644370885759595202916221868943050972322188688137577307729347877972967006605154112245090437017257207727216769613280825278376592210704887150899951724370757503574255590930003080333351639271357307401760071126151375177243623630787474545323031947133690675821054179628599319810448526043320658244158941329933949048541328140086718213038887343114475388136855474749686386369551609640512380746351138658879906747143180722346036474498147608556873126305872697329456144389995922697479351875959686501979900242325927555938071259247029160750908376249963283016484359036351272197040299750224364372092428380405099889494843191780987803020130840100249111595925054400277491241681216969656892404074070037776353313304273692147919711761408392831319650518417774904399346181558488129900146091166104673388903001098134940483663362700337234282975891426157140746809827047053236905035103367647447161058251766776076072261889776110629296894606219380109610248856086377352401883725509620135733465220269443114111517027437542093666133502668172351235097208828900023610606485426891792003875206457454342992856381156564721197844717663676353706207114401262739966175033304982567276361538504318720271879357735683912986998808539642933634126239317401908602160789813476534684272343022304519028198465605144388029367091844178088765640589665419979627225434120610607063853213703715965480328052950451887125220570658745096674450985433754713389668156762336162907205922548644623806101182886029710519241694505510951068633044830679086066870436090628691128747037318853204632007766848303306018671434529132641888687802284941197327656915933710550532717645254592616815443297641824331692397347260551260942378861899743678596330903851017339922335569154093307864335278180718621704134704262494509656972374049221743563585099959629464478455991517515714307824703296163876149249052066833218085380294013278868383757629029616685150587525060144049122771535836580138403698464881299601439874127942985318934501266683872653188593752891075865016538842441630176867752320916129381972412357517335795303943370205325524062118296912515013092491016078614382102289255522833055274273221998540364033504624438615196990571227763567891306901443146893485949315352141378947014067056139507745113866734511930076452034102399516849312480344084265195677027910826267176247978912508243035997849014981194771010599303116962683796312010517593641572595029814797946104416190036444730343660063289118127644788017437742519726727089602994378243839969475876915331848514466016608409909331354285673241844679037794762247814198797088463199861583763323231635665706914519080091068814553188933660845179947966475466111259999116308703660812065110399512754573963615322335788342014259043797101219821050727495041850690363204801940671188316610399749075376556647884908099811016864628909315280255517423307260322637212034807875470105989828359160139197380051744918740189506584433452372305604959432333394160410846154602233950226256297078380173576318305490173768574062847092355853695622835635453481199037275889671937448159181654855684111336038161296860807186158835889798554445110632538262761656077970653704053059475740039398010937093404204974617477931198739591057253291633972712125149043363901385940301312908794269712055840415348756376477538617297714510628069219968890628443708395590204348950453066355466012906437088886609449384762622077232280585109856466200218596577282117939374053223345135094729690761657040433089683055574467937549091829474679889669087745274086004233397908130781962104586105605995109306193871345896822120223931955762393452296769149758008144243855217575785531753869284866397506639098757835727001811831970427800214152454768020130239778680401333392988950596703597552820024706737513772721938103715509744615193177712540574329560479073285075954958074110407653407828641933573444089378029412422575819589006549518080711119524846316836402736012939919803198687158204090660346652975732936677047495842868608679601770037577741339867403009169232019589405007335086380493504689199298651694226586240374736294966663181348052204535086302179065776852051575741530422440898797096026868823737243681839779845808135565364937810230303323140151369452960349217068855921447235820063047932852586113838122536918313392718361443832851323877121906899456442740083014074927478159557287848029681098303587986786365157510365269963367929065018640686427327075084359072954263169624056695350323911548936126554276343013611060250184639772178637084636978541372688861772642983088345361689722152282905840097894884158755417547263216521253344415118631772559576720540344624371510257243772228836678152373802597191752210129822705823048611083161022386127007313045347955687980287865602133733461610123899696404256729662767997383434345331025102627449071923752570064717385269765766096593257021908383065301758790322957860551736696183510580477163143957772814908891939562816194835927216298747620078951029572634367293897726325633073397982032533946963929175956864349130921927123764195533631664825118063570118570513845471407545055308867052034944762334341967389325316315572568695389692648302588790282144430802246254640620487386152402272433515674227343265872620802606718676955237469794722989358296450454834076479235948015968156084611119635016903947136476962680115550129812407484051551943473330603312352025949516438361229880172513524205337030582563503093774391673921344499193993628974314714223207768944481778123549406308770822102968041628578969288386036414277406358361772823646324868605855819861992222923098111025413005784240899215635847966996803214718564249889087154791198545685181427519878965090523667540617169171122029474468853047942170427676261701416528588607638921745872029680333607273820987758911977672762242692532070383733848858327327192740448564012092005821904486307277079300879517338034127649012904423341035036768818292205925706888075512529719540067467948114485464758061635488237089747225051467733093328067909624609372094256561374350938051909171596817387809003039102455121200418016047791217264189334241182502871447175490713441171126123120053907729369094314951322165413202825851823834626084864926325536812437969386956719783262619661770598410815781354886258093736394327355760308580401739884025773885391842546450072802797958500778541197842841363502284405838014099396585679796683515332930508524030877526688468120678091670470380484140367393890627355535724047511228035105710222736334783865241867610856580402453106015439337175949767281885447654988470020842982543749249373039702093336694088977050367959490276005488596539759641981242317885228542824851289762592695689066788474549252731986738084362998344906409823248655084492519173953343779317155362923115555248160364281444699075450331690147398188706358962904479432790116046322314413967693742699513556444290065192619288025419691151452549866196570146950275885055182164704372781757503557079397145956421627013854239375589907385942856648323979965593122351031147640151850639398284508921025708315652824710101582081419239108562723095352206062114621076703845894987329930307654781008177129147020324703961296844717365475526703149835365305781548898059731799131660887357038067762646217052569886038357340648511467111265241342189075581735218553834767264375616671005229368285516357335752523848356867711148869729491751583420447700510236931291205919245180952222885529861450925494616167281706194001062044759867569219993422377714672104919405740903176714470358313249079654043513390061033370674133657077711131461161143374082066696991467066989459441221739758540915337175715570045657672815219023474927537851253593676710887467135406667717460382536084661269647474534464140471067986053965729481684759787290200704738256929179270121364778219325512406046342462147618083613013302812709338762207174367521380490915756192604784045694222489007480589232026806121768098627696844292933049199204082098693921636542133341801344722360360544864595882498517831891513275649520790083469486967852532802317998276069211581029922034877606470414372808203631999890932552040474463987947438989473931480614326880942438076580954108172216481789692750661860909973659028585384110399319700743622632687731851595513725197817824714027740033841869332569300181847830937844999898911985728808763650993309987750573743171954082944378663038702247171026197777825256877998682571522822044947330952455412419460172584618754519553618586315226593350157154271871538888891343566564937189105035481027432669935424350588393491391431907971061432188181849074612471682112416764208955496785861835137150720869027523444040241129786150276552760015099147620061968323893850536359352742811017874416341596090282133081975793185627075492481485805172043300197700132267099211021183725380722090080074969301369980024118625306365196751784734498354164922864006999501080134793989141042396750635512509707463708795922845107259105641550724090720064027002571894655533963159159396116118875379564532475547166246333595900833654380539363596729243901198706223773378863949088800895564839552401210601276639987208384970145192532523971188374717309661138861706111914453152221668486313370470872633011387895669679521247582426828536180054156279715015024394710882706278194671430567846769610223751943494161462832939861192805347412862348728328750419946298319546723871088910986589055762181954420014555528932783265328872106054018942295737906572642206403827890032585881654227599197498541717431114616856495658813319105484629803358224502167430091383489849241496340426661656568971341554748029266388778765023084051627977290743051931056589499457757130280870673473522297791155325978757332012819012731247114241546514650163997205426278188889541194716134544883306864242260924173654402653601861247018179517326877258269181050104039828263331741086544331184435310169046496994284342308277956863007736822587155102068235044548603502332683660801468578609278881576185360346805078346926810788457685523259355978609210656065500918875988113182943350379315903155908458881578742264958612644840795288030346379859065159765113758851078315720103144542290975095926843491557427139612111378198388344639458362851101705490679353814717830289200916964795010053026418962243217435274997460494053254964938109151577117639361444927317522533060340836610911937361185426365272410875422052722959090936815079165008609996036122620775934744696409494409859046998486974362951747497063578594768986715732696646321113278994462034636332050328271164788065849149159170930865212761202152637713638583869958520492993315367330789238395141783083339389720641396805300589401317334770387733447878077043678507646824170693020150184839393959354863829863210791994886156422703241312563117516692593502768246346481223406339680846231175211785628539310352523389030352959020163791250368646699502782539928684937260102977882272502481855134234538765014965989196236465852195370141361011733768073279922995191500943640579691156988004186375752233458420329728680373076784349150409453092626320153723142357428406118282675900046440687021039678752926431175875785669187824970442632508265245296058680402625704300192863783578058034749105356876240422595157095914217783908311366277281510098912599319218305931461008173468435112248566094992516653202467847412538514750366754095431655538815887361008771867760210244460927814002719076736574739048047311786598672047734391641872952724019995222005814907614787931875167298150800277917166266946221321930883153583729176781584389829837218194844278139586793797561142023670999008952628440785991312462706872105129112176412354985083334939318244829668430260862662150254480347897075182090479203775114350190208646730451702968891098358812715981830551668427024321091295447622806086789167644798107985001681012834685784298269062122485638747550840514257689176401619340445724713002366599971518838582908504803905531426638656516968239218485292533520349606366582295277334615504708484128553706673578517395198921350745855388457243640968146594370256345354008514890654693616360500075126539977389159391659463459833790518836146373417059819037650429332846891573285128594972720171729323574398317183807165040528496679781807051262221504893541200514881232426200901645665694362885530971062305425874538686837517021278094153748826235332621008419352384587823197931651155303302547619147588440937912478345058341132870512096692604773915148175481953382082962986779120037998468487420879144363087478651959963507506167031003850581334714473976561391759766856480625485592257727459508736101649748977403027300226370862362772404373536743321642426394382681722896582206356728429179873888954828486851984418564731216760432841808935073268860688923743366636725967384259836952726000506710048182853604383899123967929758088097147974598399266600551462755068895219306567674722157298015587364290110020200580088341205002305570367719589640111049532157075481521307826913598656727324172293900036056470142342038739931955052998056404832426998285406736890757760115500556676008303948645862340391961968437504964542138187851743043042387861801399465518262051591982796065891910721169038906346127067323288358481145792817723379782612631369941707998739952877681753630834955394434064946587973441336614021876525875954528196298470185397671816924857680781417377932743447793610545308946229212140994611167769011386113923727755226180095535101689065860078394819517862440646231831435135591448001235584784001273175777110482352987713261233843935379687497628110759509938897433924949844541830431021079470490385993485079126469204120976122804229977445996146023213667528367853338741447363018174828583901303769321393673563205530945214628315186643458320148912595175448347373701705815479521423877482387671146242711419875900761983234926491929581125049701654759558178538472430420392999674580095331216658243794021804638931802253870721666037144178858995329203115495354980207923225604881935511342613840320101392534205923314551895037968360032233725228929432368274724514430098127894608448118836532079926224220617439756070464882918347933363910295992299924381210506754580367058673325333077347886050563733211694306021093782918342632087941738624624286519190855781010326273126481878789102157231321623802959780689343666487421524846603576464994799540747177793617047706855451320325680790084860637174619787491220161960451154630384524336800383454075116386754443088776810556201910037211591180613850582779852325718713505131028330861313371370511670841858049486489407067120621797378529536557441523343316296041754445257164156498891051320622550541590662951193824147874486198042434891418033725164872163069495185658046287451385030290634659606657967981593122087394707253477181677616100970541474097536943623902247890540349683546339270217293080367164536324365618944285535479101214668824579452121423641721292143251251015367455536516761862989110501274050908252490450849403022684126863098193454403733949156615117100347822068723533036561684086025213199980810879824234460964382715049135119537464765360110004540244890967155640471877222533027090597810990876803411816735711410877870980844784434768674936579738713172543446243098980865965594363503637850986070480524443189406210774406575722531872300230456634913516314212707109979119759381090086586155261072997909203821630413500556862994879942986821408977660860996779407139530759473475022003230246158090234609845048009094942533251119476369023754421985151927145812293349455383965843366355062477988865229574350687613197597846976533821920381076778408091328660779943704120788175521178592440364525133956759194028511788930471871376675751412253024122975827876980051682031280739836849890190793294475290494624886759346119488153070412868371941534496178311327163453819649774910025603399924193408168676749219992143624686935625630711643672693245205212319454748764623501569328511146579794965440318630252360162172640609581727591642062016670196400805579572327486959437917540227692709636450288922397739084918058255368078484879142058741614156385074860902757821486835658781459754076425799356936133621051155710931365409067790338308291343739268862266273797119406433069840396683570801727242721536720217992664694880048380692863412972214325931054108947075030024876517189034246585309692808147764569656849452563217481856352372372132498906866829651605966463037298536888978770822213830996410456131642805118012702247297739699691428621909220053512449468906097987380384093499604604164736832222276938379811449074808721325195206116245762352976724723975930352728729952962757637668279800469718809002632908661061379479253131794705871618875592600968065007272282301754923644333697407244606459265029278098784614823829836440281244639769353269382414462892542111576211340968721834445293215147004039222027142099779781827818028128202324732446286312240522703149221356852621522255004589049065731400817998141084860796817558421595095000807804035822802190641521637627717246949395597108503534845911900783610300180352515262416214341099322131839628047978689366788383782179089735319674316168400702907088848428954561241870096959973447802422564154634005972911008899255606432520570690520068485711028349361816123816396022652339505126390945525437095355899612311619768254159063301642996472462334405790637994425617499962513926939494215696837079603849920292495707167039767907626688392472099718714861698462388475673157832469789952186624725543714846182578923627780701917099593109012055035916565515029303321145220531026944296752676262980264302903888669355469655144237445651532954483513252490941100060259913781091939338482615025372610370285471384395687368682094114681921671568799849050421977222597076433459944553809629439456406944457213804950011197624204592861539724355561649669245135405793916001729295561702564757466156812016326323698445023137930340276002810920302238428381447518600323402624976359243262477540489502463463372813073354765446277403989834115878798017524759028158464821560720535395817299716137313570837137162553592900189175649347757584483904742915629121867701439862772598295414981570816100657011275585216573424432203327781964044701211953145826246731734355643601212477679753961655604018113406338996469387377598311903107879155663616017218265123815166266336360658388399757631775355063425449978822640509147861375151997716191698305739205724404472175461958627790910496303795015708247321471103869730587898897660747468669116014826111388596590933713354047176038689966278280479821095202143227927367729914761630711046827834702185001025622297656605610123889882062112888535423269214343931376107878008537997598332111908756884197997796126126951634952458309366533758884274312204806692314826445121203335354877117362204738195723732567320662609116472103284188073359078882911140288742795637354495247482772492091242972624379293963050739387620180889370488433077803886068620179921251559741797880074490427468920506790154431714241604721420023221273687615672983835668321665408205697485486705978163561190912690649461132325115106139812252305397536262211453527709941888155999641996542396012971322596256954898959993373064378802484287440050112703074234507455845045343997692023464359848631550906544579320331753429523692763574256938735477429443761417589567059273212890368817246833548558732504188198941778844783960696825964817285982292716643597010170316431864261706235037501469324173157728276972106560432605483316963206327764267873325616085299894121677307303888752367577942623641894103830132679527472804665900058517134790334895863875640439252746300063872732519937346986125379787763736234426167927818873326051491522273752488068704895127600465166390852683504636125770526331787168335254426930425764771777404944672424159440390077456169736017260162055899211822237894445640882028470896065478689271893000016011274018896132405980126964232852626919031828737161044339181239273071709998476425106436132583138841971949389501706128373395645286835717053923166439921340311745669942392483777220496995935698268389806334184632089740744987504103146557286603940808534999645830644309612371115752293801500750111542186634745161959893126557336092671123015309022607196175854390424663628944351096204285315952548182886111498810905644019631886030629557088847608981327755736757978735494563015047961847376116321109149554748231614036272024734251183761753368048346026046211538125488075853041223366978867630686391958843711546776327925802030601693382613038815442069910253024589873010309943793673230096916742245820174520057629268558201952656576777922279035135876649774867111533766413232855562469227665156982017445140562375645329275077027838133854293054614379564693075961801636417408911811771178621208014574365610970354553236053499492353968181501925251770454673291856950305275108175231613103964454396622817985471129411040593220734851798796341699061146475110388132664157484622651839318545028441790212094435391452626343174610368145345276288567030645450313727027110926043252944546059773890983537013143350888922495453207316149185980227324092513495713589587310758788243770813126400857724985220519543981416048119061249836470565756392303596260017658556956791959228282965222205987996033786532441876785098656042990447065140285709721268209842151418282855897965962222513641804938121854326385575442662450494966083483747118771741722437172815620201067102911697399250881954021358786226777622820292813065260465599119069852592435615907606769578146102126122047727911744460727159311387243812569132263111222044267072013600784266710471357235023242312143287813301105804729802775418540176035981342456731510014485227678345622313900883946576606784846645001000539495154169509006318281120445252666872197612076482458995928478966009042091473829338576105613769112629886072599683841048430351685972803604129746510381470740335970466908619958329626334946800343816134508677305045810626170890395615806341043405576724166803760138487263553112746553651717430964819996138897249202054991430597919612708120900798480257504203491283785500941543042417945292969714155425122797336785267246273474018212588466042967374277858520256033875934035463853959428786351981100809200157359923244487174277728001551442601221860029617874004803606817551004726810767870319152763376090872731409019386263706883211301719552508017812636165344359492683080996315064231548435889296602982602655389324135383616657423331530878061757580282999554977523940811561488303940954213510497644397634439641939608253579958866531743490591510818586216961936127156602213027191944314428723458767570451662389984178503277371626542627641060517924250933467191296781422391178563056561711507185391403999066577874093051613121116010074996209685492874352638833815182673590255566817250620848750759643076441622487312112482840258442601768540484246203391715217781627781492143909267801173240169845733822978582877649678372612861909526602380366247019033252563894911275635805303809961436901562560974225169167990656870200741045393580020906144200739777634356166720465104953304133844104954284956909791599363574350976352122349316800768970186826228870221526724322511253642118158768246404895985061112484506267657559808292475353568392691502154744295941573050728209928466668443817259567334060794653646415898102981301879641119761279902868588779295339483281492952078425808832256590878108634338389753099331412930734255269630541207760264324727597409204766725121128036411639750877269886542272377115144923771184862636502384922540888635066013882592915755785368820491310891484478325685669968867965846217664948328974563967861873252083086914438797808499513580619458331657474015955342186300870530222307292712982516333034900865995855669370946979448146002032475499437826058709776108262981489823465457528460502120137362450245049084581176433486946015080238404873827111241265613688664717759782206370393252963411385479212364902195639679833499604227191438206298385299181817137370939792833985472066576957008312651713011851320062874363922910824674931567895398643488718307568665814037915093012040821295122799622986501063085246880648342914496259040868630083815755868467899946501118597043544986655417158224394175056101095444800827668206851444777668435800981736124737464624477153818050889414093891156409142360605437411886980997056666914923474385684661141539681284339175441106375076132202403108807271097994836547537685134548158200464379101547737825329466021984224432513468812800416372276750614625526321640151517499953195056402624291936889288199052783592701679978895115760745536243277489206631922793074481588280013822650107079581984539794966705489298058445091750534406356282702523472097253453061677574508845673659104512166389217929827296716789447722863368628276364718209881321722782361421492571878049014653384288367579731443064907499203844031110982785350179586694981009896074499397099176303420532062952456814100349856061164038768886026057232655987616657807335765485686423281795944899877416737398371719733902454711371615542900854724789136119095093872615292603445515959233898602978441125769133101405973878802291001380897502150860775606923524240319918810549830295377186714943884015844144359719006652842445443040781994144255568590599276787213993976248443711534514201111918566219910813202889042699937602087314185888555771890437333235581225652682768143410308864862436783793708041360949735935075536453883194073133447990474913454439082273017916078343205406044608719463978289647522097181121043875915140130240958469775439943769797952174573139797587863857634566036187969841568532899127461656759951114500689165455662319173771438327166938812759947827576869753750297030856515068921953029832712578703551860089286853385267894028656669622234508018369765604793873360316389761060321170668363813403634180272400928289414112429922620870257472418101937726464793108024583779982396123746606284235329407362581035832289875955525099306665470620578536054967302481857652011813248158235951763576127113206750228680574590911508813070282956038114791337263904883085098377282568458680278518037509764043423099675863842142284844219620700819598106165079704751607355279704359646675242349791505436635230382870117711566783302993133026900865518554257782811882886078519214386632445326125703419433047951160930923622993044760388886277988889744593320480134248871891481043143883244181415102065566462971118910128562834922106706237759914220480031225541056467446648249362845424744028353581518417503759672434202267301821887771023881273115623328285997142106860626563011929446131915145046797923116113780147890306495649995102335299571973139840516124756182053563103801032082315719439915588269103969482441620435821329358418171763796607004887056898425840287372418308506391747746305110594378759347157597684079404211757660519713734791960678040126533068730727038665781680096578392906987444795674934938521185077921207772057455003403214621215291282528176393351530549807608408105146617811875233039668513290825169178451053146648632161644148803286902821430475044249167689482484008859845281224631066111389027852798675417632752137329784923086341750636690199445092535458446691641047652449391441020655682173171895058373615456507553882568952717894483743343460002265415047552275144452198260929686225202625470322891636975440974235176412022732513073340602647148887542616620115534364230669083327936990727096199020149593344115768022204213177234351900312448506735859547718507355724038588426112883611672317036895445222959216666465599411016030396294240469253214584976474185562760669872634328540908230727895572406508672370102724189996130237274165311756379499771161859513174279757011613414177046070492618880520311921282790471562844889888905604296909749540282227090260165519448549774881602114570408878351310450673122642942067438805150647422777783207222301049443294723966707350039425545651181271300467203862180771768247897021856359313955899019347188294245355073244632038411965047523021704930983307023307215671253560335023817198829074190627759021491521400869529629438463652011976111236455914613389503796874141576799186735072871701673055915237434740055695612249896703777702184524679758366352483851907628484672281224108014722712529746026921044729482863019181707398687730906753520167902140735064451692844769463326836233027893444522915610102733212366234315216873103404052269309075079098009061093757702413722856451419646526559845306431479367841316646727044064603317448163549792293734194963615294314021311849793448829859945821502122471973682163808559711174923225518634463747713431787325608055196762149818372754279217045317518904273357998810897338641881735494476487216827134687195857045715389489065139194734986866396478545057061451190096608384930200948044180935022665374040283499557560775443691845500400952238799326707471638736922150516541256689816268278928256313152200417504720694626483212130316969354155466341261745020713043389378683046064472702564893324285268087789404631548761166957420023265293139200308010874030184644175191408768159309089516678352227531078823352103312831128995964542613060612609617374824662220791882524445290475550978762208057306645190597227676724499579142666095919763732446461951557164618288631954164686933393001478360701886887317223858730059168602301747661954752214157357906593125041606099180356364031718555937543257878934761771754313312460114433154084463674690347311182263149253216855903658963250011605574919631062228766238997249399219888870929052513132366597141628955894279139758601934821908641614750537521818622314129020148174382327346569976305191535957361488687221502113044251627980846944542958977195688237094348357470104869982234772343726636664641333106266375612799166956287329285069562186070163288093799980983524093843155228977381195193826837616733618960921221148451872408944422837319393078684528673400480274811546963122235070950386377104188924220154904627052400281905587173889438711457635880430040185561051396447666285872454713265612868977009759493783837083927330540493302211041377939753704549938265299316607120002770262414011658203767424495227085933947867431060069982112279434207494506488906358826464057386258012694820213451665772343122424391284991845719329626556512396098982327991232016714486140837665896915988676330332477236787279111649548984567615563485584148528004483839556702235374633343562390034600815237402211730204854449424878721672994847026193451034508688913850426858467412599203045428353179866898224914782090008663175302291439273270513351651151833693761066655460741588999095460106950850090711887903708901559584449324044177612443153843675570601845552517763743036189866871701402769352351959939233090100663665278951436287579166655906931511445876651182660564400739506040338185232235736613921706292164352216438248293504197351330255090350661918396732007295648715842006863685473696203707760171285725626653144025531857031420794746146765899694988534922623578674966208561317524065003225073786924744814565532432290430149650451131717634117485489349281099719088927726532815167727047668895448704868591258012663485224128077242508905933334963448505655842786794462326988432989714834569678053186569425940514728259072634227849163803835936556280886221616593451150759501070315808407146841843428014677472351747879831286135353979156458335603254699570161058432744081750782322307514045694811664643492014694848348464146969623492189989853773478134817875553941158602206854269077063115913499591970454773730253092239469273521895911244545011391109934569843118966393387058066107225056212682277674496548823098402290355484553211219107337688047496502983666369764919098900843587031033826924723104253756880305984093446741524513680935395115042924166588863890864250255689755614176300427075236917318540117983659975348739587230953820438289970205757737787621374430349525929473297873661124690572121366950886002965138662895779197827941963692542358395531153647296256988724604450708882715501271360669290944458787366786567065990194789472814349945979639152053775058303724645426514531168221826903519613207007266497657882233288212897988966179139191374497856257259657747594443105613593603183004099508096243924348437053440526050218440173007454440651346549095189081429927071864788523242427351299828095167453774370958261469511997773820746350851381114775469437696620883915417068821831724674711349079810961328672565653533800588892622210150805952979533566377369628829892467418001977751462338188632699213037700794453725800675559197462008721446096868929980855287373594399181737755598255586549697211285241528633299718884836939815714172443767111808555720142926420602843108193813628098504387218406592340837142465853053496442865447352827315275304219619806652062370129687469232679207534811604673880898424710351478518962464750111123610306043122382801310645363288151911913749660049462773097791435767659521916735124804267771301709688324432945414229453508786440541152638562133190742588915476526144996254027971347990610086426701015860798993738200542695756811590267865798111139069927568049123451232247791821028086898674232896580284842104567989964795888926196666610558069877040302218618321997830939965701041150638496007946087531292398749671864099092631388866415163204189533626980049441611902233867886235014414309115946368886487522416489483392075723172079185796968403944676719252186125599095487467508148720938819655704931321989024268004663116632585722507254222790370780738336550686782105679415250452553378257992220194749333845411546650249012137316020746166353152138204061136147916429094716161397246751582877421001660088061143472205801182144580747849878722097649042350781230678776213255323589055438422320077262260912935076549257607994547821343157432956785168940965469958631781664362611632999254100793870855581525755636748825260563433727148693901882487016452726660093845287435438644293141777289655122668368364356157599639213477470810224006653977348496409272867816752893891716453955060076197884797875790298677036971896169889139170633729540383811346680355346412289041676425285381141400879105785470112141485416555165602042772757270561248969682846380673779248861209895167898744949237011890296866087714851087215560176391180046496801665073963946633151544427306085756773578180322880160031682205422661696539032187327474347570111862142111669840610659166722567161428234418320844654821731050218989647608648275389670743426283845451603970025477772187765520958169043621918372057201382013673882099422576190644656679120364046344434264058851369474794604741726429595561662380881702632864536914705854714452167782423094649662644554448823347677332820064287000636178162453178022654808026097592920841973895457071317378701708152001726700721740507517515700592092926629009184215084059288504226013935280942605016184839799804954074503509375144602279206108630556068374301166870952907769355432500798258962895892339751021309574981765922250359907074370968365321450956062896815210454671334905357010948116523448455090278774747224748863223300154092998360256014601823776520207155522315749670685126299068329829335905196390263294503186800081503672000969813816106734662469790513103399882628884447526535874569850085401092439954600727431971481470294182901700240009710454593794474707400682133212348284035911746581674906548661385591044654181104028879139987299982565110726447489381852416165571037148392219365697066701129622813955357641352873381174825553389591785885402687228787698631678945571001973757589429606938612768393036403402086402218484241274441279833325795161858837043078060681810894581723369377989055542889350122725268801790372592325765210848352267699047961499082380652839089144233195767105225099328226428966939510828587185186169131897642384532251633449577971783604612820769206101655168705872521443872105518701545160631993036081368839653044583092628992626070472365349369286715859208974069118340971599885856437893176065166249894895094196508786891388462614876801975694392734067653909065377715392111414077886416018175127368545776500425809829557389330740057922924160167530829368836891192358038297939556750497678722291335202074609916338259914169258279721576749344953121031517887572023879015989828793811417726492999702318581525436272312478055272842777956508031443979261267526428194074053732568959484080435008212420893649263368247821642299705707515214922873737601428519486965569265768549177894657208335048401194214518422327976223298523548566633779551855822278981095671363950780710133432680660257539224948720516444411421514558085207131125726763777969630575146677027518572716723609679131259763736124241679934376803353829905968456288822560991753572189607776640220166357712049200216609040727211477887651634329771607093546691737985456911494474405961877159839209332741479968918091039078629773414153982876481254171794599785264653653534003771413207118722466902096498667971204698209163582026302036717961358066489935194052810863671540855077592760458303501859915044834831448208413971740979059842552786409611579942041871650942442492331219932279369532635613883222617825575245153483571975791492757051672451104431904528414692658602145607935482738988762801102284868723175076633042178486318749741513220284433701810946980653950840426438784830317269112124359944558512664752820656816421894072735966159102578231136349152307409860146623658158925811370590881662651065103961051204850152565432174495892906973982968936656152456767733405178567800705559784781538606408152203802176443307498813299396891047344299276722233041267788204749472062012111815714877118178043831751240195044113484948300294878171744758366705344737945309325787837725060767062533115854969060817900623701728169446167270625163098934418348722288383611284787767623823734557691193433956071498785475212772358639153514995788794230350822221157596502082184210104538750206421858857696120333660144840211200697718190953996006804697487867996850970540867162189754390729193620121192270825968814018936888403248479795293790603989594728850078732292155224099222901683015990076438145335945036701051985447404967798911198558414171523535812081631095513788452963923641930338540468298651520376237634402752341908918419943741917794318434737760858104177434939528065428063187508731379420168238196794263391174174180899765760755945024002159483617253205349964279353660170115367779658687075664440831844766415470595938088411804528215434401934214111079938421955421548897325782994751058349123274754157839645357966620098266525640868933493731214110392885484255661667896719035361944032998497397939847749405442398371987825600537502739575379125278369536946972375634130961097283398430359436197749122151261442517049740305633204980049087307968865924604724944406597984034287770796713121005498787328009216979861216585875092037437754153312347867971646038194968742440127891399481496539848572008279335730978998673592350513419510830652664020654287491375555913411825009681637048596356208336278412449820179825713115948129073917380122032449035305884830750407286449514489833240020281604097020385085128686148843926340456178053138396358378259117074271983321395331996559907019154331183691480961102367324629765251290013586222757301302628098687867478002221302225829136820308921109393584117028573645169223939283794568360297471537768403481998545695578126982027002219659915242530578574034374031021102351424057920729999992348164416434924456075268105475569651510096508030860059100602066795546080222089880972821673513291407515698001554251183261497101361022652632917517787909265607822819297175682427066743740844587657972790371683116295809042129226759781685426170946877569985231863814928772321017340107500025066716063088094701283669545457050058386557145988394930047016277281124414813775415024427432745656184085013354455718375050859782950767555992082005570898142884390535717610908899495901435377872116650605216030240350882180277262950436364128236526044463158227986277473183079982670398455863855261091428076742555929821746793506592606014548144091463091313184454299210404948713807951008490649875256377215120538297955572386360524335203072917374074430734421182178056275964468735914951024916535010468808997494994867113999948167993295758110377096762679007949553700967234225498751830954048006101259841731135279640865688164202339429353106645569650521942475484752274277353337612574440840782118490249391810245752310610976171935023144110716108350226411582694461423991768847750540681354046015859743542842244537697681039158410023426607876776934147112938896121305941713974266881722941098242080013597083326277897383052574428064442378367917033418399236791845315936813605658696848039776684891262551973722447945154919198452369505845749114267835328868358623719897940690732498325730274350182019773071490099449026607005569320949705186025929257895595113973202029933900616037815839399223929143563434893787536168418287591352165456624562062761351793371176914542967722654967417845242981241749471894837608093953020832891876063741068310918141131580470267826128355758115721369425483602147785821034804982950233255794147729260648577950088696083407596807315207092548132944464257829407078870101001459091054499833585488155514381680049593970868174844073546999157713420522851960211168900116591320568980644918629817365976216180091350531321995580564383970227544521487837731728614962345993242060071453714617150389367142976314911259121262329376546200332789133500613160474811834528717159324489678590682853851284844090510557025171229291495558779673427445534933693693838185643258877370850986305787665733679011710042444764559615830162874231267725137052077900634223539866404044514568033547309347622383670353074522623337728618536123238065831886918552767517741301921234534070257044216744787049614560612807466739218249782849260471093352375225046349026848125779825179344065245932825114018459891763493013721196607894146157652087886702052569885685401858215911454237575831766097281198207931275537688346149731573998981366528188017046473259239712269413142881539517801265272012681118018737635763409336998753381921192145389955290832339509553733926719602948431980497648001575504301052063792097186795022140937470120273196066534399837750792704625119610389618802117747717031428828860887221934472967241497441886376545316609103730745784072022690948060593826179624748054994421960900842379955196101458848688737170394480597570692979388736553110559896259542299828395378487478799545671213712705352551459738724718724895243745524686948519149260017565291236275630853270402174615704424798471217077831499987316352096936408317596912787483007239740656795839655101842803196653242169146208542059780720689656608953463483884976552489477940199876991639815033575386795617461472186475521603766554375676841793175273599913243747750054251502541916461814974767778759167102055991224658514643419191763626581782522674373483227887804581157093309574190939733704813313493427338635291855968715183639038279665146813814134996679446167444943684160413471637033090793961248187207975424325026810009071928934973464702746810267097769029426981275010949034009994758891697113100403271173471249927896523982279086186610662411811205906200683911916171464421315564820598630833987135039668900374855560498178757554501345858616196474769605497426721806887425495047355078113664458793531312377868459324191150395452508756721233573245566525915783405065057207409463289263775090409683097577266331356481600047435318780277036322683978455716085489775035669232764825770797803399749578142154830648702818453930095084306246901172705169172126274090194331161543587232057038840507833204419328637237914394843965650372584684098494420760783668541984065269838691486302047828123170626743639427293677186967094399112134210295390844378804264152813602299272779076644495937931178978874468843871469032827139855350682375778767416887431353521820479791428819134788343850484893859623322034990862370068808492855817428328471182653386367550135332872212224376295901595385033371412918601338172752883158819254621910401648493767294110743816433361916407498034475042114606820269305104723546520524108733300591816861777282780107572543841115163257202381330465708262870830237351520506581301104837275212158394081410833791984881394934562976421146150287465151295553854571879108677339189936725016601461603390017680504075332139011483708398393811942749912230553859190047051975062188795267699770213190326801404404361620453588335635407357375089421125718930376090896661911260341162398378713725278404055417931474211108602043184098994355366918976373426459981385088631803713208947613053346792612069416739238864088688784983853500246684334548049218344631768917417213126369278294284383566711887614496507774721985284486502661499087634453167718254158833440958047424474024168402632067549950950475934593240535634364783395058118359876294199783396870450139996986058185851535966966089006278238375760304893886982909253550150483794186258541731871168097137300176155822323275550266166297514372788666941267767148260998996758573880502418412193632634392855264449933270782965233605778762686551357421947525715020776002081811494564596617956460732375388519826218773764473476648733690110388729918124183395598189516424074850070117543613431182179211926862834606472333774998206506434221149311135466479452234370527055331431785210385350292582560918201686938663015916359220682953849555037699221759922786531870745474744883617843360172381375152652699103239474726464107271719257622650285231739572162739408231985320862742097637400447652268536226339225157160094102370572328895825809262835050425030124216999841802873504053390957344066576696184146209762936910721969986715920980771619664623810914695728631843595726803032507789364822539044489453331752053375845209794951008161971585956873195460906863827948719131305912204405541960142986925073884794777320353231247135509672494168527500728991258989107428233967315927017040094526348100014464619859800791606704539091114800886524289080638938131109687758074400538343317701157838875890315962284373974070179321841858808998169810561952685604893608890783967621185236328338966341472422606118654261689247333844867973291920314965904889600437915913621545574036303342635016103503276412250946376189978417143767663605711554041677528844669417598395972964775622605762479196879381033015397720809078847314148878496521465657111607725947876450363281859324670972285852860362612317295294350562985171843543256082030935365750391783272186302686096473848952294164653507741757513280879147840272166011631905391488567180114914185587624519427101395095211869263313483297265475861097291600653153607398858927172724576527447437079315932024805341925099355697881865499653128396650636502593799574221366957018941338469118966848228146000321769883555430534259748509038909862070564165945120223494496750933632759095413832067922662483894567852102065387782869047160481578265122904763423961095813272144417092356385156046972861042007452531543414037776171285852930053299525619864359944651509501668060192444168801020524004271841470075849861877565104907176437690429450354655677667870989419658910533966259157255486290218052301846154063194061796028208086532447821328253519576839648089901980278248812296067141167027348644550965537107845032537531580813198416481652552096207335162602885102526995459459726839427592244068721679472874244209632785267642895615982703496583164836200934053565825929950876683380971397135396058324759132484441803262266722673010267471690029331150129468102614926738440158134160078515112179259744803921066376791631984558215635226712309525738061744871690895947622342135167523118387119391617950097240893087171259158857203081012299396284558806369450077673003455803284491700371951783979852051275742586937960759735781327312069884839906459689180139901311241826737152673631654102027532070664834026203162476419878690616160861024449120078947308121140639344286650622264262419414164663153577252996224882122470978191124501034433985059573003647273138138636292018387998095542441446201359339773278826020218562752514317651560786521878871551605053616202821134479219539458787496084959904186968851597504981179153732816801936400572603750954104422564931729436597654172575850082075439268969581110851206534304175996871523892501637098684255290426535005066259882723369704350313100393703778743866193598263049805337192489758769479554699989245668247670639034393266397753416218053940095124310808763923435386721147140336457203086340533636252091656940912844600140293980648804393121492766520468959215090488092304490071959854968021340460892394126523124610015107049288961934251513697713646383133811267915346965691904829472379102737590170825670402803120531561427487513422939716413034927028284485363300468047576012979744508583700567592442296256016844706506843010480741813968041081941123315884593630581409873464420687861929793870939418127617097872235409864369753993214955184120074917905942686165034122916171052892430956699585764888451156263803859016645449157845893360707548256219623091961633540036849817335151229852480160171107950865257585648133117356177185124153744871999815897920401375074353399569629044476978559223568922052490318516761456771124849288853487828867553417525460833126591967197462747338636793315280363143290670477030903361856653681873625350178974718657308904002764952168154504978241726432791873344980657258042299516033471133156578759028805428367764147339815682629289194237545953379459496489531058251371381176734051183055278359767320413373954079283183610476302990674683900025661834247607784470091683020129318209229559897741072660273748529290138908363236528032189398961669227003207813512517578653032586062534991272177184988226377996780712850382425239719745018462254685856402518775353381391400982782070124034415765102937289577650541434842568421281121038571421554308332121840811011276650697160777009008495841401852069373205253713977549625177186166969159953533578832386589724471465141350423712628600877036471388724568983519461251643197400989810772781224554140056691925634708645331659388954644008828411138331821172563737641376915127526056411799177025403556756118696248866698975651379097471892776162957226070802098983328849107955614467439405487083361929088424751368399450749209489929694749522663211642958723748503963398141257744791072989677164630349410698361237985727142334524814796840520158367523903126609530934978513967889839315314530811941672072081076325939067228240842878795415029911954069281130762881882790971170284205510315876258383328011980996297460992076250945802058619303130358054819456473016089446694351491197984509949234806117078426396650063674118030690549174080284414224107696252042998377654785455970277736761809393120242819756136548603637291540835919175175130634948470834569083320963054866038262939390809996364275833570064481016038173937384973555636029063047537612257234526797929082766799862369270767276782368773776177738566288876835217902189891164418068567739198280326787742917419008496734959655417130862341938052985705591587962082139495991337566129279224480024045658063994637096747600517844818328558268612082753533587942737263166439888384308673605051354728573511170762941452376100032227787312476062431730061856655367203821857555027279527403257317800388403224791471635006690409885919779715882964386837574173556283766928366960899039763939762774419286379128618925914061334977662061263512313500255216517308123368497256638105873779103057435364260563123105235360550708906978409993695581140146518031468068188241062954527400447261250116687191649136489702064705750836875472899482840872066105393601410347986803407205251459381691040810466286948732827721235111748376923318163745811867537533722921370580319424460558047999924343664305097947749365912310582076930818700668439297564868289744015410567735530206070785370632951619062113947802461531674458304623325055231217355740262185348479326254105198418733824131886775417162178841558846254544045986131872868909242415496918119860112570636553271098245234275409692772947687666970962392406366113256236618301406341316840887195580910386152302189049731254738553175534754685419062612919793216562748496567879677835226696140326057959879189589744950092229892203921301806865624901240776411438118826781822806777005633161542498158405781760119776232720136756455113705353589246574685912436691370214191638271074672085400301137436262801074488710535241462158718525449290890582714149514759782823404539090200595947557187039541787470176747677091887907339736578705133917726316442751087134919707824755228939324688914903864499087493344198156108483295218224218170147606079707242732416099913664466129445966834668808385034827975179422892857019185106908877256889578349161481990954623211209485786537308216115785936284178954770792963270823613289126595674912390290187043130976453045237044821047767497003235933831264873663849008793046725996374859762422703928976399873932474973216770294007297616979789212266774449597353855439025059671093004368728560092338840535446558839016548359426137124722409453623341976621631158833395830907863338477274870785298984056240240961846997870735701208990929781926787575812456889879506616137497547340744872568015127020066462296499035919384620275961116023046791882140634078458840175219479723360210011665281303671886741063365148846200552859002270251995246074375488405626768011683467294682718544003886501098361355455571513418565566558767404384801202723131244297817568275295737109791395243956421218483657764507777979953493972135738930877988693407827686878437431616888461876628641211822780249037450939680455302872981446626160190340959731727095172486413327310758499053490890355116985266953649673414844194842937356151247189824853609270135053304751393908590096271351347136668247720739290690010651932728459650600034752986481026034630534834647473932462762939683081879313354694245804349937068383896465409077704605967873326399711820348394175535603929400372230628591272701476792646375498078747858926625212990801303146177170537465399314841225223245349807960660555546190689665308758093523174089943967359853492537662467832036510371754011696387320057007786514194146589971439956215438458979188053306739312724750803999033126686058315847274804314280209395710315383555644686092837899831390030575105861679577138438112272520145025250087302734703070929354109041362764399173475595980856084064361198482802418566740126062219168779809908319639502983762799410966992700744690291448653115782649910621971102164625687168535715679238379350311151621745510604428942847156617184286109493653606496583454066930453004346436518856578825817473823903387096662602509757385266467500385185005510311406267641811161173678922007026550724922318375237357440985709379775502550807713122579897347497246880751136369162355460941006844946800394868125731478624088756165302781542885626460000965122325951407585800177592995556062712554188276586140467415774891740031333568509410298221936586144904625819865532943104320260952208982066268366418168333400626997935735534100018276308049585263854763950045401400674771774734554703076340683500235124293605853229423029327172371562031887494761116213403211680132455015844813165399830092388758737180056758703703621054113709301080752501809074356104672149994526486266942361470954078612913667335194685572973923919020799128278380508405047041368644756992213513454346937870612490148097747780134466796069243826021006291837814371198970057321266557195972551368254898068631638580702853968952562610362071732230090246035609444359845387607062371953406539875200990150254073217347956874016734308173680710313260140282314242857908384791510073508459309705498913045008015922490485809591608542993736332981309217669569947399226832351796055977292832017811585664031018619994289105089406998211888897370967110451888448429094435629062383232924221576549623972092120978583353087686027141379180782290543965775696955908784478586894464893438818440834406865459557591157513982704451011857195844487463640164313700040049272300320229504261414704550326698115183201204546485586415694539761540962808580798623956202492986698642597412569051378465603358328710109184120401892662034467207726505929380729372319660885031732334159824596838357704488263187676616298131244758976655704260106100838494702663660219167128074083960075104952047483023124303810360521140509505984832187035315465967608974686759073331056070500156285649485725336102025569469049038634573191449171557813332874323520035842398435295834167699624388251163213809289512045132745564124862339259559737013220914062019765327860168254355919589824385112914797718684718671110298282999466986212957820243446242521280339566629254800777446448806928894036754502063046728934072466998495670195340706446442942523971786145175921180420198904533651457989012621805465251556962041347330675807308291350697705446630538066522048106716275100916184402678675489567235381054210626192351362872127478229198156174064067796427011746427569763119228140298087151634005212636919711630084483964998456163430863004701618669171471068921405889063012940908958089912027856355522037716416607605742144628593649060695023587992131955228872582000086684304627942388169219761704472782421860643922370379675293807562741118592670831376160449727590277500147621534070734350609862564173715404170012491292884872382766260315782240024012436991652713845651258047785261367066105173354222690491999218450948263871236384741180635885939917897312564113540395800688601189060327463629739596347346943443013705508000224414241120221203597866861186165661978165838380798023815784274705720773921502981958196155331385858038299711815004261015498688769143180520043389020451298280565471433426881744334915350069207479890373018508200866997313259469829427039455183335491928976842837806621344609888442244939421194003484449105247423036427170283397821200902392448617155737595854427181737294508559842712731635256243368429881177541870144346012066882179492631308103605981527194678703237538931980635053887346945461285471453220955101998955545804809633435455207353238430460417347366706270632117407494911789844739942954035580848459023581511828262714346190376648100303751256927489000017214401996401710911021784128548172287733953483050486241511938462448642098280999784839218575835496605598375451806533253470898486927785406690933025447920404802401530522204890295461562423446309792449116488958119266752494430015581313108005182989493145109445453211131236337392772246906067417655562310983958026771976049032750502956507347775108064324594076394055234645950415869227269687202145798603556846046550619633114179304616798323480605970798922085196151483472962700850514055558178739161666059589604847293842026682859711446402866525106366108644886857316885711157235749724940953702701736144170560724054260758554134114267597473764046982801045708394160640930790927417096789313177672857289974348953792490471476211104133120180843924492138619817542806878601934943722052666320994030116179953822012098715943083399593307149779287359938728465235595744156270760264800064969924405613461239958282722147881993312042008549874379395056623912178561230932478223179862612904675670143913600896284623594453497050314135963322808361736105264490886548728414878875025045964024963958394208883736472314919485099348492111664787713204147712823266482301473665148477528324309137563062363429224209419741525991251787704718131804857155755842204782598586788317558862926866753488693705550114809524267122489015305999104686918462882836540116189387363893199425842185106008084936354607037121574703499524695159343203353383071985355840632520629473840521838133806552730403160021899345751415790041507945681615800032397984772680313971957724666760960765403421419496414077238775883418027286624281412571889544601202824659711231101365810777198647634901208435801811379800361177636280943476730779226719169182108743256297415233585098883606856695022974258491290965980632631126109593169073476777080635128021840060716826192648388269028682994906019417057036487134763359844256738887581490212881795412557809623091732468438413564885060974585065493886688542787573416101489810388820726924201645414049710199934364862979076229228698696959587523247314651976170064266891147775567824114299134634875943428617939377085235428128587651105080903152024319225256459734491215173307596520921595608809281898242453238590708887217552032498047999958097403534797363735622843903203231564348320352142200950731006942428163790063208050135223639552284971486298612459980841603845361923242385081663578262663450627277868508282076717056475902505034142872944950203356310455116811397403648276865166478996362302359290505209222453180720221235684628652676352400085793976356684130507808780845808824634619243347146985085674443290338063498980244290243159112835942307308849311977559987456841286253472113020626730365127981662963550348068129133418438395522857451937917443723141334222578121822467770018610282874732279271920880796421840580575487591149862795291959300458273277548636318859519159935179432281842777731761805226133724809912283082341514171428387361837246919949398813910634012227668944484665812675053428098152349209929025068518046011152150215341319296471304713638826065358600782804764555392331918289846137519615911757177662598343699070760410603062128059098261821329216149346121436274854938588515176106081267429320118036652491272440575055514993693651969762109503586338001447129710749144498808276451766744974264180314938736588118462321594547067915481608474725833760825862437624442459327472276330769865721787587295169750326284485611106044201077671633696542155416713774825101862813967293867805427282789835130781852805113654155645094180789192190917755677976864526994119468571379097766625147614303975016630418616173483975398991366432185633691944762876121621897019448722975098000379190356237613262312950518692842669262781466158436377506264819224211942918549211520380532303585874850933533191220499229913988179625255146571486504031365527429047827016815225517485216448648103107995943413732765590903636538116755725704028933483836822935984222519405844543680781710055768103714359457518578703180499684121511622051574645614966962786719543364683251084776672324501330951511552355054092603397199436567041612740404479946188877316865039969340782253040150508679198295196804400366916573865154200021185185461775159336152023198700332860143442045054710751601168076764574356259062747076285150796214125103631057758324048792725611343712198271260141600104217277682740302727639422029161572417407548110255156791041753160528186642576761323515022419310033145053412000426523702510490192311536852885541743760390968763857172934401405821366453714573881612173294810298378951946428538532707441243107212561744688784564462005953446314368473505660944826022449843152215525326821412489651736501374879968155214527772182621875184759011401100105924535709339540813787286692189416577420482593214371406936413175777992867424734882744709830462746127637282118231637966276099277076399140287046818165136248726880727449075558678957720293502056956596645863424864920451942298327711465429636352315932085567731350765986760613277526448722378568242780631493781122699754189567488265246799824972412532161485343086114584463189504869900494933335902518196109138371919899247130771671322760462630745416739650625489997001676092037152567094479656461475527255856270686869140965117657910925919218925844054409518619656065615279661944429260183619347580093862278131039202165327595394892075444228005332330964191387088104300076978333543875980102862830665965719786192701402894784972168773181936504477997373019508943027642230376223294525709492131232018333384134266992167952519853635983216492368469888263833407579014573737155565881713065854243557642393376246028829821599482602413083711026941381974222309443228538378405229726947239932103811826192119869613546599491511775075368396169741526635417420799548995242752184909416768182755909378280801197095901230390664455486197403503701390854077955491912791666984928309476369604384051795223506926596116338489885274029804688584100068341373420280237551338070241640952417400025777656802691468992887664806441859935598302710280829684396909928347000831209229678954680192956436256078962647596023344221238917421602387413957124381461790590766023492407413948426405887442783790254290222427859749925357345349297128120363934667904583861490957252811708773141805886289913507336141560578338942781143140512667952153191069157284306777227670861008463254515281260663317129582445354397819850915266933878453593160277596088985082722520712235336469272877871119223340414952424431082725636482530918911552271896196085181152705645863126054056040376906570165784053154381059193028227509406249047263951106972925820081793548306491304880056280880160482236482856771675078550216697343680837504068624693447331429454900345252335114189669697967776568145344619937764048498879974345492099844646528716254977316263827173850974177614024166516642146016620605695796153534445543602750082387430962124720326744934036311905549862857089768720853037618384126176805798212714327373752397201759556567433132465565753315108333061793331737471665079191893860548441398245293408144544202832091281673319330999234414121486852606735641190295231206477576196594806276450909868845089410272505935943429076766657118429577772817985541854657308494567509820902994367366670146549602447344969741888567668989511408395751933494183125348566241238878637134860156596993222161611898640616394125947983924804858026924080285151084045261813753224117250828391583700904327969521091920336700685244467358275162887150543017532965319766993212599185008625799739683530575781100692055852050676350575700232005604953636148760651432032432696262833394710061262140424389261134471535606778295422764307412113453739054224294062242189916372788960051503606916372981137022600960556991674481966110633459737542001624646056620691554997354930246913614168899209809101126807143584241981607823079782313369133829429990827798830436909191111856113860331613038855847307410373170967168783693744438426749300133694377880520722533341207970470472340736352224550287240873506770027928580985313798893520637578068709573171452614797043032889758184251578212350377666227147810853930363240331476719064031664530408964767027817604170010666545153379922004965983853253978613618602158147555290751808043081347228364979933750737951285335870923417515930000057905968823819383516313722086062702776929851694703574532645069550764831611593779164943881441519148385995816481702849678796741603529594660399700394037149541253041322349189527683854767663064444125840418496881523949043325439655562220497584789822510480116055324110174636953633054197466410480246868661578034191999428151736937812556616437417590063144352035816537247282992798158819479126351509890551124681258141013267636821798567332799577679203681029797550994227038884086514534027456149627892487295644601851552882286401738870460838390937722378431672491081460966436010943178724083071340836863399526269961057636096115339314275375218563697438835406135983972833650831043367876640040402620801899827498680915193256745358590079211112091346115432973111500656324857738184607514051924283359103175956011401197058506011627199299878769504601512615337643861418417668489872443163928294350666569157453498441208596391162001151116903360778598001008865486965657292499079364856110693074279799808109355952213137035585415116114382361350380573127264629673989735396780236796154063362274090753356947202909997728096113370245451389284591704191541928180389210695998204831076446563461675700197273977917234081965688604613045707388132096281556948726499246003134975872457097667858927762065581898054004763863259779008346477414737924918838699970545133318258820638849537380613821266546052769096298083731692165319265764885264027545165326127610803190385036250303555832117604421215793628230079497014870397633767856905135089741124186641869368940980666914402846518821213761301676656522658258254011594607592467127266286805918318997240289086812231105626231919083198972792569073331618619588515583361135431282335023688937771670425177062251980828302246377865392540388153165846342168630116129515344748004134429937229626725947689206041706985046250077677950732830767753191924102214003149596638647026837362914302890260627120935361815054147539902506080344912256537781280078135752278136329961198154592996103307742331605004043308231914530964911715513125013919734936755864362708554031353161941014746711431254620452408851008977727108979109002318784933614484497625183470908008760748195025813494520736055629323977544113662078954527218661124686223175415717971703799568311623470646884602112952658232084406683383988239664912164118111148296308792032628970211668669991393124802394008598637980925804098858660918115510216122837717363259587424123632452786941058367302144882272611008371951250189272934559627549760953537042001518336919152309342440195686426292650725260926370153830880291933976904970087826257743640267838525230311199187616381270303300953719288141984498297364614921953413642590746640846832299498629099183919554505367278466748235093067390566158069060245767473444281807372113604098282883607464794929407269530726565557149814893107207292965273899821243292547185974153997533201348801111322460648479108870434134428047573101220156180378663029935406685381700857433849800895350443395528534428663411290549729497333627037595280381425199337308169757061433997415915246308512598942777417868558232279445065634572651037714703344140096694539029390502098728484565078395028777664823709493705573032071964937563418557334645842605894319244682399393795064414151561840084999391774742573761633615945990540043730594930464017928998105805510233528341958224355662031499341441124636939292593391775686900000638393638228875919076377155648792012891138388887538635521720866256058514092795365087295807974669264366543525396489965069920258786621881376424836729571049678365548089639959324431891915695200092547099518767044835851772475420629472281184596952771989100994573674916759991517223085458159856487111584034350507036117250358510073177934054945005546129833623528563250115545631742192425389956733894884936527911999815509070723234088475755900686228660244827283609751830393342137454581366464232976233641221523683796970213598602263099422674909007317321572977401703564422586412307540330037885137148667017173434823730033512935406747086119947607953230413045209454120447822969476471201761157987960195969453230966526452774041354656965275681395610657710375466493642782647554810095563523995032668464935216316591075844993295743172455977070687540427642872290308670790144479644969611300907372348726369124408616809417993230208669006415963855792584810356810850660561222613859093787185119345946655549528323189614735435677083105970234501914513686564422911613575488210647408723215316412170484739197488479593948761310106871136031330742579656668998429842350883154533728083749402192289347930800595519129806068198781635910571478581167890005766710881477627669667666985440746045429806567560276475284189053653894446689442066258854792501785544353457766205758303672702405437018479845516841064221267016917208515547295429065040758709058579617093524713655387800108016569608978249203977309615415032728361672634718858462239378926446926716110155340155988329646224283252517591969391826413867797418968148773410135796611325798946639604607810978469520204022889417195527865145483638745630433309179309720742794752942182669444076527197460299441720801289441409670981959296476877801656766398777165496143016303344660367698388268323898032443191206825236642353959365589182243289144274488634873354246935228918422352678823112970173715383609132816099907613832939484069911218382949904263462910314994587341121297531849693316983960483870662140342096224398692039661362498524809875306662869134255216434001472810717740139848495921505393330624783599941125360214145575448627342684069892055952717044216443314943238927878920531297852209407153337758738540332765328009696548198910193574460567613411975454432662160826517023800553160398360519978301620729462732964874384158137650703670850734192617134961099467305483292884763378226037279663900787176633284403611315413919378377030752086890681562238162312302830515052498455539155362444617174094180568508268239252374639923159700854580755877434750077889742370922962515595345190002877919075216740175177785048698773284926701154017512083839950761221449473810596393793307366272597158451242448844304187327472275220701584869913597693983620703411674450449688538623008440027049803785234284189449854334135658999167963148010086008418610409726791760363667606255301752160727848382972582959886480994920684038661930840406987657746230633152698098305345883073605102694889461505820177488296319069631165997428648916948905766315975714932217352662845560177227497696142283595423696992685669880247217200233963239576988321284220836991546276881683737851136297447468251180439937505452688650516539750842435154116986184742023913993082030004397163776041149558117717453863415300412383949929126678658101980067857519139473443205554047927185425405417679749808141935534695010472942432857302145742054095622296370011488625882781443758768195791477192568266568590471759841704628545279494001154197283054749482238976393376166517278954195714597825721713811348504934862867978364008418889586572752301213255384431278489512008072961168861950681140022424653505711919293679322761727200419750625837894418765232937394107485027793768328671047395534636472962571010016053641506926586998612331134729423976357352710515489960029894817286471279940327880590695975706109093143426509266587335118913258795459590925925150314159396710311976669541302677158810472403570120798502345349090670903516262569595411494267506186191692233132242304131013559451420065796441192319858537011761437499411889293444002132446762798088571854026134837434584308359871406693700071159657410474838379087991275230896764265551431562917466512258611614469966784338240986685528889462222516215233255931505677020067066382178219168132652485890165851971572715687340634055366519405882818140899390122703900102539402943341185407226802818970478210030355923658786656415303276212592848858963156758875124961575536556707221422512304885241811177568101015295732728635325670577676812213730815279865324651475310678577008141304574881945082048518329051191648292614726344484529986407376655003072156181306659975571161618399513749616531998769650631170767369739012769743761334501193415532625997196412038434036551360961836384644742221702099333141278529131795825259141062397938624031515317699014766322145349448368035525394108875179873179188114662735571921886332859343079735825011457626742266807069030876785785582488171332057854719597536409743170549214008726638825983699971908950709433109972135704444015862914013624349715286320858792425183436973763033998667950032221560225548394618197718017932308917055214849382283588472844947703595361920818445027424489935308668034943426562167456878029413227064329103901548162454247158862184343251751301245181984755928510983024464354935580385811695343525439187411379038749588448270715144328281587977812913594690925539744208612938595707685342081167118994394997470118952919251050675722238122703516242859630069577767558225478975026045285651979913509915268495521741149234584318686983128573613332106021830940366057430372009014477213541707749139063582939758881146564586627539079863207406927354509708738971357267578135913905379615937052894754425411836611123407546826191395646181784599895854758135831362989523178372781953941186102028307474999622724920603944619541017445955292334248902632296740534181773227524332884906597075419297526065156791405836970408892778815676041545123843650398945562233185989779642638323144471240611870070847517267776577242684881032507380684992755388336616306065675055760542747732207885179311303950459669817521771964187580290543051842978515950896072909282985201693300339272319299522484452500819849377092212377524856675943577221075460267218548979807210851157631166750152617906583842467157895705538878168516351809341591278063969864996580209014834222731710573898202261845260653006975641949035902316397477970132816693875375068791168519751442035860270338115948314953507604797739015852408486831281908602878844758274752039539265073756516570429192649599692679971519583273530319224979917149566362914923092684683193170320584282189353472146573901396153283451920550062176603734615016825502873793009333143781428053201885531068483839334789514143681107846710212491332404168051927690887454029411859861015748122582961849874954585990280536007701314992081242726705775474206812711185133945035000084793550373531766884102219354211212667204841266698271320215917811580132103568720121476535158528740911420242942614903871468671316250239044955181297300494069397449854487750034213576318270888953855662751380713597799633976300737892560103553925200410833588676031419372680175731907011078154417560921085269468266260198689191101344429902613736742399399510099979997076504667133376858981441158374017098305830431893690324814984498045517574194187999455904355656352595646742400229449171237290278575544126900029354422937255636408044891309213491383079195108435099345179684111207256097991895254865809031715453752791993388318614336128998323076575256039066366381190169397472312095455565366988366239973880600552898510862508174363816701440326953624250146448489009378051418974016265531501778173593589546119288567449061546674320812043187167654572632107187260453806143617555921851241041576427851343661460075711811292027821272838513718561803363829244730855967402798677438720551443914985352835626417950796181560744886735996713308703978652214166496545898971437024774804046656703567835613244316207645430632730564002361936601638178090066991535880056833845631620657889633983006095198823751103023968397519119686651577435893497423131942086244149432700924943245684569067684879991238449734805909189259534676003471102230792551409605102717762534547653932969931981076413509129330218833244603453129883919741728041383610971909996212995000206903930988627189799289247943153601851469565973793655023935417935854687813704859637657444216406077765108967934261317223228796558649894366894342627808495613843661460177830250547326361743311983628166054148629582263259828293070724069328379510379310700650610330357565622580389515024920493078834833888007264356962297987803321369214817045551988986469097995185958792909044754631014420356285726055831613180016866739613561253897042135209081817292572003216251510595868679562845108803470420622089414461985269291507719073648161343433855844163838956771537762017826930087478893644488702118345826723286357623598196576173541506375102817852737116002426788698396130445284749964898678358007436598793144743224296443639818945387308977906620370035145608713827043535889244442222932437839327066452097741844471531527598266535218640800998959107822986981582383161037142010050499983672965780876928928463242756631987960745830915609369591469377533863486683321274985587623825823903854873443636342570785808576034482639779242775691648829864839070924336533522984572196565523083461630341344998147691163532255946525697768894246294709378358109596291880691767455103264630754467999418806625874379123666766852281947518797549065708534920237239490142055135166363645088813379122877818221407337491719153498074215238750494156234302995076719244899005631890726465127216071935178912556854038626753521312242621051874448828590762611360721818009986659620526895315488279547358963884700012001817374942892889779541272584169244870029680598376172002713460223976761542919666784663725772026232621515441453328820562751847088687491693856959609612475738416851965616648560041249025952066206599749108901639254927766140925160981173860677865828865387545106731716640196017723652874804479879703566654372505861014284149552366819580171887758756355505797317533620142671523345909417801249480035201280589189296214477267670132045133503092449774131847038154668188988928671764665557187331879675470534004341978455159380909667653618179994330338298954402716829846747882052680974883959797973395338241542864521863997288563789555695279067674290545139142615860707221258695674579932934998230703061311340389581509324910197149485914435726156318944670155037258435594617047837296788280224408322882689357417825081248698587207121936040634519050929926122533743845519088662830366381979982537799302006973073083083136575765081961886965838262450295677837101751334489710089729002865851755894267176172606347885376930479708274780531569224190039554874895299793895578275038572687500686354488088348075966941910088091071861867472764927384544732881070720094941429740604812945349764642987323649805392268856527879108193148611983939869896292907518102741712865952578817346055138639224916192602306978816880385230273376196043304108987893062007865214295658032361509423226543527940019236784211541176063918581093123443299090965758580853679371364257329657206168652952704775332166923853172413221449273562790308875355970073031707827935298301717811550610172359490231847363028224419085716707876027834098319154386645869325752443745404666924838254750872753070302831383246307530039924443953996234476456775104600076693600586932052726429439344152350977032112700996946799633183371295110773423443672287459066189717744211972085678759188130564470475258966818651204098248073047870531313618919559544696193095459155501402482563155445401238782155594437741935761001003891259602270964312053911680626819203701977179261378555131423905236015280040299606645305487680293122138524812414404882882973049125556659447792818681337996688541565767243506554008723302141588730289268023855518099697118639880755614058140889372178478543410490566029262688132393277171744690420317347141235622849305161191153695366341794789457146781628735543799907945770410705648728930884001506578461385535224379393449397547543980171946526016903395603880748601939240587321770858843115131974387711796538097651908169419064748561051372154538942439528703704656638344130264665305965032492032939545322432754260761393158448391788405930416699282841282971031936327828346368292831623413760552430901901166966168418996083899500262117702913740474287327300491308399660696500799107460923703402125597956429500141664017408953405000491217394845510176628961325177222183753125877584404294875380130403274110288062646208078585707669703029024436546176322505628114601531456466371290396108836011449759531090387971067909264030328431004620052586945761220546412235132836508765191855067367736311186503570386556804968280278643742272356799537573091952534002157524067472958787836766358532870825046286302293302395697836183503538157691600605551849001441161269892185350943007741055084078486244818253825570301637691733753041435844872782922857475041029528122922884973966426188839618080918786332115965860087171952665370116602202258052544087338601701701295453379460344112004310107184848372896555826049970566384381697455229773561199243619530738639242449298873357978010468526496061796820927499058692576227107903348163640425064163878896420550437857060745150110762210875599090310465391379646520348618105720000152493468133839392055562732170484469973256550843444448617949206660251107914186836708221707354118546093405319503633722935218084175830918945045794624892599417586913084253779228901824900851449795604757752177829500691694396994242030024675961452397885001463393515871779153612907080147123843865863934047225303763750041301753716779927237823174486200529659409670176858837606887155878106336396728535945933728449095658003353627162767726957770713377554847833212518882014907425205157286638851065440780106559442169615196455154508414180314348869324625673802233294828390746078584529549946355832049479104139815943631964042630812691957573155592511594016208750537988183550705761495660399189314905801270825673874404575951307896120687106084517915151120812001116888568576427652252348484306942336314514640711357249025506229743171231670911976386591625261205557457598022138156490945353960022831168730052197585850489834100233981241223273442079556943005627799307860930435865907454513280068294627808125832849645306965005269463979674169489618246034982641451460944989094403560034406695252451634698938336312389708338915895425453196273256627829234712777778365863820549209265870831573168095244116094980799100093951212093303953778723381095694849904777294119075721499894470466473091690900255275807225532152286885876150595491055165191715008777671802433092123279983076723430785655406177592033901198461136905906731802842384176482545723485434696558626850622205232518859528394628821442639558008209212292651925166848364539987772988307154163132524118377176864088640015395224154697787981212800470220149316452856976199765453113988516815752261570309022085321337756666385934611248914718446293948531124401084569041674872068047161633882790871347203152370332801358935833199358592734803721757570638610540288506513998330128215093206241245081036602982093180275766499615747216912125693647640313691613850622836582048585562282037901771088580683831819968715731207264948698762555825010280553640062871999843617934517588629111714170306245509325542876338984184526330265511174611085032439277194647409102429670937191611418660247343112704977462364192911306756583363257348993588942821903514706522380895665141923825358324605837313851886498894247106845575035208228572679040979707237554770530499263098441919953764672082278539509617985912516747041116221787257187352751180166365426862415575580259739558882196336465054418648765216100177256932168444643212740588408109558160963115529761144027598859381086688576455765263073277678942724451050419125135719017641086080380451997828607295499853147566630544370770492959068760107700437001508737004224172040033723531620801979229476325084620661133626635357125470368868621519579931028083754957631643316301494461444436373611061251356660272829587354449032796785260906369224428912310804712263212583060475957911427185752036897380133970336953069496875389600713546476023968961727380026443634314648932785281614540304549649650266663611822450726052705847963750565618631936643360608691833996660095159269394038484474964469793268676976763050146954893914795073168758799068060271744329879578007013876178128684145454413238620942615985043267118769594610693163468592448539071263195350272765442323604751958008690750899233974312745295556994921387604511129913196896895115373923357756920873600867707192238313967326229436450832550897446128170905682177139524392392132440183182073339858922671509598159242659668246121761774731138359004304909484411670018351177999792558448190230654277291934564449668030163771031302400491017055163506417398671664104121867202667078146690795450589090622110641207839054092357620394627489325236916718261508785440974369636424082725999105043663934245893850363190825588574333169163724856711599047478597682307424015299142142192675389325464294415854465049460171860844710327777319813517752090934207206377832388510540772986425449187076953376471308004320982648161144562974297607447179765747819209474932122303684172894801539909042522128311085435609529596714595117590186054046326882412308672754256531784487380338712769771549852814698273708569505816214325795387539478695880096000568716181722445506524836593240355845986846101768366983704761608127410796406758577944245171085634557531109718311951962878983339974029210305328128099514654858930744115009164655144544552504967136310980881223108759070515712493929926427007038662573877674473109972440848000434314805162663320630529421703440138887597767375602104169895784561066992915275940522606002259860030633282441419640857064274340412152638394345736610561704660279047738157988612341702425483463105237909327360974818047447113324122412349224796723744433576955721739356081505118684577428412714932591611074893610579475665845090995980247184096550933802399462555589779318435152503591551988558205241553095256233865165013836285293155892019673048409809900036506004928811853458591263390331319785576110149068976851190709759264394148574222323068007422551758038510126588238876240567708263724328228676044694556782128561798504320916243416914319994348756424462569779905645200991245145494212516349876909758197537737730302411929826517385964627475409448604670346193272861850805675469380869623639855180633168316412650689808011892720031139142848143438067198353602733962101209479418143403293299818893288990132369561454648814553915770614556643007736231947695700186092730629909741565849871043950127878394461637194165500454208248365928414375290586366285295612476107431410121777099678666371223775475607674082372946760625262939405703515836082597160206028862155603528071455391325039581057422134223935833345602840955642462275025985301614247366959857883740955768663578995784942323589864717605480846085952930631559824700475492471921915947998753639843041726466859916524121979603497521564861207683980467544786108571947229346266976796861305500337986532039504055364012360266839707655580158853964571264674791965159118033861510584416511233843100133611920496327370463850515849100849220356289589752420726049891354501025246421138441391022402869835812967925047909129557439942473612755096978360726235689012125707308533474266214009834021761290927888501910501593295905626210955644361259403326327605900709913456345478069233573357175269438336343594841710874890968807834155428444795381422397568365172469349505673441297366044022719152005154623952680233597154916073355673288024866796448384128079597702104901567969873733116701389777782970989904797594083410960632227168115354695882106209869845246583522035100478395531053691439309409767578731632629327856582111593652307943978623281135902616040318949948839217697629589538321602236037608915398652440839067428210726863207295616388205873468922321713954566183548719701183956695808923554498356592666056674521980866114173888560425125270696853314990604548643006649233897503413940357792138454811245830092216273612924590111044148765508748479213274888495434029363088644703174762873445832859724687924667121876647571016198010902370318525789230977478102823846738662690709629855403683026649079936066249213759257583711756478347414005869995805193003887610579750880075178954767946999443465110020230883116661372278103647831142982271297046882925653957042504765472637933780330398449278771834670639161509015289781176488451277516139025590580883595854146998219552555980932262087176481878358146245394760221874014857391513759881980341664847076250463484018923778470784467846603906351063014793387391012418541171679170724876498578093566231172555924157019428358205724265924427752549210599195083642053107800737868246411456442434523400600614510868743621980579491374345274422259034501976082909099411595734350726548311901558233144776077262713331404795700526126276271632467989329788383001882139098638235826203103473373965317478810513252008674494158805578070126397013675770458639541994968896721107639764438983119136389285604867275404090641391746716036507582017607621888475580972305386634776408376067499657038894579470672002035855410010267914939649653963850994831029425919563546539350480143323120042130411695534500338016643360917880616157807624520857544869703015651555201388475280518718883796240518072492882764261829415018019765033698499352831904646542296690507957243707792185209174013093150460365353197978495231284446430181577505618052135760006752708099202521910585405139212375681452352318165417062506910226624198334052925813522355839251828964987318429758521138238555166299469241591015322528394397393709112861670160878604301770671474743601728518236259038253061103475032817414065277030070915861700650332328483082443036984788147415770835448002801896687953370279465726477233358940480316953959321457103204371606163351058415612834664449120000095249074514459647915389720170861429521045965083433329595710338886630861526646372183027060784636605734573229251789741343327419552889233785744163739452420909570442716158626166908590087069233169134880364205385552815957456997757006176219646218191697053546393552355242515914940523064703127249808746571561140779505865512833688011734247643462097708464066103522841523559378023307937936472532539913778478113197146227978634245055113023585613794170216330784616268167392183556004257588018998193844298286319673659263255144782490225945734504765733578902461818064979080827528450748971916154963836199565444911263716926504308925021958388737264576323139845137386751332956757848281910135348827098164545917961394071762288387646744019744652660633760287231056408097034278544631154869862660491644815824109792751924717301604267959618737648317805844992053186795796244647676418605074846335076738646730181861339450830655025919782474387952972370804456688828069580909143498558996031287944005678815806561155327974006376022412726718560487145553529052076285441434904425170269199397691349624673676049354578875903239313486752393678504458180087134404040866295352149361154969957194426329191706259049418340087119958457791718863036937722547455978087911843347957075270799690039653093577198282508806924669729153284051059365698851165622979728750703720808369462565545220251102945759987961358929338499878628626121856973234685151260720244995028071941680812359056778973090188743134286802043180387213054583975816613921862435931340410854117155507869281187382956669634428411949481216944745955184507217293305444811239795230091370726246879630556097020729221063252747337377490948385456066165383366954337612940680339927710326296819791329710546428889055167943784036532370308364712286750625759477732290747281511931262640209764769671081083074687366037935644721378043292763903476683918169707319962733914772519989905746289672263328106434792091960574102608925969144609748247851587050151985273300101392932467070712769489295987884240400415110625902306221540696767542675500012862798137818961613852543531713496217989040521026192111526136974303937397840533836734309839735173434290964086047777962518267216165078533785386969361971682300095054595065824107292858501332487260420206864473196035953463396325002589415462303174199019906519573970114968580517190559604929105800053018376543362565040382966767541937542681400424652330243765398715738155514243872182929782312513223457564208476121795923052161684760073796910495220208194713671108382476796231464081674544248568797575905748227880153539110901391828408000334543018727308319694636601460960370970165857632253594669627892126562057833345562352453424847078529221079013354108885648460411579943471806975002612900116399354446183544640376906677057974656890100882999052454654358390828574495681841766243781121787650643316953075699601642767121250827792894627596755638761455212294083597644146924161751083965585313372531072985470641352411746413271638089887131167613090376580164769165586231914718265692575370892600744683499818702691922814799461727524787920026202822177590862670562304174797481152573449406438994778764451638378586416552305672105732531921546526428554571506715051478338488891488654787090388298425495087557668568003625863011311333740231282754947443428510577109422392683383385582061654221992164018729692978321287820736438808679406521383401759421746699174323404472239664276246010270713569203313606824410593935393924394701564040560271765534941028302801657217961650542835200482373632146715613962937417429286192090582157662638312583860219082626860771989040194570987574027457856389721179087642272166389191333205989356553755590944644313460320656958761581422263209290203792912805562716729557654259914504091265943208424962009248269549086022365773667995391837848080553856063162374755463081250333298167625941450364261726688276843925821187643069182191318934501742881916769419751736959226022961673857770143075195349881810930011207357222134960766884327924037303843008335639333032307854656039677102574799848106966732840546253488659814852459964915813705407908094699124037800951795147435589740902870656342781372822453989538133421873439989142180411443452617397240807047291533153709403073543702954059174182131088509975126789425198279540807000644137903260087992249671254214304943930453536021124446594434142870948679825350729391834914219777033807643118397860734335876186192087277014430516742832739454642305201272790661989448468960457633758674396003507405562890047505432847115921846617324911543051759069459716241790687381183729142691002705687100551046762953371832357071169961357386858988696612602069423021405667753633368443010913406163368657959443914745578270378157668155675413371511775923095672184226389185702497640546578283589901093179243723996168309451112471991459752372290863105391909167549890941440541961130612668435565461819696319771524321008506523878256068596705849802476404537931044989975188125748183485892166520710994203001127361675933284736182046489572921965390205282735207939250260723169063194798656768003930390410731651240623861771047312490173548152666932963498163758691954478890629984830862378741705549693544367734319707669842957742434741717420861160543990945343409363150681912974002997414979204654349748352611233880160450026910546767787328908157670015764518357920396518409148915733756446520733801594719230039387723337138075833009387214451537537059183760301211732596906277404401458563016820208229590431121581800760197308069948300484713054982175733494672263088871343543485081103615586699135151412188942595443582311505623505953346181957633585436579212989452312460241923936175231258424794024687176804346715485810796757076990666190922325121958265707464789609913491056213999379651356800652466785591511942206087060975322094949271791233714745529922766218486690915790225383505774179995681185443295198325181077152292612704166118975621796527349137513174005609302047286035433734731777282390608301058858136418451894580302376881484294387132302444176153823259277296294339789985124610022344638035853938265320595323952359570063402691769834848179986800446605273773991462715493078222022402067342375728100565793142159325252481150123921434897057101198710249068769811389627293916795254482408957767594033714839778025097007759984891084412715966147578530296585153737031363611744827616352873814565043657609723136299945426513335993488248040015184316164442286803403166540840930075984710811478811600954305989362290032317868009803591902594075292981194359235758665492525158689921274668238800364841116650726470653541169931653679478052178945714524739007084034967429805664394281303936641203142381626479176346236769557810657016706364465798844683978139139201088725228402625739866952553847389187902847905444272874737452635769456367819812058995715613542969229888874106469356389343182012152873011342256820255707706286182604152411324597456244095087711576112910482465829504837019008707685802218684251445210729614396827579778842474572885303706387824310624514819379098892326511497396908924974701420198691263849045747855602935833195426363246110336328341767363771737230750160036117855027649161631340008043098651610877827599005581421486563240345939514708858506536941905787011833087790954255746704536109525080802844532922263547433929328955704190530751119478906908403744490543321959770477361042776126389487916861747978157706230054087729944995646130551572441108129779241793525244009900048712988788000436100494155190677834869834116664604504380387294751006334960102539304344877887168441975808526179777599422347535378223131369792703334930969136793722701684751488474184479297700231865806878682317369901603190356031075988815878115426203074030803261891193564050453301206426990052913921620350893407602364944024909682528658584753766501576924758272130848796538608740998097056635571069444667127872784183357170853138208017942149557595892461586410591089219646051918396572404013866810083849172081110820531269669437906476987279227672444222249105103244118575749548287640395977312003788634870561413083466078014775365703708993820242564433793213731178911040781784695146329026736711347569292211633768780947993240484207574833854791096155665502391037144849187715034440705615702054964269219186189699159731395930996975304834817611191778755681537182779804485771910128061771747431089317542125622311892416811807877294657065636792470500203081205094617212668679879697630413118077696888698714014806377345795884144398622425972855921796092560768190695201025891594603649526849791474963532129731948503664183757336362417852932286219327913310781415472309785849372163092828149114951084069354450793609229507863892169745150267137305149694360301866930227872307604007569735420907863411221612534829022239013452435190456132809681462566417007273284320095838041331451571090789699988610160269117191046625763692438433179342991175876051039104732851200196675231482725233906141036285813320459478991963934706940890939218437365695316438231464021431216365221672468378452598520195449754344317613896414190856604137163317252568151720669396641265075155117094565879335349864987643471446933235472111110156946048755530667359629700058999195644722625312991854503114006362079578499815717153528766351591368544502841168039836737522486668353007639434608170944842683819685689845457454409935906526919902352338146260547873226175212266692841771724917832013660361095460996184006438799800951622758113401755307092304676534734299528441075225282637525898465113567202744104805350014627432823683861187070049945611548083736893011962169229299411855718185243531343261059571823558581563178043237866690441718257530314722897935966561950928585011961965143754116406418410720925740797217240414004982641328473789912418276749431286466823931800068087123298232386454950383584064444798603068514824701195458524008786520909656903439388866063201834069483920646234002323557495609774251562741698690077609671289825975101541077501636970116644576387208992514659206307742288538480778083932354230281536205076144269744620852725529595921615035487299966602749990446759372067282825285908678201997612404593661783515043354822780238814996145756382427778396392942060250546466499747872950881732743526610124118793932213582482940923456219865310102405108849225612407043806490152924883146857154571350654869454226333746628947844829155942430346830703465300153533243695744453040079328995076832411139951881477768561660628536741867526378702254015930103069263855402873719796251946156544255438666884745862529209048864369638915922750674023774131639091532444348625666101099377394609364486105405111006151506281125227478059369082487842821866447231470940963199878786102360167398926682173285170340758229173944320625317510011082726258554202302577436486521558560218436826402465296437515700460389943476319847779429890519509329650469163396783574641888510821020202287907436666033362915776168791401877886069302329772945742850594399129997139491519582203104223168434243693067458572531069998185136489843956923106722778979432630305384913202349218208489581995850908020332287324315506251488394755183158246045917376693612868102331521133923768457937227645946713137059902936615752005119227608634651999275461165064059286985115627461672023797741257610696175531326496729931726877068692082814650838094367467308915415206853940401022955780539834412601351087668899089291910015458122447373843864013667008917086826254933788148020572574883770499822805626029652979326114810186230676374269753439680910856173402348254282734502138792098673847251325901304560673806580968726617670002416360264361031211464153051696609776008391998063371814658641318940346916466794456930765314634476436899762391761252963077322490116550595468395306933305358929388414351358583673995029485054311356595587704582012018013688309694620446475356072192969280022137522161111668689534985296122027768915984920822957298358152540230073379804822426922629517012658115550545893143953785974217263454575187323926370827635060665936129832133593728193107753991110837940376987878809592092395658145244113559806295871068329488795049248996291795068689606184486824316092712363309434776896012537642057239107287542180785852450923932702249902767229991971275526292490127978484565930225186134749461917022796070323824327616052021378258413054051230975919112995597248479255735489491361117042934554855176609775934562483560466315374623845080901841851048213157270886343351009787259672837394326106467524061985345615765027866901886856134473472118460852029404672990343201687231040686867140456359386360305489920576234516210552154448148297699276335643533509656341856667007524316544156407766855547641503424410287453241038606153280533588543194868502254597772230123641897201470713208734095144405199504087579567192043330966845504362087650477682519576743726090744311551704592432823467689814745817845383467368368740869778912801689563157883262714298215119366249503166297698293175312622567152551914849822380230191974089504362180738735831361114540310890986945402009876423516848778196530391354673481525347440389932958897157832649900752154154585061740360282091311039290075860983707090966257462464616844139754167855870781280263071583091376757669226316093606512089370890240952496791407424339982025955406354222676651615982889164615767897411174837364713628534787244295371515143992576595580415530841547842924958658827764806742396318537168769645873648800167435401031410263544024037536035826918789028247626613127831334787415282637505667014221694367095214214336532584539513618816237381860881190750134182491062153589367001054244131294099722191837769004374212787301102980943261676186935166544695100448646285906265404227632987264494762050408179092191777320254465157278816992446316201830993989011855655618625191594924574602047574640072937764312897170936921178574710738635290176539538938167608732217899664604180112401275344805199825594088694562638785818605624774381683752465272508587575045442738605075414571261414888662528632736968872819988794074429646057686458673236091857745744524511381268706936790132651645240088012800316154760403631867048702829742157251982779959613012662790240029076842083211353661391158872976931881296051376356771261486079672231919068262883188545199652633680504373394866427679589340141921516072641545473127845715614388418283767790705477890031936279162600580420138321583646129295544440181025526566513081924405415787430354688075148773371086710186050072421213707926242096594202993611049376548123265053760083967725757446175946432666268709860315406487357662417965417035266046848037552078774102001339334854335256571765061925882331552092812304314861030324322503442760162201482786422907720975612755061043688867877671223586549314576810901697005032961781774471566533398993641755622867678208373482132788957184552761801738404287171537787914628388529366586378265043388023555121977712485936972476742182137381698828451524275792577439329543934663995040048727920579579546060248596522069098950709551874044093942459105134779922870131457900859347614567481777927525617378702308176311268657062398578589723063958769666601991831830448416697049536816837053241561733505643454609842809505458015244287833587025397392758532707947942779145890992993820398715834175479313804093089630625154993126765767378052850498805274891238709795708250197909579975421471110343227717419880742589410957201529379102603793517000424175547061392608652811627294170411640584824970460753810187575350338335736196690217837727268702205060828723621822121236164555772810239559054373804338334248288693640268177791972790428895555457365199316746828456668380523008046418113758318962947678862151961915979865037000836361720266418551286754815535438407185771100872350805443490710060025032256371321822815748279384465714708986825004838860692578290781896130457577439221847271983578174908641861393528252669043975080111237874846410129901021190883792446089182686207818088119214906090474970787276368318647598627160532107743090885894560527023111726062467547818230774020032484763648388966070112292933604932643849434027541978624082878771804123867091778705397651818030253623463917750907378724739128817153031364400425632282901476193749534483482558990816437826901030928071776492178985959505017609171484080986458362888028060252659590074802678561675926952702439386460953460760606722660040718947007902319537665159131648476720473588354147228405039924941119325839480749863621147780424782033761412426219061360218918564323550120492048929474870638484411891216804449250502144695344926204060323816471858584734299614469120452732879062249958632540110770975410059831862686242992781738043826273777905252200117664325576098699684838324534940408796274620553851928004554139816071439494702416438899224898652653771167263436833594719213050138389415878965301737794581952150311116421791018600650402085284379165378892270139416450676683318761426627160955034999441750142462580371669225053572755260443179801332647245639666693902734255023460734692484942750404551072908385781613917271720335340183321358457912609122075515444244742732173042453757661225327082223058091768031703634843161498932739452218587162779184025081763070382091805656955219494512130522327092663258171281103713290239528460202473687718293740292570053161840007451380271500209817791372206877804454475664691569079782754711760264881822204167583117818461200326238359353697923711823363774093301098020494171475013936126808010467987519107503985496802906484652720416872094940536643669537759508570446371044607696147259503578459440211449012125983146059748222425414379107248571374308917926616815590785541897948348426965610737166285668613536482327647666437052892838746776869219664185491053519952532480677855044272557308899811215751102029039655922803321594794379444687598086960681603763133545005865211509996288429324472492563784698558288092301450354109785118131488660267776153039739240734432671659683226025815609048197665576982649547477674387204684731662095060858269132454199915767141726183115712952981333554258758311869774626820493996991649568257261979121753782275036489816751800069650005981833135307326798515252405405648097885868149283141044495160319090889091389972745316735276095962999172740090691949419103911951911597441535141562998527611147182557565708206323922968609328348777343001938931753687139765028798159581909407308413600674042371555186569460558030183757280974618074228640717685503648565016844695032929908811164507668788723615564541008933318663022787073066295066588421997409420621097920136297414533075207225504331398974382077724826470881586080566543043292206330169424271902948143433472489132704408791653871161953264489845467895021014750838093044872670419230554729364829819000019300523992479835670579912520213500241390184580653685102231721434998133446242549309624295246998087388692695766766714563563309458694542297867939612182244989759146758135309316366843701670352226210038388440040029928871639548635900365905444430881246035064021146070063325967703930502486286160631460138637245928519784116490460297219727219693845775833136513395822044487726291242028960215307786805010596743368393943069804968058151221575778036136464598618880899587742353449280921926386630637712071326574086292316201877440882453103752173230545995822455453645206017697676599043133985815845064420221853722633853397757203669909169099654119543071761706224252480803453317508578299943972039964978637085362364375521034114671358392158778581726137078236093414994875380392062539869048026056822581499915034025686035805763760821555952871444172526632919927269583156373610493478313827375308461684583731102784227197421329580208888467186533370454421646812723630175513956190971425329780419463037904363809199581222795415872112979249286871929158823238041378803334825783339244294878275533878490840612465991122369529128485441306297537082980780971131401231803337202909476933970992866987700934706583770156526201171254735548424791765032479410073967733542397122604872083947550824459837604955459493729803599949848747028665365711667787226159578333303224594124335682682608765703327622044584261303229239573560605592313103400113882971182330182207926664771527346583952586103970680452514566408621099895762999073536943501892710066643976156646897419788650092910698164844762134822413228840257754070489526375434994974396859712181564321684688631581600433323625895697517421075232403259168864685668853425101757103840228846818942352228549909501321975986898759216660404539474075787540527156282389274295323487726482026361069550278539324090398470212734280787620188171674547818416651612585433801261369919936336328977531298625519829830476488896851490365459514650217286417283861992008850321995511395249897814159515473556918122819685039055381480965705169553885224831694458128233928002413496486071865106308485327552675161088748200601134080980250069698914405641981880444292740377012102597299040868677140555852174539741398474332741428171125773890749875111994326872285540642884720268779025696281739341142772669461712145038543159688892239789653201720426148286539417822218108650443870065920667119886345347914739159534051605571262600014097099352438410421896055355762108248858505553646460008865498606054394774388347453108387385203105635181787478618476296853943226580778333535566401461373322986847194020544784636609366538703709096777717637061677270111105536215725155641813968933230097507156128881510034075302377385411060208983783958490075107540477301036000436384180084383102794535675376098348819520481514317250172130033364689173592631344558235301380420823682159371625068437105028908048617835207693639281432613217937923285050816608069735688435957064075873670403073060772399449822010312978748786838382537095371728092003501479129807812854976568895919563266122747316817877469391485701436893696271314474584813700348203043393648794955356636781138359033579380810534941591212239898425560379864565338132997123377063625036184166925124976312723568049210020507484768719819873002719981821047724628343953883889546908473791455680448226339022367384838077654516671084395690162219658078055885938063447022846090386981202378228676510379187426155290104775088464560614088235516172705328088281239822230381003668866984117835970037970165032333881035291132130219120643703316109779008171850333201191689798265260680501044667469880936339422035106865253370662169889849095470724620231570894453577882394015033664957898144920673376789339298743231096511038444593012472275110311981843089953810358515335697683668498125262483015353862770662625345166212958280354494082963840691632124725467210864729171498775021949414069936483217620143671967913688829881431014780405922439828090773853291165453364948257334515887300511892693531425570184236471582802454417404246549939961716010782441422556316228841826379334126957035466737046379413197037535965129141407584088462446204263223314282304158278477676371937363285644045191367718882738515455558730781042489657624808179943630144715962541560635516917502419943577437966897622810461083433899215805861087385631654104580839833607248728469437054884755925793734050237312963233436913817387876777276484506043012120931785516622664327144690896624121680869680719163462511252957117861868911764606037940780830649057477454224700215700410860965961061640162946694067714532400265056954843653542946162749994333359431326042353180012503650647961732680037791575875387473419159530453036986434721461945620938375756696832636205886328945765290465532011344450877188154836223237299968294975917368966554959672503379845516725412086184815624470623330413465478183008134420533785121837767070979973679130877410595106196374067548428203752736850118624101858756421412221586798921968468068555133672982605733529441180354742893615779155526862956001034337244078855780610294585248464713488910141149506928625900722600852226602680521534666710810076771276548133759945781088660992744810359167341871482289801557999736733188115416033689677608956887900020985918688978947780815558729768009471151891428088066171434421002145258181049290559161058216644611749343339494464194350695446708414358090219863390312567492569133824684128773127132553873769267868507334546736119475297734213955609268516373116174676080663201859419444019586259093083379378937863290549532148080611673726506641986004426766045458596607149173241721792181008423236751833587561807038207456219166031588234827194925731406375910716547508746818319368043027129607259237673499355769100330652002641167468283739126643420731357800311336103980106420235459250538682729360490593311859381828547012769262467431310097755084690670467678960932540870088272119071197061048086003237999299753379773467735650913338434230105968993171836267711063003553823878837284030431039797824287482393560396550013879813951849388363682382563436105583024919164105405346329208562368139551947812413372366057935395971020352773419202920967120152706892867552415215076258315393173896380586512531638872299311706936943701985484855567736202033619569104856143536673644673045381835519330301257602133091349263331409463981614521940124904051481641969778761292987128192903864206079967731595905610251303729605183682032956845586471050913226110309913336650589241514757972645262431214140888441365210220779819152895618193270977653492890531898514314184655264062413590892326431735535352254057595722870174004079151560637308801860983321515786827840173347402267430917822662398324939925410119490782577348924257276031811244520691351076077174397899876212745091761592332787434435490390702435165194919576329794401073793071387531609655670945384841632471867941618196239005797802788831337422400253744018372369451709253890704407739676731296762939789017393556476964473521038178063435632940151222701623305310685822077179120265645219026968025432167407616703117224299504948791131998304906587655092566754831343668927817619403581975496208068481093555810897635864914185140182763822471752432737707338593898023046541504442855401349822926934658588726567474645584899113355830904678102198369186409734002913230542292282244851148278851438783284442511463667346154921907351531707305651457921187940984986884319485527629605313827621065976911371162365847249839600758977927426272371208861160385333173611230807921804884689849977284012217053070851081188545768642201931064226238303021980515608378028292790373329530988085229213542902100558060921534429743649802005355495534617811116674193005077921021122331135069141621360165285649269593613890014769662772469598869967962232261452312575559997119781680030902923626416884838926167953258576176908919580495478854492488325420851167294692494022527607080679592100454823098424483740432780782847921217297450951405858919060760867858036978135619461702864316688765593230068414803518192579784369841452410917744791204010711071099505882930497725920028305227172959972311904797182983636032666177469881358485909381816320352717536776627495250373562198108399790439613185008309755100405160241149891214863978598948915802419933397805608911756882472099304506734054185848268950495553193193445401106848159095185975791364838754084450147681792671017444039196317388767775032445392779043811816394308337059431338666160999566582154582391401247028529180671677676221338340433684499179126951114726768077836103182973645502761026621275838904646639017497311609554430704938825207638511202318117230815388258480601028645988651437314847193294648207223348938731501955333492421318312927242304502500745002192904005524029717007890112029262781357182776502846383139657748393989615615255621306854359848762278872207501263666986661802210938061763777426024351824435781407828764142059906667722152373660936558252541218845597630746781773454456893656449800561074041155705588233317122905989511342335009978477034350305441045875124586730410538528738612395305570115008626821787013339637724667332248662011866896256029749922793417009043376303951519991896585683096362177150858642857855478008565510098846732861579568516741609680698180675652766635956557464543357344193354741050442974486448361815016314116016508565465195776515808311615370035492437849154560094292971001928846486937111331257171866297948535395951958147836894891184749692766947319290388719243274939911511898245131777190968462541273124926222415945401089138414584998246461032562495834592330463504560555541368475523573387484774188126441928658025892909133465893279655558400006672281649199203664289146983302672442863355273837212734035973600419317021781471140668458434779306839445966252391352183293714520187669892960249679185103754004181812052695073971084172425440600771479234638038402888336978850519762072915562142445719762461115301967885114932239960327969446919808674224442161225274183579657877200642286316475394315609467799915586927916645952249215730926562772757470282974273749421478788160485817174022218928334939486515338551853776273635702894153518186862681482517887977545642481365107748475907987100040403289773498169390071463750460269998218510434578429551809959954975243689559870976293507506510117432574211726739975004294431542045626974165015720584094507665243362407536931043194922979368257000729192869513582840696142760079066266783700577095362651021136537257305304404015088376923488924751167158445423746244257113261887547523405089750929269761472569626596893322551401139166430444585402408805947613737438677797087291251840123352978245558087440042245798815625248789298111215000078600753620649268211204878944819935401388280798971378098193845804195879644188288892975152513510111931059224556274715199533695880620719704014158677111853693207263837796272907007639429865101046668706314347492685936747347725690948390066425427220081613443651464463790405632272233864193448417593246301596592487698756650692657799867062903805082352461196830976689157667223631273569886350126639710556070672712810772283382619129436371026605678898366457681628480356084793781871433603438634398532102921240281900600418955612830022431982638254789002697123237827205840024042020331827233134350215856048131880481054870416673912211638798032858741157753814498855305848830585698052139871189155255496875151046596721809673899410929739556645613590696880911432873607382736797167152103501709620702723867948992519635617976670706615539999253510582542208713046970329126642146320456565059548061618474908637098939089837968368076758968447025833610615467666058742106484859618860297368628589642665644180267724915711591367317272661653114211542154743464343609100977455514262012903620838494549474687209032190431479887057625704029103731387307800486477449509886403685503711679070793929516203591330085309616587394143461867568722497334230098698025075945662338075625820544766178334339652922513867609177955361236163352359739208718493476619479098860564689549662854690510954551093372237553241081836297950064292856536869220630600139954393014022825654859029442042253346983606565557086695620449942703788465277785856080476847474664432902352835202537498928346588234075908491962641653433025953881702446721813620682075584535331284456062758562864632952653426916518470402058415871284566574046824289358306252895236950860034494246749079777395407895746813301144317040558931317193333657986615301871844731188010677474332381290694966874042700233009197077421044109640457511296549456842901040778942277947443749071698989404592011839198003233921037326838522927982749645374839453916125556695869775215799135739005197379466284193649846018651393762176758023303908010387246483076648247337758955134867460196116883479274371938426679871873881315846471234237688548315467161795616286245772677506721890488331779374226323477112896601584672229146280002672741986983356431647496077950029154494854641128857335697377772653751917004947738071012974474558133442765734507452398996508034570383818696478100644606082866515901294601004670457276100488313158964508485469726096823430797614486310508907860206955877767782946052447715244847218432382867084303217585106660038153762047765109625576092534430992011979438371128654932225052801131344874543318887750057898559572210055682551260675719293867571443397690861598649759006363178788992701847927786648807072491465160848757625018179967962584873269874655931600110921770570017459230812041973674228062583562313857247200211461110157723073604351988861179482351395697447501933225814197640425299910054947169013162744182290541357814623768755419414876360552894916867915029048273904366390142327018698754517257774452821158489442128792338294801884632844313622797428357518913677810154359829992001162688614791729732316292906824796126032349375751217455897488296574199273886800741529100895228283272528281804653724676934922117715634858659489609071312108796948984369160180119936339644744396071645360917810389176976829705446281280231928059414806454600896491341260840943035978547478964163288878219662216488753826632783966330796800040363239621535707082518541207868350017316968806428498813632193776419687992633140587633830315413014495251033982200256680166350412070491653521576823487280003472343208280013427486902296523324286857385930924248179076761478903142549554427321985085050279979797276838288924869039869101102640705426949803758755806646396282942827425356207798008579243963785320842148934373590005669522843962275351741454330067829109660089150279029808236967162077347187456583680679749026733683780527323423300349002275461936559918983898214266232652088430340539150799345343480556255677189686591652683918316391961964874764331646568642103354443520093730005434557859748940677744544561782313514040136945154449545494844452517828850713642332705442609401062304991509237819627336907311220363731024373748168997665302710025964407556143288604588283107118393730230266329652667537653351649618432084840280787500855309601814776757519766691677474117871360657361169694835862957362574595359734418529716167195960876581123628794784614689938145542890530066261432707369901542099468277852308037299810357089474785121946767634171511788447167202240700694675011767469277542165652731193914592591447169258431047004279284175684457693243098102039307051982725543377540961710597562129808284731540258500151603678594511249851323804523844385529542372349455197665993177966485580509409522453859583048533838436711765612117660029632564521886745195664843211259839992126815182946844424486297924237919288039410473293764039043219465617032150225311854608869713758150936512569823577337132594036582005323867918835499704386607328043318231538567180121557164120620057734307064089159992294881542675360661281539153375170425582242851268423490803640899348728809185832719079386864542095626365852560130320957509610810535373860502664129395129569234424252553288349619719447448955555255814975737780134562941160800204375871159527219531677536425455652040150974984621731274691028006571218072207835443372190498360366076733266600029324708301167279150191124020027238713946925974359008927504739752261967484804375407452232881647778834095546394279012121337363397240019830651257043581032658341877924919350534678556812847939137238656844318903741721121782062831443047966734269736628986759282108075157376242329366405536476828977688738386986290284943751412146642741054020105770504791839715350419153581317099164070700738218729482316266865139067227637887730858127235304751379498103887244407647809635253744320887621749142313970845906413951069240218823301333714359600330416959594964178363749120348431282064924172625587293449348812143784217666746468389501317504105651786833722075000710780273250802864654832348609273654694950356217843776360937285290207357116042479749375871118699219647565606468760874791177955936201760080553504428631026106430376904661848849726858429688603720225261981831745095020289857517462802334250555787880184419808853048764089201112561750384473960094815871014862160378670377480782032979263016062942497319693863002125030441009808056514083386166913224312259264275427363282328414166561764203527170171873290028016519763599414702957248318043063582619498787407802370095595550217796266839560385989223909399715708372621587807499537259456349379971408964222236468535391983731603174274026196593981643347091392210035826190564786471799932447304265996935153069799950153452481874782442489240509899379255869724522022166014662937108100233165587747953963318281361145518414646045076359985007686522892661703415029199381503326597431215225630071737456604040499647019019129962820751058329504930944254025123180416855221685397459691355245438314654795466775122362738644006038826284891239841628106326819487080167823119299391173085671609022633977918904205172251247565094497689956904693468236775438202715549115715423472311610849995356151965002939255296700742795850184111316736195058074637335344304779015933369969534777787403672547119499963941157619691720227478056413219180690120676105900572896864873554638940001030553472098778893345300914086745331988282869848764457746378795874944777817624120658104339582381698327958751304020147611970078165195841045816217037230191328250074206801211359887398546883569963142512764376382320639659912091471455384821509437676823639216056967542942490950253294386158264198512811006999627345887515099860422684719271360298589636719685661455533362062076541713576731210188262588489831466464456585241827267797601483467940822471061013287747402390298246237244151419517469436592487876758285903511099609356991022968572531830470352425784169817435130533116225818351511003112727693993820340502707074672131095249919816012605991402190452347179443433388802432246925066253703759954328824835693923801876458690419418415772569624590889666578136829684231402713484565173210282753436288211820717431677624118973931354505611699124597966656783615502406376827292432344799184515984532290613457528786176775100758903536054195769380876022003338106428218577814619726588986195352672056754131742467724155367944111211705223022351246372346342580743817198045271166220956262156979172455614502090582452534825616829591225277699452843505412126313583403615602925673833708316921862401872594238248935034410483527719661583738177020501458640327186129745312249091494368408179252504759312833292328657354696486786795828432752206959548011229657714690329157601274240472401995076325282609198927721846815319776551891300832768940751666525621538366106634283059981683875509144679414570399176866716823671998322906510335877812445774755203669744064155504036887884841187594104168377661870430589691504843467860145191088002964488706473421743843424979943734338322056144650815285275703558440269254431192348898917112886006354494516889103225998887712663334784922115507678531207901872736069153915347438557726065920622420562587240243373997636582632275651040948145861518273587694734533596204440330527248082097432439549172238324165745394102306797179942033440544900796771229422297140774356496507030827351073386488849141938325769552238259544099656599591165351249443622670489895678118358678393189902724907887586878299166563883837138829738956001395388924058807470636969892613989739878395873811967362700087248143744723915824894822267896042852251735111903881326513335304348394921260831128023732795448215434559012189432519134788572239789836638779216239289473644893325233048364042472381510470887849512731698667711805654932865596043828023826709357039338543792017954594239927372430259094451302731663706145266923906955723285042584010440830267318174230806915986546870683398113024814703312056862492176375513941413925342984862778407328903974670735208290538742005679178381346373432341374652968203694868583345740963063103284874566245189730331129897641574622868260232304568447586295492792570885369635151466147006817624813657453477405054287946481213324573827037062297545088092161440671479231318650361616439558383897673663582044223088980309327594048622425813015441846170146624078506849940330312789916491136554091577505369408476874732810369612977323708829698644765505147054252037059731319393703690811399918583047463593946753015946188241898427868668735348331757537980894495326380007718044286833167010867671226040477647614407626119683351264106347972853941985591153959700759140667119933045276982042940811367464534505225895138582471510646283347153194021620075265433984704701241946465639839653949963206261700221703815384067199446201754771065248933142212812440772289189764349662847993390263420698758150777944863428801252950625200614683248621691549087657376283939762800809167287929963230832923677264668627307905399327034220975206779782422339607180447763689098202642090364465058368159675754994575831234906436089130690804699796480930062894874951286768133820131775137130428965765549827170280238691300166820062512917039220317635190103210814944159857557626430062913722913282421460808247495725983606026738266417934482743467213100236268594065273052943536074989919444569864385648001257242839625571463726767880988115096753743375793557021534641946006481835948855122801981130772210261513459905728511543368668934197311279038767788385506983262309472900494092417391283258734044414652688809562898092112953633707593282551628056076275244236245849530490528115444477255647217476347512024339823181500055641589361478755908517821245644525612734947450487801290952080326074881997263138498802360312344081867407953230044447890482612712307015228523175012166351537069412016294274360148783555212430061932693687438063548610752282638667061414929515143443079889321458419011093994115184667084924790834661915019478873871621520926591687155116420992029158234975653373525509685632247857777079452684354101390113962226122623358089004066827556274796999749339666286967096024279962858560166989032610653552582796055359870661550123375820088793721022948533333703781000140358964197057731772668106805476895046095985935281953993356678320140074477755403419835671479873036298040071084273249556824305911233287750752955406715156268201185695730547530226489186996620058796997875868996994106753187266901254559317048762959105292090195437332090956548508255878629027867436129433732045195927708261707137078836276209790921914640372456832076056181532051568467491221597676828352964322146163248286370838185392904453217956457047876962772154750226232846874505909694717165457694954229781037360849533438310273012462305040074139946568010307100157685666485313054406138550486829102218624557869162489753000991624987904917332396250538810093238685351113744724567416440645244534115546458221530886332970181107235824817135573469621667228232973750401349116358756266478204914548465995837112076374694904581844935219785113556247415592483713483418286844829394564329991936464385322535113474456753087032026904592622877319352462530876732291099449045362072386252283973839729104000765927818929115060050726612992327158931399283307803011030542172310517919758550204088076679014849462699020419749981478010517943029862337649376512870123231158931929700310314098980116876560559775703475863594563741008839706495960450479559270092569657438733771273294909762942764330305439817914434729402118254611913706209629946475038952651814849613873593634671250036250551131781545296057487393681071296771317532543197835121227537293029504636586444232660007194374095549765749692788470818510536967977250361618803440702594572065722915057794061940796773494357463932531312164805349805740457415954596866643701805776694790671859461039746549172986055973004385440139550195542064604341268142004541753897023420146885115557852837729096490802196888624140443523228120139552334996178461088538052111202259927286953206518196264718171918523859174069070885897285017867480795692516941227346627044607678421434471264359514449803763340339706568698829017443480554130912858954793504420897981768549291357828470377760997380784319423841018612850421224736437035559506776037654811725733785961270251014679620576532609223776967452346789660123387855459658685281574420452524050805853102443606246505375352067539732953882149122171967627123349552932957675574776038559109001398673517850990544284677642201067688559937582332051223423421466886644549535420229417955265232059596524526839427007592007057119856440589615768135220293068636535412622579875799534892077389392990140269408878703042683053015062542071079786983652506048277864016957567828745864146494651678882109088338549222226050020980524530901928195919421413470659916118536660992578748882043654256301338001633759319124030801677630426600027867042205627068081168786197487087855159236312776206720877013754167993032126344100506042012559221598150452980392457023344438202991934658228158290905630624112019422950482644667652120095888005165173871606024074551785067510457700020299186286623452777805648460045905003774972029270287915207896384476489626569319881406253460029983666909664322677351848948811898383020620513040757864692864313677979481952481410980783373045270454743709557721347546010810077031394931194695271154949378571226611937357512657866456387558819891802584234803442007191339572285191239360306541746352046406264214558147570378554303605699378930177191708273659705423706625721480630771442566397461508092454910189007483636956266572695211572840920024814192748083748226863370638288981166725165131872167280971756051039386397911894951114490314580902883145747354462573141647220328340182781261738204542004123141586662281798966076448800063857225755688540761120880506237215224578923583263975443440820132795854202534634360829870056646520695754642985972940434910701166218278959273690299918128059611726874116295777887245128301762723456991526570916956763391006363761939575203121105484321828860273756550782589677553446584562866347460611158973727849029730397675340035103905623516476280319925213479912565200968192310147673918220429524928805370450288845015152041400704960105443253087015540288168625332473488654230905391475560625031485448577540205690583689024567484401493868051144690944522519681854136614399832538897185266756322604222873618693161793687547759851562337800451181073319259780588581290579407309860283570758846179816293304709886124686889549377366255822658873752433290075118631888314150436590535094717602042034420334029775860575238492318351800467652670048072705907895715554474466387534450522877583191169507018138560174338162862035024084571783957299446678354756721584403059762954458939101177840573708698364351208019337677880338116253773873311354715597752680726154364599383417481956015834191336632823332354016848563765079428215589771787986965006183324649495132223077648150608977713545274524572512699921265632727356830823288854066588617129909716129867293567419091191488642687736031813520856681073255063493913479329039585511520044155465531312754848694188988913268776217584690520782776173763719394368671361733870767418953955240616443908225678530711616449454733057077696392888553144738642632766316056242249775490286986785332594731858508949679962516885875334940730917961499184071994792151271524379278177411671894784001470576616832796136187628007619386718827919478509029748587895598659038713433367205247663036517813610553058128685490779643808971918047036686986272672041747213800153420486871950439984652270289400370286064718384845259570441660037665473661951313760227751109385695007645601799321084083377427845717805539074406841966891069199389735695719393915606981354064799516565392272358789557428184904247770486331826972638286142272352591374587589037522390397829814108449861351556297779279072442162006369259929661143849226580807896086522031557280636835400985338256045151240436433712627342689540040730035122464214228074352574006486620556999742362355352955693432277852577072774761325574920560113627195013793735213787477761402825183584081634500347726317747453887104427585425736283756415193946530390414597932140610047898956010888903066906960664563920293514467601861342191885761804361470767472505112397097050885400796781943972300226381445851136080927539507841591388550977345964499156073833583218750297838444636286186736541099972060187861848829360803161132869651114211653171631650262363067466275631815683789301388018798921042801338951829749837589609992406815180707177189974881935697668445515041285255028685486115639307969296671040503859264037932708434491052935397118963110534266341108101224774809236817602874270247566471326593079582512644280953260142348555249592096848768465485586526766282835761514624416361648540492196776037510312353883601352909224104928684963901422836989226391786770636641725677454624363061173837766107619946131648893508541751973583044057239315269231660140008890181076585544008598032284294258998257941569001378776646892512035274567875427753560010653322921284020638686648627416601148776137966851589221373720655609674061920749051042823016017622344842072685325238070518201942681743862054373732776287240954839548890195610298713472529907662001279707884820356298619635046644222897091471910287605026973348323878192203209353520400504304833624867281681539845594474381353812055647556462246484498365286657024002061126887026754257002057204124733856231848825210936404102433070452727374749032833773446810587757496922024821364418041263514916097305767883766186682549072301237393248843241632433760346311256185067678347573461845723258733449822377083019639287028835876307994993803742137046261430301490301377146899730200108660196791464748268160083852343723264218797522208188897061734341524494450919382139481168678525654520927471688923107659316696006583945901511355044467033591814118919892729911731460824918857473839610196776167347703103580837754047105692496104339635643109633517666029824263283335123842397917435615605418362964303399077017409104646214244942053429394474175563065453051436132042793725076725230054587968141436597737122734757936658722421297080633172930312695296294167439083987859323560990506766334541959600605443532773351269300342116994615154566802642348830199209722831585808909411413238723748846474669855948229182613620518515415400377025164579549140542703134301182901015079671138155494941430997748714222023005095963658506906377182965103421364097286703069778630961731025873352815720564591111667982588198416620006408748968144006235770121185683233343636904129930219637343150394373049151028925423346517318481763619250316204418636990092419102420166180196745179277610902977554404825510388066020435538855192949674843658147537460641036741670496473623190602662505836933933839236944758218022217062253938578766912282467492846966613943371205761639110390330866867812419678357917253734675574445356365970463317712304691837669559298236574187172676287131631523314372386667711646521143050170592715439292409664675621619747643030321919694199443947920917198123361812039053713873664753087062316401822487010515588268225784797463211251127616917886585797592823020716248457385477355191375794405648384530052043576701551489779581858132495046045803708647952111630922234185086922401501697705606246429549777907705814776580291111663850399893232452668617766246461443726736110782438860217105734936020206980877245508191219956825139615705731045819221235508011879949671298771367556873419529574110703334028137261607173539589439368810601523939106907654718210804146520023589643707429154087660343964752873676068845070828560908998414545577862921113632110716089478863417829520789265377458319622017885989543584319934734062418277592945200118862753492920912927834741171101147834161566655389784158591826710606959736991288098937848930018414963125885803933904326886785865127445807252041393191187937080958700523442063830256923875030845187140948071921559056360982611518827220004244562381783618224804883182145075900525485766778306862543348997999137379691394825122520300441438313624484420976141031244029725029863694435450635190916832327468983016202043502291398742121414710498761836028994165246155885568991694802110528746797008501625435740329902367297725521520009281538743222892603348733131754603776849459953087098771670716226182475810524369773912831769018531414764285244346669904030991161575775784532665244830255056111605670507203722909048174891954491657352394506700156799218195723122166706273407546658736074781414782111312879589478156953533612838094525956642911805618070249662522636656812472506365326901899518056960164472500302304067563698729697520257751136626885743934565378237397090026627045188004826593588544391754289289256810075176147232211569189974443240948650808836496340708246559064218414996463558680112746881325889766443133235394352796959150502068101087761277651390692097145142403961168006754544373106916039352648194842247358298177267228082563831387990469536415631275233115864528830123582627486747872488443380624508836317559606726406375439966235569695280812124086832827233518733382431505664018245641825890831588451830745499909970362349856806131258086833373993908842642599057752028088744774826491666846873758955951952707442723164399414858873413372955505311146324361582398981971497516787324337864605028835273197102234285181937831307157058431767226421446948774930719891809227225913020636425752764966170549675898482777451462522005604015476061093031353283744303526417627802517381064652850572129450389377598437447831308242972883642310754139817064424945691164419177796478983230173752331433029931816363132333061520137820654951593921659622865363093179676178025434030795940619792102774982302804139383054734839124339395515139342180546105604394548406559307178989911358457094055735444791684328723534524986604948137476058294585130439102482536273158842454804311448053644577738788806015106721857867856308092828672560864637366398042557174488884610479759908963128448832577970093975613712195157192760314664915740217694960187833717027221161414754341070190802006236622781907277220933449444935327118341887410850316558747638260877044745470939419700714651963054876931407302818324853612262700082395545074376282272489798256707087336329156309274179795807428180036414808507890741061936135576325832134008195893519028982885623106892077548152070720467427323791756655930022677851094717369132927601825104206770661066060237223969179965864948750163220287612034497570673758613264115763764634673220048225886722316450627529828563640378705361303303829320952768667403677219160647851721624680080747314444070023621206752652871141136368980853778469919628390595700416236539258463234318533375189336706466084237639044590510753162327950012234967118427336582244089532164778327602565877796344927721457207197793259826266304672547212968748209097028438115789148068214486150638618677310672876676474683275641268897363578700291193802101927659428395604110891794009726363893376998362382584004071748718590069418042641359317536374357455432061215650246235850198836722742147398914363623437371665019321869582751774576117225640089353641584904503917114530397314583084388782933002727758411846347841744358652689218857783376937431897362871533834557792881225033448569814510934191497677859343080880666207107450397120621111084641894320523893625180208372283368441259098721608564986419571204058095501041837346825714282784574510702714742683020285566884649635814819379059455803277875456641564764539551684351526851466941837862880956423669845819313307516080579741931873270178542528992211725568281572829470671923133632725040295219799228092297522845158551757369031011350110277626318995617256688101132481398937128743103320268737641505004190291492158985906166304243478502544794869740377390400791655493528444787958260585273762577516703722136401604295605954026308451727525312637205989242475581444069632351076432718725887043140370187827023853910329550171227388455898619180613905084925059378632497517703972905370759048526384087905043265375733537461809951603312833810165177052885303592793681765517813759315063242393263103433636692087660793730925390626357950094860531323694817356034582753831831877168219504450471901736168189285008710959595379383571919831876229325916061591757048649879088699770898491160969289776670679508850909685955860110994958925616350807967085880832943846376537550322501559871575679214387083967840571684419369854651719854268709506976465432782620435312902297206245079733037066298097756744699237672966478972164608209963825250595585986068156324090247359940834603177691959411788246254839022199078773822886875710773098856823144377956354830328787782412873361374813361728765802354625589758295481097659881899048556927260606266960403300587792757071064614758541202165270427094094675232908620059197233997461537455652560552426973933291657752718427933328363811687907832119167575567030158233140190260894520189875187072699356384731065677690143226404038318908364673124338643184765496063469007239134190834628380783419298485671449444987246649809719640854998336843479266536376709343202176698321952837284663421088525304973158300323652972994694118675138409682055768632216529506477326034510850076608962033208264276024040902423647188413006413680557704278633196953218624063592439914955720972944282968565903832964466438270910918776962421549272220528058235943059664499009401336991832938683026194650062624289396370687182086694312806262754918183866396503914940338871686978922097500468449180000427406977502022394722665018900889266932085227415592410064204913265027698512917895903022452832849168075894833543443545620261786898553910305214750673521744997733968758042913965194257267635395852712900101722085132693288709144983412616324051838536790259972255742189979506153306325456155248584181924433882374158102782295978793514466474134092562366779427275670669631545524544373314583633629709405454891900237981396685728881849661809162946829384862459868788789610784415682642544728317733767063437700321428810970546186901564986644306382081271071985685927268759307673217340072245364749119052244901382465661721395563079255993182669608486049339458280393773848531331381192504608631524751790746589569944901976196766853489730825594735186315425009621113290294305287691614072777749388322921172297860643782141326800535534558137419059660413782672940418788659960486986865684764356212405157493546397454309554012797720899241949983320395015509677156873051515313406563434833821282470434628176233748549304734338117561538108014292268479770416762912553969752528543175261256829362564263207037777317409701434013275551337512177746127574860114524743429183499637017264084670053839598031195298597206552333469214122073754710310429325425427179684769275982837935475163494035401843080603210029233588119508114459170166110771788487067813753903328231712965617895985118294901012181506077028573534623264649623928191402993098992366127800780281743660497433376921145283426277401967141021037062601000909492551880256411754648142517118841120786255887230302047709720071190820380160054155774558600567391258913570588846019364518708289766215592262264676930657493512800330093282845034172000669559109719530176075538548543037684867928151774055307125518484109202375097968118463876517146439344071169953109826772989418297955108486857134804489807081288685511803723523066691721569348017320526575287742463235777539971430495432334117226090017074353634242199932104013292028060494454264504888409216483108918505980291082244385473528064561281156318163291363648123603853281002843795898653353859924069011568227817630220140984509076207379054380243276642968696549255114086539155115739236199377844558542863291045192540666258846276711976346729783618983827851574231950016752286046848072615703823895256840176255244350888524845630010411851509441689488830754136305723068802139520566675078054745406363875471686834887898881510514625384081141731973611888053965281592846431018411721792795084123988417395017458494266823370787679222458820801897378349336050862737573336169529386739894589129211618396013252720423537777233829976531165129299951142682990473026673165365397587912072136024248666808956513564385420418641356624091956569345397143577254956772807297683015941905661063352384626475091109602726068866952534670423187668067808323038366618955243095694713964834449242705453855961641537148641509034961345067867682452900188825740781948371620920941338178623280829197810834594134378870784019967039679025849415263492183591287121707100960688844482708423969150046895033840245919807372978354794828343089791372103507634881492984321862757841435176181113657177573807161285209105565016189233067984448464308655430955408427331011928894487899662350083651478823285066150908080672165116574076733961063487984403824202195833805006305254547160687615282089864379153752173531671113063715573457534203550056434530332204629768182034234213586830932951170736605625747305955858851647456966299897837445899713807474822025276389498074425504569047572961272857990870827245137645289581665307313148329895396743712793008855359355404019119258168871899830427551427035427245016503226964118694118164089154028869206863535845557269241626060202275460971005469926140580767438228588739925273168628771190493344787328751002248189025879609073801550865280761369968505359149206754939786707466871619385072624034611893851776030164959546482900139426729978681098874060569225292439498468341952286615200919234668952429623537264878122655864138541107255967332606687118288648396346967055113533207151560739644043564118481484419457845418079074462186112185180101576144299840996193383770708524460512792200666981635280211917153954391456667863663681161461714322702285562340017634958104851648973578561856822908922304360731956899427211398945490367279403432673093346599508115921822553324029359336220455245327930257385048474806421588919207362088778054381109238920087167185675002568821407628432664564737960051481323255361724659328900211047568346535678352280506939534811710564620586072228389319743471753386839334967591646447307021006600201951329287120819498618081805900704444222158495010747178002066861342176827186782237996849312511402797200675843037475275547953884629760147376639052286946101431886739799471760010480589186274505719579964870444860109305891162912151347001364398277905644386555761401922126657166058388703636580301131492760509798564244858608739391048158880533434104475644757116494967026626791823425312321381096155234064746148445977743289657922922013286395840899998681574176270654554545844853060352287980683756088625265942880408015251472825988918121975929805641028617099894866412225711833008544507292052468095179210003989607845140651524081818301808570270193738239993700785931392762826339038088619879938393901480433451733740321476020002456318497722931815773207308613429875430797751580699781706052979037943917210762721954310086058603647696261717325201841850941557828336845460767509356043866718012170637056356954384952561936366622380882692565408950631040696473232844602429678839731674161751975458683243043709700343771316836316882541419684495123304676495647211888520092949026176604152791298821263589891933164172750004884033242369416556071131105664173395078414556811649334754648949583097591277956758537017009627384687800202270327428170526545335761848250712652244500074887025724165822233966124040273611469533813002170449298818377150097102686366918540456696802962786063566408766570729367842613210928938052764968789872055905386401095912403908226286556034815064963498755066527486696605453246917811400566762771070007757414913112696807542599706025784741914189099725211696825338618404655029898459141380566441105121425962968932804809088689932207800761122125542176713041485441409437505988793450266427533992394324979331279890731270220378363457166854685048468525705118868781549369236279969936327145374547810602364514607248359219535993421011357164560057192258054421102508247917098816529145190788669588771751294290992649273499623214354948075574717782301585217794031458858242209195320488478234084393167633774660170368323329995844913559948884142370702537461000028100814278612141588305697054701856603096548400219719205570488711840077952362505549621476613860082450717975230068415453659895583252426632684088141435181954611641882017569660159611332844903664206307784472534883266342513171392628475826165836211067070738389522703806404799939469106685140340168022263792923474906354635983122826937647535124074593487289337582588787282748686206868664671659231576384019957000850993907577521111054578485295261581178531604721116665530605427070255747388916874170090212796474660186955231862899427801468787755444924115148520834922045729117018145502381372852790907238922939250705625616708387598716277539806787925237873476705791649293686615301836965597692133740000634074536964418654390856114972226437692623823089982467412495615223494967634584857379509210121554441997134533017421174890026331069823964022003655834798856764302016142140366637535929480792746805099991883725266920096900878840038933261117013644458454605358624878400697303302924430200799375040715709572587316217641972914443431681804702154017507507228717964516997159124930453570946185238350081904301816836243758570772184529422035785594859118138570536137113778258084934690556439294156062960795683971666447446921170920600711594464868178365323368020272412318490850355253119632560508227501015068063577085770162603816806015383179881808831547848291904597968368823934303813334180953108143432459110025953892016721380861405064112722379585131455745364600336585692613515759131446885765261251314532450233468078889028095500581083368164744355359347547717437168549083018460170240101526919534384698950382328404800185248553110533205145954972408959270612664135574135161577293471089028147443620957742572425389995563937510519160302004814181721559668321159262593397943369625558693571193154529253401114530089067720465000121014742940213618176849937177797046121310485091097414550824208005998750579240794660833656693967895504254030639559797168358621458884170787677610275503507176613004880339807669129336745504067349353472870758666524983607325654884126762043672039976629598648523477966857721329849885289878543147951640152349074965924999480154642630344660351901218673955088428139991144325633146217620024782045399520157018774328554888499283822121522705296198126010552803584954097757941910669048567723603755733757895128143262566373633905141128929314500860170153761802686779082955920352756878393056763941562351611380154641818380326167209256445742338823902074963662675410160912798324190672157313355365610377733406694507449315258598372758516618774409851243770799787601918447658374202338374248223527397378657416058411428743039817830387391357491101638186990582830731469946327202036340304349494968312350608944269542112963876839133464946466774022749536201679028861765404083950503556648244785108613193811019453630055466263448011555535050329175587334840294403120117715165626603780715482233556633814720218977969717136972221531883443926956085297679868314814783114806228983350913153772994593751570570792317791365506562610489467963482731467889626273598891934883711181224922604246982124984508621168051048753801667651400131694277703406647772780878393474366274399230569312766556210452351891039969029274997941197377795296797442507279174561076510011161937844773632510740242216162995558144724316573994179021076104215450754960741868902897494344877674303406772138265248655431295093289528330100906598805727931146011907473736368078195524054463058933594772458351048807822504723416950006868232962750715775965959959270485486884559893769178941707963662710919652958198735631587912831198478161037131707328699608925575587955186716202337793301755064729650690893048303204999699883086697755616496476051207221756990661131973342060582214339125128255704130682088232704944495069165219065216483611771614488709120891997096729617088170996277105378737920659611526091331447554277676874991748409367667100585138651558718036175564364119934445489169744934596528816989692589693622800511396110249232390689679616105359307791653367361976255390059474736870660528408751480895922428143551878435612021772584990838606671455831312554646706577544488775240326941866245629088087280068190965109124996670231425706788290253564900174364303427364201026800094483754816961646828816444237731201963662504075428573249351373676878531879082551945082518805308397018452086086605822020231615289950092658783794576061513977855542378838924556641465908699380445228432210594826985575152802361414819977418821589365874129701767009796275392882964443675838703228236688654339008549057031244627434855706280923386042052694764881364121584579990657482342704245617509175688160114839598717958705142498919817372315877180912324049307000757986959060298167931749877179129255737193541946190146601072688405335424071363055037739942993871305179411106955333759448231175523956434922151039628646918667909247243779425993945741124284884181655104942682718285827575750751767286485576978462538225783323232494274470107244957589455867842489895463240259678810095751621959185227287690798370176033263985345326271957266732549918845418610440673260548010526887122383194973560194475305912447001884341134344176314392062254633246348402428357369668136755563359032691139988093870062728234071034688822347389853625978304389474049636946741711047293235579578283167855941448898996211222956078028019367029745744240303573291478449442288339380885665639815202263973449655020912137856461501504933618160264617646082070522852277949618665156936845198632896935004211544163668347065620236473935935938682708061545719274259045087074865038080769959452650786454616970603334118883303250016079487237468489720586882915384819880725706960280338456892104342762596689716615961745202781666151124548627310033822718565568681354676169432881191245111386743383417417658614920150859011130201432956896780355238586226859839457266919649526516874309589429638124344372334161984487559972345621005888404628199312418728537807216590705680710484030811607796797311787379231577662069312542960570062979733379218642341347541100840533233194045239486883967308573778936905958587082525895900905876322834219665414629136181683313172420259747772538735269367049576188514244933490444907966253151603850230307240962670164821631559456690301736289528443142857308760014109145967210542452069526588168979836451891022143385223214447730974357429240237770886555879845710030981146426337093662086102578705416320661449634296356982780012585081954738332718333664587958379281203495315515476571223793019566882701341797122136694972371897749125500280936781795851381539667674683778896327143376241521376650739308223065299642512248224544797872863976034925649041396763144500170680371065465491251909067954205114639863175575527910481498503620098584388711675479014000345110089559394066383037074885599796035559555613036731950215548353969770568053905850979017392405304400624772084720901780296049368365837198388230930844385608561550693209242628469071516927378195220266741047708977625696845932015706691989165794942764413536217637022738547007312070658045161626804529073324932188085797097127246688503836125755192277215028169692013807806363135408076351910990959066491319828160499981861008150234337247586437839512698895038786536971035367012767406360887096853894573781013133638724461463218213921402305241143822667203621057445461507167596997352420034280902541397222902695049351213624183417920060296793893360104456891456029252198530102461843831207391982408131731458490140639727519999165584554079762260535797867886376412459532243618836230514977182864734574677502584496930307074933099820107296627381991257511298726008768341239895623178498750358815865243510628256608514636954995318557007823994602787640498866836818652500952460305371447149714479861546546356214996268380356823553265389708185184572449622450473481148063844456814481049263805614695566221526682108985112543340780292000136834655680239919191238486604897591032794671312129269357001727738630151309619651322561647930450606916089169179875794535147808060941563833810868841077874607105453362332873776086930894662737007045964205283897960924826556110345054540027714648620586163639413210176308428901921100132392078594231678485281918980699690916960857581516562373755918118327131016739742647178670519943877975031984448287090124300011091669195108945888118096868728146070597064154834482744005194001907298721481303198631140394043511347973627401945385243291194639999948940402031582019373725689418012220681385118360841163759401198630128454363097991894372851801659018667836572090493005766451517127769192241934937411491116393210191276141502033755952836065531656658896786015933635238962346287444659712684490240613376577750643866058289394883214711234137687380609929438230448960033993630445489577602272240307257132760538506705572347735069074604963837239197024261657517994747113120588085790493153672341459752019909419043965557901082014903922656760195847548782305373650889064696811249059082871940122293481288177276934261272220065346391157250815564837968373092637331225377503185153921196074813415900951483407262376295625042972188231275962493600828690031469134539620734234561119159234937390019329742456652664935273720992306955235930284940209171001084380055961247068705323487112568887079529244820579746829524745923362234535849053075462007740451989495256595474830492519739439176353017862427331582610308546813653409983249313517186807917091256488691475973656392423674368613491733369700050378359586964948634560549839070679076858777417141099643589203958720421319367063928548801125007107728602425245432022127256762636088208981834642071165706081711096036131999659117810938952519157149931823659332383931550095447847550859650107654192458980326113657265875077974975514348356227249696436306379026783024538477010662989936104949434757472624729832525245916120409686530289618369115020937694136797352607125177695909565744609781991874093908739017019265127835265684659560688029460997611502438414859462073000939820101390268701583080962484821004435438362842127128571643382882965423671651078916967800505738915066888953649726681418466955163781624395848480427905004920613579028889560593620124415424226019366916750950413765564825106206576041931031733696042512012236870559367366205818316959158558762884666702229132272647230157421206763483482714185072238845799025914704950102444796703054261747718796122158522971414825042673775887965058220630472225873326493930344325201666463678285287831659374285447860493039739587015928616712318796027329517418761731176868514403375584630000165977911083439089275199105921319642059626163320401382970424198919641882206902966582565076425983442061255252400179019575255877248024156366519690317568823143034428529844806184366436180274264075898951291883341629957055751791523470389338846838330906588012050374917751946773903890989695436557449771047591273394372673237627312039837487499811992274706194795291624761983277477779961046528592494324175599893202778296787379038551323414779457813242654747388320511885657313652576529167950900097686860439545100218524741083618049438305441608259725633652078006005668133525569903441799825655742994281583441994414647516371916992727170660070980838795718527739118934912476951219687079620965523410895397260822943137599904367231044582584051800545445958184334153667535023713952410538133159729405517097488831774716335316741810023245889484306120785527959499424499427912026156041017108618423118215377355600708323897091789717666807350480004356276790367921338059981772715446377742466739741597144121478631649300733624841400180690350163733383853613639266739478187174425139671154911292022913395971831945252350688729055037587940795710120499328733426605005419589025315246147008624552088278071544467669382117699097499887678145939753726327675609585497370411125889812220518360143698617150922791771994462842889605564588739614775503170400505390883570924966736480552037785852374469585591271707080595181389017601359519713855659169322615478412911592165620961472214466768516110097550514049665660753471207533478161148957106268176498216035347252494724410859407509592288400191138208325121768047327846100861079290966287128185111374659668063886769999451419782982949807653722431229201142927905320767128895352923853752587402759648110849122394347685865320711551385787164522306254402307554210980969100854001763762395975081988849315166979373704827286147050439105482981235749120508341673367517249229292846214553982527330799963723541953960997139242952340662786174537013286623817062955083948615422910527933609536435007282718338127313818614114171046515979190805679314640871076567896330657095215134861210369887242093472804742672385641455476851861870359481512506946014089783917441921475825399768798343202240801643714060119179722842661301983517293230393222841534344779879867787068197411024537672566797167096298849435817946946627368794386624558761799622168166101217640349059288991628474671216054886059076664986031558189713815310246417181318542833480424665121190247145491637843772111227568507334017890940021292196030458352236612001379044359008057314800316358378551347176634549056971102693489882488939801005078968222467343518900476126118736328217163475551969822717110952056923007179944515092445118894813006511009727244842818071208788860339109072392668030714022692828296661706305153453721782579724395374108102632178086681123815799837127800175039809155837996412034719608271562201752001696973145577731159445012684807737115953779773033051436716492907294343854240493350986603764891969868671855850885822112911050417574507571061271123871223229398588336439462184207131412571672421749598078600663782786072962960453849522922128760762565118081337338702311903490445450875771947221948042070510523722282006557754811089638188799337211210247441415845309624464396406940430504488349405821994796896040914817857913831173086395751489265092417570969586587899067335128127124370712494647519173264802290215725157244910177022116196161808270057358697894186130973624572886718869328800350279533610326027578497329072837938530476780684677586530559573701386633208024520923438589725309108772396846206981021300895624870473271268565686978482546871389554944983965635341737918293927130898103339357728923370609532167770594856555279880126577886138818309762860831854715716719738488293221920199230101722663941566397509906816173759838184680889021793283371629684146626257315727978798724859635760836623420812693960419240728896037899733464469590420444028499834772253152225795707562330238762859777678715369459755958727789237941291697404084859249399399053890659652335379231136060218675697724747189620156922949538801524682899291646920041697497045420822413679861315124114602093213216351603747161468636394195581803802521667170799682065200535742049398401309481686217593550131156088764529151723499132495467188342475561584511978807468523444233763248708897675950341278000817974030815033708506293241134775130291489916441479989689724374800234606650007038807591860083459481602929127119753057397311364091759836273232681075871634716709503399457825363370576373516191408392631975677465976987675544084854885811452850718726173521558319865196532076558326897927966890905648512939408211377568794181009250011871476882972014621832043887533428149329909863251426255114290158481640171660292160840122578011682263859157422677771436071698593711795292957463357066236530079983344454177799806146445693848358103592754205923642552126579314919164543633616977504262171055466962743645324473111997202588982724087062636398742684535257285365140461273224726870461738203885775240465789630907024952226855621511388297302553363461229696931876413110749978219444880097354760878255121724068504322993427384444216974725148023518071682862081869720813348118785625965169272514420769027629273756880574473562497306712799287925204223028320172609201745688476123832833781814624307908002498521944261910501817321459163589094785741297744535421148361113415145989627028754405145538674569332516334497204449493009512058339002135931630518080189130684048405737130721197808306441572196827679504800534568547669946792603152030530498840054210581594532978697056307680948914086998466672253092292130219006314122000631429515689196822590518709482201713779750695612022730014505080409988231515741891039491970375179330126182773022779572087339468943941560381868951412682125350006371125434088834734702187664060741728357637181976462520194908707094809242924687084730000379212809191765908265004117101320330243357835585584751865790549474876551606331928247835377732794590708245980153377530162808407150122061684053740165120342640738347139431143592505889504472330529822810829112167768975282191309918876701043619614462545930587086259454682433664496676876497033635108504225664660684884145170014786518831972709804967700259257446348976863430994059796879262473382539685880887034412422990068609990379097524776270912645635538640537295649263778312928944160767506455228326759759268728353927727599773733418278829059507302992028507982652360816454920723036860261535943916890708054436061834706060157798435649783156679772402699861742631375353839758170008244095280736182063864913392277439366667852473726842207343257346125662593955507824586612274764668713006647837949398701844581034966538873399963058313677051455708256099500069299052966860891137439296473429362828984906653112019704130510613662102512439746628160735040968331359417524088236127599136689976121828669475290786424037661398208701671512107255159417570390469254574341783292160050401188982442248307309012921305532250937176382467224756082708537052258674568546821239527148322332052974239737241658160793323534887733848340643165474946573342877862480708186085030977283628556420781284421422735631253286074593130018251065214080005752538931465906148066107613596410372679607890707237824765381188666229554034521815745510259331457831872538733244380877917930366454119494304027788923510451137469422460038126447656248828167154204500469592946211596223000413626594911443946266576952007205094306905066824867805387272718902404130151063760440066534166728676124011985846160142698712198024824467866717623207649474062946011509306871053265270033916474348309916409903262763628647549788483735810959695154115328943602695266722723456462344263541405295348804320125643792417851642766219059660378239460668651431940401464370668264956509871358757801108866886756096097037853459691816827828347904477736107642535019534011797808029358715240352972642526603856625501276838571713823736117562527374246250550185568369942601351625498942447926089178862209182954703449757529854881122087098100492197465274460527878327008741196410094243986786001520118077317710012985068231592585274752241828431832812706435731629944244913892998709126560745231501099818346193612428904852274397390072036139109049841232694765794221771760850953913170352556665329439738109031989698278591302251141519796156222096589534569270668237670993482847988204391085765072153979340489833253021815470912999910463692258742131436914762878672244140829051843685057626591160833042753381204952020795448705558204247314111928893619395959036007600686976078768151552875558852640941106056444994313980458846501567041468362661006308288229201718178730527060803560453094402379183523967949696328541394488311701672660196117747464952238366433308687100739497250696216919273931540756743766637762955026685221518315854777752000349901583113159316312059305858415839249601040928137788322410898710010717373463811422229000941129720290872304429608295978114260262105774576386741896425672333368871200721216216438058741445671951066478072085571904607941906910243586997005326692385100823848203489238168193847856727614766007793864849770031925074353717344112512847794312054612532966950473482239138394343859217903137211461919255158198463981104420120436505907370407450901755909733738186276871920751659985059078914220138694485630717073470237313806513521126303331459377809211284562603856818929893034936551626354032420818415405849826673951759778599361400398969355720286748417179377246285297090018921178526268233197272896685052246744449192132637312639411023521454791983286691777503427154825568520398137188442332701269661851914077106406167594950957204782030341846726837689834271751823102976736546916903835523946617699271408636666999881336831108645220879228994037748225893706665750891703968428721813418806035520629038606900743607203979500827725325221116246938290537162410236901972241158090436836773122110287608352568443145425899197071832099817809452405190626819870351975473496975908904200399941892194747189047621867640656553752723987819844987173668623484443441668630885275869172793189245195280553155380118347410886875751640339002292647373384815279023848885884676548341481820014337807331747399681597190446353149123929735992336421718034623081861637800095194365904530284459532875498644819348461930145016805247930706020754961764127024168254960391509220579699290596861107191393531480221696729375768892955638784825129329122738899968675431517665971326211892536758550433359416089539653201440755408602111916356928561167816545100281136558757523684630505614237764180739498367458798620384228965105264455919975249160953408781433981204717622732689470161008469733817417987201977909442012053281770752328808809901333184425626201956434533202251774679572271864405861615318575033090983006602675176056433608607675721635520243074188661814272918333137471976798606326762908479639868557836453840848211204244056837780730665668260029197941817205182853367181171445784623632661692925896993886938618520283569427070183849849868756052878694647750417585163035408627480623405558620046786761077783920241984624130064935375256285019474599459507515634282082151447441748492377871665996393460313249906574246912545738438213158572225174568524520706541965724707348185039036755917678279944485641073557068831894575610953415040271914564359081370269866390945405080860866571397116690055191352099769537575329987720689761794823174989383755201153914354114903278986154443142070661106081565340290797542277652970733823077841157127027042913456242681172968998841738918610812543271545690932203763778242477997122920959172369929198086226350975224385121060017094808691612910900872118695883985300810682153033256113262977339857030738924341427595228610415310068590039610548321152219877989194415892694429047413480686688233154514345785514693413096913349539017077508011121365380856920113386661752028356019646868064173452896355734058067420243593397717608475346035135178546939948949658452411962132572759938999919154229648603378340306921262463970750167048715106509057832687320106485524205764908936922180687890632315872602702111735621394901687802852772925797162446397599090104890569906310877199015725475137261141506715714232699239183892317838705662911441056008806148475793674289587745236879534435676350442317379437651469994695301659175996963943930771937583454625200582831460310606499768569001601331199719891513268446055408122410242241858200130658532006984456230404387485174161895640089423217790505435826550405963278770770484854076296981654524937412431712283920578826357293435637600487312225554075427172838441127956000793489381404174727944341677537443280361436753861837991848640737941731931440904562633210591248362870955930664900908547468306198279985706349084472943496837897673453566160484317598982404169177647607582730245049950523510320527207238583642125198302863126035144846941952705789984285052124188926459670079446484152498545272865964713894646463523500595598334475863262966766598232518232258498604862731743633464552014740803541957627445369689901531185754668466936856708702309357172568178775031485292856784340522975551394238397429566454811738638026660266252509961243375080165555189737371320302571633799688914141106641170712017207667288246772563115202016740282962469157216449274718702571271964549063458763827282713345838456682449268495108970273672165034215529933049493164259300430066410002018642564394527057100070964068277238795580342564038443446966577767575436851209433028308905223365634870554920666300519217383760089119295727610875993583916782208034263394093379696065507356299587717759936614447136926808776894595877830105006397806145938590058195201332386698021075781883945228675788028665862465050832886337969120881750305079112712672088070400609707880208793663098051349390516164798587602724052474457174297212596567517414785669625476504870530503778267230698470188348197757228459124718605060733316198633447953863301216237671330992754385709705794402100584132365254671216802118122759972612201624197084619272775730055485444209347487552201650799942242539712151769624914141212473250528206358915927781549414137431360103181472859808468307444399603896334755818239257070048633474913599629605012803075995435982187659764004946891110436527255640218428057157606556343630875650671272402774916953135725492961383963848330664223839715370231003010880772742713958035786542518916889109274795060102714920550700144744975359684255617165741541941453899027308724531110374838176166836685199343865901284962268064638110360466362265811242506020968929869612117890087702417820431556601032967292597400885246904013827525754340039825928079147594571051855248826092325429055831037734935696416877941696512774507945903445521153520572009403551613117787115430309410784742666030923435831479407532732099954725122520090663884076154580323840369279674791216950645121543882522554371331676685277085184036080978142743834894159794467648513027932190989025959792424224417992424278671694513756406573521815353354259539307382251291369355628621710117748653058667705892471868188539768571613655113692005557072489049397886257891479179059611821837680563639359457262876540452849061947814057439849908006458878066565777185197766760115939929752340031396167080354190962023328668271295653560860425141031243661905493017506657340452431157981811403922141598719464310550808007458436143060578462258156929937688279026359196547924209261938188377801948284466323903453806750890713267261835044754365286475843520447397006908461897410170172466985571474483547047822066844127163947913805051163396740679549785111208671865287143093493237629902598192479641026569239830220844487043356047860694928199899940651108490699404841631816781354828815407902256620256695876299655937873724664384193658139216716402682862938741439111359876470332166513237630587159923416315874433397677030426688783693951688294720739841894586609153122886393085851791110027413758583808765755232605187234008348033463902287453559018985771892274848011731314084161772346821022741526741851844645637483111833102905039088511129938284846461461929426419491791122730327512747629786727866818241778029594138657055205724081277683043507098775532557113058488840097762681970944366927328569947936342850469793808695891501208632958380584036165443972791321819791753747525381202644037990572284084931546533754595295472683135465627142870926383268810088234533043137815434360004666232195234891853999298049424954111256262473423883744312833192110434168481018457905238140418677114882723070733799557463935786638332661745157089335707559378663374415073821509515800465947057197127528349295709583180613027472811925634500032951473177626453988972407632831408539208187644407164299894633164633033002672211069759094709068500804048225062121375654263506008376672959666986547743946666203723144048844465663482727918664290362430585875418501622378205686654415095703079136278628961848206213867707218829732821820665332702059735361122253011074948451223540840179912613700427701533344832386611645315238673005159659549291164338677090317048826282243392485416222465576847678456310256178194430706737649576342666242006844921735210323625853890646535206872873229344170188695791381816107607836494999730888744514142357520450667940417372697669166371600524636525794563547091038754137617621347338047484612263558714473983427298274752398710706574069773252490302941558538849199723822099421358842830846091079534055794814299972760160508059796017205679228105422825206867484864775577706665184143243592033930058811714749952069610931334372875430490656707543992432428226845983845042539107672102980090711951307714518341940034471614615178250872354573535133359403639271434836952604766577613640162810395799162793857008073793508572265760545452779632726002699734729624517961484328054198136122297332960529254453367121503263582653771848843584101637464176172913253400587371419243704755729168775983849847554405806922155336963832613681190209489702962023515175954689890183451421202994333149492734208218518414986974583521248826126080285846854581948537649869665621923793644612013402757914565123793976534293699503041506201011564037864026439965611021283759988492955907180858752925758221317299552627255023428878834414320653858556192859506763205976642324069736617605072794761033765081466384563962210425699957543349217317635715976158462563140800267409766604038968223202800409153379759694196068605752857928433064537812447052587492544692453527735462251462621215410226965830916952167004215710400942439681943501309335233511320514782458750622072715898344961088040708903916049086672865484937125131505479659739141012094654220874594555063659028545173169749905194558648472678743224345695149731816912454528391247811728259369546010572138267829860609198398089574316523566388935156427088735709781986457941089387638769356500087439710782009949704871960323131189988714499124373592006377785184866695550508023410630130511614800849634612047258557102095225381710857598756172211175667139353653035093846343346690904852284740734630762160179580934373539145946062100898761527831096252026658730962559706455783413905496250011137094474205500220440906889409110471304581011761414432374212414231752648499917210378427413500549180209817198873638351661057039701214610414953199208616953276352150140954090364618319944668975000958930148874886660942912919501481044854391859387920614219006475615716368642354783924707421310988921098257786983268804020477594765721802309739719488859911830607036134648435212992780818512020029139939031904559200446786105686487243851623402313245372326456860247300800735980487334183953308939203589296966096472070479640794530461216807019090965116885409572401550842313202992230077631647943072826347419382188964246114419559701358614665028715617200134708430847220324868959286794888871752466607781392198164412306139483102279908678542332403491561464148055984755065036092598342827263678881759025318076342224552765597133128277268644779395875997069697761165255942112743076318521253291902561732514786699565897067204759394460034058397522033345806390569657980706316009169887038100499709242636588343461763130128865691987749252258631452775613468109259463884089514541827300933633646242265607043207847037696639155796975927178538605831241219086562065820481345984160026388143613912324124735520568698537629142796789577708624024744601424494505496311340004018959970106820762460385610600216129418600305561741074853698906649170449589572849104236237932956377342520036415011802666789706594214619255522935034556968408332313679308921976676405061013161863279136138007864689787705407598344561329458526852177435108652951579001856408384967798960728022704561957419100117591505321866567400573753817936737315231930886983347109213801295980677851834256671706320945257461125469183567437268853896101632640923275704788274064625125524722454160124269495220352327948678489090396177554799249205228462958840354745756746035629212169141969026369810739471234077799706525889340305241213684731379246575897189137805931785732661537877855009703492747760342414546180121520202492324602553447717423869880570941870257550048209814542589203582207787188976515971077171472659285743383037301944579355843882722191351859126071187965067676066763257756242871644394959555183306576808786532844796644646648241476534468471073399718535961276912839036306279644136981368761439099580865684762419130531576484869709641055283613425202458859465059834732898298272491384485934055685261366588807746264347268414693477384313653303561020138527959821849588770779140381069084619631208882621698039152825589628475010172288366354950257553456877497769948364907268717248431786321872028535018074529200939132605743075757653917668851321569065543370889770844923825577895956476731989723681974991454597409592691814433592086655122335762158591411349567658923349501060265162272124896266848209201863802671282003544217301802766677329057714493720264719641188821060143193813517965522876442676765515634936722655727304933960427243552289898676004734670655318519822295499910734114620409927983763029854606231134906602700459691869165996498760659203120715405181361778819064366555725329424928088941131235341917135089067329657779566556937463942341042430571138087986270811184198964793187661266926504235859133702360294072979768025143689246625638374814136740992174910824775039077250927435492331108204605258331700887813098723993788086010553314426271305367576334575624944824805733689323620516875570766786775283074209408544654451189223389946120130291468196821054568929611730818852672769527849328655078294361860019917130490192453730912598111845899979289491568380570235630946167352423576466374739390975908499958196487306555619941886445518832535361090041178644650456008101852531993390229155988873651868302184896207887799218080518188175416702019669982520136873682300459036485542742091307604532748194303844673678173602645302275130598958644668143090192240690963674476283214961095107097297171471406578110066798133570584028085983820574784336124996561882150525832265113823430567226294767619647294529838884558158938682337497512635711286803314456789691389708633525796190284867317977032673263077034620545331604882151717429355959432721752304442683049531158329509226562890033454500242315078337918188495127272181000828290724727650282237804716056576719613056311108285897875454640166750000801212158502529876944856954361166122633923961852412504179211863701244214739426422682855170742406261238981086732117491108820425686849206684923322170476559154967678374010723963076981591202505198408755367741895136300812027380778134385186961856891677486446906588756798649444090095844366141594615811223573185511081918339543676066376851223369372820535370376364624593744386617267066856837604850725166130372552577583187302553911589538620639481350879919680619452034666003187635435536409770131074025141715377164883052960601245367597414394275737442070021523845661251166821294332458456864591580019243088759896807264660345944749334481069028034024954836950100269974782945554126860304715748320583432961165837073911364717560097895798319070686857124045349735984974772356890530103823095705541838530762526349632719295155625426191501773689740416432273399971916140803712854202880543336534799375762068344905669904777766147543039497084688824758705627772431058309593906667613832786673727572885945668737498783529086616089417395457390537181571331978470606315955656374424522738932349545069682502265711059288948199189337499488200533157803109566160661227251326948102264250629598787971468030863372430422877003125340465768106731497380130332433479154872319190274849421734882677217628104564709208885435108086640400114490229943825263014964621664719675307862315612420227426709318438995973490126691677767616879644218395735457407165955049401405322073991163889692051117714102033203445818794213666382621161697828205809929296510575642640267149596609650425826941934780775629694678071057375401581397996347049803337726532012133808469591810047326548703248751825492585182426623357896313680662271586178382731188242443423069420045667208097601835143058879080082460566889509335404049983546704857703092255598901929256634036131572929711729231937459205599819266155471760170942939572372351569870378028137967699644341671654590671003496002708995354921446340966240220634299972899018483752473529245953635084872523032420294057482459134002724162156683241224415466881128716442103104617639185258843230973575720815947265729009509183322640083769833635229364037952194016870251880268228571319793091161840079996525817712696081858776209719143510191851167282016422344309253898372341134444438722547604223909913602045738439516150234599235441047976499368996880110388877286246711443225297937491702060482794519654590674418880017590729849882847973655126044951515126734613401069646710890953511587701016133914831491079154579428627881043417967041221231211833760250621814020527259026951830715425098915468601077181918685031469595762893889497776093680380829163111943442074434864411089295090410596219007213456105105867466524331579798808644445238308798649321259810231777000296441108465637988830180591004848263281367239638511524350225630100549419036014364461566123697919892572150561076735869224924328717168044781283491485849887956457338842982635657122541372826593427540693152140669766333801759017693228495134588186200240905346603902432318749316712302173736568034032264610372766346369709905948708439251882126664378396356329413582669448725770786066111085106921021918649547701406439675902753414863380580880906610345397918696481297702886889533536058026350934880442280794719460315074087084164849463281724468853109782720344115802085996401835480738408037473724452641426207628099893429199125688241115561131516497247395987132836079430825693705298626203364647339671208203843682037006075728253632948923178986704957290895600259259342233638347432861934675842944408295022846772267460152485009017201386365680041283446154266496598355459897229976589874759081420200557927828104124935804459130922775094210342196630220508813408338058321175653045092315837172868760077933611695885280448059335839203640804072580160231935346101573132540354768601443758514706590240066701005350292609217197222952570644257301852372014040505941922052123379772119038624787735959560909689202881234778870105551759048105626644984160341980206110872267743665742645762620607216434319553263374313146636506620893880137113693622559995659389420886720777427582409251993474072290187887982881745907153599210514174959931162411692349825693768781158424369196670587980778195362284989416195394630276962667306219735375556027436285345895049228581873427831864495888982491848196044542976759599103227963223028741164617466067683723427804122220500324727276114837094505431006326627401354815993105892488391700680930433892390124925331763464954925702948246875454778410809442760932819649946635096084571069611762928596074193214345765121777512888248451113696072456434476671588631461775544662551751737753714956394656562749168857933861681679282427499823319213389948727215453094314719079683190304233748605965620985461259502546713003072952016236188836091920316367924835434187931732391440303764599242044879427687017311008734848511895755504406817009463678222492147626085343849197596995994192704787096341287734215877860747083587350406660206902150262675250203022182153990120070261363004223415526924272549657496139881571524246209784994715222004984226189620278195825763274739716232410133757881729601289861690562108244576949884399113711680807592899087074185710794250685011688039230861478959566727342731371677671820941376339739019366969489840674794376509119427570930744445376327927063214478381866843285798893106035091819082556211334798491183434070659520319230077000760982885572964405648881170494306325275060681187903887043870456413712675477547663421764057248951041728858699930171539959082310604985724567950058165216660940264168302099204452083908426536720410326793384579250456676813866908253320165594750877527756302351207851072099057707124877309175173366497572499004518853073953284593766524291726143375753770524664918391673979899451312266757665398218826669807536935726731938172179070439484512765979360295349718371820490545750559760259655971386455615829150500259724290318155514786127668692633349200877160385799752551332855178031383397211848105941354429088420414380022494487210602572557822916222440013259429570584117782921913311666357393821774529141968059424568105430975983742020172609711848260986726538230696924939783850498860735937723832888458013872772243988037650188866697762095158622599067881183367088317112991727257713994193427045920498687824584498281520963329121489516207195827481537087294067856654874823814908564606125731923202128859907605715510730785583005385342132385522347407192446798773391791054911978552314809051494234040872785039424999676357763291498994918189301579923037384105272289205342546954364484983621531070535853640940854256280525442983662528287640946658004315234378276968626581573355405509386876485400570480912150740020788274420172129356797646884057302959136630758605234076459113925115298955688280772262146439505976072171012109535159645710402449800629670149341387080560261373000227064835893984858778271547042479347404348282064263560849339516131885993679083425527715719937356849145955840913403255490431888714846454632514929984779241089686271292061254764315634036441044212220133522042514645381225892783976913250968232391973298358800476433576444631528057638185833147514968260466453599886468489980787491540380926773489363154547059617141139063901064181835081652799777776969089655889562144032217997018247071044214352297374221055049986730287961573280441153484918430593154643081036746603201249035112646226648783325098563949262677960131789765528627996671427012866389792180478186873787460987541171634368521976938122078220757394171009538215669611447811652402836122440291124793110648363532520623893614248014732767931779568414499631837770898507964607904806665738133756972732071213075151384783117738633711447766211112753532936702112931098089651705325250021888216561246133772015900758866394197705080897964624599675373632558805088388140356977960024907766328730769339680636440637464693351604958116958188049297707861629658563166021653829272507476236245810709936670063431723714191193542836685771262559021776762865737616289644711769245525162798209030360877378489930214382377835257015554405061376039332745367223577438561066846651006666851367244768011767059782550912619101933808895359622596196748379774478289465658582783588385798216037976353155183453979438490708770013903958589407175005356612597377390375460492558538885698469904680279910218444873484273355625512754635144187870121105059776127927062471664406973735317469396197131959312545144747982944116824587694406628008430661124882616567596952667152713669018721516919578648489707737464055946776514594581189956230878182174330821826409494185923344109528224369634231273856698723511359542333151870458348769607739001364865476004273805692270996876106911616576131535250524280659485867560431066649562560613567911276411174138136552203923714716123854741919513650205351021479665837966639604726345279031191873547861487868872335432680681990820204136890659116013128033077813125879602459127966210552885760011461454649541264895122023600205648724278504972064632159961284651896482921943983011845079692617944075428130445699094379754344028967960852729296990085059129877625445235636200514575196728267243459381852668720088321068686352075977575710952135963178387110966902536910348951590119184622579525317305753188033358897521702223416893854927813404624630908415364001391394710454347254662815833901479976834460706611031622578900422676543266026908824594488642865424776714426169323947205805916508455104015703228099852808127478748962957041201290438725175466459763232503105130355185674864072331237391935884009177129469879273052853281263071586096674123945271756895146981375633001086686909596068817345014522759566262130626894688400613702783680313646397785562190024129100408285975886870879790963979340397145415833126979789181400282501060515970774481504759336691964434993405840693088054377553829793079171760059016850194730239048513109235432280370642861849475138131449431158339924851035177412732806534939621282602748121267673195686176189698456800042924980660485412727745413649895078085076006904159273746852220711180599672906648323548267244388378891590717695655211525604546467516613332959167094733940761821317628668525772466390953034834507917726307173844833067532673594939571173356363455784375373133522048400842902857722476343021336476092467755795691544365183145341776291475206534970476092526762392856081126937107033808126988723685045005465266710341835867157646665509091025376840030119304159320426762320952865150705929904185266449648787231097003268505624599942125738710830615644516675041778706205749990591086507589727031414821712106360025464901805549122595294053329160936659771118479415311133263955493190350257288832832732078929291337800456110086669631813403108078448192081818319373819054489510745885078986566554363298843939786134945846064219464656747032615494566703941427338067185670702525728946798875516164114657745392871920933697021684353563451691573844540457628670286410657396582698849752333339858385332737109265420106045119622536049945645894670345324488483189536651620128366327444973243976788679668138576974459177824808708892063286377971190302237445755656966498836997871797910473947870859259419540259337639253451201802129256446889272981558897879698408248904545546022428673184665720567940575256072872354336502003115420766629758359285045593850104582863343746688023669782778515299976924558116117231447872222230698066749553104885149828342020265026304233854926457718900008711777506143701883586872308777652784972400167106337764868501187402278151962099099802814163113404255910369540289015385834895783780155064911703138841994932095042325495658135160644290020352662325749232354542703619685767587846206243965007111689359301805207143097724467309628861510462871400370722696323469430304362824868691402950132613367162522307815674037297687470922870149989602408541703440930011335617308442621127791066671338046126488555146250045095941448070450459650505633315940028571273763338557169034583036712227157056930352056072852703954839151165939948900114254669681010307828606460364572114810196104324139943200639493785741320282087616087881481527138291711614156742825367779615104817487232903999961147454021462935525177283115793759329093685102495533473714018874542919510090273545433107488584268841698146387292137785305257682577619304315651302338858820714876086059705842206880581650975506950120750581600527611386618845532426123971284691663774661825147732441328033466661586359036506166343052503453262928335886565552423564115628856964797055844169702153743553991319467964371032613585951265383064908002464705720407700092699521387042823187420002103787220218562992523416950642646635727316487961859358779454554065772800289701044101215219052273398199580045559769154010438196473027134327093457994138799663844965162377081662724329667014112070267499827082125208648577498896554523680753008508913057311726734878509966920928000808393321443230090766345096030183015257236739431932760608179727351931100198161974011101831431705080562160168869995573958917365009254141302970267823898925879784762692278820551705471318084190767199809303342379124852539650086591291917281350164189462807270267890415024391967969192520547504317232612119910240703403227312567911706133779877826991290232929008311964343470331187572627311481354091541421052857157718267207564786238195407459093438300734991748467130451152318963255837745193580033079257285310257130529050242302813289648295981495584215506324837922121816554132681322861318193368989012056482552182917783430709217761566388474277005430478347838254654407985648361212687472218855347313306263558245851194476953957379598615338444352716557074159955282717192987203304905860408940359513882309252570822594591733351481636107301908758914565078971444126560800292929330675821692187700435406312752358044809964273168499316031626302482840160995554553093307282987835542516434309099395666022006917462851270842625699340888328148464181679609944532142141238379633244553846438203336561456162659854646429304223003099172154928888509972683798340698619771456967849965650329225716051862419316395973115247795163930698095334658648254749998242827112022300139828516256162284115697929111682840693858935540997170491940242430587122777308675332250523772050133777241140641271704332044750878530715579562068264784765229045879609323678876666179948858240833389179722842926407952766172318792177306609585751584444429117168132498210075973685654887884271285259904836353193858949443825991627129767031682818108205900987462953724134833445017678045059333083168145839195263062066313853399028443755551328019797973632265610266615001403679717548260225257844026453380475353350167825490945014823334080650081431871054681671808067217997273476116561604968344152717083064754070727153268288335290549497993897472527052512922297733279718803929131199908340899732162677091280790284512526758573480467004412104299037227552715695475760215089583974961281408927508856810367313879387368142467638700491252586918590302079491996197706935525660434649365298032097573653787696076415429183979270558188436386869756005263253977031306668944125927810646265670128420745214086852608003821446268364643800050803969784190292862666778735612156746452907257652251475315086791975232641118166493144799388642725985616096528192536517451790744343884100416481366550400656328563367049335883861488798506130708083813091679533940389943267926122003577031137822534884854645184473671931806272814961637660899991953333652391240661838325708537894379918344058538553405161186713401207504506931864182767889870906335808285737769009322746189410277891904702316342229377378911645046237974176915749100179718969434745061912861617450354283376055774143450858980961308268182607237016824420841003677121919749876316222500993479901219371943536350982805747652800047383624598089590099991735934352486686731091906112585714053531358607630458604659589185375031818148881530563950284762556088944479336255312069898459504039376004318146395273191707030305063061150656364072276474079521570388847018317959948270149334490010373304006760149080748163000192782420774969361237475483665233684890934832609031179043487548529084612150954918706628077134178565837550195081809798348593746755580722618274643161867211303310455988255970927061723579093015729257350081968267630570667784280405743343853898993445381396181931577053561419693379499740320468685518161776825438777115795164085860024526271679374651586065363676031738108813544398940444194399426528842176610051977649003064511790663827450063429404372365613007485469626440642255433135075159932292706565661628061668840826828950485819521098780116430964692727725767837412682070201159459160179454299621138656890040251410602656574863847118573152739074246698999101408978782190278962510733879931651978266558370366334775477709864112304122613991206377610243791610053215200281484910450732790048726277385533715639587160788160079087532817672826044725800881456311689751478334903547041544091486195208221135094330235613927952360753715638796191549011645238806508154188958741970879690638162740401982359936163127926244535802186246700823902042221990569691010614411127460783403568175220487454096539866967036983279275573308100993702644309052541719296283047608092764137814182316761482898669367078701063009739466329046885639527720965671486340788322367932621664049590243638431687109512866711115678995515375951135538189445785563337468116993396224430485544326101944214637013796535266800196185675703341413213391855419911920637963316824700774285138644505361741347930214965977661926028412689958802243617244105481685960743759116174950471744378651795982932350634119677419104681942243747267008050989630568422706227757364667461346183687508560508133362243217322682728835030953528936947025120250503966071403089041468874214128289111302136760944988205586163375546082450264980558596193095585503675335331544509081263820666583020951228624960248794683067328330734985356497232024191745477079341595795894681029924649916794575276228562211439615659241118620863918953631962609012594968829767671850237151957665944467695908400381825122219750854773910641053230640696203669068835093642623669851012980457633330830063563731899130693553071591718549161626067668062017746050550303322979250225841459008554500808371805658587720257506086930049895968139737144828373565237869391051830687831589442250740620681693617813399043652538091381479487432631435776454195999350154663929273250203303912929172312448406197379173580834232178728645629134288348129093045473359172478099678332936184994584461115378809028381193423898110802058429690976184874123643654374819435107830672497911598748737732187418395429542398295418631591839335830645416155801731640785031472919896587812703376764884593571217027987981482484645017589205859217588298268368527797614852814128910502354431011335050439584199639429074262630501010210713110920633103134717350512704071764520086775439935011995201447480260912656409134755352152870330261987232462806178700166181018528747801092934548701131563373907947352227706187049965331723922178612819871380542805424202781673140006825912476755738819166487028491048377326137396147684896918993349983824494492507619700392605848492335782819021314946929367340564165438777325642007413131445184092199421814285752423001813065162357981045547307509156728237763214415391143234682545415584914136070402558662485803549505610975015684397963207745330348616832739542384939355019598187494878987958993442489094238849114799018744141610947172338112757280746261603357828854646224211354302586468987693816082216667904473492282555147822970171987012841714606338111004316923398702231732956811891440754071524778942389184564692186764997817872866045063570090818711488498428207690498037329733767519456888821659111396940213250300765683625795172338745510964790993920319211599224732119798752410231370485505776422653037862225389136344449474976020688395061074951691410294960107491660385112974077698598482103202765542168524736671391589901012015132741737455022606264012168019431303589660816800243488489834101457903931857269351131867582073263024404755642899891987963017823800397947374516327244368899854096663226805428416693176610594514504438727802743669889838668549617256461010002537666941296076681581567608315896662451835821816300155141005057101682697715540867174798141095500245754927948875982156906222613200247778927122923674127055199075089658677578485717410953137268861309376468152450661832866826234319791684262507699680382468061905481839263803810867882137774170596746752172531793326801215758547558479054113752362336785375245597879453686359401219292052428504301272904009000156290557304583661036627880908828692585001361425803871004882850224668988029544106063868264562569152488254535172554849954830448535446444868919148448547667961783832461493647874712362211727276864690789501247889905255249579953419347949056204988417706559666612623747768583521849181798699882579504633929651881128450932405726292218612099765362141154641154718463604091655955112678047084877380402546163805154116763239979277031451503651429426282980084675749755716713548428240817770750764808417007871480068514266859332653468363715285607178311959036406366789302181940586203728994515285718422143904754775449910649250406077217102106515105403574934274909721352918856028882273979890178867361446704658337789260104544357003532123691954010923190465326430910977625464870602189397098095219354435410845692791306492990253102122206624815494806757770302675886165834349505473290907258361133190835414225227001447012957544741670413166302273779349736657132771065655786606717948521772361682079297840353218512049987362312982662005654034386563536000372679160789058766413441018231701888308545446811863172277927314903296170424190052094551917878576790570567553921072370308809079611392518452839628102453488960483478126177662508387170330687475332697765286867009597492542603876270285508387427895310596971794789017312000293161954762801220124702745581952264534711673284721740030029279747821968582122098287352517239400749242694639932675289368204996159502324959544147742185894860543914793533099561164651172199963403166675906313535891999509830056113593943417001949850859105737682555734111452078853942979183168690593810440992364997302056408474197580184859926605107994451662592270308111058073041622582921254769471527478601708413310561095875969147034844307378430683557669554176336151476299871575265241766955786374268766520121372755231843162566614462730395537448247518723715656868991702319954327033028518752283691342851479069305541498982591891747990606843081441076848538260063605697271778222519876013700980107234892826401672996300243394189930079630552480290194971685061400535491916324794012836038449200968984485642877576436786932342515276490529901770303655824048777421680688159915258766629132896953943252202245783384351067103579401832726992871633869480306539358629080549658348219831939283748657367172580790571958643839227980748520220190019616764301402814877592745684769833903038377267053988305314031042135948499119654003818084468670350573241738948741042296505315670544838305139841682173644223734515888487504365432114260699171756790487934667018199407096939324736072951412867936217896762826621950416935654981976925782040406539165964997681447070223576487677596309565050445870071022497354601557694884361910061427922282950414862535437382495702611307837924308591374203579217090231629019051912429281189064108052120534291452175465978573591038205877928629287245120902351467719837478911379071779749652699562372393603591021375942342365209415791517427171610286393344513590095388216210564520690131878843787191205048765396016861050812765053331936041039169619650630810821799324920846658354995754797772560652269866361588861283042726577055505262352270549773861197868589214552671093021160036428847133534820262867535631604241099750515729606320511094261808401401661237353439177633909349587994639519382755975074201175645811731579888373837120524621742188784367117061767546158996275075249713237794357819835569972206174579511580484397036303867060050157039751804440976743084764401344007878069409983748813734924931436573759603831383211692590547249734259776395845162391948057572750005278648259964490629427736280114124651394267722269617256446687420705569351163782886649668860759982909865330883474207136657973120078393746415650619828357133061811766994911948186442001944169525495662258576948631009546057088441433864081882944912845667128363167400250092977343046113519388669607363106440483273013539142376221266865088774416630070725601993959264853667277929255043452334816656820045583843042433211152265519867091111330522353567836783687613107883867317145081516301269794443129401668830337771114113041962872497223983009225840765477151012717250064137585629061476664258084397448330621126984309905587730475999705657582751050359115358319964545828705118511636593003765374055336706597076840393267870105805105847933142877418831815568490996573769672115870136304272609721622926894652933021253003792804290399565058150983572429894419656316534249430768765425511379082205621880453310742176348916952521837271708412467895301391705240630314949094249938518297912690755531418300054322998924305401465565056235315185153716826889408215335354216934832790231716495791745541533549951025859353047795818453245706219380004448393847085558771661141534526231572142926011045951813674458881626971332082020370646832318958519979960188656545760815879682697767204020821568207304597934183004966962925663430538745304849443123704294566498968759409884633232378355716892236003488440573461556514324617714612897277312784999467481382592477695249964607693572998877975229986265725859463514830244670488399591350611440979077232424584021821879846563119815417202646099876693578314505734447251869002186633228573741188446221445479015846680580171224616021976324508790507645690184392639539263217377521726351780743863118884030318247002760675256381446955916959567941516754450641450192211215782870209859594862334466937459754624945298747132199480038337088559166932136248255125252378246943442163839738420027562867332580162064634335614421303418590021041648857699003563860573777935475838567380856697682252678364432758230101873173001874409744899198969998053914731488637889903369981680206040787110109286438218962014268051940244923132611173728914555079446444659479570023765033772704514025585260550926413176430136973525127984959316451101423883616912353556463292326834633852554813190800198133638655658426559647229621512578484836089401942765481078868530829411233185108978040094641308269643522262272603176383127974962039160834046416615813801412650145602345942531045294800207372623467964168776334688708705873698816594816000568005595510582808027401291082432914946097990369880491333493681705692125441123521608610321621737864995572905759284385060824743206286600579832828847439451051831590660109021719770810488402092970727253177255055908572801858865145995067740883302258326538352315327492687430559267010496544687202370822991859133376947096237210594693287259989858125119938085864013119493485256758039274004489686052044345845398805662595730280291600752285006647517029979501086762627123344375387096033637799441607730536346018277797739498165698915319120795975982433779546146291582276285315615361699702953352401744581395537848485556546688605765544825943559029204543539120194529632845266703493383225540838393469188477355886415094387591943860098916892230461895593274971112771572606645360088415128558869239256069593211367871771647241382248978163073138670543299789628012360277415452565099076364863916199203211842043106750306233858708855488653737450623785948853681425693455368879315120339701836354864517473679327720106644187848198880783833503317731666480437524597116893224925469987684282723984026577782991459805495749869408880448736010200238630143790580061089302967332444104060904669044351326819533567916780924362481923432851227896191423567721424029616085512046568385946461458016254176603634361256383300171184683268189398128652051481215584765365007197202330030727863785371935723183874391405691492154730740888468548082257278201705344678250421980954387600723523998701724242518692110551046974630961568448167660195466607378623697239603156273494340980654761405676078996989020632968231404508196223356644089196365980330426976518877505117796902947559562857806790738498204185919224571951245667741219828208568301583281741178220590629974208085402000872149072361295095024247756034044275225186540734532510070671526593429538086220302488783178623168305432350762441831675415876715102422421129446195438676802573020282931492476074098488956064589525661254344103468196793194553484029496431830492425539379770635884366640842817681780808223239071969365630629597214480917182977442190062867578178540699845514926878999164438567166138802110738044213040864595222417765987603147306636637486421994598685056406629805522592649290806258971987998849542367319544524683003756658948843190927655285043882897059322765981269621305808836291670775104885718442129533082292258818835865702881997602399893657346526680317930499222767196072673588103489005332783693346535622485941431862340579079141727626576075351429466666299929910064553713786669292342291706665890679528060710818927485106904928900561468096218629893378972288658540670655338448452435553414916180520256852280363087876977959244591278954705947135156807683957967425929128966423160045851826429220473575153528764537106388252838855448080565262967566201776147243956942836390535178099217927505407893557882500869358185182493431337529682806045931598069344394905977817771497985293327067462829917630247989944167176746464791629324342561701690917142143103080673274763432193643181783242946302519053510641214877532265941074736262481978325024993559584343728734707197662713676242721785767862588756335939320711218301534012643400555954096194681354590448648498114669594063789793474673231429550114410090010012864150826101012030973786128806806555486848755022094077884114924101894185143778211617998407059685629658835072016148190143003250181027942073587704779024110519054274159425050910227450657603285827981155970653062515640949988627629173917486148010215245800761057712350260672034482155563768679659038581613178812571033546163207534223342028148093187675453708267125686637006891619038318010465640436233137848827100948676053666355358819285519355131677401888387250113711608432313847399309459286078805600410495333164910635206607370635382442721881187134974532319184978568656478794955473630006328385219049553541070663199194574244826375432471830876696471345780212925700854801044441268549352616101133817851546476250974743568107715245006920614662688831953467065834532410137365991681330861090205062287928454939995118278019453243014215944947872669862883236124142302822053640085243564760309723855643142723662066015107171484958053241937040127298100915705473851582183646678271053138887950720018197497548215582912211798014700984731340989118882024264809930299754734550600518270749288904759381714977287178643878004032141939076595650208663844738711658335266306285481452612591294610340044734093549677379456267097153833567393580275342996244714802568163808437795667873386728395487227197588274716809668024474469275626114249834447572835682664359162333119955043042711439662307641711267453134913017627956764289470509539591088542967272323714180301069220451632436166340512795924015007448161226467379285311028079229832128183219498564615566468102806919349528496158646229061059954722381933447128681283710881433671332570585665510653817460961957515540796681472582941592181828462256145409267718620086712954416248577054139537418253126612268423674512730774253085277620997957252519560781022536619092352499567452439258333511218205002002154276234188183029082487894779330001909120413448679053690270402970482144624457402231670398476743166869861653490790711745908631422221263705034090017574188649048302509062331226316879855622982143651480564696971332817111778404548580000530393734943717698253924997266675370814129090936751552610605577751666702563600193230252346486505534856546148991911065218495608942078723172928162995955695485647052243688519347066523283698406340161757209344232401146409134951181941562120870709602853349205849138904040916075354761611808517569433020449905385323494696166304789315353204409884060640715369434149637309698051065275170326079999232024727656119488013978423804403611928835331488223498718117082842926701359593200488747497059925247997336974283757409300960215007851280419435411487185308139384655499989284174168006759424107590824461921229749400209602211875488703548904869306962159359674749602811407699574555705345303230514532298862005243593947986791312110053954856577305142346913085130467719049609864812878692772949427556087455096862904052272449453876033075506794086636025111745352058867578406222668528765928572600274085759637288747847310422509124369617914384191601439433888571311543391108460108085160503480901865352041573666483528573455703585311697867640827663988693396156666896338961758563609502053058921936242700859376414945717387615950446468788480075593964102783384759314150407680085030710821808244850208364682325441005009820378321837637336070636171794695550878634060260030862610359492339955422951021704503801499717099738578753610891201132844799613519165336340587465211494858540625993840816174417026441355687703301570261238576801090957283332752380483120366103383408368486434718478687117054900222282739775084529935188365232401226060824037689231987498959706858602220975352273035870264105179022520791033368876958891201816052282611366442768758162187827055147097069366196403391591143060784126706433706185014096081733905865596086356619835571175463373612685251110340490966535878212116994327793825857059787703702346815766580440447248533015501147073206740271379843821693871317877670045554374376435953847856898296828552625408894035219670325248806212787260264300116195645950927848844284432448519015844405124682164181400489689511163864546224800615375120991452464819907182011093297733776287821505562494451082147238775312330443099601140590559938656155414414222049055975151570007164906669885400780908735908062815378975315466012518895892827727661333469466826685676532281105155483119670184120084512718972714907700365256969623315516888782688003055248633902089877381189028006222708376671537599256677790871146459985305144570717047940002228670115158396322220225285406992375209744478205066827531619885000635380736426153740805221286464160435151463079441991292668866949690237377153029271254889104655719398601299276608339411748756117742557343782051472417024606948120322105292167744114039794967543126755903287284446204997384063716657897401435090630801562864224192744985616528635833092179669539823626661468074362014629776487089691010088602336885843016292596686816990887214278657656534765583134398552127698558302906773614764683409820293405890781121220975250275142403978801248182168911471584874793003988087631807832127782385869221991592477865548079096426101446296146561323165330359185123792754185931598133176455681283080696520673768741376357933697826905931948035295463547901465175790878405296523462167918748187295190149044048390917133963213025512746594338928745782568217055749108895488442067921770713679261010489521879136120803369327352912002122184168335186248869361592876692223556550888244960324082563856420715411553345723888545847608498561576594390190465946908985314504512100670948591872294833705298624151372264182434158578114129709696392099636961974399206685332040927726118283772374740476345604317811028078472902201711741264465927677422207167879467319404211385916496790074276003380989857508017028025226355780109708265647251478069296497646647057007568357567793975743342092130241201660740061139923122407603153261425428050593436179063281842279607992469113170778572079682199777275931560861951005973602875870798733590903928802868518200636484576282530072722553133503903694945717973100961493763017045811538508770308249921251236998809822319336062280873796700090045348647218662684271448481429407144098039991562627111049019587488575424288993479975983575066304810551798172448276563141279281668325840832219428138374121614381952553813593380121975654418076766347510877892382810566239356125178029023092234797331856835046166059795284089525768946121569834327003480807103922200495887170982766899417498073316084199653374973635966897382062849275397343222842869168938272075511813604744976151147343458010830758462379386968410562421010293797256167900468296825915493480462700431323056797789457896621339260900608572813834598860460939499995491353179015614223960781616460010185039254668602420275223359826514083015347989932675208116791823202972820612926263628647650923931358548024003705217231646112327529962091926457848071155756525363962964509857739731218472591154485973302377864617962789938435305010580253821005639693592583619308848072385766759063355212011035149449660040091580482068312003076322619005194951912480264710706753578613025303821795143882585994407453546257983764409033070488381209680902144820717831495531148883593967475438015572784830086748745997400912144785356160011744179468141744780043788168420431422493382494967930468342195013035815775863255144791769708423769082896565048200505741758813140425284163543541267489762086246821522650930419902418073472523490071875201511371089901111662851919447215873332007486301965347007962296674158239828861653397102411972996240262104265905082835414893763813211662380680729399287967449156134031538862832551405170823141964489528293535251705988472638278474974662962508369508409380784883327273942111295170945618101189153239212784453108035611701251980757382228236388532880933507147627461003396722164189380553372289785076361257623135771485155891534742368348596858450659306234633043866033158961587592274418305280034466939218151958697275965567085354168794349708477040165882777668811784856339113139237461319331343554090854036104140925765133182676690540619005498551115108250298173809777017948047282949387752374760187298063578597206159959798136177211663656755304579876796332436838958501476663731687247217865403798291457003910418472478826894934721354615465366965356659702110298379918768901008111256590230406684999355291636648455612803532635177503084798823223757627200763138581116314853879186049224960223713146757715788209760064759619931273430935612787496460082637450142661062249021334341223183958907836413379040462441439117346868249553344041343468255436939064887177831860696153895620045693608623888556772039834806373871181213559896267369616680410519237885686509803878450530439346540011380759736658905731793552988361453387476073736782860602903730112842942944368135224296106390941734817204599046830543566844791728376867244890561079166356251943190576484480294379354856590862808099154888368335562854217712426062441501890507047794522834541704957671848468762811064379305999609485286647079723468707341365076978043666386061697678389183193230172653266048401530418254425544261013893238153308372484551989777980889456507754910909178264619425100465519245865435345435615492178728925101812298636811130520892285361529335431541807383834719088093881909793252287156296031263171534758902462753525131075200974815751928844112580298950792212044072410588338098908856448536636282134469287421667082128173626432649779446866286372544408962052098135184058913252293148162803016537344477072005367750258098684448677646122710066890814823691425050105203415841320653112106223633528971382155804567252478768518130364408398224169404963594768002664129178027177562439925757688889520689714098139501623955471561668809873294010205034465723190005169834714374859656094487053483005196562616373733354568779769863142635767040387704640754389016293810524173294039674372127027554580221253770651897659533510117279790533628201377009630719726764370985321088402690360583413819898254156385468530438565523711520467993691266624296038755796323227426556732518274065897447319535368416296511769533515016126429481735321159615099374554780790067677506490082788070512706053957256374906498675547375208864188033110681665499614716619136372069793141282422163958618365182996786354335978360799509722054310645579124832848545989882387116452365704578238991898879008906033030450738146052056128980788162235632226454660512322415193009724860134410970811457041240355852147920999680090875420867776302455406828885980005109567584467424795197338591154086152660169665238448567352374340558703265343767159718872475308048575876002107178327008313064785022523109485765063013213772353770137231097533667168328173918608244259865054199290604182994109306170406719778150027350060699713550101580265847777206348343586725594768049820111821116058681202891567486469812252303866569767291055820634880776910822691989475245643009172512830355643811880165367847401640110727568430694126817459023428425198548924470969011004254910916271779823003081641471410028224233690516436183414287261487208450890817011559419000800221960240159346977486379403731554812828357754098061198950948023907693479050641715259088949770359792650689016632101240414916343646887207361685528724967410146797559395017927663104740764259513059913942356837164069396597267610857043209180431418175096568751840804979251362095195711743243181972901004707919234392551408218891603332995943341036625618487722581304420728929701343004691086267287955124704691348635868418826636797133103290402829451608888892621877127338158765237332836388175232510408727190650256184427261019813234436411035788364978629383679613760906096923196829694954737385013376681087522762104083954261142907759406463377837504955522981613873316053753229168380034303595455789158354836091653685909810772438027288580872268060538580731278678190686588559375805455591132186181036836852052568902898015764029478928988375525477469858084082849423116035432438163202967870467947908097775540396989080208241766734763918820075365899244404687292737803541012855884588169717043832257425087466687085432285272115797121933933579648777886915046351974852033758932380895502889494735786152336056591662916346303755920519996986747026579195344194429347406048064732486549231154249415803015255548758172725580300845657880202483960168256830810651289324033491217030493034522234498840029725877624119678219338666024391063021296793123826227610071247612819826621152674032496518719425514374669004028639619057043803556471286271840851859108136105147003953436410156197254173357414031138508726989205043147555738867405585161651734759639181420355229748024472740801262341486049478870664244053941880834943087575255433123789834851450148489514408474002982940025323383262486540064257306072835911090278616311162920413483551458777866277458226857564748842852996651900455585419663450354837882003761383583136301121844917222772269166563183183709249717514680480226850455959681462669477148155086581120031905905946978678744835346720440774827503068598973656566940807358497867472173250741171107746963645337011024395016115214046705146399507217224985981010074037678736884589496713034856392829477494232279995094510491740731690019637868085912891895808643827634974459123690436024502518357913149941208033336221850478742218211197107162113536619114231271804857686901194962067482855519652161679196468499016530552615287628280902025757352634873949445676577507372086220531940344895030588099153459022674648994109993820389635855703695141574368002964360999457493630152224872262708137752489657964647623256251775055408595986475977482790944588350876438133253873834908251222697411038506692852481849493447193980675929326005205251694312332895251458039544257183246207503856584842473754837765536906152097128857796860381136446924958026720447547058557042581117668127694556886836694945245974295767480161445169516184526670777116113247054342153842149278780829147907813251316310387882078717667607670574468336986217701751035089312126517303195982979983236558454280146829737947996065104595678436742989181636705469184118306835317098696969335530068669213739022158568506352870547990248808425635736498761228729994009144359771782576793880489711365422429948678174327725415321212128050036389750480291379988505616279691081511840071715345857951413198023793573674947630652385170128131064167580372224433987823503452534323336456153959979916601352070266391979700297530988124099648600886943008618966147962903538171173062018395947421271651511278947074717044017291417286810930542177330872684043633917782026047199243042603159634236367928109743562827415615037216259322685412166404265388006195011988928547978615118468649865473757496300778117257250834363079362592049958233975965115011990854265105735548214099989966336873587424789586914220808936689699990499867281925081228247959534501849255938439266266825792503586615511759483323492983751612089648652031565616559078818046206715509573554642598686001739765736221748607701893312427086682692756684220446802925121964238214572615322464306376051837658765455189388005401043754353295207535125303117254794576604718791017533816747351574407587577249444485484956478262943044807563523588420349001107300804448128232579563038750533316694359154734699176663537354581054645232916221431878989060614607576734624469717742155206395563289300868754447355918585793796826321207360075695596128845501513089438075823908241370502949658402880031467236354713944325836960364801365771699911735052342393263479742908631155251504775644259374820826170467972070931388290328150635324971318804927017936210086971263333304489792878472681491268259769711029827236242385911843904976604510499751746575899715261163242581108242574033436102051832756238976933741507310301316442307744402498665283120622996983001394821729019801399769400471944189400218530925975799917741932355011527631963126089110066057344158816393821611362554524862288639284845394137046905690501198290539821654459269558881291310169566769193949429215904820741537228951234272618031374415013454283242138870676174752165917106977610866859096196777633204084772254639915734967640965740399018433305301871620360432814521321131883593488829674619922311798211367149734526615687268013895695929231656458538355482020853224618774372935541662026470429913641052174268029897751024313870382279963047295252178273243945237592816152414653054384307699227115887038570954482939093001562791656669735215604672674479887598717359621065011956484446063874300242742438979871057467782867248243223900472305331042352644963660493263753929835409369918300397159265050202823417386844458666641724909614177113873891803169737088176046949971209782691637489314211827237885072467255891312208973551968605703758569884268762643966365305063950183170492659942316485027419470492157027159664943936685676851850222458394895156929235632297535129189480858649381397300573839921213249975607005750658266551839493829553870234051402387766880225381786250063176483786846509110223239287782922173169844075931857415501258096093887728886760593441920952742019011470481918985515812714945669021099613801538459453696030711802142996498079189563998735379090148706416308250950484373244667767938759636857910577916428521478336673275845664774046221780149750716866553853612531551976311240502318081213228163826179218138843167976050712411911420256406459208451137131634129687504587279522913667251997588166025372227869665267927308058613647383423013472224545115514377993505233998665234424230207486994322476365716872134025449719669731238310692239037732715665810099161716656957042906057069082575004895616528558205870664857706668569419953190412307815112602860320028403110495337391371368748550769383890828122139199876849617263590408326907547973540671341051803235165127220664012576835362334026278016912991326212320304056898673314371830231333157013436029437187740543298956672781139005887261566362993350181778486354006331174960969610879578870832361529128332793915409771467231145576600385195572538777293502735320164040954473088076716777611697377104014810116354108591064004021124230189126827759240700593687814662538462231940301978592710955628864217415113455403611414031438729049317245229547468668683122286185377532651119751121961932029836743651113800104589768605285645749506121982651260968260908490724276620332889057909771762799091666999960348871921993802062694542746473191409488477202997458529964140823893383629044424639474905697441957055737991853886789515502570630386960441634367191431531641906834673308813923341014665315630195648470171353522703452080358737445981147960583891486333428711736575149419602693976025750046851003334212963573038628470802843856910535678138531141420522705846478401853536202828834570041995483355696683045457543283172264867806653886508742578821269918648512556611880604735511219545938607854724416324991855389283627187713663827687211900022600601552148612384880364384045104147756519529342118304695259703758472027494881984321964870601422353594397572514822700916168137590017926091001929044982173710341771237200104157311913377889698826796313670511357492157955102978792593125890764093036357348849489154306232607012267324885361873961832718066816975118985837518348406960754316802730020188485907536497024200684578439880033888024460063987075094969885237264930639521177780412347365567470966942920054452952765865326970155365504013441288693017645244243666192810842199718129728979632755008299128283275690288746629538278454854400225347118999234330905318706503789651583878275013110622403900392854611551660893803688805526034156449535539075288970106945235273934383887387226025761163691359982404248753400846349382472145931859206006586304421671868341911060564507440009197409895750737670090082032907783551668281453473070344923942894069498836321061432620814183372463919658698982394269719069664562605527866400672209407247748474499350895626914443965653886671647919854832797260309433685519919595634507150316407697087894085585924752755070292846655130006620445433793371982524237867725663845772017142396492447432820406580071568198467344704062003720996616247479720491307399790903613353313477001244675911301780257339302368253211969929787597314538571765538822849014123641929518530248115194818701916688375676310009986935902617708232196296786633001262934042764405877676898619150539110971189485946769702746412044740205547919468420449924393234511034414724990409101824844988105177106802930823239132708889737176181345670287999379728826745291477428156655723790798976835456464158233665229330517089272492367841223812245283287461958264125657589841284822191685653818346713115831917144799258361533062037224513625142052272625785030348455200018679877263213928447587519074936513857229266632428844451743256538542538302353470433952703078948308433226016519592217452383760109283830821759639893640266488910973133395386142018543066517335653375584315295715728090356118484020120619361793336148809852407897458300047387527147710160245459167621642794921063556589805546774095031610504750831245622952849215762771721619702700658359838706844675164622286553646224130818374114380045106459228578730227755115978820340909100499658648651198944756761664543777724900488458090061903474926840972603646409161644511235125564481743051980476595804942958484408639992459689758070549240740529966193684848945521254885958159371043811506497107926453547840158828295894620931653014632847038140468754336584798559382284024552256708381265129653782868289980302901376501816400239635532689890514733508895144188976691739256912708343160176256217103206329561060067686155604296670267835594168812197559358793045284018417352651068561841722254195403782476359788636369184063237071086924669450900700344929417104409426860114725703914122919013961496535333559165284341100482662016287250715630632908769919119922533841190890195411182852724590946063905182243715243025043243078344554247540709733183908723779445732435733458782598701001368946472760580575779470441676482347124193181084721875521913712009910105736727745205917597444377056793052038220220981909594118986807832191635135284537412099994916393556597158794090555276971769771656060222589409375644280171415447879508195876531539679761062962427740694517098407379957216066481934203285605277409749268650870087221062145894590342722837968137080590206166393403383860808749727977125233372414427801251079884924262318746921733411725110952856697335547788854367537109193269923436113574520005925605146867308449031942353554979791987395009070972869347665309864166109842914347228074772398845539501445631957785188395740800459824858489146917974805650218852170141764930188281252621763254488380721706335233406105522267017023205633715092588213672370891703298443891034162506489681174652757942122680491376065996135525851173276746605850601663188438502968920620977338199405031060480124659784594068366878288825556866015717754596533426274445733629145767820603964399446003764529784204393316301982073270195528046609495955276163679377752735259095707547432754608153871998225848917463071040332460092059262500202615866140325722282382510236668156215376418044545938169777566608221313263061008916635804641802591370748323559219446054834862003615031219138634799355273713523529437523949467181790409738887123928895238011250407914856466451466688744867587169264031727848196327437473925345465303394583828026069623882468761435887291458475213509409052854823102886624422843157573768175184480824003843324016283439553594210551015981450598447801620379120378862988888304937925249990920666392980754223020532796183204819951957749915766359584400093618531276937892380340403191680486953842972388631786182892923964715077992660552980621837110756485883926898596382010912704985216781472092900500695952882571678556811055790508146187837358296538906004842711834674168247471516424996818268868665692103431260789345858247238662330570822300848562864379063850235209339646622244695516646685291002248767308687930410113944233479068020452167598339532891451441121393663836319378393609130695931809598737953388624049328011072277599724342177014392413755456563578722626037425155024309785151077075382141409704610038719112401716144338914621510845751002479764080786641520742007097427680605250910431374804994212656268778848354754223645487563571727628223724529597183828350136498656139348393495385768673433177207066573117117541448834857776828136338304763508763007602844542040461809788779890469686818378693914066529076074669748177459395958719917427539504418637384118331750275372786121356208513068866100515765659822165234345264860363528259199257205165078957222367400788421373948255366769275483573830981995614886784925468724588587521966483165358217746368661551811359762420412916203515511017345508628777870412198151131107654298811822929157513169127908551944642421349259638298681878281601201642735245616353949090407868336771890764906656803724659816329243812219452239661398931875369322063407265069584871586778286101391036294078744619651373575678032303551615935109243611758940264747848976196309360559123497452839284471127135971160630591981307550637798455919801632634575407941437262385438115166577915412652091978049595282520675390242787840340386997409659078269192486745737208645067741329638734056627646003050697668710132545515880361197899072215934381136802312021484561124151021232817290108864307124183828347503822657197865307484121876239583522688211640404943657709702190416191458808407166239111337957141333718174703472202350296855758382725139341142930656963063219283992323132636968257227087806479170058889570735728305299991028454169567066266302041523184684283571243947419857352139017449435949560936322583720263223552365043833820579939409729919408078382291672673698203463503781885812317737997358829886142085770054724037828336492761527841888392402124851523675161502258574706426199744357755575566183640575571180604940200925418034278115787438863921144729717326599633195427178558944908997785664832679611120063190977979110312398101669771427632784677802523115684874373519167600100333019042726701708890156329153389517639336258890337339415106214780467688235607680750929336576546612780462586411236483914513983030877517459544114323008240139520823992910862746653189353853576451600342203906724729730639983434294157196588787983388729045991050839788596996265954585772509588515638630638883468127465101491473157475282638882902860889120287538005385662520365374597634843480207572556155869952018920109286652650643762038833103334267877945276760122737776842132218402142371191211560011697172818397423076275221236954190094069942266262749730319260901856257092117847949234862848975197671227449811484837932360342595129466497378271930453234386945136732166966840517813203876555980968434534121114956342240133161857075503914593993943569734597128727985282806201953831044761510972028964486169885032186030014954004058528149635735031324723401124190367688405825000029040673947736085403237762055061300785442553697595347064688063102656876575067723652731717567685346138875542782399719514556359038385562778628869149538193361362258210025975323325960845897556658167002756758266858730974658133422101065612405952717197363254177880968044419308599175383955035281579876582278083356896618223353321025077551922285718599221145154988873793327410744031084363982708825544840075400070058306586720740612447789933458479933025569305041041325880580314037794705770128757661167240503124050703570543800994839677563255710475907848781163158413187567552339987902268656394932546190745031549620588005475014570443864741037827341009447749502668218473578063656880173300712022986142509280349635216236536964828161938591793965082761644805801935701796359411124823435968594937544433951158073148762396734445065787795707615079866229968924215674554672930404992629082524794293277770203022934523260765565296809008609570035867854419504519990863739329184452516702895616033692501894185196877620808723542010765523888293087076997108353535893992046555687879950977300123204876931789124147231602201896542031003311414555771845160717137402589046085257505088818805040912080137926639015071906153335358700257328425643171350751310991021030586020787980237041719373374179222070063638707660230690831464328448949934940282273390916498935887999798264997880885034494068561922162561142948727556977905840036508872926230239688208632695030150169193865854639603197409809469882565968840260033226030866200415493001941141931113474209040859679211783550341229031785145117436343652478371006620669319722514010238926632822851726846089713938374213783731888798790451390326287289161314754125034115568265910455565395829125755761392245926753780074136435185254594003708374740396046750798110465702139923319158434529271940646409030590435198057468399771844294772302807748930977202449582748197292596885179591355799735617330712960831674583072690086436894628959401089717672580753952964826203573200765596736149459686645645772290416573434338358976839842059710593179389733506495038356527875844324480481899188065633287276864253401063341929759246419670799132656276854106786737469104061362253622804621580170062896665587711221518770526316805760933059058274155763038127453400107486487329883845087737081381907776600611500060466670514301199462815021050796289396642766808971420896084365035307886522865745991392634024359015616936652665541730735607844450877199842733840221834226905251173733292427869452706912601220628094064265742712839611393483570650150293887091719788040310833873102120612687970043454870687754407416203410690196999375090350272706773863652618516006820528909030217339269875404116822347714740863641135911739124702916679530045060622927826960423961788360077096905551853909882005154284508184900661923782533836166649326210870894212869732357248019168246699521322854307118258640726608126439046624623583490853071743820165847752427801388543256553256371759168094463926306964324260630058664400375435039463996060826763505319396279103514990002703788265860789794870181570981913370732201809490889680863661555968177397311431456936198035717986377353080183505743839003428026050425010309782936205741821496268543893139685269765775889114100765559013897216432850418439857209925386232890483130365993538014588990469276526849676186515120382775435895528316061591356773097151428903661636950770509162612607638457496312173165929189346589948112132957361597368854642069792710741618186471770558335545703197110536313844827963793181958358047464168469363008397382151486979254097989164866727566102481392388078174240899869259163994366286982376892293103208295258093674619933473197585439334296533635411957078621238904994226932770209417108306931665816151185749914470831690576155580369992826952074162494836765364199233111413146640007940930547619319454568048969073884019147042228298490907866713577141201478754713070157008137312029467874760927199578959929941349201639766836496563734477394530719906610476327686478928655198597878180155118072380229238568250218902155187207707984011176564621854842442219798863624741678056964530607261334365195037702937305457087722980314422410477505342369905754410955143590536700659438210689530212594273142956670170731669692824585963195075242129704750944899345842557199736794578649956144028668844032862505144054946216018920935931936229346621766068130025832061125951974087681837915316921323713202960100483641118497162488403124971886379445434480503660476965488988776725866835941907674648423227970208870079289036212024140525568057269925645705398382591630803334384730753029702477692937311783230146434251212486397338446261452687094737448331561585817397792212209208752255935150749898115967868666190557909795690079282237979550581263448676907387545433125124255594251237140610646239074126106034143894279621097761580399822643445730980726325692295646855248852323763188194278004901201823519758590307382799622742717821076349163809720948382880738383196332121878268424385804407711546584278385331700370665418760128897705336192780080208787866648219768541877108457494797014483120188881871095149447888735082817624340672174643833692215015061570910874050890262940276319634536251935567373618529420875684444495816967159379140407532776879789711187530369521737102960960758376361531770548607275023652683623282151004469689410063662726299053666625123074090744884509872643192031948255171792178718326321640766815708475481804063244667984754548492475486281888567241713143873456222757201147544900655833194472145952329888777324996826790056499393449307987712689547051045436130695749016575734268262678667993024431181060204516726828051815748013910190622053993459382363050840498243521677341831160575054779401823329292488800472033248325208861437585757864828465596037220905743644964273699354945896831536290216125730108744418212959274011865568737966703715239064221060691960511051750758318583799773072933480490029340088218374712432175566674738830278194148592432534705079599144509376659479683258688838796113763427878091046658001241754034720113977653540242669332190815938589233671005138670610263443799369303189370025234703509424343790661869530437981696457724704371587188254674077020319983894230482567621718610326568226259691154916074688537309489084567868740860469508949083472881695900324921686491137801371838198326192384554994513532057205187071118769500696514002564053123859670374652412884333379458082403579828569926610457425214150628573157764974299547172335443332853769322343507064533507856053260171796665912271343294584391731618100436024203427472164944895384685292518177112539237857527510282232479125124889195081665104026361315358849491147167892791932106598630099477381197460347940728063633653855909094781333772166141138732350333410458754356066602810272215019268249729374356880870146803244705805356514763596586512475038865692417713248049491462009151612028293936054139247819985106963857264599567564305128559072841221583883767214859485492755965620880206323755151113298033800443131033505173887870417025726445092918000005735280608807985770209689949755126484280410765946838023556269720114533121776685228670510648696211544965165557926594801863188320693269306964193710982303905234947876465440752100193947625929390236423334753600498864296498163032540397718940462640703714190047183392270478575394116384705949740869911139400068172680119135419642020456370873269665426124219543506498669062420363064491407540482096824914491337328329658692120074907571247136534861218644750235105682814935045265006387622670179160412584126218598845409594018551769433753591244564558271230477130801459356014401209939725281152980282734041792705836071760194678771280757118189503890125761959634637502181122165736529255693553883380548129513617691085334387047983947187273183179393459276168208347315450425951031663423504324253715510972533137335824390738199087415409431841331065017747390673316795888571441863291498374753201112027646604263706659806864703107052123069162166586234269306420533681895084126516147485683428285519795673082933231382801808692731075682853840228448770231329156058793158462441882252108083013377568282967255800998287677679791049140614835107105620394964092231641242657838462791632665328939177576077726997804046652092559727054079973799292412613397940705524329263944391641658977380034234371661862158428787210456412830901338401037667667758617318848474247249788990382797490635640550713436018962609688029339244864982836356514122596155626054881188204337015506125112768443242476006886429077757019751321343865008095205531248748253932259783643194816174186658269047726386844162696505754890056522962753416250132140873117591433386911364108480981228225105825144032633055222710588261666811906003558051415764422434237152901138471354150998011870870103608783389175951320827732417398570219364936891682389837032742988147503801114083124920536835805015184030009182661494110666649588799127365765892336625806909110107816262684217477265782073868271402198600106458706189397768596581393600287421623546681915442234380941723527844658423867170369083507550133867900948000129356497710654889129639865539976356764626204202461403800425550485773229081582575153631289030579288579629016840938824812111473706952565065523853967617576462217860053519656863245562192116262273692705021023089486749005039931024598328013623130448600516738652481899411142922600477053687219495794581548245645710600741065324716794466740730890144214617971167533885836799400863720179232147901067267979300426958432079217416360605579388701230451077646636540626102730707745992511596702388011085823816329501892174947494268238828607949160199520473620346504302983265230262465214492724056924514770869324009804932627760314992387128599594705841468041341844995084163122706842097650485876860210178631783566940160747653045503711824443249956170556857880277363109718744600223780966613923185423860052227688752590514104805692473873432293496484012660273117297250611115179747476138082012315428859049826437416058413182785023427043504156056094233140673075286215859258798944544496243839105768819205916002435615733972167292803999330303055082449345572476578537386292824894844484030980622969991659643116044187545086135630443842636083654751350678648126426448114984171541993326632454517792420257809687248754511219231065703901439627071806391148141546249853638256010164876248356014266564316238591491095386367232240788186012472135089693931835933599667683208720183391905467623724357077095317542366636472794179981768333548633395637660985544329705761334707394641669595329795249255912359883075555969595836756675731750397595272624479082165119249421507149567307088585269940730307586551534902106595244768510487258743163023904558380468008321052364829746954396915412488886855995985296480397310473542651851609625519653215334407279455368835626221446564354069552331628114565281347232181692973020801631034050436741356510144545571871009951374624959763379513589413631122044511460876647358554189239933545531127375671113522814968938484477842732285784830815988554004096459293744563546277186083482803251863447709885560071218595592045665328938882791523835729218759662804572373182872473220596971911548655970496371843499048987682206359740895730414708159140379110442515085032405476926501885237518504222557059406909646960586395594734362837318092420170091481501893752924263296165563643415892770944826668945604802060537957352915563014247561811548954012612692272658730715516135398277534714547467701193235961770147356683054112471013732661057257952989254320401363390717885001728927246955328872891677529868517797957774443771163296366973813086395419711166492501458480257690291798007534492401108363057489651647587801230556671746298198454511360285205469597288925545887662002290165162959794919857041240001389527403862190470458677627877048881848498958868026802975144128764479821244511473984452591458704603716869243717687650530793476624540768754056512734544663201764116146476107582256754434574351015066515024240699428573296551751509507937647880998632134745120907706166079384446342265552367102430181488545361416879481223378515807934749645184521102189340120671791859189366449608030188052510450167504647142907141913601414636628751541424799437924291831443052901293342148529337783699085070964829184948488266850663368393431362719946795905263831133431650696105294656679132356684778658929401585271137497833459503049494354126450612136118562680017781466454030208643515361320090680285111328561025235930055286336943066133640331883278801698770856303322115937739179054978450348803053665910504600428311539162456048247120439547594583478149790779755589725210391005769545351968141322803608552447955639238740624586476604383092576617470058069087022730535525524489636600790841005408976716442323291715021774342177952982125884939927974380646231369814417782880091235046936522833087475319888945650004444013829394448245612285827518533755858447958421425641466368880815295679672999243612390774755775020173923907959163432446052682287050911884282120565533080972890662854231949101321829799459441434088073053440531884135531242084974556846240091933480726468520382125995709864658475040566255574116971839282727374640336195256806469724629658698317220774922338711500101164279190452987864034634335126910641951044675059242931068832703690565279842260265870830012890637984077031682588818007990979462336954969677365991205213385962246600731223278177881985379874016771681500277715771859708970333715408134994497853853580799095686270878656641078738843771038295035774633310191085094475085514478183205104064766852198209910311586213623561863017005359061466318886330863445921035310874926898954061234672788738541655029804741872998191978258674166901673517297151205237947122886637173548194930535115738759005163522576957850949038614385316705526990979413751811067328257272523471082110755598742443127886677508919542087845368853952812898177583500466757105625074088955226865231656350016051818728882123486500227769253068206096331281606259464318182505096547652493984119003606725622760809348965709815042290271589745349725786260809241587017275939289931868482762573770677856998072889203681795467547558452180001765562594690621620681342027077034474598271977721339452133854400551590062571809340207952318627359964643328396343773885864160510074759349751268790068472223020670558350111047793172425826817178045245304446899962833306320394634061838948228789041621427295837323370479107737495944204257883339641919823646624343132615665594987349339092702263083801080695127266433036501073179042328155699397519524445293780911428351634275292142986666409158229031656779862613550719406534779020188582311173094816109639735016869429152416789497511600841786260741934790113561698106998180744812900652959444154985920377908059447806670876170151696943724528164284135710448826881974863180893505153724232996433829817178244124270439949754132288959212930288836314855051633514784647465891105192523443147869926934713986785426200475047436120980881691160878981452634581399069109481718634237215756736364272846306992737289791347725056016698871821049007139949388365412501686253530504574953173207403286015522348910930598589792442186604991213617861280173346893850746375984478075605665800966788180039518535681117257681582491440379173480799853227344003785768518956939286283676522029316471485828439152232997398520530878653687081071992179838678707751039924051967914224023902146550848951722456513978281504959738808950571302373175789268503464060315615743375216498968550690614290630266016996266084495863492465016070397903248693966890780520078161908648286444657503994487742703751951239913723535267370536246249611207402532485190551282100805941198107445988750463266195005240060863337956997969206184428911950060089540790572496118516253622422654690906897052824918000255620169982285044609453094783933093997598721739425934648058251169029906948564900702925811782920937640143290783103355346185681121156840250478140265688548848266552138983376396826442828062798519546807509830681969008742789371795277789666759300867217847766003366367382292909923869304790410651350596729315697614990758470644824755933056564103918334242319781939920737656203402925959579832800946844947788993221581090981531914344517441793761325832394916290905140736477969185412864436354355867475962583292620393462599907105095996256149522817550686686174492479006463402609549264838317940437040960129004342810837607595842915537692925678161814748375077532226645801280727764838724049507522868134242691517725733505294905002336017196969646636004196665480283660698837536954450995225183697827389690027065588620438370960486972501416241174865927623845649842540114122011500811926556667007566208317838587993809937421574342073423504182839565030201502237504269117492572764153204341835479463461467800503572337186396945800036188927530327366840354562554223959901608852102855516725378033331276716508339258185571092484376313171936007168295148701511084097935743783653374770636465679325618956196581334733780597869764334315260339156322976354773414488340099325585071314273206106980009389380756829914501472383119841385064133527805487941711922694313649848370882618878652637029370389049888507060100555134042283213954887750142437493927807288743292577893563416599971988202224062819643505899851061944669997620189169345868253998740279882906614297926295234550219119244854918647321350565222690797140389355964890008617966574857702155294960614104832941400290025742182469431075679170486591579268010808064296472654549006565886530073080082921173880667282303975431661930895821055372653799617534413168237894152325178244945281668236113228753590260750920948004180310414418289446080062578837720771956865731878276669108036671009031771729642928882773161173772146837347675584722214499718596545046355486010370639465583076244546662329951286302227635519262934545167013098199286241905937941164654813740704607827206527269323449726279273259420972468986352390295054417409465361562073105739114353366397962529025509038253239502303235383421732704437402908502741176693913122371073647511974836110499339337083813080034328860058792196384327327055638838214087194534724295800581930484475337395473197333746905968484921176030136195699699820088771088892922104072173680155325487395354053675728694602010798402323671444543873498011710674087545659354534861867069870012225271267523017253295553442987463856561340692277413588374408310610492497094082410290375915631016720144535025075154765753222291641930166353834757840002054599081638784137522820377097875461872649879222698297246731867223046675809103249596579758437773280236940674075911929162839996203823468006373461222161093788782814461572209575211687666899706963686129637922230310176804298835406586885501912518545811165781244121771905035549274417779674438906000597777160522248950431941422981801884535468447306748330833926877249629043399820878770083530820424948689513547468582735470110850987001822819724219626742562015529774970217809817173266774927497557213441763358287338709371741232242520823893871685187425717088487176260685097503866308919529113055058992870902025958144424489645379116471381087864777701949644428590298832471125189139513967236701984311133438819346321772725079437410419769715048043145770877381820752280196327040110737394101451660875827759872347168836475590011432422958001135705876392776303045700772719763492468783568602027206952630425666582279649010834506919764756015734888875613097033319850512876144032169843545760555151634054141054076813899601653839796059287997554238691649794694127613275823379039256864487634758463199319409456218185402048591180368690091381210736602833436626621515510306469115782154937128521476013399280528565814148015818117985975725996280126314937088354581075612429998023976665450991160456012159799663938138746911016092507926035596523494816876812191203472186491299530910017315577259988617923725526567324064568864382161512016284951758656200963775553897414228041495496200603659630015734206752584559687969172123872866780933923523282584683915773095455448598566642733862610150062453391498242502280774277036095371053870679815184270802106456649047652190096032100755389579827694509749640251941745408518739151909857206859948303773997351756855383020186710027067658171591074250397898246152767946518557231149784120170252181125246128622465724659990352057561105823488674310388727043096531241224390772017742620840277126318338255520625838436289390832137744691915914647625662871715326667330708983193741359154697850448826868848231410084007723242753848845956019333488129027275488094706209292269714600179356080226705127332489674021637162303794515966050369361039625043642491311792137673943618168640790348740056823481115596140138240945949530275354665252536180825600429300855104122617275540914661057169702993227595237775783357071729150438710268164006767022458689920543614058054363420125640038050240253339594705143699258730093143154456468704440255246116005534073317831079746212656937325160736763488765989003353953777669147917829337627481795898989204836943166354068773906669113516188101438358301767802138899869264635318710792450220415889597084825898229397452395639820027111920045476826406338100829178345543885692340539464165173426905701888475777310625989153973680232318696369671055714908849208789604136107599158651521905347134655594710813501704994008781195440073017044114236725287665387109788730874980769135748622667026501795467540887787589249721796136885247432370350967923828871534454991167585800051137876645601750678276139659477801646467475449885953610014252680111131081962007758094759656922820941110051281727818301344656483620219762893534175597033515484921855032626990033212348059012930000409474456730613075766328304339694009036308410358232120679566957753539689498609391754006331393886231294867596827925373992518915945776092037717519948210058239345914816259629692294935311672649021772914133881460061277905384790059651931659201519355397767714130040682211480136715562309141842940091757652363578246670889189856169420150474205471096481960567599462735094868685370353868422732939418635460553512852806304067243814780004454963779714764795956661299619194621721475766228645812090220227066726271673446010765712043669688490829991774804591178334645971230282046812881225049013235314327512323261541858163530335596005512307214968784485390846771432721310155242074189282969711375941653581635991773209487673190107486981376598694900101107888800196511119913024743423461885458648904530240465646130939113313247645242166760105141302959275716618702393540418091953963669865769252127366390481078407280795877705629024886444185767002074920250238155599508202341483530933022829032206354489723753501947203326764598443910800496361299262617345822820362138108510937332074414529711407289276527619084498641143586482563104818442334410032732147589121314105071031139675004606836773864123501026711348240763531854486905823645178423147345782704618848904034294173423007356186595699831455780131438346261358067654744003209674871897031277601229363880999903636060975979996914187464662510790249652992937770557990618098099930702351551186225622037334096556868895839827044836142715130599430797307710762701897685338600228970120480515796571432051152699186551034312214464373558296024974329094310758876232439012914077819626524414341922603925052434894753767646261657406995095176087189777939589882383714250733660757406349532294457220143741225821683886520222538210595456209851418651354731134103590203670298538206553607312938568471939519932950079511949889119451532698955270288938298019358906055730916634247913780812996007029831754318813377469038468571857461733845650225799647630316682229748525142848071194527530331154753349149440799483632256649675900570563623792564346768954447037460807941848296256857612703889847412995924695742314023617969466518581507515994497452223347502017800113758463525136530383899796753498601785938400576031799074844686568288907170263875760769882701971978415838930670228052486841193906101168640320796597939584062569273649789103602522871039948462745089066575213061874027648231027747495899656935578651499861437249016283591756007031515611108518446377720959862328477900163445735433342760220311643337945798666303766520126032492793079913473127639231593711056350390486287363084498341862658431712277381238735581918616861981858034472874452477291566825809072593183292854327915317417147205923535035383545325678826500423721798920397978923860454605151458342661262889719178072102524492900934351773884062052189261892132766073912839960038409614134611606449990600024691597362832424035393640144800389654389415439137500651158562874202344051792332359820066987004469198102530835228061040125753214084129104570978007696927295406561840865411964853461214923418291087872567970284868683533374688165439658572914743390798097661049860503605313515267234180466573959822928109842861462325270730197576448334245654649219528020075121917980255047921555819516363396798500255679574713015969747103027760880055223052691449881741079517144539762132337802815644953309777869598117789820636748129016549214232743224631716653515950056280336970668341706225819854729508679308612422541448732131952798379594154731629287081209470672745422969811268162601234258598034261484155893611646657973588154767949454902870317787927319972267769692190984199421059532135054694079676292141263124788963354924463077555750650420432102723963393992837522382861232929115218400177152123188805729664955194427818915661173783637935620666374224400712863168082246478907563349539113270919598461057590380776091986673601606042621457352997532365376180786240371129591510748220998232736472715745843900309385663272609638444969540109231102431687553042545299744858540063819184144867537983501214237807155145004207412619172975820987828708060844325781140894804286873617934373397775678649576033913963466848817972380381383368875869815299264880352721398038668247969650468006709784410300002506791484968418265659598437064974872019222326397469461647539645057057286011199304807091306578459529132908479988902424791121645551563785118897434459863884494017156299931398556433454644211918239560899632160525589362900945597067367403515176519919179877528374906134617164153933961385834318293347581818871723832845904776462530708025355190662814876277827980953088697701972445953342838274042907170026590139879520260301953448853641525821794314379973564849731713415632703442679219628947584861593490812097666001223282683892266271050904954767439332566043630161680726302453195979450513363123104557320329462133904956107047842642984577945122039713436420962510018231016711081699590032979591889368275044658825897672331786971715331915467930783916888887488301745889586335024436373481520726425306937753319397911908446134074826466802131035840473601931362166365127485649585888141862553846998230112838728758775811075200761645942764517276398451694904398926397115955917328759635086574675457632681332515262434826907055232929110003283401217418009459401139732033850050549343276595560568619690542408032961787187894103148025644463033242373434071228621889532215845994666680588318286043601416472089440404775891860543428809583612712822273239110221872192858680372586804387405733532001133215869089845410669884168426026280392686619802481948216652818682014975695444369909355772140378093189255425327235682780842128839119897120606535087722723767158179924403044221696427248659148226669935596507094847758284808173900778949029055561482729276931426046348563399453547717639262320206357626696259172348501718892193705542966022035735257694911858521967064061626769437954161241560527304507729228210487281213908074269832767130763555495588922481539964013584660326690346966458564500710052837704040721165073174297770062207688014728920264276165301417858352739486112067526998932906470564031163635253593133519337880358789342475990163525596986486946181105823183148203719588554079057852750801253005027576166366726270026582710442599574269996256981473925047694880844202021040289677701501474341407753438810440436148516021384795083782612327323674628344464425771207066480093019051205293156913771655218986211657720538071056337207967488302349937761062136327773471224624478046259402516083288049121340804543679012881034941977547000563337280286281656640350852936888535986188493720274634342056303404473758204751251473289945558851237680915142428425641840354037616750451228884456321396837150359655008355483844773177426440881202756434576206259336712134727962325525131553626901717250736907586311533314428844376374755868907644076769432513437843713335505074913399119940925106277358939723057216760998215176168020814687454822314827733357917084140693701028656786428593550612571745628138874299817435436435735226710900038079390102331666415741238002658706162234197951352380992891558707418693400137377259008803936178576846172758117911317360596206185349224951446542782283739163556638340369667957195814623960258032794116267076933201078541565430748462747043253289642281641793531653024319351307017339763471028413622137685314057712285086814799365110898132312030718001891069826230813289756312922005537949455888304310241056262139642534339663153091563985816468182388301381816598414268774789047761931959014008854628166705055157738012668578235738694127941499604517124008978206078705897202995590338933589069980652360186749171124418453737546644399971753091665026395280925586467822527591977613003098248606847234965915811833081501835300215864819671062023228566943288924481710536054611256559881373076045465260511106537262155089091861038582918597572439201213787012232105161136188047250843754535369762020690293235935383086890199174378639915076761312315911863297381485965379738300120449942557899417748433921425743930472531388481391844011543711823255293534320748890696955309360132065782830167089254580536834853669695247485834127019025881507525605214084975474413286018951893667205408214367727656183888786364404572280874584916226895809480970449530528905307775234985938977360066816141704867740191494972434769671558744340847587895817283394689700010638607918225058227644876444885078494294852601721534276509579484158030148545580330103686114875995146970677019781914488627446722087432214396020065353390337984150455559326385921301527266929514516531482271090298687533533771630779852095771805138828038948026887566909661201196659153903478923176989758039509351070850480288814101129243045691923762264367712073599622636072082386570807494252183500273419766948254960657612686304674269423144870445063785343637066573948130666451179201085725118761047152846429933919328088769253467102663663949861527948477204371366460887462685009007233467132913586128488181981939446859084496012535884605010702474249586451840604840563148885323325939330498508909400681352514632772020028446454655114683719234925427709894602686180812368186196748048848086745833959014892358312923351022056082161385213577375738531275457909413888892548420869832936581325843504599216248920202344454633121583918745638223768400073269225783484189540896475275957668885793045701639202045958961668646007012949888753077259655502729257170977203200550838992262888038112783503314139076670412822264974822378472367958057459069480891337253007778540838721082698079069654226154549673138748221007186905425008036879344914432097634242462306765492370095528166533570139693074407276205214841392601124907830356296407078232860762509766058526993674504790777707051437602137350106173810333416916702958468684218911332984844385124456581214808859838230449391423579243603622630106682769797163779997642190381534198473705789423936756849643169399311036354123004625193888151982463103774838047427590143832700705312857230691727419750180526195842158284981227579919432812898334762514369836774255091789924843618996013802192390416836199695431770371929664470598483976406396586433795024016696862690069180780870034929079384085916846759283235042313143057628867232174995772595930725951833742204666900618483632800511135811640054723260658583222411627382531597224214412825134786677111395820231255872144103023590687258798974854746846025052353436234146351496607556616299947728414927725336539319382508080684780573818241420219620521144381244319903296058387660468179672566773916354643936567706939585000915421806078965317634933143343908090454541996035073266164915020201460694397662640322357414443878766140063119387651839619339757077183366304176515091287495531526547272119095754570744783745557513120693244203109349634194663653575023873371351888002207070508835582728526469051676691286371515950736157008821754408214901144570484030357819620085506855547656603357786363637296022988734118399451679401538092540824853445206225604898901830942761957499263665612001061646158071737961838091585902032434218222847160504472917355631723024651301660123970595745081157950766266467036161370821391450379339007009239102703881212493641251704717030679703505597805181679127948417203281186695198268420830646590484268992170393427644856760437878217069006930143718921134580713776294019532386472964952492072726307458233567160018444099090637729525788439155989307995751792069587838747509128976511206068266222918183373704278507309289211776470287208163249215318444286745503539860199334833026948360381681315476166279694036959831771660400949424070390631207916151033967538785034072590523238549462559716389014247412680398042370265344208932776566331523383866875215698694293189723197870585008306795393654196315840470771104984119862011636163246734082109856881904218824515709103783850406017679574536101028702301919339014555415586749830100164219247420559849723728060458827303623373039170307319765331667102761443030217530294160202011054378429331095555728568235607176778516063110154753642895102038642606257740134826492451520889261701845531029547649631826762024060635059439903461209685841874444409800351019049107510455539602155743244250825865549950467544866903590782654779661252945182792925948902857704488169030482142898846042115278222760814693098236603647885369205755602650950209045144578557630281771191409713370085881896265120838650313447453428730648520191091460163369851042070909347951914056058871915547900984455053055696202099119321695731824572863798055193688560096453049908447049675965304242530643621765783947791139408613855010796078012177223305338421504322479194075185360513951518938498312570577356345495909972296495624792932207915368876129589674473246280819608223810317518320367637737191257708818562177391964627035332556484410910280051976208992060344161594926152124707668250158165619027335593305364912390904750916113078733508974505584867694185288222746359782983568770686027135690043388468936809172171770245063268010340839554583032276112863387090843518406963904790407776538293677373642657627690997507417434093075750115121496410498047921207165048958909672269380098644544908495605048183764182583458154785049023964638451027732562365918163826396517222978171764491369835146773481518397494406782624398928443545637124536033700975960428763653893705417687529720979811951704437489598993096220601078120756045348352035003809875496083627035509975168825106048864012002830431050948135854112394375372637895567815257555381213938371423319162930806947375367407069600883208470875098519978925209188978505804003090001806796558402387070923264923989998446774394353847295779360207730679291800458190809435719276451554181543514723884052222578062884326621741439042554350892408117544890565159149288860656649341244662752821037887371131553783334440295129249117401073269221335179542398011411472009431764444849144524766252775362461321824287794051572700446202756041449714895685309965539966574574281453663824874666872356735077620434680672405864064951953109851329097543372509325850676913628081229143104820894007501689541404786818793756679256601435335206044526278190883489405941484083225864422690665601984138812784915224441683412256619928365890742847780625572693268683480975570936394806286648492580725821497639595387971870395806997833908661456967983242196850302148432142102481139141000721171638159758890930810521056478246467664107467414353125751586537975699450445598601257683443191608185172097195024338017700330114310311331063019763191225154469213863949673163434039898626622057324330588106521911880259619392615802305601425832006717054523389632524878662191186508102791528175546516332401721633299440990019120574998350708344856462993256042508522416048529099462753549195795092596195515662440101252525871082207198665121962250510375689282111189725777694018789245706448618679199971231898950252611059502831117183975487992825478430474569882391871208608033821398292008633773729407218220636772043260228326708796612188951261690328460700560918965732006906869802594651222368460282035953458765365869050709013366529045630251402955619457895669969220702932604554512994265434710486746668070541572754215695208228833215493660424100173421912935645980372320597811868932678645803714845018341583136899390851044970274221809671374418644944181004471158557495255608499359463659527226330374191858251542111541500261484167833032883035063377561189620227114050361193698416165381765700186790119050068566163348587949065904619835957122597187853924798637380852895261319107720211274168679816822886584471929725040205998728913940632308042996298985776567256457740902957458680492080131949199422158647467082947072829356354256259290224610522699992934377271891561553987066085992284787436835223137624860071664530749232333804488107860561100203114914417775814206990181415099663568783931994659041414869673011193313460166518701838411542884743010619775619441314849049867727951405198213373017187956844827133825218971710106645140130033448503781744414191468262905891814247446939962333049807140612811933848316675313767170547566517806395311029451277498598802623034121054308021046396228565523186095667357418393964388054269119754356110819147444802268910140341882103878891385419997833147780194377600796429689016606897234361135124466530439186503935358395880397951300428909527762126734024131344032864599482734585199675840013978950695818748408359269527423918231823152493609352949794459937501116101808634760085166833866836008021014321855112774736985256487724600097222250405461961730057795132386408718023478373302267512657687236378340949113954473575264668428033646552305678572515530684162692899576648539278154534347498547338197160884621640409757884942893122463318592085299793381475443377790727492806883501260120098881826359707492818622777392997395530401278276331661662519123634215007740317480435578885018863476172274516337355511737691287294115573644663172680413988269576549998411222674490632169727761796318758106458317688103985526755668432385902617565562333668065284589481669669912551556902217812147785657717786846545132344285569073582310752048156919553743120169321814937546548067451063932315883703346557872174251838127416867718037793625330519824017260015254959165107802340794622165397673006577459961568505661795371178181484348585402511968646425814828088191786268565647957969006939925277734492194735479810859829925509610868516236253374905805024879618811695771015239016162232086182460080520088790803162603656071704851989734576694271076730922334217663655620968644276153260173114819137971892338178741987614318503951641605847239382559620446681318458073078737903148060607593465050193892011207193517393063689983701897340054061250857077351478114124558192604910595443829083684093428269553791927134120419402329067128235711305826408641531220868209247107140987181510206771411684020817330671591118922865797170141689200493060235874484288933135893782324304078096564404974349175738614498442608949931817204438868939879447430170297102987969211441695371382899721599571785632650233529684043263713629052142645629583057293069111242668556374088619966436946556901998196273273112726112396894556475956817457082749666710968744196670207078885674289767206346547133838181040152150434258018547679449117209908682561086573581579273724384474896202602163980746688693722917830027442361644381459222381548579066790457405731993103001823256397170606708054419463449853947515730826518446577625160331557237536441280393811157241173166307601324746619131107060410827905352713942725494472555543626628032389097360960917065443379583059520520387487061653470845378437054676975910182634893127610425046436852991432611445096542911619377980769524670004008278854588317624344132728773794171176918933625013899922157821037429468205655601327536830165475459045664394375523757818051833616227371360471525641517287669884793683883310091149749155149927515305775210382716575143556677890982085784055144569335572298815775205709626815816799641590748301364337446413530585382084056898673278679379286552731278775789452868536800852902602163476059984394275186055646826001163526508519805302381400898858510014656586049753059896255128173268845554354712240239606637757449365391364272073891461039542614535482418206334498780536200443789808233922607181562979263347429292554852928386348060426046606869789019619577341982314423312357812697853547818074073864025745535916148177292237200831273573686300645183375667500723156496133569288385196804737074183517098526148049109413328471967816016631231223235475535467264905166365913924453854139291886715196493695024097405771631883272417169316947074969165620849680949610156654292048524539189146824645986905575266716401180074581829494712717159426907421594509777615478921434153996379865612639954492009546737257134765426583077475296974563307564973405804377361047005810326327863485847739757260626153151274292889554070826245945953206374891977963965043805410306784136295474994072146240246547387015258491994373099562807236644774052138577205300896857587261508545680759712000095492686889821275670751626964903231355380551301782400186187993332043000706846681306322300516245280336510820056970823993308677694836374021498431264861296498950870662515519573257019660771715471408064316737932071810533295700166937266145227182452539686907816038477116579920873302605188864952131195049556548230104391269932548213965236755821437316832332456702882242722841516038254922793700921306910038150082954515936398055551225362276667803567899579562561862796006682820417645054113356835215930806445258429583927003646665783574425213000064464109217392339047127199162042332296385511701940509514237397053586862611960568091147657407898844022470637525590412311075425015501152568292169610811342977100136979881218410198796557843743195947461151781797183774066791265969809277229090900519570909958199128541560632872031432409519138687954125935110735492478784194891027854333317085135742087834381875013700107269547393194007218216546029687640976999423605419670376115859426318361466017435059679721943344956125461105157511990079401289946078073332265941604947142067101500439269899836601491396377246301543635427569846485053745349838803556644684483641643503072596671669581238593426941735820717303615539257135393346309572088154211131589457431999095560495390386916387696297949890223630370549698829865833668718812577210571993323126327574105905796466278715211246163432860944246286876154667627463459189827024111424595195158140595887243648739038780884769262211860787063913718179160298908261976369906607440342170341076935704117178150212131750435146891778297195754869493488213040524657896096258118868629502435408682568119590864499505314223786702266929416085848043537648941504278123434724314967308389192488021210416187482610562736549943274764775562514341192497582779563972182417568323845051422339932717092603816820078753529409684901685904447497433411300470751893449948496547250058973980015359271602577484275591646160029709501305859254398892030761049675115697203947408386500724856694019580504996936398365952807911566267697519949557423106180740567592828573111784178332689990119171367801186898937235301211458624550997985667771511898991698461370537228561904518161629393319946629050475801558007660476924107330626110784110516050696233679494047381696055435960495724169349006363594728477338211467011420084910732042718573192820511665590827009744841279576407110069452394645163196608975865267086069545169400497703254729968333883554060681835875356501128954682493212228499308895278009500472456527194979900527814420908025868199077168533554273689987247418276690076476426250121096956545649081957570770801380418811917996237364067384074360869117331826925597660736194079736395999584563634847565504180638589478200561496237746554903938128158595071011743400602823565091939569803912726539584681934032189378216370066507353932260694748186287025271145686517410320188206771496627106459773514265000362690128742385377870427007830206854076532929911115397393123298335704433740239446006773441718117230851359600328109769650844298965824093139542411677591853677191851566592435310758636960082130169258324731659173475857857643268142896802149030444309578022494670425680353178106948465745929320156164140469788243406583582480199725252797039922956235179420902718364362276376407002258756298550416664323796395411931773543237505743438967328063494183074916001387285341792562777420365484122150811231880390165965750197889698362508342983968630374489243409572468102359542319964694809403966721202272419476355415335173937258830903515270467831035569877773396469132910034593377689590298260224424393090250586883782564485775416816742480885433797957983066119484299305649225679058034153778395625350138320252607858831204086922445763658452803160030446649454163669001122303687824491427261179508936447630369624244286059818067548111177659324532032922611555114266186123324012048553197108672465983921108268684656895933570526939488085284498612142373777759100745857814518684045633322742295841968977199817945735720506983981940901858747248358023975371917045131794077657867551739627254436766235451776742396460780976308469117427409165978890897768620561628228494122930546960123915719364812870169229504231283970684863940447734305785847963069326036837577707150270100423163526252993594754428383845112194317478788820973109613626901616540579835937116805523672859368866737059362248197723828321202536811680370121363734797086044145369480518720170588843444601923923190005166304839563652688626152550247075315165281352735934218780007164743397982799799928976942061881056579038424004854968592467783446259876283214672119459056961550179227283272623299828756500582114990862077448078555223666841489893714223117030474840886181211291415942381232635021224256498361916950263466491513387741538063705007525781487479657050603054445642996964787675237656880862143919359957915705413989958536846212002305582863049404348238287478683285857438235476081441359911832694026619671970148570846420583602141641861399379824379177371571237104195409731299437548040214294791472357868758001117261583531532782250067673236184175151563924573785506249196985941144440597847732865678297840362672564484785321664646694107180447116007266781875067811277823183498287589441851834545464910779409021211170115823020702905353555910233282022902112201399748824561464757109787258759573321925936650650313733399014209698377996128616514590771674608065432893398614731107203379783349065861129794170866006156459787672497941048636121490538006881362922798177823703153165432899085740313084260701770626529107425851136683736964784408731315075585451605304658115987985874429904478968316328008444957358662510994113752251138834300313049658714861650967262336506231623621416792365769570503087913677232038366966825293050541468701089145936327322581746293836929915134485986024211018463125605430064444811104665746229104600439788825836524961095258687355880410963219089815689456808787238627836577195115999486620861985250851266334028148395856386097902766947743476018540292450644084740376450047562112771713931595792642575067664876849219027790150017244203936500398714810170801040143549320160421687894552109722992966439796609438917375508541011557267440927557753992553002828874403661342832341111131827306649923499915507863302486889071466470985825141684964549429641917888483900606394117185891126306372967767358602544244763138350182912520783829465552065035098689142790043408514679307432523814644039141118028481286829260189971597879305321735063273874698891801756384284895848579865564980903072487486216676852134198686184477313218806794451876735943689146639083428060820300988686502046437059852706957236929387942537677466265004040686737165410810291726847607693096558417182514340157722324206922865825160565983255932675425949553935109086348904684799762331522763870807396417166549706718354223090150318270132935651366259813847813432394362737082393698939065895428025467769637002002138208693793002709262784157275534210341618606225692987920602847663768049740242919411822068265530483064799754987352171927665093630091998219982861720109704970910421087951517052818862229758056797395067043104892804018725356431977063552689907386174584310129573032220475496593141872796226058343316291140786932018822310576724480723140183047192169312445752371271567448352310262521316690350213906172377593110231105933056710761780270588189738651285194012531579525637836344731397075531407877070615933882959759349464034306817078219129121452424864974213471973303319366240189095766320858028367470420291903520918438725972074724892686304821774460585375325248960133691286676027833534356236364651775273750368892864723908972860392235322276742992768281394525306092928563734040409961754807414446785647421843561818692511928711848024108921272129472566571706927492235728887499358421838384076124970385278643433430690419803944336769958361859814601298763431181005064898365725102302908448408766670214047453469488675162959389703624904212360659997212317218897288947301248861650297403446670853115526750302574184172225916404359674182460657905997778982643749488924499768963990635522099876259278877560273738821094345795648044941693021795087353072127849866005124786079724683209176405864626100432972082900901772825652867547826894780321701396274870995844659227908692511078486049611292133415973655469388214540074551729810212990988936591990947003294722897670985431711834956395722112701945446079968777752687452031511640713449996800112459237063795772899284862252620244128363959034013973270196982925088068922288391511361979903471100278169100784666331725607656911369787343162881514128148378389878547818402956624208017821343176845872462305094307018185787420557784674126038930333821893963680773370134538406631639550904618211400083686688007652445765660727777928764822862597342330745594898325599088210096165618172026272881345682147248840373645656725159089745921780220595838241016435574057921342965364737846134525593166103854441742122503604977118731037374906264355785696230534025998561722008299782677914284272627133458346264309986019956263029057751665834792756219731821559359808132359208503619710476714448318677774381459631993616901343054310150753805923497558019514710816872167677743282460912800718071651118221484797785775721735398511939961656254988661585029260697242904549820985248385186786030444574024880359351606430877247242013382822669264764965860214529732755014650597088265658025380181938071488267968926322415455493259339353389668123950762829262329308636475143661549616298785845488721527084239872949583636470802968792959949021589433685447490143366753047298312244762894994740476448343469196889196248805734981856285887664779405471875784063709889484356317900591463832352359847107914519555020633281897753576283886121546520285531428791047158372237041107506424612796515632203831880066277847174644991881635214320419483985953458844091701703936437529730000071260383812768174239803180494641028984026085402491064836134595261501221278247879177689394389397859692779492191532496226256168337753499649200515152297263200751420031262086881667004746946133313019261810635287145281014834548293601149651055737383490667652919596804079849780893095128212962782659494243941330496821578593800171520168272475453933477184186247736535252070009315832571923451062781561968422355204885913786407266493583606957067114333088306491057045221673817437170090660239717454524788029973622521374447499426840882911242659783508404106734133483589303897395835094535766845122977562125950405689952190229424125753929430297165213770911563894215116448569314379640755761145909349143266947695485836752355096164655263924447793895982868459843258419933732314027452248357350428079996039470491255178475082242262795122845491789422934200521822967442549412318585458849649060705530487553428879609888106902890172729648877213782327087705272234630116089956147478583629419729872919390268548544225121925001535379198011641230252141842758498345635209994378381630191996121686945035330685716687737056925141299907186003254479475430048360147978001093083146954471990269559650195952943988684554718181481626395334013538219901038821625554698986431781584959884407764890366409940909830212038970010368404520266371508998803327253714776672720490936397310195560239216161341286675358703025571778700429872931590040514549508769018439527125796497112778315031626699727040226349545823136052220525954732582337510542799474313157515586800454905414573318670210816189346598206100279179936250373964895743445251577445304505409106736107528229291291564577052890830500799849491424934576003627442526909382793760230350833199786274823908271422468521158810706384610063077418111335690419899638214959821946471317588496356541787959414222456949316143673875162384637355036505862963656527475582307513915968906240073543328832530890482146867206830507737595461783082138863014783114290286645175225472335387598753144783847693721672623939056907434215656759532571130577949068995160572770546473236568472257654169423999281595976927476506949793688497007478595530434352459663062468347670077232070940232198326177464945116707709085995603999923441395990137303913587011699586557516794046683194715528958819373746374019601581552517697644914244637678456523270792443242256981183943370824152815585795123778863560540896204952490184527857803746972851117894561525230592155693641567483492424881004374440784623600434087459205973901579929948756363094003437393922098683159719655746837469514906630597196318821302867589785932093487863779133856054971699292612454987918359894343170927748642295260560804076227732103043949199691603646234951485914006057255753653338135200396687005598559073001141349594938422593580510723186490594620115750802249691763117423688574958285170614064633694156203902191951950405854007635673689538751895630895600005278914404101169623342875243955256385354412894546822422067973773449973141137725446956536549645743571250711713310166021453621501749025892890840746520289277001847443930774244829303067678025678073239045148551740527533397799034460323771096754882086294006201966514306679029092462608186524126415187704084395230939259522621402206020642058069235092168049315662258589276841743395049137372984113366985649279831035238430666399541789019128111806508257263871021605434453180861510128769162462652339229937402425995010641192980628708415733229514970757305445733482799542861427375167556368259036096266085155526646678745749674844285474432010459968241841777070328863239850681967024019786672219841525733743446150330799651327585541275109029473871831538970462866801355982279792155412575778805079444538924852141826975420149334604179380653627128269439789291202038141035971589572667306054614746204208558027046260962974704147049375609047167526909067398934995361272480040331159647296709269503850220701358877650503414317346102385548253464200117139496328507950167323743699739863381016127447032992361589481547624903967168824887861885081124702614258461404993920193023419959220874989016879576723431604574825696272320633045453187189204925885548381796163164400261408506206830678462535372018688616950080247506781763483942303494381406333527611350864622509397581650022012093338694397082354783677141725873979424662694788197675216746515050633913516600646956214694386675917026320304020832672020733429984828770836663519445885811036969049831412898968727309504995953308036683332654437159342082107459401168462530909062316896544145707934011217689531514473364528984140401717967600717911432796181257815948244763985747019740104436565230286213073037587640024680335082943505378763384886067373119272902340789254700081896887476086282483837128062066826677988610558540789323543316143084335782679452792238315889962723420797453000824476799261532275228231559063628035150129268588653801204501550231278767360671552646160721018760989508369081106149258985986860678522730856233890908077981352409009176974391100470763451573901699651841634458311540748958771038006087013735056891881528369167054239315479143279722571955149948972844590622454476183088066891736226255623276094352119501946742027293314259878156662603131929423244703553414677092730839566952725766612973051688327406576523275830647851976453880294273280106064738771046340011280438967617130471542027072618613555503012901817864100532914053899433212508260403908309591988524957521776283006098479120013875931926971982051299859934086549513635048015375803876662593112658869277897767074207632378011913748048747857964709177213238548170254164712460625798447795852315142737373936059820627942128758045258897144843335939526814388767698354128062278085855323614984979830533569221416997055666945018533500324921880139541068062459302227220166006291259968260240298313206411065675902501665887339205898165023703808566221694136886723205568296680979477037426034647512452830700119212582296098990038599121824914265685841072637351838616510771980647545773902930831098962073319679897347812443753929647684080671945569282487479589954970937826890206488868130871013589241820536673334954964659267169190590998418905759060581062847055237288723768156366493794655930831176714766398868356951990546657104029962628218380495702171864435204738140768360298285682746096716423094596645313757291061754139436153618016809658321793615685134618470812988885882985198198303233935963088783827087006718437546057512036537555227083846793694951782555957012061292479436988992802116262941545060090636495742726238916064345808232121314567016133497358951145278272032558978539860716355286176542895888555542164078424455703997009347223229591150693487312799409575629926814932575598337204471901156902004778205116367858826703199439517413576182906406153285781768098133206595631492803683348585723176955762601541154737546389535933348611306052399189059026745145596593501771673934496496681938501039756525875463917841416945192276130695114820384646108689044377312265027714779825063342089565714858023987215949930648830743227888023758534641185934323620899993240509666339866597360531907072143876256138425248472233746168684934373187094150682996019704092844691677026726626777741938036152399388313670829927746521428970823966464127122370977847352948100357690495938373276692575952274682911169071775797986310935479549252015214066918224202973166239173152873128876692389564176868536178600325909248295783434362555824408574380848859164610781476150445304981993936257046462223905775080682473338779800110319650881021976053751273263006741608569233412695098215990419811547018619980976431654286236591644586702649632002335991959862844415287524442416839571720087125739270775440305789560344687205061030512532529143637531784528413186181637375451569500523339072852807518933020368935185931677455509943316844685266910913545171317490265565529402447043649436932048122339342330889680056494528336801746058675678422091288578901854562356284469610591601748550504418761362002650200847027042055135737955727915752672992665117363222882003226013360923737831136479486535483293471573439722215803996572760181369053369145747579572171488252098655738032167921813745043241656106862752826845118090537063191129834831675942119402091369845313239009358092616123937133568586399807612907872307006654851555918873738126385899585435650787352789333906981153215572710093582573475363317859151416827342276632530482473649798844796184128414931761083398563715595217996989706422695985302318178945985233533278901811105724009505658606531593951634035420298242486091899242963936137205976225627231619988908626128315694385365327299424927422633481349495569082849884456394112061670659690918906998066211456708221496864369930539675009348565040907766439249745335405110315795691741971687185798030521551125680029850276692554714986193931217439112424206265987163529951455969757918078508102064831494455059235188370487712502153373209173102833995814669466657365314469001813079661608855253393690295395880741282759316743977177837311316915064013766968609676518332353189482024479291771546256353450163211858430487393123741427988784185310798901794681348794998103037466473187201154449294319464037181093764189262495592209152266863139707920596500127156678651389665232534401709621572834846060721341004346256532429964510499160146179008081211202390687602698826728186321147909016918550488436772736904921401834378733205207807003786277214307463177775758909211604379340838210129631655886394138310073232989658558955150610289627805728137891254560443190384808564603706414887793122848867369689974006764513645521540417740656824392735422499938901936011679266893700240967407381116661283379449335776618689880533798819491173498114883444707476878614901683633817676837422707269362047040827984985952468541780897963987564325828955075071454077667757459917258169293934950114228726514375074498349036021113052662574944669313674745060650257968695784268199735141418544617780801121236417792327097225291759121560346852394641569761368833951933276628684399011916809155696893446071871446399998689593899409098151590138666681498881049351072166995588407428856896555721176075993426981673036721917737284787959853669074943051968134367756204909242597719245747498912929140666599721193429357367737969395328815064291249508704440126632444590815256537717971432711409907736432061732236903112900075171974226594542631556673701701215814994618388608038632347221313081306506043687674308647183057424814431055471341449695799814951118434922818630795027426123561957296519786029432130306031012223887665341174860084526040729805138453498316380341803142677828252218137827539598905034742084730896256968205953617168421520560508558884630392547721584504487032159321321642467576647065515086969681428774808452505075723100074779439228033499205006368750520953064822996919938803415504682165760014250651014197302298970872680237013438058850217834334654421706014438141634958556393337886515625995496556840869301414978443260109985184085933020026345482047725986847758484985118767889715131900124446607207896127307253574545693120046151141420788248601187428235196695276670929961582973702103747595813710753463457569665565934871371096316855098660382310573214275151310958752749379108137077444340381152160574497346695027529117987098267646386806498032769470483129614425484957228327842646660725743035168156326165724606336116052840867249608770092268095187574581361918041312454267770105845574583449256696992242395922156738859582490740322563630732678154594193934206446962752443413024292157720359352737124978442429104457071511217861576360165218083394824607180256238208260365897125213638050686526585340974285268108357235694175431106226327495297792576574669280939779449009738072714367050503040766853790003797056250578256408838489010553830721947420934428984357486151813925271079129047171832623291206502957010704574753321921397686362899915754969929170866957300022802411973776701313127440174498236068489740713465940279343176150304347640875798661526452722685156007829864715156209805489853525752424323145661501280254280304981918432156109281641574435437216379937108146649934775957914338189158215268250308572002022523946390542754854573813484007803395123376015889084350224338674449062042828996835132936640169305137346822607531820994790298223270303008563369382830283430327977434183165219745826649485463973365089645932025182605900683778225134772810122863172616092094401539097574250560325048765709781304495057648470159747106344594348266464527630124313286338393577554980150144618855273459314562587681304327280654493088774794157230155391375733325718746365147113436726811282420596491424748756804624368439515871437882417459737217992989608984490135069845799006028608268505311884886503222291391905116472621609227533040097746277519612493409541531214695793088536221307276711169738422532622743459330830400096363124694938789076983595879899155746821098093523951670592859076319026560715919036381438886523074971026331279916085240467497752320575744221659636291774693258903786179468912032018829574778010300999012997094099650308245423887251715258387345562513490086839227533261332463115586768532462638121631168463625211233808712906356340542238699235161414628977306074526091026940336699220682433871414485546279581961221635152573242253698525820370810666231953966666178642154727861781675619164044798772280366141385365235583164151314877422160757427818388418027221390620314548087845379706886315135978152453671063438362172801223383454182315624321362541847831863682456425844433641992645372867317342757309529923276515629950953566743812333876254169052677392888605819506258721508960450748973894820917924537490691186815884402167831702330159506409825477906755274517310457375465417872011139161999018847182701254212183215047770236847630166538319857496215124155708218690455684546947752942349266506631241346422718698251895777339690446929832451106706141175250327193955325067074753951421527450191444637017070674665582027670107782779137409634018302490904833479704675754346835700848332049239951521800924319985531547669861425544546182856917443612184920746153012277857809935042730191421963525789841592697417910252463011788146667784143279605962439234234831228416624814493368487317216177290566044489876307610474303304942856467277558167695520784903484898279214750844512870817880659626232354524828614605011138789908294439497470931135270538425132169850733531317536691099844426626651985964112306968323441658593138976817612004208411272554501793664043199146980180592601991850325036866933430870120386322281717985351571690228828094504216850427694051496449362034978477508912578280722293113784388542473354238194345938382514951670616791204807494771941979372021191013774746691948256389184022524093288005061669914329739405415856133175471641057731138534029370024183266598154012319599976518117621966401922915274103243279821064619913739022876966110080535748760762893196999732968445067537511087504417948302881710124094401431746846632599530079930123681340089538723622066461865903722907289905789680160422891778544117562531937944938788524746011897264192295856151577858590977696438659100981814974308455802349038451759987559684544669928764104221260368360407991771239518935134184438983631726939633507305350853841639155111192536825168538261698915402835546579495627448667624061650669343485075010954268897197772947309204343037763028063830757308014208614022472197444630365843200790658422835203046484251225107009508198387525492377145960609214391849239994691121171360274697795468968726788166288806688722098311149518645970702682042497823267644265410907899013372206740624491008838291857962754884964645819964446886387123021090843393275896841300574912779108235753963802752916164916363698731706242164073221415988026644604160660253943325762093103833907288600736912990348086609604660660977377729331720591163730936341615970277861039591747274516021084581823291442096383689528016373926212095403156961747418667801022488893499647216563520047497260235111547786524458398691554245218101942153816105283105237380236680098031609575345690961601948209265993866919986886874424114153297259518410241798883248379429554166555762501287247164845566890476172993247766961986309842574191168990337432615325719113129882126869227311792680376025067669936279762542940599492047668243763946963007681350225518929823761451893654174585242783948503873002076067635110341357152524916614437658791620364624985436332543530204865451487772448515524075456482965551816417832492752634725690191240639575259891710528120056525055829511222545932333836273126297040959990613131716718096463994086274587000467273302030138013348733850231411912383586606244405135409535155521259945728803633129293327247110492582577064037953143817491696597806366765840235493905459753377369699522782315152511336974807069484842470830511945586077343499299990698442187367542036991685200296301630724236787992762336910979379050402907150429773242796336175877745445732076884783419302616333666514109410776638530337328700543725998942892721911081955526063824171354661018411243387396623163758488958479907232614411217101918564606351501066720991212653165396576696770933069104078483343046524366230648721206702401887108158731482653030218547716243839171023782815260108214014968463956567746927892427796985527516260563092004747334813243178322591943004953728398441522024494191619935999867187675399973644134924964298658410050077015370543417172205569171910135994359198752419896583342323340950128304760330312788390318140288550878810382050637363132098328704732555793160620807890371553821377513067828602641419374034730621687487267566251725209457458261755011455865384004475038669850369486949014240292726840874548587642128493468042593523524596876066258565703113266322479715059352273647779573129553067288869600803682612569441624942589857656208668571510975209410963562658911121954580663240298437368073317109215154443020939712520111350627656885452850653914586029746235891126731904981522685100669612009501575353484197827144046951414083853619763699295765557280921701671200089466331889288855909434454948959087780996300238733242393175598900541113597691040194593905885974193716552719221517780016791534738681473734663140589646285671798260858255212665017051948171264594115321155116904237382414759585156099153653219660885333992155859550914442051082817618792790278322372517082531811521884504370725640058835839295757455749724071054531955677127327255024055678120018118898451266959590567450822778801053140857793251878339582152887378830394253265212070452099857122902056046972799655733282552875078590805210568635717895147893325459527970478295980769916049465096615736464283922976306763231941839979052844454778085891070925929462250544148053668140494552177833253905719730115134827559176448903985979272158444927553835624465466814257309692777057790676410507618531114398590702619794420073343978846734846073198149576122116794588708397393138200365780985003018008236974507257190103744538753881366619942034995804671920800102158974290403396691406885156348924468883892352849492230175309215055007254409358141509675191343021721492341007919843691259173826740566849549780500087849809892116533959418971063193590390328131099488515357699762971088055273930178551305921066609191580030675098394686947705507610848753368743779244981208023786128249190401912738222286451787156379174219421963326661067196237849056392597285966149134369737059124087729361460701805378284746137778567739203260118084722058294579069313697487272890695759581689941148820791605338573163724634203717831578269509815118610746911269586769391241279764295313958758965901638802749692174317123585718869287009413916632354249174431637708197989654931486224743736511594460826236218105258753160954626703311127953499294864433266959656219448281455845218678679274702611605737191150820188957666639983744397817148020302334736017221286897460734706176853449726696788006584684706811903345220867938976207508472868890482662553838006309946099010997664458321024486257208956997817520137981690571804064346836468845204629533859700049197170622286680270771018396839176610004882316764212606182157729633297923318746612200853652937380220210582727637295046992775984495378228816615018965822484241745693430827393842738622133287181491511785406267594560059897499363782563935767214193188868902024088861098568081782805428268140604038113007315490139235460565627237829815503183029523855574996188536672151253621018850486269267543438338867052378397561122824518405875637297433699888932083799877064526918981745506775224719694189747283608862724957318224636319748002407095614582219669578869556091178011997503084824566981684918961748919162779299980178359454541129124615519861319870104165532407676081421679298593336484952257677296604364613617191275659112727145386062845899559919037609082681605571404725912878729840944155957683265398980280726383609263503259270728374708697038580615296296225892208059461539859580735628882802094035816612639782989969255903857586555496909886442630450080620640524940767780828200951283367007166827657221864618611405007215554335401037202340131222572644127609666496885827319066664827748731434512861847566061350122793401231252150218555028327615162733575711523976758270415669057762748865603702830495597715081608779215805387837084099019326697846316352189493045479301758305301625705723041167550086133012908773473791295645735015821761176519318009973003161626040116033426175381431629256274605386646259817716275937792372740408681075554906702942430353285173464288237706751995640598532066529261856236147200977835917340122372046640492858628483181044746150784938589418269737493317316451810311917225728383165094647880147838452382043223525063331521792231920805531343068224371098226956457383959580249527526273893823585705003954702141074563007683746488987353007622193100410518695980142336422293562710892077629360179677695998456230117094602787743881918390522240303789087768670082234131539416158800337214108369104903741143269759737046346412296832270652487195389625478092360287655346964932905967442022045834227746485614461629166552084952101996693874712877093599712421708641584314709009012690565036832833011680330435554623458300141687424907183374691053501564294849477306837436141949287016637077373428862926922457341686062556773699974895421771630499369173828332614334335021994984705261777392587477285092071217450831861023454518634451714698761984691868421426035565745411952793156431996788484108753044253952258236088329321285537137996805485326593980941017047400937929142538410433041050392356220336183565087705527461657115757094811779425719648065405713584004614564787594748963857662070043944554647383010744435714540910990123516517439481065836444640493134906753646084764823223089854625091869596968744968999888758694858554237051995873444236379507983767377904475715373553559160885876394394420517143255552577018647471266625769392703456217969632459177905664143887738092623719766697968158258633128225107076629208577563238906350349571741922458939727279756985715277907520040421653764971246633741368960512384560308654347273586315062577279635668605887649670629030138704947279044020896384780531675556663564717254070563069067740488214049090248460501618710215279894956692305758215721832041483917713990954755092255796984903898407084820479409423671753336897633145732848399673276985902830629196532864787432950530543833589495136696449290874301589474515171830168730931998597280991220470112952683088407982558353728128605246928072059915268564992366885255085233432646429359683066660085625518542109104199166306749703287091299130912047738292275701712840714381729853912365493307258830817617646997684106883569179791127999077752040645498282642364556434531366629720184765151980392204650045653202804763406217648091020075972845549158899315056469852298056599257369877743055849591702265237288819677863142613933752577331319116151426133251585743269988771510981758805237856849306644381021574559513869026775413471061326582014089059423197027258587489036330900723367527783141003588842786743485908094237788413494070451305050561813604275880047736173266749431230397422779020881545702602168837963439974373863101644697819901437588033511436346818885260852265913098870678637768217962462754958157911792724232112057067708134135190502558472952670499354828082508057329996824506319179361888004536400205689945353781527563921135103217008552668886260827970494112875783641907647449372759160422871018249072894158293636499627768636314592168095350662556222495108082788852229650429942728823476785158652134880592786532470041580307671011522628646160690095050769500247914580799915955368906438957799365220386879609574265492916395492950290192282942651964500434598655878921486090518615392217079435338613156554794102590621786847584921917363579156080714671926049958941960926332875032891342820852589071545236246783945463424807179765741006579466650901081930047608707557722079210453855624690029010231619671246785721514905586926918734563070241100363974238635618785891396857989676670713043958673323249559552157172401714340725012031536498643109178967396671911895022340693185330027750041857446768142692206324900070339931956649062123891804588919682363190063473125929670532525508460315997904711905647066715707189324509836242780561212895525867194365347482852022063923163629148343715295141303704112970016610333679371519210609118957208091406925710014488927363340178138261093833796322164079163897777087927246822694091930277738129379060060183241606113235579170319479547955231314962960071653354210336727739609211709516579503278426704002859702020700407476946513995515132198619928613157210488945555119088433250930034164486245730446018793036194214733424129740068718778599348257902553823116109979103487084000448160666355917963411609101011575088072159944654568911331899909330208132309810312724533806528456820979869897344939155516684510626354786585827392189553033364551785590953611580461260450948457889665077418025702500275053971401675294169695852847879040886803347578064137662053216625159414919981395884762885553979494331263490804579363960559160284380672010927082919818377226870368235672426800110522685051032611359384473833703278006678369533497651456891025228983179661810912642710015463966286501211219333456349264598372207233862108897015801827328788424351199496159052915674166429916522673770268915881905499180701592722325171949569658350622885263679832319552554164249104366313592783329315487632661623856449628978367246962541531011141867432381839380003523551670826096289568279721913098547017448051414112250392403089987249325279428382762270908916806966393369903699738977737000374307103619208011918871306674682548738073615414025311858799856494645354002568332676343280752003451063581185533675243686133078445108136503288082362358785210203768196144197877916214936321130379164938754153310740966467772331958339777403430569002783436081676514022131014520951758752445343219053825595280000425635657253511536750110784643867858811685457432592904639738938811919879407685503348887648595339636059085966734732780824139716478090380648359975309583975299164032559938632308185200589777648808097252014231988510379199430417329981570185860116973198019666714227052576681699552967883813447925522132573188894918950896742525991571438016440595183775729151479114571292347972834737827967510692090557171903733379688875609280895745876114891256612944114157686245881440213233082096918593961131549033352998197138644157463207340859065431701229220375932718356738441825143310290431474041716370645830384185856295392136243062270298297538355683409005051641177975703162939859943382974752716781516375135436842397170952609382695160611031031305614206845266062323792878187903999321469750720475745778812945796505358669437369378258315927755841544646892946639908364619664940181305098391125303158549895463515328685304221379308051705576163144672950057388772648783592399252726573222875462159952089598883686292519300960315797626002929890406538980048660032745898546752740773747422032008752546321962784201636905867448175779287659513783955978403719627203268508370854568187604063554190515816098371872554406416436480717060251181820395506442917831246143757360308340835112860651609738646702664003522698827897038813380788065594105802752193198543036746208374286186816693061123248029320634041826512033345825671935782651162918318661217840483729478876281985074114324437234744699556008472981917146316684203380496606689371024179991363677649409753091787370869627311914065529855514361932786622509153903383960483007220333218829291987581898713638671168001295062481664912203150717730755313801995554293436789698535978095215365838510792202061013498288760121286160380854468507272756115241962917529593206171346439046555460759595381877799801278545220076920046777699546945888919882998099198021274566600855905834125636014702661964856117674903131475653070306376010956264473143486584381282673261693083685734401575444417530754676456275625740816577384627921502151856765344701813221417517500653862090532914423778451379962174315762963709287850305623740818208742739061689387526764316204386420146462345722698724081828156213359587917917877467849235469460834885240152095252821212097982384886654008678910521441138202700202359148637682778462581181276178037129482140583043104451631924439856903444503821939058108638716799043573996958733692477224951925082689952993993743757364234735237351510908231987383339352464085083498373536792399824136079899495683318979800333002489260490963325350165849011460894254356752083646975573143038817006199533673339083705053215054488151664804780822611714648188033271941797948830742616998983625572999405971912277120501444317827254717742635016948574452363364499470516501329626712547764660274045558314789630520421888880658354434574621994367124025723759042312180671483067426498809529163873990088244429225959494251334884649998787263988765358920143196631386749350196341467244326725798869408575696268668700155414746197761624887639071545702761194976022761956342876222078934814527823265839278486539234246803011250693718942313823503849048958594156914237634169318914175338231882076191499631011105529636441295019849057710103869831826226161666475821901259674990209748289783617817469255719221890903754125480268141549948864958554850837250029284813564871972167610958693707231933484732503805827146951797861155974042676935016201715335391721097344839157285566387845094044646636893046126975050274404636892339259641959490322164078679567235991816608165010445929481657015517118062433669102671132379192019160380888616273680123881520623070864084192763351580764201383209163920982846951500681358790953916068826788245512589002763640648273267991357481106575107138174951633251479214005612704665756935207797336462938804009708962428317536052991858604009598058013678579669733086582135321807797369983253443875456169795753309020509362143997851258079152134268500813512572512653483447032318226212143124858577180249837408470826622520831611739310472452355030965554152507132374162078348320361289768296032504436974029527921408777267006905419456185365705111207069690778394424803459983800113677961358405944079116328432485721434582790332245158816902082593789801764240131371896460644254411719700702074864244816302682456018644117217574064959562808854900919807062510347876369061624819922973565086802398637427573664948767534292182321367665071919122918542972364678824753928360213007611541916687261518174691266599118771068846403256470161977323463851861387672382920820834268550871946138954546273534975266805450102685602212961974621604305557506308750102157796761733184178100110785048403573093788736226946715718143683265291640927243455388045556348865577641924595908302692834728446585318080022620575909421897177823050485762280110976871772899130674824878894550844738815436417831145284635116621380663695578057881760414504899705055552033388589144944129863341932835968702737544946202358872586018280124148293822653276266762652421725563859150891441299905072331659845540199909392872977880301567993704759683723397035031969759368478758833537296468824210525346743067568285808736941525867104897549087471606434904493849410833775492528134482075052993488574127386407678925428808470874888942944130453486232369740970611987290207100691509151447393198916362065497652671499095321459576642083205349872810902718439051004881728120498348535588505701417570700467191610167318601118232351403559411435343015101985255078434045452966046791342467316459765431226432959147870363372310721229699330047519684769697530480097501165201844505008703831794402974721862021845116125075259904284726741262342685046128082866205169972429089403855693403542892022172745089643695865790157320694482752908995905562217573377356666037796654522722068939178559380829703945095438376170783966149163142931989041299561843413527034962528024436914200984473401679531194155468051050095359830241020342890496874044681489851458494251402423451633573737399343532734721696459221462992853112481004379370172695917091978415118355792927570904585404935912665275370583623987297136677882143529134094655233976147037286252925953921993638519455844770146405494850146041184481587600056952588372059258454750362429004499253070721807441682697122087179403841456544389038903780370979431444158859055436705422104501675107110720344498405210025187180058781487157429025512955510225248496083521293727617554150918556706475320885322725250388444235958335645667384306467099665224488572926626925388361274029520160058993439854707533916902320073864331982751849591660326476580856923390665639542009837344610763198471084923423455950266838553705322939426435905992758072556501450685833047828671624152488547785735344800645679403149141835656342037908009098485499026861976940895122408599332364915122552354818419702854583438935133634788582272670456276823128567722298961344833578242099598526768848995058596910051222209576878235529859975214272073143482695952018329650220178331817381961884965719839271672072307643027796604464465087936102363449995867247915194352961373763102748583081250393750658768202879508633735455951099174835584304240935212563456511100416186078151096886169149018133454219981462274794433711760563858853657112143752139021460130904298196399471351472458297931884370209587815206472088922752585484399175120407498578673582802222294989623860475195318452334156019505484040746365176773913552149147392267113855043340564974992609279302793650418853721515335123713527454729999669577060012668024467577666819301843113165022437038059218971123538010587188171943207942669562868282593540860699181802778276105265411110574014178936868457734478225971486191339750345116826858144999967528943829803768547199167284900307157415162405031896746828851970684561041322138623639552990126644008452349200995611946021786044853396307416727666400794052101799202351406162669412018143490108634208744483348815044758017814676158078491910952039592413217912615326688903735957865608312266797518385396370948693047747775453570685263197739257004558179479425259046217957238308505787597155555764538277722868094633772413039596775667208569049212194213123671307780831504430896828100414506257955941982586504289511183190330559467525302788022618087927809329741366755635554400387667223757562020650744377511340742001341587862984973464212484486243616093089857860094255554014120123339744101233215455244003356381308705224450784398475290572363677378235963543674568772628949382547837528102913628727625373960939398425684854622596068189650675508534161698417366070642233363184161809330454576708267820925705245072905199604565950011727131999488428483666203666985074397732866225640769327519045380770279137898446967769558323219344092891909918857298238526089968643450012354891437599181887057018762270770448372420737607098701120924029026925503340450542368758423528252129503907318361608662683339193511179703779753625645733987542546683829106518435157316772614369165177389680980608059737445601348697398877124073822453214282319059350506078735587005316200626626170184378505464949515899493255997141750157049494462331818005742375337471726671029240380011470189137619918902054388139251398710898496004757815315821434183099114563882352122989353092118450120329395440442025633904680312180644573345754926151336056571795655688137381339399895171308266387884660257665842815468660137823917153373843713974256029640351783105578656853263898965255269668408565352135362630197080475295021393056173817981606286531292391587339803850931365742624893293318271697956678105008813012937637600978704540613612817983508799772200169667881627691797904419307181687432212789271078359072034429728785121393189258428507174533230036392364705758342279874309447692178789055868805668487184144281771721714622587428403404882562612713230209259153198425242511618906026015067849332237067950746288388394898523434130804117377238843611334675545874534188731171515148260962193966595366594000359252103239419997320571843254971929391819303170725156278033366581091651061225883263208306679263364182261645950191524912252456477876336026575125434052121573041737571749436837705362032969139701640383847025196330341344314921763786911906405106812544126367995781305577136294710763928407209013270696512958015481730660723058895862042825740921185675798145329432474663010375728221352119512019544826184387932997742929262565119572576743736125833713397472037889433056686350989948045370266413541988614963085396684154681649856668721028642192848870873579185168256696959453919091950802404300170336209961834523271226340317837083260306200736112703077919297729297566497267687030892667824478655682406510948108652922496079702537886161419770905405451977636415807167065114738903902009262850718024565834360466855943479154664262554983950685486923448706118824621509637366931039555444687500724679868391158833496869447461854161698625020447764237851050305487176346156277074953351808223340468123472923481274998487806586992737235114981441170385172494347861327669746503850001836392334116903439521410039417539811839307594248800463139370529824180089916774922858871189127193793458185350697828444501160437395623113453690206959270756942699374787276863784145185727645568044750627999155924512377509731617011017567548935823023115244794666906330499643456974850685883451026078950014128815001556797402571969445185120157615150089555409182115704971819488672461580255224037945843470951567335162426577576255813686150055218375319687179237409887611063589175144145704469657883003741332630661599384601263693732291566145822211713836850701431130061951336354467645168814933892477229090055717748209157855205601335568797968446290042507605624888560009746215852216653546427719775906667173268624165531236119249879072674057760352433730307572247146802556708457322801101876229787201968474314404773111945227550140264923901583747038697658044880102793376387853342220040641697026485915409878113310731340428226031122845103165793172914599674008722586457702689970426355145569407502643450479044932482301370739983039100048771823716201689380335446138537208465278928322129513614258513368198414515598538503844324810357211126708151825316073792553062663163346725321499436234254185955528724794145681636244191429975594776544750303247407489206304340435180378865395779533142922290954294067613930329332513937203403294200538885227075643623144503766253725163367057165440894338825259118201437197129565781738397043547805541798380084125905904953441582799052372496047011021220062872006745632639240365010660424978512240344483504145646056201069882117815050745612905201853095215371608058979191646970083513122055970055904661632529933967254289620294476379544172609955805093663657416819567903204646469989431244721643877506227266993015128448960536966928015804001126743639746912848593388679976782174076331278561979257857013753362573273270371250235461152434166821573704536761687276858139064962343659283734704165232979698782239187665869602471444575738012469302428974041465960827552599178902034609096521067667288865410317920188420627697284228200191076884898238590452938326629550779588486624776594658660805956274765029214351510836198514002648092220395987461647754104682422773114787819322916908893812185229550542409956024552104434394989274859509409033816347690722694621418134664314030972619818756954920541288165057956083753616905430108012135935704716669793647229093489310815772067232270581258262777301836884775112322194269112205203694662574164902111041140798357911629255090535334729583990602227605007195392664775926635214475112410936088201642789214548178883367874458035260665639561391957916195806178213225186643552394713975070145379726973607718653498895802323481969405912623935039580052912179150965332214710438307178908761732340712580342198640775588111478942268637954952091724081187982164346352847926195623974915513439753425711607639992776082618942952547654054318949911935811551880956252766116113538325875284609458150472107441331577463263038503938658530146773899484755441078360561372607884838757148911350980207256605983678277122300804951971083302317574627343688458438963670938842110598521130946839631994088161992410473192036411802716449152443411678581135661471725495210752516445002236518010440091031920550302737128484308302252657305320955100814373513024175803721679195431108730297405020731210181387118119505194969786264125512085490847825956151444239539243278804860554775581529323630428929088088356527354744498540919206078649411787372867979097740542452189061722663309752713211332617968532127155367666300395751443613692038228934238384610113232169228673800181995262801721741341964401345320080243235393775742265255649405804373785326746903722916035972109939696049084658325658624784899353483579210989807488335498076721952489549482716469358119833359751914911793178409849215464192053073179906140948507087686108179571143651716733086864231906564339302630800184439111811412549945660799237779899373139134401307360725575320993766851943407612182154805668239370623960817575491557278014302273737801621848214215676484035540977290859922763554424651848420586550680949212462276390903603019003263299248401532706173367975321874099101098853190538367784604754362920443186689471584571394091406402763133229527533759289817280083682249943441960343432959145967455176208354212462705622451548204199398384027396346086881340753745874863366634255198386253412328068104883223580935474799060160458278812369370419568287339348106551565258792597909605825860237874843740039156684014249937343248862323546404463277359778531688636175729524154201603576544292330995221034582688541343528305874000448660866785218609569080742971777981664680034088949324444118697924377792990932748871121230061481418486718723077445418864436463031672552713508308617104009781477050533384208546560973658810337749043482004970001708046078932094354156527840533647262057159442415918108290434673651679915728392251711715044700297895625737802085845784094312461324672029275738789769732844701447918653074159396379778776347502950151309770937539026013332031061540235363898685697633630754149159589819033271195012950588790818818571636158005156904582707058709042265428597675329235787939760742853043118993238181590691044746920865811659982149192114884850356880036533034272489947589577641659064206404047051590346788092932824200774815476832086814549677956634884428248467342859182486116844397808944580423418642971122966288209736663408606330208442171063779850775007052360701261614546967902780534209280132967494418470967784594608948815702640450546361522634064834642990938148192308906567653079203360335773699870410131310374792566232569983770136543499836926326275437092763518860187275060283391677501447377108012294074880909179339453139224069949370226220659049912745351939130695358682502417283791524828961154787481358315927433638527432079698761713956137266491951901639869543746776798470276762250638012102213380633151759440604339033643945088596755285635222906283158320829681570354378103779171858187352852874925595093498222610116643022637400153007632376026583512129761056215125141468768388550157253090090270213786173588191353157715986193812256559330887642693080843523114635230775509970713351995760377362291908719632743429556105585102918182195271981915189599410806192096121577201974729707395254344730729151517203389250196707275776071662778130756454512089282711469095566710885893400266451638618274541384784595998403105316226749761995173631914879220339499230672642746376068356682450399374113380479564228076280685337309291059068630099919844154186187134627562425514828228338609616426716641072753189590204805601207780616513061628458672750098929496030648174545340540166475475050352389341210970188973617920343992280544236785402711468682307662854269565266470822791866054233907899257080619393365929124421771174420216387312098985874419995466462962226983707726460524699535286086557362740871613606050403008403086153651892755070863952339423110376650631906998884524687772139782531028057203150410754142542548481041889119659167543150894714943917674487343803705345690899118768024982622292478078650832520215892372807713851604648427241347456429803258350678859290281158457191880197066583260603488217875167369780006742256322308989130801665820941208792018609162342971042729572993297895852358408625128016984502950743084150380051517207459894388292949892666873400588713826645917432811316291252172264436100770541663522069365590931645876090239476524988990208284018311266777189636416383695241682808279242382822544240569855394394129586097282752884494501666778994792900431977416549920927025617273795046653885937270132036968410194334215590223091803119033113753642759504060874377717184414233486125243118141846334727190687898976403581071757008722089020379892666925046640137866762011201155142975266049197963006611220362241459169856206170850440252812251303238906467855515328701954253124604712997051619927342076330046873242252683729240348736546555613170945882587300220257200600801272485002562225445670963655833419450097253316509941157108241726761227300956426622588538937110756069604342166531273991553929741574591186592926362823262715583064449467974072518174056845203510383329729901014596559600340395575326084923451903472196699688750432355355665364801668254222274408671281060956239109654704032786276112170752997805260239996971855412195643394766344131098490572114267717555037169821188175357392252454174033578154002685541578064788138178906872181515733072304027719965899393793669744301729885845697675511643341496923258084247364057596045902408727721845331880416349212407506804538861256649175246857264658592299834446724019695235523105419179850415779937903682649179336464385794461156400084192929653782820575824910860190157924232471986699692458025226056122643786023100896176710034290743488307881059980425946767738794094050615474846590256172419191649227168850300134872765005221747586815571217062826653428661467758803932673262235048551305216523242286702853511787611148670208493190805793864153638461043369770134772148551481989788766486566275642078131393848222532183789593843688668016608629716900830410150036776396857811784135881191499130243883228527714034621351799808553465506821093465453821756501566174276108067188090095111010314770063599657852535138306759597457407400959876501699324817636680319766969901986619657368899656781847334148587089174302478157821450338722682755279273753797139373116285828774399757571256716024073857201668149185105335020247871254130187718867107437033212041128723478284226664645270306158848450933679410513043111613219605734365584793129029904230753563219370375352851167449570901843030758781694812846745758508570916327512354779827912601994328136580031530683414920126485212820524145588357682759409310911170179324036925855379348401152382017179920407724928917585827309907128837346689223068356953389713040368807917618461137197223808017818685476465752335007000086327798332074381027670467145388058090604463573209181901858762755173083092983800474084419885343076688375840932912880210328122643220719333692396766174312912881723858326133633016249337213588098557707954696856244366014137815224060486903708724725806349262820046816127219076424116957430138911350230955437412787761341510665269782983443631607888027788711412332995017504261732083216019895621109698030031089955768181228312905471339865168739900412715550155575585558286947178545847670140100664478796897900860570758250290437102178084295161174472438115996823451213115963714203985652045119717318941397819866064542936477627033076605842123779469198402654826784529932253148590901234656000517730170725527444179177577593145541027616331223401810165440089889159427500810234136067985374055588289918015753787781910018620623674227110486199600632929130066558032932931930572936771304297032654261596517942998715965953589115773408876769307120568308989743433686934104270241935235131787877112563121494141667674758767471267084385386210519933253043808148795560581537986147942959035727062914066848365831973275617046599369922276329797126378994021793373565325227756148747509264178774466102480038286988154161905467662472773199743676189541529927014203949822649152561680976118682847607703199489894756323418055367281792864202910395242187495917328556605980832381881515151976195649933226281860620092114170095538048696006030910488254532425682878393027448553539999233870526357794883369819638063241532634942945396402510757228987035467279246672247978791926786863810836656678976856339151312678811054531312897345655074311474602783341869085120987622003668983738405342538108874887919320791335451678653209033161075753156171276106108060330123982326182737710271128911844640888337147804638383690040396101544530741031510011750354999117733313701764187781592745992868316974676325319352340450174788844060844708109703454154920860636892766373179773909967275452008572622572573885112927986935725550543250268360596937061239170404319016580370756800660460549938608319858596368114652024410898390592103623509476246759164386992541326457132319450648067124453800085242301059705420966693011777084328031906871454777490171681469762080347928587422087108647448012333416485184407569322729375297078300432926161733262180319035436325451747412149590780451361396516028645704238447085889701354930038241306119832569368259986512962134118631603007399153530099100324064165175959106604168182666757208137145955065605808018703927435296276753756453465976692528495572106955504502464846735833661586992081266545923776430483472589681060539014592723243344036770207991155340173328549755051090436659283139060542180952238960210196264706646787977116946693157621781449785719217461355075680734750035834084532850684588170605907024322445381001761344410370118630025139126722152368093085741511650106750148300412291717399377577682066036798486319581109852675064746336515004888302270015025660368932746320675527089077348816568364888378385854143021978901557124063264888329114674632546202578453277183482145448441286068829186100079721177996531439910658014071331893214597087241618941666953690587436005296415891251127703231813643648836962026387097109657650628598873209492821124605044306431699484320579362416837842939950679119952946585554122374593866498751878835852285911227341210295047088849376244107182669480445443643844224285953122472561473106617740129422659375500959807168105248589448174198832720747099013639504819149620219703380625594955568995566836624857949452271445544933068752615313226073322097172185730351681087689862764028348166248940683101294355900058590561478252399360138488607811000823051043495357406486501089100003297280524209824340989835153125887625580602755530591444324762275325602463921937551208490782230753525256727048016580722303955908631567339310996017894649647006193420615948577778647758029679237388714149840184055491150844327325352863021201288868007420698597619743332790459001536178145156902602896757126208829457427505508612901195654666067318628155143716501493158014831995785257557535343430089393755400535702788837740406740763207875591769160835138456695535117791972986785218903455204512045702255794458610372115705281224605027237272962130337262339306033059925543306866955232535004757585400427850687919279242868685403466332931355400735565537863501246041022885479273285478039621869409162488802925198308405885953362544863192056177655958653480281881704304722431510696404492904631959036755265582467955040569134284060345605039607355554112207220667967136824679509312676869322273316147537298077246982438975550738768499543312895715331362047743613187850227324056704933754680053175531072979179565059163334830941847433104238755617444812732870603971393537806988813858078488244415639835820381223157918002070319949733379639208025060409438424973878585937000005474588836434366600565099431876549720866875423614392143494462545615872890788693574639287436003736621203565509354910239695634045029376757691375281422313398822963861671954522725058426689724306019854336741129708430274397083454072342009488403594872641085127795617563707619977915922950186342607348363378081240256529075785858992993649744481301257662946527324251800834515683768693386790741373395762439598292902790943477155898933629147698921353002110135718195715357127957501785082456770551603253636868362404191108879320276437134094849993503623952663343291925621715611514389480289365257604073576285282984030821747009068137356427709458892247676854561350175558929005339684081866845995975504948505404472830783214749041184326036010221697165465582044657215383379660105217374893732818021034056828156082697982155238329032174979927405554378168055203180988121984984383675073737920273878321169098742769107911021465013801220340638585961339649343582320649507484867926384643459175170987593903885247707920168358956484526836005578148252685471704433582370397510659445552067079347101095865061965798138638143028819265091247231479893501401658766670985790452645513398472363788635736103693706975724115899557366086439375484983971094805171711026863651242827005478791035521833721581599934257967527726697270204676147029932823892761449739140867642502055304269896023430262983212118826523240997419380325809960984110294877032326495079280770370673620176676526783483048824076717576962078349769159106827183585646300372873021099012730384413554703928502196414891088997925307324866147271318489347017430334824020688076538803571408367559358568297866064960302429658413702928084038585280594353751584290474053715471004742154036610539600782458583155793843167535526666888855622375464782304352602290900387795648775763181468512305806720958633410483592858599071279032485155508566522914528080581701961164028344486373102854560617875127391369045595481307795069011045920555480113310888543513821953379282473453264855523778828724675482514002155217480783305232423395088860650853655809902868099400147256950770897261001049097830318800270667001661873855391335674201756848442336336086358102382575039222147848742774994160583698898847035458600463167580387626981866524979172945881640064367163199867624998084591970519649595213611743468168592279047527608203236960202799012076441646321597279894170577638930780566561258328907122968191552424719406465682706133399307615028558834895566938800969046367178764706977911480584041813650405836444302385931349799737378608376575375518509945754539253427923690477746801768548051286360683466588732209445350800365491590424463608354544697940459023332827794140979408559699893345522359226803178289342845846657334893502840335114024594936072741539894112207648115030725308076014122959285366121423043540734023672412969277768015991368373173637186594306625695910370596736101009811143496223078361919327440428525586199545472490850582639343131649577037163756018416446957794925152168241872977116795265878152548542152103759827518973510490627829603620083646053245481832262520212282634598987592579046804531848742783312833905269517301440044571210759399165241744488811914780976477305406812655858000190622257334662153632635888273016957799482817708359392342228861798652344213563428425681104686267210144461131152839060041269329478684331429335103673575781364022783586472784103716317222863456322596751205666549947419792336183937776350661182694532302779223212968037695637027825744953738910765121896358631229846930091964761459338525239432797869424005398917953521130138708114439231407367818513358406430504612702957802008731782306752376534225171045609089584626492631007616615413994398907919552273463362777479312355142949312428714889474535538488809446728750756094227649114731375746651423545886240138463143347466076544087247089672490144813015099215891103704076247782666290931954880933004139323054585656822259095290108286117607998412431210265261268420822680860903462255884655707826304240662412792505024540528558160234584842725946826799868776001686409361660155674976783666539124583768710656325083169085708371416400543172502643497148614802411542914215347390580410649970465745636056339775068923758824928027776290125568766816923909656891981519095516953572333486615178360326645583780674533897140794468150422868537144607340068653985286120275447365209049987109571101672885770997417323501456660946312994352165908295517122043395588083367178459736683768447599424616575219138885335667715400733012383020200091158899753034105278249864502657946601264873485446788626729570520322337545375620144969895963328065586570785536659947957776947522030927973522275577801812566419889395725232083356494424541255578339875300734624567025365689506316205387143095522047353669376675837794306291598068638558921518867130008611363404807758880409777064423200855870869263418202523954479898796437933197302757996850487164347278170020164020936604591106839489949034377751182238297535006966279297476374958678993380920832873341556918916279497295443860386680673454368052627999859758733569344915924509508782403548826885625526737371845489106542466381639017385382685660715311039600250682983325594293062201130125278704399138355554109635701146479818344912473730933267375846193803885816419970708343981881297379472791151291391630122688836391755258705722642463306001905719626900863611740299237751854346667133343697995450378460987265685962514220624519751953580393826051028455567102532241177133344830783482357802169695123002913704077892751312211917440475962831441231908857282661723041752698273150313600360343732397582821117016693010196810317660649986983554201950866997786704215092153444124786873142064044140412175887947087178772727337622979860008480308866532690867270397807728712213727429306997288955331748148355929406499161801198821511274512986468395719889303691907664783867465635189464096148974592763467170710824988402050086707759445925072178294222062283193496304865983356295144615764448267245236816789742274674862372435382211512238070026607023794676673001154248349745514418877204305525716560069954618855702441043458920943676752131228903614232272681309411688949880597627185642890519513658554098843667661669591515459101303079088193643488678407641658877765695209578262798608816758907488589080869170646306788589892012425265909253654923917587188542222534391289700873141252193650742690463922850654570352732187397751132680878348090349933583970209735943906623621060510366810788557656831889095907978350687676910911095097339364830778587720417057794788658834261590276425760594514141574934846415925233015302217309371847190715286566815854227477922906447728826155691138300433360453077800323698111245194665179735186899999857479894526541500355055298039686021801768327637812718603197858467160090956514363707506229497995799509462475754517896710687828655669046262456866621742725234890975804806001436175977006447249138715977850917147358347055533721326718181818020668160511999272379113569580407825759258725483285034650058950111352549289597571447858367328417908570716395408014724420357301462401753237872685770286499873149480914766179015499812508248094501408007002186495382585070718273153438217718536461163048324083697938934734650467652412726128307696608292800107025921743347080741912993650840677570772453998465705775171136327691854443845192435999262889213739669790319191444175751803942965863908553820717639207317369042138916698576777781277208048743206106180550106702135353575086764738115453697965180716339631339787355687736253134256841149629508526514108621511998506271080706891619155474770366526302490402767571104182447987004486094212967203731727125984301364693760013393898651027405896034262547908531142645391661973437871723558771435094460305553743980312222593926816036496700337506005935172432645620183026686620161746169181242378495424567659055284813762297570492788175949034194912632574575877821894702969495131711399006125331346156502931937814713649849091282665460054002587760214377200439415779752902632590017664229224758620649132679591771445501664089135311281649664489319303659001527219047579315577028156102579557339913922090508869291357279089096337114504376004131898369254080674842963363673553491347721870496414901205850767930044307695156788364791968853398576926188473100503024163777197631319389913217480820369668605586879318547595083274350728164087516538687754268209833838455660771347619006663528798891663600932116905243185417875768235152659318924121518771967823841712724766426358717916584347234700378425735774358019884242438122787317055253882460374404795717482162766065658225454564213964333128439233663216478589081550073954302713701970523453769816850959378885185654338123610825915774678085766736522402941389144281815057304061531446752071320643811479372854936894785128997280924725976173024812971315043316486553213537545369682328450053809310480896225292665592733249503300579405222622903138542194666161211740538454119033638858003194983016839317598938740309756483746802358954427507377215941204891773792171097387206573746871263790954792286980973028879476773060560028480297787857278062059568661502367179145063201031572344378039868005917488841251037202135020125654254412770023651970276381832330305347162061983469648385229417027435767773048091632997769283119347797859296211914484503362313698947932192349836020690988218153667719367127211748508004044264207960148429997659860437155948298984157029814433728512771338002694316724340249604564261921905864493414802649073804098275324246580840101415639804920121074439822834049894743319014811939589894495576998102321374740321770859424773388363451235545612685658553287882782764683637068326600329173492856205568344148269513269107349132699300065153155483990104316253690372014938356043964162148625273185873318477773789896179319115219239597493030340593331917041267666448764914365266178115963775009256801857727700212450740611983719855521741556050341485127642755962420701840305867543445841071610090961073597075663372078014224236205753612774529299858521080392981147479479553664107361950757679071917763585880382825459945146639863503842232015123242213923553119319401988477915236081132455375241846906156991498569528447631916974559675344504780978159348977674109787852111605940627218525749742854565265114269982319666488510918954310057625705045332677008760224312449927450497772941140860428456429465369409290072938682591440315234586136916965267820940542540204748947414828565999835509342874778142364468996898784545183754315609461831573703921960608257235265708121668740444761863416475934855831425138955757603250740546049672233213269137338473014500348494709296507612203968614969245169523604542593281131213523341322150320604716515388869456854422499301220184675346727740251347005933015059677321860884935691192815502955388575287847340577596195678320060149937389433302743777392285633776450467267461246373772567395284021640072770843856003070251290662235280229096878792184365588882239153656254337113078728342208578822422455602366235899455461856931945307754029803232451344515382139355988982756787662077071007243314868720232871310942128894486036214287727621692071794652265198871492532193426257862823915317617472668301534568559305929595898944718207960386693966990014505806413300039871867785044606295794842774703148948626639001852578010332381992232387543886574296939972105049619885566995132694609309230371023410646401017223387681511179444478782384866038649110369618175418280888823271081911200142474057261966635445611907402048706626391162986486962167079261707024600080254558713683154678046661406099724774700150321675826531431699924971100579477061170907915199435366143928125690943401781033002998745917485271317884156086670510990432186838490286604966723652734487326606868645798407033489052361327748977310914364026475896928466320994400425344881872038779232016853923470193057720259017705766475189361673915415709828508003990667054924157931866736843685252237910563853711808684488618623462977804736428353291256603534718380902225026182199465434193504985307501558322697055719798829640031408968702483437978986263860457242915318953956709718091799038691245032693582383170198753457583426983851596022532212154728153064518425982222686567878389014032833367407724264339648897679119770504362390282696921555562008191469782536499549311316969421126836860912816411610547874100019314931922332680846236051181616766359953252724287159017200576621457834009466850415042880654274488354124893707762776756972193764812240760335385594966837424387173630493749903058327923558549463040127024132334705537180152119031284919851809327226389377875179229716908599968176433570455779570972864971596809894254156968761990875598556030441765697081099518324705721427671080566542872371200166872077742833423164266634393508196665936349468438812815211865885330524629295094914438827343574898815444558838316405783764107370291317933132453153372969471509269991788259097804270824763160983804525718926988916312401827510582717941584509480911529980785704223830368565618683538076231160107467547847040744803707658130641262383028159570499922320633792358711940234542781512403026367819864324117495272665255577865459448318712883453240512104429295854945789428481928340519371777721455199186091243247961823340836386413009476341833042161125635120630048931421266751093905723996766292184901787069197307333471789602578940750941873959451618959121452714266617723018054098976106968555771432020760254422116145009400755560757047635500144148290301840707618192534649727624049237339160391672991539713224054599069851549851335218383045328209866310030498868402568058921003180528599850246294329763943217902688800741803350690970204105809491376550904771744934308677454545088780304375275893991105332121056547925723978261136662125867045392583358350597930002052038987646183662203677481508445972102087132255378826751549553238930271057726938465587935718394046509746589797729667683689890433064432570881435188513132133378185557733066587936894162500206943648500050630601527771432235648520433677395366851474635816226592939056397372402766531577597018616792610375388567034026979689724882340429044506468521888358382658255627701891563538132422704768400185978587611235908345088848086721525470090153932778580995635186352977032342061521702146090984888747709442490040393837918083815799185442340546347816245900691507844233509537246056430276546089952880804625634887354265110219092621572805090524332444785535520769444444071357696559374631768085827391363144943876493198164727788055009864277168476242438953260742740788824123660597609763003214996860286848955979195910394833815514331536980042487684683740729855943451846393160298631178772069821490720033162353766361508059165828043500992525633876265993158043298038009723162463284886482981829325861882617837355859494141388864152904225002984810242335457623554603548135942549465715962494812280108423980549612715753542687772711547355701139787350435290345701932387810847830682532103427293750546655510962303064161917875725514662516061672814524961723244922147814230229763963171005110980372511872666002587029100228379503404962848446178629344009982689997013081333659279087787912665917022708153135074601198796682617148565794244278178330155150858300236885863645395087685766227013689517703643559402258066592276521078704027603240395904281872168444585496844865774638714661317357277221836405597616725601028367577871652224080094380818533273400064952237384019865069641853920720189397665480187826991935446670659855911532497662398665786364741427523201617093815400455282235917191774679694157603183322661570705940477295504195892704479491335838473214544513859663216744882256468582852366496793440913303479985450415535182463944167977868560750295569974089196715647570034832750471617613759912913061578406674047113291008959761068967873981130052261068443219136256368318333085895576630565922511185212495974664665397861683604846609362402695493773084841515672105180920904713020587376746088668124812722269309627384726119302534869124613884827872229395475918607989095519048421898364059281692717477869453235397353303288962635549569888503943875529209606532121238937449623733356105550973801018534438094184507021748799798083662300404428189439636567726744129401316603564917856701375388196715863570868330987004983816648384770225399642835466518245783948264253499917030780799259692858490007924421062842760378753638337307082978205577511350616667287670743200952349513577789431188095612134658029333556716134659825747229703392835789300244265065618312726952142291288562049922035359712113967296724498893599190663233828667599673773274478158017858569475814919194354570458594556803704477899569379872622164421434084019831564891339279674018768925648948942429927033334110532320460999903477828990771173861454198383990071855330193131463450847848401067075814310500357277375596219290445297830639208957694520292297805725438213779580476201903463234725030969080584328373354804896914103919238835708372547522969822979765807532905456829159456205988748948897820770672372026324827638586703128616826246163253604257682206992417161374619235085201982713433871162139161026358371162346410476019255444090619627053617661743335756740102663053776878542247388833524328023537275895045191800992399362035062448519247480061493032381876858233914361130140966042388361986597504426633928567645636883187069726368292200058847097413357894831993989908388466955970375995764746377095965009034285429271663468172106504219685673317057118769164362911187565959785805841476160863203279713916750445203503539888489054832879499332972017014935284303826897935131442047023538605490078472265503564872782766369805402404719956455751357553058969494660814643042308761915945586184388328478748314102047476596632387296018708207511367702428846118746659036478653813971156996794786990271441779700766411921281951826825145188002383704762358620729351140774745636799822579190974828667770581607971142297280351542165249285359128393779926248064157724029555027926744695932403246407576683562955391198626189030467028594203998816047888382356047920798229856030195545326679461279789071301338522989931629630546737229842554576851563704658607910199774346036721198980919961760926373817531431812741168914168417103247246094413849607719393217624375286908450166340652659398057526928851844837407801634279575455489186638470945479243756336963760570170333887626750228898203990828915775150224645790084149391653350720679779849947594376659168653294105959410043327578654265294291339648457662643168118087476377734518818726132852596931948799845751394081401860728538098833605151338767769255864157594094743809143487420692649534719877016863793748175893495951435360508863324720557142235290558653467229922270523713703725932343680305919962839820924522227986889482572471991636694515366705730144938477143839057485907625425312813419958992915826092400870980493643133468659438262978033034992389804614387683729719911033332508070843019546108086774027476203201908638927528020257844421349895937866938306108429088415592664284528767842861465893478265827927956276945766333240391363074738584337552139768279338627659280429819112781165851407870860396397113014183351948903959629448456217968929653587048316758985194301640412792482468895574473380382465840881631930716287113318335534007109190378266325855048986050902266826531002348880944512781425419779473692444950360149106241377763615059976453180854691596744317036468018054512787663335457398745247862706828183870485263793237003702855762843801971934613184427414065832403097833464996300413184450256662318738158362333892497055138655849762420470745733223667433069271613886145142240163678004817554750393982746251603140735812605790070714850329326685299545362083346456594428252418676179674944228580406335342063812737545841683355014299022710759596917065075418768182034084025530790361501738301353784006769888821547094853162911256679269491035889464700043848366095122613040109272706394898399549601644811367723198660275596325908564115132197556495508178561349008732075512764949107336831543599604946382289995704329292454648029075870554766894420320179904607951289066479965740784333650846396734583976481084908360534426623952636999687567419904060508239626476873572019627529887282065838845771330225352998326804354521582774978243536795241728881294340013054673824166285557817292693310724090210987408184525873653713629099757755038376948163602984800217728949910616070986580366615615198009999967625566875588594146435649802018937299993947647729724555102213896774217039104808549502773488959853218891608756643257030788492321967239403439575888994377668919883014104996399160984135937868384365902311280978352034170575764424152378472084605083604373046074599903005241265609910682526511200328665240241972207494971377581474249888406897929697067166526225073845044948689487153615060789021891268660418537830720773147792971428716863553392800955111955672251709632038098887429963235047333840622104256889100214941701852728678034956194402656431435819290236890464657147776157305424455870055080886188866527662972769833334003269128768814699652137539926991782393266480722036412086298737044248846409800530982265004435892063517397549278768354906238410902609756355536640661512729617230377995652035940820254291909742211911816338760683586420655819094434739472009249489938776384257584519898510670675913999557730592096937449976644663168934285320344496931518128016479880186428960348793516389325732236327672959537235831216794152034622996826140092917704169444440332330921891400380740678295708060331947548562867074780755596069100192161097883859835134806505130324542548791031037394222148690366640230603128310124356502912933440143749373704158714844248517845661451956360331537406221366679661397331875185888807314557180649125437449479553978330622811300894763161589905920200266387849206878807111579154250966348429299762746426132192929541748329074219557666829384630722395520890006465605032755254768614598588759967864008361336247587593137314474443967223554759029463961535505357556366626187102174847092650174613833542625266846505080123721441302106392881225160039326271076147772303989432967957508849711565291759761189159915705088920868419153876410225774463863330741257991485519589020559895580105755212287477561973420295450984475039874565393701369570490359921761715432384089026138218108946116584323936570967994332921902239430245334840683735988095852116872076986924537302179941757130972793287273126749054810888585843557426449874920527475842579664951378675105780458089025974227071516844096112306163200886408240007688275907633272839181187848222007151624633766627247645774642858384127653250899992089753331521180825791571104562433382500483727534821666450015239439988110302274942437490901332264162546268294658927682960357053165161718046927454974453669775148155008595509585274456605779045387645727844256978769308906097222533073534701690991732396722880649858057728914603234111489161551310020471340998836062119526646257671643139340938843564959861891058135848576592442061786804518136335221438057957238624593947295940523320185945034442815405800096106059508504213839061489425606535369093436677421992626713659821323158936682684706689132647386503499654063031893081128132250738887263166990553529846975313789210656051819994150031576573719002519576671303492884600819477236018212719073295343988881740815270910386380363368873894839200697242664286907942647833863780474345275363945213479690485609003915592354175917200556215719033374148246062062912520374603458165502178656773181802292120603990971284361599674907101721987053684218075438553868712050499402552175169168854493707492038074607032963146588121794073096795895845303997923046720560456442066809512878637262167348885284691739976468633306710812967714441026620808864321069432795939981299426720827094779276741127681089315122583049034529126487271109084629787792036723684062849710588756323550299310215602393500513536257609758162202047918108975809381146539217736686653096833111624900737910784714231048983335796472742057632567565692017897817476154597803320853095716895496291510361161695328619593117028372977906728662370901554616478866046441917789817131946269500720310917987636002289870504255782898441236026543286669039924281739503587929622118424172407328930770142731634554495745823438493479564120874248224463160656634501547495575585683482537189005618060723869905385960838517899178298770871150833926657086846514775223036618856492073338341542858226186770062808000797731933595135284225134126402148725001024058188678869226189567088420360796710816724718895999770340032395548393230262914499346945373938323765904768026523076447341069386104744271104487529134367977890126641947458864241304122394358330209817869776429214173053742507504688461535135733953785986353341200832806145124599452088180481803766547385030372962927857057890769469547046333776916355769283975172062024023135430437664461407012356854056870160459844175687780248077567690645590605354430369368453825219153758780124020659855384490470641553164528450049855940406162268228128281385057488294390189155595702160383100618344366513525938676104357282847144791740973491325369744992863062832572042502386309062961329371481096487408710582655041544420251407607318523138288680576641988593804749596113503502119857245862827811520893869521849381573791642968729039383348112087609300468464966133893309983434533688645608841785696344669222142787393395824142336922613979594872944786528061263548277937377703607391283628682534317303123215650645199915131242433307908634850252677841191982727093974729765096716034108512406961614874563958156799834658831816332497496405016447592005512450284313669138672605703326725353987674059550977850632350922551126584156622137030299331183231720712730394362285270600064029256977206963352943020644170213735352842303876321817070719791950379840573887568299905603693718191541848252133775559624143708119072406497584188063216378081135185930836140711377312629057371355927870007098432188084949139309843493076598431588877403144656691191463190435153539003870999303698857544297910338645278244535238255132429786929601303420635861346240858786183583482432832415846941939562739181502463368594150328641539253502232888688316433038552750160911561878908794942444722888946593704041087146272723810912606379058469576133322068921664230352208637228218847406919448523968370014382225784306153108606784824157360382484305376320280286041906720845803575369978540123069693402067722654034358001784978349083871808122191244408966217828900671746833973650236686241062257649194657584096749085504636836707916130661789891566053191016228542823446660089515040818064482381478463555855367136598809783026487859396696485798146045838980180623172699166933646191820787918605048147616845712381708661010668056555426638485371052510029346844540769259120333048904004895959179504987676246128212814941394823153750606091488884882624202362920002615187993321296296150982601930566937726223626627654053006936800285918786270730269790941246614117428281215884863665963595639919958244614771549977637393637301769341693969061697493422564011793500320526835880296903690859360425143682350172325686138235877794262681135194060996069164110665353153619383680727869975689152081197511652604047716709810526129104211883559722558857291046777126822625616188392303545720629415765173187442539151703283395561994896537342789502457155150604526716832116716813048851212679704151473914544604321169530641506270565119668888064699873896701619169151191076592956637703609536866736231734363494844240706020581248476693395920834630603286771577850948072236861871269065929074263946035607074477066263869737573438802187466817024365261349656854679139216822740476613314118893748811750927377366654278137794535910588438398303435106104337373122069592775783093959251211592072127592745688404301936490399488243664052166390554473645325595650241814954100068294020455593540939197582703013124501143915349557262926754301671379553179598584964109698114525072468070280131609957621464599603875578943998575205744772407628341877339200296993949485007593382586370855367652861028862406867387230294666807312578056051558307864994583028005894073143888784133430706093087439273850613514401121428640561612113441173402823322846106100258632456239374488746695407799725136047529331184649551570735947045985362508452008112971431968912224548862652817470139100699204927818626313959423950643439459467782197889679098145751373920435431572426013174181903144487118508854941094163621272456643163911674367993494824700688521746469091763929273958385135700643636665611371370898706585965765881692392763433358747261595105351364521863703680319653973269595416337108705810134579214851220466801351064988858461816631736920122366775751861150465819155981968822738824123938172364870419744026943461407840885532507336949144078825625114898977143110184608447277956325533545372952304234380781680946217788178083919426412702878725968415080773865535408900354894947678060144596348332586887177106657332955371115677395717380906433587961323547152651421224770894482678668414681271862975494760564984564768072501786909706888579807457256077218634094072966228471757998354833152367224324582557382424695520557567803970043421736547917810113502299273033670807676990525233363274591702684535916448570446059969439604858878522420391757451541335163886404362486772660916680385100918305906882766891238575529582205159888374144718060241022126196733911531804056006858055049800092781324800934433740460223861285923431592190712053344294462591380274321893562177111107728624596407111015868082891404142690413953651375786494093728377767973793738782625753726331249473666435583412179650176209026423321738824869474834394844708210091085125246002844554110584782360971396432757031023395630109534262876890165370551887578103715471744493028021807294715230818799672528309674704264064630217654564430945289878955203299911238226635621711401828137306509614024724980866864704997182463926668675328401907847285394434218492340542723454256467204222458690071418632567216363435512664949744692813432096365872685593691838776224143200282773546560075649802536316696108699842427433851071209050071662238262862856820205653163776675010346847256395757909655859232088063598296903503430292742895498849054502403904873526362102199499667550130478609006738866660425939199888788011562289406443441133531364987017406618486638700249169689633359708721018973186430056314850541840043701900203983679411309686803506387695974405043982115433793746995413407957722525868259754881762179520114452982824433370467422666595227808025222616162697314766163260269250228002133080484655184663162860316082321512412961794340269720719010757060341935341240247622301427908369781297689326868269001698875640707647288666924503206320703990132775459178369873069749196776097396668541784609363195673248369209833147140082651520867178509368899335817479800106397579006396748621051621534115082596044386889685963346594793587204788145463309599268504403598673455109347515733187720617719184535853935006613835495368421905373655606516264973744591325513924042744633696871210384644367310151921550479639046772788007370820415180635739859273698301546673644802835114744010982586390658707882498496707651963638133209656478786325053087905360602324739583317394823511912511982455458139545232011927870109727329062575081850546242763884127461720469126342145826686696094604973067534595463737517791045251835615249021381825634717151159176281930254449571435666766131109347328283052367097936549936258260461766454701778498434544130300479877467747324163346527812482293524466676924451757328320325723563862751269553823986257603966704408104361768412159089832316625580322341122647429642408155866779199264787798284379840601416054254225164777286986454959743582269526228808807060751139591209398127015981736893922445800322937847323575457950114700833486197740065181178766309515821669454960867866974451988227830145924031346805038044144504510529345825121927456927932004012092961890554554074123355297663494083881201725962557497839114771349448813347013396291037297367985773598345734198932526625507808010569865856241993971342857157709674465711846848799749151927611613337122324719707593160065050195491199371523903180268032089859734343538787209915568482413940197068406341325029059242297594957856450510774461311454750299807563074709553874103716166896249517682023727636168185025433494732246994974664051172356916777669956642290118371396304264202049800985311328570181765987933945107583564434776835659393740371899428140648742133445818790628694787125937641030561568952836687510060658175843541127023635400245029736029622112365164097036301678623406184486773066891982522156543073276591193348895616252709807008849379917220973345641400289440974515887180180966204572136114911141096372937766479136117076831961273879911820180391501826694582410710539605280375915431404288643486639306289228140012075244609656474933153006410132381066005026824582583420628704256198729337179174185204312636599639015844467224389582636245058525659839258685418890674515215465415659932656115027020334993137701156259463820755837752875499058455226439121509133010779095729304966221427836744757101566073516533526964351246435251159457462353271333934046857720007855383049666248496111046689181388233969595353936664557682541119862987671258308049630124296444780703870957938476351542199862398142691459575247685003336281755726763211325082818642886434700885742953169305628289882297844701968815443023033405384440949600520336513595457390448554797458013530510814408703570987184227096628139164648491316202806008775626764171222158851861414345524289467889998081883405056022707655658139411278855902912460807561394799792207397498778399340920962353043788262922371892025731660102904829957124125345231561695344734018346758180327880629805479715530532688091469057237789361687696369162176815698778068505778241554443908583542378785015972195999143993859647724292842281076126245522564529218096359852778362818503183551729671382331701295337521550561808571863301163544333418211353252134931801765719017771589129729685114205683475270102840026892155124617397318674739408156819696096419666505175910411238168206255111536332538842750612164637303160049104041215489987476206945201293428007107724521311702352101674430654303472649569417192128352660049911474296375955876960431060673347318582368713155673158232657823136244151532732190483617206882638644525034432763888203271878529136395769709064954957888550340935205691391622811580157751549759948628246513977702985881053932877029621474762096501573381135778898183013041928438413050831217133661698634250854505052696747346593741779190140619388395728973057870949571499088743601409077499944340364357833970841070759412847129072693612422061783794932289049060245338327926765865474805479236979626291816646477518807167127072658375025745571852128793500726317491942863377187581318062549942375149514550933048254301639020013654087673216735580698917852983191480363213171376272062753108417174674116587059978717065067963039621247533881644504004847508377369893361731862320344486679847950912547426935679376239032430882608323717076719397743059902001552775068206544838356194136662605750665443144139393582997314972544479509786487831081176575153707579956460238568851037386848683256051522374226371677941268776427459406578056501688443655818242304582424703634914070806939935934624569516423383734060097782919421631900127567566386753319855978828808468249562106549984690616029423233536874427703356167962835474327220741300701969351383359174340209827178070320742413347701431253351879488408957530560239202515023531535073162448415310732279534663327902049623080083795864816744584990048186191359717153338651762722795840081622098462187318549890500967209753048080731388392745147934546616988769233667056781135427720677369724995762478148281400759729060021008366869571805323162614710928805196477807665175519650759174178954045296366624692870981368217134781102468166463567955424798584418351554536126698766833336702773608855830414679616002037691713989209709764493213573169780353235238050283754596068635620707949526358422976842422421625936211078961415787198875470050408804977442580897973616983931852337607458691825319044133846910792732241786920031991130761352039872049095115070454167588809960565547821827164602672990222654384733765582052330436710552589708707496634199454754026986917765258058659815126054059329544876894067910819918274741093393459354448458042149161202186896724774087260970531728874906660457063674273084362410153532890384103797399643554650204503785010002470351594035262271294074845318414615378717658272914837787656980036311497500421215979512927588128659440634800989745985805168412153751193007274268336281943458041491121201514706341959894861307514049053747139012191602174805346416040805295124045755082957221935585559087774522746403478381667346975930618725971980799872062943234768616903737236387254366362404720810065390119439135894069354178138367540042284062990414075564655463901375895962178008667527943681596297477418421233515835470776281305439805589573560196983879155561835130331351235838161757308003837140042640899318743406850781165003478670777661545822199774179260646461990127642981540946195468681368258433200793155796166334045297580161105910437073450099619208565030017598236965719125130524956911353631087798138865625685433063331197215134450477613643670461391034899516259163536985750195651855438865397054317636855296978897009597363696182006142480868087285840938421095484918000502871295232089398124174202714703233440803059690094577798086183609684348793288305044158463729250845155781913433368810539850935235114885359386899868060682189528603788796711970539418769470418601364180906819475088468348178307020168437387340203576207207920541993207944721550857269264710631141030247742087119567851820699765396184869473722612653609452051953975298223476254931177022686622425360852125251234845040707033690884329564739607570701420509409437051735446255724230764239194361639458991688830957517799256565920885363382272209661460352505503964014284822891654891835838453138532061111078149113212242003280318742161795585829038366810741606565345796190659941725459150018817005200557611138350286738292808916405131752483389978889943900713258567461332870481098098049775582191027767583453455759174869929685196783345565550747624573996500930157586676994738689254291926146255627258081928760950330759043724743046429395524456537145046785808823604528062015297342032319691125708356653806182384753495610610515631277026011215618424245099585937738272580850411393263266016695349967006192517602245810513569210331542364338598081799424113849709906177123708546209715536655674817486072069204468059552092315468973944058451567852671874015393851570940228168683498387795314268622902802468571369013257880317975641239584240223210747444241272185019448638344712463784560948810719544549297279509419861582989644808989137705088017597260392842019673536024768072148400862136441226933136511685970768559057860746227083173354694176175960724200303417622329119168882341817444453902800210449312709062882889364257698622985072093399545541065142356065509886312065952914254853863296944344186722807878478292119633638747288318836935284738713449508469414980523368109434830824696547044522989322520455581467476971331158950926766460337395584701277320630598229731617733339791057653938230222565438412729684443733709533697589184736474334659830320336293889321434847292123210874087159439502325584718430191823825418290336030838027989010992241309667907819666721183352105145018296162640849005507800580798989049299441008148890787692754376306592614209409756561714544561543254108779133316151105639986159311377219827067946009143117031511741028148176377001181766231228932164041407194784060285218525378217583299998173785713527661429390307530659603050088814595195668259659690743624201425108955840275745456878935786772492535537251475176989619724997720503613457088164083507598955027743349195520250827981310565757480037602512883069137278597044652330695076442653960537285870689772587014231366281851833199774445798594581044954254644140804724118069453412335613740033657197806399219477101750550886431546556597594038666517906967859032599755815404872558532639450143931681463603948097265809260608892118561383946574991309759634351147246895814385139582150855084042473056149335592540699187097522710833790397997625502594686047428483966347791896805877596138365290984355655843249318768221431065284505684289172338143067729391490715836989535477094798018654856909038465255732274393739947300926257982149365879054052543210584121923584060845533332640599646018312260216384020225005296222854705757583352150732094854351522213185416173700670665160366940738045042616558323116997404921717189622839633118542138420467430914097127772838876690735721613278846089670148643975695995847731730865914794211046970075298509039360918057008237052913088745152948804006480911590246229174331195360128615615187894843746188902768940133844068465533817801197973065606867176087373949449092966817918319214996326419787647992347529057239640688666290955482867175848746960104035219660141902709006822528431063482544562206605317443294135219419962041535413627480561300486680025508102022748337959019391890869266099903418372802492903621685234563575520868780713051239270716093938086503960526620007673893418601641751726472485818385391532415387546067520720232616810508464964509208410944568464992760816271861780060554196062872471438839562393950362476260336681157877112387613318545694558556419006903291665139182266394457094895700179383426062173602255361122235343879211919677500595512782581050639348191454624056604495388000782526790658019390774479619129903391402239103976481763682627439881412580446846592868687494195037269152000563181520861331203501931428703948249767078517759504870858692531638041920717914906758075422715297231347286618272907265309246372751111749659462410201184060350542993658851758647938949142163577659423732118538263601023647535402692782497177118924679188125982932639983356356031199933161164357697177964273233434624625815395333924365341715043164136357628525805849189181146763492916560479219333541588619856123639655500757887751647667977520095127472538281340920089558513147495165461296248698750736117348143043578259055857587376324683200358816563843384397042699680787772424791065949710358672327842253698822913373971643028081493663375378989441708082237207930704174816849847833940665313696513441796587853040589950336120841100331370404849999243935848195911588876280247374315067013945779057411478948409399534441755461589004231834441349749817645025976082294736078026808892254729141019701048949536093723898548419818278781172903023325655754262792530329537239504773218277291475034787261913209302181633714986481910652843908533792140624800414252359305176337781099549073226429028801846308066100584224234005999681768167395579845010417713794229626735794934483575140349358534865312135315537519223546388835565178848435086599061770624884624169029028885426939415581826499809407960308596378641557064193042016735780862966847114466553723212261611542238271446316152441753623101469684162852915530850612601349944630750645713909914438649396665817206318762909588456802363312393105153682699382484021159102634920759940016766840081970513439079631245834570670458831755275750220901462088058116791436544353829332376587921989507967995588473667667453293728215186530801844861480119096786562532771194347601990881941341523109718129671890339645401338419858696913974845695897011528223791311147051352070086960509894631147581824039245828380587124889996616064913605581867372525449942778903287785347719392819257385325763131196201451190696034456285008821829816099564528828984227524491895117696469014150723217143647172003794298831673024053284615146850511247110212937487178160857278625372901109384619347919295306661579041462052907831437132805327250312195643101344707650192538737233192360812529161504728512631796707383648623739889511222948364357073040169540904983979991798781149987705492057671782223945089586654430467432149708785070131325220666791755672981480575674333138906533928423250017354607081855791536227350491478819039915140065798053429097542621596838287839717470290719447278617374604814492718318783990955148188771979657450350584465064328008333127032075674472212171114813649279336854525320890636866810460458699328750042288519061184562519436326239046298519519143567804296144618582902497102672152489315574750999838247382637326799851165435510470549293808925525361603220034507913571012755133149786755918077657958885094254632278710298676828221875678725436234779024671269763673090310551716302227928846085494792335322476819579104855162315697480955471259192935906746921814233464766523773154964278718300641258937352999197476095544808152285875120062297613108508604997083840060682145137092145547109465711151858911197309028076774475382641080396988478429196804739445149938169358817465296049383955647386310082773983164183865046926777502809933405476355404495732941221988629543311289001067995067922106918937976165929918000265013826803997312037957320742613380166405497204302230404402155604474062917098803154299903338853712485841655735778677152129156700844450545320490734428998136000606043002350892098638915748083491377794686423117500050561564090569253098514603243278609297330661178074428792361117395386404106602841482312764614957291811447936595050466515752321406765313618074053826524131426683997352003629953031719568121912010292060830454201806827121974346632800198378503898196696035953429942556143606793154090512011248900120574603497791323097612627618107105855548270588880790164147410853885879289035861080866601570748410645838805839063964111152598200041265334952147962595741118921468752044335236283470498714870046790017256947444383579294840936850019792757091782453732784457857349578346354504831984981840282952669370532053724224196411669253649340364713377638007056530977344184246009008434281311611097553742273163590091290985935366265688597535869072921339989804168497933677792095216994264164109382984783581436295737666640367193904839419744052345898821118621655023598899806419853086472206504504631562897850480037684069530634770574438156636558188627659582642930629563409933086967417399546618880243239538884050511796126898646076594687614911104696111269075598305483520777320442256077083927274869152551760475258589324138403605062980117228231563335938068062216868891280832310522878502386762898414337272899222538015810452682970851663628236634665700118835783533311796561997167271190680352812719486446306936311760874425349963795579887152697862642118930582156184302019230890577685704989158311706982790260092498962990476200759947220216615766401075400727752556625129684930481404189550079948077329967233725827374775128385470092549865034033688701763117287131745575358624423838790197402068846629407334735434254528235279042819162404483802170604635689081245637001972637936832458899806062769231847856030923445850233279704896199526839216466257036915378263994217462578938947234244836515865888549685065458899161690762894400421142663136396342643049221176150215768728685453425078611964686120337477327762181513544269647291952674280653885594029974955981795749783921359874271652002100517962029218739304388768162560480913089185670371434240277847139546982357087056830939524076575041797903423973762358442742181053480774328860626521858112009089752382004314357704865176485193076008914273446002205615507039581501134572224661973903915109540881128659252254842856189074644620345934456888737347706341599152152419144366646449567282074846011593357064584376824752729531573474914430144871717908799143030160256628890693989960741347163939865948401447252193326739294466179440969910415068926486264502459955463384738694157989767849923791033235530287482129962614426794701921862634499892327256540669524007912411378495906768580954766859462149763423684075533278661348002919634091354633181316757391253697252458668217518045623438325183682913141584992367729844258860890675644595694695407719227044455016798514925882372863085103674752526171548950626659180413829380519835659203780750161857202425485867317849620485432825051995153424977563114020683250516221694428899413386921178395848273707014001062027912012970315320413974790024512052012904208200381060320366171031385198044758302180814896042225979335044016923356455546719589300671796717283239362131921753580579221575336696792991500441170669879743079164818650431455313066801259921752271351314223650230942580526732920837089961313203308296829185098837088916146799057691231087002414275509887246530467417329295075221112462721047558996799035131097183056325144739210785397737319128420362822545882704351391352234715812266359855060717597339850643334898820227434446335076578318145335757582388940238296391200142817030058148610959336449167351688356992644756351141512911790189654497131804508533768176561304805638320397443664640549755596353644955735941071781840471507181797263417790961195950888989171748466558238552997326582760861389596680716912727075983078075534503038056012682804020528233266509452908532645519298097195474959712041192821893335726228130799312852157949514432921314562251831452305313079735292792673905759134620267826868933853766630904483247049592384231168913875601529168827221226501224104246909327873444515599727528973931937660775325614603530287878702390684016976723266700720790079079297490421568616200739528077762704378369001549498572671289045778664649320170316100407269923208894842024274021836427931511719684976716866489869833660483157682731219745143815038174554639057996532880091330962793968864068684894593418997380834969175193079282907018599860048290261314448119553798815708005270423363716116029194001802863925988581623616832501953633355759556111695324228882424698788403209726086802501572556908898553913788903142278545455875748504071089011296050006118720463418414679658668468859984208620214975218207762210100583734109819681051363699296298581069834735348199285311011519038864575881847043396428388930932591434213039428535254514746360372314882333263855796647160157044529398868285004996918728717537937158405724734734765176590639266397475447117935741238379891351611740378312232742288031697410076686481812656375942105798994825847506652711651536399659507666620141325256435596879196437233265354981466848483423625220566112617215230799653155739347833151353868867940114617852872164709326869579967819701150990670778145500847124881831144498306512422978709992147145137338059505169071577797551522210213867885715987563312767926585715082300231933202885378121579867953725817264460448597144654540174904995933692106124246626822034705713115634327219853925579879569372323056493570600773189553643248524646295370906547072795742827985182528465210536697507896265991643532583110160499761613780020144461417322714511619642002135370917864870593565675277932490745309219618168249579806793317808667954088867957452921034918285963362335527124731634257432996773770106563162028059199492975758706974375106374908714202490890649806432129525505472033583312933931201819892103706830961637278581533172274708354729053519984844790741878045190650830235313484215538994548169075924209379148121650072755681506036952205213112064590141168846957111590980416200292194593272001865150476512391459406835395951339785969810852820716727153712972721002286785437446066958187814085915266963673619356435086930675946716357567414721682143529085864561091089506704347744644232356787531934370028458682140131031367329796699647488158877138839512440396274384032324812687052262032042990081817861568838652345027955201698766167221890979741099340139243739764545399013834898916168480618847401809371618206065103194570635143125686729502904353484099934220083801134488969059139761965189644235435495789105297893771969599185033302375759145412010624027212245119117186880972185440008524905002671350580095442287385795280580976785358889563462588825480083825165874827699428849406354248484837458664402812797873518142576143090068471260963563387030925514841002330661487797526043546950362716762491025990318074149712122103002307892070337594776557206785137565687617194739046102476819402164384525904264445600449019667118534104992176558298418462353167046598183789606293933652101928264585058245211303195947278362697196912312886860594727012716073223580787590732935098806498397964424965067184940802715626116884601987038251423709748643785471973352235650304096493984718269382844453452174384976915225765133863375507775794492455536331676934588636432046487735201253763856455842807032717049278601140321637241333254872596142829916320327841418141714934305292783470604620484808500907069943382171741743644890432963903926055186399097721172682238822188629840236470326550279779562517422378339783767814179323659883944726334215580094429806621024900949847074311648050974829320644717046488269606387682006474608125958546468322479024658194647840974351869882214309480546972287399484045105476033471407178267031134603076146527869166052613763381701740403013645112445255111928505034961404930791860528431950359548380729619433289766414405140748853792401578693589441098787580490023145817100397991421450023168794884896927446977484064763055351659188987851606099782520335859818593837613242939898857878115964578119255366276761741090555605303129443624662006203438360148963103609084721843705909750594014689706435128947813299718618708281729560741675667044781136540641490393510092578884391238286619894046058253764477925086772485457662298014966363841590190625216489691690736004672855993581899990355348982181637847725056036074298564463255471604844091775940098331495126814320481077248876149362303224783511374302651215759985691449641024115009537282958868871167689792860988128004098100648775125640029855552466077425120642461656486734084787889524150991688930331474360082197539407685031338144508897307782472136351847738495098341085116616968707361476175777976314120971890223665339783957537024319229111952324323087242279790781564674114596089958373910453424452458108231306741204398133975830465110479408137640552715204093948580858610161032702961178896013040916976682107690071401940930904617773350275306004444210040024693954497710334365593225611902926524755422999446739687519044415451439715646367404514937853557301570981747753735721408118671866344293583408747426471312465609313211754650732407894622282778958215433143624606306466233061941541581507613481459145453093600757369324685358774980009150077485038904845521893630872083002923205996490012245210111499267427740042284933908019343153398391946101882578672437182548108082046130259148614115243436384229738323967477211453937043245360662838021009065827356709776233442126881748438129045765869918886827847733270553063344020022886653286622120835854553452274700900091304161902626915319824398858818729979627218826433417752651022999110882202290561209740113121906646066662876716637587205619394534386965788976228746787280653101893580796439650785197203267073276756912211003744233754655480906018381623939550894079047674453488488318757832398231671098552016802228948016280130534790326770486663829920476279820008863474248496640635232015073824804790793613082082166668149832609391844142414189068978938916054998613284647564292237632948754764713378629776886743826450067423966199034479247203186814616349265381020214044886712237095741888499603770082847629601582066278898912537852959171426068277975916476563034830365990840966717376910266668200720042351914342284099895749880694194479929767836232583315253239549140726463627822331678142359517689360007056109319288020209438494702950069519045308440313240600721552373617823963663900853226656039941236160719539694007313329478493085032267667752008153221230198390415385242226132641684111328570398323769160361872404748393086432360998243914417791938410740664478792285434015890351268053244790743192989132432100310872152973065367138932468936393214266403427473663721149957335534711952729609245249251242209498014245259920148393093268869993787374475306516580621091604160851198077405761212363366012197824596731017980192738897444596497108644107594942969665979091638002350310053499387233105820586313275128381157319808528462822283325030327167807103964207283043499309678802156866457074990289572948805587177657276561052920064735019516807486603445803232298837689912400426155377187280233163855710734576734539843090797191353459916878425777966535229931045744459796175493944907641895922686371096766412361846515394779204547394124912495014776491247037911518433150688665445983085420397549345227270668295748032599424580033345248952060702713214253968469602746354225043397639892825664399413568985333332833633719292053148325700868127077739304083434446242624847942809522524694989775997703054391761783599841378609079668358460478694980150784977698678524940657945354607631458444012478674852410286172936068323194573128227785058996538411463917154315525368407327717223471884392250557853456619849023051268723733952973988169910587542399493807116107815959382726459723130794932592753759250919232597271477253996737006486439328510541688218774960411543328097752515111964111391661930126910086991710041320509265347556782498164090638097426947437401976864125953269617330635563925857796337771864357197406192910027157115841170267532128292851683834256313860942038689650778350357517141228691729910240856801893753672890744294378422820888929897837938495756899535620590094104037811498843108650620927959948553327265442904724413991882452437412540650243453976005461009459237197306913188233876370473935285959189744947984298642582427442795742334434814565600392244529549203450576105759497735688759469925713525822713317519484710968868784682739866752765049305814333872679904996797626060892772858557094566405226927623016352543133135827411443664832401990166922434504767204883068992649688962749628750071599122115581105224637947974569062875355443314621243987822011037261497421714020160876313288732523286490992670834489100426588738754062307919807751354299119459654933745420061433702152109575838266202350331281948327186640890893418718686512995103512651102379837609839364007331265233154708328814729705587638744207519522068694993560794945297156587021847452358328069851598863323178000820509939246060171819783077260971481877514974223069730078716589979122696158779536203792147455598195407465092017704883000264157415614313111155063586441434021930158397404311135122288701531767801373061083598717742906416737174398040102010234079065035673841298758385135350638257411158049660926783348724859809246842946341330444895228206882836056030891383173186821812061369675906641253305670460391207990245175615286065810104792810022950978263271309723635115448462989991777487361684880627140470674898037565745588807259678449754408007145110472848776594873836424931828332960744904220611408661092218894556067315988533655266638910401041079247723377646517425078277778518496135012091600758889388911468656123742931789037102875835631613777397171650249213498090482572705907783348807366050646488381129967403724779608961338252133413340845184018201109027093123091661959309935540163415367444706566712209877366377924753567284123267935241232296214937630452878931912885568379536435552628786252289955993230444280588892053070793408337125044179917185419708409980790256833626035852642383213351455053232441536530332184587549757185709708713242415686477899840308063187280852177554980322542393941892161149275385255931009794365222475137316655989600578300663594033936912280352282650892151129066841706109038521505992918902243228897429501522926765069185230061234830118679958490190837193469427544590163748219098673405744587660812365035727433666939109903732754843080345205884685104747551942873916311344095970589022010859830259636369935844190441090219862975569557683832617515117762157542789463912312526980226620281299168639930044429697303146350107542231851043432643416201023758500859183910503376685853390937683924806534579144756966359067789482132545759992488911896117515205263621013887027965326320931486365843263436798745744867716084299461574421019947962771804704411755438996277252852879855327587191557633212735596076885317450206937684169021692437262197555787421872257670635525809527470716391999641454875531421763184174138270774837106008634988655331433561751759114497174382509290972611929244887250033735982120179074171043320732634287669238096100554723536400278067508982736994373863344894132390079426366745049524840940617247127065694066253576022583946824030154968176888706459615479940912785683657802180933183170874682699625548509905166227854501460993712701944242445848188568906869828325678625585220460611142532097626476270051717292741514540356997357907950582951488832415839721649226934286015071378410599374240463383476429286642202031463781652537645053083949647154602066628080122513235329216460367762510373770154861878338523193758138414422912243941110568154390831001699923116400594579444199848498576690321144891066357009605483964616904600095490737903838437230901447763478845496637159449248250715712937856574068963880688764383721460503286040143701653570000235555496084641405500303925398332061869345291786416508215879179926811273739400345348831381092569145142265785659560478369282697153274219430003611391484013728255738040685559315227811915348875266892166489448730140766319488447889838491645413566192657330813189354780619854162912249856458751939008081036662493419218704922055009529721068486541340037108343302123204116022233915592224516565229116239815507718401095154383707910176838368068347102577538548082185765384102805880213567470038880376175125822141509112864602635056406706686696353997070582091832535712867546933117739783598924617812786673315421012638845618806860758833805985358385299403533330352051387723234235944205577328400217504527088141611437830104300383800084233964245493192784323765179099923924571822849501234800902413749759207647423927327712855466640908217775462951767392808503454094292017914280965769303260755157962814210105519339778459156735280741647649503416086185885586186893865975084944812760318467808023016104761247087192480734371999256957207509869099008412693372659612633044360748117669822190105479863345801649577991049191903251724439303632098352153258443973349619210257876990991428899276570507219764599586568826768871751739920337033799688654538542053765747156333819554595387087992781432548786382914511030244316640437070016878462924637924999985373579174546892741406952490044245517061008296371178493889229285204775852850432245468325619722603557606645058935512492668412722733852849358222256342914721361008040259338317053004635875538398259761514310574692649513797754909508753751595389330789925982386637278945953788976597662079875736696999631473564912672940246934772166800387560490088205421870951186752252322909430731845376899571599170945540233435607786510304325609880141524550196565430889117448783009073210498577882468201326104780166941247370354076592660403237358108412856681812311981767684832934286531352576867439388805452105939616819629527460493727789834143389619792333082813017713599417598284817637363650080505176605203247732145881899845513291199738529542620683985459668493670767992399916340547248508897580837676030205133312075166867206902763717687206037839189394580845025388475452294584673193461394271357836247293044354732262777767103887146011087009845919509168206810833816394496485785002889417860438238208977259430088850431574744221207147808750114953226882509809453684073241111878615475596148106838810379470247845217411440375386911411724053033506069953575359999256924184930843043847030739783531260700556832810878818139697225839657634939069610970784115388356749490872428634795313202988991063267248472060844227049672102409962778354396580466159202745678016505851421872973132255363265886736148648299801643785653334745679156067062518874688601130893594615618087613577105019243926662507824667857157591630975195093221310803754134669381671157368653182353059085912015097116864889000778911373223126477129927921120318413311306083518424351862411709247327056442057259559982980121168598378281282424540050259596873775492167168210227494328216416896173599527363232064619312645793005914563218234006028533243546555338414518166834809915992501647410883908187931084358979793960498525895822181460604868233432411907430192932228603846082493619348411113077363907818952518083563061569936810253985808026096796072565282182439152737428944304922795837448883243904312102070941402723483393900572794932312958044637560168454616235723236680802844611124128661441658619850359247595679045692611251221260172749876466108257065409051574382692743893936353622368073901925000230207346182893944857650382296621000684628954740295795151914379686167645962036304166705176448324755785430502407515589128336663427094420228534587324574103509635309950225754153110179954237358327578011280884071149062243722885540474751994376221246275308636107830606975837156328420597669239055390236523218130804450444218356910942414549320523876835589953963346139247302909167005539217339178495141042720745325965982454910534655089709209564677523944998671556765797353977819903356550603889866772804678518511744521350309407187232967513294147576207775884369840765728567773413269812993276263537587953319495524976731828758839444993000789404235611380633735746167835126158789703126645927828790409050376771983039135567677774981498155991163191946853783780504865241708911509148100736350591389825169432197455498818115032324125065118067378945901073568466927701207913599444265827137642400462557936652872504059736693981065678262701999349041336523130138073449093894632612745335929790636586638026556247831254969671802036549207945945117962587751602775366053813614189648771838029331124829289561504962287796286485149544441029311949202200380782322672364823320730987617529394313034802975223578210408355202573860649066636195239086360414945132414859644680975365349031693008667196138554485688577268809025994974109618822575939048708066368926995292088595633660724304392115124995344580681838145336321844430171680184601173543485989445999592132165422983713439425255659449450230544401772640313856226964677963016520339678557258074678588125483047926526532165139717565320343169123506687528640268584715161472740571643160693263525894145108733302127746877072590516375765915424754393098566542323943591460590759604257896470808134703615926524114825192412097801235707008993461842306640118508778663433710177070893891293385442549707127452794774459373722054308996510868622838656175917998923522003320422256782215334804000875639434605845787954408326964904232231476309580634231286152829077369786062101042126422746150922201769048365122490163894106225797829452231765748789584494033513171194396827607051709645761079671374324919704091979383611064109708323281570063601071712862371626857193587283449211606665058858550320094838757224247974656383939629451521721279733228398184706278033590297218515054124646159317934804629265053943612040918657774543800403468449358141308133483491738792718222195355543123775428348321105720134165762106957948521625538395063548130232495596972988600509381438974135536480004181211694872107253974864057308984731746023124002678719698620327429317452270932773187853068685048335871427730019182176390294889825143168660903352952397663632010869941567665426403422939320308809097983451072936133185262943288919654159114781604298226065174820208090722055792104754217838438261891948014293905031971218000002129367395933450370556528360627899189407486628972603760958321262747434615501489543586959776155055542159136421918658222101439141904273413413706354845955613981054180355757840817407368418017804235871634674670611735453551703810576583310083201870312163228045435834898351751887499291118516430636791767001244919029714853932762237267496202841964019819901934214324524844146758840714697906517044749296280894530789917710217729085501955538628476814490044332870749245128123899772339381171925528136535831622776193127979805802224708341924647289177406766606511132185805222699822378633009177023084584915585356039536168754849161402574678341788531635073102176155992379371604400515006042052910585202530754022591833444812381945543338442048588591632658352107718976519780034604086459795543872647842991665770794150232810116663003606156095165413363826864994697873267455065661522712034329102548940091261917716938050647694877664357547374354570855688579166126847617392394433962739708446442718853970932090611087105009430745692670217389570831194572111879140444402064900744727649671839458780874749738471948384601321645071034061849050174982052018364782925034684701828971266594686343748570087762000883742452317413208806154088943824914813156886208054456580036079738622202257040753698822332690337181573074292843245493205402533650228034452530332486119868694580574888823425907144087920156592328802796981740619938166466579932740812887718601484738304286027241017312253013110342144916782141311270969428717975150482533473391309008652839946212925148467780530331381318764330887805184230165902954416188261785386943225727241792706154025862559084729561255486591765569736013414929103747678966289974409545292869977653124093168047110556583401213457137949715969414909034420849742406780136474517936364330160500983381730590529029179385634504328065392326763048642733194778230376463675632964867536305389598210723740363605997488320419454962949621818001351628869819117912973898094520749552510997014101995480131839189875277216681044725378700104114078164915867881293245928793696436078158890082357815121461125380777253896416005960673247421629908223539948149223370443365604584989491964890291036277702924586807736160335968694882737768783345935008645815491929942915512662328395156979432274860720333544658995951988257023894914411388604417634920290012930971614896153466196437465657955665688078398072688328531737419472699877335143006149317912312923266568897404941766772961401484340013742474612098785112543190210604447034688305721368350246873667696443784317363271889523024185637749905041872725311279269813961270668739728056145709667402115829474223029158277533111031727755882385518687621465611980345519856808365006163571447765801625294860310821944119655402728753907604844087318824376629572295715838712645857404849684882795910093347647699590910373034412562428525800448158544227272447398111701118457389036153605935380904140029287287041606174714444642603893999215804706726996857730616718558179136406226141816949493031952361655949391203052985363010946430659597426727741440097155828809767838047444544840365100316802261279602348395623902389013287311100296525930919398221543956136891473966699115784688472112354544123672257053038556094186091165087185912894811887858027592415598050178416040315165322038749974110565941844998768621035107315114170109261939720827381302849928813949535866077339819129027756594757366919449303281979397989833120635036962206800645871097434801519324566840324261233242164136372383777978512387046209419802691618637555407482606712203756355647744932689975154967360099751734404600036140035302729818998267517643991740312661305208083485677135040408310527332123158588346419798060148968672420433267959106406287952245797838210283842476937601693383546958577822150168755279401215063408491440259791949695996672535627550866184922007258987881231927981513087120573768278548465984704894697012977144258097216394589510478017166034012001091672276309357960437080812270626594751674253766364042774092065636623071159194509461432874839030923434860889916802359488811994341123593679218895839008051506614818813728931136379118685355791461546268535184403163945425747539685430384709717597292163533944782452508095606870453489284034260275846378670962832068508614528134067326853366944407901631900692232928216038217716141297433942936056900709690722718841396696202757837476936713005134651735660171836488980082633147751113960788813647851658222246946452087619044676252782199881433459096499165588618993075454172188961116346585227249117715005198077376367440405129873628448651117399565078401421255433890048218867108168334507939134899464247650948464542269353976939617026879713490062777003260274558278659024723218765919476644473676216365695550602133339796575069353921592740956146157316110455964047416059030233151584002759095953900068321322511219365870655384530801430443244794635926046574588717880973738352856764723095861479343436791825113197812825238792862969234940534315906616787966206446330103374912892687401871737571673830611532996242572000805752190579872628352308253560481066180984895987058132048732294056576237499158448764309853644783323216760910347634512089480753880772059801491881219628053108137587661864104963694171617860994325415724475402077128208379084717503855360024808645861444705241223930258338198685872144128659712821101291392164262559300477620572503684217990427063564056776119319348008112465708565042549708910660596424043120835836334546896610740188118198892322716903540636584351680200203810045751737798472474506486884646032869607147475392429712736404120498274822922961932054709133892789273249507523263939302019636454015103521898050608334166798944479365620185458877213327866725636037757105305456688031039672025982873143491042084284731664683116654133822898768535692782747940205225006515903843918706101462246978826980391885917911700446512708654991068386511659201360158224914096480134453941149609252707314738920872563608491505626386391864797662858004349278916361007732677226973464930252481912036428833704440241719048595690867412988368039402940739762821026365430352076232167105164321183310474078329034487335824960851167354803619975793479175753048516452045066376223743806434848331658662652781730430757010634014046198302908006392508280871773125200665452516118488119958844662204445412222171243750681174709099394134508007621096755646860741325144845486151152505652131063334091155618296185720327534473432111691236226461661477116006970782711006611721090882958254821193374030011916859672210565363890516583025746950699194402445105246276516707994983179782053449214215856109625459383606487538767235430888538223633504382766335413290314769493494875395266402640723407346725768324979046373902905961288011662069685511457232186098318557891628580866446242426020784039208160555234645279780195343964561667605884840823253737644726210612260768497210587735751087632225839707786652173909677978463982641013492179942682622415141560336999446775416629989709923742823305809804995955639483475110065531927568079305380330213164913671667378436414401406171466730104908494709774575785905571549673388020756450137079575265635070860723916765384088492535854669112423258016395102813238493976860608401382922358059598780414992176996462944620307299787665462599478461822515763340297470689742638502446981881812087207329845314052496079931772509957128414754036014920453405455253745161323300964826225093873014758110356143551888947094341918814074559535968527035861225432865001689217889693691278047076705115943507893158975067437796282570451145782348480285863344707727641321853012054714432861982836839327848728416188743616937275616523084109404946560492338332642495970979186587983852170019197081694543563160881848793604060815817950317921074761765052453449418623884621056568515219736425382770319454930975012576235035597546088217516422460759362612774582769268436392244790011468234348067782432371188699227742127709145101231710052502739989123674168734412050413266167496944209934111459716319637572427867773741788333556184065769821612301525743450629509031737911351600412288401600283752429821702314267275139281707495962436855419280534676300449127933613067643332110655547407772706860647727690141502572403535606703548767969937489542636591507245986718545564416392755054189301807440544763556245191070589534362520565118746306253110201874839112917773338848519432555522481983601535600887266041422679302840228941618268048647235239906454784324721753951540070543992375815999598431863260243706422258113677642074347559416193540823602941634688283446062924065774935979732865123439324824962723662093763940970439775366449703054104262834182881553411838043306595513765339251949623045133018327949020405428607382082697506770616622206200886057831678775967525232651825657467901902508596050238206106324553235714904463985411699594694265483480143530313727219261403841441779455276311858398906418975551722984699346211959725427022170222277314275118854318131759277427704038192399902077427403917456730561652537851565710429402893224441995415347106477404228341230296631843140218351503076463055760171271446426771482901295780618063744634909392800968685144163854223350243714385471854615439948884927947085609180082813183677050475968081437231227330701534585001850101937637150399143343259724315776931543445997599037952270392011743243867570031421219930646255756433789987123409205963801500197025629395225896359254585401234966638941627729925887101088465096033640086002067779705244760733019587891773813828395911822151215546208103300623175016690202703816680905609929198644165932196643463092053457982231567430960232578004340486961478725785098397266778892574872589184484191390308091117290701831383233713868849478069537364773619442841230398723648339224594062559142992273742797517581182032906843394758758281146540910080238479044838573428576818051270011826650176199541236476206794978176827859916566447860901504086273666530810750145585297535588625533579072581325252885734098723819373276589897196789050426858173213891493953308172916211828435636862047341306499591684189208883754154254805063957020183627970232982061697547258306556033929526078142314619412888015358818412856820462218756035424555233376719729646451421771322267760739011053433233470484662414025099716357891958562747246602654396029065403574712942352189592159965898235072969590112219441254180261018393745382582225215254478422347306055915243571583078753521571648692060101771544898453880114272098763586387423834814111235207103756754213009306734365794098037995629586636849455320266375857523090414730218191054879452312145660219653492623583076787269763159628597921874862497804634778496535060485813024546906972397222967121624413316464388539750428506066532888744313677917498700713214253394129181353637648874081014362111277529917868541579358086960085379998737697942189382809016277662329623531564640684679209972932929032905331583226496118158882999691283736177906474898351250504593548495070563667183470338849482849306940603065405750477069135373753034731119120691792178892252944227441093594715156979122482088565075055703319985350853334953874409830907476920599230135981293667107844115340458252167217231081677978135060386413872147374248735385135406221010096567808667371658453423980060560664852370108500453914804222504893302343430104885826104489827641412625428222081035061213146004542758609433970607391572850358808042514506386557853118517689602832533055141044586410988389559807649537984400701958374573451178906811862118508265485211562965334102840846211087290199280287606206579789405878811458151063190002209055438345912785789793384478140491382136520621454574389890777084786761492967456222972494946135009075911354114434243359844836104483533451150017841025237374325317017100807220267211549800673891659834604066936858624691936549428949144057685949422999379759573980671444097628786234285647819872667040932559633706769872450979653682627275200868667903581028407656664011143114715991873503022352840668577274383437463656847848152883738012070287467885762312768102090468387108335636257227039138005890876161249865439809931309718804824767476471975425775442209509363154249662469008293931234215940406591480883660527687272157376665313026153628827216515294935244978146373346610779463459819090594914078067926825677444808191665022903417305975263053175418044697498906716050119662902830028328994255779872806624046079274278563686398357339128391352506762014129872492355829682449790238839840037033880294977435370076435873266629051335394812764744275307351684421478538805491954424316480949197785360167280675465558390138718973554551438724658165982251406983736767315854927472195525321340847568296973417009573235343188439503282225996201674587487490621656342956038941050235778814723577099498673119494171014479502123778429855739788417593564233292486098142496954850733871151625080895592232116969126499624512918232930322259308674112009786894971887855771412654168470733368397876415086953270361146767615553367244033202891613493416834552879889788849204365148546097895991087231506557894129972908340861901480741430141691699688198903035287576873498578998242557391090045676574184247556670793092068088729795380439929027932053682878202271036377516743719683476187969220636134015297768258714248394947790679847462578626052212651458768984482069087658127999336189986346894313804897106696618611357887455433612384233572634703424594856697904747660556841851167980185693263532356792918370463660431978856061565463014837037432612445674676500090397311161507147583545630169346190535975514973216517506753373276620190746441989724407991645446319245287426750173753590542118635218288545231634323806098483202660044371151662591860359753269584159416654329207497387692940067507319776316504519337150774628093191549577279572222992524148574867422699383467168571582284687008029895375139738650969015638489605316643950142749387262637953171638789768792871923744838149760682451161436323256456898297410254261944667843459041275236794784536461220024832209242290901640853672175500548001730044825722612429443047006134338958902742102409139843200564700859566932899705097287547016594049151971152246611106607844511714992334172646145956773237147959852376066837961620510252249441887894332052512952689242695428993614535313981548161279692722468658329308043535369324577200512081269766017129561217708492820896028796288673290143882694194534318870004871496779427885608014808156504963449834571814393212847366760750308898751031041574514012984460107096551246892960585703157607459140559462255508213982299659886000610157511032783396623525366267823783486723479265073578245311048261108949952114906196214694297665716107584004856759274651770644351739813230636955002518101522922485373613748536697985787510332400382063403450743298779225352939271297515299220943155193115921123914205973098047403499810815993971276933628385087307284456913465860005492071168206760420640896194095497478580341349503152429882565673068169443071395816863067114118377721976992205816600047275773057858775598559292863903466542324107567079995299797259142892986368180946010059298971896815958918032456064262357163326257871426076612943578849281006279820393583541060558688154003035545766468605459914816109515280897104589010095948858189298333402472445048372050925194420386833625393676380345086106332239467574864498388174443208091398068836021448188186204089536901859638186711549404833407725287478975908799086439525440999195385730244674746189750241149486882225701592139693112086132277131340149851391963360027247142017470794881168504009545687084670105877507505590301650921634717179685028119920945411525671739701453344712195725125018659708895506282162876197231991434049955042972536471871618465247666527448153729963016339472642096896155034841058005310332858346230381135087934005522336740512729145045784414964827811680070832756557294668339933791909192712329640358513098602050715906080031247473989600628948118973790081283497556373037618556802301269273451170174699944952677701180259312275959793092257370973513443555221630157488615557844946072927455745045105324335790208018111067057152193279226591486920895086727580822932943396335455572407620682508464996299441893457784324522421476616606921965705965589490809593297196189738782024952192872204111633850034854510835838474585114697190460520760561706543877255359229082349329667423206958938047088523540225456432333745917717898345944805211072415736106301477483811817033343402581332687311745538989912960049103881537638727571079959091735817789935766818707448309594154223660157989935632011109058835283768158433293629218397854815684200740530762533413628791022851907397373373906967860611934019082985469828865055370475861386593765577320563245237623811703987010693825872921837148366972096764344142143505244910333279241529047101318108710371157979345425005799518987448773469208906100281160765231712296341524972426654424005651313111772607140031657566946341160405555570035699123729006721534021772463418312334027184860237612583245746429653617535721963035288556082842520071602785320782758003712685290631533422145955034560304424200468434141793479115488688701189144735053312755606223902422717120047664360222075380701809128410349611430306715214924289016926132728334124930983200416985847152594068999633327185536770495745501140429567041554117848321371187417210082909078502928366633167208282078263252741441583375590758981554734486772425266610073741100284237008077883534970313449223415039274269125851906888253217898593818737758928313545681367208259397226798840056498066138334974883636605333385374126166370789305640959818899546282991841521741249978781669698464894953716939799252359106162468968919434141544196724680332251973800590639326572506218066987807842352262611769652264362052197154679431151631027814856782721351340981098176498028301472187812138593592738706419753895673760394958041286403632760320789468004277135684974280949950476881186620603503757112887323813800421058517027914041287964485558543411317161078625971871518667931478188525173008495798880770974397993246608634455573789221082581462067897589510723225662370901538440826897067656564351161783484025088772778552717236854692377379171314749810394931375147143909521169150803579208499792427994202111070177805375518773917603379139619235764215948793345487076497117681303314136824833073049095062096897536091330981134172194645855587524725000817313822370307779163898067096908035595487087061261342323925754412304316250297259941653201826309483687623018554345063361313524161455752663950313486672303261530118038870585137226470893685785688729496882375752534556901995752466011451836923369520888876844912239159642681457254403188455853950070568690819527363321974418980631804785620819993703557765214947654625311743570768307046876785683895025043480358357309620287013382117984923462091299734449284275410349449804782206153663940439447608427935287311905446204593321640843587508025468581272112228393159440842032175695420875666591034651550549751858159476282126272286883309695557064005505750094532729788342332820234202823454860276979955926986397527880545108493809487141155223581088099747644738172375321371333965647302491527906330048110085734655825378152535906054986905554533756064220211411449654793315883109373809142609182779955682691050356902033577105858549698689347760674706701751943503659945409939332001589068987585237596036174241928090591934823712739292821774179941818567038283133647109654235115010101222287600114940462056933648347874568210462366758314473604263374973580026702236607810162216899607351453454904732227127836537305281980905857909248018979465297007387961098965596366432354590560871847959212370949302633378077618116529719352390305376979831548642264953371705981724157267772593242148969385334238817319988082634949810098798640057877721807215205836626231096841803505906671928272168992548221980104329191211565034310891087314549831752965382299304864144561883051721366045689970222695908108320463126522703566043993555395392521006651132272682687793714684287727343870512687891375309264889135219091892640763008281949164654762316551057571673164845825578352286002160539268129431266004315082589772739184602386512205632739149235148591840315185431709153232344385132033240112560646541790349785264061549913162485743454522456991982140358628311626298775496649728081165125418909889838345465498855822257934150308030184512577978988117860856819089421010272955618535896607785111877119922419524206862748372930975672933104327314382981836503633651677598189383366348122820778128312260722674932631611987356042089688754509519698559888261367023551636955617802231104016830743896392377473372972782912517979922742875610665436216421367664274044166563853518938475208562684097122881560828512165334557702985386277176276559008487856466477981883396478960696205614970192139929381896783294217319370712173541578870324921055734191794598099265543702892654919935803502265328803406739525742050262857555673448272706398218569125088312932867977861902987320593442990491948966162741821678880849680123788205944399182662873712791850491083279566681218890343564051386331641970205586079776861092604212634413690164174226896396489474720600233955487866127771236098313015174204148447128624219559243356212291723704444622841961007395035324679280628650987455156241145989038305321663956532130847277741290449519068918774857822109354959214159883296826356346303872663704751739927760917070396147473965323671609477522301978952299353517954974076070728824511394438698000780513662526955661427729111929738525130639315488548763975038833538409103307252923586982775469322486701174678237608101585983112675166235943709103061929507680802847917552655383824148165044706656175748364956864651904119866453460581098906945058989221578925804777404223449751031060774408386503104152406940629848402132586239229006769978898069957614089712912062019948103457845112313889984442850833617969880250178284051106878962497239576067722956055041443468137456596995094215732280722946580006811857928200602426182911650407744591710455558664436695650265339756709662781080986709980944709172590212278819307140224895375370438871228767695014459918646444439497916791241849596186779514941110893046280787125550021345614480323731408422962746874279082565777081260112686636730749667524419704927712937703867571739830736811105092094323545627482312058430405010487586137035679543208443667055663453344456356052873651340396883680161317993113504310920573639839655877920220613007442382298783652289429365728767413638069387223366294386596069799297492776582938591026223077489397164763857300686594946408947187010257239457287682743372575059649934072532238064238782107344468698136756471937539283069339786312237399147783636157852671428108051371588314482312768218004307006039613609798575040132568486560861064040104194184149120395215567157582699644487065976979324365712469556196821236688988755659437689004545917931915272080771703269037219250215819318143023187364993745655844757786936761873823439789575319587541182820372390799271625411060856327983034416061532187548507104376176789861447242873695101539798901792250435484203660677661554008333604005065023699309241073489205280684706563866527567140565460503483945804309208570759938759351926325651589574203098575225068667536851787623735198152523535637012617526438818148608068898017720413741376863354118643233048313880961336041821262614552565365698474475386581292321409521048195015785452346249695478731944136711208492057131741565006294253357297187111136627130505875822215644580712032674892205351136629886003124169150704788701123310040219397520227259279260921129451117244976994026732873214670625707380004053559942570748353568446662922207142870822087691624321439328403759661003763975499765171902776651815811818790730204038863294247538358674417011054186871002389914558409473410719171154402388540881153752291276491096952935477402546635061111614947265759913155595822248175942269547132238607585613628056846353229851623613668349381534318644334042555117056931847541750956248091342363563869182827419279168253067122705947669412038369340919342466185039754507499907160572813108051105686045496660410432166069445622401067777440306072732473771900476863599216078664953396299428453270911322980187559849416604447672164337461706572631479860476073563447277642214759965203273462350530448563376434579871258359534260309688267894583510487378900792065774125434131867970405701842823967954937274716553376073201789501713790793778925214204424916082576397724260068072923364319772982636264352218888377924329776147064586455708782966559079566638386202563817495240421159802183907864307443416008096929970425778433251445103729078206579010803669547441227687595591656786362512576201725159166686159525669811003803308629990737676680251108327413257036691927977642329212450170721010044365285673085662699760108415069939697681531474198775039372585052942861614622278594020701017943478771514280656216454031889984555837127299609623793029767139966510659487340780523702071687576537361161674172776885167897041522416997191749328388956145624315520643850365086045048085565317086235037375410624023648383585806704681693603719128619632149099381032222861846535827595167461557898390154498750997357484410264998851672943267329776799607976328757208725019008931760515286528707099556466794306413600637296913553239075292469594343441078522839970354501780781956272200753636730932308668586943724066950497610843454709630376329659277411827997506227775929367367790530587265257494286978229176734278401479653874790991321893959339634883078576459143577522154157815940038281761386062675038832197099919811976548895107698443484627344364969783756944176847429567784200874705315880084562850887075524418317802384455346859812932425408660724872985814035568210242500154315390957142050960808555138352722820142621425722766150042813779648233796457713518268237574885536964424063283866924331855558997989506331422365238584346024916786204490956945818983150062791342199820649795867994402395509277051113080543841209439962270240882045999407733973205916451509102479083345975477300002937686121350337896698576873146071203486964207572621272266812874994447997368915347284942801494190549995976185714960874071726631042842171284418210899500162684860408426275999970641709534818365549388035452787628409204903547539462254410286195377301592810323845832892028676152744462770434607452651884543552576810705651320132386360826291212103725611676949117615492621846782289261474734444792203795247083435246725984561845521527900992399912561188319108929680580425008044028203585122039965625771464258122223380919061090190181478081428278277762328647083034184570791109262526657501422299462528087641703678597768561506052195345618844403458302170564561442813791548738436151518424785968601616179512799650758519726288301357808859787643629774475576064474837185338498743072784118875915988780752280419365773897090177082833260926349543886908059623679116901507075249972843241789087148677578985026944067762159286602660090889752543755458462015482632405184736989225997287753114513679099272845189222762075885380211460309843025713739020290032026994761519096818169786524097040748404904797967304142018494729045630364586279352868568576399187588937564141436595830558760523357073943511732003552059067307813784372216820006880721135926103897196315838312312019813002282014240715744096437925748835601665266472575978180086628569755892746161471027794450544501253069296320100448770818886809770940337586222217884810869659711094825349975952381458761730966986392814446646846657112669517221544483596781674780903337271609586761776241351838054988150750082819699688354275591944367268698559480053070825170680678810544296502212629048334435596452239985925920892016520553917163810581602259716363180875446577765237057738396022493663867113457519741379622911587033097729239765233553361004986708855508641605072371944261050480852034048741043826612702432508645590786688105212931627736235320765551546897212670590774519997374341949110653505211446662754668889831346302256408031612543435089306960342097204317690485647714839886151033986271079100787877419885018525765742461211096555187815858912558435682318119205086289032296353754558405797272169681387467336502925303618419409633384121157308849132422963953360789927825113364011873574395855480150303545968333195234409027489297071439042619752872336036345591633394864224173537400919407350708309534183724176613794100972221284455344711437335677356541472314308287270738390135086456220994384222801657140772485374588305791303517172148445065668790532485487897642140099639156648440004550802364585618366608338636945978511771630019820737111867047536102183253732101212203032333054340738959886330299514528055201220675921561930810912570795824040129051215408667566566593741383639917626987674630572007039099888752576435046861999462056086249610100301517244219019612593478463109225951886394042410092789287002641278691922027863054752276982551720886829110380429461029384857059162201395370353353053917936395702438971122965049335937286319692103569090914649074117347179814880928290199046402043629875299159440718861231345423316739550539746222243523769789812853039042376194187645036228859981643672642720705285318864994867082319492351126097657375760781409909797415871491105989821851722044818452386819368577257127129289635797012005624397383683809446452988736672720574815791523922031259001061684242804037649097973883744404995218900254706337960983795159926894864272925356380688103487558688279093134196449385055354504784786776664686110588562234720996871769046789486626874405370821234044115431854362736918411079744339126342636252583384568758042478574009710373543166354658185361718790455578562543465691561031532035954202540217087642936499748775117196869375021065276391265638392119189211361050773831134247104788688190854974092919097609217329529904345249455537842873079931439030785345309296022493613333163115446794476744958083821893489147918889582212930342411598272623999995148271377265922916552584789454011985943543863276610802697123774990049591360258336916143287595086960097359853807403788308341993804124979468714396032694615202483215863261379209451771043374671923466582676894586928956502198614795822635433804790637690827509951652866332688930075302056439395804224012846740262717298451141434810114202727287588935944342610390446232809858324085593042143657302870459202829556833063403426937318197342493165642555193801515226274945815845225593322024738284135166961502996598914883875491977967142461135818016435773013842846404993939035137459790894986210120569644129917870384322115545526006777043850718304221510357930424950073575806088233585309606658584614911070795512446975026973008152616321779238017245355768738214198523274291430013612450926377339441102922580379949070001192853315590608825114924523093913128994530091659880810376808605011621325152359192550615984437293734017189528008012567138532690880897580664913076984489583806195730580138652507716664215630615048226550046699045805546880928249174077868142420405261265951874593779066809077565275099487137632234427392974053814657045245254023739117528595399742602597241097951786507106781548679599023916661851281411741129945640874422166476962786696931842254398396558922042309725608180243382069251675883523875088801405694831457988457676524190408919087686283542732893989582368484864102898333421854545410610389693208999118135956817723947514096646316844389239466692762480972415227284411914270592878988296950658524273698510077205982220192270251968037079564354791800091201886731765167115718021844728433685139889428176717005081728985194518740904871377179312541446468711824431049950753962209259643051554308524698300020731648561582292636892068365166986004225666110580541545444509144010243295689741738324925545778997700152888940402600001882703008732718392874111409697400950853257017885708752209411534061935496782147839981816532831088906824181274776430689708077981172829512407121572521245505933829873823299404148462013075135602782000473103134069251457503287321059479135912028847548441371420235041885092966199638018990289559032336364306864351683297158293937690701179295029284437716843955747174613903859953042330431032248705181616709855791699894889761663247586714310730910396780618470158007747742010669916607497996388472499472687693411586086837078463148816874221726189806211303562673418630345223539210030578713988800112577345523939650231357503789986496570506499446977758434347342415370083644166779467079413089711290893731851011919658994759622654948146367647476500232512699425641723432168385899459268787704684535265393176975661273398310005293911720633426039920697209684345909344502457935202239522446720383107078026397803794797885512597654768320894014617115028231811007521045957757762114998159697061851462502775942435124659358782824391905293794587312423304573591962401624127177522437440310196054951830352912515301894744910751891427930708365514458973839132889964269536451562859677565265605219328609642779954180103234805747506766934228562095246957060918743745405471541898080809202151564064861105389760243714971150525894345686823252066583606368842074532886782017436613716233541661618862259654232975097419076102685334677445082153869406229472597930355783876745548586698451602202605857084789073233244122854383030278873447848684217466581039560463817480803141049685099424428176607820959496760247755425019248992772155311575170377069459987380598443320565564847416054827874544229196074241737740935177768309540599358915584529628339411740999340417094575139058308514193816554631805465381306996843032213500407419436849317212796154631057753555206432928514992212821362135182540333467691506325447276139955843596522971800073613585913416818403042231053749872309882383760879163249762837464772953474724805143850326057275960829998024059443675207664645772484438364606866449616558097580652520932808762403933383257749125468213457541222760611940004150946523303793281571752395173552503899109817287047467275563008775287312849115278525214980248896058934324714371099063258834618404364250587405318322244623011442313864347362962848601281138101137900362790441725684049555743075203134150370524630215940088854422774132681240542344242734373380234685234080466746550096539579595094411546876577907956323015020082778485394349038530356712459725994807742718484858241904371372326990717636782412285008862999185248989818111086990362116652765704383901924510990470044873418458554662639057269822356374783301315514249279560505117107930216066823773297796671557364375139327325477680231618815119097364142624231524611135137093718906780585106563324005774791439948812425878184359018684478744628416768464689915293591897567527119791113596995652801309018754037650348752251004826913043457565726556164562531985845671060646617528472432459153230214028477357142172767802713489097721619334409298351957999698764853179029308816709766343411363102138613646155623383828336744646135472486946934031709600037133151584827326923941608293486421858557574345665093517837786827928464376328349998160479161511315987119462806211119421834578088670651074348927968478565557488104419249727698338718441207689647083955503036444895690558587254324371584900117384357071550674236301023914094196951370746838143012991281919171208606899813694262841342795954882395666352672265651916435321985633522748863448746003273955912910415558058371303383911020038323586810864581719905521860224857063526455621622167585720101211282931287406219736408826993671120836953711989347190500448215093863919661302674956542000538024019689844914967975517188760569386102107062723096277999027986579316542007401597187512056427488969771672764602186156030286376691565732540188024338386518872039207528477480050903006846697862127561252157803438310961728795784074088287360572241731362730877501924347154573113582558733081031253609446456971660464263305895070316557992105726316200103828383309319582161258983993311011842396561678898892930785267884699017670732949149109765232442852073771384769530789114664768501072715529888103593285077497696259976641659405646986873968491231219980085847629334416073125694067240126402328111385513443718708004776856379801279293326826857858007522713418903115397543224031869845673070480186145091707299008116165888498205706337592900216038087573094049460044875779051254212826909584622011129438267027369114599445019813414520262675433278016652367759231360563476529070305810497592577523660932760254244692957431585229085763587682819561455301987276805234273793803653728902088870775880997958614615953194582147090129147196203126688342858865148373928930469699052658815333742755207661676146034722365939527267422178424943562854189811246088389370167534235009740968346699702677038834395753230310568819266199222954594032955952681952438693779967781656757846273342353072792626996181087460990195314462463873947977752264409229126111340743826833648153693082663031895270930205563567401454032660586048148316778711726118770009687258320960468334285270355900481388178417603152559014480865302704780245797689524640733171860563278875601608396738564919417832415249416769278604734283771960348957656239817582505912937093662907616435064937497955638471648516146850567149345189556352148312372630550517472154880431553308788331623200223612567112506245826659880616747638204254399632464602019878881201980944598065241882654591267293258039252114685899593202389523540108602159395245850888509382198256390995183639434196251658719169613801022516836742008188281768353317401659032416647589076537286180808530528843626466520660494365279985051884029808336264977396943687569513857093913032596557713907161906732724431317580097722313300388354095419391081368513842148918290013748391401333485231482537049244829886742572275422344986209710895674103857451942726986329591663824975241621707056886334098961837925824573468099077635951058774217081825838301191607721275609861606898505190959124663538817359634830884213520784915856779998415543426856283339977326146460010391162116047740285142899354740275951556515194814750244649048850163513175873305104158516096536510832671787878778907477345883659941199271708477740256122022274396376575554167063928647684250991811506443813162813616401737253497146348962328395495941391865377688814637953099294204803780579591874668398148609510690624385109949799024963247991792834706940315538576563005440351619458675747656216659424699679698136943387031357186172921576551231836630478749545967914350750829404956866360192283483649879668319074885416252117401303046154238898717078895397355413432045584206123272626627799240930468335930894369535891952919341541753027254913183470606465360793542205891852367246968682954957835970299212604560273002164396308086249749932479450203655194452167116133860316209242620804483401741987048666511346772518925576688485655565285353747384140716099998301110526955903603821464834560504850205045948538902050022770498048737995645959424088054450457291398236676685865072761300491220612230190817035698297501469280346994072485608617264296810465150034746214315217551462673015025305738666641210624195202785802248408148948811447397360169061939503765261174493527979582325499432556851155954217067597885766132143735241236102604509759629666672241091295511816813610824017985589483390487777146398190642387566223544260878875464480937935958418289956405213061865936543849017621855104703062751055646588327329353472165725326365044802302730756879394433548097601190954631125920795315160173311570022273696670802518066858336152932696976772783511372507569758964963748417765579596346668166648415183438308267443630769819948454255696057925201786860847346452813852367307976503164435458532749623206067928294956653214605412027982818168299859413750864567821099079448674677954922023453600506410618727346023690560704686578918960898230637115412789432824866945724302598936801786928571205033464341512087461082630755105975900218544477167873594422864338265867583254165363250716204528829919389776085458890588957793336720663386930122597771201208950415960493700419081585379221918721865321017288799791253442202669842090025843159087461728590491736850554573962829526313877289481057633480806486907834120006181259861979915224625475504348604900934955212574148901506750715051805020053088010278094542414494873060224883889363570908848443167603517018698312950118494734212045935647667978252552718029597345909293444611000074510829405090390847618644059238447063984751244599348188369832704860788129435731367219691444950387714019104673673359640168886161367318792232376040713866397687948977387629615504037503688439134017718022516059884804405022299701408592336029755757317439945093500982930952328760898227962097746704448581616376457870202322856084018466197186961354302316916826435011565292076733072170198232468104854598393630766726843940498931043514651465595727781838947869917511049729677528685439940203320145480030274609275916909847433184698199851162832447072987371691880897422944332986890527951076742223282785285397675347053802712820767383567758771838150134893714185307612721573078844580216698740275138694014668238935639633459105283084069341013758649095484242883619037847844685315338793143815551084842102765211106826821616787357759087579143968574635749553581362793106447586985956187626395026617836708151804672822307385158657040550242440110965670693520848074806319824242279810100015770362622868305160229601062048737125930445962276635383284521307237200578385079687042431977589996648989319936503432994050751389790054232317955651757741296592231887324057100104717163664465188983523457954042368000068385006959952867246356640862348764300241265289701359445990733544917694016695342053387480232994188981565086171407132681145136362037651511076095607340529412006991712423259781991733274538848907739011284403009925378549223056716673693953134331949942472644412587912004125775301429415140032469229402848205796460161592496524363300619357021665981315407217966976655748405316191356736026844486527175265030563541027320688774014503497541663485749371768280386245945842498466904766233752850095638537092485272114485771492351774755222357582286131697485567764681471701124874821620600835865678015969345017214504466824178520962138516579870568345217672720836444678005337454305200535108673626388300949462612956557034668202798646269186025740270196837233373460397140074225351599374645151348121788373478457340812594211758257267498265344566210159301578262352219770962883226255564707556389342296395729681555483245519758632242454334372898225098994188309000899469638816343970695020962647550513851795741031406671301388263731152318088721223645614253312480344425258245476714014283050458903486876965402364639188769146046164599860803392156525578588965182665998150235855457916523461686374913065359746716407298618557530377481672024437072013634091140797926202718576188644790969043928449806191436454657067796478668203317237458649308856802948883811213040306380634149629259725343173923491029871096876235183319221690672508580910701659166142696580471580445405933663184049527766275094716976354572822977632456773409989478988663281490924337572134923531030056914615169824909633220329842479570699257026583682796248729808812292516113661616213851124547013510768774593709966292864176996117142004188343184093919642257691268380792335494426779254728744037522899950734493141657410304728826123116252240889642791813709779695001966266215584414526763644874400762090934128016184203515979590575251258077504299610605110760545324228009478396168537362295349262946365904059832725511435359867503508082177920045996615114822950169292068748674721229622824670623961667843390930515448033550028198947358266321279744531485018840284625277830571088491243863713917744698283403770054371815121599053600014762168319328280047136054719565625833277256489501417467727479888845855834249256857551994295483456941014075829071623650240788457470332911260712382377996808455431346102587120021884523478584711530859229958698324332358689069440308034572875777499471165058333182130911676132245039759382497369186932065428463854777793178086875476391786023872917703481525791866262353966598862492229941385993332851378091413832724995370808800466567677463810649973534189459811424931380871844780597447628230880623240876765913719041251135627738802136072467223976690376195123111791603975909657644989571727570437356492373547978194194647343693370441265070784031896991355250746029468106035670438984163109457691233551571813065900840097043010200531823281789445852321651035432977423030136054892597080246548221401080389236567117764515713139830350269859146169431856750235131528752712887566150774027539380940765428424122123320867230235484705332239996692623877475531562456488529293766288937035604859166867757542354881463914695440399917826316981546646270083019784759296114597965672836972120683801639386106833344965884005131653143747175950713476985687668703928788358559243451332991363294236703990855221469786882428714975283759211923824248047902071334778056292562231955595926984145507427296146990352436655846140516435107189831467192080317761063206567802556493093110429467184815011445264783627859110022297016719308683788832518300740203537103900635133156711016333452557513161978353635119408401819856318369642288901555938719386208699209488848702521572308620783202586196723876310697152963541987021565473683536393774305862430733492036210163318563174613767398837067212492453436994319892847213622999531835647843677963047204293539732525555434402491587617257914883213932555101329475830124697294637778383733864813100229545998737447539414737306107710193848028884126770005203883028595491201669182819598608607825019817984625857855614440684199009495448264568484863547337781643105119360519233734720626193001227151975498516988132711322313780518792690695718823953465250182474855666442771700043519649697700004443016968496136606784019861202379867387307810421579645869706665480722153253705487353497172737919113965812736966657574285517098046937380767283746580076904468103949843028341820638729123928314202899676176425561896703110032886461605344859983594768187748315647690218186989901202744120226752253585753660580573581905046474091110909806117323111702427039530417356847037973549398979656063059462651482976189718960783591881509321993346436254070617518509149095676700887929796171312263980012374125446189655418279973629326689089442776213684949395282920896450049103810792876058720110364274323950608299740584545053504452112995563297456727044610978265036770176296609174557578760522456726942206220498723814843458014215775245842391147708669155138514970389805884280582908230214351771303901989893281291617611089601591483889267718811184345922841319283336095948984723295335243359879531232715336688237361941670091329487698342076113036914907653618854434264891303861853164714983526502504573991992794718875585955885187650237677218197174052224308181677863990575895501531174008130408817607949198774007696890591279073364790034263419440563698433709477997198691423692383624948337920489936075332475192113230080602630116366151814716862089621742574146143132178774357631835776719470864609272051296889504304283125469299533461563967689699979440779079319123724124601253553741351715037652506836881230906183464549150458312442329105909554706717817921284056771025256022257335162107963090838146528533544562038162413907804208519399573847815648521738817903180010025777076040659790541187754404912422892399414376880420290197576360468819121896629290140493636683168951594896210061267848683560792860281952471629885099670392130400599181992378823579667549066927250618758524934179365993716281875735734990366848632285940585654731402256508726609338727689039184283830355006677531421292819845085361209933635008949998457763063217215053185483325371982364394758180731297429928144144358708259229656032084955436713877616073993576003929146933298719306711621967059164694356888807373329781081189398696351679131106078867111312342342853513906264686891308793471670689632830961848652227563912619415378995487435832394136812806306009007524348324181994201286053777692925365097050363057434677671951048612684199332839096571914956072752803528584682529904774980852392878920447434360060690157233373074534997915489054801937394940126611009823438584810164931480682281204567339142861951634351902252271576086622288423918255984761860884020621015443255266669659538639135869549913846698478681656158905468809046893411276156651963343481548029827501009250907754883187253095043470765050996597516400896695785473520513030526716530374796990442690466574008163311819045163280676556707543328330753796360570210980292560800858414542885861495179072455833614669043725048734713188698199970980900149407684760448301401449552719438627405339814872639448388198492367405035341215388509081165161293052396943393800499375140473742055761366727340184352093920217816948836545482300910257751786399425899795823902118656263501686970853902107471821540134448471534693171048316055951764103402446995199002298981556894329319410618346326504689598417681384682362210088921216273285860829553468685268392377370745304783289360133879987162393370408534606769379196597857533199205866617698757667881624374070803101776539208921152456380624874883121742878570570894193785746409255966687608599089419499834479791337193446701371650014033150659588348064653090926212576443666828673460771347264995299443880672989206155969048509587642549716893986070965293622329777688533771737169523415701117772284779588725819907054390677767880618289900781956410392166675526744627802582459874497357322580470631036836870209651090870910552845428541120156901399108706985239793354337516261624661887045222499710977284246779848635429320826147242596243157052592889896323120884593648227506285201750480690885667077442400356688754172042194985541418009748133992515441546847143831417093037405095996413651636892973774172378221090480598339543791393034015611306182399655229971430434947461454876513080199081718146498918974687425241544719928315468974348466815007681492291058323452743851216851365032449522003112314680556548677981071214236262228704236586737398196893804874296953911720610508730889032004595391545860880162304845539104834810010122473986516867605835350519709783299344546630609983454215414745745165994725708486734294701343834671874565745659333513063736653168851671679250646937650405782966405801733611161907563814226871282946598777233494899027969190352050634358350284345801089348107597156729440754484125732736148700989511916012646849964817641463428712457466994914208523041489361316645970575077400075284131341975135397478221656652862163793484497133709891798453726141185317347725315872075845952751979941999477716560640010888761629185401252346147687320413904180745995970069261520812436567898027955456178765522316409151879308092488357879594484930317957684950157131970377082432028530714551400900918546963591238457400069712665328536927798570029132597106713355168266353253389720962344208219462108884751842399200613276691849430490186735806321220619537002315511959572181945384528817733389718846929558952353503430488887558988738149547346316239348949751328353192802585270162162838578822658680815737304986010830633555796785749840934982128587604983079087408993355578827372945047623839247622810045878277752731278055294991429769718854728462178419003501891988232670045038422897007387187076889304475484541854491209632001361664650026160969024424594249143773283026717590305878265975179053697591718766707040891591589075107937639175876101593488173294622799523538560146344930683059471444225092799324012760468339990177335737867362286555324858780055917094154564135840751037996367602331328400979580932153417664785660945985100939205810309772441228123648922311301205015111289906937556304506072627079302940246981442452815435904661452437082885660526704475832892376712636033567359667695283315593569396300897390127003721909441926657211866633798052703782867459566082552180308068445721875025114829852214340975090933451872637026425621419275587479942857793221704894911521046693911089585715071345642977916802862863903594139952836098276446499571932242239908765403562988384813627912520974201527311435790648139307806709880626184072410352882730641648010288009056098702897942742296726966374982671266836676564317251774960062255329948265621368452505726182135067621046998048060891130315552253163744538860141854664594966286554737638368284862725351239647353717409151789384632173655387820166457064346006135239715799598027345646294219015755978000737757374639631347247386069705921213307286254549308693289956935644240036562016072055745330764427416342883783046970162120233242325528915047929851794181094693299115102039907949479527802011487041798038120652165170110639315776493586092616989579407312101588620503933180251872664591624839364337622982746513674027219621045825570633981201225899404726823433389655902767099269183180786726993266078399785668583829188357201946560561794569866003932062803849404526045437287122152388926880251599460607207522562608051915623883389493712549822841293661366261575419759410841848139118983254506817204302633579974794389848503677465097680081573417030714103593259763921367405678482606066184146004394788981619960794253462795918370590965472018109220574954565936908844139472923320366028958482819805946765892974949187469418002411533419882804589460163055244576991427314385050562526286620527566748103594595988360627572140477794158617064361989202930113032829263369838723466686393020060111592778015985332612986168452905290004383645566027282021368248554026584491466135910546328000327200593908950431274771722285011707536088352662502518149861832181204248635535873304828385530682808663879636674940932537136304881369808913880275970773939434856165271349479227052542916310488513923274498336109206473679569313837534783616069752290966735490237895815797159946501540266150242908159435621063814422238125752303636505847732676374001709488020605613730150464531700874155670333254974655303380443517458900784129342376918507800377068477801908813814663823580481123771238533640297047754724541199680494624968402925154349083116112308791564902192184589238089780033450658085963273507012245216804263788273536217139312095343285017432338457795484481217713359136408533652720137957716368618256438561550784288602147377141392036468045325221282364393403243517384174526134638436947924271851601224655084486459073253797067448652624223551421601476129420980753444475242224987151974723659417558787135356228744012726217383085116845074256295855799654391798739602100181872334447506355610706570036640223714541101172077447414532139744375976379474172562280086007488554900030472860786633647534757283263745982306146854319988400374426616077577000197361228048169621213686732348775274449782627529845653948844815113636380347494924219506511857604661470883285794989087851688686219345579312543536665393215440588691341115198443866710251130616445147624426116147056278720835638423153851599948960073118827232674393918222903451706066063880662324112285987497483785103579579177477381566890969762430443954857486018663858380480578972252624323191184971868456107141975929838999813802701692828414987257311509944503055528879668473796814305712611450354592785029510461213075535034387878618520664444177217970418056021327637652241141283100361245737342657875358071809616517693700456400535113007376173404227049040055794509350198064329092223731290155514755196346832830852282154164611157642810565805910027924210203101688511225586181081135801384559159055768452502554421014815266974858180574740423216707348396323586819734855723136164297245035521919345977932311173192873284267970212897174469122616825589929836293927198058686418092265043635112501900554106387012561078953971511502534990220454411676741911135323525494543869056518932565087185474240521169358258523846258574695613000597049954305016579936296585830855608298436785289633108353877119138151794896846241317297676712515921268618054077782255528379065664016334852191876485612490112837901755410280943318430773979330769943957802599705278348049934181307347336400812593167814410813689595741083441926503570704506730784293881278144716090635455039997181621239489979052956312728808621263520983443626641789830381826517779205959751212388453011196543785810674039867902969372859543455414705391670127518914164954266343160377518257607913663671220250895017632423061801348853470787604258539001333550082154280022998360462646250199776110198185557406880915399144972522705455844464182054440667337320147872831816187017045307413202638286270000891694976737414518321000103779723837346774810733588022223406937067057617632156346365318985816133439091689990618903172018846057477202975692114497676760338881790872647579840099651982900336503322667352564197830311002805180068276171236757109439955349112820762315228464439543815700444670600157300672127836206629635732460646166445173050863820227571211099364955571586741610242223922873402067366175982971400841878454686007775378648253478439274011856210244186932014931385409928930980160822114399128602631186006752757755174092044059444635639390361499976883274227527803647126028180707815410130836044549822536374966903140409373407211908243633235836612018678762176334631058879703737889967787434775963438895669239799590913508082771218324070333486831714124362964139454890327637191381418075553384913748201164218625583984919611086470929862522542061585748830910491315194842602843341734490756367717579488417420949398173474640501089695487041539263458028686024922790851766685349297199011728796370399192163044452915907796112323420901813000795612558784551967699222260569989832857698192697567900160553610074799893818985169435388927232501122556269514406176751605154276298249115560775079314697968095772133833062017149544543577254961004576982657716069302762362150535066918959926971364092073567389500389949284637547626107121330607159695211545748549976769792720134335470632765785149543140938143882154995404992433369972606777091092363613611333201624317843934651506556135711028133750149818143684696314835115374103311761680188253095293951837554057909981008282719542422977954589105283890287117671892188682154319577801097266847997533210087877361196673609693943693675479679678623860928416069594190028104308121513866279847735362844494454001744985428753351974571252072311114112374523337347870762853223033512055991554986513295489629939101007044038400542344942207310788476002053707511166509793481505053809906892059587630137491410689822279495220925793241474251368686138551428054321258178364105029800626946387627094407846399713324106475710770172072660455021544275933247303467786218606729176984627026547325293862832667662230354002951495563571085308790115314406135638120370289341630984922487542946604946796459511783754569808359258186701944345826474629519416172954948670350856494320354749061028899026261188661447038006426520215334699607196463290190054317199708501077784038183657924868821640446805412643630176861871431521323357232956241097987739231158073149761188350243520153910415715872535430950557980040506537435770895990998466906308477336729724772763987081460545234581944779525679895632860805797608230417241600606931091293294828040798590302320573183499134555476775046728004590797405064729523402378170656150111670504037732404455172704117684169209704947925834504356420527685319143713613168490223080244972692725950692765978940708927778135574410174884853007368687161760037841616451910184111650983334017085780848699753975901914600879728324252898172953348909737982884691642896842975282630147701657502618690874174025832877925450130891666083300010777584543346370983349129260504257147327463996052541003463341716122308679789856745676967357314842356401651360448817187293710641995712230903753564869192970005400525510039989013365234548347388932978167597494431692495770693847194361898286339110824696231264360198233262041057859923412572121416590080492042720450406877002688449338333680853052444117891522648572273671327025117643781335150131504757284155249111983762942981045394509936133428214654613890397003046723837219206506499906584909772445214807685529284580313017289356995746341528131912083527766318659747417910271230074739344391358644321875806098442787930992480054743040354070476463834678365179508985814922647579337436984617070990215245872810825200807447260103165988558513557226705107894022221846245277025669581252775568410607695501227214886076410732006540414098121939973296518083804345952929333232717543928382759034469087415374601461145368865058552166749263325889395937178733877565290841635501919390617687560607226122775486631737047218640056506449118030496092044305588081528987722836201983240035788687728348137883978707096184320986740673315623252438656467817418861677073541948238170265964078199307685967118953852986922126420765426892940890703479333094764355053901330473346786745925539967396513405121240469045233042791943290197598533801640432774828824304056513054123595961754860260955374605115212312324338483197983277005683956415094075422280787066644153260534400308827348563508867029861220107723529323239084548506510209856731705353096918091491035523867623958494003963578956403325336689047807625299288084891410587439496810448640926242620213793078405471849079023491812270794875618564794049940945071238812411161901525361484724419024480694019878005161090983519457415147246068977802570656615660085017987335661573049136390671689464741079501831622660349105741498348898968970295449193995515529973559418220399512793928897564196752554924409143300623280309438647698578039356705338587572974907795285370480312358814324813081796233283506142779432622420290060592394130473688686120690976071002694829571401333059633387193529896687769577310851928216533405868882167447386803088323224821342048326304189913784940262230316919566477001499527237081229855857715835074550520221365633035261287849600948946299759472674468152788326129217030655749675341306622632895030368492824527336173484115582632822486971613441355209118057341747296229007800427440819591557545821723958144944047493451691163419910942321707011638798118435111549819810699439587388087436320401650126767437797506560406878163235195209529994930566452779913717758615029324797859282771785675295608226833441634641367672403134674967290504877386803870339645563987332832205049394975019784086593029211292063716467762027543939810196328711102377985870679835766036698763859149097517436333930411115905487531087430695671523099066779050291567832018567446580274378039635446096613020447950962459089667655625324143666801857932415826348215486756365810746041967301303796786100127701707807773021778693586224103712813115342033107076434554632849176723208246262233617165290930523761314325083249686813165491416467057247544934547303617608077202350484131539675728088116633106702031600241191934161384933296947078032567277450414931398939882519820848601984784120136907235261976116000797028042936825009690993880951780958603670694807927070394505268744219857293431497365989271841209405212857313349792748282069614721703075312905506677291428662637317702885145090262533779786670664937829505408283778554953347643796700649632614242653067301830965338729055026974788090888016323114631537346120321937685933689398290824308432954005524965346421728306391496180587154043269415363936901077584810412719960735510806642210137926563744970389868091229146623181760696397627839306471303314462748611253906640316392671735541888405290554085478549471668470113623996457072525217362659743199566562833779488296723936571436758370843200654312747807393120176755960953955886136178134582015606578674653698633873634933551788873864261034627159332278328858999932317939356018554139488826971093912789169787241527869387179265490459310196820990252327155932631819149258923274048274120941611489392476873115011140139127262486054728940314028793012259888518326571756377797506344933269607168493969367593683660189914027906146363517522411548872351220410778557729801303687057118102482900003532254263649989662141302764144808175749569580408010877734900718746667129789886361336672982335752508858331994634977977771710699757073261548348143902135379489229982888681860846904054538038076948650454634237181591308866333015580601909914308989277570983766771983925302097735768029233618109216126193484457236889195273068612563598027544342744999241953186071314509947423727036188181457856658033054686849726925285002681503818986092598077363530477051124342335701739723525719898378867274490690181531546480238680445163814218281411942672492494749483538660288534184938127241418714788146020946254807634424512659573138965833324854067135640034065910556793827661924593658714600288753489553180124567185178098773095293533317128973573295524668114588431188385729229793279330087449690701386391620183906055910125579162618529505893361213097835147880163431616926166903106540587075959669058594825203784462159851513616327778453117764910718689730578916702310421397695313210974731285936444815194965309116249864415336621423407744081818577175760156240081932815980328038990505199759103685410335389906866012972503475967113557245757467168869522771221995816027099209470464731944806027345789407032118161804150865782084462336697320921986705493891565456984533806076697125446824838988793782431836822578134120776226202911409870552640739179211396185571704961665267808590568008015951022217148853898219780659106556356187787036779480671324244605553564627473874527389936505874466561938569929017627270214340715723535228079746826181519305098287527972058945796651768934338653360524360965221144616701661624908055831856371063056094168091185255441264627974557814376466851281687368865911692041757227126351292589320779633246003118549805541169635656257722458883123015254249429436111132465431382295544573779827667060795606970368273816768880526403644900344140186783739064400129377174474200135542949315052362589960446970250662147255385018579968235749270339152526481179236523896761349663125825619827359544611621761532439999953351865296229725475109049599618533683269541444050286613473954978064962431603053184631341422190028743602252644715796322886931176986207221187345486865058751904519125272682555385502939952454495788218350542559502221170330619130030291959632462507315593777665385589978392853517750332083686057159814388045292418483864356925010361408012141148065539478861966755032795489829878344557897949198447134345873535824674248478573273220602261350541815680353971324475334963347656142915930932841284248624241694833129127640644400972585748955983402428245708526178893352574674710284806390996710720549065617407152452525081011599002292630572317794314802319617761169704378018038088022925894327057264804568144421320837339954888176435036512276412411824931985731377499430642903882983566326761828465735304994584254181234394293225799637173584477478959905487150712562948108998779040387040286727975036140777953121354634096707143558498281295057045724898062201874487498385313662540787029788263604158219066733769656747116710085452955813110097611265362708721629275443304071693668150049190368405577773457087244263475824986654540515514229935444243829658453923693040661844447019813649060559486579493557360424548054805572994964492002940361352652391010595378234517438433016893981120660322412259581536251589856056928250048282342393395931876759145317743014867595426946591559790600295313827711949641192916024742564802704960936624639789074676456063775241634568817791421039974599263496547165152118536822582357222938185654094508397634449209208171739087676086135325524473988762043374024905613262176510176584731085284128044658358815260711763228951266142359812722273951653229136328565628121899938443138293133570090729432369750920212971376983407511425854051603520237876216063307203399652300380616644818233580360495488928847335456506668750094092995484789864167523549613877274854448679310603604167256473773026107231130826210741861865019332255094094437054761540567175485018322766763834283132694921686829505722264931722637044793479811959782105069315691597409244262556555152375831972030953918710552919018095137286389113706975786251082747543589977984310777046311448131203619675274133903099631957090434667969899790766485794570146089811013002045130931751637989771771984164166949968320738234746366460324943533606684474501015538334958687151543164781528664760401534357850199719638456995988885759239434689103051345563825611489512091694464855130600835654002384286204101541065379587007819094898431710931825613562479282899613299163605042871599942688814931156206443722956517503436940555867072243993506787631707626863057853325032266930166507965972851192091829065248427905401478666929207523307133970087924499756126283801120970841574935031991227255507091759879703165335711753854129190630905414220751867982788457331535826009213800484417547709963443724364947107540635275588419453190133011125570669152168471902352880573888246121651882892447035634870497665498970548867982336721172020215338900902420281229516640457253797534629479804891201122105579142335083680520000766818023229409135761326673824212890803481850511204294300756153300627292710809518950264642495784912694892832546994391142115111715577213559532757692686340049055180614486276284882857694806980503046619013643103070234196003655103512537734282657107757046251384440407359947621940068977148504799179712299185781190772205413574361330987909924621081988783956810651531888287438623493568865855006149787017562969840473198247971006982606880493732856786273556946153429147661382045960583309317521995056413352664381180492565959239598590309476404161344043474283908111122090016375412967636922317240522270347085743437482651798207150512049411563394954429975109933244899810903376091593143704872283454549813888072568031223549986202127083824301579484277104809408171408221544826622884236411989151317936682019242477459480509901343518385635941036541355159682218091586157072639094964686070040973071484652441759355782566169571541194263703868882793036662384238391733789456529138504220148885901573820280120676895358705734611349497915194244968186230949032783186992034968527282435851621182218823414570026405751736433091097378816599984260568704571540839597375697626397595927229166453942836811035047362505074182526403315572480026833438464132651302438187103001469133805829083315480854625658420453648815168199964498037389041900738273737617615285564870328974668778222424169165850222285944850544497242969253059976219540463757800199983139105669841351156678740716943620399526957834964735210853995027131792095942961242580228569056054211155206619585339671778699369595371424466750959519482144773661072517599386251512125540537546486801550877967023102925152786694086910305716969455334731879842600072978181938107813380841051863472080783525669762147303044186824721468433637114979421540156984151806456590288939703437605961167007211801433153973842279352717297058939897829697707066580139602362106624888518161637679892726405554160755701089910515172734892990269011007289184099431293879207541245549116381643791513525233170265817060583604114717935542444891677959799138054387195173204961955564586841967462509521298183922183600705631992067707537632748204498785756938078909249260143862127130358762350138038446548223880450745567600375566624198368121610282807233243953739890737281943983797331067603322653540754403527647948861695948844769338489750825025456202740979550419456827661756214113122140019140449527724487642616290014520086587507046670677834852991696774450139193063042437474018401655008091698996089408871586382966783685795151179302314007905917199385552896398795371223678756595174853654207224430628464793047734089813390242799766304702026701030195237911149868657774760564068853498747440405969619959660680448482975515568266126456127176891641520782152952368865384157069461765504155489379505125285170961427343713657490269390556993299830768564498394874752274351618095160451639131281924436374078925506141878707149685081424434485905029187000753479829633728917966270671930937373590863439507168243056677370516355450542093118590655460236396220415418002084130166613920832164569370642381867101047246551331683765751095428548758310577685777075709097893190559884102751206982028140686445922316864866450345562074110300738619559768192909848642593639354848631612695864502889997983706018875328124955665416329877965118579525125444662374431356263804861609496745625553845687780744066590748415550752572071649963437384146939042359711155000702978367273333339674001584390771931974393239860460896841503739412959240066100897198165450956795977168626669798474465888171179427753622795535360717217528067259768459893724447360362978555081344339892315129964676040951030873739595482199819551335657167124362664450037427207125953567977570658722175331295404569125839887012999627622094409502535039193246897067966706540119720582047688315398218484323117407762945061062862759969196354935147648980747822520699409882143357331227615551422401182137417885068067261076640762213553977174054084880959619997530551551165808084191366182684460641028849923866244491956481755152850167028680615312935147323223940008055451975447195736647179996495658223514648418036494296968200480684668399405871914774574875837178918388861840568013908167612401225403751348344239093660640050944432064414684961463771967904104527191830110590460116833193501590327250253679069586723677091092524454328466048453553160488838299411297893875745771595257745453142437637553151971793657376391679441690698292196789851612071021116016633038795494778979498903328787433730651919163016232831226453874867271740238640947355345264119014072822259039684749614539456454010070446621248326714761618575739346552529095457045488643624069302230855782244383187265293624428144835758997727048855731988360248741888424486213034164468871846230858732093305708453641005227881751999307345606691866250137253675109643852734092282271331005040602550235340051855159999171884301663175441305864830458536976191856269962161206024895539903778687826691263684334047952178758604641990201364593596659869527645252384393860021946208592068193955425394382658020093448461343263664245484280534581565363971941873260815897692218664222720859581377319507218105155998632687576824872408195752737729420402863280888884188352006673963949320388638106946650486608056352915177611425936929559930748959112476021862619329953914157074954565152883839932848870924863917083353863141292613164241323183480160397574888547387094459120340602324609839878785566369194176760089410307622508940602595241099053822966979437417584336068906414361162571584184926328484450171518110768563262649532592147699113314414357066100882188058916978394204024408557096943711942212929240602711010492242796259307183165473496011713390358083613637474419433489761039746635354054108796123097997071492630367882306986206513814386387237286970801408861138274908280100191783672733631022121402981908849959214378664449947684865012776324421339793171737791758778308931633075874825683094678902009916796398010221974993106188738991065191688193214142269407210941400247680195644695796926781729927045849233291293238873267448985678209398291352430550882292148040395424581833169271868772261163927928041558886520126310538521288713240913548153865035452386108231878163928959840582803996347101069944041204658674101872624150526523183372828267359925740450637733694189743476840835693291218630394700712368327075392086576460730116748955778677635059251752872445468790144925680340603103210909840186739215327556720631667335835819859250062432844858959033568031657490065489095918028355060260169005073484487154032979234019702159992007325897476683269725172968855632782124462907930637824032814296340586064074115046029695584227751673212668141593604375875590830545752859390574368055285021128166361537610007450152850353472187041546323632036616958883278359772694464664264868367370684576926281493380521226344699875018379905191584958310743479638659763581826611402328450520141132189048003918939554479416983870592250806673294082813077420134636101410197211668200341785148821083624014145452777647144132355292369179092584611800378718975211890058049493626330583563025383591071566706988457175886207717356983064291336425824200332180337500055552200042539781365748089179960873680593995615198802826456306818718708345027295906274075040725437269047036859414671212956056656879606052411049341238346537314562142480261290913873696673548601628460304631215343561435138797053269041210569467415907759075664811674553731389548507106100131925708575098825757895950452562317237537447966469975656589544977254955726790540441658105560754708728450190370855797115828780236505755957882547283815675029934571423108188685575106620696259628744601016702769982072944819921642187142267016123893763699009700857138816338675155926074437840073846935494172508198491409527877127951941140411049815116892895043671615998124143320203025013783768828598052229879422478109531614163444318009040398090030955606845166949374929698653739246595360652023107221163362123836688616399953629355776636654993094096593622335745029476750009214107689468668653831070847139374994204705794920357777933680168812012550540304877174884888243128180172596152086946168764044085699983815175255768210230017886721704082448652778571869895985627752808362749458167313298917166922624440100550453640339000986027005506799286660130238433779950104203194053974399883232288688338223889337444787304376871507418157580943423184430261582718525699429143162020491003879319459082528823144415948656585195304919147361121582279144573367524982208610531004321515767737017635359302290249929930908023466699704519935110317035624199404005605847728339788195403733037238880280734442189994335561551095832289797962486970609329174938921296698665776127060335086270680915526167990938724754127332877965701649293540388071446249789944509971323595894419177279970849393826168348072937792678517912622651343703211439645506741699045287492563777499042848806349941452437136133479845903710791125406306216152482860772691686416284637053314514593321789768798109158669243888750950624780631081483780119401764669828848973454587240707246744094133801743654822680800429335123051020346418172155316612424630354653256947455509639046113421477217502065715832132626551991095761638909177775322793613619081001420113248790633858417506448195474934894758597343013187862894634615879721910281877463184864974413046734800807560562866491235583492429793319045748002652094271216774547928602868845663389573299056104002855090910139897469812410888243172857020948562597839042610903240916912521302376940841187296221598108221482154336881541623573158558319662734317780861069945823224516952673804130136025307063447191611178176475463186004758092529956921004116339720935071660764617178700271954842885971574195626388232603256278379874933148962750188298110939351794601968335690122442737123911093144072354925640166830455613115901921619175954356199749865992223292784900999692592214794704400207100042462123117516572348930334230057508932579098734438276455366862583642490158558453423620296959256559111712605124315353492876495449463383655853436783756032490379297610223442009793843514917277884713335500337037085604378400179823024089131528693949963282921818917438719360918330314220650236743948323784147902432445491004649138669315650911071340639370366487929048058153919383600899380068735231198845718313105421426244895989493113185048907551222969464147627713438142041874054532508281544186628687648216851738996352554150962643903290039357373794194378765467230498026084637376738906812776515001465174024577330362476968523101028357121896778899225058859445702188042546292897604131086217892540107314948798580420296627635606057792426022294659951858250008730535953866075153593326137135335098696931489832568061342149324639597222487949943593441837522516042962509304067467263980427107737458792032040568732204329251037106201611064912204976303327103629322652253086006844566419616902765531972432693712012610422914964047232281513864430459508890615804579855525366868351496986392200134341521675214405219644052675452696438053940876736438843465422498262535742897529384807429506059252159017624931324566784254967045861569424612045292187322198493276087862686962483877492478456264004386291958739576183717081506463808061440374021067072887230931639101167242976156029043296150374387190219887809872368315284759110386040707609712601543637984983972582734014562529703414771314768500641029448930980830974649939315099968546858701444165264222295896262137759821810335791077098942809487667234976566533937356700000342070108002261060082241786246141718345827338045177030480230937362620107256642596114586266787599190028673943337868293531756145031906698785169632386432608137420866819156576205789954052359850730496593767327505383977290705368486160832276494802883735912214935146984292575615821213442931678802705315429421097266101173026662054602673274635778508096310514965591458892643018639758046036315074286776754820443317917230449288815449165071975450119254370075671579449974211129090869109822715611009308585554351569052674451581884228678181117817461270406724909202685049202910265018137534707462702480450041224265551955955673163877061762539610815974087496422342903868634337225439874260497009166279830007660482110096456159646368507957114151267624260970311755222819574680413850091600804147669346504567032731301748125965830244481947880432062938956141148187909726245766060180492510631449656250913146225226069805408626190585902870607809810139246350825227755117720589894908435697150259073145495883315618610930988669794778867222217482460749407450328582475769116970570114454752019966172402950006446542075868244124727649628612397553344942072174117047292364151244681465460517030140803825260503397906530727679307591430541065140782075846589471491925214734096255373412006296437173277712526426810913731881515596865192350106113306798970211105009645535927057889776191455690730816320117814340380402018394786074109002942443706397060317473604655418537725058955616421467345473367317107836098449801704708474655519270372298488323609558141523364036502061087040136714580943174906175293906473627961841473887171809441312189752657686738903782041389686075255883263056060788052385261948625519874356756686435947804558954256888392322245474421795094130887788339690636481867831475948135292996612427534787197597093389567572809996879761632064409061334944201514681237412839771177213545187235958571800769297557564230716403815308291256306010351726754734404850120028482861585235287434340828162135985111446225813972625366316259695479819226201434999966988843017649164107888906299486203327624747039167558009529529421718288630563179601084600501026999808195497326334529782229647957114088959350352647035218313870570163743856624716788547746781332486559168023439342104604868218849766072190319289074126632881128378179526613115903315899242186131957902981574265091436711283719923871395935736840614511808079686326935796946506369130912476085750899436722745642610562098638125474676622631512464211371179377838440627456326252711437054291777612508986842300060452504704913654250599266715625960056958757772093683431716435638208515537678444141706992296401028062895316027825322349916276094319487528156831675371454017310262712202839274127517669705483636679971795754315096239330959326068622323735177723922048079787282627139419889686066856669350780475301232401893441910909100160980329951678335043256198754060865179011703289653983126794005176199427196481639796476643225659373849085391660184806618459563151014606854796678210647997222007872131513406181345361466053457844336873239082260229703105291937441007465044377559036082295485832218191756170741336142403219140383357965799726765923296790240395723482137084241254642283094478808833709920474815512849526384190210510190532912376091556187244678290262242212187904835958727503613011750637029382167169343601395211957337745069493431929823354227900871934227858104146299713796426898111499005340534390190616519337776224163845445655871905811163950978543034278393509925773639584018081563250135740556786836960429932547945703991141839678339734621121268934590948765145740174532817516675889876285749950351492896101398626934600133539116033440676846735536604709716581625300626607050211961979486997328992488170604288100444246343770299753377946664040431052124874672532154776134320151983733753369252388927588850228788209952092438063783091193772637130403450483175698462526028102897476885661306840646611537508353839261293168432169835404898564077798076615384046976692488962768842277106863655287633354576097658752656219916014627738241023369678122888869227515856672404729591922407816132045488671821834934367890772761471316495734170538602570680659106172069485220440479182063569744697609771113399989021750572927578778333757640241616256027765771029350086088438507806177198291206918748420117680529268371768422077284042000970217681694178953633062461121181897783346522500477277679693334832287427303264000537178813585714630808460041067978361774990507304951606780074028505074390554450042787621500639554120038866286501475425934616720202833714927950525994026351358856238960036169026512061705517141465742339830768186015717328876232307203566663894621834363989386476326552617265121426691174633335472978708225589767112226994853528093210209321011911401247615589040567688117347235598603251996455570301238188035760318927271543083589827780215687111643161663720601805029763585542417297524058083122220506524672507757334638291960480274528179675752977707153187605681543905556403942614076393645104056922277116883707633284885501511713412234709960363902673016746507679066314332854317544195522073130256431305142882427742004081457410670893566076965490466267056445472786163852414951816886013391047236659553455473196549576508883080632933054399462576465629634476630690858211943876167206844102994072221736966290443114260566502696618423671486756869193810899182139307336539657911631127180808336345932962644524618666688469345069366147753355926146273999038474776189741728364304122736328839875548218404992040465909371310068347709020313070163158091977748826753876812813840944564334185205677334545263935298130061031329558197900650827507709658149819768321060502908991324870310137547122545713284077411244575205981067383263777717477018592377856439408918517963456393099691606587462616837031863063566265251752696171588349026565994797746405852810650904579820322997286574718286054928688743842341686717698113283551859755401367465749619466045812254419866259825354159300160128889697061426972867126205209118517548502028352068037845473719028281752131653191825208678241602555919240049080547675828336276224946137680085044845094929678510904663258572742152864865196434866557474963957262021156508836781199693399920085189048304501122662345849705755226121487617803172331064635158596449215536023136799645567742263981875689014042488119768164441182425386279490227994783633887512763134758737048403648144513974778589856670879221184496333560030521161726954147394363690487922714037333836274308760366384537821750149739794144590332292524953438527101200840936413691255739998416959793925003523770602518697454322095483516610096552888665570838001902306151443946418955619431563503943379150238283893206036830858361580048325380160936911438917059444687316027883011175247320968012778749601898693142577158047801617043452099487291596745917960125271453932768668787533818237379695808067523500352537094758801502468870481799771799896695853178299137619114230999313475689260011049840177455976287690824268418602917647093191114041803865465934614358667508487739412672945946718024269119474291987474205876216934710335503403531893544161319895520594594097366600736038132532493676579357194163786951613959062513164706182913246417292323382091241956351075155570104296364073254304035921882935175567618576372402476240216706228617434410240366682387110349163635646168869909116423444717866358957000106365127361448453368798285916382840172616782246646765863257899393253492063647468538358576060466583858044276451252684018390114577932821203903366675521978709529634816488887806926119669113235597538063829179761325575890028806627092890588087361715295721983622750841746573550713575730192455856774471112414276817181497011325205319376575718894144900409194595476322282097725766205895787795896288143963886803185437246182213997588526480473595292322356935716266771545241139414381803768488458627316883043933433789493771381860301060515993173008729748706460281705192996138889156456633223526633490042290089037377727272089529780615339645147965054107789091590149380929852475813402601286248420537846194710617330810270365886122070246237749445976404934646444749783044367251411640056016096432776563772645737919567919647638783786684521559041194154633590274935963166341013857462104995312965896448719639145354851661766896852747330273748804055199389721658578959469197219719265958058801843376437013746325861970669889529547891146319102433322384911015443002905217976389619328368415744049735689122223978718654750071961335265945824972207834096521047973377307261384418839901009378437059525777612344450147066656402482037443265731434296316544289129994118885526516272620625951219262471323631953941183434591603739586807068389188005050695519739479726092014788049353361520379379448809961240965972787142605560870917191513793964524195391413697695631099984513848370186502130493762918209763426479019968679592294723761719305701337771770954526639087836354367463717925229463925997280660420880117790782543483095922839220824936421430539931066295742158430926132624804893790397655609941415260606054129022932546404989913316143009052702580334728998387306012567651387530899383145286864931014757788374963767476967054615899688868654430024518743071519143042855730511174431344346442503347994432313516899028580502982532008318090217473703511349343037083114345045415947780588696879757495840802697641328490376977341654767643004388050173342217009846596644161232154875768182403541034221795311285990591670265122848772338413524501568910517725802102490545887983624544728531013581901487544474521799173532097398701899096554311333807072620575827362483435277233075219159652739192580702041887176978454918861811167065771720050689317855888824675643126175184873564261144059920290881743698050996755646331621342907047008325984683535908898403918361602846306181164935683598534161761935156376033139259259298754645207231905356084513738418770609917276987232014816169223950936514795160150635204350163678117801943832145200908771198876547669175861759474910019525583332920864949640648436425339639210802283710374733349248835704187183272995019869782151529715108870214409821990953814792976758317803992676067027729359007503951655304012790515273370424255875189891315709440096743948684204703717986872229783518109348436895345708084066759157991375878726924581372842877042416514131554566274870535755611945956021515144178161945990434110818222182644728447521105592552793858940801336399550434783715275323344650426975703628258839195145696975638620911420253989085348715004101767497191166901795219553873028524560562296719347457764667237535607692172868033381197482366824029558899826535137785215299129715855738004165351487655125875710525189749852617803830830045072294392158796483057081419435038653411716626271859341647568197982181318209462740857187175456937213289871780716807956951990274973940293069379707860613475153550585701748447835585604397292908733959899845717070707482604360407299438506237394868423506048743643169125151425073615875133754692318766448122294143522775639188149769141734010110338741216224684247455036663326761070489528342296770953807007883506193008787321354111202808883148219366111228065570315416493976629381900185562759838874693013190090177590192801737821899018923777965503680362086258994589760376574431435337084336035331103208826766470311701377952722551202848251999522525710287368492166752791292706228040850785077458661661342655838477098328509486945514926902831271728647903476737936232057719960307018376747746444214687859754381547486268896140156461272567979015274215898479972071584653108301363452394571880503807839173555740840622037278822608120807984622939784831447889948730261979965770117201792490844596307053561003146981516409808638365367547949745441610760785324920817128953146229921062740035446255643297532106739992897599081568258858482010439891196638451129956639981864801658980631387751589320134435649611378772188268291502298554875478054079530465394900152184346443108927877315971149775081277972515680111999048513364187540978935065064949853260346093006133292107546763578799688364031747644161688187439869655943355952456980276795242234670708139261781801252127501164396827544281751207063209084575931618418114410168626017720099310789342235830202837953631079887157462255955145365380565895020189123553777454965863527568464319532962948344361827632196131051507576139119624874529435353564359508315407660981122029019892589639285797678987299897127155721192450453167522663760445154491490954592682064483791978295080477094308045713652562366223475724691891841008632825250693109776634734060306899153827860364477576576935529526700356554889414238476842174050527801745782389493758277280130403119729254712725098066134288572241841049582028594511627089201843838076241296740554964866694029888288242758716072135968693358036773955496163089715986364080314552503545748545727829537077210453816539225597733057851480393699331556473202371921972903732019614262352511985809904367553953553262303187081460830180663410519099925445126182827344845412114045068306964041603067117214580945851537981282209991470450067955885127605866361749010250119849462840127434228358285374494127140911850184067707595255646028699042046674882419801096010559878767332390522064311401811484938608156830529946188485691841666027688426562177023910388418595756298506114146479754416149962885140733491679184842514476627602671642556068723050623308435306739073317601505666941645265848469352839965011520606257364937467503559684460670205258185160607079871697407083794674938122470617266550196579122008143677364061250222720305117924531964581473942044232771812040269965529374280811989051053952216218649637713529645108277182743709651705219224870452509699842724664160266130719050973034213370006227106134184062151605263549091098446121038383490699196225004460516571742898605182202675188207573494453757211871015234765655516045127008799060566943115613334323187499970489660045229249355177866051910658469817986667587977669332539624565169714064322248587926216418151786775908596436362262312515523484216770184680444756800230131900611773079198672747183828714868524841726848343543959407177626436919268008545223530551470168777663166074226883838576612343876850096447138881614433685849785261494906048268240755594820106829657446128182152311785004763808590724413750964939381688737409600890075315243286702264379297747108652779646768456843948816045297566677517720238081677066182266742605232079275319055476960648810840572739964916069450022090728514765161245482205899350602343185268907473389420196352961319041031279984186209607921092335734257930034378431816951919352250598506184375144125833178606133249965687011280957280942672367695680421341553795257094709535175714455004441595838212261405398720058264397710811257478624657610747226465539931831930511626879948464417855359537521382221805321910697302710008841639218686342456916121144255907617528974927580877149823376834656024931874285679395088657571669488010498637324540776550647571010188305931284157844986361687660841265352792024672927299977721491179532901643482931616003499408315987594502771590940996556740721820207195337091098313560532418508856902330902985875099332093000603181928076136326660292420306404860297216929775298846343975102613575146206302225868768378957935872603999355704890099990841718474241138721149875451002632359471926552570953711910426435046420511746219989569893692838890350817595303559465105206687137756996780672253024781107954289670703730860089172286623395959354492743493508979822356423324394594073078237642266343932390144413187155505712634304558547968295470160819084741644755974388775639077045823221782420998196882605049525439582888242592182247363771373890347323825298962957154734452906069516735384467781841399794910661557501635079049809685758426800874411629707933365165652424206943759440650417514389152556623737866720008724501929023777603078632089541376832008597582213230956073726603776847942593055662389828657830781590040909183789855494580022687954971890232885860216628119376823126529100575333775036098836136877244824928940938961582893491929603752269841521629811390552755357143184369797239914880979741089019444755477556579572739770492778569972868290328233394041990786858741954619561540278885638611233758176889254204049484895462714371240497067117749426494024804609052919754187456727543347488631671569131536812631830021964067923013330431512189908753023115849348853012615362628040795783046080298821333311421761070804615267295331572222975023935245414187951572897253010599608673072682615358079534333966790532479902778805803140550029984180680595402949187647386042449804277671508327100551565790055426420188867718581415881617705080141868938302078717717456545368780447191073562900934729763948756488940874407343054718843900538072046420817187177693472551531325050603455618013493210873566573615674829042217340253566437996579710344309312980180319490517822850086997963410913911993011711516280376157699037117728424601667682090223979291765284341446940806407242059641355332642181103151332739979281176382127184281242862947663581858954019438847398774554266301475852513341636888570259771312850161320488607389907870334968609908304163022326986855329102216568045913139156414103639927600150233081033340188804340741492479480673010437993164035949552278634273838465851349461429478770071305018241868163394706343816911451643592247893882341534456921342608263362637007335206459357888272446750658422896045002020135709195232127895527575279259391204760250538043523834262182330028522583055727601428460161153160058962908173159213174180515744240496692045206757860550266149128549476825237761785570173710485530697601481634594257877977331467275919584301806512888497201166058327692117886863135253829429554478626218104089904338897112138629347559329636107819839830130887399939983258792018283646552371918241207331825324655596540676591241185628233255897523998164279198353776096838141864772889109619171030535758626333819002092124459041825144130629283704928071091830762061867718594083480571354831194990553518912361473438884558709703411768679598338181327272544433980965788637306859486713158554912545501777714266625549859623402468514266116587324184186454669249752794360582524262823704101924005254337595773237585172043045072819920193973982658298814153247377846568462157988719052616530424911679302464446624412851669751696336132284496494435483773109941496579638347958839396197233247520504500606651387800851089647422151817097637307103305498917181696614617125356029864157302022016590068821427390015988786626058519903634546247350457647912483852261039685840866322444263340369199254815156675366059667776915959521105966466142905029308532310568957680379996064108449582905285379676519490493425818301901732151027788006492943945601345426805679801876078539496546215203426251896272411873533869327351244430913872539322448994967313883723990012472028291042156859904892890426608951545733026881377382355162463399412157452217230096636809567264731307771601522780938227572893997240156968619349090876243989758071686411753055425556603772421058161568430024004413190901504948542469621717002558997808673356582828290079643151355651085397883968481541490314736966628736499509708402805715289527125729055551884953325339008664899244300031940595974829117012804846157659745079839490923198776800482727991493730812455387501826272018989747007025248934572203909972283191296775238301976793132437839787412824113798444443588544347851251637294002794100749215326002056466672592171377016542889816487785414291428742321753856018485765819033996474811859308707925964713025953488482414579617663349667781295740713914865839275037772463382492093339549761584966566396864249495835611914636976637854157505872306630139915898883782679936866360449506584870631773847931803963346655197100100911555021840870228679822902080606564970892415657980994341379838365462399204054207362597004188106825322519044909377465466056908392126966309592975315997884483294422939680086521490342724640506620202235351482447341183456940280109327501719595120502600843590409902178468598780799880067837785390435010562823746316430857351679415729204675749937909536213198318018179924204958364308498774655684199005249192920198636965364972306502574946095745993219368978227737772856688375769358848794983215419356054074459613047371478202774497187317818149442684917126004267085131822433201307591803116657594568018783901399525437626997569263315511092911596341219302872635176199948403105480266371145685132102067449048775081338677152891375331311354050876720651953775823772662741832790207565325234981874981962188478074464979209258110195577787809286054986440227030758551944326112624861011191684272626603766154907112342154339078082825579798127249755144869144635436915863772830281093892617778687899195959613006129728864634680664650649640107344973102693355820689141202949717714679090686040484724608107106873808190215227137955914644006205329385944908915303757598759492568212755387299374486497928241613856136316368256397561365816407109888561723506255459550202554691800402508809750716502144385944776834886485300601478110834958413068026630669128698138252968213073642975801128103595316971329815937428460830969650251506167147641364828956457278591052658392109947565567240938654711837319045830068877458177811013394363798492565713088507044096678704251822101762037686136986708602210996131353278121504729983411839785970392549490407290381469658702665626668454059294074064282665057733053936176931724968838883715666035777505572384687526343549081173054238971629497920546031154683345305376026729753616701443304970799923886490154578537802165645951638837751865721994604546941228806666807779515154436853946237919835110701692805849704929181068755621908156439896831385254363216837836370040405785732001506736033989864032708962453104819620958277097980739912591332882086343859615941323190472896728377536458555732018534966067769500788137514465145037460033767646309978673374515537907472803231922455535253765409238401532769189344871230832600744274741347940724861364555315747343768555953381821219435378507019671881038225256185129941290795486339390188152801166178304460481005475137217593186444022679758689415538353577916616816413153925463481134933667892047038985960639607615408293516217556191632045606434108835415812873886857170224375269660237137335251402886654808440135425231730988963510731513038270660158880030884893838827629316916918968270547544508600746566189384925953139294435579649663672567234894007865608372702309384803143244207397746466875117897886983348947952966064044670463047271082911774906849249493509454416697224275435581907375872435816832899390649551369971665162458866800983784073040068778118854345623131839905747152073095042444177325537366285453305565995666274978885615863822818965009778864537355368005744745232060915662104815395914773345853157537450357487012441112929209039468222461058949680956486506462785210509399993057005241643921598958875091497743251592415448420603071322095880967072851635065369382803457055754568232050132032260346083570979915420159314295960787888067439933742439718996503074539038000642115196599912298451272362293736985525976876438464966967558635761175585305030123099729908523742286963229118695627782786800012846865620325331055733229644826229997431258874335503628522657000086359174372756179056868747131485621540119297498940904929344782764175908338000589052916139199688734289827530716436278538104266441220179038005853026564090046019614142909806557346137524673201746461200894998139285140546226421197998846703452841463830232828509139179029063312565644550356330937134749036089582211064511257408232346396117304756558578991822749967888307032820151310282469650982256602298479860806915259123330038158826799577222590321025800614644333329504008407203493570644633499007632789098041348985326573487828818299061044029395699829610325183725710491456476547224648343955535282795112544141098324182599924960124512429867873519268649706811490241898740415373743555738135513972061786584863724756787214370282709661737905489775022838545861862020977167914108091791155403744096522311339400788017193381708644912621512312027635776486911449742062404289808961554488113232896341800709853472028966228653273965200563583904304080965235568998747122343026964756737095811245437179848248572541707413286918119394721250643753345991989147332510891239101715546628530816984376731684284929360796776598279472100644145256547958868595706539224721234338644774111454838984274736710951434627148205881062723147320048318072900229780160514617225593148235193645068415666891419223926682178992786141970718174289231361897180533487751037806200964391159742036504342870472770103829830300288812679472893213033548684477980970223200332865038012546162186773758728932528755268234703016940949275718840459806003206787958589228848368179496433051081633163830842273038324922545162506469700391370548347723205412654678419589905471227867986880668990641626057272993305224543024544311833008764736974541950947216155607619464505440923959656057424208173427156236394816874408083280838446963553680975237026232451134504389600598984735063048307059049843047760888167201722189810386939401490065578151751197816146151890352748266379675079586513249082755026976085937508302389937243754001312142925867145150552066601861644769825062326390070422614986912769499145367671549697521352949991182570576175257355831502298217438206138374911530587260875449657987013484148839431964385838970944505285520142975355653902975038837347007693555958169619048458527694951605182926206550708032484741054269911881563362793037424782800659218352143469677681425940518279492404158130984812532079200236910718684044026177232779545931687228401141712216911885222032234016875022044249889456334363420374503915299477498715346439247645609943791278689037520572178196634780575011014775426750442743863418948811725533038176423893306678497333032491458476159806000343034667086696376570815848854077987135202519736283819140971351699758913217955138297428689177411129992701716107577936814885126793825309643891331495183307164223519464465358157616677836694175310441830730129856709373360084419449883319732693412539352711784824444577776670029008088472271742710364042802659025542420546552118525448744399831080974575768331117478284419820999745079421920142776930150581402674718923888165310485367125820530082966505751945561888087082478984255227685787754448500774468224513839512456133557820893743943824879157522200026624373107705858365374548782467977708543992358409910518825038186474988593300630502527865036630266314197448995605186793772820031007434874983383332089480191873982804240374497294851436759491465178363746822678193791524088103666378959828478935502743883349988063091611491246325363065646244327958582240494146417200923595596245118105115237575642221572104827527089524054065260158781554506506401151499946497193644614539172588792369186075000094293171242947261816576405060662917680677351986388548156401489445145516620977641205621905387431432394386813447954444270630014853160447851959348522739537687548608929031346695450488769318776155471657056465272978965042468999297106512565241874107570463137056857205208975654641798848513201232758035103788869022389486905205716188121816825432885090841752083411008336991895100949231005072812172220629521567020307677101390389649866921769956892361280614521242033017980306406744756266691276218860723104528819533938485714750367016305463277661126935475916314834547997906685755169709798299781944750564762628567944447990242889326497220079011711814502495810685612988077096476523852563193516831544220961552923999632526962015687139670932195571645553026864567916012078302499358600296734433179655870347567272986391952940832709922993627475000851457884092265994667015255174729730966111550793357267040427193596549180020400983010161060555203619955197334921274460963878526562173291608919761039738402955570682554192665301281888638544863604057634152348266556150184998967783693985212098062829415710474490501369339765550117049520679412129275077418588836852010634137975425659256310535995007617530777323404061413948657392840040203160400208785888202189597392902388554830132672372594664577448713807248555987711191202847737729729605215732467204863271420728552502626454654779667268100295003286145735766374467915126490435484444175465921804336302528036188246217410382853095077082797141551355470274472146493774564582905168977101786434716120839034513590385702703594666299797694639951258287910573071001043980799546653641024004516670891783243490914718212453887937867587852087702989308717281280724642656044262322475590376776364709075144963206873450565937260011221690700820310526530807540291723825799657433046669634576061748176209750685806186000694428895878700774219569674221104236072868660684013002969976337877272745263106852674742580604316778481791494136159952841423169372735544123937818734895408793624946596081088485300000824073024443082392935389624375917698928681983979465843166108829725426106875859121165463083743215127444849654590057056197265152574102214349969156270466224392664158544968688680097458865408401227180550073116049474709256069749357785915471652104554666809711610375549308705826684435442587385292761307530503743046942978394935012649986756867291761537798699865473023905647861990322431951499640548761918233710262454306493022381120864094411529546203739012771307446716387766132198460431821946480993845847736817068028965476547913538597519391007712075673853586107671105057717367533976771849231924987604778070360659991265687872809860355171960669915282761549503018815225272124650714636777515468356263216162175415515203082892204698611740590129994192480922864227612325024537698328882569598948529707317342086718436396114397597621961563916334557606967805979344862032873368655203988771939828843988665307875107769125696745900845652933988388447383860988431694607762345051423071878764079900316928541524715111243070687690741641933722553411451994097369015108872227202293693807210162839373523256010250529381735266899069226928527421979674184591182427689354647348573752292551722893660069822348235869030482882514243362617546935107925490200813034928180718470889581630813731681717211392045518293932698346042508068446975890002228345442233015008804843675971391405876291843792895566258142900880045473904624025262075913768973849075901279140223846674373632067602591260406403861171307468600920344438459307238147692689469409570162839434682848173449901751701177307742284823152351846048491257898724938298480166473599799295725764157226727753712205393094861986261397851604939302352316953064133096302838961473071662447460897881304109081413303689549247607256732959808304843346474824307135645599576990712776367723932504823946411433005848747810196505747104868717701565231097050528169349934338935870234250269818925254918009548326389228049187640021145968589722299358342219523797264125039470649501599227488799130545701612348705060241680341416836251175892762230158864051646224482812471485923126547739093451666185180312961418869983187261434574514193273213453341837001594083054275572123292437124979403797883906889230383789169033028316807458659881390589784378329019739038440528193384626125278288741417281525213894360943670471247744651192287402825518234290760403108220356063399235141553667350684661860387389416318861192136324805691483610331641683260219479509827673770538340919806735064523473231917004875254130722446963520301720507836351429762558604976206669994636244425170699867440254410463720177776754880896208914368304205993771423575191758264765632633627717991599905770280415858727076667585572244305924049796916036276411651799050217462782026011823854632450694173874683598386144043010683658350080693629637081663390247840464184328507718112747925383923477431552925177617448160465306853516741339443055639150623091124913137802618279047716710958699217640179243907135097436863415158478902726281808590846955742345879853717681840018889262023583270836696891403704403604484267201417630588975678465136263608701093448845889940403583389796127907070241516456509370391124935737896252963569164707153678252057533637889090409191389105687888279463422551082143411203538800943704196730805690231311737521477135529142912323632684446126359279492738421279497832795744125619432073671532772230056053855403555615444780408720775517098688658613791291612923713738150169718455667501186054418130467265432262107467256102112485945931859850509449640054942994650990124186406459447364033971280812456960432172226692453862117058215885380469824693229504686999027846924072988788180447483572476628046756723959779137043810914873401614701016432359977137133802586871611199980378744132368052263338716049928965694187679655138350561283284328822548353254111632311924154908169994515623064970660448708711532142148798677137937643094912656092412685462328625243533431594704730439061276929707271208829695081517945258242018331107605789419841112437943613751893046737963382138740808980368616366982220716216799148923770012711890564214073437149018294485158127173698542924928295271712475091929763570011207521099842130159525655807672813893598878518183529162403947816454266284686883885498076297392276325838142266589101810137971050946763346037583360835653749649137608172970563785936955603036277277734130846698102151755780630120178659963712118568488387141079768602721482215726258191616590962937513690155748197409883771880735422750085035628462253124544266894217161246254531255685954263739751601709008430538346629714780086180407901338429468422826575258865293052286411138215552285028035365992816018224516565036301501621601354951460082416607274707939237751930605811656867294229768599493838700150492415029729574034174220264150589859917303660599370650211990904406008546285374293690763286498345403280672654808735108365574668988052083257854228889634551153607220812951221198229492363051952144234902403720102469437025866779652075933166910890968727589801629840056704719823172823528293228342254184807630064510114894134928001169898196029780904767235593574392295560030992783806095600222872250365010924805443330596842787605845640496875968725661998275166221242346795180678610756257258676759104257821589283336578919386446711115139523304021544031095249516324101664683303843277093113203061503793456880527339504156051941586936076412945685259581213005493304218527949362400628341287120103855008365359668064136627895462206720030301459321880178095828015866553433703028561965246082137357954424540936643172713236784603319358114688373077640306860894374614237235143571354534284467333776709537712212859897544836832308517125609729776158066869531707342698507755678534988493746441467440072060624559345442397692505583102528372962748278940614330108725416803558297225093991218025742309430014492726219989216042380940706964722717691835346911336365917375746934522330554444961368504273240956375427541373648650301066173954133080812811774342594899207792549775236953911436476509315982874673035949366769240109507330030004171844368634232487328899254080184411184012024738471204504747935745825209157208343186811419818856182538517926462876972360030511370603186318545924926128818353414819420390694361929904682915134428074815488543457770625085974526798790146315500376726733407232224149704865126492932678792205365550781391567518916935675891680896052240749264860658204125063756710376230193601896077854291851560486974218409757558377581724164164389811739641132703742142003857217865853496484096969240439790019546639223614977652121727257487522362810751879120176461491279617786610720225835804628797004933105391756396657430976982929708776834087110619152538864583190190413359322843557716105514397484230227962636884003975338659613999279129604707336460004994429308827912114542122398197391438753139185300272756853770738447644484714395213449772096613447608775329866276221337491837601861906780419164996552812463494774283089861736646303988334384127296473075829320788512120036387118298366750878691596360691883933558119301554496558889700313120230315787152040636473870366945442447530367739296309227651300454941674708613445517850057938355310966432530378369233456005446212056272637724640938762058468204050081613674330539660493446810534821742662711049253165897604265096737604844602872691094916254690245886530862801449258887276352280786638647767949841019608390920411806502672049069240065889124566544263038418587499565513826075062518261592257205925459544344889442560047393639315223501495212270089293696055194506703513857940329368299578050634833248605784401802023201600202865276232568441385777805306626492553857091755622096272491370863260465601964576458402338740205586184352865388595022599013616149531146290817967294895255717589143154502654721221785826681852778640346940258998355297187732787508013706568911491713638489320636513858107317485947191882028395563043324056661426871032863226652071787108570952340291738568603390408185659956988192151481102225815080718334262152585319874811813657548652988629055168086411094441361942204121237728077926051484552748022139016440445650402704276421013604085039797673620998852454500034408987629889424372545896606905864967162179780809200762278284748236704976124987791659137285940749475647526753949307621417500460745138421360345571847063693601581103765369310470835674963916892093412654319035518182597514935925957753544959115921597319992631990451553668638469233777596163685430122358412593512859639579293610680414821359031364037720056757989970488937448045009584342840621099164390975430070419831995004949650335413500257898278812966388616339114242202382498508604660705050089983693051983005158965581358143227613431814645373724992587613050801376039394415639866028745189562558209633830614532054763275873754739827646490247865860083905398713183677159334629346961274898650348513958115337733813599175628646337049988234913142934143561786115513127805678627523005156405945355743514114982056746173840435266172341162132584450860518349160934064219567897699376191447527480066067709233619117422702700722281365975555923003326027809222942948706620680368637343989062664580541484577807037746982871921805802269281835408790380387803430179261495168813474000598613580268023256288666293217274858654336505710663030932671421892975629017601794601654753637083855538270187190660328300121482098853391874818735453173541262390630457400890755501979563793297448736400773694953389960979354547771071677516985877045194427479190551457337988171906589928220526364854607086741260273983975931792801367067548242540702352660046085912895304964903123589621821877448490693189164330544204451086245751149828611941326643135385020720896319773289244754559929340268463875900744940325378758267442012947436789867022743864567415344201039415093117838343233443279024255853224562539061104350735106355779133036350603999792702870123029566004333866949423253674850832738197136789696236198310677599083308939931308102271674038222796384152400126771724037457564731221331754903404767595847233940843982124676613126817905727142513612908594432261941066501397177500409553716665874718643694429998508829316316859840925846007450936554782954480143155870524460202868997248718448449516948810145998684886978848819826524848213151098570597804064147533186490268652194171763898406442366369904129887663165027211099012942149695929338743216445288478756841273694090601337544772068277541503528059607730251106644237652681728501757562051355203824053071727856858319238080036553675444377844930530093734746577301174505198964315221723131199238848518807203855075245214948472206254600947899467905396195910126985020756882674988635694445287863034538841418466239786574940498822166022458547051778851871733809438617683696688198783885569214566408545339446422146232676564327712825225833890506992585206318793703673291565243505071435619832572676793390951655110429916383232995794097786602431711181421153218297953698914944897223254350611926608243461389373318739887544762041183171220444241355914483552739419170588813783501291213067846648690547470142470462849923892475300484121295521544115445562087077557507000977625486048368205379536700077498358108189110926954074994917666854159953154427114286695757212522600312535588891946697340403369249635977805599799491365494709612113450308941456832357516264387787013842178631374383890763240732688496879904360045274915927560506346148540828529395512151050972700394482472888813881084504763175941378724904422688881593035500228996191869404843586799535358395129907670415369307777388953791763094176776191572811410149285910279318946550846987496509323941305532988335879127704372854407138835483724239165950377125874951152599325286254658230895073147482145217348251149436797388123661495148639395441589765255678386797225184901510237991741050237978688083156960373849872703908810432598561989903228765883236397402325517575399650335948168289542229800353303165382617846649668405863984982787487633308404113121270542541928177308942929265896199373361626773643580252071849263168311025328456741338046465829151623751801334813951000442118606136920253849130408888186133755660931532530537503206835202311894747017727256996909344234712906511750613435827546188871889759999809244931377040774209132649729530884866583311419565830330919579271092696245374744333993777294983010992326323950368350290037064785858728057570421936783773509768859371997938220264427309865094330604760824557565999496834200812936785163828955963128374288855383529901055311990247850715658297744083551773703977289225984781570859296824389588760253707856968377006440557447607541027069815222875402773739167941953530406544226543016193754505301679699763945398157882386577448898335811309909404825162422247222383608529334208788058470837385847924267421613269685068835154792460476224769291552341013899905239899342509710650786428903264414080748673244537283619019609983788621368135007340249898440470732125217864701795276113861523409598735198377808057762456914294665839574847359642378026449299161052500903102238249963221125733099187214736717988651875528600290109223046762609540308882022431265346149570427698126294608103559878233511214586851224624159189980593688622052474629360463195210202804479743234752052359902468291862642808976628537215818808435164184982758940059227498076440699279552659464452869177032552103126996228254688293469592389386199482662282688070606075377709656899499659309968908512790886017078796477517259648318144732831452280158194525618216058299344294899774389627217165969987168231988014333822398978301116667841892475068573557345197354168046147576658949152647189012130119787794961212944466246427819209300164851250140128331581707169226555101886476571259502032388508893056904532857407921502662322249955788978427862506114183507254781310926940326376410363016983122666907665148503058463158736578661416145859669299843726266918714037895890395185010726702908820569303365057939685842148223307448722844986712999602633119564355433636152167120998995706279776301984462509094572122377547062656492408758018435586919400254508516822221590903206419733862185273686866992034487173937887071694908446115038650345918202347358914874275528419906598912163706654185949032798724143860566606152742627659296510966334949136190733357114496153422237584527036107585605537602939729916159795071861698425372219324771652656899990834683839755912282820910803154993993705227023300164241718949816794603569922819496756940052334521176643219297444964048303402573245056279609362125240053675673432457881533907480001330668725244889570242762350376420243143216365566005660081720252192327280721384064658265371884912904066184667591264682391982129954432483950599280756272801707996382474944878109236036591555641247003423820157581407710235039350262020470009481783091811996620643029708736260722929385036759561710279176471100579468758153908433592057214360540871140643504602353275647871979876396179825603391823509131717337690098797696549198430754774485332138473661976107568628646001304103855824807206584156362017126823942367801891383199948685900265026893530361332626878439270739435396966273668751539258262136379379348225418966011359791565247443654476993326013042742407355455817471314859269651139689604481321006588619252892739308252587057602423779771275129377937845663797038156217991809032980541628638899486338162912050080251901496977533683475641183472378473986539799976718771534344374459167883784553223557877067356892597473123831110564604672063126125688329562413208241503143509608195440771205087370664499887869408851758737246616542210114085229669492895047310559701939658365010260335153183575177647519429308623699410050305931331352059055023366763408430645609640247444423184875680430143195328290748846190094622209410424304703469960329977885155490924898038448700949462378174694746258878236258299924524107273795006307635090364648100937275460237712789910444690337464147298374360813216311421737380484745178173768196509947317603244227781972763526939381659515978976040178713023585125154155267797372838694384663713123463635902271243609433563033391915881367405978242744925967996457920186637810146524438046280877355637385666093035907558380383992040669991619984644339817014265249253115770180741537297127703350707922890049604757609044139713725193195064451254459140956399884624263201542085658847734113314591441162490154266691941470082134899604441170722891694757061074826963540880395138927616508994784083989194040697932192094287087628511608683467250988143503681367175828612022428440353200243096470891066006212855796372614087116887999231475516136363106934113312204609781996705847265622323434007768249584847552512360924906215436785083928306183644536998751356996563200146500651593260349503534571307782281227188042706001359519549233374493596638621864510958418826803909709078111414409276302689208869959839628791221453534747406757945025628135405664277559570135986910029663256169831329013998566103677946617360745815653042248234375642264131246575472161496152055556444313162986434024063725817348942031239610604320174921069199904600501746377112164897460448134361249491372337097545228841092303491810531824281437215657062799184299379212269676453639278224018057796658535186665219032940059378958249216299520146624467442145481694875116604914699250093336283458371468833840277428941107055773581147547048416020000399696618521072537936755789732490729467952819906532744224144601383039516030015154150421728600192594498591347241074323965878217026494019714257944225309693646683386634642634650551597335976867040090231051792429730875593396112110489854932615007077989122379470758081015520460464234710433163064760204036495000642444574109573859003096827334460943415678121929433193902149392370063682130721892172732828113222486775099132515076383279576444471371864124512455603614384513804055345855186812757980588891581892841905554606574220603789668466660026332456684864219656691584666936035552636810399207637503185434147532481347484495808470590009446093124519659595137347339205154562630075128374722741468462154978568132722969608553231184853691611695699867540744393633687511783170003771487238975362638491781669133760619219540265976212408018157516146037558994794525754182374425046860847169643132032088227283200535215814985516839763103158101976767284243868024140891877165884957026765124617566413110122128221117573968153783697483755397771982689260301630013025083987619526744454152074745158331377409169189658398500440310304520845352459534674605279251273305346835246166547306997127615521066852844921574528803409738950390927396158455017649345138672198375176298789935995817708355883086726211140319905698433255425434357961788179236430694037533686020681199753490058063279957880617762768206444744118708942436290919098811867767403400634800041984084984009498977859925333532617651994709274291039869624048744086918804058023012521227375659880865272019200999408110760844360720802250589688826001828389610976679916182240218023636497998232144176424660535242319093483809595509407501159828907628549515963490683236464242862539428388848244485088021570725285981384468865936371707467799123409699104885468851717860933381990608636272382142199345419516473471739903674992862216442928904366816817564751557283659411897902656953186376805529335978219420014253506021279589077470084417428971980711747700325983498015008430914310430433000404726210820947094632209139766353377307224434821795324634700875519472455545624871507686908497107659507986558638372364315165038675982882921407111587817626665094596992236529890949774747684092351073857579313670150276778066211577290994790644452548834136859795801096097598873639893100796906524879916585457922632658119012369137485698766882321093253560852823763915174626211484804507799053806655122401656234785298648310625082906130170955139186162150193385790759199582192582136377278225977730380001848857280394167533281197146808981905944594097728280267087500944859893905432946871481611470310488393493191473779965965149251484419824001465445625294419934498840786024028973223825389002394650534158632012311864484399891902687065475472863890241049358919828178487902311163395000264026796996900908269916760114367499012673604694799979822632247146100097616699086877347801164299066340973850322832302508978118257113934049556954462469695245764452233936571675324917649878954390436580838507077547427934923927674365495895177448229352520340779523827596594711301897398221139062571893171851388616769965659693879669030408216937314157814849474954014509487738828013522658234900819942661267326438306880902304276893004788889758974966044282608990758945108445636813946791563737167525139001723020334450830120781531390913319615641093485260194037201499840451367278621830794921991794972885933631149464144969088188626531503206522407825431125304048584289461686405359708319929246179379697904658642959247280015405523186847534924734848782289748081043885879828258710588142026846290762351235296517174218327642008377439751906180532605426606211205735286515094402373005867109066807610719786021111684249468526864098399926129513434218796583767266249457811068726439240397453364855234815588105698674865427154099309168831759297284569006494062172557236207227995289276189543943821235665356547582401711467002228524646482944323600334789602123803320715970364149078714510822890112314648277540877754780788568741841322839230200802527669475879336447444679887003556560025123961450301478616547387285136375780147178392210912161287291816322487811324378823137553576087504024657204518956538452761343934928447290047521966589591015778125626697320796715465555977953466173291577509111770347291418350691320715955150535475820764666138793063258734750097041213523524311728168914878712893145955624547286953728638607896585469954567686361095904124666330078772854624692771111585970002423502380341622708860282426546888802140665108838209005169776961485999201118079023494898366744259238542773309600027104705586647517641018575133601544467849517238662455888865762692011568603372878292081963009015705276547032729877037664395731412890663012758195391196646830887686857932015026128658627692496033865559367602262312059844584766616498588299414731272830261745812239520073341102129635446330215158454805981546332308106887447276562997724289816649418607083059127552998061388491979129537977705465398978087222653584916007019982984695158226669617214310143062081494809803054238639129168176458575692012905231487898230861018504117340022652436126464529033098521019567950777911549474276982991801366817382465259964710704577778327385660405110784928611809864426396690829177255893790917806531439047581720361115350904579339983083167759949548475446629230426675048550059884649446882296600297742997142181023400984802331615660805683646523940380911168672574648407512792122016590825017654422183564487895604841920156351613223040510605825813190920259394181872259861413062404100818624236246920799012178497456735627088632595325993399245858888952729868769004484283010161336133023977392837086803998257951853720457704435722168318010242065178011657353070104798724174584961816065917784569516519474326781773783518832200025499753928731036098791226892582325489561609040779410653391223047133360248019675930803035689349672488461868901509231614969055582012110600013122912069421667450373039667459623349777535902363455765328619021205331010820211040700988275916945367841975758721336760813213219236308585837451912566001587934400716475633739321466966073409262393809836675891242840258461132114719245336520534570154032177907182875146204712025463705611197288683857667165380845066340006616681789129450505312813156031064814715503188667021966899062633072260941510766159649770194192150554553590949820881098888483579333765389787569288516899711343397875615130642276230056075534237498238218385629981282988306581171961270036140073451875563820040674134845222076349239545366987772721722048845126777598412968183619681765652369769840027737316374986156800475365586400796432947160499375423481893835368706477164650595560881477875662810313931743080725840705338803604887866538473221098020100811971562464979324573945786814916795266625025675278647914689866441586017571653595415870287976965571133823173498094312286260934820840863937904560064311947933585695440732817509070920172004743858740226393941833537063371340328091926468246235379243997115741442259012576146506595892286194050886774831682464058147348812803007296186142480543214646792880085473603947753526702209630976669919868680120259137477172517415829856123959573525456053931225149201054397960700269958494164137420375229502883269912691952754733382326073500799020004436132446748338750430393987931258339367453283267295258450717179051418669304711864253284515653980859669046697759222394650477659928521250557717326229379582981370689329342071069169151835290388160282355051711835188853493322148806558130853979226576628664454890632877524387377121499071668151457755184672993136249735469705515838980429133102547624975357516144921274143165017161051711450318098910942513700227442524899867598836146529541840399045147444875036338078787801485982268891932519883318084517921018369899687508514174366335069725482439031699373737474212448857627943695474809364482352073319896006927177051746699128456180060218328761238323853720264402575531522709038714616453844881929580048823569341875746218514308843953702506954984700340595711592072594856280101034250451045975664767608501365429094930241684524924840276956310143314785034788296936296051166983549744591646650900777079706573221625241671502384413090670383642549295703454258456570782645067830837810275767073765651667429222391357203334963643386864538397511509022889633152830076220099068938617186608221590050707489431409613635341898292273662714289567201977587143916542843421917125300545703117104758482855262535010548220858071396790176932125159739351099652636888374089123836852207890214067235555941082519196908409836988342972250128411608095462406175135631306084753912873666147022618361742874419456680623440047752876357743992007532336499942925212518810604868653704057138806420044290269100037994093302477228911233934509857761076156530735828131795349042852614850905227073491485017603708598847347120244857386184655053487140972262201804647619394649420540613626079447500164013684379238674192468002840746747477680856949188969518346147035286840154648950166920859186745617543211923889770149994044835684991812092729816059446443197225216012061307137949295309697156196079345234629318220217288408382462372680012765645636811395958557693129135270131349315010792192322346356086731338169235618263486271198249785385107650719226166531994512435904867042289167582266252365560544386121254963993509997435780109744788853577836806262911822764968524999942251259079142608016710325277990675409723036768873045714294848192457245082557006533238231220267025864559454445661261557384939146603690105521935825129277051921722289316536976715900202397794991612454754536020836476100060081929001042358884695536946112278876694551367052885832713518787462701906997608186745206723511413547882761588122722602192515861631955556758595177721360729446016676280216892533357000688328873264173888462781315338081959337155356006667149193411824686228814700055017606869105640783513839333302800431214238718038746247324406153600682098819523936978926212441051189256605704989641319206114266363868473763540332780807907499279643424568518863775429405062321203822951254158952866595247091389162480547237358800887244364194109752168897410136724026146111502098253842083297611268765040946514573899515061619659937025804437857461485835178767103057312613732840740047488514309815816977362412049828566711723512556344467917114628861466785459336048189177367587946345708949074752113329922639681114126206714741180709096932756593915689011281165267533334075054077521650239766663322105759828182305609206581279539408298898096844435492374334383393003698903276810050812435292874331367247201379065757905854684889744583067757274263390550494629508113756182553926615678148906064659774595470767977715362200068264044990421719167191423007724205368779393353496391877912494465365783365868725284194911213075188446514790229762526478198226704930972500743514098312589532908332481619224200961202844521464914670510471949957318645135565277052434636463858270378714541080308055425107613653398005120480641268231977575916117800307285388983298135316989076112017786938471738164125056453857760170237121247102243935736455262724698762263596333387627391274660862283141055961447925429007015990657056523117672478678840655676772591699560054374649479580983099393010837244976184698182199955607919456266172635809175993636044037176127304324999725855557266767399403417489863103027629421036549144103755008403567056452867971906504844427735822063358689634513593678705524046114804517267388849947010246182298918651469513073952404328468863734484137619538651373966980904524240538480274880693452908247939237216163858900964008512997742080919051337059184804826499732671719614583669980148025527122626762560130642729280361386094523511845219509801802805185559361939727512548842565523089291710346258561606981849860703066173792810215641574278501256437183828509041264091439452116769733514151694211927507545340868174520595010363949440835891700006637830299722146979499058661952874098960287859285498130237951143981472877193297930830442737832121744930167820056640274442826147521753784958077170753914644732104373593480639438985389908943940353814355167289666149655856373994690355181524752457412993527306885981489192814991056842833712572320290246692078034628757381923615368762748297275404208974891923295734519838187449113264825329311236185665993368490581313156668696895304681593752834879535142367707045212518575934779483995030894574874062769261473234231166760700634936169521308325532292617576742881495380153978677704781223498367947556001612273616079302604740871204460208314122301621055073541292146459724749179553790592973776441829925489328000671360598725204994575510750034722891062715546573331030634191096527265421115952858443936878696342187392199025595032550077581351991320208354799067647037085672898780731514291318856286149786761228383119897770673078159961462341127412800001912989810580830793928302648514454878780558443654503890686131473440377074404267688016790253311604950717082980620850738103529645813413142389741921436831697999530109989785352582633046059904965919273590530918375503661142488769511164019542275563056683866148181743818446487913839972639500350531366417293483540961380887519950458276303197016383763821811502217015529088343341968112383105598419901364844298965709739276439827249248452821761946370055310103489214783343050313355293802712292266339206123679497597531785892561066952528183675188146654590777251365097272509594566141175417013470908168333016047994034229383117065014888137625687391604280464384158186791942961438900687133492486363566389255693949424086222246037547214581707361556898642222861116235487170388599385996495911863982850167355759315865862369718944393907626037683338120711156594901163133830084252338363994001003153668382894365207571771247522182793544984416543702573756423848729891696557514186362876839000162739621687457172196586693674534394575018883939127210397204140151127335461028792445671683677583765631736059294554268359535303780058376480267626036273806340504870904776908974020472531157863143696665080495732505323182658450992135930930047471461302502524109617166199237917536448777235779812633448576341467878411796721428492391109218880877080367431343814771742469001591016613836412254938533545079206540736351993461672015230551743541154096074647059044533767174786031227160222990697494144419289332851174926139122082942395955773164709576112136269935766547067570794278656805292433074405629573665058145605829942478531356726648991298884915499318799744908468574457672013806012037440221971445294675121865366898100034291834763590609171605839062561558098560943567969482468058739821225755963297114984548682065532542452822465851911333157353901816508867636986706849598618971684922508971713402075829384224065975740786044469841529607724568492311919919696811974219437274257210473170071723621106115348422432883969310270584573370332868519951589611936726653803833940838729368994994455694792348174377664854160624826752560780867803124955158434378759399959321938709718761945146398667867085943049319959170287580396914137969521917934004654505706938813154466769389856365227553554607726742814460197561341630235942616653585972415516731161220328783792358054233449346072054262191398218606778855587905308098788220699932585655183684070757961547411761812496116488292897885718561493300039779054154263433323198290568500241826912344579469000326142673694602401063867782030667252396412788551114706149569762872913291261216965728498712031537128471076864438536539313516047412382050708421961767300495898170744813441849997033835573198736234260943992013810713034867558805745825010750017146460825544210124372563722014033455565865556044010572491814224874350451726603598730662529735085488253680414337748459615537997723221464823475518675036852089617853823141203632862834719436151446629549164822144941761693295009304973303452865924380403577566095149274717698082620191369898512483424117326443107722079422624091620630806566852628231096126966488212517599983083824178438360115150323393380731373688611839856224831432815452415546505554323649792214263493398043295465331731801175322529567739220890346432455979149301271523913715900186758898194867598962551195474217445405482537803439389017007258684849065570236430215786284433124198388857631718643003971778717675179251542094836643238302768930055626247563165461786316395998945823175128254956123627930449226625335047708272547029465556755706526801967206638478103911409173199962082464227506347168028256983098787929303475911070998043583375762568338306339319353641883578061143464342863526803143090676940951732096295195901081797225460042279241728395297281718456371352893543765816953808395583172791867749470735329580812181842981844714774627307834796496319814181423579159864315678296235745479521095156742721471993055418732451770867535969147895744575708799297162566985656321312788875156704166667768452597293679946257231950334912763283058384424665511291088951786389530421375829051193474532792005368476215255295266795170260421723784609581337905153419982794670352815984020705805283559412582564088715550028099309934878128599945925479518168603273844263461818912279685092784420660671288773000576316069271874813790131964309788903835008672169549007622919786070812678728706922905755062103803434000774021985562236635867189132337497328770959248586274539332444568775761881767839272819154470566481733247956624709346750695342770416906836137745610166248748102181551567156638704499326349851149486365758432242510868958562824167604111018463330079189716589197527101594329208773049230296197361687116561756710233668239031538814555375828894138286638599996982598458110531932351962399196599109305926172714451747075274982803871914443500342350310667239695099886728819272237869122080555187869593362016029757368334948510488525036464847654799905495332860290648845304614601175006005246175271889977019217598962408480539262627417600229324958822812862467597200335271300708184086905135662777393773941380117980405438714076160522378225794293627416665568705368864324707177505302982783004385718520853020295990800192366095416520355126261386580164126292592531701989612043015340254897841474149712636491760292233250926198629484182761770948802353349172565264715364087186786040522428552395199600718253742064858931545143159065173584361835802841969058379444826826856528112663493166007708650062516427645805043806950772999820175204976739781999298291926054218047865107046237654183488854831381511475282993496991202655815261242703304982881919601870497702767966755801486063224176344891881004739924561689317895783417864272974713971992288014624950164796271415670400859336435405330380759063613128695556156624344163002551039245383172791725011286652593937589042000369712717232561889743898482423241570082354473590160327934562327890276186103809154272772285589565405292141364082344877460002893284714330323900559530366204390268858395595086996122614537809513996242244617928366655641180595488809952734673102697699319410271559807633860146661878829770598831195065919954918510281489269136414640718308839360681601926456150468008032378191337380556755948235887498003948724471726614474591819414138541403310916404593281861162559807855858787284871431840152721888003691374734737523997961450331887463284895455015379743847236423342273703319362372486176102682698418156893533222491901942845875409549626550805160177817982605719070433304970172937524423094966716698266227255354332855648393296893248858415593264721468794268827989782690380122214540140863029494450492410364130440002819074207783091825607591752557147377243007353271836862066223330392334854046387798461214282857998512702706597706618468846199923324005022124988787529906865926081062900764301372076193802043042930980832546465082939912143408480837587239199757253899526527488028037667420912796723869706947165182765534738813799052361354943486055034105010020866539403212060769723307004313801573437046922715021982060752553293682075009833189613651674503635785976002446289437774344554195735156036368961603477314005089346813411369886244961367490981842950297817857314877670643695073370407121226075027923249430567457051949094204671327714918310334302259375960001782355359503057462765548050946850630381243520864495820478094788474462280215228595001446719347191991228816310991051586616526621684191925405180175385316279183070849637963163395773006661428362169234681867156666733834202755390101818855488034370125890238059617314955226912194765836309206365720921312736250107347840508457813077684115366966734805800330193534539463490760626415110546485050368231958240193137119568711916260899991302050450376971543444043116337451299800530259095869058730765503706788359505732514689021836329660256229909956866189231266784652913526656974290009629365743313984644736415949946791586585879010541096231584154976959431226918017011450011361015680617873493712242233517251463053935322240323466757861822506409580525578135799121646054795223349372425993224799851287107324072565510609766057920934573951839965407800291100688969180042955660830731913059041532388168639805805720502691823620849848982592947585282662189410520718044085945942300215535478624477251781612795626446092833096476977699148359053460781850562637241259879791198278999279752997194474080931463318026096594224495349495724177999457917465113895494468366600297547043219195230015054061605234537021642934032675314597693084202981950556044628714185324382368216258571095604765234856225584480413408948624101085275550334203824037573353597788321078297537657714315513884393087445110339147592908914808028137212826918093428890935863932237783347036093246989589874363613347292894943080062980823077463910536219238289403814825641939889218018898679258502905764019164175539529577435518722338881366643671837986288024381916499593418417842710374464724536085787552507964994637046759649750564390306753991177202122322259693286515204893036973872699010369361247869619213067848532403443887417815536856911911679218272371587658543973498492138960371873694080599144707410463738229298060493927599680040026290212906144767515687494545988136337522544615323975801383817941274288651567522441999110821328304624920958239257993753281669067036787114199804486278894753489521048195355467496047339497622813643225879853983162441129480205217906775789962138354346003631937041509684611464293387309707765644652967954721662266194881922893525140815649173099775152395448203599153722131043447251056827640485153611977383560407135323792545178149111008978527558333881850887499373824039950501947063386349812382765863378420060043596235393108984153858439362872852762401349080568507879824447989222227738999799444348719196529846762212394363271619652824310511212033768017046737979339352202823673131723152736979262412814543108269467595933026145061805645546748037422136871810184844536707817998525628166737067591439732497454836836533096376519232357246630257879702536834045420586063045547857781333382327021654865225605950522293634082132285502500614468583933094304841389338152010825077955860930844633905978405919605354461061596000184651007013552784101081509773221791578777506026159041604790640020571600008848379515269880617982029346847311051143673919230856552749701963372853661996697444295620520222712699977162324495147504122970418489110090742944376073007428641582708979375205396356394839679291984262349393494764184442258378861352803923183156800971736113174445101344775801201191325260555607411789295857154940521187860173589617897805758970105421205969456838208295093939510297704076194399021281671608878851356316272841177315390146324387355164944459731978255886206559891855818020604612633106183358583922681601373118367473613463972425505597944326149431536461468650148726790826994075486423624543223049005576953056736200190867947238158422381281140166128309708489848244860167771826393208993884147267147317246290543644570170690838286402226319740291651450395266186783294838056496240327129992216391020437648325828032572858737682249885003835957160644644019606031129491687694723865207526329287260857103268656402672165117820261185780308343847192978669535937713180374090619182924785526749172689091289772981824679582533600870781838290654680433282743814575151929282491670172721477913751577503542320822576330423535195265532985735380703718289167814128039799683446287761997382463829551483293144139869944249629558900618749909122009128369240863746961093150586575984031312873494353535032533302497051721551406736131929749780575019119398700244791621262018661749731673700481180172273738673007275004691362134517458213489915647476150737381686357345212516712179054837486605648805639390243600335663535797142411934895054299087571631015119457736035820310202520731647598340737351248918819938805678160284838541706592078643392208202328283787212004772141270538090360743160844793950611615068676549991816729270368587032433267648766144417189557657640223888928528867301493856835253481387134050656648597450988072306253309964549522198162205326918921897317985339990421970199304383341564342431746321545403802785016399372839930676898854885759451991342514845682703974622720379063668196062405060726390452865801342384079566882417661877286656869286934819121116746398179312965047955050462119729685515864823051547872275650486879788887261833438224014691908895131770661837789428457874821314073958869634972248921745957643787675151227937921527641592373839226109106020269827328425907460447512925369464451781114055514642249865495366058539232585753845110472689858874803355058595564868494924442769864897896428221816943566957233283522773779811395096925097481630301496280087526507071109901740990302774526146150842673051389207102585019170301070000388329309539804875049598698963838955506329807692425056067103505144022079351111550041478288118823182502681124905793616714914297087716247942576408935908083365510161387236436722492904301563024488037374704821506144523195486825237818416265142448093408277104523221698396043883657660504050558877926000401647818869804480615026810755641046095316771249875355927327373258577498902886294141169422825994547182867485041478620758314760991891057439826401332709367087858315413493044706471038155796786572759326384742335340662219621026546898493761125492933968265352333607324579247598165743025180434424020674424900660906397553772313018375917875022591823052785728931555430985129243002393240398268872910703907658720105473791337421567762053597171935175218376248228880701964116326929762713349561225062756314728870189590431017781886447700157799251652339950253004845032776903940147899529335554857657265121616084517913771115147866771605994083225032853247468725501468245525911886127479282280078769136133457552533662835796161857504296131961387426256855512234414545369898970680766087912400399781210734136606514976531707089285656587003459721420373043756908041662697954364157229820790823297114619995683649509988273551705292766875745972092818558692177076137062901729132914423590152237074750750143356148396069271567502079874587024367623495054866025372386838220863747403018322359439125245376949331206926772713075033271531954233818822717048691674983065014329951385488777665983030461106271460135376183482246705678156932959630333403162301777545784844046881410021716347701518458974797637685068618158357840272782172396337304670809302798337468301081838340477970889217687966846393489420958375497306382029880524839497507023171301702400938991400169043637243628415691259510707644994488129041192058138317016783075010128179864671317351520505666881476659610627853770359484805298925663437244254881248144911953688941813577305818341345554644364109644526060911609578651332005741917319290018216943987851161673669375911849876297609695074671937068317849672151094619368509736593669302878510519295191024209989543964602192312340535284394027580624525531720620343012645831540353511369916701106608416227622550212940842748035382872567455395240252439834829002400170231917388413091981858309389379007467782785015198976709104534889559101835246638925829391873986730860232085143568166344021986579742920779202192220855587184980918871439549802506500068094596475320421470463235855835511247439379376225563286286213124954247339268313689844717295500495280497276454750219169092650215832838363943671606621982318845957222851140856068331837015243193515817561794360862827667483836224904081265812906295135396156819308885934066399631395029497663981100310016986166694222303463875485635941090866792104922834853426804698378517491003490970591792970442769583371776966561434225343680524598978009728401399453397509987097214088284783104417011679554448695208913281309329329486627224400207034363710520269205583549413320252329840099838619136285091289065765223382112166382231669857016336714639369473054033222181350184461624714841106504693218401481519946000753610515632909202883287478389938272670146323254992633376938262112739632359026759025369298878400596214840959156545038243245061330775027777965253008125561839696261464347969105660885723721332064113582012539288616315094770915049677468731967538715390857798573087657442161033950059070127786848013300943520367827766435371332732699349314150866826577747225152690393970913703503936899750944458262036928721749225820656010420463747905907205332033773079986794196315675153667939869503476625030611011945325444841724563335272746450730538185779239663147758201633374866192082840993732604295281336856666744000802835174919638394783534525051289226422132808172235519113234257974069300469288432233569215420509060785102257826094510123956599248965310122226045165964937222913585638750192403354842179990460700721073020887260812921443369489256895414413699342295098825273165323878095007572790347997760722012236976553876282983884077962442541867618844293598039055209175090716343305738198327234018177981776059607951980095528145379700364695476964321400331282976822379960537646902851337241935726653558002053047754649051528831463071652644337215094018380118833221714987500609546114010549804437473564617428219425094402379272392402418114493526721767139472912910703288840416037404521837151113148064911854455933034736143675574672117751738273926999240978768811781949075097343659692582452274281112619762565648744213758574519198322511940729058322057577821502004285766678524079120108339364769787827654585426142228745587311885743747350591725666130149729841673018718731996699522891057099515798894844640419098656854561911064180137949515660812892856126416967682383958905789640163483668993757154880256215122300963518495894644381636092162725773037512106672600720302426737817201603317499469813088180974541897701413759030479235451652324917345784580191612809311279134184591714854165136641034481895003951005178971616791339590102523199753337667084432908562827108312762190928580349241782168148897751421329840457790905968296365449008275823361149831493177406325148794158691156446192399843836080278633376190986468985226106667370532340446208637436875726116599997822558408545449941363754696279412084129269810293269063361116896281093538414524206685873917596299470754836506839332922435306806623318149583245752711982905166697902498040655991250005988944882241850532627561168476469809104649364064561059019820022999223645787337317043184790184002435746107959174360039130388749164196462707195642664854519889256164846201600434473928581036921792257995039064845326068825367282408827098179671316701771257195785228063880594024069673160145447370886494831701626301438925214122258314490061115904798328661720775724259560003485725391975211140647161125358517720111249124637283899489508099667690747034642299611923334991957338426548480302898058839605135606157291936307607735285813160389743124170881830993974835951484660790618060270040215548873201950378015898244645060711457357393251336384573182572304109358997683984757140709610879209216527317925683305528380706531393447543159163621807347095148588917656886212025801466759735336907206544582308684964868034174550810994593138234351265025427942752015750702050459429643051708512759811504181896012336376293799759931091580559865818259420647128577639641404796493589301116913054707471297976933436712957115487029472192406330795588009734573533840012748329712373368702537880549504022964835471574699157496164494720221850875137454682949721157555161876552326966752565020833525266578410187934897414411528045154492280103745048433799706979752980888461128413143599839205816707712541002419092268357653629905288086634046655108775005064238677627695124391833238553611343089774373164318836919639890835397429163704014134431304366380666258712796945304504948511131897622087505982582947813435164362758271258485674490933504120239404331759367899080856467846580755279231645899531201453325590795109569266248820804124298751087648770087929470116936187946643083693734569028211691582257814347097037459056257952245157861078829785447648736981085060267507268016681545842587314955365973379125693596158041783391494137951107199595840200679974883582636769094789437299930991117294665155067292455239088719300190224726631634865897458991403203787460203391602538432739569830637506575067645988507111401784630291901824946823758954725725688663225371174145814405640228597854834785097742555120650736701491525295498870478579013304106519047358128978629393557522456262963338561677334602654387281488471738605783216202385270628932639356243730781438135149303733826799265203529129465116458885449708412637596145613484061905101942262574745661284047370856376108958026321688186637727934567709648058643469747186186005422864548756924055978914356791551510580856862006979201387742868471312148752268448346372919352120026262143676856246879385877645939292435027075739323652656544900297930277828836801611484625029077510120801049003107526581727821082649709035086055000173570869463802040913530522671210715787047151998118597105849429306606155841507963829874901907312102898912910696681045720979017570989442553091572684910487524422460675089837308295321116879802923835589835780520292120960347248440940734207463734030651341468745149718642371682352869446969262599837732912576444922805786849625647848117236479026120837444014161183041529246112161489469676201296061694062432445641659423456099696169445931132038058942567148673747729890680868909988549420983094039372623810191038726791003237344790237640125444586174307774584370667028834438366171897242352439941054172535210246599585383675851908442865274814816312004489254390678298061234140293274940579207728767739036977765055563542692025723879837145444462168309872284957527059911833166806614969272629782911525674147337530599192117070732653046143376237444641034454344716178434290935772371628831658911267686470216276500435894946594505618920249614980042374274139354152111562372253380722206040834226563507877397388061476785078163955793111534654784460734353620920874158548102500853635114481589544831624839982142982627276784688862370389435666666870146103864015173125244106941876590543183124917798992963002188324475171599036640821808130655006836723911241855731914166649931982220486017665239980421337296313098372254340811681257537937274122289652970838899160626820825002458640622272368615547958984516013564895587995884017893868262861899924771610840125366177069563202572118896163840586732163165302334882378151364542155672524399753827238052724721453898018995438670932461640760710409332613924287133918652492328077874625500085470314000727354724910874508869405793368439915962351074903023045864631932248057299196959211226998545742834767624655856678524456908293287534103227691856400243245945546128894542531616030750446623511946463449685530605046738077603888011852168993941775262021626427185498311583523306938970841791463615718660249656917884799950970527990078182844139895320287899652028179579490595364373286240165595397217967512450091261927827452881874402296073090973601558165879914078009484385968384497754526080610384369899844488319219193377907116067796833361025604226981533119034411350468421601562930058335517875173702690421489421314282018758687105673365168323734661319506232994482322607707677118738060301676195333737299880482735738579316112737316163630440026781321912483729597103702122514472954509094797926723911533555839358857015253734713971692194207428709386102797635675690781434823921314806702363023580771218228818288109987980725218674070457973404612780273366547970265320832279388708668150340798122808053934463253735306060120438288330241791238275030601286494571097627387244141286670121139199503074652374704951122743372235207128698661704536456827646289922947983557001219230775734140313400416071965465183834053942802608889711677277866964753769772844017430989406529194491921953938371302909020164214243479717173976646979959431363393339915707765825213145816698958050107131763395984556935813172376808473989721011638140767125908238390305746051457176633489619624131204927677330500366579454106727307413819177054733926483527693957288979141719685356715901111810722659173015284407199224980442634297171766883941389536985247250562786145521240814923927998580851682445973397276395996063655474473991964377454786754535074268668140105893953487407053971738946783565997138983678367979782054906821048720945896620887807477005051936054880159839557981527932312065481005571891879972846052617090397275506558639043188104880661557534898995755769090081999375333973135503805248559856496884612333343467039307380697318691209163036560543598953690881832797789543135743646395243015684252904999546705435726991470983052539045232829833356171735310793936538849694032647298173571015835504257142710538162963469573417600930317019177430189830585845113469563832229966896067509300399346392593080961007541583524940266293213815404678054903934600290636356487421877159921359159761260819700157237228134389092165808391598136650351615483330743759909531394147189287604327045873616935316493658907945798511333069696704938144545828222844892418976393250732584019689318582157826658343410755443769753536603077746730506300380799590187120446810645758771057029336833428099994358803219650419561504238064070190419857610866731124374209305804338084857980634876816196456047661569425864555475293145741180751851040354132403599945656147066557334706330810541357418345556972448570944500967798241093740879208567532677714177110375385450687336305180985170056220807180500063751491854527085961768409922825854998987233890147300497618851553949850195375816659416109077505376146587106069727858807606231532585456771202223494909695870005915357684518665850377281857232906426310734269831608291453290739815631272782585093656275373217262562610699965478094344989632554445203061867152729223235198649122064932802378969010041025744720574877962255830934694882297769919198662347373982391215334548082254611451177585700129211690573570860209756164394379747943460485100439694481235784560835995951808210036913837858804206171614815591039827276428648188980040839647957987270682961737506124697513338912444529760831388654217273298220682154749163401215893157219258268625907034456726404729530781825488379072636845116588122008877172318856983443951944538200996194849981120357062806719399111375710813349478222333380249789492758033391186529087878962891723422535775274220995907370035221583412480611115757293207111956560200379734348633636989847771078484003850857463755353665111459388795708853213876082688781052507737029474173222569177878972025016030225501099810231913954528808762740120458676003542232359021166263154395658987273096861310613880848233991302275282506100171495342218761546388953086024349178473705987198696349948092762701386198247202326676746614499621391842748105411145702826726175806479173143867973574468204336552046615604516841870873615724250578302591672366952606354147992692667840576214629435363282903710906491624799238434991792799913546936630711365671046191443555444546888299032970693168684913943461547485148497236335275750465897461495308522782095189734230723640814055292080046646023989973731727641353561988862958507413149832757348502006158354249172502408765259191924542439732733640041288700454649472717654798119020144591186673430939499186155091082012942447503231105668738291323699170719498213216658797776034357997390691024718516821217039679713842716200400380392865749736701783823014117555717515923060587117133096910537964206131452860930245593480872311372161339112200023510194711373364579199443778785354362183338413145793182661490902363439219647634280755822009557761896396242535535294071868274244255356747442801850037441022512941972538030947700212027345291233109316068138768826084359365696949604859514690832008726619328603168253520088850725859982473393966155600060551842134885079263711613355158354073214554309616005409350951269419408649927414259592617732456877590647476805222140120037445283106336825182165304569119139618566867942923934358818773318122747815620553996089450458861240904352087627775034773394104368672518971466625951880256244274820478714066162190831051196889131618880411652136327525156913332986443125323787651466576128108128166188444855307816524775209207948845446150833693316949798957953114200568094807730604990555482957277250543639112283831245174481612509766018756468359696637940917867578838774026117444903009700011908552880154708651042283336093220647710318932666554319981880348113803103636895740621432435672792897517514610737571509412387647186834209709392289806273331578966226903178830900022473251535729933799931123427669630429544832760485257101258727471108657238317494991645998002276748346311950466459698997935007804170312782418608378415687166362118733965898418361922134224052489982798504016708906877334513539854164331394133874136963737651334490477914304678878473308013742913330515663551887397027858671101781464746542870329538938545569189325198919783054738803299657307395101855564198801904215061409973852439268819803164919002370724156389353047116552297532806135583964589807726668084164181852209193109371584855737637705672147008420297786654388757344509080227602662726315411397517121726553083954211522244369869217896920147302420693878737562048334149796943371951218226923847778644531810568949517881636437139607892248209267702145281265712084131137567149540460556017214654831489654830142231294921226082418992770185634375860376337300540910437369702580411415724419597241221643584524062615701396666132307359624887181123288383827101861091367902961742488541532392119351588071538949748214320257149771928092029705226223011355631321536871219406380400418589600238637586592520432101603947420544637904469005186453088964684499030315189391803648579074855376291285435084009142635379341646084861936047083130998706086417136139205808002297964822940697264178452207274741971593969262948218354627350007833354816191222436859026744661269729663223386666559782222065720569451712383678738304607653339795517638437705304482234665473070795126947763029218841246978954960842366529805627060749463522182660805510211739530898064060354099508767939047729906448886577324264672776061692681127323135734274949204067685797494072654140301546607962057750990200573261922665870683161071123435770339998640393673924271923640239840782842656729740180637558172913861869184208258056690736588322276615993789889103849865371614598567598647675890395142461207522327890555558688643292634736275974547495568242039222347265343700066130893794556591599511978822071519524643140024927733755509036370357784681807455407294500890231678694274977898749693177437598705966641941532045199223628207839807615386535192167729179363836444104173753470669565581900741163525884613599598661696945772758808070121955040691305099307853211924441594350548698919115741055660324104890155648645040631558826673443069149631916722020122568000164337803198134051012401675365898566227813816384345702755172597703598065744610005158385932009340501030620480462150359436247726372602274022773591766570700937964990994014773645816643949603193001013866199042970338086464833279928715962276492573695667544580318563994986127666367224604556576543893574227574596973580061492676138490354073374474158505560170668657059912631624216554077773303059346093377511836815312436342815876676480233195906061518708456197496438742429525576788314262766405851108829539386113330145822501106076990906284369617702877302005395743431161416996816934291335291329541348079205274073812987765221461195765977663768451253786393685633811587699816249456014529364408428040592635200805961919589916366989523327805136328385412365587955727313339647774606222916927383757539244835430079743246558191810512869197213180727224856490012355820027317509109781584484984147143715283352312679614292205216045810252499829392293989273261579752003717368415115997496667417019404692103893082675209146555170886708914959510734568428956102008772753187861628976436226669818703031196321227319490962424897738730712138657260993384452595439278601639385606524800937397656468720140727022310472777541496900637624098805435868953017917004785357999671280876191900617239926951899565612076434768900230578905621864587876852906000210657732167135235872600697612028562378630156726106753890700424447805362128214023933354198121466881551048690063082548746346258950934663810469681249133889227697196965791370517508070085088836882672267113213814670433909750168251065858909400098689589595292334875100151299042837943153890879350675681435950395877516250131662641465004959037631962145572186109383887276760688335990369435791231615516273980888540609101456822154474678709004106494372852446290096157556156209951726745835201903722056986446193065985447375811864261743394501388979384594750051255203661649113665486721483308972852398494918956108454304094965306548068427898900734806301174695672893753885852983834565666006006923905597308299744634672766147857556616868436324360728999393984467567408352887051579422468231838914425073149983289871415135967761508004750656111376090044012454382653195933159111056864079687945841321873463668535159672261280891963088550965706595817382684822538178523637365292732931089355923960718743908598954670526075543870310173944173351290325404297275267434200267171537783646619501599660588246081844585407103261117687544187971866474997044523498809289827444015514048052379938389987871733003992288902123231265667129059916795821214139677227435931731501865191522058205905658215301697654359863898964595301240869025531332997000950180941121467018170569971199257455902543258527202933425473611653867736286140967634982749338017309699745191762115281036856486511934569909702575828142663842319957659771003050211989462116872104128289697021223878130909633853261132474991551936876049991924333843722848708269335032921255991060315832657303706293950571852350368739294757270524966680685049449677900030564047363493880299702046271770011143032704092313692517099409244391032740204237707048706947155933286333229952766800098328947719020977499665207752915678491136870129274560482127349052411946531284139431933379028300473465384193331445190538484410924854405672127260112294533753818330576872063829327918534826093613400253502735447155387580629326408729075557792637045899483963654293293674454315741203971164869965846832971787271623151305412848304782749298346839378486189610064188606895822145847391486722893161385560766652899749269938382748030936029243012586546228374352437233378301973520351054666764370402788400741304257829543956283421039080956000260040811419912462962686582979775822426842393486916497066847110992821067488805231778807186187412063129813561891249854690949378513171939346326137397137455820310136507622644092243926538191933389271951452445016984397537979692584961004374800037524858403749888428162118278424825784715769462548970404653486484250049335319670566780792364047434875660885692650940685704432275759335369044885927466168900435344495800305723070940821637189592446313522724386281146468292758937534992056998755131822796719048557941506650787100048240097585059118947954750091025491458246471130879736881146636887178893710212440421414023417331190718620789824009741264288101919826047497903167843099029918496160638723929220666245802032821347371627953684163007062123549249175803049550975943095589111045272600691418210511699290856975229710254580344508208501602521709309885624189021774380971143440652580118428115499389390789590017182398246242926140415418356714873665109433398300418633046163701124210631355365382929280721666381728956091675134653204189166899544068154134088621063567268584760989040951150822814184565381783240705761327381454824537097353081578144778140557535906347156957606763817336607323640878060490922995985501509070803656138684865236692401499651312054889008078999569027061524598436786515320470865018127813074201317186346698416730797632099763435152160981654369181239316170483365564929247868446539731591407403848874070761280451728282966102643256570813231884383957286266714747485639662517178108230070499362233141972152785191158455136502838629618425850457123316547277683790180285480492119801129163225326053861488896729309024961304248222337164060491283189864016775368216847878029248041323293811982092998970112940831112892846497008768510000513513170544689951926323045601407894720975151968206674504835436554877709853041917213691525436508550487911810519587292246287218323325486663211129259207902452982222467718154800049777114966155483635660022731621873399894509679316934914628904404604809044395174113451151343078117486606865354126014203520446394045857747885565001561745051880013821246200582007898910633291538771307663062382465437876549312199804771135065892578050233824168291707843495484830884677962758320248179944492741426017313870314119416274198517065695263728595719860146283609136281865373156117098852855832992842370087332135139487930380919647011277822125355431703038622804457672164471900006418965416182552704009520867791447893137680268572881167693092389241653234092483603937235083981846552287386155693877645780133203397093950593726809440758547101735600202153400640145171030079282771739738520875054678066327273877716402587316958252188726060317961887551865477065076439148015780469252607850427408235088719606862704129777835299361522046802626389248855212612287437362756934909774709942665738110612920815205829734820069779123642180807986597958597882558460379010159990381879436541833036360967259503259846563851623733432451118471702383999823950061125437917250481433185670819714288330595870058094677229497387592438114038655411788557355861246500516893721089000584620876042913338494483345005299647531599671642156626743823198083920049623023631305268483450628031808178230213050691672228115593193986375882749558554434238879304745893346750018659408376512229554659918966965525035031153888082119777787402860947793090677628931338633435911134435975470409891054817087937779893988665299990471019152045390631622349790310612274766189494641027273180195407546851999403222664934060382534732166066001403782564090206076385150888690864791776448791507785589591424888273746115335152861220740191341685170656393176009646745583139756644800310851508736695584552883373616298696908964819247374905737906197115369233510076990500150697798328769272324438649759673398235663162673366002821003768888826403309472126183213066437628223728246508932859060638962834297173718960779758931490154172330273816080560084492283348689131488130129534786067526725767758183329967200884409825790624369723954120791808926264851876840416184723322493368078544168477157323664354033084778971164871121760940666808919317117624874133230703838694290328432996717134217680902603368950916382494594543579589271658720930361613306710301554454688460910415658332909672248819074130753811000860016887920862457255755415729057665561525411957631538834125017280728087298203296626522990028176996000127556671232909646523304469129811745916941692171918717545500790528227488306277593715341569443143118364243643588327495846587142904438041368008242245184598956477615918597828091039921579093950467882164203513910406331303660556092441561966195840059626978502750233407850784630572314386104231057147742918463954096972671752965337315055474635867159861263802179096099101423093129851644390499480397620761294269240368486238667323631328488875748559771527457518349121055524390962889771891600980784016360037677628180386692671323540091952493215363763217795189965994192531942100029990445004195570532958940017354859998373725616942103993240028173523070582749037052083242843404744062904935245921771188236434236353641301102403623567661387216072588204902804381091339612917507083527864596034376393417715677853201143175068067056025369707559587595073439371711094098490713285359083913105270286271984595313874694798570284944941765906213387878309752072757535715316972619673779659531362200531825280616696106352209212593530274634887379394999147535497701207954092535328967721550557063885162061644746198969082474579914402052348313334343667692675478233339277333407794665254074632545259141446005125400789461815915704603765632647874386627633416702333149323868132320401861122552444668427791272282306642995553233488414206097762708231326020521787581056127838809475126256659696184208707707926209561185611726960844548076351687319152932645118473283125842480522028225119670536642349975070022425799861915508195773964200546879460377138352241790504739346575497413363626695976349734254247155545926873692987984450494672763939621086659912915658688778932259947000564831968447598866869650824237810029394664706790691942761260819905477693162777183619215988555681114696341892792793279615658155219826498274865674426582592561139952926051844958058526310907666099696793822288822845264036515466022526882389503712966720557712938723700906322464533143818736949071746752685266525798451192261833237460697709922741767640405615594500617488714321959067554344750019988255111951276520487328234424529121884777084770653026709044728402796967282014223271275085251129908630748095887968560090467642884781483930973473435980724732397057340913758276653510227410380229612973540194576036741609833085731117462447434579189364671984013947416978332922828653549373095025971553675720647527881283307609629014150800329524440671930137106289446545669067183580997468698521835549542657172353415373049530275349556942765429195450364839498671388099660260011898068308020367244601836752273850586789737238951682842395418539537674499977699523300411919097664587436656603250251603846866159026131232655290477110567409584535485942248584341154414649428508421338753211728830555826579309857048670953415262697442159897855453130309293029624100914414350175060446828190094832141416129177280010741500338655338379112041656254198774963206785912738476729402074808207086077810293100332734773355455389716313911264019647111706189823105126512346247400162620885259848180404720255447229783252225212201883998291268413522257410245123228538652880230492951002834265301262082654166400523458318182453306351129942585298145414815956924188789808676013556170280111643021531524526679260837504106666405804483983023868050422797531754153502973238975215663149460988572780137823888047075621403996953523110691777354017767030326114817783312054844356482968756696319671946405102897506294604614804440828123647703089580183304951422539965764754216798063113120430603974828641758200576827493457658366280277852369836542529847078515218933746849910992440172465364434823997194435589742149107191884786318740896896485875467485379428177231951056228268879151055056347825868273879139198158988472179913527414695021868410931790643547117985885327510767401199631689115768185765553031828279620383175331157565415754125209948656444707690648807364623393273296732025871809503523983817576098198846313796255793488798360321232284189497107724993271855093535317403732563748423712282070371956497682946546647024612800449886187643743385755095484119005035118089758425528803283000887177666107813097700883559320721186945562337481521372611607310445813547487445488602373630162345074479886691112623361618721305550477119861124768593132876180228269256153950070359349420735453136450224659148964543405996527657858729232693995040758131814337705192215903958038965457251268170366731452055299357097358535736127974178908918810707728776920296151000601652220116188690750872046168367132745503978103486249699471724399396042632959671330885862217166063497103008659757150160137235488830717309656956101646446995537882817644990923454727315720062027873797475167664478049959188101732165657284972330520498578174197513758473735878520105352750733043834312225581822328688912484309393413542514959849850148716590531940955502951418847930955053450466839535179262859407656666478239746789520751330687963748143453337076810040819894489741247371434377561259267469829002508639600086538106422596885098510956151510843187095935526391197500434940833147831243183219163269714350557666998726523824141957271796864135296338970200466233157418219861834025466452916545417855788753406306671776667169905774157688521580084923450167221378664224829824453007975832288947537826111306430391621660805188228079394105859754857469008556061935306228116172090162835100812477640981989563090767409730282498625491799459899950619159913179443125131864662814503131545380580265241384734749511274243470550303768217635381189096936036071911839049803793733422922335817468239868797000949915502950744075604363768477296964229379199094046550731523606967293503119458164435644488837420935384591073926777202541888820912706427574260283078217918688557011266187964722555332561156677757994178398431984904348608697534389782675577180632389507802523262787248853530953301017035151790327057314684358014860429871964297116938321442810573100909102765626224677178251834069771000316609825681913785562241454855988360834346731153682271399726708794748947490789924567720621911599572964093874514671059551943879948417394412534782766679186612401931314055354410803800044294546350873708359365435329791295330793108348744164162767610042632831596215433784875647075898354292808625847836989347443504561378679353123757055542733223661333027857224135848391191175785301494845778633694127868063330535782900889872300772808354730716544921780388247411060609417074743619691081641248904705930288391932059696291822780242747688602431109531778996144501072104828550172539049328756133323791553145517262860264290645829328643723599635304545042601112669856212759574688922447640888273299341038325833034498034205800479532609890806750526713202574022392014146759946832823071748833879666138187930039973776619862605782795611041920693082530984328636326297493815189022337340391782399512137474320108688079917399784051574286593043730632720722243380491704706247000787408726832489898453727296677791900812324370338871814983785558771304482147835273059793688097566953548548199113263014825149917441982657995441152736353786124113363370693503419077162043608305151252379434083595870519551617908928246311267638125397164983662148765840734309867404970248586893609327743062964894383059622443783858041753415854780191140189664283855331215464073481628406682568244866839644788765147251794772858991789944059809989635157772364908216993309809443159377697294546830073538737765149123244971222334853515018597858497852531720198366559368972090626831858251012054600350023730569006443722287891631272643695705225370246106531486047427444018498681559905535263304949495832917590391946255454537426446991948331382372657367141389930155263997658892416659577607731985806964445631467833473465688825484853208610938315629066031801521218099236984639705605493921266746771903635639622612880077288428966903854399371508724693122720073851028298893627467080088126533151332183714280762754741641549064419614730028589129486413686321631991796845279454769055207409285498426196645489604700610733444660826018865122834648131783459603667941676656655509582875013045455547609357527272494837849056269882052387397151857865994185697225263999822576779365952782018037145617968379824653543441646001154322074981891582406125193682696564990863452007683995458642327542280761114904896239718779058224730249089783649379641242055299896094056904955145134470979262458435283006483777334411159704532075335091702007723277401565916728615832836061363918917578425664404957704162755693021756556821633944072811988785501893022352732522356327970267070756108288375822303584979764840252626059279466228887960030628894865999797496602470821569852218569467960159999218579958636034965395628453533285642295847730421634460544475684680502118632092922073998642740946357804804618346585218493654822904733432044792412360144380648649393581270226747719949980575147776239975182498123941886901290395697203542107209991334694541799391829943431211055967631060834009699174837417255480603037209168271614591169161942712323129546035615646523572959313183985779952520345646863826651132796352165818329224094741994376296160089080467036671474111825708046206145582710388326597956594792736552216030269796027873962316101426686696362370117671652780687328549551791270433872136032505780990198817470896784190868873121123173225648372650211073967089767763110827496998467619198610701495208055914134481241873458708363121439591331720687092775398262202288278698917917911469427993587323138329652424776933650059615590565139529103986170763044054949866763978936887655835892686750285240717456971709688670121176194107694808668518090924683750599632861919447240816724537736541711413979276560668545782833239746030697990136314210944514055341389906072242322933594749904805898910392013294501361665169242499012113204100838071797171617701574646248255295888759401612778394991515076936461203930311342279710818456270793484369227210183181142914630401768628214579595656278152906165216377457407312896848511746572553622957876259336388628960114403940619942302917957066641541498688997237039715687904237703253337301095131622267839360350706564639298856760742552217371051953863140243558711777736390725483260734807335817964936392906536135132357985225211222066565416106496074577391212826041901735753414859938039215671524654268979567329516558266834210188671544904495095947211725549721979577599894950410959872283169505159800567580478657719927718909725732694939192114084842990719524637194393823516950600820404146271156297857222831925829519527607825756180646305181703708662343852192496932347465049465533103596932674942219681363732091168410731122432357795766666642162787050868854673112834987340520455554533887586229574807204953546561001930254259566136144009306134237523179007268892317870015996322252506201587056190297111193004862394654111157946280039175018370535847581854138740560478027484640784302123112176396223827487643008023591460008013439031969545753221491709042376743264760872777664884379870071688484214317022084366258267472637416938783659739157677953252223602127728219416235812703242105535875280352800174700588363821747044518347587269734822192099263953486516327202769088777548502515772345867035298624955746156749509001037695961222152868373270369078666563525199185284547387872843119553718096019227283124136913671339294576285177852005668817739046489527824264546131782934236372912765514493477468203880961069669432725094796827441991765679930796205528540080304423377369163099925453401201458750391059390115109497049823863326025856936161486489311872295633799937768502173109404894525327806869777448125229937102727442074504607613883105756371733957723945293246194656766056804393101319899786589548952336391563416226010782605274578408166404980550080127939489724998803733247345145171712009033224310668667878048098854291907446839061449815791773604862205050625291217771591453440960997220211209368891556741371438986269621796588030576068609736617224548265884683984863626057645933053713740167926672938130140272816913197158325497512748152778925947255464414525007563306066212889131984626767048569643761245829651557411784922749263061916881598851101799887876949885774178698941723443188816569960124472279607623776090422548608985941486420114785168504044890028860851794340952832505069347261016405206650086269376951725214838863858983039340858636534432334132576742356902381736723498878438104490062307761993047293601957663033911154148315080277096468994544880546158597957241411849600963079502758798487922111535731555926978815962348221391394526227559748552322602023552337583948121116604144623236455732513244781059407397845539513138159676247864833226271194289535965091883916594804524046184036873680826295502852692089264654819413527099929921673184241691707820403999413068356369797086669087763914383221791580241769751957958934864719900826129064771132795448507805483834465517028573441889851896910598361322794896791209851024508912380231780143453216045926706242011428744374120384329561560250094573381304984713349985511814291644236765041726462503555704483320743280484331009821750266441701078489096549870141379818867469524214075381315950640094482527264159686105939857932608780290294617739810864117867104545839614021435240316443971867161940835468798969937042659311293108941173211263075699960540771513050562418991862435142638259925259724686469420949194931994317536325418183210622549558304753613117362778711104741298377462642037549780167683016187203595453298345727034625346725352712160158545972407494394964970654948386441032715937953853100384302285653378955109263264177228347246457597204406305788638776022821728282573145055116281393811607433555009018812461862811537634624653117870066963983031759658858975140775344847004143478371805340759830156783660648851236231758146543029664716342694847870083409971088126610654886513982408878835208601265225227765031316127144563942373895211236631894628909397973469351493623722650112947089018265468024709712620469270944887342792300620270519854765291587525509955942680646783718018419632164713973458950250648597092077067693960376220259220210194130653194172396747257058195708128068623157991830267294375605285588796668823413409853366012713481785011642502800049105832601325640874120138796100576695496447754471520506814500841046138853760101735707492567046813617932476394345225584347781470168761727488379092281946138666667584208081593086044732919138828803831010338831703959563245121326440362730420308459126911824497505592774772215769145400268712250596497583773612360232925457478943859834879782819385412580207090251414033250611900578545127797771045921533925775072480980399000394761026839978662197011425856665453455031172564597198975469702592408687058732401750619151946224457113700254826689160793855768139004882977071167543219718115465608526315234609517651385523204055125854141231046316941856343854458009742717525539670037310291882246214627346747108097154528949993502768749013161736385813601383140910188039343062209670518278482624937871070187318797836158296236238470856295285511674128398550860946478863098264810943217457686553805444539576278781941899722383611505461892732935547484574493656141957250666102338498494630024101095907688760797952993503681575985299157528122282444363223604962662465917870265327578951709147584365215973706138767115922071673655621070774573668116427023000815478198606414245155755850756479017785816399313679910657103456162027811235627257398232271183623878944666465802624635722095527898350876327281193495287090933875258926675970342420986579329916218815631922383319511413668365565757356219695706406389014772019675034817436310473708297682653090806412397292612316182796806318049875615983337256974995643281464997538114461328188503977419658014992619848567085506659333811464582052399037489855596764462968810590598465205438551154853861371064454955162718966893102752669473726333076168087362568178515641291347323896153930153324349386528761087525815453481826054351281520984208804684945191833557190363942148611798083946018429525322614845206047422471423417573997948781034760162966075384633329288127308466240657068222488641470496250226066586774074920017003838891816901605668224091545807252187425079708699601744958564505271352017534359278949016991306025299860073486108711383789960154945377008589045827893446628067770019963382587463950517961422197262896896150823329324539267939480896866510023147312043335849470728664924080214584870989750248315429388696043519092898580360924372539355655029627251141048009699066823605197422038407033804087697107155291819075124489042539433334807954584151497259428362315742500626819549698420102554666177812983923262330093861706835574170003559575835224336805920112403177728817746691404839553294481867523322978496268731254945067086989569446359283899415895811668818529294017116524739942198365153899383535334101704816971744184809683302301864386785882781593350500975499276094411788168394946165700148320873535073329466774321032412540775170243124472314311801294677978970483124410745218867372886386726307142511550078482234495017307343296901033357404980645403087131176943488527230013462997762681717731419361917404788814720565189160703255904867136317503452422263755612564433351889666519459942269437879108042928259660812420263925008009163028255647496365092024683153248885353172842235013501039084033210105239282061197232772394913573845557552297878849432825130523655590537382361924263955303998932242956713166164577147264387141143146375887468507519782632319339979193399240957418972056450149699732183823913806205720150450403973306441748140498969897430390689506193168944844884090037169541207815028393330287354178225685628313065126388994329723763021521868106172552680026385297353525525965765764844300270674438134570240634468884266677569516247057811529912829884736175966765070444744972038510098382907006594525567106935363665378870959494874213008176777804735418957388746305575571669460961246458372294283925788702163792687642814980107708314249005260246686379890393138175956123686913937150419377228661209827628425370368909789998179067585306493899729013405783079487205258181335763474089208599283687121557902466317343118571643653690902834920378663481588359272184708196491687716190252491077641642176929546921218216242736561260270248028625094434982885522858531861843412433343990760103168432526435373468749234072483939890708254283263995777527231852472516298574905466955759873005953818542234904643340285670612732116824417131226607342174874836935995667086228275428531410404789909675501984501693174471750203968020046903247774083573749553124940417219798603960912167449161576303828636549288710288758797231205250874383396778200273795939962849440531999766123749148096213862454988276924219430586754809532134714298623961418350704826967611438322423643408072333481540580967030781356861938525786758206153222747912132703158956648528778680615907312953588230836055529841897390930653867042446305860746615247161153258610042874685258793466457796155546746209112771780542862196333915372300940402336381131343800528223438153079664158677641196378170716864467618974254990705700811816028465280506371514398935496157955517346449443286445342877206332842857967587172220658664970152191202292738707003437532039373409935606487991977149259825013112093302098978638386108389236812272152234004212244769687089076638907499457106897649649003699689633330117992456421723915335553506068178027546457247765677258583491101449584772685394207461611727572535294802691958328924192335725820405223753359629917739142457430312414891007420181788295053731116257372588857070173636673537712325673932701487495512093034343621153726342141145073051785674656666084016006533490576237004974498443948981806486729099045510341800931550497634298175977355368930599430287272866035028501336378337284581954315389896311003739902914676025083726924137076280335482523918883053088843628782630380832913274017396970813396453474087271824806275112446365137255010599315295470369968698441507460368436757969585827008624700054199358712030462769609745698342941695310630116130319298801544168297395819116943476372535347014162142274274330430365206414632567866381787010486136622075023012047195644512965359143509169611154552343516955960238366306805840561507416913460382087461973180857882744468543712600302070793858158069772153840060695949033748053063617980631298104664556672450123150235872335141577984412069929081942346828272841716048145713179130020917676324908511267835498569863308120494714845679870811658956559184389289847969365499802390859147841642878142803632756098034762114167778476714759928061036039198539143325817725371524851461253282376052191787475153439393316741547545336291495834871402784846215397932064239552273443832405333279292776543704242680594993520070475618050113446939796340811216500945584254915676013640233005561457710859826537791896472023026240799923624893351357890737022227006465289265848278502066116071112877539163644593121445839979433622785402972293810143260270592922464117705893699435832161772077226198215459465613643473496230803012355521231423351037566990859213749410327014747729035160555121439434433670005421493812058954184640889491395313173068849611652888500288873827834246516538930256053560021599650285382177390911119384222305327183042078548555011169378949556422030010110638830744443012614513146878008715435909598260999799247434289370283437509280524248205435226888770910977799872353172841944228777901966952644120336236050051985448517436592065019968398700742219672709948663210493649228902952516362494367060106054232728642552004819725271601576364600676715463163012433010094495623581577142457792027141606965214469964355995723736028484105411691333307800382451719151732340600881061966614220658777405684360093772532474462846976218327887592457609829738648820671155262347269244923961537539776517826812145244156581174095020189905277255444680980626463003906891472426892021691623495984362594685697099824683516531636056004242591751802898836709275871613112574808074043832602814582044514189712913524329373784619701432823351155309418096808646485870631602733052945150947643908540659517069694598755779006537173095501242992565751008113146068381405416444333170017254832818840350066712037842710730687907257133253148594903821877098923572321464317750147439496105644400041886654343998649037803096129030572288943168763607269224115290603315620512323592770975824917729551682925075869506095051174454932445307366482095228842586349547031562019108692508873448418950507916523390916562904281397115776205167863535675337226244499582440129747812129651504680269723135302394497997193319308349264448913069677599457640701473180415925247712491854576974125024528586629248894527509835698328418546458797755310206242560333283477950107767391472033634742036260821655518635292269913328127018598226178532433158728055783137162758936273000260002108179767523130772755833309448055546581208914759114632888281139090132974342488477443997457383640952494587762350149137419491612584465474123746956078435722757290339757126475906388787127195032998411509181861043800532027688260818634391144748791208260094465302769648776197120758908754350036075730113476408774273112497206945533860209394686966184713391999224692695968291176730782025334656470330955210353926798107432340645517528097639553773612823005816271528031618579459858376900121550298331544202537761813655215103879254213144294835970538995393790018319607918872187831396024042279025086364901352054195755571214215479693850630399219332665047985393160544919481343300658212392106702552417839932414771451069743460749913810483362066130807460093488567413828510431354292151302871144490266513286989644079360564806830910853490552195953954879070704373404629151025033612009064610354761300059285808404503552624067641704659854003171081096000437334013207506809498489035862622917975253384963200567639198630507074280359932022470532375749769361772130444332665211970209375679466474051900365067185381576342484291265391915012186439043051865220829091584062763677748108097483128346363481891283828982661485414954226031438470137621879752226123035996424182971404485734596945281865357442716557297309008339716414077288855155352620303013327974421389651047087140494221329221172828223955651770291890531827694278348665384225858669574715506643471426086087911154116000336101709883077062424600046062479578085396775101851756376154993651924639234057855324501749258692193358126038523066671813192214868768778776051098595728770593232918537474700515171908430813100101472896777682456871089543841793464944336647427167128638662067679829395785315870941650623721048322544136937219916299916348338453439947060678673616599396162662015199986795284838415590016944138367053258170523676193248245488629901646091922604577982970514666706821609845961196205680123658665470369768817667269462474236315970174487957572202982606040133360745435787055100338494530740967815503492908650149683199928822967519371484921803277760539135884759002132541121920679230436661046146281291968312112177556747642495105615058339273761446240937767866046318827402389336290882074779713614035213039679699426016969305572509010805005403210268280051285368205445356517159798488518987214969401546121914628281786459636754392853106717670090763567035093240641578505332144220344754806517704454627336882474792016187470034757042407440873018710981094654615575609320377572412846981058981604240263674885377946757833227554762644329289668465589132563174117673119685567211539801861624316871998709861913814470464437176807683600833802039751630033710540632329654945629058308200647843068477857390960849489302730231952340119567931452902996265224055582786780734810521567938900880531612070768082475611230362057708643719695304886892410525718096639667859238641642367166235194176742787939800329041756184113158919854507083407397624687266743664599293707344672440730061252487773938255979552294198738787895307908545288142910462725290380461058446207608725272930243129381668603022970675623553965128801030168213033280178432647267089114758082857551986933649407409868555152858158793457653354547009329120988940307931519450786962654257893529705840261944737995030677104935909462084229919025060886189178444533153426870415263521390513786655161933178506769037036496990504968052088539196005050328203953879771368936465213702837157829669236510718715953936132277836022638391492477367195527654893964235179923105682261901175087978340941923863832621443100753599899294378634919703137880659578262354728274346672649903651726056494244547490686521716358437882340459171049680000730068375049647282697409247813046469086435382107729206797447049254384957423494809885537184085987020495781164334474103419278848931103007538332319573248666772586847527483167260155291333668999624951887743608155621915019156146133384907958415694425217143889206825343602813346035940732908570548084336619558469703884629397092817847370924765900308929026893846650518127760468720883574386430645276908322955175192939375151059393098791495510840733430557165307036650993594842066603153603389496996466664723252778080120085055296906618378740586715286689580351988563731804811567614965459038371083565979753530287538893404137377853590720406713149173558878295141697003547057674622710786076333988385399780937004426184908702458903727127151782264079562012051667729773463118037903060503597984111332740818394001585156728084704775795987245504358059321272557571446609610181691289541780836110344861072428404950053170257815854222732027251206571100315392229166492073182643809822824139441405577025080543728350565077620818515447574001964571235935791825807556331357523632318225319107100111755223725648505545820539085331181402284606530612140557349242055043515802635534845216250711554601737645009292609955516267898037451297890404765813506480966672676955004135339800719256219080943787515971014013807234393320755067052571134021728545365417173629823388240611527613690733361115529654391106369701581295996954776666789733917914795435553009098937485698339033471422148474557027554373576147278441041933412337332571397201291538265475008468585392940240965425063120881999428175856889278265034692008038676236401093973140475663666833019027058989699932472407631858890398617351359434000266387151676542995127952167240069826944007770276763793600140038821759675805021678989749394409437093578949230786946381831994044520936343445500081507924240002097850505492407548808738363791376863824134687793740302343825539528009986349142498843888785170618144909329882741500194976672784743240539045223229883550343828429751998897968697884250331827899822383203878113633435260358572208176601247608592855491994121202760074512872054116551280386319728262901546925211581080621192792801664904543551612932170381624908686874784252936626955021857189419955162564259778346175808868396809892598680381616713244421738850130369462830785377062313550282586339641759554303064780470798422576920121854804692372786677761138398354819087143142755228425220399604416835641222249740180818044117276347523922490797870046916812751262728770340090638150057076373838188468191908726648864970480537883386879044045610031796356475770728945647382582043429871830156615914200175918323367162642137350222516138038082808751565417648833500701032326582937804812339859782009731207542394936789626747499119716424253681298991958427931809842779478271565951745398638589986267183129674290058667542310663206033408756834721405177968588564280786001001543500486780681537431357780432399200545591121270963829083095260208863280497046567832689788765501034984751074435601144983831729429820924182945587221233950938856821429097511379573372101301126110032474374619830204489950939311082305762457383551167762617421411129800677810662533111963616635587480312674332223783786776107518617195453490895025304738845949103343877442034128138575580345723164183326346690711861685042628583231318951531118698676950824400500781443599746772721590920444465894374433409205693714378856398514621538774184415899219914897880781568515840487193776417331927045631518380441818498792892978653464648296388276407305373561119298433934813731535256677352283049114668549548503846848270412876225901855495867565336455610524939507629636661901965279632114262152273440860444405034639884427112041095215008881795891899276656586636865962740210592104193891136752486403234233032557373033784660970589002402803816071900294137701621859072999213855885315383336285943858446127831329652829062873519825872017177828439647973681302176996654894182044260308577477864197587695516107501680780046696178800250874293040227765388911915640852142171207329605980195359487284573824778596808548292559755610078559387933030285788520430692683186086881556673975818766634964654040133291917562340680125958987520235014555050749050406430473520964299492372457904210736243470437561595321081368615923918665593315691440259786461561709958348300708409277250986231185876698823399229900446882813163433244103743692061802034363270568990675935888835263547954439903486548562842398535179004782780437011210554135956631707802651570381344601299950420248027986000496844240118164248472232731965491171578212274797792260293330859335891206974084977399155572786578246878339510813683277904774505958737174280197488589514216264178742016478802085547205692756942951767126920378367936367022077050348305745731665260461456391271364524652750241221402159426593137212811182046729643274929706623352673093152541985924901707559883390006042575711112621725789221434133835928108202060495239157782796069201880641542935286239207173829407762193115299479994236333104555554111539004040152230738401687216302569928094663029408034728989153910468634157691382059727809511624467476583409712788182939295097190735012369240473153289382682373045358293248551792723967262760043419429076029311435525198222820378371572193878731939981831650293099772249556135467623574663970110507974369282202996010313863518553046207778080402715448683266452365209685972989057735971018022359948908497519299013258026433283337750600894279359508964120595041583264138628371098179394190044488687061632487188565712565399279441743950606252514719643570025894915628382597453687670423974738166290279556831287193299076881311356762821246171915984664157879972914154027518424805489038318114853196115661729129675994232751923422742728611609983977132682438903115694007988027249542513506541842976809320065526672183902663570128211279563266190407098357481163744987717495433689624550896300165627687802644040933220491722452214769863211517106672976921581859053185085252814539894622709642243548242322594306070577771959143254280568725220616629168192390343957467176890011305140679525195072732439741949882498705750238663332958299321245736539601795846313951878229845452613634899061695752251433499317558809123633365619483351602280973091187806170443852179744869441512333182822086882991343421092663408957848853491341418991343055533331061152787420077966751734143697738875833355341448505744314692183238516160970291149011228126177131251946742245462035514680582886789346145035888259899698453026038732872710222472652385138791841706610117663232924286315729933388543366190684186019080030885222800933054078143755092717656393040491127885969737604791198004769825032070074803053319493887380149990673118583642987697123625550953057822291555959093060830894425984773619320364715057840683543973052853832050442953248235390774496418043061309912986044527029515932358383415867318977759595473839756919171099324402804799618742568017755018787751292722275096959116888672562394763653699394770549465701700688874253796677882003322733524628970810355213509303942942341375546514462801473804640359442711054211039726362636408038718991585373213269920279886184848478806258619920519639261322676954422785255549934854155482105458163485829312295544087107810576075044076377741526726343717131826674383261178787586847227602333654544863537895592225182481557759244529429566232702067738009013815866840368671214681762805709014386095932930592163663390837135024973561981276287079250412098284167370602089460234874376486446705268607901167021340864842872733261450726892004900739761278144920869179147636866092059197633304000238743720361722019116245460283603301319034267786615940517224246020656813284488908507061884264777946524691589940586902176836232017406392136171814358655983705235906795370947076589170208504469406193554207560403631635282698019150129978253389056118634178620048123027458163767269553946514616950772968347888823591140730283215012886068060901188027416857300990155885635161784451004514804946309640679630741919945245882318957611802458290337689527724086608079205577521023848401732610858202669350289773902353230972580007840464102487413433163816121202480110095055775318497038524612364766291947954890284031760381945677919605141100127577075292832315737985101734681234306921314908703253889765887762705070591529871286146751203255804045292179149390324962407194830654107804734343668082340651123311389159730727567214917823683144302971660702808311049349404661737201824257400380595347782839592046219966088804758146470309770940321564794746222715343041848956449034481054801071296008422709464250036746076417478125544400860139168682320444900517649023197740164084183528615621009360250391399170801391353538568474075544485504494895333141475403549330067617776411840655949018803323073891089648219346870434855271008506859151908887962982649475302988583936203894814103637156160300719784257672257251908774743430287844636298963005843007490186362771540756398839731422714292348261550728133369862904533400857494000061139394795787513885915216636002233009387307755159217916629030571115850366253948378111837144754430311424997043492032149497331743077269248932505821967068636477110191755058197998769172625208012198986865025410976056948476034113236370181220137241520300931266341049277300677977224751740957201475202659461921607106436989559906373298793664312454053250655211925971044537150192735666135927114836922267150846727424310556896508125853821367261576282032356211380107996683975220176511835480582594517133492215184143499219444014106174509915641696556269127517431233605367246567790071266598178227117047039469941538204894952766927513366716837248197274997054148351888118751384414869763525237941067845961401149143471349522093698499612422308580867296396813039895950636588904607774552274450475118919751958208175939519295804802810147751037773881260724352492801226903057698715998555689784894958237830573951756361235238225397559043596902971963735433247347456623768886585357510887398665615023233568192685474546842173362135051913058615258067983058421919442797143145992070900257001634864685035565717616015722389456126244495861553590317221770175961047954725018760965607963761387803116530011984525687575084404668862897658996158625772491410428058094772205049396130723242234490532854904803134309989739478579715800749031384492313723624076267939091620872665709185130786347231328951401891903439980216742522077515674357490146327876725888805166846510918229916171113335651783715638152558213010651572131616986262156916600195583650575775694418413830683755563785260153323283464512237627274788829924309396454216783789453545325397124550607244123875423761770724388414774852131239620226646287679160825179052633345305840466456823343597958335180723248914821082923084817715683486694923131361964738116398707658975004655048360090078793848030394586300369905540303116523979519291147728438082041196884082749559772179333479189737130640966448657936520710350978413102259624902619303956505001323838918208150129829713411807647728831439113405087994795752417318401962506087726267401601223975860251470848037333130978303602713229916830202486432263277641265051395456946806731011179531240654091315174456713867249742668962096101918252822136317655380903721798127876928126247203057155104277810027987185482153953539948189344011382410941046191481911190274353397195077247105587763265435538505376742659402188745213602678369928626692655405092024317289065716535796158448997135738466754700608926229590983336071411807319118734489513141038944966352004755485647978828082618980729155483163994713613681153501356156818849142846881143318941528588484292651654875694089069911603981638386814151490276913613074094471293808444271509795915582598209799832369395050319726602064566157878748993624755750444569518881727693415654872803461908099163974704869898027572486368095053141597777161465997808296651542403674820226861298345783198299194517350828718638941339782003504852694778504215144612228732633651190880084824409481970354452721159948397687544091767090018592654362701392081882850975688291349788645388573390324065985875884279369273167586237768642729066632754523014130679322174129115456955762958354543245879596995620248028861010713195080374565471433521225248259098861040310069764084106078942949274269342129005736288098805652234130529624333752554272492333763333021853230821738083804269068690423225023522132998283361296465751181183382094371851923147921073324838159903439989144997059199082316685005855369130479623606788693908631342023255032538339224638558214055901209202356968076174469584402862425761896779513914096784775931713057828997885431410387753187494951925910487518036836107107558783049450125993613244378112735337998116832440772754665165624148745349899939451489580806846828781783090098012576994489338442132134744587828644729708114165784009244352681108749060101147556448570963725704199922261819534956780259043645176693011271590480872524834037946954065265679386464093182277780759885434876200966407786874595306624023188733930401415153755762198933621349790461622933723313110112306029627865972185253661958068413805757523057336701207718387892156786044176809353876814109239849167019050025699841524840283466715592375477659341551603094187295003283293587369980279337088409306350507026022711271258258969027998632668602505865100895021429173342870713452834681418995500681145396218318424933066898871061693573825103789808109312000686325123902361787802298568269590355205077089595421451044428034403230121050818362485609049108082656367700111836132274595809309360133845616338125251465150655157766455582957521342303274992752891538182858384907076955221523421560420412504644027855343638875568915447120650605528071742325519665043594979683913513487941455356148864678537220439568689605337098779416637719497357132805116759334971536543676597563776102984397954987077484272895957949740790040764280495714661389664322967341241995917164412152563709815440042861811116107640636661570113663903432505568929978151441069259446559587619159646081713917887260257903811956395542767289287492126097732523321062717914213850410690564426484602752194894124356016674086524233082270933295717045272280759532261613370783248667981542852073122179195670316387621696812658693587784087633386230857258567862393079185553163488246290496261859600563889504832735033110677458677617675117512232035002114528912946234723062756160996334746282162806857256209580903567397039502556847196092816313016252275400212761310496064306594617418127787047434093954794012734012343451687112960843301910450162402660766046873896651086155939596700609845609674723745498710952888363210830934193539008741084274358880238936472326765964598850051280747881848996010065002565882142651542878497330585015686734581019887711117203134527129897846749697923749772200755882460507815921648283150008281907345484544569211337378458241980271360080533130597866298887772561174470798991028402787627122460965787193050223077076357588811195427435805531036344436467405663570000164362723252500269587707642467674487364741649573815343627030468929068777519945358682469062844316245600350682157943035204659009779994082805456402724408320636581582831702568963777082759844476291519134337287895233018318361767611945570312951318935154633495485921868883838307039782683883347705590049773528969747098181166131622341116123587761514750810206410923049199492521581494786550672905102924166501381839261531731960047223605282343690949887540278065300455319570826224830648495763015466084832543492957265990546500890203531544670895282871365985259228721198709882464793096661914415179817929886108865991407787669660070662782255553681061635802951924206768196775160916274696616121805965144579101809653066714973473905137500520719040384094307440825980944163557596188298583352842676857583035993768448248543619515215418858058243016508593214226773872682167230115069203533373611163723584467358316609572177839384858718124206565335504816778835471292175608260362473725663160971093202692865306528741503061566901046501207123540458233173126226183879933376297158794368323886747212773495781952811336481552920682312357517934249803071815851276411377887234733332822248278395573052496647715523541324435277048808048939064612885788222244411038330859734256073003594030386583943516375801458751213396642801719939236578677911489405946276268232570149058076499532401644963115205069307439924747631072387865033283073596515606623810632215653576980630269887043467241649769564817211753649570401202434348983467292087453371079164787441962459312123413351953353886831401236252864991876029646142277285015301301848477530124839815713270602658936328017978009606904138885456626343248894033075096360995394905298877616382985984684861280177076074728984868738389565484445941190427063565918789009165683554044259456605013843784825228416764845178073827897154509811220010689553092055262474581946684156620593764043193964227720210350028518998779439282025041847537913282911902214518499051891029036470469902095245011277640318226287204015521615958209111629153691166690883429273910332840392569999408411149947203639776281954399772128420495374887995954936002161751696022440002818904271608826549959796434098221569061792319221564187106272148531261144606157727953556541703196701956468947312033866321181552511821761214562097489895562231693744761745659711866406805062572128385910191237197989307615231894112000702486655992623757520599759752849973603253076978180015615333632747176218699043784213225060121357652531644561644007784381382399381845351230546493668078780517357071113244325633033990086411858769981933365357202477555817820183899893021540639170878665442662530243553710539668837842962915750771589149927866620918953333662463509801921819194738757676328911448204977654420437631990465658898826244973769304306226014905058045385906993688335597162201916902587486956606394706535833519376805525893989685347455158690433523307614231975589275469928069359342489856807553417865234183461015461955720880233155081663002294692673605616974182976013198975805731885176294152096155016940871912134370009493743972708411081982205231163096373380593122133123295351839321024919572532974897112507073622737040027438243812670586969426392301627917577159105436510211842745699805529261155502196244462261148414242698662242069504000271126242640511606898517602297133002185599824015068391938519866461756714471246518086855951321099548209141711806302826814487196037732562934058877735174679021305027497406715308592901681922594209944809933952599323988861434390565549026492876745471955288100687114026592464946007574643024921988879642858706033478712555729758414769650833182208995404411660883823447615572020189019047207332584002709015073663058615795230021329677240051054984343959284343344693655166147347204174207312673053300950808211891340958061079353514525889690743767638576833881571715287971156090347713885179328482484358100591882246220134802149554246273937302637543979960859193350345298156249291311765068389269116244773031518432926861451648943524348280150364986483970162093357959148510977350996981621677562579654132323668191219052707623440847508843271184536074099537505258985554292947953945083883417345182730549711258463986922333363066458558381629997556234102601708866818472809622838513363480209461542128205533609039258461048113216401548474494887199866081216375741046500581787225976828726473176949590448326122492784690069222343570854428657984197756609077834011311740719411365400279751355554061024614451758800856464722774660983449815423157401212137330112020453724001336093051580287365571197359642974762438837795155614505983628471330862869466376193930751867617309484683576008237952459274165562889730861287307547959075185462814008369054960730445129259199462711416888835033509156725194835801781122832552236086421044234103702841217366457141945201036584211865879997996327482917846910210171470445741429533755856714047730753817550792470744650510819351417406885458999544045691467746252603126485477139648505931468688410294028724592444788640796976951213456696184394786468519092775141379479147412406053103800817448776189670193198406088933505098845327110568499447611536173790583430106333937950285156692712937263345737245112366422314553673802195509954527807785678619246753396752197546391278247746753691355285342207848391519409162053813762008700570855978140986625677941359126428993418620210005880301720382840751690326041614089066164353807299047753759547433798571199873082073756628101232919150219240767070679388020402653950451817476780902020912016099452216092981526980781111228777225761144322472714707133965891456142811992586789863124799785899186980384522491246735288921611289194254825252470703930174684017626806759220075540634756751679260118520987687389382998350691438045908442841896557572134217447921064571142268306603212397298364231729406646201179514887026335582503562763294181264198646163320556136292895419939238106082758394440893669905827236980998389117406111129243545598949090202916084388957760716471303246023243341020796926135749372940374864712939370029125931661400713362686529035948931235284720042569483335754525665787414843257608445096398885135071291478426250568017887250488910124760310891221029621095655673048274936080347738974384475422074319553977755206580031734798264465247012195210756784462683386365364566317298010228993928141439180110390012544500575422855117744495186497347361725613766024299467315111634692523260212783837922226871308979341156197711794643005657051221027695543644915762556088329862827127530868259628225020879951127620199786658335035383466985750393791132132702677803441777931978402134897783010329436760175579548201092384327750566225158428930931935254659624826208468429155372587765333979751374562548681388699333511096412903823388809719359270748200140853594538527302394582512819689504365783252424649685107751597448571330689780374837850399328942122909595505702406108582774844758117076061691798137616583992606293869706131866055771622021740260649520563735120183854882364410241211834073001495896145108203299834280752028921816181571195653397853514972138124221313587004329891686319150506076060260952447594875866784125332322116838376855542888431389194786972701043198970372796497553172674369945550578183487340945602490347824636742382961241204677156151026559106952050793373699219849412199266219399307502928023481725612187068367981657741097827563759371707101639706014216769232055581193474048221739128716509503037145810645549758336798791350057644406160655277965339879523875357837870932645184724529770488885268708749959897645201154101453723224388995881689239957851149477247397471674083386840373683794837075278238387266690678815369298758609605456828334969510719239860269565808749562284465070325686734148678109172866008603437014735296586658921358396224958888150575785370631578424041501911851472628003944603998055093257656268684823516078651329845321183621674842088535034904447745504837112777709857334651031122452646902202917885709132542159600838644148504952384157383294419968098418637881621909879339069675529098870258443315445363628373690195238657439136258496058554157970739996840237868667051824517732091634532088705806475143266484324146104501049487448770804549239581928546939268704467812510797188732594626355787230578882002552325077233754089540462090469827407667874423185769128067611522811235687627186066065858854377257467099560031713352055859290522032328603456295581002450558215170709182207480592537561051600359704612493098883015152432142389709323849895603776861724749788450584619637299964521664895729542191024211320468566496895826742439121887400148972167037559764319052564325044915134294248067104657263124836348506293129103558520598028661265219914069655368203093395116374332005633978032293527232348639244137577194897562038402739375759669897857740257962689241015734928077923375266412576123676822152532638413722918954414380973036719713069564493189129109439751057316004448973994385839709438960787624107067463610025926806148018833922216236262656112888214654696241018234291103856360990361313512902539879854211174337687951078521029283947622780985475919750087521705098591044311102736453308628056648155267466299563581138765740580569883556451850450143321720540408200696308962787807183293835055982544979156951459248876290200797194430759587316912427275805400775401300598163174677450404816538682951079095395184611607956348586458279777845431522801941502959067159694029156429877509627849180881625953264970923115666442579757677302000486130548222781457378760749508082117986961055365570202291007904058110053697449045376989678676974388574804459914951872423741081882557765236274709639668580331398138556238998210493625220712754535004650558036620801463463323459995001070870812202958782643922491350139087238801178701248077429759130648532123526040057423460755844026871068308392582366458870690259542415020990064393400455823765583941458551748462291007572169645256572648775865441213729565197374504776064189267569976358236271218402935311382191343962816937052596117708053232556101389403734348356427989159276602156401226483577297913297947419669088728180940905896218316226210097804549060964028888622011002942071541848680057163143362657140720934045382456825360794932299791044691214907905017324723114961054108809147595011185949297329750932051438227508352401326334348534030863414824612933952883210010589666378129593541831727791691660342082342996930642131503730611894828750194019408533918007544815265666771728524950443276509900380594362282616978495258007645094032227793631834146687134016855641044682621189693521183106172149314033901100472851070792512886602040371009635456812441037999382025136142105197954980210803111557498908493986439244048826784763136425137813503982770166127968482301641093015971267689092964729129729774692906266313056922068639473613974961533622702635467670931302670671482186592439839799221304008898266409041861191643431776777565189643053804972332386452794400812357182271180500655149825035529821135848437111744607406592613071637229615040550654032417111781607262021259264130716309660691908745107959264848332829795381921045296670238371860796726775115678916310156054978842063239517355900700004221921846413369778450035152543888564863969698262260613637798845663144557721398477941488014269329370257756658545869897554612485653069338789337367832861891886992876053814840480479260071281922611215756443227692469012915919358024705381714227400589435315938548379899036907047991677412287539219643313002830173557558880737811385194355481141249598034506975381072759599524145838324969314743520113272852160360454512884249525989861588854674050566247508353055101911049489120544835121782095518882388806356995953295299258537963732544910088845474515914008356714230446529725764698696799956036400425899038906486028464609081255946948383776687444887318588577940410221753234390088686955098720751297245814890796212434415047609563700964262760551018795188352368659139378629083706338287987350690232117253665454578262030191589260378019953891947425934079234346312194822841007872245853960992553482087365074022008207994054843280443609358429622868558497619598964544710497291121103304566782189549948762000416616483469174987527543083381148974513376790246835786838090980547493217454945571377323440152855772776960383115619832693538087279862167469979268846629350509650761774730007581060588917838857980017759757772406210204173451530780223397441998110700102319895830715893677887667492807587390722156206223280287879127165824652039671156211636069024117793350262640396025657998754732561835080354866093367754054716970463912502949921715564386227997878483051207249914338400270921293245791003905011997831269312652407002365326203354426098035224055395567981643463995600250318868505827158940625134860566906741616312311105990551045084495136990498875249528484108996879550432575165005868733166180270399071498884456063017744576994077797721479522860710753600521711999158819742094125390997215067062868017433583503583119985052814707905094127958534439324103932886478063861444094805534692865906269499328064590539652930733615333461608172712761031020398324550290538406257006171269875175418631650517897884563621164147756279857147938357589724583530696506712575922756162552112834051908621118417609335491402387451854182148632442795371039054426411802921755959760429613282737253955519184143859597381114640881253086042920652906822438367062610199011480455221179676603274968757696649566693588011890815034693513831192121802435026954308030777511226830632473309111811216765609168737851922524421882592024327310257793703724892144538799658921098462058814119311031315093526380555386168711889695050523754227138985748259506067804828732845206401627050989933084610329549533152237490362893700867118517893663564861988617628563251149595685635666638410479993774760905082381178416755422866881119238927586302279215390951017585708582479646853345485113433243289870785961410958305938388679699541282739203557975178867160740090188361256908073074220936678732676301570377892241756644111354617841424755736488126815112307045202970025567471288675773754292780813425238615970702173987795958424917829238116096748442266144082093229808669054604563372985169949600853982501263318733347146512911581187955309997812983953037129195346223866716838260323364271816179376739250520136787930499458666553417207546420023202931151905125935840059531233227138667022568334709642560623849146827558952560579174399211160849184911683099186668822348808030073744435300489271017683660775469557424859891585864279935830696918247521848583116368947827852846280184535847762906370984289981877682897007637852587083070784461705272212007264386763023821445713488879768235172280923368606528655198769173622813288471133477236553235952365797393060721339574202471764193012761011396799822183337903005064805328075903726971794677228207280980142244705695603123071268403500794169244097063578432780115897289379612026934182944572441742816270627594443333709055703374900436187322026227577617615382268743171107419499847076749396813530763716937996258328740021004193257301454909532308052819139033588046875350695101261025612580605194440624620242733610690967440074568662797815685874522142087199573776814960519336071242233149380579378879509514929250258955906586428020738628700131133838159173730048778670035860592536965828955145723149079728820475513836963067144566317303619811054491868857252095153487276464850633927285611782064330566499880489147166575288306210118389260934063532222260903745786369573069004430553869726917544399268062070465507720773227426848838723545086989047658911614205297558678537155067916184975943990600833905676594153145094996331913543488298722061695922254830382548159857328573675173756294823245128934810278956321836672258714405112916642981721081485527810117235485577370390086949716447590377863393484273807325461586690764445599410400697644534121437675986082814889789264240083285141464964335088924141915317791026093946160293502082074338647836580353470827299490147548777328481898394673601593618144975036889318804989022472318088533476842351477035718069076059209574027358868838189950231436796089353525241332891070826348781792112638162412941322766965242723372931771856658804838570136111913510425546544702527048542334646426955725151159383757440148219899715101455722773371944394838361213699517879121892350822710308443800089700484072791821767608872466745367853818706163814902417940480801375300174920869599946903304501984309143767007101039364811891088912476752392458436262150445341204784860589846693465124807186445568481289441705857644164444265467820875536138004768081020849132217233633933318386929536006735128762712390022281410334256886383315195966795517940441933149494090284903662482527111981779044983265977078431525865306542544686095659291920398603649975149353194244193822490079429023512916116483256913180947356595588089559485128228507239719732184663819629863756198457859665340261694366844510366357472305425424639370284916757049163280638070856923260649914492127922534496065428865009853602594580244742264845719265005876199932197937286539413075245789704085327610727407155407271684949407979098904159941599506441457577423437009801399892281215417278616120667717602568050299947035374876376905393285483539180324750598146109693642156782337608408153552214019185641618781549450367844046719274296200650034463965022518982414637557287300262269847242629235440116904844970245351480416287362277978289967673564653061364637118955501611743655654219170989921596680252390432249862339576264117651278793887575068334535939979555288952328050745591963246721735401659057237972777914572658697663700737610079133995560317780129133459091934188202469031774392078769433496296575126405855316731062204518033431567145220366538089242368232612887793149444183817727451296538596865057984027767590599493387601722534074993513806833830158991123092226584361037257076391588949590833062724910564911440085433348355526209636880382511824438930470681202876285795032745445586345416963128940792532090554420114253174829363062203429339912178724527167563177035575915393865187667207137972374018289044136876622036762513473699837089724878471945462234193410341152192533963193180583422328844434107572370365465888245538677426921759702449493595664031285358255105449467095921018247968747569334541599689062921640626287633025455555722752625058968510601917027320324681437326598263026973887503948495937138840533156374747581353918415883375640294015451130028563568615398979406562761622827788066725532869509942568914006405973834174042016309384487877267621166029558718067280219833444961916063846886302195205670448503013905119001027543805994850822129426062514076655263463918682535571591233536479310297131504038189999148064740631339472799142962786788242362319005687231042052320807658970287332801722235172482325759127420637880339317950147278719101240671025270481699468786828842399823828972397725594640870752744655457150548551787542128046458608703487815942245127156378710190124289135932366204379323400847629203386942501767049719655255778303640543112095855459379021449371850511834199779146896237036896366411254266989320727237425594318575366194792530568373320643453479815444436656384923236437860758126480449266621118464588365766016235607653112830778881127673545873243660931062932421981907881656122194265029080429527812942468854729001253356235014405407390769330984323469407772636482867412846557311644455970056097557157579345336397147564170377781990415246425801462621647383901316772140121265650873596578528949897827024592679435995588259890289119030829891429804135682444270453574589418341400877142399769657431273039740065497113829754503900021472072376824053768022101288624115769031984432752367157715548296320350387466875995302899883765247939560647750471495412534407580532635566095687718696253737645995248427046969603812903998325165142653160555081358077283758469319303117175178748466944802226529225277033379311196654997529914651713886440631226300799971230398292688073021566297495013107505922325382110430339278707336727838625399522850807657386409575554954962280041099631992447713439112507620152273625252364256599192645695152276347239078186358017218200716764961018948973052020430331023973336110810834858871978025156609066409519085716050231241722925698883789207349289073225408757560171275638398242485731090990206354535599975436670837667955927701044864402438851804215793884069929411236818457766515632130039570698883975138531879182640856171297848743564299361911223292340021965535830138663123555905857602150875193940650931686068503200694479812118770040138733124959827135833955996593149132228357444096173987594409123155347685520248708126346168873703199234040614280600258970844652884334734907112583710032322030278510204842060501941558435944986072072915185455240732976934190439277154123848702096146824141597825781222501090041421817506781350389649120503587774978491100827681922507960476709341741079191682365089610663187344959361433977396372715025926039086683933859509215058370535777768641443130789906891138454598259778253183120199195539811392888423859300039554509681453038441674915656665269234937990778555525834355254858331271645030123470681224109757357796187243240412805725241640887306466351831032409142468292811612868968150511791594938903137598244870579423279400850943574847391692665894192792708926050565108339368051990936087472799796929339755477458411822592538296096854064933383300374602133611360827182214904974049250471835777541260665552237102594261560130022668324318197092271511701083025978899147337975831728258552392238918595114723734922434804104241140114828236503723756532910866209700122117849224747543101476794368336805048312931758226845879527742342051735771336277974357324530568057700238937912942589478945212119683329157624308592588584489499746055788980805954685140429763471971910118442514379579857447061706984587155505704530085864727580134500328402098845762766264376842451285003568601564602483422628464701171154873561585433776372467846043915293893310655359740179198508935582876841595696430990983784642643804930971662528417103816842016006568100326968621474493489203039882747585580291933035654956969930216273250120392841249652800492543383878824932367737298013549242499815765104142980888695771556893350690388262194814474781149959131944066406013809186649486575671277175214280316711553573079323737515435038435805787904873040604109651934494995485943309894692031627415732072346626527167706216488736159978883154552748831161693731849319653315483655951813498942506225378964518231354203544524900671030468441307344096401386429271975195983752354239808884781826323188991582401316668471024271056553017208756729850410905874706726935309530716586439653640110121087101375126383286056492748791797586745421019486978875837813926211989685882762791604355691950799849555118747661482902030309086261365756542451016372606138272024271781019845118547445133868102038801696928918343239033332713155577936224535101813933175981682084613484460271327472323829211505093203500414776546265574062166954232193771310638746176324018767743457314717215383152340262359943288329017130522733144950868386788778645025267138755626555698496952435427695267956191143348816407502497046598254336771355755094870146460099645663848415764876587026865205513134819771295646407746717643090096877568054822595988879549675076757266960410787375519352328320718672553009990621825112990154984357120602541795283468612063863491178886895287583615762026377137774226419573919819975037607036924193028863678841680191952936277775593150426729503348106622711448059951158216680186700612807613697006934118034490803970875320603013495480690804543405324661998299276825253915331809053644098511497255052672244271015203956480407635563269113052147306812894588476131735500597680854493495731547750566278303390824424005339037791836328646924484153797382200885731397809082470416695026515904829893188152416855194040504233251392391212665670499661599676455523286600335738176404617255907373245920902054394979544868805257208286221081347391965083252021538630787847321018795352754542271041825701551965667761534329755440169805442799793931717866322036186574598184918533191750596159870589177220384464116443031912647869397312602954901172336835250984689206153486160522632314016798038549681802495254833119029547668224079423870202609642276995301165035952538039614124239208076507784741023353319512462450009045509552516583224674729138273855159652625944591662488704701628636718101412825242408772445629772841285002266126580610967855049841017459914104835909864710552563679737506200557379239970410744424177007704933657770294547948175471103651588332003654071063339814845265460923851953211533671269144428445592689071937690743672301250521884728247357992621721492797151348291460339425636370621406815575406218812351830474482537975620996199824534706241897641661575269984619051088886629123608291878768509175745437501318877440540126664743815944267203818057535612673530923484299314914775867053886072402161812530886627902891880875819185575502873662221939435603454645471532941847622382525805977659515778322149398884156354279990654478930715085088079870288342499088622747159417113287149774284975995854571227991384395793371479025629317053662463620844873112036289316626863339414258447098561461864937738222113907381629776500276164649760798602920873229500357352549958070733845875648403560854164504188835917942178632698972469241356809893755551471640469947648736076632579161352932581690192111440567615594606483346243647069988493331222116979434477720250302752131301159980617993113352749339395380110353815463891310616937569527939953477017747750253808691883023988822577196294451043509606913579021981310725857795753124796763712447343831676203946652350476643790006711825849859838436018478430117296423243851030880453509640797277356348123915191308695879820893912640655757049910159859855177122752352057005365496064892494245921779435674942853661878486039490557871777058629349892582834989373500086595258733267618719396724388460139832267104458626425996895969014742955466835182112347902693041418285844557916660501306388459436479829443701020619584084227132681088270846106018484859679718352704170228509063923601220166777805693455710127566864885018258110687766564429046466225663694001388753963976562405925950258778761560727696570811138942884208885030864217121507936779750877607961188600144644924166184051910150453180895779156547305992805200486773735501082539929403828878262017346344707802246056960995962046939535893006447057986267608988616228129631469154915123093505082472131215272360025847171102407557227916273053081848276710363911175813221606138448466413999584648117089588344974151725831886633054952441480719015475595322486118270854504505615902521426480339958840089756226463393901374690626239145184722410770802336825322928035910816080734556453371327455888447076900232939877516758969379451421202984659893023915820273780609904229306807804853657392538526554793256104205007220156871570442367511202381774628484601642737916728359099156340351132155994427305886779307407583668071719551834556667474596496416256638601322736918373162163081851473932873308944216952964431717670213236736418443718268524247569975805841479514470615173577413799562708850740191874579676233147471012815151089234489955768795121595285560947343979477227960716532030141601033841536586392705885953018268360970986632081637308279996441342352039103052581199758996541187282014226690497250317343600573396739380503221505505688374432628326048891219487562669279566546764788792497388944335974238995235416821900476603533794750243089346117761412943063553493341279246768946066149647280036174562232980031026719251207164679577227935953822698212571474991999698953576172269048314370979922654615971399866145618690400390247332198265087869754730160521000949999393715221515677222951157004485701330447012998226467475721145221279489404227314798850702421785681507303179188070286715117018697940346653191108547647716099493773381225867392980976674497610761227473473430716620122682592370765840775137307132310896960781435269527166859839387447518532480193767036978408453882836939215514714424188988470279806146353514597183965453940412858381601594035922039568519222531312200969356978004415851186027905364556507097651724683554110813816997825208301324638377970749322785224496770175254666916086151343963874343313386088808024156307014449446448375387954433408162274867661824284517868008439973775932333935285467252385559357583502009151156723831650151132041744227365179982735402895577704091148376139169449303328071140038048232504436145042983036574471554065560018238258770866701499417932327064889433064218962525820159011320185820688661989231271492485681513155714623628030412680919471175634651808253158833612542926477449203628561015056116052203497306904820858047563241928459620548343178100341544905727164759240158800332690938028610880031830315499621675840794329809487428257485189517674782680613817237931338193011593137644781721074504009590396805603250480648621694533068809108491567762255789993848946978726280904802587614549724465285271499227127333317449476550915556098068372513569207267134565198310547930516794993152477869990017764512306350404146394210296672821973654286097012381591964703888547738998181407283769860253829707479856756186009368583242187433401006489312296540347902088325301219917167512582008661731124654677411080878550244714650508690121064725551848036092555066594281111252840196757007714853889714666977592187090114259591935252347541992550533862131712204182681247893533117719714130258472005866712400310629423957165919505692364463795328088154528856630221759458209743721619827763491190785320200919153213878259658603043712794199282335524511650122772459209807200316303872423657081643561742398553388636636654584188838353801909852155077319905734873918733189113105014866791489770537110040374284650219438725982378985732195029619965957134122373193631484680550987574809519515117116054904844371078630222542415226725802326971585617577397174194685251071706970512357110366180432846288094143685313535995298913902871552103207018283713112844098271165933116374210744248321664335728147342846353230000739807164684454831267493682844654500419679016263037162303193433016446375529450634422347937889585855139084914236660715833776302141941352644503089808991187255605763348014083468933181614233719779236931281864732012092927601318994996461028520964024287193771283748445267499623408586596936289164939790921669728559535584010551815977190620813718209421994223609198980768701708167852028931813350965705184048407586752757140807097777523212577670765442037131262845106581767193895411029979730261977798979707170659755651787766751076645143710028893152093283936722912909753708419474738365659685314483727394135618690825455394123369199735842413249828777381686691087034334737849219610076630886616398900801835404448414335275003096862769926958802132991786299632036731907497093172498152767788141209946732194942042584047251435982288778226566110004648190618484915888401858485039811765242296416769786596303514159545130577620434398436656048361995130588511022902973876042626331639652329457696592680637981287339430246000951527211172175425723894374946078405501573716891223095018735038102907120781658349709523606966819686163011447726845797755322011766330370000227211858225149966223489315943203273950867724901673513626021742597815202417060182663259868074912166030607636630780381632205709821577893447248758275251054079473235760303330574632555916834766162124294040567114092966049499615380698076225817850707902078312427454725488828831035245877052652480109433533958818546583522462360852386836370773888337249394474634594550053328863663059591113496274708249672209969849648216864186929232556837499180602471544411598841453852094747306048034000557481530521112523083685584851162274199915149301052778089983090915507634811414350199719034666896792064842369668270134996545448175865954687014378169659910023573299991243376222042010476706869056999680565055282864544082906879052560581600866020579935570888511660141161551645462713708732728059249078391904492494884599878518871434143512192550801785298229268921685243489098636519503593858303112180902092621798766008415154760732354672347142748133462947108102935894663742482825904906468728052550877761502385738244004705078679153633224150266466849498255589393012376869781551305315035547670192632035367929635663077383437339076198271779950318216725591542655983643795271413391409591190327258915336629046402891762424244979501665623690440712925808944787115527159156423201430033158334106233012525212892450485637944773039851560766518193300820448268708101331550639850857794536522328540637881632829772747781906752543180960386566491240504386470043175322173632366656868265200458428092171378324092421015113493005743908134018935336020987491006379020643694460733307331185791559831848640330813538321477337753692412250706990209314880047141808843103759781178330099340894942056176530580546536414316678758788693272031619872119519244300587976387449431055999976850759880645167749004795975982501123681962461704450206666442357839476353845600802967667373446814491339032477687623310407584704470038717836579253970617480764323055210524235735300944479474801921386903833770611004944567703824867315313034996938971665126639664789315156050035144400757246819595732501693875827250061705051551974728002340076486247778280458590203006012231498799285559664657283345796257295565377974561937670695574246794275550699855026588031118365011152020851498437830568363431176538972952733031753826058580363966810764921607270814451533200968191281982770768679325658764496819773736856833566978076583432502082675143597950638717981200108642686333757032387737294628160071129899478920977739709609496630482307209214509036925164420134052205622657040072520905547763952859142534352456793919776333648549545017792346929452056915465636636938892532129043418800566170472475651848809524237494140671327387423102963703703168034778020125996498816997013786972102470179320975921700267959589486738147678653327371816883386839997813630657292114810798083016858851710364726884311537831807283174729975348906339159716032388365744823833530096870321870892645891763807307995288171939202106205301227725513364734460934409033793033516509285783640379770043903815110834655343668097678491214860499034322258543793723781412485952538435923825244286990793079943323127014152872608087762845127747985890036875570802283199113269910953983028551956178842898094958074710465166844318939623105674845198972369519946195494338291557117232149261442223582276278439862831463776119476709008330202478240186217646640123921506527728601095519438026660383473291895716673878225119149151946683922853793616974734377648977007979267804623257477398454042349848362076862049000533685450177524174588115508228872118945935438973781363672158569438658047374906411349425417363399425137500734080399454822806426261389522839102466592714333655087757384143205615179433085940574299622127211342182830938988776270630214295662520755670612118232124447775381639681203085690984872769575636559021566155817318127079653861731509169430019176660840080473099799508899533272420745651951764578694114914273604237606936021898012216122385922346707570394375068174374452316724735857161348694184948692142733350816468752367724220475779544365617689397510394281369655255508792428187667598118943309155275746460143955400153408359493402545480585997934072239618941850029044361637803946832324140613948735642158698801802783618231143011448460031336527003388095703423456306194101017333915213210602393997520430231343120213820234332154812038324556844661189934211526039252621588354557991322261271204443042637985607189336668492375885142048832886333071819162842876801728963298761110418211361200364568168026582069396618748370952235969721370367156630416825747051492635836487095229277420747242070690142998471389439116137421402986440633662895755025889614764345543251376915964360040449991736697936148334581796999060066795003015344830506264734950932900395638967681463987882418507615993378885952698970149164371547121343919557672718496883623251523722272122850870990741956704829679939628278987165946260586413877456045154589526697015703924250458703807472831838346058683589846446137308735148074721166876480057481958093636437346582871903790326343721512723553174992959276973252674973150528691555265315735931032053629893673174750812039964174765478016679117841023118444427705637591028155506457074953662715566553842363417629258441043459392346181219656978635649867675067102298118014771764266385995167380310022143455659301591951946368624172999462556424540474865135681428400570755228525726721703049423580290476379589458495447872176326472844599882940042390597689701372622574314264267933534435631448083414128423013566525621107175225336755615716163022017020369590769808663674903240680975887055290652551720088296930905750604276805764419559728302119465236549676734845342225334710008413010743920529252242635778686074610077123637879945825938728471475152596885101961196670111219626919767148301057772824902334885154357945325932634679252037130317514561371333166015278694472882647211281211607630510148726415926154252561657651421262907401241091692278437632365690813109449977328720060569965679689418236696443910418729714807431028958771524102971913217515825481777730775071969813270619344938946762480355331754863880490220500058202486068252481852143161024694221106004823883116938481506822684588433486938765209768569509308105322403091337234694987566058702589199430271470447522167859759675997383382479741698984705035329359421147294010309403106148528377880814791497611866134864553034740782479100777757901509930708257115023401642872826129936939740610390169704477391445312030772828511499062053661629510779976233088146323633870740003744959821664010034875130624146066701764122830004510779070813003008625197609497331268329660491943951550139369935121520955448158689825594486420593856284013599489188613065000681877831353706453230700020705958216666158874184343419833878504957852498799193488890741110360740263663477112761265053422837316335637904573613922698013408993060205207440707925414344292347473618296343286851083321829496427646382383992340747916613872977527603647553327936582682920756183724651014449459027133925988036108965854493876906656989347243825869276043170612334020753860684603964741219591247665731559718764273053349039927384572568424090901842281890201469316900304291159132149787156440718048495125712777688097747877153286387595524122018148195299077282149239053849259587152014597306689230437825457338996117665931388864108539351375035934744378756909652882545058715820652888970225407253783928582276484900543884344769413025526827909724725532559010100724821045786151664440565722606613389882303921458877653592538534507180827529273104943146665037892517132451242842284993137779567030011748147703392999409648322019597107932565799094718783857535457397100377833437401799609052049941826232268494147634390741401406553260689941734674732890403372590014307428447064091588769514774306364548672414777079724960329085455871404962903250105554315765804481613265356029179669595360790008352328426642966562448655391729531745118668823647676791351129208884779373784665414693461701463508169160066660532249684422789160683073277356430669129815928910242505166959664943283140029308418986113811718470945378037015641438225714334585123319326181815232672419970251525821020833694995176648109729852423582668551257373710418551596208602200735961326635797141613680430682860306942027407694648126381532242534860523044177737316159026061073659754547501537415139082991095339237391464337002877964269785514165703876382281003445849492552252068936850668036800586377079141570398064199212841116652132354752012994596195442245077852718448189078319111506834405435550003083237725111311349097370541012310498912938012897104732007161113034214320759657814272929143528407811406720115682773606343905353682887211046345019197347277998483445152677725953758567496508679819947003704996360676521745853705789279172462334651433192849203843156134827919300292574364584517801339364684940591102698087803259696619548087134576434013331141171517073756023041803066809243816357506805711613238895217999266794653554181337637217387988381009949056892060554271765562274828158059133583723838068340425846189952181114778286480744795678015055207289195381533833624455859192192481282992699276115630036192269861072948717820949064973769532687785927112047920884790060129979902395196484330644983888417939664087281945684127233492408258111358890587349999624166768317551684537597569523139001721752974607167023851410813483352652183720122449049088551192465477588272225045170784600045651507923644021339246753807882450813285309441655699446514502213865575420578824138719962466956801528029111683896129072294564915776142856928921139535537060158298085482643032521412896465662252684328603571097283602011304512779036233684315441639016745620011183007486653487964930026077859341484910941547570386694454666687241430340841383185881436070087948758615932203051470241481318814023638049308691304518113326621620848289770576015465944199526228071923276867602502918900215881795592067233725937128295959254491601752527556871656814079865289349889788556902668000042853132732421449797618872843015782805818539469541163351187602028511428792513167817948353000898963112370506500276835521128964839755186749514789387727113031945242613593974573800992084902928421999563208215697815735118305561188041412834304969450364029359420167366306809777719688697739893718625456075436407301111795365943192512100430770566709415153921593236428900630832059476262724317734636929992480565760963663174411043429011900436121796471625791332911646565076203560655383492397072457276757562022502728219645435299020580710819080445415897168636372181726407248069473010060050091112897452390367262934516734336849904006938292849800909739525317615311957209285405276971081538840914736978963805092415625215574558020692452263261935367331823397409650421153790411893842662417646372324195682125240415289553462335712921998421969835269532564714697578654273373117534846397734744478839503232950267517713725073762330702203477579959295720674044729672823209531828794162748700499230925585935170702831449215660762994299192464717870915614102860780518384944342346603989103600237465746057882765406533026104496274211222613397308516275984866157966316290396260312845834324855202190197440706629400846040406092623863484088866463076377899647281247109969446471834328922993886153156848210258801668849655846896248384849149000524106439586337413022230141588092904324890861151959775954462221761076463396027912519979959437133326660722875393904021526154100505661119832138010991750681360447518507251763756676199569767315731831798614461691652408923130567726923730255200246654729552875453675978186956566654913500737841298294438266041820192949280332320518470605465524101190407613114890597055698847721158313739292994955145397133186561291354705858371952636416337673076142869980728900129809653923961029483450706846464950130879791285736624141213379423791341556552645943983642836603889682046090503349690990624655754665437574980407135070728743867479007012416763349938302782939423986036545414886533215473538650582966693687295104649445041009117216716633350242832076257341449357722545422615404984613019444340792444987492914956853189213095795933597071897239931311686262854409560183851786602089894324771347512130556766713620032483877843543485862778792068554336784333332386382881113710794249666565766316215071444771599454515360055229807975545139685701000883040985506127292617868238375829490519979835820860740511568999803133311316415316317592353172829295275208888378354014314850380104193040833666061264860796547873565783574510053091918093168733833261921619042685452027947813170323630055578678235975760650691247473767588310960024716396744630428994811523186819253263355671465261860786669799909341015291891147563187598654719420175657342217465458000163659157640842824375341929209904106105918340383427045827947987136609995409709029462542305076168422676462488024242039708845309023417938549495460265520978623409102483897099187519733656671244291607882763056734043514675468795744348110370433883313738743932879707601899286147550613944511001267057330007271175168081004363745332219783028332109247865866635474904770071751784117362699452495423162827409789183595614210179943099451071536268767156507794667784316820949460314528339886125316629283467547006996248653228330135549074204999022002271630568134754382722304907548657042893952360185552257412980187580773881188625934293435743314579413179698954946419094996397942553391265315583661367831364984367655223342948683097083596637387208510843427630697169759737248512936858470266591316774253683013444435292077748536369504157429379353431314161367717135905520994697158475355486832319653760840415647120934577652177714537550326249123846668087196392221181110486704052587835512869790415146032312893595464032539543771851866561784717335640269197113109752288601544333773293433374735367527397035630828811125102674808888326320350926251958705313504964509066594655855079664543589641445261629791468375429944721325590311612630161716964094699422081280575699031960340819221090591476536356280857566287181473398434705343871119934937755873585679677714039242538427300790786512523323338661543869010655991137826858967693428368659100273972102596280182391720616052111850013928523687948841031165956492349843098315974634483302711459563458087241564046832011064458287713777200063194087803469730835703697766450269313898556681206733436967873608146635550086608973621326865675457370568806647221703008060371115096146849385150333974272443309195350613837472108975929713781095473921110367380345086541969067003066273147899566149684932721787902691125809982898364680220830603169347086840950214079214931182400151981933661257327899132877355946676877926779308949428446995114565436905160064832267331211892749667191621293790268792676209868811014600370095349956142092371041089290910142415410969205834377721137745533100422669691025122552148647582172664523062636795856005982513013713594850008019406049064643321952065210107075358810618933729398673507260861242259376729999396813813278678495539941611056057476107071459900819252549999183530070458349682014735565574825573001597816733875052793976196917335081380578335147095852056696591002865128349119729662209351220506558879062403488200464153264083103556776657584763866189349389548233040431427160367246761262416860107875177309227219756657005981594528358723703017708057500480365209622111805159799296989443718260481053224390456311590245509714928940512954433270819743544581248776361168405702847342981961154544779557055436283758502501432459114029563718067317160180611453600259790377142488313256138393102773704471986256875135675706563299242296130386589686821651798494945640368367292949793584117678968280553271386635484970525776127540505707760980495064691526273212203518570250814886592683443700629692908384141323649090439758629781976837044814568481654419107714447061367748064988394020517562385858517519878965430641553279911937702053249192698311946582449570230028395665979835606222276537199449813972834793930316180571360734440012192663753799679769216969220407907779407776961082418726027457850023429903158817616784789278292588247216430822581693743392333417139491310910439421172304223082617890558813286692820528664434369946613310925813456129919372370668385121068778337525343251431650209339302285054544113215850926994460795518880296749546836458085363131128807987870950534705763499985594697433407807081454715143616288742823262518640793913364358343364038282019325005181707719011984977531627934672324157960515001183813910125934270320951502451539046676124382024442577967725439817874135782690692518712413180042136611943290620343769855487708171391865076783099968157739590002000070015534822328698011719704191348975609394583129932641645064813763204081369509109542354464949301654421726369276189638713798030861381596575670063207009944526022016154022414163629059197453446835386775516145812214444637894416311327718529162489533616174141631911912061342502983951276726162081935006807424337144311886458761718017583964593283294015007656441422211913845193124733382078463372375866079334415310990561622901433659175269825467408345815607747065196525731312642772785195096763104054711730122954262702482883322313636277117529834012166266715285813446154361554061382816811445115724675548879646958957250462143003266624177810706560745837772017842321466108047734673593309167470986602560132464885518005346822298385043694625923690667614561474094484159769265504392257322798905368174909306070696242808741664120248736347479500999999593738407240507530915121926105719158023171157509514627604329845818786552092678872212640440218576280338374708103458925574498169949738491979440570640535049722329715183166381957523866541205572891265625217508659281328949385495820809431682560013083483445290734390045044425745238638007399688573129555020895571250923838709890117654885751359974247534247490774981634563712851013374865130256681713626349653171094293981872308935201279780049158002743450521535481256213170849907155871501261071931630413081175474120387542903709319238825880498990132807069733369451854436953030345041949006752860761898661173325813024363090966992327321206154857616689004038997436120427844739704890824381894640502044276987289499648979588725437512162004103216855027391228320495349476201567658724459330647438145982937594358519211501784785952886833762074732889359121327249698003743463182432003307949097702920642544923891349269306735763217378149770709168862909625391857354247587291340426789155794021678650345584540976753168047256075959762188652499696923730013520991524273656564491933498001856617822087378079615398139811392214973692335048764496434483733310645394696169624881575897659879399713765795110370074223998176742385642975887565333497202264932892059957565936603445533476852641134308525274794760106237099894691119913926363303859709942955337501714574478308239557542305718462230857041311615668400905905282609238900277242517339119515066273116279296258710811204812594608881534230584604467961786882913745585845310881229476008937611974637601379201621155006754924290353103378045549308784067336199956787652490180405203830950406373918322078170174278353169494548300025988604476637336779198526605195497576447169464577975562324595767644592462606447495696321701438383536799904467291866079108976609394027571795007680156001641074587258180058482879978929945088696503219221314006288081872741708273187988240273028144914227735801770337822883750411479678836226194457212955091351186531562556296073301163069256121432959588084026845775455860935545895004638270007184728473845407808741542648554160623716732030507618297485770631547622944066797027852670620280771621192711872879434685796104749316987713997039036065653070610096500336342764070868164786015926702175185779536692360391006242076588832804582026701038040269669041069122297721415658988910829551532236574799370315414744707954121789324571159271356197328109878984683180249145834668972082379765700498552374186345502003984276651085837900452868714530978609120392186304711613790786166417089210776396576411088460927719974350169161972276833885251982184600497531886265920332029936038612715497278768570700480109993291034597285079720211658330217539994127272744860762531948603997793544449778695971074478591865631364510411044343246222805039220086222978077584068630630813657351039152157253541466138961434222748476847110502042911073684542810635240324122457031834799340707420072357261264317621747074462033382737400958514775954021409646440005209150453633768838241801033548667859831106326692830704608901269852899581590279613963318658797176331148677566639091060709838103290598914076348628443889046737816680567292195850848638160414426773546363360866518756670684183520535919704128687480497662617926723184514716038911315831322182172977168531286638825001663090105023598831962296303113361248388254499477776234473798662467015561385688765338291062745466672704375802178388567606956246875190309341731038157903405190814297125638472408668118563556466838241976626112857535803973947728023499115923818903069037859419109228585146610126729365545121207950628276966198127269898489571657972124302034227664640725662428099050487401619123551998378393711781372048766996147797984567835719893218043280289785130517265348612349468722483819258485025346417673030108027261377287218905121929344937968710516385794476893575159491668548358295056123282877014502121533873905339272005877967111158810674247489077767092930855972363834600213386621380529840474166041340665749909997409192602244563123086997209388784221194063894557804813986786042139535984185877322902360568290940007238031936131258135800098024456569240121962150322575929949531903283151542795773007117098000738171788173203153389652014208770228012651092267205729489746208789680630845732348454723714078160921905770570277348921977374970364395192498381355493693595655029926746071672596654265785504147358236252414022619497846750674691411149135572124472169425806361661935312934606697935243705469988815860530389141399597631217408876662044891348254088791604410827189933761151607116766912790494635940768975019434342173189482928786554296898736580054586372805851853238030627223759686073712929222225638814690077225120960473942694265433285652107533759132241957358882973584241525917501011425268810542704025117894341271339925883346461042021977686474966308658467708451562411371310048188610715634119694286074635742375738953699719850922685180861625007384204984080075188837229354368707154350613529206454323356120064970662214985672125974824950808967175156194537649917265869599984820457403841797560174028805364034269570567224342095233453966921833979986011756426873559551680351929889900610687031575487680137748934624799696308412561032029164454242564623820480847503301288641154965272217858594116929578557752512680528826111170533110197947821881525795582005113927151255664302566009230973484029873573824148970575022966699994958090146738302320441542360664300233239384270402713525506686983407841872671962102050568260562157248472887484542659394697701150053031195242836714400382976251923326392652807237706239549698954454710058772228297140880628457980633290280465985290349302522959166711076566231109695739021305342229203795494551230622275074489478053251771345923087470193146835986503658483011246257279350161789286581575666752870301247308573538008702174300068781501833248565170361215390637431345097317600186352294892185436045586525238871801173970685301708292057634370016909093746879743130701395490151646945394892312542055872478086884132253170485146690975135398106972953297117047563227143258946564984596231465443241114868170393758523206548650405454566832251661895717546975136365592386715501662089095625353597025062882621913564604161820470341637128777097540094441269396350590445103001507043461500521652907433731501297315739031970669979888825688975506917306381277486011130368124749335757384498348718210344861363798585032547103256726227077831757093970045854948782872927558056562918829805998853885087676477729684114348695414567698379238197293214050865257627565765622997871354452920127496055459600930790531139174024492392186392685729309377144906286386158678765829037185188517067781596410837074956944990977271737372936694823345075234492616177439406189132953915552074185068163100384339136573483490698194934409428433408798067150357684700428947467564709276983082969432277225629847629591929612534575864795102086108932690775454901800339685101708876933637274199375511481348729885624806578744309672769867015313683067046768848735919473377491478641143459933571006489680763260212162956360760911890349726872709471554095749585446597311092851161816687019903674629859524339871239485636784279346440475701782568532660979259877747858771272801946416620068029734364922305071640577834725144778382197198277170579154691235782401915161943755431340747187179320348744998285324398412771613341479947429924855638126929726473132619413847759862504294416415933630702772998471338071913685525238752129771190100076381435415824469787279523078862044356464169348324378843619370484768552184515648068961988166574153192238402751117802344932776705578421812913215789899108413789310398922742500829327084780270018477707428613149142374086307719592607080277828785471722565664327078293744089193518124871405909798586734614828592953049716450474225466285890129844033293727473709984089429785714112751626501117871170524274582348456768476643666713071438626659218639636570754075757158423676072036389426890427692400294508270587221089554817899931864908403091397967528120466842617089345097869156470330575077751995265683602806089891406438311762681873059348071925256414660476247067274240336532778652243474401422199576809588260381085281352050050646154254240376075112601615698873784211757190464025169374851281553904482527811087187182203205849770715528079191360335775382953277265162981793998852102926230490277985440510331252869004065187904473969274072175478644243536579312916968823818063451419410799960119092141531926920824049337836293213659212217008105200019096219725205170212292992061288392105759603652071145276623265591958427140206518505256170658876309910099840615060699763670305059115613187556633959663063963542088160858193362216392228144048406713192924132907093064866728524201710588674553202015574277830038775245814301725698316075557848886281064130805067819649517619027811556615396268765161330013633249630233427889762577723311435408294357527483952380932091017259145810763807393762678652534098987231884117742326152790777083419997656477026384969086424497760106926626055864403853663777962371798992083786888845807842592464739093039271585272142485267499249378957654360223103961044398096397366664006225119273968829166622691528291612135675123572088909340872607024866292362405394635122786688265792544030295699698773306130994376303867010728790507289085147254112000190170034692837150646978647335360180956878073677111653300694997919438773556976653764503852370452661838184161117113917912611069727875265829712561805617358121641149441478953585005109922010871106788492392697637590755168348499540383431817413802550518660343720888794005673066591379872140608974689539173185442042391317062330276646376022305570803353200534070210933207326407842550858659266509383555663568468365453615908355680041189831129094159787885132976026134155613553362233547207575058551119159684085710275324121181559825149376155292965779513149363828632191156111878705040273365777344106678082085467541021542778607908454996081785993223954484697194741937441785689269000447345225160438100889492928932383851508788567304463024432317721667452827855399827615308758338494138671776289548375295723328249575423834174272319020995735402171533817280332001476505945360340761923326895494107778871532246807145505535659755510349297884032331903450247918336949519989900353863232076432308381554432152884530883602238231768463257596911097054100811428560221355784216051542445525909778710682227110825845826214260726097707265564795864164386359277186422493745532425472607117991152611542152583235472892130300201603070252630678399403025990891161729479102774213573135257067698996343582751443981314347361630200352440206804343130222555835479506996459286561179324091366804684355421688288284257654713638924468978415990388804967962362187099038676095466357915035448810832568864841860086853833801293463491948895534217937001905176314896166155530777388035980901208329855076134920196403180017683623897965201723955701418513451965250953101511327440685125499765254938932461147662057160938455702942670822090269173313411714067292708311778717384039254823152106967316449017117058898976954230518741883083624773151513296261406041582075861875482285182547559420872346647405271365109968419513696494986925941634368461545813015701699680067716010096933614975920608033837298653212031325423180581630743566445661065293251654211653413642406563101479298365137048877742859558090646502220313960261939027882368339400499487947288940584110054900781830418700142050333669232262017741744406945356360622700005421249332345850637610374044347225319267371328629995350691205318423072084248734410953097504631891913557288706517965329058429639666039845147228377357631005284238384014538421781162735456142866350242504736605823850036409507467401298236396898499256696749051571174730716365824171047051082871802821473658245625350691627920141705353421565628079213491931256562158243527439807188755571477802810410779397864633877233543388043233307879376969768721873033156528281311490037550183794093899791942505815816664220936251459949909351100469939844896348897254085235492251426492554270828259021676564639836485594272415341394526029504352986059060579599118676600191363702352721561411571148223780034576771717629583495529096187837719857691323005200007688463168630770367733279830336388137713046568644050346657727349257850527211940907547217079166067586073285465250473474274508934887293438492616453656532000415041849880898803360163380288662979864570859457767998135650516287434048946765132571660930963070283911341712579484238945919306252210938533654419049760929564754947397412549497472179311577555733501535325749104655164615063635822279253985561817854187739044594791748486936092804685307537421007386350923818390255371890270940946010830747280848748808389898095715220294302078089638113059615759582584879577196417599283234282903237883411940116438723122717073984572174942370590478932484295130244494972785652629922266651115121421633623028865658459063147743578197473049536794112726043087976247052519819347475213989537804888059476864522518894141978457750123831783447712779944876945406711878752821368783809121224174440078522182082822526701374098863384643524305860230010761711466761370085158090495729412547031449963902508211472892637732499185988414261297709138271766958351503264095181640302091996272994497864836257067924981483158129886839465582043493403989429095403387065455961371009532690774595080208932914341909094926246043895880305305106229674809680867165874304487844864918885646154586656910306496774646243370221917017087284453458571862850787863031469994206799038513123101725063527726607403955183260558909289538557862533694110925000237619219848181002268414818780929512110627662770773307098637829537378911948386292575381192867762020256143367376302299200103987199095510001900954104944378332690176671662479850075843525754743710322569508188344589582478498598456143742361387855429160372723523783980168329057747365055306387953126759424119548504739461788541592559256424823950212013350306941419487123889918135193677330649209120112502746242381955134363355182013557857130509706606001541155104361207922876202466914122782379349297402286368486550252448322648934138702770417209336007762395998593007169531909768736748523874053435526603816216718225406212688793976294733191439545103477445912394089761095755619402313125849103216307272364637953653937582624548799125496788613238029361497766575534833298557165345724450901866740291698135466100420204769563358489042312831605409167642584861531792086364619675912369123720119079928571072675631481126502584480110347530087473092110784047079046165568038692151392746215754943388802226392244407674479642935295680194590177462674732769686390253349106994875426956631980239865411667406822904904275472768693792740427995227711701292715118959317458478065419125276177135748590611586914866609927088790640055502689646481122871468015285264940436525296226061283508500830405254188958346399612381149455197778658813221602214628366808728003127749278143369222823312944949024770616044913797222701842297654084391420915242617232451297121638455251009401473702950752491208924435225283881820519289447055796284542121388789295927213856933378618305605652318133000653949828419052808124609591100968321240340132105180311182037793232614172470941150887021844304314260034535562446772197270507220315191096148574891472389230191749030534638013864241399483102752595506562862370433307737816870525558072931147482772202211101006484303532168582368466055884102259590422538172416443105307200333855582737845901796538863083916999101636966015905082298820309994399101599910992103827663341236015308285084765371824931707745391746331298389429292951868184455373223050305590278709869477004924130044349305170578137131959620660209380301206639004504752942678564107970368236289004167783072414518768506035265975359802947635439897889492257166589518510068553318920281596716891381171364276559116626134604869974966887895278131226843098491965975759128936316986082916980122723751801747622043379427381133872024882621321550359833513720681045839213599260138084545530900026631885479704074950249566646485450800613304954886160280992487438562579654004359796656598846310345795409939995478385396052256707907398537223465527737402791895559651617751821424120185007596535855589768908820440442180425501154433460999070614039740466536436710112341259235694834759929493803573448095682348211534860023257309906965421768246321620560632439517221628097033676387240293883758184696556304454142789373104426261651256736355845035501665472552862911761094610560380858225603465816064717915498200623614622417646515521533233887040586305171098274678833579515895942849549786385725747362789410399038259294364758919171046107555123477999881771620306736822714896609392426626904982680870274972185432484730938411572846267038413957038950755250316094194050930113115329818003112939426652596225098149648689133778660769046256068347468371153493806922977772367100449346075431245403474592453538977722605381555956400311919430392691110415706115375207334181565561000861040801480843963684454851193344255992371127340779901258089083811786867543192630538506869183501390470976533035961579356751790480122909084936319599984963945653684992800118368703357472864963442671954451669516885478514214739878306718176510364419876162580553848549585038255636076103742764300796486322627345947478421524329830208633972679398745525648531922857466820561466509165621093449163917681507508148508305393925894827365823979177432791679630976731749552200492783030424620933543479501217292652669125238214770582796351881587889025522834299657673831655710896643741273548985171779368729190371782652008730895192504257548674395621389615418981884718347429349778109439598851173086935416197060300627229433606727026433250340810120689966165927738975498033884718660358619671193029705233757543192010472938551787126967429934562521167930782713139489456765812758234943452258160799025286233929532466704546703624445045130728748048326186798714029575270877348024647289591713978148663223201315635394125046705331420972816757097729037432175339648208624012781727815388384299803999424173460313665014152914216920574603864270910261059109999294249648417276777598536486115102087757389784654834551775328896668478479063519971519696270677997122021584113175012575882109721802387283604797295668944818966543349551764713071828087681442290049822803856612949666237027827281741158332263319793456067453728140179365779249715197893900759165408939988263284548878354931986892683679361801146118897992502905551057334587314736709701449298408679426641415456962578115534987231246129268325998062498589890147445174093138577312819565088487873724179601765846449242491110570960815833688614287411502813882363578189473634073754759495940206234295489889773247176650934749142426550549385493397246994946334911528533170438058707234569027229167958008006997389406960106768258756429210132172321204881811243341535735324883423985019132563482760761355295595480226365450251308073069414203101493230171822683299266057342289395333748923947794745641318295083861133557554547813173088840155416103154679311558735225527985043499179958590032134680899364452461425242797882976394727869750194075822985560430455356489051874548409501795414094851518910216927038785047821640232493884222456320153130941137167867336099516219392982843274580408070821129943998173093439589348326199577683989521695427790626787277400171393375542157532178411072973603546694615291553707638363538211894084586723101497789806941963130076269162854978735360383925166079287160381841753300211955775736776245159707697899042424364073445533226531116680301835798196392129270565283322733406993441742643944584621858735817823905990845554407878067106584467463474968349996458106481676412821260394980413971288642225383108814040995607818950449629676478528234821086817732131545570268971182086417012147640058293248985732384431434772505850920535719362066958341676802192650270352975421464126342353057552469565147962313330077701877725494482395974859603667018027396526760449140064585859139716202460417879058354098471879446269803630009487701033397175416887644329750084959732766756521280879076202158857926112534687231574013674161754687601096215672639673426369148309073146215445557430695863972065717992192203481026122229378841138139745608228951565397408784048718772292923025170054550112763333554095446734192370537735331444337150047104228627253833993310634244308870573562217305694826665982065613900201729839555729336809823400108464352790753986582838961241524547875355131538058401216091382687711714974604194905647015448074935973330284119498557855012821407776698599487831818626212484216797685489855298229309758483722240281251962063016826966047987138737301427645309136330689832789904189873379478548264222980709390279980834748318067002819453091022348988267542687496634794217531866439571843719314209704398600815789565949256396363372721882153380678439982767087233984273028450813423883671668488751902481469755889250066195685178904493743009080375340622001667055935630525248596811257316749390290949504217089605836320507588410535942580611557556433540742919123832875929883301555392332721245250983365505419524308860006255916454543452604649231329879373433986514968943904156643896825558896971850396225506969864420876184396054475385620438915106056566310299863246108856193410623565955215077311703147822560766231461709566821115814783960379766661099427483283798384129632504288266502055813353214776355148161131374044121409731976395451994836575574378945976096713003983500658859722044559744191169775637521547662925191418903270209190014448937679349152146986668679020202350553408328684977693260092220738305091024512609708684082552087559019049013488078363865582401683492657158502869670240448389724644073526087806662813320272333762446115883246408745348948923898137843106624584159645266553924994768124917602342623095152001987529010074817552843928499198978754894162276176649191131535865857683625523776699573029769927673988322232660673548627769371715416238309710671047019767154477658342404958788115681674254957566701222400451379344666560353982289500349293148674459987008693278191290881354382317917972229483044062309572399724591541703839097755730126953745122943377709307066566457338859068380434935212126485349509813613143669423821189980757850050436255496093392951633289025088998094200385801312581884897597607680971259831702065452532891007092557211038057357357104306329169789429221097129341317108654912028404504232008604310334358122029242980442820820185034854927112651277706458152302771682106951910318517873019684576393838087351323920093815849727087519909073295191567888216209706833761849602735235740028049469118798401843250054687398139019243369938559650213384903726349908217346185575466778154147915519001140195981837536392536632029506063913915292800389932844175526966708323516890246006078331865939873095180776719065621701557905127440871600252546254153507042005319437137083702214283319160533025180950714488450353615178951675206657334340985246295430266291436313225718183907454465402332487770220726853701919033946344056560920846796945788848529059326541985886477393268479143426541232851386917403753400443983789322740042191975989561021243903300038087407172194795485029764622262680230238363308861765685157170714576982365019382927721712232193066300273897620926665064444853435268017466097812594961781950507103979303734430190089828354141351789503122055067797652299124846298393610031268021773017795628298789704113803130434047402297902281991307463804621569510374171087904524848507682884533519533390989145178054383851784559085016528254056117965009322785064764117018127245049313167033609922495839552182794742989091821824913564678914046956583916906430001421988022655822949712450904467599713513407894308668688195066846280633277206209610077524964544299528744194273365911614998696561359507694522161290752715653382764317771770766090149119123055760105560642979403563806921658156579539240652081324913667671856557912646739920220775402302765851482486414074446635881602045992360234243999321765624972793253011938579232338394390830354792393132892255912821484860903956704410932748934081078930713935467553527159813931153706910790529066829470984126229969072903391248380352645689614651329368727915334410680681794146402580324767972700621778778100810360447102523509653911546367505788705913280568118933659457223642657199744694132701538645261145024526362410076210884433435446271931717733970235403398260924542437445613933336806089449888970535511737947216446246878705855396805287858605742954709295539690611346792046133329084334435294162412212962748012912504022630542911344038715331287435511188761955461949253723771830499480066467786572971652247218890276033291381264747549065583553800490564861126271473206611755381764664274713032391557851185943512896526234847396581229141434199274787825169606851530521236903809717026620570405079014808478793164373983052004636634030848081719526390132424006859010298852202570661541200742729395080670713959881171807344204932672051305163419876921778539792983313066168166090239725428863404105737672554630781942819171833643138793725370355173992977511805618544436589508283317431916308761132748119637839164324817454391143895889727496521669232807790240867597629362247137115319716407738904583865657015195186852634017291509264122214215262312310154595094774142546591305171940359682066271849871873028020338604383243271266384148119472878651407011357528048681168817362326690574826142026058162009142709827991354775090789117403861435961707101229706662015029224476360239678108705740351384592034327297288219557567432716110808682272986486801102033581511087246440837154001952258273620290909512020568924390554414770163456144781018770547765418887227848960903153155333817879267046446301708532042628861509489228544723143281645631286887297145735799841283170326171841439550585447540900659739765304738980664398975208963693994191757890527663753902701753686033879717936268124786096930161515785168234156639913959212614267944488319557147745947543862013944461364854979988940300894771167124100423540897160787460233889670827035954701273410153711798252525227725654044687992500462985842154006944674051580150483453506904456550175624754805984176123490978102549213425909974803067841685348819612426207579475815704830970675857071355664223909249964283153652525735206112781160031542322957101489140807104994281776352963763373468959337422990019744423307361994789333823051228200929510123936136884215053850026182160450780005707108629432098453620063247873549827149010149600647542626268096231338427279572404517791502394654640209136216366464273791711162384178487010938116785949045186181058507251023018670783200436858901418614702797237682792676592039796142454835137036770534390920556202458348131153875733015643728928431364963088305746959193443727963693133845846872153488264319789200669578860604859747364167641665956839917335057668915221852181417399409824484972232681108132075021860455232356358739382677376853494705606668210971553431141706791749894589839421039272451425418696333852451879348017331837895619547931554122463054080731990439165844129077499771685373701961725680283902169720668292193697737256021371840309302356318196726903493902779233257215233508076916496171988342785106124622761635247584631529067628152270503108301573217100636385815603575518907595567865605287672881783109144503599764651396999296013935735451134988864553989613776660828992192310710780643158559256505391422585330320011353287758953298898765386243674386274941814961844628007550634924830639903824897060754300122419273596284285737708477269160868986400442489534796277864357857000732341208016425666461734626912871771562144849052392514463934961266021078100251558485200108013776357361172930805372115534531837858894858388520864445074090891475153268995493528704489641111476785465453607184960982152992002323202766819674450931617288373979723124789260907913088634505041976642801259201942299890748209437807844179226127018510492269267639515364442682034295293824638550745703633884923044908784810325357775178998666339378874439560341550435340844438412792020898148234563096669415396019865416109995340437555875881554944239818469313881669277511758348838960562711224962839393509134945927158327444466433137957597452009472697922413112935357430446503337362366061601331469652300426096374466493996325976717681518850547305769103785277451086059466675358392809974500551447949522030383381442757864732609832424834462031311738141664811774646040976419589419578373705644362604114595481817524334836927512354339330265419613845668798950759185416822550348485180821210492567552263072555218590207375227707493462455718057979533095087078333039917011506802384445018168958450477974012740012115758986593477780064683112482841350008513760396201155114513136763645628450777933885122544010316080398120432868516809185061116762823567589738485197202531162193871222058730219550678053057273233224317260181665181154228519000745838016809661689159504961509107730738723957429572933903556117666026498755135704904164198005258516946472807252559422967437232345969456559353434262253611165171394778978191032073682972315579569591100524760602856940095042884007182778453085769050513756757856178729772889695872811951792433567529819874117173007352648588115378585343181978546392826302440198981156388309797158534826710663817369737880572102963617909305702062704290979117112598124805923081838398334894581222841188179045631425855666266005726074088073059235204053875588285818446571910301600859315537442462098625876190549893287658682056457263189757372676078393850941086971942340492380226854633288292283597032540519051671279888858436611862666336119091964006288264333802769953819758774648117825439834341970073195777188958101833530493413032092692703212870701388049841358238331902273608641232095347386371630139740111995395795038761196890178052981134041907465739357771074695147783940818595288822083904003432846829728959154975065725067680690067336107412270661933399205856666898415582486495873314150296444793459847079383111128089045854940651055499927568348181044593741415266469516601580790226562352447085768536524678240884187959136092280697752218965268209252548916822202932159186710128233098651862266034925975326588325311928435407210887046816823104343870057699391640152430560518901415810935041921664762530070553764842418937224889924614447879972187463253926496636134847843290854578658293416747860865662001412393206207165357779823366942739134547802284268119840395866869661229406324496664359402307987024112334093845172711983674904601204440301019798545436928402276042841351369980273466454389576003956700879437155298971729840368134116339635809419408401745005702818409752634120537937012426442698601292035504824504743238869934749532568633461160083782073427483117981182671982760541599365648077816432108656944598196626887398669801228116623818195148196468736185367926335094830712784818271996301988042200507854976827834600774129241937419804953951202850286272403081267379966051705682004179404093886108784191592434858305672210095965520685528722092252527903419077090933613127939068623357994830493631585332393593603974981738640794979022325759883224146801913124260227021714909297129664483943249688654064393806838166216485215974504695984762434364868178519949110211291656562678958916551116214443870441450748737491579093516408873661830039270954714542436631705388437715497905211082999602541848012819002871184327878638380196111005968568778058903984866887275078443160383022454935542678834475862535348995271387171762540808708129033746871486665208657994252962179320299474407885727478420106331964144877510792272714336444540235132751116328280558634639230925879621871058912896818935518868967356807194280500490502619714607535189231259971428883188376164738784543728854213004348725953070000645180137337633820488860713496197398872770808675327341292569087439230938817790155693980187773160466190670771687214130654546319339981592794854984560804305451633526198063190807199910054532949245256325148474715219723325474076686971186980798759091727869679210364909299254711222397861651953233176301524020028177719431580373481744193656246465511961156665138300267539353153301022087311252993689529092699492870358499681015533427434237807519136604834318375368477049026429642192633790172213122652164542284303215306037229297302205642587764401876789227698293233591352282377229178511745661967692494781273164255992748927605898142385706912597229825456756761195778337048948032042236677643636590308864785688767622935091219759164824476789761864208750181794462957491481741264473473913275262539403338750452675640631587767464060919106988163545847907666254897015128818362469546869496356582011659966606634506264710701917499090844408897244797044368225019989737872053103934099074834250531685898694590695791742264894265858995643523709725506817138767664060880946367626189442250180294216560531313207572967035890818378525327571499111708471325218657922995114734404238502619619098225988336793909880510984070936896293438175261605951038279536157719981278044655911919172884032638060568729191547335720003240373311007185129332458061070104875556173315647310569558904707685397080964416016386646051558626861111689564037304608074046584849466310883994139242925102683762529589828081260528548742765175450084879896070849387152960856702753362367922841915013246312032974880713745829195283729547571241302315710694644377547495239871548054895665531054281195139787657018098559867138966127536010711168500612026655090933063138242649453299006518574849696688626638836653029503011139291220138907077866693201898629102696929888322201449859175400733754677542841276052099041038309849682939853630455864470586600119030489565698007357593379748334956871555626167067553983067130906109552064721962408978501253092061698629619170591063794151820628098842120257622635528091024506811917521430946370237434952536757750937909840883952883446770361217641570085317575183212790519431872606534019415946007417039148489307848844206042929883309155672954567247090146822543099505471254728839471967200950502412492588291982446333231105095684476071697430846205817306368548904676347289148869685806696543843302980045250658128313879419660571411674072664998656348160330414875937534433402053574608616773119674321084326189181516137320184685470563482456620381663687417167000027956457205149793998971955954851297810457674318547823569478749936001239010878593308228929854442484625768733912573482454905379283743771696329657610680081580117333115153424050797436690064624605431353172467517283918966193344706658428059325468437332738060214543565614038782911988124179205656404469901295858638392895754186819834179102661938786534049704557020436885417344236624397045433351487193364238593804573594323042904771720359996498554171829157922315052952586472169278932653634779729402165556225209976371374440853933581265168857129095231183041719207975590522157122464180572782894062266231873584732704802757252370776773444741486386764616302338032063671658733295553316209370594491841582850622288183083699789136353447639292674262687888255546081029854155394081535249955386621502481530459421638347813686323895182897691943058200346870881963546437822621446527654661991149626955253070237204522903754324835913193915830552126089734713547773528462359451456876657518785953325016739351109700667743623961943079712324314156197790066451526394359751364506672775734156931151199229926225334446939357490958415748432165143900618606709609683083198822099822879762018106982451892874713977125717996560593939431711492256893125546958295070311313015431357277594464186043333844099755372332077967950731964392800279165106306610716736699404509627711776141095995589126218511347028401196187200747764268981578368959864531082004737784063656430806521533976593267817311314685301801649407187800776210988401813574894696702555992476962302393783330517505844095806351884457879045160467413183074445562087846835872753778477113639353712214072523757930433167812430741893724645040524682951552673480849946078921836726580839828543107808893767019880411492436016006095410121501347966075377393514369181317741324052229165750799264257899786223666785910055647511513175973195941174113958052220853102727005574868458411314877253866574700323293562510550989090474491267432832302218532328358068284995114958776794984659929567803119042677624047941182732504831807629025618921569517357045960005366856801959671393558002590420493745775693894272143284163060174785806699806370972212101293735336466726711175557381555235854317905864099071642764379419634806540645579959735502118749106036648250763915317420461576214533642199680344958587394934634850367537533459596322605536068384280947411745118127205959384102428032571695858306593816181904463945913007378609985687983713745642590910480035221808683846555283432116042168374581956862133238525547616393086704512443774950667325495938851687938162040949764123512746421728522926481534418293459422895032274504160884960481346663329320164312951878312240467980451800626486543260289834895760165539362918107645717319915636645980798864769601774445208158631329006313960167385903843317168326340329863340808821118372144618352543335708244480262958008757421447424048984283040137178079910649527001890818203906968334381285881827650785705982193025310739794828762710972103337701995086801514910523510496191830823792841421808693731377025389817255354596803073577574624408209328020701226446895544499156499186920746500652931861033795167822974770725858398149649985553877321683911533604539454425855269640583138195482706066851695239084670978233035433033121806473939249503654137476305782953652704401812450692164300534960510854517657237807313440515398952168876106947608772417373208181892406938982486850893363457908660793367788065728869141449408417627272899810287796962824504837988380460764059531038876716231190825079780307039340879572575250785539387615463527732870387397122160232192528651806975311984057063010125388585692008485097394983117483723820282988621506074127378981511790088208088310296386289461063388281898191891704150487166453042604355290053369705944171222112699006246158610137871329003645053219230071753972481304272885351478794109905462730647806780631408081997015143858661935265477278539286225729980253834452746998789600210664202887165204087799936472217568353971682906590040679637327936887570435690228868824080928058658620240602178018414214886847858317384530264993516752273141892458436060237767909784661488114597000140149039423497201269185777578697184305420923363146360327944280475462981005733572240227844100382992089332473128702141202716513088119553412476426436780562327666667218517332836546077002377340251666927501929806351576304800576242143671101985122732917633827709990499329930316498389257556032946979828756792121675512807474502750913868826461857289222044377806632117124690346991072609476229047027959351357435095953441674650762031658506507719514822220265467881085302142842884777519616820724235394836363595327175693226521474420847216899353429154812614978841836329670314215781917891959902003635197329953391593531264930904135770431168675171031887041238370093754168408597760384519381485588871486300601418494301318294788650591233250793116726031945403177228283984389450982922473734291311678705884739473051994132910822723076168196948434102068036855722525251089366275093088335817895819849112125198530571841221451813361174742789231912403004277278961854643900445660626694019932188678797597374985122145881746136997513319473534607182271947667450404629587828972071215287726414014970473853527021213469432505972494468804653404575439960195486134999078702790128989492542986676237530054021569640457160351610006679533624284353886596235421813006322406097236493869916898515188940723120137990503442349426651465818659429922438062070569055748328629431541462593865728692003855403232253416489641621241652663225395914931888631264542823602377557794385393063747179442361341176108112377331691551087521581917355243210313642374352225812356703308678025621831153395537068014472314443754254470438674805641291688377269973913166381005979706667057354297466333544068104548195045633984841801299601399423432731624447708028691209774188115163387680332293259704102830010969431803231930309966113160460190476019166691071489349805733372349655524710860381183184135960418992683319321374894959455369399940634609805713569203868082570649847152835298940896137540800681175066918058403219440685249472488019977249721916061702265463738756644774522867554458224999016872975071589840626367054513634334510122615488735223757973653774186261998358069591224993036304552929508264230812669019388629135225604637486957841127639200373743959796476703992734235513062963059319274844698914399131108142460560294563787894994759557956691598647791294756015410059458574948404093859472832051429583551891440211045866877046321335036814318070205252300385190789195888135501694414379878000034874645730874309470051233441972221648997389880793816194620398228221397784831528386586820574410207400133690894521456551309112336787991573899117718806864329354047768514174965359381164464791874141806402736523934343929863184149116852295059310407534048097353346603433997122299249393476205761647585725687835275403243782724251112630886953029458041493615188624687932560580624497643218883419495998939209686951982796693971213524058333841654969030085328891304941287436050668327800133064768553932318170037196505461865602721836688361655524447701606892512096180631443891476116847972789210595157012544150544594341584981983705471030123599796944314624645529505924886332649660504102294797460951151697789542524481119763235728232586048975800814249749616354957355929739039901041701239166439055627703469066096965490131027933754657473886590183483665808095294930277735231157913265704165934434259974049387437069979353781458455494378086362091447234174450700478116150704223828893314135828148825492622718755699098448413020022903881615364544628108301857494932380072793002662992559206260637692917994849517577887533681440585673457997528187765142073442517966398065473039046087545473788294581539018205829878404161261290728521515899108237170449749576941355146863422770244696642225057219137980508681754545317309406920598613384976025582395791941600624465989732403699702695841025777571322094168653941242540969799434524776899458570066543512339125779538621714235416207245682613424893450809990733982095722226930729387869630188310330698950162922967822778708946894656519511041795747626794546973509096371291008426230344374035005883703491696365676765148167635098121882638899957477279059680344651905189065295129121345836732726351479608273719318902742812217210059986636006461968342113512067344332811815725009703617969294535601754742789100696699200948038607893820146496099127741465615617814016612917740397746207763755150900388263138620236292405350944169586312302003770078917665628128686912874079311589389231579490562415505529746481026690035245447122183985824029195649011905326519664282423202946128463784688823920724262972865713863604601696334364543384354588416033559526497386557790569789585016003596795198821312325210646039258881711158215531373474921799810654940141306762038616113814796072976549358190816758816725515700177451947690074342304961330728054724420766039308167166300866653850443207494348804058173636289379347414903325739716618530233726339518717069130041400578479655836953376614007344909041419796993854315527920373972179404622170051203570280677511383564174200723214995996797098645784919703527043345552828041225282896539913344238180016296023602066861579571304758667999137174732262969407645927372127918623484964592014641012051123740303754983300842698093067079911259123404608979197240777396030960398563320213174402436027458835885114588356972153563623653409523371302321221469011072135431863955340719524332086657988315905127609335001072187970282396477466713790394026078706227928001444896226676859589199197201026008323966307372278559282683731193605290173583426470066536604293760045274223317882112328281173085402924471041991801613430605789616294591785532997165222492881105061488979112814201623721570356968390109699188048887595991485388892874826626621937166309171483936512647979781086399728930546299109719722056254112284017871872255085692063026354564374379417960935389801862229273132538239561013120643438092631096127556292763300829863481718441521538511782900011018915340973417887270481232555385454795894930247236265722849503316209228370415296740360977822194526341995801645957747899613696949033394387639238734928863746198599974966693200244530425307079928158581307939993151563619917242455934590828233628356333057054607131085584529859654391815014370814270618575391335464847586297700260662701993307163085800378761353511732304006302419016013583394469706705807662425533740199112850078563227338768944737147432663824066292018536936392843630378060635838690849023449190462038593860589591713003343315533845144395100524720608789741073118059823565233428151484203059511877497233090468473294755440218707900361106171630177780417846574370338398130107019181539474738899416511899518684112370017046068814814876025333604214288377148329708005060842859543864765846128013569183627329612241636075366044766145481196079201782025146579441076799785385499704275345694309538103825093215725865406753264431979125959011472109328433989385678166773801524725167879971894019208389490000191104259369369443326639484783685100481166625973787572497882933392314412848527591827262663111251481452895080597697621602351707131974712200765667868823243773156649564618648965457576521151121255111206870576824248463377949659027876921209197237502974522826215507037736501562109897731128274264843660070565058602257212374082754525488126512926784261405362737567746919381766504323086969472255549312909669363879654446075008715782262983063806125429985146385003247156641427640291684762792594727781577093650721303606732283434338084903467395621432968394182383799682773090269485716432154646086812937094104556733499738807795518582901041441675212473453521619692806430080255960038790665295326037843564681833562545364576832694140112434989520688957192383455670381271196583620069617141354317880454742463455601839272956669607444996466951723807994719097862878536399928683859375473371101547650536155292081387521375746404605050982015511247593174922906470875646415662440213234761367157445077199730728172710511167689681936257845797837775645130253570540437498269118851880346721530650836983750254870957634592182899887103715642106139196711493960249154450550533938467747992859055123238700918783343665399892247310187657433979179463198224786848476628246024896761190672782727889976788782060822332592666914305421076807830253736003066688938639676102197374267375652587923384673875360735403461813513915222733053635926790255797380801148089395508150322256756989562425162162311890163074721182858111403817233281125251675631569723808508910872298276661350645965923400474253415407020190614696542339587610963973352924169954900635692612554810312707249508112335647124291767050333517682934149642744444050125528666569316830971685766263356246029681376573580106291803145572443046505935501672014758853539006583328648035396993147634979789158559004206290477322205808742748055744240051570550716756725346701635534662610594553475052994288792312680238455303758152030870009444876937640749619324812599103238884861275538882447000010154933126304853143918458237701730359814310105962298203086043332407239034330186398819619628963215479866054336109153828172274749311887223092003769535465685701909062688971365909811554317250565487911112481830764587705557696730928085939612875715680422948770541667492297238290097402013398509483796524119819459499073320653632491986486838478551155738990459416274391703796901578680275756584790962745453487238566949554438527699561671238950057083862892735286071338159000462422645683666596728979309281212409323013495153177058953357070781891744191958288588017405813196391297926107580896640924791479167474481853616964474513706870662125265933706154065551777571573168419641431297607740042919493863667108540951963198020082530071887079710646438466630582596167137085713866068381559870311723248320627679735182455631886458590896010533945884628879165220910733454621277151843146952550033339138950669622243730878767257268563054908835611273221031717962178713747912746901532475344963846430239176469456086378576134579360687020071557655255960843492557863139334336822088968880877889899272284214470793732301435644621747533466340252309128730725368058956311985221164693500653851727029764385725547025119058796915821386942733126131576141882206858900519827381429659640790937162808038841015140693272652578030281925563343982418106414791159862711972613855320720289077003683003577067385781002525283031435152015666551386272848575889967180368375413203798228969930962030758774669661026331014299929821252814416623969689618347794993272856843814623428162301024803839030207516817204065901538734369291889492209763111781176315848519477486656190604364177908162126519012714142112900806261925894779039767230537370543971412495189616468728315130286878165908354794093784892205673589990209247041511764373234948927104339127301021934932092599858989935828759259185531676843474720472513110066102423464451626935525254065074867102038175764159046340787685766881429674816812848402850940683587699424175196519326085116817049825792994019345189119081754827306452118712034102549110205512035899436757509061847010319584478383754200295013654847042685063870309424051790014649194989336637265914062357483637315664240922131536964129235408728249048351224805557347409446140861695168004869835448537907776386527128489673139170511959678686494914576461175380802831347063934997913401843352843941696425334082063687821832231591005313107463188553788067920789806891162328456468528511482115935055400698602113472356529061134562142838353675459508332336316772577863132650661013081660915685864406715127752267987328308546365913016238066208278603814019703983033287053954761314096950129605810914576083932212578052324023870623510967851029504776249646265528534988451735883555747130634651547233317270738525309124715881060670463438520603705611345855763669927773020499178559183006444157924013235476120994546003418544454478382542896607899147674309424345223399127929401106526017451786276629430229232444534180107418550287656048190344293109440174484898455651082331302524395402422397964653442167844806200457078480608907268047781490094337673734209196186296255275916896040167261725949171561750588351575383347118750618150687874432796509110172877356245921076851119568194561551834651493471479344932213798098890168301663993403329958348122377335467586297887646869874268316254012246378977058914111996270213293336473065254255878237209293545248511606984745221944731790535164822554872139690215618112457161157740700396309304619003719888532639328951996458427587470856023247782215459484847633647238553408662351544647701744935582207466298899898499483206532334096514033212331558428961674629380533789528206069978691630420624723753911173562912827805797621724089039146450523061411688137026881922481746406246353896730743980473580419887540872426203436234175234117067276929807601847093911686287910701246565124801058097201010853472275507739950074107888445356861189963674979579665425652516598257862299582324800200516303006392326455177886096850350092782651370523103523643547254822005807687440477509311690420318668322826062712065526389415427459684512616483276266489406315801153762882332670949583349116731087555649066093159535270671625503006021982756971518682769852869104502554201182472227261535207325861080395175951078895847289013666310078512204001138444447604435037775931858319402278681133105141779155183266416449683154198081562070398314033006797827738600143535645988269384117922386677617930734202005882474520420982202022345666627649173917432993304132804683007384326095148676921687246577754603121627800023467561910786216052544091318572507689479775803972365805969399331074998881655181745582194423978197861737278528037832416469498385944776337949223619458177050758788254691445274392263913249369746240239231819446474603394883677784629924102778273959366883053568115299859367742508596311158618615486483183761003459325875532732084904171329041914083956115676739995634321668016272507341073961683731450124646250179388313401193066748476361237366741410403420858867351604076625361292756985799027182733683596139737865238741527399457880929141158538477332500912333337333216055010954073993713767551549204136923562015981856969971700071518988949606194589697074629799834700017547829567238206283489404123347959390639356685657096465310588614755604997047090468209475256262217231440223154515335641183969245530713214156891744181500633912700651087931049050072746427183186608190481436169125332825596627919277728318600389563314332214006679596864923591961871293113218382754457613885042349261153672561084031168051363941606179036275012631270328206740065563983364961818436579607942060773928355129145632610687693710382264121227320600293275479874516281731957971154819520166103774962940732334989982146589659369805184010197892770129552456927715905104269781828441211279808450168643668455352939989455826942085506983374982499698507160438498420437929643943040576673112341882838736702799292716466737434412588130522667882358464632188610057348158535612736628595776858847157582258241993901714450018010635784718570131207345224880446243019036653399146240316180305872928009318491420384492476027837539746753913239984048357087809214010032387616079569323039061976037130065073630388988198674920071746583772050734489029698010045160714025957755094929349934374644520637482871850115640249641129374670226054425826369064365054510749612701028515156301422858864039886956227053441353274707641347873213717300114439832452892096863647158291280590864923358934250333757688821819623090848907913877548732097450862019100381081371198305256970627494995137726042271999736416468711540553201290870416609542619151092977782404805665461675284819923474566774055836341610174258828718494190790943200298599187416005092561014870442621780754304400826966080885432889815170384493465625374575327424746710805892931291695093178485789498325352351497284672459534443593093744200647051880771242351842153515755828583091287718883696789144623659191218078463002279150302176900089968645108160136471157690172190210986117573047264388626020556755567926520204164620843995443213070488357114996578999767739620981048300945026541746226278958710625088998826022958354549707456702826360668652244248674921392071803853047207503461571299422270923885513211637039767771714950567385073649969305448748863651697110332987133909715289519225517457707173841753908322445186204236210101708965934174054395619580184932941461241956910738793546178033491993778547515699893318206104496488125569159699880588048674215929796478310977886508005662137038241935752833815162307135319473887830809088704536482437367522988651221885938858450373115998781374463102492523960714596950458545159125100586364471896587925506199903966089067071835585476302698830086275888911164891907276163344647630213353628130366689659280639018253032876264166348679664656539653562988843812495861995158310859833962207753040735928776244852917181783491950016090606296756082380363685873513096546531530489083080739537824370312824558332450496880959648926204215893244015410242231693694843080818704063198145972438680250640738749639191793358771755905807789084233097586163002591667501348012583657164785345155497106595956900754524370794442914874362111439220199501491484311557336030790578383248592637509260268837401868519841637895499667647672378132442020441112357933716605619607370940181695569137703332638393041800654975328846741198760757306234253974861283628747800941678106822330098170525635765096570226414224374408637362836644372607890766015069830213739918691000682116008860023089962464887559854772625134475530249754781217405024046753727236747870672817576163297852944874469604324957304430017333571459305720165419365271047493435715653111967839425953456777963307102439524517545935144067002640500500374326384546680928253498314513934286850229900128682558487297053552876196622435981715830483615872521147891631198758963760007169347758184055898911123974318648043198885784741514676077654037635277911509194745337177216758437241414216311578024088830784914166933772945925614401778896330468812092677633635189772442123858715937806933346320914357640363864450237626067861365524463664458685867277351655529611348547754450056330682609952256109686451890688862463959797081611600078640629258878387158955209379163896627191196747246561497551964253120565700005975960334306819100532537433418314907984916917706022465166108802533633827082663118568732429726476136977563043566014711027863533647724314179814117368727228489095407808542754713571444616770992786444395794118552928969759781969372168424565510931312420056297925752290020662236999038073166983001464125927820763534753012741448068415909964181984837439550306513766075148067571045789477150860920504130544399574936807724181624029146034599405642412838712223514826731094039051367537442500256022112039375735279260590341088487144162636439298335412508523990369654467240302856432941525727667556494874061563333128817853019558701628593226264845104642431353456249466310746782182581242696630950260055093828740284747702482141539945372257360251748545714202354697241266822126838604946755512499717459258223699640822810667880661100923855680295537577244639640534038937800846087942274253934433937414451380362101301978730708330095942349058614384498570824167053431101820243678634559294300134564113627535052767841803906143443594702797824849480722685552390631397076092008788828392567074619998643310412845770571635411600265062804752312463563704257645675415362324189459894886270518409655970176930805350728772773976852163916495126382832559533584269205133342083684751009488494402982380962132934604416445327746574985641871529128292210900958233480294952629712788079608198965025506519827022112752627498616109238686562757961094660996606764086522319136852651915516108734147084918169240765641124083000208203018106956763909623559081789967813242070886178263500988592375240778217676612600369097543994183235717889203480420505565780460422787897323295475375359263760802073684300464885133142046416440185404974705767933752135889644537686876498032379147888245284149720070457072275653602674561794662041619370042345929077921688939925950822499953830930027886422355190267427171984590984645658477160142199568647516611279749084235369050721171876595931018900379289117278108256365125925581382457719805891858261996907215567372917575841760632224401476512364512069371922353544828780111170597941653829617479094733377865832635060126436521628308414801343232294258586683454462245272182788638732441914149281474068483938576755814818686921003788472436871866615984333841017564417363705753814109839670718668936517222406559833183960546004447211636228438622594640642809107277195894987865403718934546876976107857824476734705374234698912739257943259221646168771194864798607132791090684737071758606664315990847129081067152414832047816426287997481870366137772681904077590871246723183238912672681662483903949432624695103747700698979075800191729064570882074203899189271985637215094405979699504749507997607820440979040422560488461993826636080452519381297967893859101716581300289154897550351003441357371155495246613448736446856931987859835460030810267779289984366921261397277626483580313243056875422007778788516656402540012924494013216443345129359648588859020541296762247975604987895138147542525859230216703807718829096997999807645599719038561650262014118177991919935267273462130838909540342053652801109473261934444723547917404315465053238993929095780722818184639645241656649102822818679365939601915089175533271852327952021581842086230357995938215199725126680241073680959619381298153496496896475773775455828622612173330264405820937373585028830031982521497809570060814117947723923185616912915580265402320089764140713527272818445821911658472534669087000337960095740652528605143031730447291074616375817865325792951863740227754977781710296315871764071026582890783357675637567485937783349910248892998697064279243613476536740375481354363603896210959579734935388047119860642411278222744554079302399906432947012906662691488281163780432984406799779696146684937982487533925917505681048688871132096326582989877596614625553256300944784052945058240916168739713862620916256930783947732981319173150726867058664173630678466844963317372311310825231656188730397203707362921400918916589794484630069262640925008957631120023320749799304461395501269983252423343039458982799731167088891083775491601681975059521685695959636494080047144938198580419441577530405238653762291450914775347879993196528885014512022891063630987891791200237400968253277131345062584770258935227984104937628005310221926211129950220466723766297245798896385631883282446556708264535069153336115507868161333295073154071701490483452431023670873754623332743184342287966395937306486977357490830365596947839706876731198027184513483456783681696641240211892590781882088360756470736895159546854884906323331648655917979645287690960760374983944158056506339081946217401738789985118324362339677268056259840480712336960236188368279450843254082486547426326776578212546272579803857642340645222891849344084974703053792680767740369897554382608454130349274466922168467727884748730178168545322893445666941164741738300298913504943879825421600412062072602083314074404486311177942038713332568798802673590039220410338490782014052729097691744007043786698325262487755827762792604396693660949358431612203937368230887457724729991432462114414270869149398385980335061924496311782280576910409623774704846957380824124873209726515723617749485086949398500485227667584909144369742666049805933561770566859558156654774811846440864788063028345396669355620684190266204770042809546323023656253435458862276043423040995341271059714595108402487081957332057332210191699746683245905660633648802408079028131145078793413287248344511107670512396473874144065730977849244087570264658385435738707724870817039342643145742991651623655986978085343755465332907334508076049572948281403986067347015379640729758516171537189296390652732621427334841522307333148479848081583406508190564433891329376777210920019077756560859053763070734592930107374579066118554999476142788238455112665871785560306319755743270473973762009087620685222944118316758570404075247534248966980414003038592787882086716295145559608057026250348854177208782103127432046591024728622210510952583359274804534358420759099377550317090619099872352780716799067130600885879642505018674471807016289080256202089332119290262524000725706848301320046757412297430085263805386444164121016233494395661237950219642165615031943410090161105674870033033120003759456906760019091496102549058335672553886646424364965945544799556974193896401194532103898796994455197974953381636672222762505723211796667046855478231807442204820068723715403645402831731109629240624315711399642335233339418755159600622945426566239881850431686368653283384639974543977455520349569358410949204624278484865374217756748754054649650694641324109590472288162604813874984903071236980313710662895994230169135239254224502400221286678740249980478769992634829677522889361070151671252819280991025459340205020241405716609705937108900257535042774538815461661563525373215184479842208694017729625635404982106435075001198987066652490454165315668133795411233605265226405247406245413266012810259818068433987057317649468791898240823807658164493186570669004668295173460264093947683980165932209902213197309865674978378397280243258797481670005335723284170601303807824872391849846775312799330682982228949054926866949358934782169906240105098857825936470250615812536327411506248197959518924817986449858533983866392823325215767020157322324402249447262711742087006413388964231431177595760793668324649810352163951167773196990458450831213560678129800783175238302830004789441071389808710757604032740640998770156997102094032177667750250610980872586005477658066115246382220105730826790729742123659235543591939454981465835085992912044932620115639561352514639249995343381226634073474493024774359010051027321125827887354509810547131755751026436466434205559690616063584905897351203158266587708468925784290064001105157574708555609021261278571620443629176308787375904216285965884963029238852955688581920514360868374041170335696758032299885299237705496944730836222140343016344835848686381660525170611152927169362536774256091574021580000915856088542311210366054969854896876085590133284685697586647193699242645444179732574267410100624773811969177707423323197355640341253229529213602856035389230252774291064145084117602479890959101835365282531051730181079087928615154192025053490493203905685842251474572936216854816165442124203007205432481847426112406100096177966362503503057067681529680444169175099157823200364386398134039478933748598713825977424134720632566186587904619733830762404000980086107041773859629603441130006386871376649968527870349675352721688785157744974815354055216561705840509755068863053578327440987056750917764552349995763323336076370278641564343683723836871765184477314223692527543967238109505257187679726958945984068802798021892096517306713412688684803573642707735186803123407945290561818287450884740911766675543871280110579723297656563315865543199643297330706321288713401176468401685774736969429649139667061165863463087560005548393513328924612981840278169520609014177281126906266076577845604053484246131518499546485501522398047259409054425972619455593539765089500164720241772076825854020408530280526804937881768990998984531636662624927695512845375017413167071071872078876345062007290927474541480228857939618464136271211269916848339293698241721659136914606497915887789055957893473463888680109788397575941914252681095826028004338839075342343522411643525421932811255220291990763303301472964689419003599852703625444709740206414042847322700146685852846573124878939629213336684613834728231029332931313999050245007779158873266289558031502466727800855038909364392934878942681513226362604723177415068523979169305615749863739404426088139242409239236159488872570908343293560280544943973869179996533017453700083859824903270288632330757641763933179649382645322495208679840265608087135106702482679268688680275262391171580477851508019597984066656215991179886309064557031507181067553061383031120918396169458975010759639490109237325982717888548009781186325386374812953902915545972992582757487414932203208672660989037003415050058766002893579409984782503272094347878939025408353394973804629942029378487275106642733332664609460269791572106007079423765631507731590984926194082810740906655821047809741109923859174406183402410956596528522827496759440764463534503165091158738310630524806032831778103628921582967539137646718957319457741599693150660328250053434580923718711860565223701848811515424050524860888855381765598122471428941917909267622979195943952095423084995457062016849844380163510227756252538698755632356328232815304846616823793157227388326563230513662098947983846465551615659503745027264966967036252164632627969109556981043776750363901194337712374405747383213698023315122998240144974651956994903204200926445880143927713585458719945097994735871890721932134258417418770803987476544196236905044498997995009962904705474503762381873680056726214206055513197024222478839531896103772140725037989126882849733503401262050303032795305227919305713037711846382923402614453007947756086525809134855082253597972635813751433137942063804988324894803900719045595775064243349973199678805704425746065659326501568140431584681417657859375285564986606726287571517658059852180338551440114886168920122144629301927559941746001120222546802539185319125303262651394652900318315908248217796586342655459077208428103558083429054842206402791249932552751186310925593348032195777046249422550600419971577606221531518944690146226817089885921953355058661797305225005137045216377635711455298313372335373194225311958830523826623047563875800081593281948989134068423803656745470630529763214873092905965624578200424058347331276250951096260729771824521836228793540988391531866151771132052575356556687826384145760199246120678184992755421192590436882523252815484745935447206684235994756255956647288234571895734212486937232714408113703365445363024087933008610301340864983727928906154495496744792759106985927829652970325858861859193639007220379625470126106595748157002002662178691875979628207844968748249768177716120009308625183095580211727022508769125639600340727521505604853834522647156656449422585538153719623889908322288342620426952029706234987425202423304699369136650288287902651726086772044676452587979463085550172679314308275079669382976805045174128787699607639595036583629839962591660463252940541853315273984500988093085600580545781309688261824954708096843144732661554424427405386179444313657936870590698965134214402179132625363277786961965968677743480982517728875715543232293780682866136289328473815293955766701857046859037848989577442187838505167360502333275522190659988076294814850406031986361672664241961047693728956412619919033319748750272071093050513261352415608668115817557390111973068167527647715598341137155379063725908368780759244892200470951723740636562154172764904883579247659043382828178497935662422436104341784518742006581973631669067280946178112536084476508162703561581494104460352062025256396408910264196005787105846225287096314825414123773331626068902662175066766223083261656075352424178387216462431280976032739116583837255537755902008227379483848769458683500106312113354591886816672644404757742996492944784745839757571595244398312190752173794985362446541178532589339797430791304263818516209745398397744009808282909629789463437944623396331870749231271923869759258418146755384942647110767179284424392258044592989846371784589524452548841871192333184906127855742112352488468830700462451129137139456384410758264710703413731215306150696493468995646494608365377536116234180859326311403670358575384806443965960654864922378396060491943793848447669934614692024014356285559637742382283029879127900655609039325474839211216874626024783702209948854861259517072468947340074555522316093234208326866177034566470582048948800143449422416634629853718507760984783486703375290967443976903133056464650289359433512603036956610371933954403948395818772970405266213656582127966111653231304495593116818134098425745745758752531509938851224319368507644261484793277327288006847523673874112079484730306625171681621081243376609524834441515485394465478837146526436707139687753934844930728293529718558864132357285746090531702053648552753794664709868648217273087633337378947270137216566295504715249268899645593964131236309999283305649042801250831268708011095146410699966540408005119649727271153776246200788471241813236707505654671632129708663428231382676152102261259628828206177472125407393230787634594815155786327832006260923065126530091862272144243085613744478630513753287769601294396166360664824027827501490768781589372941391087442043463915303183766933724483229404511038549420550404666935840145371139025745079950070081972653214841000048402846445876409294609100745267786998281072582620893283242823413036820512945218655154421233222133498629074618674790682255872998521094008759810633954162927292828858490539895083869012307995096846572817797378337289320553781464968691716891676658065632335196820428714995415053861445303053788218385182545219681073937951125441964374228869192752941590354624819682155728876019537986302181163620876241871864249024353171235528373168588621206233223784077296173665434467862555538588576158265309952438083837118958593475546414789772885054029464725866844717150444815466567299644315624782740742767343481239021135047032448568151142608835547562601861178091023227191561415241843660892972478544830418088644926001041902749350635458496288401400953479718314372122966118894240623544672693721933972653079349472572367334264907169300857871496273874725872120370656727166807205266713231316894790780850721640059563925582204447045083098984967081256365353206930352711513231498096388937390503956974586806659807629975624823087130986312108043395108122631583797466455760014370242035719514718820378365416417847327669432665886712275194263198440902830531345753512269036722322036564834868887372659237345522950766922950599287334285076317848634851770320331287753218274990193706941261780029702954796798229692030562988101230082178500594092538063105154231501935308392745836005119404037288284485064793360911587162053877739650113018262769503153613582757534576053054720177967657843441289169755845162159839734679873997652108624463135054029567836745611731944671834084606110273896715624228020666844385345626776715288587243311228301968894573699613872995761309088613269240496302056548986160288438790791944694499260935350344454042345046961652563177911186342028165419201149874208561722864748073912952617387874999170895630026476347128111306524525330087854904070088659793824643788508343601676307728366999087600882111081685218321532947543632350650093296452305885840664653747887451430099154215328306479471943793307948685035380701263268540596994237795275143531505201995414641028744799933293312561376786700017321789130683931816635433363543061827361124801399528265351548938105432273543870172068480321839759213304459666425119420250448612725108164207650096737339592792464984710330934766394987895456061374468330639008298256129390494009713088052196847591852737846786145194846807444160080557030401989152398142943091140362283105939920292146209983273156665357103993213348295369406732511887659838093044475733216727199695734144310733024258190909941883999486828628799971663452168051337825912741697497831938297130959905370685318729673590503740591300077327388461207402243827557060521348030247829333432321092835422161356313639611285236085605163415761829651480117637501603752637170914200418059810667006330175856289920120987071171204697782988942557020781828275572679596411131777307145745529882390520628995970614664953455629969251301753446840607195328433934426764590708710594151927485172888564165782797182878109904873309909383201767080375170363753291983877686997039657197891385254001097921718617934167710282632646573514688034680612587549717172596022806983010745624927711529277178412945026151536808615456790146460945511656226507424277355578514489168330048855616168442042932762256926795354663223974170887970614282869790079512204633029230751269031159419763246258059927888314039341617431038364072587798758214655283894174259427300690062397629027363971710932082271620601256532855142114494784022179512313594917154870429774860219869388804798538493047751834864840695217065294432557307115032628581424652316610891215190479999865394464055676800250402148840577128745043733341674923946122652610454641059579599895953763872801914883348709121785534718815590514347526545125759570474309284825576049351064847838838663937672507832229510689887056181125220878521073757046395345185020767142672048469366080818963488713459893860747276514437108432364209469162838369042344155571073779711418364318949444244586539634846215773987502726712893878088111155626751544617454302353326793367503710095512981909823527928752733545182858823868838344834201642433971756282336539610266078514158414482622170340381488672244497757654612096370131871594441650274182986878032834262926089693929817696268723481383240820350253233458024103166029306021202509043219168437782424283889281872951023366502075432556980888083461245400402074610099340794478757358178594789209158317821005104131091637967859181820751998229385242201512045814203553591087824850137708316346521551262704548940732022787858294159243429312422283186135048555997870160787298178900369897726212513994784295395852848723033317828649623037949070788044217506305072967902168345800266023034577841987780160854307378558277948482472286054855088221341499026863115837413071143614461380676573030278642357497756865946666917337731229263747485742473263754849098741972664937495620437516945465097615916496000584044935242124527112038426500135071583336473127048465399992599012079409614072389508376260787675098660713688960922821669652952718266228352932499615584339330059054837287470820228497250485293284959440193191690484221716506014041534833091347606288735647977871023844155222760943878250904168025318465286082169829066650934871244921412212200545415005706779682856776607518886822438732672422645062536718331793659730648891026020992579780591618578011329260202619490475641704106825629195440411191658794266369495141225137047015016880327312068869985548679777739823010330268126798522913768934172520231438672254949710047273474837191239068722687748805047790403578372757067866518355544748992573189355341424040059579423012537950704870250576329389259300291380510737302756644933546994831519088682793089562227524495827971844795043517618878187608112011713484185667919557000506427118160939609609994098636014643968437557260723253460069930047755927025614585243124765144662158466308539616860508089831925513332245674369184092166849697624261257293616173066271819177446963878835874467676011123117298478431949961278555365771036614568807863654900134537168142899589342735923422562662520182597566945772696451697437298110321948643383755308852875965097159531514755908218399861328303860502199164474993508854143386165450303939604151278635440548423833334459625552860675186227911437896139929424793856134987020341351618361218717640542566707935988239998059156333378069226473879526615849361182043142583040121441036471708226411041351574094067278351380714295350368532483834371455600980294998232907471710029054527229703976929799317657414452673599172587965503103811421821211990615696141840190543099766615661472740919080283479080817803165711040323138594540841073453510580542639303970625418921749027477210345726156484995066639018314460301464749206518725338117626224571621965398991711576258524100922493681034558924365464619565293879437468405154925136534881864811478207121285255581892283364678064831983595360852755024763982682046268244109875555122748320736353927764253323489647555293290209698826728305829685616144459795519380681131839326613276639788994589736092672013814775036442751170562523948603829023602394791734447497999563657439863916825053226489201126931367348479792058860189395064922975994244359782928600371255740871040019495762543435155661382361564130401619580464034427727343339938240732489365686070562233388267205179888797939757888503647409995922112784342920112371315786141901336359472176940797736996649711425941037507846455166502477375130851621383597736103794831377949151550300227234185998090531824046234604376292611036223238631599280770662585163806484075444685542013036118453899281176860106354648364666720175205684122979009099359964879359295238977519538679208504559099512778733781381226180146305453844692388610856385452041658816401461781467973085488296609790418387875385324342488633085157602792497194866072988669193938590507376858114124440248233950282076051836227441313898497264736738861617659596789236615015885540550089903168519826288090392424377384050276112712100256445914085340122789698714702993240352385962549353358391155300556945415072237919084307416460837777207425331778814682791226468548769611602265100230099415681045958532163754302447091555286990925877266535802741406051127279135012173273485979556726246078861543342802111252955073482161233324525505957299464955627135525896875704743357347853125537483437071835084873444415472563771527231735079596774094739357900533568171513636509714165241693879762737559538786433797681176963077064372603252145298584445231092557730708112662490868942681040420049429560007209639723720422230314783709213084707641438629926287053885779028284076419532043146521981424248394934428994745403525285543865505040006821483788671474849712716547184758997306784855889228240597552632450628677175846420979618369294781729079319118696808662395975279341299733221422581668431760677761268227144780587089739126764968132289231411659544123719633346635589214200763907757725598217947716803675954342937061367588203750520636553363044583984335451656614280553483668610639463059206785516782139145958698171718306372749695453749604394050189926153942287977491696922601294134693010710336285215169500293349742280822447357744918174366973221722201938086219929251337294338425377404132440517548688219956414132878654311242036970155336180204876996087205282514681251327931341821476575453681485392095615980738247373786532121332393399492560941880407698733971695426292132946866989574025662958452817648182172209473232498520397530517099444338408516565492387408816787469756995821641753240287142601338992833675464544784575818034690220973665250033775273737487328344473073970990916915447806463416437342042785169781706214410703983403138178864772866832165667408994347189427024435583529938480533223387759806964870451034814759415721670385793915910710434043230424064307036400909261737395374337546437183647562274177074435023052391392925769857747545655744109451383254484348602728059159842188107753951426383004558568142117083809504067606904510388821327437580851979566340308963541834504960377275168014745034154478670928909392764301025431299099590611975709461578854938851929941727128832537237601533871226705483375631452453564245269379610278550778321897709541334386490248446080235120174153136095925256638376878039292074740940152218036627556458965514982242222394970479991963607774159079514590627052867302902720214306420012929988801645973727016483272411894673517555149759182939790798321802127561841071497106052220412488245796766273489209437059962957349105893373405764312198402670923016489464110538673590546662689648942385026293530751469690757813225448639593611173889410604006487456079033459333682955871040645438901143065282479847831738348863891485087322342668203482414703629576837024504943172233959153724166730676773307978336023927667816416302098830156880544346521961860213218223287887688116906981333314181666526271244631727898809870574318425323307190781866418901002621639722719510691830823007887606829903117572235598266392878705969720183436632661121399085187221286372723918883625158805588250263166075975117889100226054927275683897008198535003389916091254550644199299288364476328557304306349718871300405462039236917418693834867538281793416487149058541654690458360679252508846621361798402609386297939313708834015605680628642431833834609021514070804689679213536192532394156093580023506405033523003996630364128004511905974903714828673080004493974750954538077817174170061590770527717444938388525257595771227912751664279268336757182541127192559009939959074951445175448752910640942063300313096714584721504173372619508129969161834547933189309134759323132996884918418305380140100838490788063088361663898919524184521341107256080052601055390735857356970074182550666823461960560206145023671189819082355779117461365727897417455502031562980391981631866085056478367095587336567848253417521613497645716595842713265469684047702825063947729898590669635274122249699779533355908644886164044789735108035061559056865164813082374985561285830928137371770786000012021688559495263232940657525599630738836535213140061360825121995763256232397809998947133935375503659496326152471879892719627873403212055851674358880565151091965894261415654425720885890733768888971352601747085167575260832457474414534817163978823650527377602678409249123794281794969363403414168360576958394084403644046032008106806311881029351216969933969492710222762979563395695049876811458476196029941832870612085823383725007604183232287235897131610666098481713249074070377985178749334766513585167414626488550290441138459213862753550771633415261832968055610005734716014183345827576159673246871108324931301784730471217997783897783992331258013695769544805186028653941069709481421058540553234064639327339302715200631045739675962394904438060388261143268099462728734256349241846841536176615685942032294208067900029579458356088590464711490282818480476865777208529996104168029486042586210416916111513580869297681595133102119834844455754403779618076040502873988146811478881723974559069513073618769970559931002867854029125991790037179629069679303141568855908949063488203414875516808322854217488946369736841216958703621775248704873421585706265002032014488457914722140234382914801378142379296366572634930536744862962915791800777987858081618478399098267376648991708488787386757117921565658881283550614355574848566461063156532776623456519333944158942180360657233044899408489585547265868421533581643095129421435241682076879780054191997324593655331787746563486138442392560622680048105234393657912114424662928766838623055596847995259750563800206246580687862109402768939716083504695325398054721607550020091025460796746053572018631914779420367660334426850480985894670652854442083411085864533554669554574919187712919802110665580249783020049549862859372395644034114566500374884470413351503868679771996382694292820721371431531556983548951099846843658411745362966860719084882936128519648880300760600304361426923047510108871011593002241156259570919898997055983748880590932202638240922030014075211643003304031369515242527189527580208560820068220321788468660449076942919727807334853489759896295089398593899881833458213073069799080615183892733744363922891514182448693061605775045058558510789477276806863756998475685377388490794193046671877902378122489393800065217460211443706786760335708170551589188125500668554306366081935921955027579685834823055887218952893324206826345280025952976178232536496442226511500418521806260302063145713558661112092364785537315402683878093249414718472052421932537153209211649250131481711840024956366288880449936780180044227158137261218674720117389323042238235247199688398534078264855176109932766274759730586944529272142664603749190927646969219305255159427548485159800418767666988011555530584112279956520517389521955916382339673502533512531690363108257257196675572339195506036334053258224582910310477272979242841632538639180896595925015251855375448216900538107863940257975590745206124638494465064716487192121789649977645541625107123656463671814191641258149708983483280462820903767298596938572207824358831984953652478654277267496232744141912732791947812934227096695288959105092333502847831036672011264500387908734792283176957830656743717942130564353896603902534563990256916264940199500431156444066047800723847798148812633878580384224397029493258230690653350785221881898600371731585191136470014850575371083297995058738486090667599995124968794142179995655141305929871177920246906785647825379796143138981638796441080171494509359774567966416659602151793157882131831535061389809065518522859893852065286048274090350775463479269537193319178770931286427076063244308169303574960953664549669315667793965878624008301010692590209834768310723246368501699282488408496670875767874660136167732375962613990465821966319266627707548277781665391690478297784755142056127708057283791477430769107811122612889536933902676770143371653770241283600494021742661973956456205030344289912498943493440708836397483912253521346664564658617557509232514192289958831427155920969879382094692227406799135239497436021886893759971755336328377293799296269385541475016841439865392086611554545053208459408359929319743983275694046132483507676604103744768015884297983247808562564409717935835157436455839116438871802330802413233652485160426639743967913198166385304267964139098743225148083607795420900819262252717946195560682815163043543558503327036614246191125912596327928712220059652870834154831350207430431972327041189972467054188584139979025570956934635401436702718190197107304970095029270879777808774952358927215630112744015899498896827489955243272066654737499201062612971725004727697287584109507980987657138178436573657415855301750599197434485506973357772240596724901378789457598139224570999307989426585999107127000106945678985421681255962293807495648489485871699795747550667357918191779074633642767013181364540183075749857161879349069931463231306082147830363683430851029631129427680499658702459274426696176380948207935061780408767362302118324647157552876590514025965054438979545877360138143044983808743359010842322460568526280774900645984364659347446692315531960956128937503196175274533341773355434567322596030161825924116230854937943763677703689267565193346943009105971075402374301495480893965001886970548633415444455698799016618412582756888794487997309941451877440976382294270356405106187380178051192354843836295337199020701641309922894221858215558419951639687860199361906049670624672077528663740401464786441493589063506593767469592569121652773182461749016255518830655588592644480070497069875532437837314625019588204138457019675779939869421837103981164346822992181649192597006251551142276483668392703782802446525867450115809229445255261394891864819624179849223088783975824920945344888991935682841445110915399080048083176737639238463752115019923486342311352172351349578931861284488506602963808671400272663242987877234578180389993766866154772574579583183930092816000409804267450017939933743906166878038392322073499045857521784251736849778155453556593558660554679235931632228603854761655530272238485843890867701856310076587342825116807053791935269378323905955542684559534041215623476446838079745586802228031719559204318667874202988799314071701083813830771085141345076392671268631192468886485571363713558364116033119177498051436450087541348891069420153356724339910952990186170172379677801340255778735943182806931696094376340039549043243617617916198728487000489832885658257420858146132278820965742006049311188436957804919385415639882225685856847864855901925721946943237531595019291094581505241639839011098531978498214177959350116739665241069593834057237410156888646718571364969343164632759076891370135634067000872292858836683472876540477689624990044528907298771831019182823312211739265799453976996103013588394504291296744819947362269381741305719506458029460947755880271440679891459865427060804469964793584152400161522524730116829530065185612737280464975521521630182196800450220647859185545307102911064417956861886713854988850606140432649732263987553715306813150280419835474825240158041125772344934077984652902563656411617127901388299083615040936344725080554456797351402768076477575829045021531925350819513682993524342832161708701946980209953607473839189832230763049734328719695708929723187777121390060440328654200691438121694272258929237069064801413923277188736491996781037817410385338034122819728036227199502392911459419370238972537266704310201061599103786081620676362283050903968506080757309872530388859578077945790288421293188380601355048549755936618603066445416609372851940509349343044348082885793944791233050740769217695127214172147053189514566726516931826891555035903122191433900114589923506327279711168347830465818674811780530075476450722942199748475761125060096206819811978882737280556099873538346357686075625513696625479566883356159335593191564954663738229564658814737120034403465252674943344294126290132771710220002211401567861324506902290135234275262741137806886153978546573130959013010640417098650739196787146173602762221957758141589132413417727612552929636099386735324342234119788332414566702775188394187331925727633578889883380485326200968754015538225943834352427188928172993720619958132063687410264104340527355816918645468207420511853228302199008934340698856367159097456534978800593646779143670966296101308301370465732156382926557674827761270174759701814736617118453333364022127942487038187603224843055421528673467521640915142814884248619152702998704663743454074773629665650900642169987870037504263851907388881561518502004959677219348372374169018400309136356194451392763424613236177201438489771578395423734698763623388932425149193052856112282591022043769908637682282451658029695294000060267395079463401366688014387492406291581992346065194571484924055770377823974798503569760924627175744092415556054493247408657311495349927999188334982960020707817913308253038778877348326095101814537217457867167213116099309855642504114999683578587995385905633644832651249533423522622082821947169598941815959876967818135636200327575512402708350487334443555456311273621799241896091338925544145629379946242313467000700533144594936203590084140829101153752965720105958949487807207785130374664235258976428488023518826315940072844988624214199242603716985901656916467485492065133789711340401952752257979650599684779312790381798583375135491862765839873135104423200502865114420595085820481910565422361646197992940781412255432240994573008657267328043796292937562580338599884909730068966525214567330659910040946180900096615890879579749765174429595672865509008031216436217517862268479571016973837683098988397933656089833037689862739269847274541064290915221224553222760473332432983185022457123851286526691166056828587007962076340899509735338303384035917605164810639312214224260619921520931491481892217034148860034720993755198587470853044571665804479714579607408560991289381265419889557540732221902398910888991936740613573144371737049116517068860276880495956618773161777463170087371572462790987756708032208582358675694880057060469164996155892149033028921870156064237377452339663915795641717019291630657787454534944293635306914940341964556481508830027076310392591169456147541401450224645256602605370962362858018977815662791706422549677377475620576138289396549992504326618409943784430201094954202529142237448980091088496757249808916445454878005448897818959141477827512845950227998810510489190498372750442511100856181086548519130097517846974523126215593490340971925713399534346877641286602933489992456408125676286983145116286180769720419577504521431248930985791718430217647804602326816971774030273951662015379015433678785769125914340980966474981825217896589250404787986706875050313272239715276909735479803642823089089551677229639867063724820384743924563221011865187646349930315447441160054659333459218288450393977935182272659227830422863443723452178530147556389721154925922429254632057356154149265187633160754384291147616670546166102269220496651493919937826852116074131103762797133716613622527052768249723696912839965549914411052959598551629208671710116166642058291647090711830679998743947880486525298265894914602013592123895546106076574602181205241505430095976418784876281127652002414230937027170508732831520321857204729322968671723944126755690579211968249434779114229746411579880180452534749876632416823225109949275398237420852811962068523483822886334111969308335230480431152923164847577081363141076509230542756821461818636589755831965576398398822824052187852261556773739800222217402293386075204793791753882400315740162843717616530880638180473680247355943947427466380046480580966987680288849258821272982211402549373946488298633322016339831875046661961369035833233741163847411606215892446236583376858885165700437343908832467042192388576029141558386627803221978179516753104817576725456578956139812358748600619448264628792002229482134359317729702463227316938688382413534129620210489996681712938613181222223804280095058337217065030564345919879486748042744340559542102538293033246992244111376272042418224334507936384636303510739818072210945909726929482605940777678099886969567507569805248852479162750429661723072163805142038181480032167209915371473145171871873590346324306796136150394021617201432667771591472385966786005669639687596841281425095195080238043330070721449454999153255521449362381198062953306415107126711039957804227667131956642536225721666124643608909576570903272909363902325545191642739403306991042337789844977969029292718568724176199418022247990824414034748685547325759991359587948809656057338933777693142239465237178297986716062597224668347523343089702777984895592410281659610866715663218039793426208525008886927005811592846884032853212903978531813381651542882572218886500546700377255247172856897996061167244458322634670629348285837622128615673434613501051500539903614734451262497869496091875218705369964479576493719650081289070533072072299907820939211084219825931981159886843854866227240487053262554130522391363435839285546807661608769220558860379508506752923302888011861207807309413144602839674021624491169504156766431432500139682555900081221158621854471386846407918401058411920977224217322990314114553150606743720504955325499130661817829893175385250931898303084176791842600373734410784500819649345976810148004009864387756724674614394038159936911482986705571303584568434506116230106659595913704916335503589296204661159794646639856351020855130424839762790630678140229703128668613349586314282895683869136072484780446167326112055118376741611718654680990079175054492386664660840718634096174931645098087965838614481312191603820263191728133345416995698115647820454565328984743576566123440951079383914911847517837480286132450337129147416284735194547730272949261552306227399460081013964722727001278839702834281902955769483821615219461521583702945510896643503795818951450726775448835057609585803318232323734866966847312700716461403065855663855789008893706871255009716516650664349458470078812262062420728777158449258319764652084543569750057957900564295525149253835987793290098543684688246819108233072565847923884143971653616916764738229555023979513754154829017380920326210564774701449476185277017608409889227545766869015331001144285604243204679223840038119623193813489393383880809005234608513061249358779182197946406297164932519799826271364892107333777007654271689500980293912399640081218421914372578727487119854603023743413453347102055235582836411614178290271251881544117319181040785335199229811199736685033059601822806204262828930376231980244424080131909291727666139632849616374420204841861142757367668553803424060236372065815818067771256914786714262250040492183994739975390984763262031263627806127390083285842396540640130098137292392544236009599657829960889026405705321292826881486064447551528246197226388426167698460252676307017942865156176033002981038392466809293279970816434277012239040643531004036133997441492935564206793601384800828366961651894620492262248741407531636166594024404398040693852079948621477273197461650273079550609228793206741031063244233214971048683601841876775931022103355688174921683682037216643933375230527939198254091976318429791155308252866257534223756643083313038761861820548116813360663899218419806880364112314753842423781393598665711370123363137618174330470024996921294078209115475029294792603500957275150098697514575988696934574659300195401295323394209081626230257646942334447240326479653560009133001975532610128526433679944061236801563816437312601433518623875394579901101287763869897928584349288920893584732614783203694251137980352785077993451666228500410656056483052002945966826298884549402532070897597793485670747060582880479880240093077918073550912048553595921284712922093994386946507099982698955839135081480094292872087070988690610273190982170381869437565867958041909541955031999665281147251322687458540677486037364110123439201203965182917537334593379323032322352949503724606500049580112864091373780462398657590932195999794681442701033986962662978674113724272498415291215163760052417631313183544184630481359429352562418107679087615040449638236601579027537550122970354346625549321467523793327180227273116626251032727222593023246329972007812227522915972511724050407491445476498327226324768476595970823872055362594835275210055557211723404938169595146629514743994836273639709784198132319492006675368516791517661482649186187348199474075816250305098614454952998119063148520335825106056252312719150594088521583074474212703531953943232375969526911021673844406894364791316262074276238057980750737890691411442835048265895160938523515388578321487576975697677158972913089897391562584385659476969064266462780804654210595215286586515976070952216384681475951939855231055369902072664771008555193219397935042029482975457470295785841154697697545753565726283700313222560734631881816157759034274667517781981595572786102333647484015104759443782528819324616827696792340790784056818539537988611427113509243607536053836899172780518717870635460781428361874858075145229502926198235545514105374431850609657190166103978363916995579424575897360496185022619333307805530055878252593642603986624216432830108063469614856087604249062044338072763924986662363240646913687129897994934595110620036119346157470943859483384968447643156153089026940404086269951633373560485009638026411990423975067075130337256172530183931513065401170861362814091845004892425603745397323613772637036479348375043854726837173244723842966770357318533278197846561946855826191311987193165177405794634441751440684363581526466901627695996065490286364435281597848061668096405934821851075872680057015922884328353258364640320552451758523611741885791038632768016509924423375787677801964029080227794185302044630298102105807837317255031438882913494350553028483393087345342051066154445668873542390964704656674656592679151246129513145717959215219593248138959431404265637769833604918664554721868486093306115318884171200077713982302186875463361503279252629638634348738830843536144485026090955544194346044880455946371618938900792749355424871765289745414591797626122907266671109813280015054010627214695350484493395186068217087549110321485629789058084840025911985693164257371945207468814196595584751046310236211645667514408161398745468593596598964155605035016678206235600080777222801587741265191898376554029339773790851362543195328595226366850299060537617880478973378419761092082420709527963249496428760265522027537936943000984886084204474171585952115445988849994175234503948117521075515117970445373046516901281543173798907349939766101116701390284727349702105958752730105842838104850081101776450570369718681864828884343218143024546333737124257397199469294147929558399981374330198222428838940380686218985772174397540671698670174899168048031975057914230144716442046156417764484395642486621472231598820237918393850667962256321079421843235407879591098355762135731844376668257185390772135054582206102204855066491176830272798598633442497952254430356884620297876842553651963830694479906920646878626665041770842160211618343242533460717281931480475917675515198487828693148933626025466791081783991988382642643044432154546488762842924885581739922327971809277913687494647714458559362717597575346645794712930164706889345437986522661516148791612243910877436553543924023971995663757035236304923050932989481550472088508450355794393152291211572292159289646101463079628348142729129587799905899436826029219665626293925078708029222891687136703699699522819202607896743763723455769379034144692233246606088135856816897181278456284708039016193193967521786966439204565539625808265025520046788144845149213493478128790207093631409015330661876775947740820474511580511498064416013969366926298314644829150188302545704289342423965676693529845686037131797003173350198990017408545921121550288778755937554540535245288423378607627734332774314807266478776857142531637097396332136861065583396194671316286784882605069165251057754383223660664077887636586370455693323326969330665136422799568754899920307763250234446699591692812089393678151639301379905322936084995706209215264861958191942358959939174685493834256991013950693092911886722137140775377213955400953570188245967821242644616283315395198323122137110603176079196420670821305114849378687760821299615316526541961720303242139731294984163051418677436475586327802781360241571769312831124725906028795101290635329183846805002330357897347219375076846745567531004042981182591218602364288143745368016950129188903261805172072429635122319333172511641206546928043194524174974534310152396873826348681101208468892885700741366621555097703082623850626834651200622535637312575187502923953439119752240584575392048466708156101859707300524743125803436472205053092840541921883194389661169645691776403018394561002506804920828238213183843855928422378976096260530853489929236752562734366367072681897694331528970198950253861895855715975106833177978524919636565721388588146824849152785724831366214256061065338776572864801970044169917545179826392705329591248739490932151565490472498502609609564082635101305864886701695947956459009503208387016259623244836487909352160508547508684624731997690975424913224261940943278930352045256088028446739320572459204871952182410073638373487518331121046500803875047659151349589102327923400461859725348440364427875758343709802567690314049939851468597730028361604770815264171429523388040478384491155909343539715819617780411933311141134181775957126488927485536111652007548945758806845690646847614532702755762390352079873303058234219331386957678708756354904888481899376192712922622862847773106081864014310212583335808672196120003201787674631595954825915052683819993681579465662862637509200563827163766271881754276135089361653270100430125704212806753385313745571070230391486008600139678535804413185377316229302298616730756421312360779119117917096920656869757265443453321761376002165977953058348012633955875211885342674195864497174148300825653322454207329275880858942166836852195055774255313669414275157300014705000493093882306486942284141251193813355528991404405386871940077309887374923585851278216775389887356225658563811790648307467702627004265541373888838049685411879891093735731727459475060131930442870554240505481487384200516493778695581901186150893149044892621943478722926118468190107308450159622622099902448631746446218105008319619956467600986885693139871998215768410500123948013115097562423062531856058695993951343686083880685062114886835859204316228755181027347413787216846866248770874563001046790161506755064422653430827455996207711897647316150168829786550917007700432866946574725519923870585506234341926031958110838835767213062837295443273480673053247539799049711377007379020096536141594941577189983696420482365829803369225046495832226968966180981210956796670337927838048408950848865998130761005674453521872640122173580180108250336839101409277644957995531155825975548188933766719156331064886034389695746061862665833545243033217962750740091388884140326432666781078570340200217112298407654706769894292462498335286802524508949475808298585701393059896085775979066393984747118950680755186415599766940695081586792057349420282134279619725484533011603992389436839943305120161222943402788025081059290629822685411176342361133580163030244449930819866574463212854301870300324741101049331667122124756365201458002389092097186279754047406036705434252514548404770667036537733960970283282429607020979543322624652763755481237339077725056120641315400509750164540707260099499119953612165586153816045448644796988495130061948019085825948423542668954048012426181447127113754904149529022538519051381416501813584998492459719747945498015829411246716271998645653423605954667837253539194259664203598176276470699852803978166000589414611871370113238351291435664437550743186623541317505493608453069279338213633490938994487152021061381011739827073358374909873528628582569940170028719182327492453170847794214739135622228849356085212810284354850748505385962822863772462147902550145474295947624341237808096608320082258210329754177498547384453380749946385671836330759522833536042007485512221798807115707547542405814689285804355747330211442500100445821729476987798294804187971554590403101576441053976746190964816879854695424251328842597704524688434772335033722130708357484059155888290577073437747721356254398011114070868548382140427907922918329201204894676881882826485927652161931788384320909905376222262846127078724948437376510561100789940453051470128491425684088855456197087208758138002415999554164523597878572154377630522020317609648930160401811617808043186934401593042948759021787232697585583930024728643972182808447430002413062868188872786162973563838415213008418446465344946566339463404025460057485797135014079350350477410148325352556224869702964183686192141019695544813767605616309300750184948205316050509572503206010774935638013976236752067595101131975830743951288740991464302634915794443477153740235888532104793489024901415061256339339579546396365828092852823791172783113516233576589543538094050799415753567400808614984581525300524546240182407602340371870927357150047651532627048493930634918235186930357493129204409064103859686878921288891889144339547876502220855716805594950557269845819441991261265902607749086200710483701830965349050407741500767339415133773207418519453835300645798887811629292289115370777384240654807072940134041971365694322739225680963806599266617999382570182005414419189534077991416202395335966856747412985612764140587040491498639597607163980354229352668754001882865142588390858841434717577999003897921768053168766801938556566317622322178171270180166842187062243007155795265661791208657686212006109859050826960500795156083493741926854841306464868254700670527682561170053162400154507850284911154442944391732410222602378561646580491698484688869797162349921734866223294348265925314216327951636413272583744076061096713140328449462480748752089059338261887751953856207243460703057675905698041526927819374822769979151130923028224296533782188104684612393298952169761168761997608572592380931552240582313209590973310913319197225380351492273172505328220121525420046770726054937568272054544707533333347133237843597804760191228827710663838203050120583877089796199479285101073029193119989093050734315614952186534655636551932581441886959927959061915776948780645918156106989395796384046921928146733245378441328259433759966601195744371944580582710207965428079184297142028507999584630938644270369429330095236052370229946240026808897324765768954311767317045084309402430265544389137374891859255196537763752440597125610399927157025974426075063868881381484613591530218741637860611168336082064709133504067915794417432954699028957992162949422035675604504043024459228037289440906506426307793807452648934028955128658663045656456958084256711245506116071108507348715926782151718247861901154531182102627445757235656257003909122122327687001428599291749014336912842599100183925068008692114244676382958440070621786488201915806874585615583580303994049393447791129652947570256236149604461143399215988092393989716039180876536937086358677078458924401031714019202272214028578519456014432587284599065356652564389538028189200753602043069821935249594501472986217165168855914531695454911281228106218288904919772194125469641213698057941674970247149199860833006058842083737817021141364483645961675636013234208511655605734088488504452637354397179982821317297428843186551319023712138823742391457759075451463353545877206755614920393654748013865159068901044611672843189977169016268632166468807600008634479981470883922591448789286056972678659630898715820643565212334365772688567725933170586927575552103754053353593347624835282657063905753084886347620446657035281003164610328800323239710400076481287149766956306646416640112368543092264870984656611977257553730550871307465359405019333099295437733077397239321963093563176541639467199957453655273723719152160114899162750392425036447963894273087424025549605848257383768527794781796924702683701408994047751576748955642912507544897285294194309084663796570826474370237153671593244433296875733183339454194448387788901903398523906133002813100008877388018586028486873320073995117711918726333552827249119226297375375245447577384341072708106742505730830136214379978307906463404148084526307047988707368629563086088252149509537662612925008169694403108953829819131630107204354682351375394176492327852783749818277478772456953825951409532914431962277464247892470381344329080258759762502095869973017729855171483695804675276140368211617197880370139956856682104002354193121178313752390315094578544788579875023592807438500342148762446177152178658446032319618845801293815638439583101194115173149557565143139735578168983362092285629735941507755308427116232061166841289926415380765569446231128586840959113253672241953829681714532374966345095766372332116106755417939062399854666356685503338685854508347500493180531802563638229313138350626105097303712642616138851665100148932157031742886073976519856686172581299392992044522340536743285011631236132714133971325450525130179747559571209878143629342972070508085180671677876909245047442016899236365417082741237439502771811644734922897442044944889567890710409533707537829656161212582869140167973939836277742644046203291185271724030556448456160897723057674569605859388922566943688640647217599511836128607478485766840033029023976118112866961132914439003201493317142565903133229365475971182104981076681636768609290512573323052665556710004776193851719965588837816361359630211688435529492185257987741165716610366239983558152612382079515950337602973199888389591735646449168942942417458365727735489385335653486294525535022692849851760025642274325085163447347444029913561356820713322058709954072888028250804145723806719967314672370979013140262233672767846630351961708525651872491823856887105735453067289890328902483196558130555160819438728030192587439904779298829369247496082975087410973150967283092469232836203423698350454468422193312173549198798305321385967029938296610489711027151679308860366477815789151991157353989514201828076430507997066446709042636482811585564134033663599995301499003204508731598323408080842572046805670153206395577268561989772611764287746999122295050248667929090931133906461255486199225621937104520936981953556028840906397698555391432804800633354218208275003941576819794959858223388937851028096893681346571077053385233051526389523181437925307961439198822766971079729978113376006207978043212040277334994301464360127657998979179356366513667194988419481624921772112070667176890845747561094969497652604189586501848655383810822743986755522028682288081224902528398736770822031885303999430280100626175337782542170489158155887040370180315277226164710819350423699076532804493594281695883697774983667266188599155360220246322645523784316710940036275965535596581627013268696247232800747999700123720762714823606950211941497783911635564670594823251082004696230403099373925056639573259176605595943627417984769320055115985032761937606481882681248527688706476423957989999544590696721950441345819146106379482520541799294695204162253644519539625503322309595621707320736773109910987917250780052952971741123191824298991806919390075584880999029149637452641350794328432326774719370396907053829724578445664961113460688834733935428294789897312373688001366622697010016212382877612847679111808607774117014491630885553235604927334904562317985354822325822879586084999693531118731814982739395148079576508223749208535035747877901062773083995218401596037891072786290980436253308014854046976351578675927473214330768400732493268915417549453671144816817778486139155408485856587196327808642543526354676293040801263696685611486555923661462399180602971666183655033428759205662046640014169998730979655723834610931233846469662340939342617409127040505378564158831073651684152484029208724503653166634436886197874255243989903338875280981208316041855555729716893184206352069217877841113044147270232243169760870130887166793625988162198240183389339126925292241968421048273300242122112621939443989177651992782171318369230821085771702804333386635851080410397917609202922693672220982543804684896953242636143302087465854687089206747013666532143931568140886680085874078330072423560851620311234106842674869261445274216572507238236933918210813850521642803233339282860687072867657930596462833575728442409356487937156414270727472684768618209185011933977690436811605210931400405063277674338770045484430601285350621555604673635247848336668798773985313240279742384055147402262641955953247758519985787654847792931462764783327482061347331556813345213329942095398846294644031087285326412884606830723033093066049011382443262321025923577766347610026171550592807659443410931507657570028533043399165763512315421376011466754220261565047467476244181792562581614051158968444188097583508361130712362018586350296414070940711090787948783910816028455647251136762065188206041083601559471941734116488443102457913077229437847070238641204677320998500602222120036484241100534568593577865161135797834112122250999793996811331530746895464015712698666493958043315269649261917252905510154060530151922624252072442245584003243195308740380461115700794346447562635415016563577444329999523724177776839355158353435370793814391227853332005398679714094671415008600452989462728341148068416348212193083662753369256063021820312335859723228338810411012641993604968237899865343162219095588195582890979855525455488191460437300250030867463703264529193993016198966902514045810056028515721141170363888858643563225789197450024684480974943027582234676625640607139243549724386246769435210188616917456070511432134453622837660741175949960647594342964851580695954465923189119807997015420023870774013880510377382425333032521284344129777267827009362481467831210637000986092121768368354100482184287423374051011338331076041837826288427011117592930504282829776567871556318721891767479928289238743294731103031678338627364316879413401265424097967497518900476978841746894831535642733963026480467450262250368546117176134224032155187235026526421102639620111013122477566239781208972098622105578224916018783227196248727709695176665395450901200500242128898382213411760672157287361840428865969131315424870332262258141740280957845074058789987422626987433974105321703136765555737347690759941820960314075975145252016978308362856571942306197803573641577909213249473607862721130184866486499735528943897087110210807718080301020590594559538445248608556333690986918692265801546227136845995362653422488349217033853561919145201158350036608911496517245603796022729283626172836702095675595802074069235814629165843292477265872696706757146389973551202901286414166352382901762549116232985580732118126317523643522954324776118650802696954419994278496393153808728051448217381544781850753675115830094473559419616097392606677399763077150929872975633881571232695611518510592528272905747929473852021717450993763366220663328166853202889921239374966492647934822982052983178283581978311661497738668554601309330015363991562070592495870489534448811324389946469444564873431655241855101494128944039747604913618443574035089768726015656629659484355715194445875042836067502609886753681762735549015718281757069237508571854492664005390948080424086359135963866967698995684068297389640542067801105266915585227241045557496096389349777564008265219939658848595508829434486201871205303986826600355014680114642620955817797565807189305119547438889063503996728216573833763831691315654308689452799076028322094932135346609075569078743842706334756609984802088445691970831230460597613103396744314474402886703506527376478553797604095383528384970091552304617106157401024110443078140182280276804437799635286839477310262061720661695501271323072219169679166602015423362514614857107568263258167877608423601378881041715272144793595071596233528064314528469047584785287627603752737462218797336593732982314719753839703190495930235628689793366451183532799371139883130214917330634359307321205033967310891890483750231886159840253171488250696214987256440242498334643266466447083210469198974153053815496090297460155581863272186160846027279543244950709853605645334704590705725155740378193407341198883074010148126534757582868155847760924722704390417524642088865009183740413051857303362224103754170663266812552015459220508389283084050357060861649879257332906348270200840369485325591751941543737609119143117961242074023404093818130177634926462472758211989974442813524591957294660159073517322605554758648269596490390357814941149444150712622453026877087521630636685721976492671398597505540786836804598909084253397109298279420881423288885305345959883556222280676567780923006631153347274720299548795261844272171463023443642731446905263245778366753372992869501765597296990772894559089606329955995122536928599648727608937324615773066053003724731317688921851650350460835498482029160396376502339544949338634080488709542736544174988099636166642619274304951763836069533403963181270428672470637793878920172010446141767940735941170574697617979937367159418239687532596198208463257441750547858271010127569074731039605667751870836342102158533624801483731394424809648612237204667024426627016103563943108210502013004490476071938490896073570112341715315525205336155500452867160702237645059014851909588465960340679868263726105377363147876858295642156392746952675879942654216723570687734263373861726049134028545631600043152334770101217583767998422964104022895588216764619618652962455851006844150195682420606362988409869001945853282885136252137326375626491489255866997981072498594342617218174174189574352273738493894665864500124956250254941931603120802352244500001187828819819455558173134213182551500774747901668684098182127624515123783665028444217662699027643682045113005470728496722416701808671382739350701623891739518006623988139971168157385310629182429451867584513094778548666675598522025999678245018251216908126431411344513669835473458958940861236727870751107963336077978420502565469838815594540089167562317967342083536159429379994103564777279540396902090594181528181099813929309670035532410670438161651225108670236141134580123070853379760088088458883550691358206519887173617372901342058571951263876637462222690571841982530698210530717732450847443130219006252848561950235817269893495468024224094248591642000094562326189869597936533733618411400380279354760743734167635843529703910262278002293943939619568068097242272647960739050455761146091141315278381771963119717621639625853648660727461129211846686062531969748192219563606778911354672510977324652233101590518760566405071896277575008271996469448548718321319285413288133532729660697393682926030812144975939552206250567391560981918712844439750332183590150658791528299284883743809762266925895960491966333308278202353162653977177734045624919602643323084781669498259431439844956370785792666229385598753867619908758311323216305884250898089444813424375732007390484580685928251531915592574691825334809133604610339316440167763234887583315784404711912337378403060806462417426211723103862819025875217777719950177660465100283897204348375529685065106745708467675394404788679699993701876896320678495513602817798982192925827976458068671981556316377352936039331659584711900551306098940916405891208394930580536435696606862889052626364595028021267974658931246855172333917754724393725069710229043621373898880882770124368150891244959164504223276646855201572570769249517744521348459308194628445264071766506745027205364609402467718132194028478776115825122582104330733441759702016655748523506521005515209993442085361768451101416425794081823469516241863737644285182811129137798099568420866156770127915218460189347857207161200183478852209800285919088375582707205051879688885288983987104825422322436004174342462265397855379160835794798851250336075208324167401100357414373470951683461106203413164263900012452234154838465727927572046241147799833866374850824769267812439079364769827922799436300283821360090774913867853256334957883868734112104154551002458032815828830273180818054881671822765498914036684223560583916706355029414402882856947586976551050353783372035334979565154311725896595166264428692984654364240165692390856052762305352159263950388924447791840875045560854190576432994626671079662600025489645949589273801582453219195657684409001038584295283291188635858167570336640835805940324061058306809783869429269999072213511221880280883379580328018918917950882147865080352359637140155640941509662163040903840596604718127204774635052542358502451301758209589489929897970555201263198530228062123895616139106583792190208218023829945953841641860079237472587828039751926786663563572279284078485653799201453735695412727464205790342676233270396143853283996881204331826768042976949847217975513577507330096790309407157192720068768047426968016670448552625151516263992092578032400603127211543227340328652396433941456885445118675305167637319315268084980713940987119352152394136054305844676708503415789036373528627028721951920432081165028998377818702566906921463885523177276887227906303497595269696034581424790610674248859336773745250677036262667864559469096055348090659858323960960278554285024521246701551665541525178885210487281979035302215864169328367591013881312113541323401826494482692468024083892635274522593243056824526621719696803705842563900811306896161816216122339165409371775782205906021706008416071218019250128584168388299250214829776258301738803173318660468549860202515654898247847813584267693892457139153837480514317424077891055214914134512736008276572544230755047572037477144775446229881429254900774652497501407026701849729765060838814108510860000025181143254268385593870713551804071973390474806345551018976450558584870842942531465423243043232940238313054034883033520933561228798586629320251054823301183650229207191948917486244878900172224795487256744711079005930604248498533700328003386843100437576393748567884732217020366820732070214895438898172452406487198848878378409047578095164022859075323733201460152731913574086714420406071244238024084909712205267032293776209459703659128928522202239251474936864657584769542428137237375268304534036931515535415956994817836919710942528939693089940838159918655189378648544270624425142267271847659020631616508067217114917861793968975445224224365111529103623208230460534241753915032914796358405133316511628078631710431922557040113749054626714816363705798236697659851574642901502929515634161841467062780490005749550517673097764827844907255716204617322859804133208231515083053727038330521900822942975587989067583751779024701161300918847980565341508618870851349419943036025091679445950884612101941617726334214507237541037785565904549376877066376270606531369315095630655266851206979504483527315948395576465803198910474943786263916990908888425248969219932642396661420504168184463337791382273184967675857031711540908333910562707768461804960204370692619938528090635895550817538512479215916890381650356584859804177395937477918758493585271455204777835078006152179998622733076348846916227556790591591124696502596951286548428639360350642710207248756833635868203144009257921380374954821242065561421182465816314227263801423603612377457052777075476990762936604987663150558505103763833707483682119599125490394262624233389266581054935786526747775474870070081000983876385092497516138536129027961029534419238684160928823184899792311890427537867268305541344306168062535129745059627574745264414164871230455336760936514997391712912178407736216926315773891395175816622585431797369129507920091815468466479752610974695959116831000514972244202175745871000702769961070683586160297745692629070772406497313354398945035354450837562105911892757799143546464686294566235999040874161017055469102858421694981011370465829542520774481726967197048977798074688602097281163930386871046601104892856585825975702402938036145555736293835865154138762910508320825597915574832256650421490449019859936022524858747025919678228861037503079698189239518441135382762065061126963434331878209774292069010625185495572818585748571627054744077303069547466611121639636905852504990515100294311590763863914129033541558530746036645233109435020521373050345594927251917925450296071104417100652206150758777719641028008353952047076310239645494219988384202659721847113480485567005546908503774541284621497997065524488201959795122163998252581425817866245449683778283039475597791584004274231285554652506826846054725969089774355656645570470878714938135581321740972667072546174665228261185889753429331228895175910590039380992233136299392401268896123174632806380525548387965006900909246386307041796490659903729581218182799336543880766107190284064122380614637059426273597244337948820790947580398035582793220926971261969398526176080059775859126034739677498112301567566526093358981826882173780944493487535852668920319243386905954745330116726279344727917771554126350348225878819400613986495545072998838044950094610358937080914556082686752785448518176499033458191186316310992185711542154413397825757974941902614192065850316697009340081433912722923141207526072441366018141065717266320092213655431663527793467318900432219004998293594676163718284315886849790734861847188113601876482584926823312785877485844252965169146007658059163768133659047787561798476527812023130681890202981763176348313155123806381372401401233480701313954197136660327974719738252367045702401767136367334980738497829749381521006210042380967688891838928826933420158454209793877738452048379673595109336210022833654428702372855640071438443677552469669992189689114934904423794784200122293939856318464391054003890216800247479153509058035472567670754433427134800942513024148510704432268720967578215051817701537109579996710970829691240147764713856819368417455479559139630977235790870794257411172507704115034500532248489549094642385840487695285815203547405481900309197963115616038088444181857980563635489976725262011091549807958184978472872818400784420318472184799397038697845988174136786879257690449349186895560617063529471490927936722749011998648603881931588366307856539466627577944491967957589293883622597239632999580034940487415247749391103716276590673783673968867300160195285982404722282804502386378784542858405425806384856595231761859873734604569949045817372666820753374366739618636277734458689907949971254082749216903616818928293006768136522729206025001436780356194666578823338172263686293041033768800391918478222894370650541154215682324021804479309371471565289519839548984232782536311058367224096908900467638700533646621097310979147584826591461784371587482594465488249773603705294253458573725869230713904742363976753007826842782120826723681449113513260713831703728468330102502207007244828089092727631868390210634287548245495979846547615658173124980809713358433692631026516889091438175630184787220015616747889034284167754330010603042313469865107964632393103914029021487746768838583084664920983692674558132364956600255611668801169255258346934308015867803924628921149785866224994929736910945430548715919596570059867081158834086415832279850099100137376374313730963211631389925009381687804742270798014691586170424945809813004314249136672695734886577370728476114321254565717588368673752726688726407696759900964683405427610388615784573053629000998726910618540506390096430047523147094401471001735828484746482589591308020995312079576117573085448212052383779464736286545797360879388903523036620061353231201072693501547200826175583915695474488071157813512032756097479881495284409755338579765030751800278085784118881704517521665549091734556280024262979679314094009734624467509097960649403541470892746454670187292843372413290045099717363994699020784622302739442749112889801970121685330811859065391389691305231132425517419003823233990125391573230466890453566753924800047817257423139475912678753504854885201686012649849574912565573276389804585114443679010396773925615743122667451914374329365281345768550258349331842995563048308600779561641461016976971062347731201611394813132396026211447789319599731530585639734531600556143018626786701271249356533811232386893070114038958020835144603292526507125515278024383407853167668807048490140053393788464631330346959800314296642822026309245424153148040650912493927015906512531359556532634014325180992581718631021570434592350827515509707568132678296720096782500952298014303069313700861812635147933331734838421297569416085456315076784507450933374910654921070258544092278165291403937117952905220432500719952180923941142176184938343207535833061759900737099600904765143535560930072062731948491768670177372666556945260174393704251632900575908696320409162489417357387152910278731959184595076803615210102931860586973423336808715917235805952729310232635835500860571792866131563274072698703519769227241175978223888532102708468270382244035973235773761723559117118939343224318210426879001436912528896919786581313220379170128722409989147016440308321373962627558691262126943987630588423092125577526592008223012586002452617811985109892335522054559033490445998918761550875811481686382791982917710161577167408960719582040035225107211103914013439381118053497662993504441998239286488253520039074802717424998443665766795644891341755815995336047480539404085907607300225615851729590186867920151137650038087929155364478579167946891734591410355746998147457240570746919338925165938906644019099428157499532186479478797304253737985571076508118656722684792939880763497702921035448005654344985616398434320863324814523531070645913950443798812912282170822347206732836159459809993879153130436238498350337181347749644589815435482472378066315808544853086398432051633795028968135984058891253183584083748990773314460977689214858036157024184296677381601130561324428572757504060632913470520990994809909003285198320102846009208262009477051984609810059663598046955814575180109919438147501459423252112362702409037046045734783300461685693052604694686491548209103474788980396436293619991280069475369881006141349898972444003144108238011803345142414833206406593949506670355025305294051511874594746323891594017957589737309971259289344857809220002670476588028064740009362004841215963861160938144458118625992239917194488606927972348503473092762987283665797071685191078921286251606814921601530025289440949824915114471719706058263043668244639118598832923226666323933586846330546470870664527171040821978868074382354193362597228068447058616659199437055213419436634246735269204116646041911214172193727673609628741612780153846689135192194972839984748735421204459422065667988355119567591452758618435519963544015568932070935373313528810890148877694494069403606564785278146741968108638892896323764098025487022580182150628309609611096981915849847041140611408768419439311142970330208063059583432190933716342333974454005079784688529299509386930145288476415450927102366135717587292519515349145975925415537935434111814276443466021370379254936818807458786144451279190782267001767674180765320733297574329086446673923009970783310900321873222587319625528782868689655248965405922169636252982770168524040309081604896651043044899569506415263599155120813378014295685082077038494640195027012757109404168862064961979521110558541710129247459912482236290309728345693757970566130338046764334028676233108861755092623561688220661700040288165058226335585800561574339798410569009604799096284628227156862092573348305572629099569915377725026118080836598886158293601005926643976285159064941469527694964907499169414830279023651724527976506334785392806469153299279795648724330865525742395770304849210266562400686147127549725070625429929858437075933117386121981388866085675642963033237586150532223513732576636021829064104421989998894566555705590549422884103825250777124243312297146355811391234867927995371068469910671753286812030383406331464847639575567358027042841482554903038653736432390014597168445414414748107751193335105748625262322532623843968546130915758185281740325945929279376701190363274121716912160341095986681788364510976537306675763158005892472150545333438015188813489553832485232944031101197645660923600920268163571643826043007744651066109364582334186677609988911438660691174651816636278441676165629127639886167647011868948934326248314307162521835728653763441873086932403005275158907448478671013758076426514444351816601739665081136283802215464247876689017171834665539227033642538871329971930684091795751953050686176718276041288008750235271552952889845882957778269910949496420979702559751439621899431490883201495081602795409931125321694123992235773892857418271002766031072093673556897748158326434243309353591714590752298620772324904024934232083661626864506482791464359755547941028239288142052455948703519255832033593823656270365128106885077219209183060128815815659783102259959706208490138832385105298621474394112625055875936200997107113590643463912956403027605992269086431511715266044365111232776951235437687165208093614583030114757537979158706321007628523839212110977611178460553872676969547424214432287386693045377829280813009488495673240898669153507558035867850184175248514615775612443049775666687524503005795430239348373850328609324658272870980010785179803480853583040902698940019931170723203537867165731644172328360487824944346160544162141364701171340757542815243182761611491381249847279618965710573116726455977667383741934539707136085272750075955146666223746179798157304997245188996381170051419367271013410462200719090413457849103794129899633980670869519939458782374261944304547833080061722760250935542072424633503509818023819885932475186026496663195610572950403501887396364227787688147956540691361560282959375015592573264396957226522791861871370406134335134017733317099734950446210647415890327741236699463729208547868385634240907458870264693004513810081263765166990740942594393783143712980484607475563762821653118003688433741850695566316376422756715628865383072866754525129308092388402815584965216851802702581406840647250273934891287847934785860892035622062212557431792841888274368911014354901128216974316689665046645730999218305651122379192180016891842935132686848458934684707211091502911510767953202225962051674627868028292213289070249449003365157463395870236627073800725067134101469801806557074555683913969860943956399088428202684447350482960949897913601125239867841253248834049086540070436426816047372241314174759160833354815561599087171726353242401148095546058049881603325369361256706953671602992237676456402649163834679994169613696464405577160384177704557201579686058812070458192910126290288216915331867979608466186892362088097140140457098204134805026022952815184097823617579331677026217339269427935372447954988675096942814981399716442669979978246932745715026321692824797590494447572444906248841055027496452266673962826048449931206599398932659748659927008335891634727652041994178808962385009310999903027667948594410706527424615357452800623129223681105861576531505443181109314571632096724636538235175484778911842307852040259272580853567502769148929576761229436778469988316138983005995458446618150991136050096856554002857391961153954399267477251746059965115646045841527439692985801558500669865813515195098100181252817337720425080581653633483596145548051237530180737990220271256894272213387658422515513504391946804727100331217796987034349943617668853758521768925459817867639122798756323489878947455290066124597545868548856646046630066296347846365272622516630904054798024563304261660848952045433222854870794683870503358702366896655477940299424453698422030475268479835881395635932546968274384276745748425548482843749684094890710721136866216855648712307459980975380892119653755683998182849826200493657091082730311550272155132181828186254526881919648772368461021990899146002172217296791475076258778095329639879103679760881204458781122661513977873074416026576457820383784888001763609219251716539338760974145507237323406103412401509088835499602253203058525301577996201219356152462901157899519900324760532633559775217748020522751382938641008296498662089120146521816972544988876928737147480117433867208431387715047682663209476922318745945357321849745061169519583683063794192062052113266257864223517281874845567100777126606907332089836199205146992453573583563717751923567010824576648301500913443894658283488698865266106423916812762442913099486112436202706659278250152625175858060988172421426873675918827843056269821492206291626785903450803286128975254698788717933183910825013617940669432098728823780976448813562050152380200574856407447659460865532152716428006179049181873705755832824950273301442253526067567737580686901049579336074710920626261806327056473997504282718596259640831435655564292577407755286617837888789100201044154588755880257141870858624390655648013603241514862281804549814198800686086531942006954481660105890846898091669350383046302143497896603251148136159302672677467602020312268077588590615108149543581619826987505612251597925419429005905200534990323979524776975802781596218974836683729719867277594114993530456057859067540959245675814114818527760851492436988909256584240753065286953539567693855732820125953615583582386609087655292461952714185730323526029909677737634290373208514171283137486113847498015875969703859877016566168360691211534030355106392649613280224098759986396161281073461655442997618903779404080947463638722740084371261342747340962905811812324735161299802917121021168762037975773482819628957018997496733923587476152805610907480020427176469007647041796884757302532427607769575488090776141767352858615529330596326347502856010775687662836358649684451470287040497724041379538544585941201769233645203847485824503328346006363142179019972481119110636047922672017811461785375592659323457993258042611973164790776535388148488708911424954604531294374644915408867975213322401437872780592820846678006355349386943261644102674803967168812523160784130670559706402762396690779023439696804035563075228806739894082597222638222742557666449461122133517283434427580659949543765691709494688084919099873405668572901127808803107031430236029423311135948380803318805349874220102335805846641149527402467448650299831777437455483886620384050969268074638227592821099468429394048955815688512661110175579332882816125737882597971532030318153222211635470632103852163223781157062759513200031003795387464195755965862884590254449925711437586262816092038461343584210753607827514451820225173419586817833856183175605441808504122393201038134983550918336528313680698251370572197697438114805236376207103956681948991476894224730082583129317124219381133534819006097557756435306259222653312457790389982235184169557216758957006709510175243133423910967727297534516107019694666269119154590149315082614399313753290977862306643724427377502306056166175376322022165809866740837636043660937665523693927618560556594522458781857274751055917199619418034226691281649621919343716513497543280861798334596085861864208786827319574928036280936277691657797649065255357389162565821553636985064132180833582722520569009684418966707250211929239166739197112502754938696836741301591456972928917069817424614389285482357163058527801374888452782139549002495735166365886813906368408205378742714464184293579748526379844775152228820400209766085456609585217608473457836157473513150939121811001984005431993303419982043601174350268373391655498764483083675092775265788847862635964132589993571956693055283313667713783171182913204628064503906403348666163964463326455266919746557004687408152340842412013447045061471271525213461313744439281501481231387306201238408697789195482027844361708816881350421874119322336439487191721718108498545138695881712327686788020136068839839785530083469654448864677381225837658962132901211366584235966454671423161016341824816913326811019318599470251406832260500428342479952792044249078319059649946131429094732294093729397754439241978006930000256036084700231503898166279278789339497443890316423083486045688942672516530850899098604075775385831012563111185620262385878157903414229634133365040121311117863597197452196313883499405167745514767095593312149777951838594920117203548872020156314036523235692631913640130690417761394780317480552263131899663393217735431028622391110682782209250754415968269800160187207201681702891061558978192367637041818317703071892206143905396325548826529080899913306261485191687252582177604187386054160455737545475251191825430073946923106575504118687226537255424670180688701727632975066616341212617384130482552429058421523656298567664104278236139417833645745478809929568787728704955184096883164774961403135364448917785404197054395842215138284470724920209741471005469097126327764752912189829015420172160119968461206397047959026169799217311645327401455956848924360017234976570310940286059722174047668551585435002180187077803602803522737692782468148878130056359051787215668726148249440505709304127723891271975078215589282263083746935624013966634313311546382925028850726231321664964164288489238035201693079776044934932721826896026050838250293270071940522490021614817866490301756335031348682182142580349428625021127111896759399435489133812838715323838859097342143494403657796809753881052027739717536567357232255031319307421929340508258249461995017415335132904357020308031303008856639904877284008981102554736663194729833160731516983775005978410736922503427686262661736438579524754762574154945564453781046541943089978516429690118778111612783201706765977975701551146944109614218295412871154063057771538156570145727816497679280607412021854505972427629732698866877410371799856787723447853933637251192627076918543063642141629306300921314769561153924284506267267953931471755455874973512375179757102844307391247839973697686342305080181027991962129517072790588467001346730778642072694953382256912932863354820866591483950304749873424816723200939455135233461977975237668802512780177096860475084933922904838896057102853775129179480010895235016512156475147181207354101058168517992328760886734199517942942456606521054072836431638195636058411579613336098797555155181930937965410722454321854172125473793047503128718730554585222837823691821866972059213362485834090052988934747993103625036475994117314784821208223701302465620165934956104298167762191596500257222372013211212395017606497330650488429517729743601089540064483551813335614916185051828041116222299502969966761954963628919953328300205074570495018643116317631884187436914431519761010405478476579568418495750845474617943250728838536055266111621871226461054822539576163906471547935775285980654791036816982632669102741942062686001423039707359788908631578136930368256022944637339080192061546761908629868195751441844887259085633895338752667103984818808815254409654734834917789270853878268259767195695343696100034592935198671704966107574119043372472632292037461708559725530439726971754045898964179541994201738282528950795410484178269558081975827513373805948114700682644931018243675836180895583414474321486896915964423300130113894098346010778520464023884611024057773949834305351891502329030536575298557055812293049143117052529234612379318221451724646471692150844632420400037561581796064183117849257834325687336938797136121504461585397220114795398674098849493365752375234185088235196625345946777513528865637657882727995291726701688170354251907393322836333683537429800069019411461847955514084390799425781195542063091995677971805581985347970162729839771013240372149376008745085059921629607125816912708812611689644200949519631351620043031124635176348800290479024193737683756011957061725688204558218775308716611273027422971233284906998290300604463553128307331241693734971218899253451976253477815375320941209324676179555292675952787267593123734282924287451869991431815769580974114670990270345400151116580446813355674262019518232577497509721447709826515892835764020207173546225119197579345883921349629833883390671257786640367886740367891887549478803721557068540373753003316344954399955419045276309571328690857420310052582626344513402730653334240958504689877417725009071031693434451493498028305044174605795393880797225202235059393737336372212803195301032978112612415094805295998748981361715334353592975420534102578769144136810438829199072717599354577212043644339860438831105088698174394920174862559450942888277783896520602906677126587193289714895799223793122007220905045661441660833590123855417232640047564071256079293999436539970905205127323266197125944851888649723905212409461004938001707839945119415277713666232374967788463385696151045325056506000192161841584239159064086921691620578301241812165856345088437420532481801326785338943344598594114947301193630044903288772284459071846385839653258028153672867415535311270734412678730632288052591450018034604017735669168134922909432655403832206381556586972140402111109894159469296637345062024739486801067151333929625150651251038859907796024912927179605863906338525887387430415832058555398190634399483744939766058753050633707786922480518129859724394234358465442600569480855756895028881161243158430366573575248897054391216872109552601679567927253234048176910504915057607173422266450954503371793130909920818987967082036009175065459873604172928858292815449716036418193865161801573628130176582153325190543886830131082024332784128812626953705253399321844932189526134945465059064375488637078457672699254458539891702971550681800526837024938854921869648670304080415949383530309613673626799372735389952527777056022776388858622922269418075227594410650014132940539116101333702391996091140575710694664696404986345795673754445331839097844566112233995746870541540788749336194021575072086757795769529128377937041287602444234285929830388665337798630145509843266989111338935688306293126090824305642609515192822565661309762435581998492296417341557552781620575334616263963668326369783097362359658182297245715487071705015525649216029574729085657245828146907128248187857503863961438555132831487991015971632148251985701701796599939821686277286116609513454466811509902063859119943913987093649976020943267319605458250427423452539313011025547393362964504122527739766636641038336941477256366220808491493876896900827252446120458268701638873533492903879776734148512154528593546944781548520276336320127782945185957403454980014122788424992344250986370972531091579558069371553547084354643554536433460061147382238508982302823996701701155169433387005473900807315532425451251270077609681465508225019964891027180352148932013768769983961461920255490643853155174201449074442938446643517915970274243995562035753530398481849125829394754322954347558904307902321087912445707697907708917864841599662465416457692364461143742211070189917479953360373080829664627836120211640777483088984264349070321926751299183581329761316136653241454601663356359116803868111251733438166700708481028835940305131603014128334482380346854179869726008456039280464985001710271635388617005269684318063551077213807311713741454742409437220761123798838043843688334404849154005586311481955126361223020592405348473192721211876672164513871450368766000334858793516746095118488290862990361908710790035035630399657639468615384796522802592426934821989246175969897903357053802762137904307819206533591038905799637265558481286962682466663317512363478265869906305513971043959818771685272676355939871000237572651651737930977565211820468145173002210076375197856986381478617197462035073237717527356303084522546326197177430147701709387220682551812501562451189080847702571922883065028280587122507318360439466040812748238939023499099462938431672963854805430685345050588128800597219355294232260577881613901980786324254666020093970620129842462617874746211242376958559773694834746971488881678016633203529807048858691474556597553212648979124557726355056563252759207227700712041954638819845850231471567291884196797717272005536865811587871707219081856773544648405361216828512622970947159934463487601098609633523175562708860110302436660597437554048369846827434291284953434737326418205182848249058649549516392230776095252956072213467514951198172037514401616903120557969763879858149598741078186586006947264529197089516578096918104116850111492344478720627422449698130777511701327193437410626745626787268044501307372824571003940094798958800381677559775553160933200367237363939860825579122111625234518760408746978477294388310491328669430973027265924202052782483773162923907188755764179705600596010361954873871457407615571076298848901574927698908220081497106154313920941003451579229186806353890401277230185349074996333350549693812209024906598470727353729882468033585122796189428173950652033800049222657564741763996891435161925888109470026412543526084975930890942187986726274930707348160043171995687716191726859804304852582917703842529725290142944767566006874564836117606041947135580104031072097316280264384611148952917467540091915156759725144603956396073401065238093337922855543103349917385525482954457690633600622742205277779815358507803346095980755514028112960751507276754841653159469593263038785938649433482532438507045162442224670044344624660671718147180239015402812366350362361339671874719098600345637778674133955533925664017388153781719371279257492189259886415193107941781059365280340734999915740451669403809340394768970155545499820967083174998660911706743583714598507152526105858281336929692481992752375321686438491601290119297769760726581093488769469906845370810214071329565105340743008796060291341458929302591987065729998622021491616727224412354236777502968100729246506056875311833532182958942571920540512557270503833886328306560877234723352285141894447205245418369655104106183694493140357997797414099513860055947029527112328512556708590672553038331381578938229213392014029986974634664362283381205533361977950960735357495459472713426047257676182477701144237206042682577864651036269952643236720434122338912933164976992946942806282298772805067358308711113621257678823690993571750553719931582828160884170435470190220324027708738886169032338663141090524639825652739918874742216403702873914151105589208205976032122262527632537209405567002539063779118596528021259587431937829236605573635513190709754997609553201577482588286977705750253187134412724508839964229078760712685608863528973865357728459890546327422730693071002667107927691255742582152705990295916601016522025143127397321691451223648615990165045007877640367330824864206898705323428869028176967112348041914740909811312745809924743231271012667050186738876854132106178532973235643305122653502810185760579852697500416868662303307336455295263889197346616176391512009995224442037432452131402331149157541727365152611591762547674003623714263953700664754417479783254247646293600268961706486266928311012046270122903953188168008203666547081363257973203333794957688926153906708857428712306207320299495982996284962542898952965889503612730614065415206635365217240884725811613258798197054297288179332592364450781862298785113987557908989902211834533374884400391283644652994040146071898560232440357896393087413737662548442185025056610654831186270906071558888134023038373036282405015752036994957769785245986136648816451992095160668207136203666168242673915888751626065887952570319184566660824681108671083195720408753229873336012122638587827634317377383308379038941834099133882575106647124046186307877659578775666553828534782556113710827869681651927833829140542609887444014641816778218243336841232116972118038579843616683411553045649118478393260992864947526256355448434137164540454177137102660202963972486209942151926039817594793903712076871042210116203134966090718484721100227808795154212679796412952328341343999724603701985574020394000410000773043879933264269111158969981008067183482786708581989264313660750490560681693888968571501529004100217628555119251525316067068753690319395773036084094584648420070688419844820043472068351706520053688700071312995693638990765851467632489867818557093824077381676807386645216176116142534877768838714228729422739518617793574680482991851994355972283531383401520431858899970256080021814766425457555816762822689067395371733338480437958558976518650284936572025932798348176067162024786023630126800016094824023605067243073890247376579375546495235436255137003484509991378913213948595930383017117927668122776199463627580453028933704786526758382955235373333276962817651207507229179768270431202525920502805157080163889394087009053587840472544798687995219452462302118268324009828984296446234770874375945511938866411533494767317676660088651546790638331842435913924890983008486112372338886557014863350083969047912782885357200552982904588427969153933574519802910453957531074513758412071823031450499045593552517713977591875995949958141389925744093493175471446470669155686732783809208340831971555613976947271724236175547071622033479556478291189627572193930387350123551117299900685087027213868081319909353204466414462614248785538404841852888960633037543764664423270286003313289732103836836129023992954734152561767889764339054504347377481383679733514404494731598119517677441294025581819158990282315331341330077458308548406042509606917529881228408671957618188210361720802870401713223229151416537268868575371901802226098165131820711861541720216776728990973325456765106953957136998090723357212360416401078330520006052211185920543818044037693207476602940771314280062908826109095709350651930439528810720368263439306040479821931746567164050341245966057776879735368996048894229608709534394606919531985680843666090088628028684323707910336428289463563748975011764710641444857748783131351311273223226445289193585131398951314903637629288050587080962729188840580708219246065534201734417488199667045268578490835451632407612075841156042169162274497994138935193554196433492025636788042117677493581765643451014947744269385967860012548765518896181734511560313715719678179958588735957976446379967661507936939202185813007974729087907889188163138903741929766009731780359125349660798109099160808129398034976575091470814490764752114473492977142630418643233362820424960456383302130281930872327577467246414215258427925067542901860173450974410971434231386268162674446020451972774791024701863068523170014527832950831171709730288339150164152698123943105490983694889839185210250512806634702257049346536764932045008443171401066997822184741966867932682305404780319260243729642600648359573895079578323387676873872753524689385180633946009376467961921473007177304742321595834125233221951901608963728266887373762785942227567677645737501748577703468770864813889663487646168474053505081392796715600212938272040447666086423309114244186845775185688130028752661157017520148158529392773447825498166324223323900343310128717887612675937075261909843585326713646707572008345689827932627153301905043105658241336370234487015968969287730332559188242006336844648108460192846065869380305077222246932855299474520695703085563710922255735843581792692159782586295970295377507312305013025801290372540601453725119794510662929669238826831649582010693480365361305197870082887457116825714308205616621168046576285614937748217315631773285394436382377504859564954224047152787092556304256280229936340404894118836449741853486672220498445568289992395864511290844136370157030504739113245585537799043883495009127284321112190800809165280650128036213248084407380821120108450097605265753203614417101011703100298989670743705234880899997238766255509352442906241740982664640071491123781296676073979508711668789567481031148771862813804082614852351643886541264978773652090202180076956215925645291307909466749913753002017758031992141374976304883913171897192494486862084932266546483014706122002260514196934150668374051158696705187741149864985057324082437337521101757413755982401907623924622030162329859306170579933158665897567452030390178071806701469748437020185958812807709756500214773887184193495536374532144940821698057913647194416279265073851532496803805400437180530365153985253223415998242113754647406060312532399826665582663209268414512031399111380053596938549807223634872455824684089757002039996527116349799417159835401452124974369429477298462605161149130075968536207925844955705712607186022370921444625456796706194899135708462990217399792043337672300562007781344349536596551192942233495205511396755465880448227154497200735695679294447376710707973295217117338428281215602759576913944608704733114191760031921135705675607310608158681560790695581846248779525453195927411789228980937013353969451871535131675169488320949811514566751003217924071956694028106569666381260704655482066027847740936038439646464686238582634701025526030997359532866235068161754402791726735446453176086178883189122385749981100448808634126322176651645273561993465133598794855671683647894102634358760571700517266542368370733549721291504132388244476038127825293429685350114774056500994437578955789130144581789414234109263750904556652682359916395134314174369277716523058429854644802967769905715579647963080053033525482782801715221138823991074782884133133632322778147420886449944308400717320807207895226477765551970908300862661389386091864052312475085001188982715876545450663888131627612410416047561302146244074169893181514429651412680935625031193350959036422062506219486545950046373757748286740864266173131995201470925047771326940407918731438891056061182657128208830835711582399531723654269682351704968990998032001083095307934142232987941566704416682115013782891261565392568312765305751416373785885377014531292905586041215902221382215414453509233388407610845410481289337818518569411404516062598372041914081582731658245561684304899181628026330948718561967465786420353624459393665794725234500016138335472046712578200158211832639757000183489738166945242238687944034203107881595210331774670171543344179386168790448660338755496480348940033186869867955362775082489095336947209596769068509801571417550923445135263688711033493760503147094986816249285036267091363022582192613990899546689394714521342469692146546781703754347923759781222028646242418508212464445870770367170228132658244486895016956728107134508032774420271899540414404211266798170621103763909734708340526248728047787009277739001060841001228329095915081272800152697111918824306270610943302135634165838153371277131574512114775026472010359118190529939249546741097512467922560064730580464153714521127323644519893174927795175760126197388458971006163913549127813596385727012595615821357796971969689726756226484904241170233727823223476306808310444148889318056855976885923731940546237333780143429305812170959010497873027160278242755805701906507983438834623704790389407272311232594690236759047697127430311805869209034799265557758713928245966472026885408390466148681043429274870872634578833753014727258086815811595095681564044043295878957343567879409500133080880902000067548959883477785313386764864258421131276372007438675638961573088801681421375042009539472693724209260794593034423599447925814483868304962293007694397375942843652315886228764212576267193453803186748214328617968328744237451467638970821236128039716995540904882467813573815648086826956385468287678015409972997848694521075196078039070164187285967709156515579292209937396350182223672685289095329457599110265353871610657678172122902585688072251193176467752326055539587034777428146513387294761384395133253781640817816847968688668348957721532220117014286163116304211815083106851238778256498870159941236623337463283366588687401490015261835059333604865565891524231099777834068757348085090473356221332545433884130069927169304809536869120899051869457137858470368089026441104301549770743418091915477939175851852811349386977755335223734061396282584968387929952032526982779424993590315645828383580885112264525449037126408757475454181855419768150991135798574696758016468700365709688689852126990427888793858414606735814902502342969926477125791021019151991900265792611165783105006502426156736426010135771476605644225656705732182964756732713529450181090468222681761391691409484823393295048180827737017853024273701338533507514072866993488054924762553159984506637476651829009384887554691798236012879420062213670748705839859570898007508025291728297442551749828727188114638170612665316087552109088362164094107659330722217415540223918801100698955062238001620776001916662124332095770384747373944438283713309333409694943698923617513347611854626034955092467877710238016766978034082488825942027640200253800445478442507952178472960391715867592422070354799366036077226012156988781536910225838911703450508064449715969002210731179191757201262178393787684233854615674515666186366992656793197358910385259039930113646450529446385673540141114793867700860947212437545601581121733827042938189384284022623695029259475125309285389229495901120684191309333337408990160898563195264828389466419131132656503924066129130605163015247700679771622271377430184392981171017488833628765681555433071034352165772977956006723007836259927286229648356172012609866169596419545962199016498812566665772641860403556321095354972289944756687458506438482745309750521966917953968724667062958254981990051186897159053862358257177709431683322197771275286569483132365933024907976562389951820134974949909242914338095418891209413763353348968249083835480590492785231424289916781105506565492962211575243023311694217910123319296548767615385017421310009450825916874776499681120665594127810271501927874415613308221662715551042844250640338195955898384772975299294789306953375258537082075133920967705341926953942170267720117086717935893920165207815415272342612705559566978473754660701572344505175716031849342578432479890464681999806337469686088756512705082690291130271949342439424542314316661395030881984620399932243145712930888166135813503768078297370481999016946403480399028913440429655612825085576065409397161105091028395563290070913302553134393607983841433819299026210748880409973456229019392863509753026566834576250081814623445636321117405470582264379144990775162114008173158026323734976660831497461045580971765944725969957356590434541569852813329501613916542784814201665730291968506708173779278999177356424082692425205580479461164577552488068456304396063654856211900516351934876740586136116855463781941150559188375114573599684333846934945966531462446713763709050377708573416223500162578084497175134883767008097001123511224229936124693033533587648023374677810357115034816722772032837814871442346883507001279917170909611928389338939637074082742625582779582708141286367764244840647755577193704951375106928422895269979996851890947592328659273171463686554539391854668911501396161850944962322393616299613585966991923961325503980927878735900021947337745864404837110458667022770790527854307857621435784925083313666625101832204051954936274901375029623401307250228335311065739069457020713935759292052282433037834902843911983500201042918968098914632939844810894906697392406044310168238628217113280193576847560414205618785057001610629709919206076175726863090400549508263199856692790493647587957451697841462830753798534456267693964527860154685557830710036092073412328977993722656400911597681311612614161477815067708818130356858908417885835173406599231150503433523663692836420462945903685896690518495344125235842306465067642237930463671737096240756833392465041710443860384111961996776106538207456220464561989420912720748473863975589781890123713426986937983540847753077557241549783558083411754066846101294190593665882919170553763689215575858290298991593320619404700615037727510566065548263690959846156768368375312928192060941611585334233112583531117257897364753225665478739874516009552060632405336208501140178416875419478385413486360128407852331345439427342861497304359155101336427500527938164160521769416970896251164591468695502391463419858678705281501156589782790693844338007783230930746108501144630490427983058699194230215889135578131435616904810025411866270965604190493053783749826774061356026946089121895469254538789147109853122754766916273615521082392105699468779241461320164066882423047127105748643601009035821415037983481016117812753070143074326232542871614666831867014657325385237503443017138081434115050139975407456400190090089990555886743750838624956949045599426891170964519133026154233019995371765487932102914804052363504830627931755187496636576960834564005457888018246716307454006828241446726461010679744914689639439596842203578449665561556559610475749574785686018162314971368491373542429753310571998292412243330623370182137434647831813918245199498402864057188819732876693022372475948226208846380696216129515357612266067987093877771895079445040019828570306630027752226407376325187777228897717072732445765527173283508797943965434429958208743438947520783291211496096907897591722319074321954173932536253310181469314913510810793697633459934597963914360274557915415587328587535649630668244146179159180282376330508055908794135532605206212021529964468745875486031642001513775533934067358244501097951284279979308801201423224701355977041408463678802621833156866275629916919674448676472479524408548306575840925870943003912495233492748711591089254465507265423095689879613524787391839223993475095587185744575193197795523580610691939274436710262474800577124411982326185363924148088302658173651249857672670955842365229081226619812708868820634337480809406349867686212654465619666984980620062847623206934758810383409663813914115551296882720501177517730357467349206488342618295046800795825077549371808852416234762461974606572608320254044434996788020591689695998668338706804427288881998582625752050647965940727515144013848392702158701882747526577666079412191697686422234290634286192383470876774814971662944139488360866248072208592589267212170786783650032564389906344969619279219574724066458674566433162792223898283862611599741248498624515129556450927688070635352419316374273279378028069086106117334265748823682723458263168038836327268634415672671856959087324820503946474939456282125967248634400645937971436132281849670262666314888592424720960805440592761024958390258373844447108144483596656586580268232393359787795464922378773538961712995340801957451139067445196628611272907249595401057117120892340833365992056264502457245760182722143065253922117337064616388601288840318073724630555664260981265734874104326323123820746984017060172059393253414561261894162967678047251373509622560447084803860095814282314609301313047350443421999823665375070069238624850406731886140852554227059703758272710604995547569302620571956987528993845206577234146971642772352126050958359249371111053168445782654912915823737152493481002393828795022860634804959130178974933036005292823006504796962879800737964942633616423354264984014875238985613981529704260004212661220066840684066323505371126964612899539726693656155052377571288170294492468641963152436770437019928676768177589729002375040126469999070101002839739741557656094714196697612447423247141672663478354700623556681254647382736892094332203037718245818818512707747330154053769440911950436862775393364370095814967800612631833722232902057371846874969707089636272665773077478740543573782756163795232683498458959516558397711767023423904687095783312986429292203550578296052903002045736053901279931045978340044051471098178119993886469185668060528989431165299473759417475509512573118626983015208709653799275142546133416386961557222051973021388157644517754054937637066965696234042505327449539827990608931870715792516611857773692513031293683902532025220490228031442421996156103097065778584905416930878336490486267435626871905976865904874271106148925303916033822841377190115405429729964877188694662954970599347785842883593093640729811661569527001987178152725166270904777241116467100154461846011876826897671273759005774501358618059506158407187386499710541702239687374865901514083913069289242461264174558084735190391388185555632156778448919166628175521867682271172622065795174121989385940632659946615116983875827889217131822777723178281149702654446422893713897441923166154305044507899555186988235020147150418405651601982913606259150658772404153461785207264646135910837821351909581722546025689004268557654899324608405027293881081426224704525993146771067329315958376852634999983417236850701028423379803871443661537566612833373362851066550199349592361965489633152879751899268255629613394102298907391686846070315007893148981608003041205079844687501175719145818084098809977018874178522570056012872124762322191073197454809246868472189558067752157646648283405931248445754470536431267822357608365961839986805056337398052798971944131949042845780688678240178922013280167888450057705850197056987513952598840723048993212747902548534363812089888073892141749705315498346632947979906624555551787961342972158343421681812335393843310565982046385324143367306110328079967963596008544784072297698042936064803974154220514327812100139026535849670662867195573529227995053341656928752533003735503890294676500495986785840151738186378440617592988819082685025353559365601139142807062734681885418251483560621917519025454095472345908176951706731431013947877862157496243181269180418636331504320504332322386743671841754986369123070654165872015784970577764587788742437734551868254985159025175904122258246735951449341814759429565773463459436325629669491741944255751435212780598829712324879962007136224203988490717043106445184966475898125168924901846050793440899642464870227118473042712212587961820747667147908572856785302693740018679984084602298633323985170857637389695998104908561105050708525561546813162032250944411303591543867169335463758273770762969900031368146869270788899878600371318362346354793933451442923950026377805810363633654296631851943236011995255689860563557254937391876856527874533367033342038473308304723923757572075836909501342448852839803477633637378004575135382655340716111793208211314716332441481011846405177953780705604675619878625091389938051815897047554852091038303448965502570373209015137762510854883383552025793372148205937360042272617506834782815222319912852974942720883619014851575219885460788114399075810256138485643366861165797702510115195186048233835189639843061833386277226073861417650565037327147074113847126390651434272343185699671104312117130998887797948267550100878755461754295858638905601149635045755641966290229373326747818338479967950298218602046442027206902174232679560361924332353736327726572334826398188637604808028148293031391841494448829128985135607507168754598111429774152110617310430776404323405025742667484320893474894580044788061771906795901155547558504574483497308538495881850631402651425954253147821365132418914629301389162830543792341023577276794817013706452140367430900230713901314463683463615669946840205337211893891371687131123115510867362525803201112159794973142661061545023181790306087396060596035548984616031219503669366404107483266624061409398578381356328211321946684083276022889720032030941870718070746796879473626704481421218543480558688134866398012303703930985050461317967637047062027689900405032390752119322174277398575643714152283738052264454328474565481155080104247965221999534655439634313990594076352581161075402418189517886592557908272380480603296590736647493935131569387880174972265329629257677133687618134041130428775409971945501188444523160609785880600986292495069809138671658968149048489899026299851442809470467411753285533032386137244103100061010577254813252487117053360130746024935093030945339655560756202417522616460707862807368940340711231778773465774940013398839000910113281004138108872982137430213023574620458656151199508946253612396215117186847988401792617854644951957512833075150547831782740828226647533574961182546300908370501992484488895575817716352734753382720486765890282035357031113648241812782911529066441989671624647643508085751352178168566978680917939096621103453071139785562831841036877131329837415833851994078959342412496408113318715911825581037062468149067001249413144873709200236715395801727960590864939605708657607214882998683096171472833388014408003562440261339899015916362563321412738024531949699199535349004157749036476794140528909107041496438029904502353356074837510974126154448515976985326088406776395654322740943378697678579933402359987299511172322955477651311158604407700566344765842993915126183037969832110622479309356564898601266995121543608079968338381917175247034017112955421313772651124981685009100214203979303989315116000708611189607635905780847528298657272332175874497568174439967253006174400262622893162213640577971694925874113408518076201673984984490725185793448589044013912109153854557515864822224115838472868485508442798689159807609863387823157857992299037234546937429002631549673269056799793813891056189320705014997118806952537934817405020468865518992541321474684219993787925857033333894356383448207763167929095028883318641494262470612533281884327476044030042774360684188219636321567784276611305662430405833120327766633008393373110711959830767041912278727047640673960984787464361141895742396803368802619635940103037711088037116835275976231175300338947626521129431382078765855191517259186236406565085729688281790244410268618457910867206315572891872924125318623630258551516395553267072506942303251986250388789877894872814147671525283363591999050812053936708171097961959914904180033302464271402514329108907095799815552064469525260527882481079180406496935751555446151635931935449102061224594324093109996650649878178735043546991391691883466617679660340075013983448421881819577670406093034457736065808246802448482091131536864356546205331203698308714214092492927860334836401783792414131575361560021159399731612639185078986780279066379822851805304464766600603952667156459967181089225432424261185979528655239282551646995785304554994518368164803055288498697669474634688385150611208618237516145592928423617853002380693954164569029813144944533624144290002412471005776767423017103669618471639680190827063143157987030787839830404340870698691622664541054308886599046688449881037514383469872957075695908129041159369671389562699590391615885755483210712093269312899717709487002834091264032675989006636479743237659379082709723508380840800788840564690149105607686189043320405398032120786786055979781636665229210398330055801995338558685069824423302082680306166267816290854025894600799318035844920358309553733742077649487706879024422317550176665734405328128514637182388140381639220241762619111278576385595921625630642154043385180581005578239743811968396384475818816469372008690361806503848157945999645987785675373164670558154660999645662968695179442013748283527701738393196835181829531569429794015754522766144619287653745881153348523784501057132390903157361642430047428851654864646666281754828983874556159457067795943171801838868433839135600200315203338044058947331222156014086348747681492863946498892004123210803652208888153832593598022968113430157962925095674478704518589852457513490203817333175238131167961389455313560773381199552910864160120932909361501836020138374491819608963389359321236935297452164698909421792003632876308229534443345814307271852050318405058205547212297087267566645120720666423218204792302364340161115598683317261448354991731355681305836279764598021120801643270575035906703160527774331883004588585711814642279524583283261374089877076582781350169958375962821013007114551939783416608283980607943171410009368670595176876102232494511955497839976859508626236263806901850093474281581280316556837757263982895672416815894879622619183912996827507994617404397896125285327224388018097386042392273820115297973298670026067697057449931465668450119348928963193240589036893039989497984166782212637317216236491404463178785676409281283057451269429429901735207031222357627338720522467924264554444903450129735807574060482420096554025325657025534821155423517036732318188425660025700208956705426309899730107968832568081418469689886909999505813163298595273638751968132246617621996135445684733160338828383897640702310349407167648327705199762268896989023591105470368233176526129517057123478594005765104590489172990282431632618641313167222275347430920927440268452291860769896620729532163054359239797560791926228987175065656546245419862320233419877168783045070396773847474310906961487131957501953547500793274976929296133191426252149459486372979419319750823290400390731905297676187237868417955355335644105067497687202087431095283009252045201481451423091667310753140046492159082719605740943907567000871267078494342007592706362692767784923326922575689711150282500013276286976460847772624478842954157460547850772058098288313156105740164052505657650400502184374358747436169116779582808190847986342361564869387064832794280075184878840393283991218112670734818005404919057651112801307160338541175240852794680445534921418011663776598864401713104742673155506839108359209159351880240092004107106280052672821822646119630361114913847856756616888096452468649366580931287671538840639221759603309206240783379732779373088472742784424998797129798070102997942175037345652102734806917314938681188839456780915769292219360034478872473632093020136830229011635254297510437133268855591797297680767791424340928491984606863668855915232811921737131945422462827182469611709053884806723017078549591498485745281109678805559822772241489046544091703794056405291578998718166658304252076753964896618895909997296559059032415980258446569549723924514607469033690702598870672417213727572185780821473290433665746935043150518627289315719311531870414066105848664868493593811943999255428121651181266870706166515689419679390164331883978730453501149047679295008900568997306695807154503804519232312224674093197603079877273229853176382701503064699216691488955229773364406535695870953586349730835841864449013759415571824367208714538978351668785769572215841887881527219633636771965713463697042300926063038573327803190877899168343233838752759564853565649921980151476744136595667311573150439825190838867308553285291291860901858555209526334477802300102623358390532987266494790859163127406874362857073312285384340349033341103495556386603326102148018496578588704374880681091386131570017303036688571117750921762733171182250534735535728277857400686086697873699482424385162226956249384211726781799536363858211034194786320306894969321962353741867068063135472855785271450575393833642540910658856805976456188177178783119453533278516857453949521183642600313994521602760056026870070847124293615097265489573061909593928422567483605310651082460188753689159131950851476213970203329867074543730409642449111181274829350350948645521222661261815316789769503545556106263233308487929844923678314569379062907332005838519212308743162352112012651810468272370774063884733994393476874459876009695383509852436056079742130276139948772737787245595185877453371090632756497267629172556821560758261346154467562076846181624874875307075425998426972377277976290641482047802660675381022531975911301423601330937269347493357779600262556808366825622498839571592595353762143984300183529855063857281139643087396189933866725852961901254108948019856138180240975160089335912350522734437357310649105064516310526712420711701578436005360743869995150714376065622894689338788553500418636747148056915183596071723437614024025704492287196499676621114817810214186351835694003603881690831944106880235530426750814768788479916939895953808739105912465271137625155415286464047044305985135837619248957914239918559021344974760519001780562246363110932967936419350332570607615101091208056458000513288282913006448862476225127986738816858367060665464619412284663625431226676632117492155876711404543947933984659601145878078515136511060764309679870164923347683166758943896216813662011660279258997779605455449438492233298081170241873651576627458186336020525494497200504447449269698643173187832526026381390649126761879001690127104535474188471673192977928629044734297582398648970261589421870752881730997797009794224571516043812963095238965066943379586465410922095704799036725337515549004807362114567725579979774070995038322880128552161575621615747791650654284738990374588246607871936963487973901452119647563440844091489955214953833749579468588414692686145358832456974817255098294531589504691690745191098151139488795343522967765330920372444099894429285012298829047699776298109608257049453062112211211936278220221864741618317764280760710993123309793508593005992897397630118892855489015762787846313268022849473168911470206802071902935347258490970039135002862702899408471868561774297888432194888241346772498495837245534980178500304136566044911024621691372224330776164582392429401401947205752111075491242264906981637583636798953835638065906345974946467395260453627985246346681264239000450691175470030202742842889398264518251843872868272781161611708879342894079634695801169441164169570282003461141710753882367396278692228452021687322737963013930490423765741418410620100095489451158485464351114936626040768363869623813759137274189404397989457961637528503536066859615903929282847149803660971583140266131849694885187378918596538855725184981750066547785791115686761142639931871134119535125863370488219132054255460808209528507004644000710757536624753116507489259777506875278000325128955807230384447745661473583767090774178693700776716256417168084840466801788433815374948318014073962478620156071390521276057754659788423803552429181932320822098708629278137952600106861359796287921062703031396850796889221920121034815293976166079669504989700885273837393520574028453366884907215905279862261007466909872411773069282609659759873160282959974695169367525668084569015123194955245966298924291155028158516637497642892717627975104608312762645002811581686543757624169863501350739066846736497388843089127366060131231468749802107084443119546162364953393254138667888911474336256195538781051908408529166904859643311049678287122322688277456023926521243208462995430780317892069422839392005303959813049359849924312650376387726806471267725884713035029975372354825044671842140463762171800945010942232190490491930577349566594027524880208008998295153449214493969545447339548069030226337046797757599352592417627664803815863475453805361628649737802687101975923841864604814042378844868449682076438987655618498145632066720662790471702027192387145490719888720911645642326617686676117393337312699449460955278661492141803771471369685028279295692068698588532859813709498638168508373734279778916116164348929298073248955511992530397065166133492377042500457263378834827476988728409730172210154653505415709896447037590612251253856946873936685440104452707706920792366381170275085721965418094548609063423579592113896039495183802157355292718783313405094345034593900786969733631385604445650296973167648359186396729332156845916644449987634120257829733484642677959603515984093081836892712155395870606526586633436760320871688901732178501328965969307693743018607572736636926596132796303823742728026845750023064335251322583183397585800453175061025735230873008226340501016424022023497347294256982085507564210452713221152558779654814823274223565526478613801415756026001361158339256821109889149498463067341684530720781304297808370989931256055654021382823220169617648047509663078714000019786484367034376396444737247533411615773874984381686478954427235904444723100702302918893805022672544839395263001383440784897132169867742870369792464103176580627040207358146065168542918638221192461144956895383816132217401650492735928881559365465547572055542569424345704286837660204677587083300900384379317774244517832587875270855794845346508332772295485222148572703439384139799154934302647391860047873768854373638196629430729104351475590750545046038878557832401800751644889649724407635826676370275151830808478964086355799510731065620482690216016859162896107642718994294800094178123765147218038536854721440168205317500186707287033081713724094003543553776672638839680813016169199342550478520295553794147593494303793924910143326969588423315873152547066352774425673615290135504214104685623345598104009756779726933980632461389048050076769860915603993625105966209645389842559917894572303099491841109448051955852796431786903383930106412071547697544225772594702237715869238326067207516365196850522798486077398354553824809385808383464899993386044301044924957938144345350695385110819930562137442503912910149663482756265955933032783184867967639114040891099799093184452282872479143177318915313438421500252951485433806740117813000878584884844192343464114164660157082754605190941533098685681673745837800522119060480924130612975284120198657536099183657857573746583907694016552920975747890635798513872998256154837646783935766351270590933672396409076254624295909802074315213866086278081396627185432636257373372588453912459142342291024934907883848967192667109946924026010712454787310343293423037213860379207999457267276441923620079123816112582907055387360394951790944444263090024044679298085414247905873705095493961627475815303985166186503291832793726383604741852844428949745109068096562833001215022524394782873136605958244599790543318141880777160393646413165144189808264193662069530442117901513722842569898647439532393368860485375638011330161390121646313253144267589107311086472378034486042236620796233630599391091422456007918098204483940865668520842704570668312497836225297128403039773645087613891387174491324147480895412918741612564808884742273132431651422000558449318281563066677123295407336924175166280126954056772609189254322722346316562967838091707223171336775566977924250456913961993695805438382728225258574282646152087996185450876405484561462901151650262585772959995019444799425122850879103898652449707996737190798818195805090545609368993179498097912023022485248385206069618061316843324615974805837641666735517849072645194198342965601868291619348166324266611041198914409010219047293833528797611031848478290428028974725852060459170677625842847882863281117282831220973931512440853595809298868403888706759932863631931083177026278161766232777594879916930101397686570755869358951475884303917339481052194013114063942196795892404164715853913293146182032885566281546512460867706795009221847259227077141729890707113599828846951084353097938715310315295356414421575171258897385980555928259482559958671960510454096307962979881895453962441102056372874541802809798878777005984927483208268875884668961525400962040389909609486965583354525543179708436429498419201557809538459858689520199896441663230412770333287683491459733178830089350465702497024292527670379386638567223886493358760000359914612402035789615444142220380471319886221532568342946937766190357866876238833079994879310045224546936171968946106941487847277455836432735664205139595089722561361348987005990648016118728377493340354972088628299570808516356494703550408138271550708243795917850979952688570847738972778384614419666984883656744940836529440874027084586281664148904781969802134239229978297237477124941580447131034745734990658495018712798268554208958353922052600455392094153132570182432477702316303565400017179945427546985242692594693141346080123559211260182557974641592887637864635223072473472083957043706282637909477801336801393857905500132843538421443143986560928238993557007354062067791736228664223704511479246946346198587116909882043182368475953994595955127161026293163791922110901671449947182985894334649395959147395177260073219842618790188998151582796911726635657835706327170052289069790870945700212677952479259948089709195720624702956001455689239599562305480288024138833137729478720952508136222896419816544941753807048640334198281822196158224420375163810728104416522717033393442951110808452773883658265907309776553122062509804086861373319256386174993128681438998359958623198169769066532732484755228565982084077100466174963586884776756436950778805504676195521894974114150748171849122734122356662574822231219311718217676378993442779123474396702804977670735488052419119007827559502618915439258153781468881547774867820576263053379919535109993835886911708929008941076621964643044262325585590281191345903850164510555750076886547265453623954178093764608982856412651735914381681899175770775917569138166171780331661672221047705968930886781736314832845131908801870752162825646252998068095151271767131549468370082042430479888889538469049168706637711393745782723858191498225092180770122186496508108578406852301336182256956140038087713641667411073886769240938103677977471975125181199635625250250009636867784427366611622165636926963369528772688447070074569345467584967780546466518215404057011364779508770605605625395396980752326518288874308085273980489698147096632731419445926399586210536415070914473579374549200922418165247337483230030513859089313864988854164062401014989368880639167976550554829801322196754222931352952749068050052015213689749665814019987918530619158835373048521833335293647774564767663871517128166673442252132142753131304738131385422297046745721688423444176558408210641512153290674673160389278914531466455369906397640266248588415981459262382457192794743258264534662306862438279506385677512304463084716225949310053475110502566950015933035640317456614456445535248416247569873653802754582554156266788748122428833774939006624202303070588223185666518039805406177390270063950167571259902325743257088001830158256318813391384855999860367181719201917873130514691398450819052559214964183164472717124544119223213601840049510803410237676289520807146722421030027850999051444512500225111460746403699487144636253616079633731610887527165450530307532056123795930133280591487537916315015973855498953705818045852456511274865326263202230521876475948595181060962469374068866189314490459595181159677169676881829139425098880256567425864736440366984697515197462071674449486616365140770838625546149833719199657326326433847656806679303096735666277519616906814780721466045040020841382456103842958501081124297317847108052042404770334427921905806001496031872610204688897321920250416563495338650040143568881660216757003265697735013316564200002882491219101088656970875711409805567558698016539761414502081460592654642429847664165291767198133375426224967963911776792944302226313057743811406369233580417652645564926987947895970609162755776645213152511678591600987617895746790425692626738825643186842445108866190419734669159909096348231334815729575399738434953553145048210713381600837477969258159933136335969726677822787821319192654436655048719393379981130553183949977444400041988759297834731355081962272783314642143837788275268353932729627430378922408857642622512740968966227966515174120728777443153519708561589722470136500056474809555584712806852743900168777928252106236285613049402773093146993567567295088502681842053087020465929361915572206341641218338203243654796358334679133620450988309819434813133768328366818651566507217362052864963090636981697209737382784303505543902960544738127281976778082453689603930647417030665025032621447225221009085189314102014567456000098416337348174478738329330685383700305501083456542263245992141224928236710482997746403127697391536227323321959371433087985272736462306307180662743514516759267550590350079737126889876450536049633080868564694168060560784471499059225224620702345748378297927575346149710185896793598896497593843083670877965540338556039877259532883532057120006126338040954949637123946082771008072604912277459945340142731142394278877291097157366006882943974188194204674336236224911621731783818460051475283813456750312338638512705873380761202606786470677398890345000661761231119169173579830271704630693095340565068200039876373495893557110617193028208165325231195610038467243639719467936471183488580066795531235787206715920197959854006152503946448719460343074857740864305868761329438530945049568973006257546732246722842466380725131764654219149331214456715498831399747326308943433478408324944071883464797852261814943743788073143750745702676345058938272290153517583065536360295384522468225063756760322966483755031684296061429784322531569468401259039048739366036628439836373809061987346788567026003269935531922921762652412536945921385831209498912960511879582670227724689573570543533771300321409183020587093609907485579274515216996962285596490830108025784881770118292078503573828371372476843680563412041155083005058628385385316967901503439343997085791759907125988230281153264242532184966183932938780753489987253611932895824459468386301198136668003445011328311495569185070512557155131280402030625995647715685135967924698242447990792718017719194703970491806726643026333293618774038233586121672642511493760269670717590584059743509422695344878519669388917456174852692425251386738472164647351470536096497774627812347521901850155713285357819046917813522800652699486735414973762510661051985965681004256663935311549952112494197106055418993524662791224572404636551037033154548877650620856234818395278450146102174937932536887717343277382374350433237052246746202905270310685476680754294653022575544419603000866664235096644835728082764461027917339522113748316546587609575159944636896123626105098211890973429027020500945952549798131345150255225824829358471866586384057187047958118020745269866491470457330138606230995688313166778940093323256758747890535115195687981588539077240802185679619329431611860591767355779456448589198213514861055156732005600102227681479841640975445113793869129918805718401215765705352288365779887406144543747819789719529388542235547212573626898549621412123842590167008077596987800864002021999045362408939704070902104753183097060076595123664114170878541718755978865913844320988665745432353839540589928774236099411176740681599669352351629246258219118637580794668739095076351608516577054467224356769446870777817958155124193065917824449807071351035752979342692834578932914646617742946919995745945810722248603200052479766041148700378327655537738543979432921113893479319546411297694866775696076253134694010767927187604195494747347248502515034781059242533964835977756389057371748385122176867841873756263210755632871484133835760706348358216070274225866944440430374883589925471508157906301143872663037952026928212493897163660095299724056078584118963643972332262771990446723314545174564641066712625388453199653115520810848141291310033335615372729098447984213727910635842740839137597344946903745719973928299324184542361095291814353163251731101675668481263204606355790907143179691652485684164069096892339561245309994829025136218754072964180144679507202460114289391708599262709639620700850293648601499737768639632239117497060992322368461889199942866112573092028665588016940724340133177779551067796937567055854278911283858969502129773370061249007124273944369930679165382153024321356639009558176814021907450269122160885266537448309789778759491730915078768611508212576215573330677895633748204218935427805277074846086845698012827351970930715310554315498815564354982665784286533310588196675175015476728057593147721168445874403893768708616910404849250797380754760405735844874256882946808721352867671727185052451948849525900755685865152320517733907668683346682335697045151013774178006565176227885660905931959410028541935504677957689387096976257645545697455527496876830893683636248171281778894280934844558479144563626649661420607217927838836944504504506033514700663520445584043229341058505952875239753408479550519816668404200799609785170170022446905826886843641411463448809398827277064843975452887703270621705121326665412845728722055231318963507360811457069926507862471659994816906917202269879082956047777401027430853488423844129966253400384033343550554540900090783466002757246874512756010430938150915064108434597147089445651127180226594361956207752969234100620490754837920826918939547848531451073500689171679895795701947590935939642196432866119905766375204868597461708638412783542171783675110056597294833115288050419676982011664430312437397469412944102569710744508063495794875148843909131751878056821728791807958866463735878570152167849544196741805058329003584785016854814543126989072250605110630843327730480454796896782596316601562834100458098643361857755921043275422620569678637366897227101374514978427300152036165724216074590039228659021643594038720472548390823476615890581264877869074431293164798137353050188271739510209265807261697829022017360818444084117445218307519087908518631608185092499734562334104471174269488753275829108154482807672662363339278785482703596881930375852121110304901781488235924078729261646123409040990834244271253297796225044810790476063215288313100000793455706736646791971839004124801917962166824869632056798828144816422428026068675653979915856365136988585440892847694163602961244400209181630431249280782312393204823426149475541820186221813251127072669227684763486903160424255308197359073536678702162114670555978995964245740660983910638537076838595648232335618681425493693057422043785181131832220517082815838651623127621345922633573311021621111400017122177796840407134990282616267277294047168521486577997754380609056698978103526929326040135469311878832576783278983482007389833722209876560337640274750556361265068451060390500092550385042698481745584856168320071418563144842059142149698516117083849102305259993163364837133556137920929919128050672889145157079123595963212515921435814303538739448606240557098376108865664582462620241750573056913265746623264440038181926393871921616553772086650193025222674695224706265726360902789727271997721802743297903254457101274220030688488635252912167849540014041570886094663140318914681350606976412233800538216818006995265315513219369714819651208740511700961552864634526658197758873540962485824982562250832504513091391164553484176380118815713546637270195358797944611963589881093274630433808204587022209864278758936692635542915239018326221070493688852376069241458175636732728405076062390044745639470666109531467345012621998048431921580261002580870188336716877149633902722475372955600638170991646160543737648961387309009794935836147225957714061981881124261309526562678783005699284973111039971357042141281475613878709748115919253492136436384623177490083111789257716363278782980367829573060117299431365709486453650544393778221164950267192575071624062885476406601416704137629736586876652707619830201854846457683092725627852101894209242524633885557669019139548315162414193359270041654501664535587960415653802264800077059900925489274502455336172128418413756736788543277757691062968884678479900715765368919615346999435015066872282626049222267585819230212644521254701862119428243926722916036013297168055713110456693867193604935336816070665720904074691787702827316187699193366913358705153119882053566324429593342070066513055275056109933652010096237627545421710220264310365478046162918418162250420587889953663738480202945622989006150683556774369168614141675409174074652763065997727781058354402993533180570861759392216252642194397297513547751720211403522218070609634326353226091462469190516770845675688954353084243213593623357996625742257936221038574420908085976860929333308394268718151959535997183548618553528975984498920911419206669167506696772404630690941024457372252883717748162295786180229163594003638810198805660319261027191500025594313629818966804702940949394752096818460757725342184702584292339558318263128130815541686869411548543158160699415232499767766200829762784171295680003993689639638044465776094654634226623551666723496672800263128095290340498756254679305856368414474945366914787596174739535234304965517162631341576632986257076028855587601493622111101874760208638837560467598488919679233569963288848795658759695103119995457934529614181659696504326895885509970129003672477169490115389069212920236652166163177592959678810666157437479997719498337410670600734096605997784716154259974113290621902687683864535202935683150144976427226183937855097397810666443453657033311111952819287391412874832400299375816804448327280484534729650923857077024841560725067815590573814867360770799965860854040034241718139999464641823479089233256950019638914540988521609111515376749388723093126549170007068810652879907941584693510565361164998328696307568666185451054281976484155463890158546377726420425889142365326959002656642732455909114473545636532071573123932142061331575634573872214459514258579435805865497274440712591088418954557402462321095698364454683242417835210665537351289712099955565350092805268061607158326031606869961224658268064582196601097173078487662529798075634281924049675890974453972948088631028142728004619692429494914839254004558973363496054714093450108384501351354830558261570883052472920637271777101420003895211848256728221918822525473275705347483309418321507050539295606498154685979053539070880507665614978237939808099847288112348277638923968219955304072208893742949639341387736201786935208673874379132938722761219622980816759872954584378475328249213616847536933701350816285649678938629298555826364290037402321432116529936595932300649900698300312941028463098142747080218686228967512466241356416666350156848062582180361708197748888186852197357870471452590454229534927950164587431007287814449571219189578651027019876341194678959313089920196931033482079686698362650838317022632642797319545900318074354885882924366745177931480317880874799209243230071204881937939493338768082120812045523716883256366950053744498920633700489698513910963026741789880701186159624639821606481294540633519727061850014787583726358462112861475037507024839085899623716940772998687927872262788571244585389350103809365411842993121803876948863640485386075591283765179696513387584146795150621068557010256056471761527766954691333193657392159558273130064850019941943174362612659516468077961646466610607083231139144979432510644903857507375824586196920133866191687615149542332494029718097045026746537645775196156651423246330159372426962275898230395277062552779043249968172512790850315093882047612295507285279217316468311082331954814748494020272180548194346018009020582726322100269809440219379416577119551563931099999682341889409129906413671556353476511109459533831818087668721321818384642443898527630502948689021975212072912294739680308331325445504818521648954474114371311544517532315239397701503890148936564530500436844446851844934871970174082856478974519348856247611872032517532532652557712566583714477945487952375697530905435076345577553412129149733757196682531535378727985689864106822134459092213786157385148871308830968630296750054605265989688238807823536473242889947263349838499465217348388998837299755168844223078585633217475189859445980553781923639301745155392710170820135123455547517168798211920334542054774597004541820933695243366630224002351398947479726430352677182262152115946217455702355979106671044313949896172980083441543985152884671545234184538814627563085736397449337608524859519033484027963983718863947055225679627883221605712561822509247661089577692029781387152012255779407451203435041265784893379282699509960119242803908034947286773549629978156694450634274829825143041991437279481753902938839624411788631892984887040711038670610037635255335502608706881300555523625154923926271971201473521953520912990659218979788058141940956006317468161411918377856588552511231366745538391661998553397634160776657186646674484929142849281979669426413141694812214089502435739837087146573036939243660559769730155411335029756645173059665525376673931276325661585010658573834159962557912636634970792042061873136515736965931166182180885267048566969526292923008792645283111380776943259111080150817240625417367007888062278009206670775534102921165291459784634462603639831761082620276964152505462507519603190112400715176950346951142195139212146659667405549859851444635828482356459941767711909592667400295055793634453988069837328371719316136681091727981942640389821610320771278122602723645535795892908919843646454849241448893515999774444149497587112634747757000240525477543565718050090374999246086481844011020127311877810289553544452638065184771360616847409860969010211709985479250715414948434633886012677689704030048678592161426284946983860782006068905592475083661954093810875380737416197384802777916998709106763049473767666646305388734855993233302405506620592131287369407865373002498095418237891310334515627502978663749641508126463638704390289769462563873563582598101348019112792263151782320867959148903513963147697019465691781593113151225652700067033298801935028302662741817970081940765436716464995985118331551509316776853410537351871015097898092756009339501213051866035431922679767768295808046231562309223023367091699670557443729894690160868959861181015510837334356647518867511497965738196225995422458137053127898572103834197038728158708100263475324276295081944343264284469150807554310929269851832400720143796211628516239038422051601402175672086044232765544372485422494171414254773950126784825206796653117536364901775547230426273676058495095827499231304339392913424910469504406754176597627884080448974415088581856820100761432489819931474797809145346283063576736841312568780547099100618320900425529520741424289990800786998476490849117362006991008436174314537623594214986712830168382248715197342688737789036274459490375193102455546311162007389020732655546849268451450714402219495048046438596365671149217553329397572850635578102701350303138705813627091750403459703489530791051277506842273792965132833274980970080922968490602657187760078301936054852460400574995778952911324571363152376237010963362251728652857328195244147416389887283911863179560658728138016999683896883631283394016573801731655712681252759005965509785668131878421707582231149616106170101393991258811220145091072646354012804377438948757831451005618142806925224566863403704812656030367363959829043811439340399247170364223799723687610266225051703356659128877302277071860051375062533896481637520648257153618415958239084886591058980532524076724978110561861621911085599751619509840908984267218240694540314956491595090069762998799561755976528115330821515990790520606935666232495515687481874736815454943057404156794025055788164240005946811687488262521208873460687105568171013716662642607048511265007126655695563739696867136199403711039654239950763093179123889249090671381292494938282039251076210076717306978265113895190383445826407439445255022877216425511304066949628115006946700680828663975609279821734587634153749809345868705155192307233157484947894743248491425945083709591764705293725491283764088740501159036531194143685649302215282165592822610308997386145534221808048655694351216182566099233679763608534631223819667158859631845840556586214472298792346002111979185744152337053794545840684591970215982388942745615811263213851090442431334437766892448902799793148885197272594650272395121654656848859496152011999425317887530387799428590693986721518451637007694466879784421741270963797749712126466375954545883231080227768509722630020700705053495227482566631014244897891817558527452603863506171275108737711392374785141399027817869001789966949925896274357951920291680464585601901803878924059320470857867175533777119933127156687308220518467909874568417449456363880106978342114052382399412611309136828388402598536118030180615347256112572427273871456352376801795573333654911791919163254821322605553966011622860080064627010005284040944059947788087383603228883492543359293090480175728426201516518438989011199735448508282901677469792515446853275708308900897240126424078083393412559956036266707122873130758729434820098024897354563325280565305998235638513041223127598194347082359912610202830841725551767018796485180973577307681270100658581023285621155427971628115787532068412494972895945357659198732640670560485898461838993333789111523270625686272552436337612838411381474871856985593796669733439951096175925524523353234357826553780642109359850694217350012110192703986088753095007748013970593395503510604315500085612166781193247811176676339849680505413094651599378656063146946526178722063573848276033351668819771080632160393145589898492876066228869050079073927396985836073877351670129482270132614503576068877425730091794014647631405923870940622616049443815466325302354274825979962218406588815231603203482247028484654582408425637532270497802459411797336800471223795884141150228721924183897022356536147937203190077649698213879559278233049930023256168395276203088298728531702149529169153940268610507769894289553944201311365480855541575208102763147409558167691581691137261980309538797952454507504651452570721990633016698068266921661664378310614018838835536700977780355732092980592583174683215239254694555997702768688685068335861965940263710320990546980945698349761078310820077353434412514971673009168831740051719931135774102568455879957900033350012371475588473441129169749457013496661436817503123554514147335051582426899679770234782165472787900503414301804925789902191948199808504789921527519159177823164416909125589623759698161499196369749264504850665650794263244787999875767079962151879393348026844127771689638456387120584355203942823129760526949534963228466921084080683364249073887832062639867172307646862281746329738546217715851195505586901528306017038726127233986546406082741980713577545467855435795704886248163921786164497998763850185200105031284566083623167861466335914520297785493698344666634725088912034545743716758629848529148402446237360245845463558203068050203717166156083872829972622436316076239732629206753421248605208914026689166800669618690430491599652573731890024695562878646608519635884559123398096049008788777390847848444803720319667176690964973606702228467548010003081463838414922061724487718703392317319548043223089916461153317550248267428863563052836415280452505448876021888499697314167419773464492867296162422032912161953212883594448967930046661821569268862649052688110187312877036458705407490735967592904693208606724481209687332294744711286378173554730264049797025177621610877276650299143121931335829540766095152165499230301231910378253610308816198879370766573889670462267223112574726858906715287092374447291021379415313030347433249276588938292778547532995731096046499524185564494399938383495551085501225451457245573987487271337220792869020610858147471866147597813672365734322327719359153618031929805821974672353763096008582557186624197223079037364401029740884846547939088338213236409409228926895922865923471650058159131170069941115264289920516122372072619030050192229938280791081631724408851735797716946479256981033988304364709399985031549010913860516177272778128954255110550587810378597672605123532175644925654345238542531357024902854301063591179421536568396040871970832254926046758429145298255188488182975384664149662671421669771674342357951609691395190823407176550706559101903830118144343553610424844039175307203579135686137567920578707875225151902032970732559708854750823132056136015889169634975166601742132752014276963064792881930721214021238312205186928945376012414376588968403195357990498796160240872100651239396971282240149230683688324806795151964408932311577079797557911198876301730759080329595914977855771025874693944745951790499620215874534718119578683274311118242071414724441990313422782450294962187938696376458528476069342446189914040170337195316829619667567390249874145618229573360531042424223273935523834804694376063367489167318344569384690804101387278791276153562157703049403883952269321415336026936029436416703704528765030619838375292745879627132812245563683347726463194808844082309628586590166496638487235040073300814447661179833458021614661909800164718872234955124617881176944440535495680923363071973596930223361967676454870548951264416095623216335481162931011689764757307816691521436855922692578238495174817254679518816194630168525420231144025179253194686008278354551113586038710552674967443364610444251702144450868538078819810820517064964981552301866295620553636363450372691718500359037870113707328222664878183461520217114333599398967840067343815404510009831116957611663141543397780296345270516098980261483214248055805846371059081892437301477327390651189584453876793993033160487749929639449969736722109727541515042897222435111491855185942535903785479921453533687847255590556453075355922951499483226791703253092969610384902853187866071235376975133965410716078749576484824356238358863644058862531804318976745231616625971481353844283183310900621507012927584922028839814987021300055226655904900564420709783667119480357915212275941210665475137447619483994602603831675796705341624066671785669518513334730564218860483306762184446916085898784878045855304917323661299707085521598905604848230346036018539579936147157357337410133937292477880810627102761882818192322744852399414343559717737139610871594719485290319700547666880710310917832712844003333148601941542166890484740489799217247100052744421845155866439829421039276223707003488240863395401948616449040980960140976113147394428093534001052555774312913441038386883466122634610201879213181030948232625003105182431164323936390693340731710280987780425327714101035466973547784424989726914881063796079860984590180855848819209350609840558745910276545582739865516620310809518661983915773171945270251810646315902129601836384180846368261407155744414965807362251499159818485602499170171700485343908500542398125710677284653985452216121056628685266527729079385532850509143243656809738912404651394360606909781982985350221440831204137261896399386967415479410019500095780322591202441164214510581611475168699550894301625144488687906013782677454842407648650720993632093713492577454212721942230198995302896510742965713889507500855336310153901626923863692863616353082310578124092682404647800970768728647108044958718023919175988274199706100345067860846677673501492076703366446240122609155488499042494235664469580961666309341059276786783835055932248639731981262703319713684477461267005762979484486053736834148360724192507367028097112017355369200356914857991295640340255693341454477695328077743887634369710486904784634590900683324775667081432211070768496349772086717207166825557268953589227915046454849604108029591329615151077198791047614220911062846021474905622236880296039054932356649368472208548427738634462990688536611750930947958195928976723958528540406370442054743998772570112164854136047326346064771955976810020770584628257737249624194586109978464386272933765659657748296132527816040107523617610135710358524228170877099287032641959336516291926001970785342646078774525727621324765258197336872547550806210259496062772748028907449225997515732047203671963804330363431501647204127649001766375975782660405061270873373141644305105695146086144898050693043528701615810563886689844156686746740861384753045567297374904682724468670600395977571331558434499342919620713477283429782248176533021045294754928199334851782968498289855784767296742075833836074178409246298476772744067798630454433013108131751383556038963469255721051546509501650214672545780313172204487067207049586186143285381635788821132931169717281205526884143236040578894603900176014729346612047990509516212185429859345593712502066421333583659859338526660190042666784062459590738151363850563749404794321106264999297298814796107277577408228440923259966563941107665977380292287550967094158212972088801996543995853131913719315488365576115302303166232451532159262730859591410724380777082746633697418936464161650105026894228064957003431833151229768489659908763227255841123524590988278888355370750766212457671211050379076903331331965095528233331368033445554079612992547538445972910944235730695886602891469489147942250255050518849531276764534678239555366164660450410155537254273535361223265307443425467259832714293778787568935232098791741363856635064890642842305813953113202966923990155837529344213372041360819871849280853556078962233317798708707015763344915112370068849416872261026300680101812360828131438450315532587789691474890134050094138547218376362347814660865785863136484428920831417738665292350064577577889051943081912780667550680082402828296879529908218923370758250369722293768512463705016092000093445921427504050501064860824495557091772557079472482669904087969991990096208087734024565762842673635307098003338512451700300552050635959728308782485020927569676714398936816719191768570747464185595221162267512166944499534278465781697891697997009687014872095653424114225153391710746632916569858282968019761723699878762324057402137636958349737075907624714701433615407995277545468578898842323404265469527795515394528368764054795446452433430436117682932842717980377639029158051570397313264085145760440095002644019259814343977983538780944069958686985596795229996155824989840602047561165866166781880747664120703547295681224753638045594221497299430352057561471816736034724621657681469017716499576192828182248380121056712009879337671603486242079514272313263224186667597913930446964345467288147484890427728098857866377439574400722424435997785226300516125687793569738038834004501297373823015727890819801863525656959227888078353867887688168759136195854241179620868951849601718989889258387204426333055381683829890935913580548301296837552831054954733783132714465641124327198404236090068322285571393269225601436270831824032065785884722312911523020359041121118824011553855994966225054597994701947300103593444707245024521041533773841855880295694585842732234379739930629124923371417809679050756994036615433418683681173467401743894450530273042766487797055067113529102563526238855892014852027881629035146626235056862461051073632122884091805973286310047604536556584686473048973554808728704155993381383698029294319304849330528434769618309594789749417538435186728010070985899780372534042317586123882011861935539279126419874063334790529592341267558053785933271829884086872527200615270043843359732590325480430183202160655293261360308748062275984734138525613049631905272391748966171209895855451222899797828357003431559404511323889360624798370168517479515602732721514119744427776479940073933327029080326356910649236344806114959737194556558229425087210773913837082874030470930345858087051917310313463630985351388834052159661752134233713229496157348479827165033631007577414194004288621602096501746014795083631562622306396373695684113864007033646583119260518625618664918525863858891747662527416093256322073230339994562092527599584334065457408194941239600672152821742470746802625651439198797514396864490253134801536510495201731742039745293980559811607704573941220533383913448362120876777023605985999883638082667693541965081929652838048472536927328578890699066399815335014158751819106107131856820464575499113586991915616688010572037540755413239050698175316929706060290783708915227105781349734807636255999426939853963545377539365180998932921734083894726350976920297266804235645048431413298322944889720248137168084699551420724517299307550556713127625171057738495692037054028823283262880374408325621074228087546788164054282032428791314339923589297922713417478594896214872256555270525879836719992974216497731538347600910476964854414559497102165738232282532475213961730494989225139136238440259255575143900367093748291338263156469371831705601551350723546486873533773175501843868215832228450486307194590026123546285044215193153398483899723323154611118134918784501179555700858478349576442401757176149263694803434298193912596266602547592291360458655823247628333110906999640714606786389772450563490876240249701345989446988135221750022255219528909466720780209436898541485044608575853252799146651534287523724988526020254456326882587789169874164588524333163997014286735863726743987310985895877942372029023499034869232663352152922913213921399231565008560116987292333935237641531366783554842724123966499921529607021444974934978452802267369131257073517172734920013960764029739985464870645154225001015555984577851473214098608998069392752377307803186054155122039299839417337648204979299523467410476876126966155055022521853880791363770237207975838418551019797027752410535915738480433024981826367362836996341699386477294465275340301364118260916320660791442876916352051428573498765532958127131360558520932012866071197007467903973548056707770998419188850929484198255365059542355749756169137808909620694368204807199178367732050651258295052546858968068956163578008528586855319985414043595596801972878536092712821652856978914256262886101394208481210860428334876674844508713341207672057539770425858632732947626740088434281397424592863624312512229775564617161096580097103238876898430027013761741373622704301096249435748340983304307080611427591316457704831594064405858540971642449656914498471394809063357645388907929944960189378811893734581199389856668647015965873619351403865259986486043789389893413594285178518382932623722483879979440867198045365306803279034580133443096501584806430557778569763095153684502136519487314797525950628749803882891954072269041904072107163926549134075206718394189965496136657468405528507351473263637442428062306845035917447246045356411976783334028259557769892179435519569470299297252262803673637490197997924951970699715446922124141461687277450393427663454936214001939864243936408905993236017871386098011200672332466873243156323147876674419206759762265094324873206635958970241729008934906162345669457358880588535533757987666200392987113076748444998176551188640767098278545922126871996563781827124511305924287724783159475536441060977158880517840076609566489502783706181206811137794714861551079099526714924653694642178196399972118872967554982429858565692914009702579303088597603593587398480146995930177948267228658416225918994983535687253322958566162792744362886605602758307140853806583135369574088655077030264021139305235156133430475330820429143465813057744434996798150692444287390137831387616639218574846621115601240989911019613487812065583327465517709903553552508093534528333580365869342953170423055510472255855399449992953523398123318234807562859312667600012034413605985361992554235994287042978268897959681077827082332797507258176009688593619931676907667070611884183196393935995705417272247950299410321836784183345195103919433376866715668786182661456977627578026252204010871980057157361650781097952904499796560084493004196241655320022337039639702568340156437949787406029188945437150207486954813273033281094052016260813764572283250596056087977961439646384348105462231364259634023762918014838501096163949325906782864971125478692710983097468478317110966053271741376522594981742872017965569238316414294076236748569601422842288470942751066453400906451479237784516566185588829980693022606761869829066604508931859392792379138267463400611829557960552780956628301129965541292525664779133317111871076730275961035375890166279147237735489077842666556512819585088356878021477517100370558814925270933816350155299357311564865974955109288788436468546271366061078539918159746715264157572548943516472623717179268370392223606787476981861514735457029845447839705946218380689195620737791429593098175505356073347177534880948601959183765664839815590405155561662885988479031882911512551753140359815481357286361809215738209313482625906185770656484373979050976832633742172412185718442385621239759926323076678894516946189592126800032770087230291227443569811324705694339588541506471481590005035459165844049262772854710074200455841964775340690621837095935609221026759421292099960422585986036841130611502851677139629655857798114022895913125665491865819712828949488963138170477831129244585231963692894915988051641984175540221315907667502246320824812844987953519512767432189428632990956816961016778813896906229634072283181494210542548309488329631717720090227045110296739505340942864120055293515798167909715143063022526817984128909326329891393248058102458292786468405762480493819683861048322295715898579535477613268409128235276277761749327265695459048668760333055477074958544520175394494319642718702126817068413788892669908273242985028813480022164589409793549573210271341982062614144441701514710920079823391731072850960627908889308573610761195624451079976883230161326635077148358087800068740169416288444928400974636301240372608197053364569314264577464146933968126867940005049601678488426002389479207255674475751645811030572754058167039977636003674180619853106640782540612501771833708933861845255189876882821889193226015176812452845872510650151081059249261700393443732946467626872173418953513974805954179573553495386984734826859695092752737461386282799451180390958856719094081268593682765698261897625822171898446623050816259842940384940473137686402095065432775507620369797496933860082640975274809050832223930196952144963158886305906684186331945073816067806657699271246891550497721988184931445425845717338455042279832241537673221259359804094129292024302714265436710571127220950366789863571659890904092823982053994754562885393311618395299489422890900267831587320616615338831425523704993616874639733740833814593453757601674966607423656111705600816797493374796147184820868379098772486187378605171671416834166530407677834634677898273199393847125309968800403397281526027481226222497945062617688300255493628899292514772911974622119599337744067276256374397089868737476780542250808414061266980213953363060343560105399852163972100181532211080513217916875545754467103676410679641232294001346052275801427012688067072498703613247908159935972374620083683404949077039978603800053123877537572880418904835468006041346000572553058441693179199604263628549363773947490964528551279218695662875667299726453921314625222467438976197776254923149431500305651207578383506190494277514153521473411900178343815506827329461270134286123156229292220338763251598876987196804534080579344299814715630747091731277297284812240485251527016009471010716529319969992161625960775508746359881701093001771159782531822804438076790793481229345894327162917690105091113580767804187192066607153060079903976492319248308457648207467686996541365245193757346452936058516300088489533805828006553496459284625032005498931316109700533641970477628133169090810749897577330874659199046593239488022137607052022136283249069275085991193866357687901685326229683094949568714084210258874606645978433999823221294182350826128960883952860746091679597117164052489923533291617068807919083453747421201185944337485536307115039547634176043817077958501465487860352836710150719719395657673547321139144240235278963821332288547547576663521876533964038361208245161402607273628630631706525224635030647507880270483463532937403553339021526765941457016436913943754064295985097315296527824182014612507083019208549574175057683716035501875645207801651591636040418870276997629660619113970476188633460653802072052628410294365159946942050317082944023373188329453727849365644879736794815427028951288278738825366543211140253768675857737575984255439766602532299463426355070862391796138755452499698204740906755943298455985508444055768782799759144265005464443914815245376099973249941011213523309270720097823584875383387490189658049830721531168854245053967075273904675071427243160426748203047964523740936178622965272458825317871829171642971683074669178166326505175303614642544139731937214195792050792019569060932041950776000157244577939767665051000778460177756330185439476186957099134713329776913772514879945398022696220505675514204327250521287996673016893589098351512025596809011098119246445524032315234881023483589441015325298487739495558873962952881206823064438615400646559919422956193976636106825785692733289731654857940394723917202509813697246754915550005440761286094833816887301783721796245991739705751870372560721678725422009373587951499903013635084886844846054140385379124939191989094550472214459152834487607259027107793156855526504443572419473915740270555314019524400130674063359988016826259785260643241065913632731480820911909874229108600740064931291981708291113193296408486519592452006836963334642398218518510324202028106043757581861323437196447653118558522009134331413858625890039220453527129897423347072684692182921642632347551938451555232515294883757409913278318658721603697709429796583060439614492005974846961035696882533832195481629688945787642045873978671386054808831943670739957083311905689236021474749355766537324601825807661597806301467825290007679457101691411227300176311713082715027471567795988769910333447081167654530244107332480949983510901856377209972319313107010876851661889747849281844951117024286621486052293822538090738358975172132294018391491445967288687210250798649922294156530180937713070761428510373757326077667577934902152407216772167023254016606006019413515136848465662832031910053450795561735459902533566812720355676030723456853681115580732219483632733458959712571978865331014669167885859454790931111641683920751511369830227006580593819170197997340904816194874622316320048949711244681284138305916509965143403095148568848787995382892488876509351181661097826705427502256796685664622279780911657831884557149070146019786454991365181107412259764909952437764171867768463820388202021701115284600428948781888261799684442734326988160571114578147821376477422337860828080272896344515373423490940782000253880912721200842219204658520902273224830281007404817090875911431117629426238163190101862581844214970104230758666753564456284111385107811154121771361091199309339954103437953075413723757831509243008242392997513621773266668805264062438957189058538914286349205162295830259060913500862898814423068703816709722846761960981372730352688591503276655591954440561892685190687362242200527473369879755711396164872516074138929712567671563078255379235385308136131860297879283813044896003101448422016264751492221531726555101882342612063902963450453770986146709256269059568145366985293047095908471976411288055470297218196463173795557074742672982919745659991785832113761637656167961972492539539081603931897398145610640789259613979089807741068134863558387239577681709211366126289213369013292021497406813582552303241528234001805336662805022844031268677797805786395236638934044994534558892880235847646723340635441566016232055836287585696221650813793574452218568240325233116945774496845584147652138177185438450226430145312990401737233963229894441830190283220637854143736461195429428978108971687382320402638549389318783930699986116300248306728547734478216928694376475800237464138950062777250761623552888388816905779480281522289535259866767151640575905158509550216129743136393490519637985673402098979651322542767385658360845912565167601658619206962055803935482070600388676389537526700361779430130462831738816384321532631231375280573213554841464097116221453486472729816614616739728076579693773582519541023479689559897367928192061252343610933630653057340725837583418002355867769186450951721293777810772381354554610085544866778415804254711617605723095827056998084441556279104456159016081391786529726581029512129278295645457393896105155322557237945921741376559471110958657433396803193262268382701562161720041400809899420853325532397923826186967119818252622734459057704447706095522971627481888415909172940052710221577957637090987975600065511719514882352517690702105685800337094226936331609870391265099235350427329038600312733437586176238065177363741325408444400935168677521370802360904111522914080317697804059096962889142377793278457726989287754002899857895088154158276200905558334879197068281025442341841931182217781560511087025599702508380590280574048385614734445053300364050475387039845184728480585424429772105200578029771922275740023997807609622211097584454134427381847584887109362758820036154088867250975714704842504961083891801568196173137621916169807431529594143067691303593794560171642525973339911377457829108857054155523737923658225433370457789842739610292024745517998410934872548646399913884092898437613061948917189894454124257729697073678761566741764945396166083401143290971619336013832614415027528330162547823183570610179945392467972407300917935125933489048434544607730349335121006269543728288109260681549786351023312126807531993412086928361210317230656245337391719624738507836241932227540844911069209344376459941237545178167233889667987110584594842161032719611858631330582555423938024655374130395398286048183352033087953651373996326924332244177773387232435428180330111499024218740908447134300075184004426159580751530646901439144568935865143490791182160627467387529469406099764613390657692702147473881323138006095740017983465416368284906524318460381076087166635921444954871416029907688766059335338062733784761076444937956223289784340628063611021334032378919696052459657462974359053349922804812246030798309990849041418389817462400776341501556308610833185463355451264192171079977216169982192104293723387901810896985096659453177000118810789533044480997373597107583219440434167408553110282271855938935720709138136573656633044805631803492435023249627925003187918374865351592777916738151244783484669200706403831746847504997592004605803262028862735076585340756050959444598662588472677042756926884543227917719778605363855699770040172799614531116488222948521395365333915183945747974708872595456607438064135003514458679869956840854270916813419018374695738392857706976090666111495131177121493366992183842655705895769153626757178090875081076749275594283878083470397744825007065881953408136851769896376993452768818041012842938945270304785660330179056715825974584610579431470715638585850730825181075841287036209674057915827054607539567728268932726181079714008849705748826768518011205200220123607356479827079647821358333992679537538057180051434515516510611258740462704710945307825982498188784703037118687577585432441353266074335272659377685240331031973495686347951839286183506166151018468725179334774658083738012298344595172345449733910103352545420838820155243628164067177582780872822719714540710006984211275860056941540383969952178905230702798023420163699152436660806554631947168841896794613952373275474708885078676130376580097284764945223719193009858940745742188305017377362148944728853912909603512563931335511135979172380023116693745580240321768308436554718386445188521780451978370164386900663897039486466719571464337696878242649577585651510676579331775790723534471875012410753977265467397811515327839161390361199516589262647822602701578818890967759216100678121493980335537009362229004339350185023645432036195118983902902976472170782702359961477555494861822393807322836939348303195751034931732582547351671766800784235641630645006039329341567348412064662371171237455836967747880360553534462382294369090174406878177952956050434350309573100130274448832497750476455593067400264039462908917520688431207715914245485076706642087264229988926455477321629018233429717002484220917160409993060068372782598898366963434345281839959846103584070594755067985591956295146418222157274965137168975129934760987413239158441911869723128144698666237050550954329808538264524744924585147132236275399599304509153132017095744968861419586025009671659487585465287622223149834371035140511117697390955021955279533773638048297220885598010240086933773973138280205096360168921763983333614427704640329558602291110773265960462959653246989715885421669488391965850076525316044107204361020389343108532416461319455540978548288795304298596106553619667968662466193716699542242684272116515548429907387335748808854326361712598962318375067715339743934512763558885361025393840651901450233851383602029402849900515775378539984824503955876168472584902322838671310031199587608775273506647262388731715879491787099850113132470895608193782284660387236276831808353512243977863608980780319505597800674372512011492306293935821949523639177056255735371430714921965416107560921299561794017321207382206005935558881640495350422866780062376400108660180787110726210295091337779954942408526383712801793259985814819594040072492072087787716150952965510262752097898201312133749425023474287879732028567513060574149204849027725538672527832400020275885276602714173496765193841192330984270409159539991613888508252134490732437748351853168819383731428578124445163183837214265385439231683192816533783153473511450843985643200982067820061123587401287926496801551365687877969940979510064624612129541829163741136892077776950117949994745425719050301669785896132710273746340038459832216953046545239935202758729537686494137057031010882579350266389092080134046742572465559528008504914686865316235656686543402132709571598654133017382256789539582360059762049508025045126389863552504498599012288881534966843514973726105928965896066667547121140279172459907718765270325847592841121159198585143966153986121739856381899636078060012326667553969784668562782368651278493520134770487296416717213712397613290395056934046130109663579999219891906955483940515709927102487954922128883321593803412642566708824707107571196653791466059953268379909195597968842437591904684134934347035078998494201081741681542459793441826268787938636466373624789656746578738370695238944895391148287887423880899871838061392924134699175231328810950351166630132878617535786413714706755375508262036747619803328544059361518759589685627767620232229967875389023146782222438749316234790250921300169809238810575392257202964590090271814168153694388942279504929864631860758313969920257068912864427886264314827424693593865343113966502450321131869470566703468808492930691329631151448083034229477553031300365650394330587703360769849657053919902941999614348004864046726233324372724834452686893866306955907365475678726666782164258221608305534532990652887455166813814502089593918588496194300530844067736946678135475592656050745967293411102977855082412942332115286468135704917217002447141440345993071955901247883652810625985504014196260465022048369736514209072911065808192392525592353684198541620714473212992464103139375340844627897663551829732226101604286045050067052151321870091247127298057814685806203933964861845792036678740409642127227266176437040297334838983171114478411357703370722808469327038660725056593935277803826424534223987745626458387006918080143004427903721886358799476551069843163714404869154966713465694732717852466711846335862263589644363386303502741149441233014739521025158967463330687030415983755571219079984091141127973024801348198219458167470333947602032456552859681134560889916437639033407068499618934558586689859724674919097150237654069081352136824804896599245952588491934179199767719955849380589293542366070879878214699402062068363667006518358866206736559667095230526275891808189837891683634855295858749005231359734372772898132829335682068722520852276864049128959538694686484194665450819202120235699039661710173665779006860432359818002908087515167485999317598062476949234723432885860434202763431744534463267100523209114294642958724591870763433430252044121125723121962955141925051191169169722272389233896014792978304601870187370800400803594110126225261753255677061463874862796823717278904506474026820820784881078550505769331745598142051488934423404775039337610475226355272039571905234749971208561256142098513468400648610751210284780143324426562823502078306887617902788258878228935196190355257568669147921089257289270178866622795105193479295295383222963838129499861604636394933082341885250524016216969862010510158871146413441222813140435674912743875090030177219942854215943280068864052360751321222567466493987219534437952262879213812025370349825566951820620344884367070265571814426143468213114306489975414688520688151514704564552556049976590144752475766915486215405966119469575651487882416999173208198988781212478380760430670549943158812791082060879515762046222446177025184234035017273038996124526283385046400912461226937690767105179688406105798726371939354994900980429410750805058259056229495675620046385510081176667346425845118764101730568264385218506452898777650500851219935565181860521700074491034556753154688103163574967567078038784403432692592859444181531399627040748650121196459128735472437995019822059100358626395506347651681801254264419956971963728261227263542871771319178299396752635302956807920906789650166443683778792687699644618804249437614370983234296922751599236516938090795841079229990643238931800108817502608384664557708089475553466226834782920863482086057396767594064320960935990996899566800878550186487483802990109939439969854091491646026433236642234954722351046190748647182681064776900236217848232733359535558134082745138265032420774556591121825140066716300539859679954629989188148261474322150357522451258859319053785837987809837337735973739057226908113751823377591851875849583109324765917865902636248227843543672070833861316555922080881820466495985963557603535856980362602563300409365286752899941310140771374720871234016259697247071003005309930019583573405924990517440992491797522450062031500826779375348781411864363554490318800749355757663359580914815257279206974741478391906143931464354012264704268638129928229651874214318532099713886422396456237671857974689404020095395489198003348871110791610763805197541493477595536081841278852677005854819597254629715875103094541254423387408102060202571470026682677568411724773640404684559601569407464442163360062647100755335811265124312919776970464178810359678924049939470979390305708858746128864484021928181608073012925898993783127959364584623986888653863171701395434970521423921033858065145433986217790087477413322188843761451651734548034385570475217883960195404851721906710511037535649914231839222667179104482116407828000671431276950431906670740873273249937229645390034545440088891609836092629334328443249945048388686269322552741753997155235018278413356221795320521956421953258106418528134927490140076981639413002339043215148048447722084455798781264202420921193903324673950226107445179150041237625786745999859865229781053677176013650320819223136575246086781088876872057926364538489614794934271523085846327011442912603529806495023248866009380953781801380000515978032540727057803843118032114282306622359450521384328753203932892814628616975620626231031597661761275867833350689638626622289017929054429882337560122152303935573946621765661706526841542892560731665239658072957042136783048684430849374891836406626333428379703926304318348722161991313881144701043444021375263978460186043396691835404158953325434069622921081319199349073072297198579654598616436282455842854356585637143728873750829919782199538850185262712343106566834009748890557081970413262418665015247584390908962067371673143107504985173317452741485239879555420657995943946066861069891235415066781235383239181147180948877272655234408109451542671530744954482857630022184629055549410007938706050743206941042082394674195148091271359046283109380584648910461989817866294440756053664294767761335522134117509621101214991357206209425472146691553758415446489871165930365500091592152032173807608850792354161858157736283221086195286558747749481715594949629125037839455839000018317944459245493187172966019271458194065992417703573206066011017312657394802818595543675108264205755326943288143513150754725272236159424867942924956454960113947507192783989119443029743441474399952540941558829489525836750466581414418226787267011475854506793469710990166452708954503649748582099744835951417209143535218571063349730541303039994722523184072336280810727006655726909388390987628032549947185779950752222683914268384437077056010543787900052318697107545743180071902439560205170504044887700852876836858756933350523113648695405854998125471470798861334947743190393773893298893332137803889643167606188655745912520077528590772133757908822748742228086202334276963519763357206183738197664423888062864157469795477490068970483716738823724407194509633865628581838425926145260250875414954802737682764721982910062401505250357955512158536353245858942812866366767586853820117540725218242666923138903182709075057735904473527370659038767559296340284114223279650857248511502769486629018863129487055326687026900153841665607856261057036917135566473858881476195934452519701804350385100001371098535047622445126937059687165396686012190710233560972230722902478458054230257882872631133430785089452640577217460285646545118284650634050840812717050558559354347014791411062723263922928396723889662894631946100345770524338077674326652395387393129075440361696446212417077692451363778066805654650723821423462711134333989018238421298218675989811015746542994097724482355440722727229035721527558463777100493037291224026005519720463392984015418632456103331419580429440416313704767892721807559663062023831878296892443183758710819537293824749845407885519859224232771414841057823243855901835779649698123712250803266506416239315890733165108883609212914919327079198882722306515810017879959412541835677874898203368579322173072921158398905011830701752727541127561916566834516601495447792604414132949579167626299243850076995856563721914739305087639083317077293914558262875590768538089143419917750966537829235785717892679449850047258988247993858417609350219604889792233734829298720218540982354413791054537236366725332730798014893374074628219650158153222013176687120094409076377826370589095427299561386297692160094028987401519096513705107759659075233204790933497681492158919628499077474913967229318176242249641831470871504376470226359562279874089997764379436368561154312496135421694282185721460339277102518937562080220945918536016842625265266006680772305327589797718479003315025704268251488184595281354359981192160819344178301105398554829700727380144823573040784043339210444670917991311316662153564809078872669510136738037207310197024838286824175020077653917919257657668528756905490561132280646193014324968176641264945603323483206264786743848829748724649154496131129161422928595497651707841825960114973432726809109883468128176306485590538791676007728426977219980429068485241852822870663745211400516705923195876515861496785805461873308720738584003663915894968154692340917443684870111925956844451535072993790234627361823543783648298016202539104929445170386202625233511662957652568039538689356409530521087497701662043907120675295076729531232409253852352640616800127891966002205467600425727342659583577400836842389123052334938545264179320116324543877771084961105485657624919099387209419433242533407915039390003075577863145627245443415399737417819082613367162143291915238388559863352761504071550212014139331115710439753650696413256696401810184739829206101222578011159269888436508586247804418981057399516325554789467131428115570846659002102380712955256411118075927483082184451274218760445532652515955420354274457291321502223058007376883120991812606767401163623998952069723895844265630495494411139925519080263246969102493681353006481750916741339299863813301037569725824482157408690053064331628149706941283648578627404848435663547286357715797367931290183441805204559624396191679529940795672084862343952213847375027863671857848931845577755184741855559071414406371737387822283491660839475417239005269156390693821178414959283532239923756996845482770499207069252865499445935578546046781551676611072764987752381043516104051121409676392906290754078239139859995511674698982509878168165906327615536990735439355855542894125668978708785443228801562841929941858116429242246613829830571571310781554538899460959284766326943006841587908121085522081602573793466638678443269187388940149847982368749664028698055052737894072008712040583687327382684856947539256848483364913853385354346201987311292546367304553257018781775286779624265694640368086216107146571422162527952264447258840735321205885250800572330365021584029629307847546697036446586014971235340066622506801696355182245982595807019459181335938232168588326841592401047971796653223330450680299979298478935198104881878684251966914197567716205123853244267816709619979023130321384727349447590521749305393679732781449596479500608187660640122161814837857738957181598014013133389749571591680239591550335643383902848918175455561957865819478974986642383691632249490338843864104598940379954353505674251528504234280141491056604842028851179884502723327659417394451399196312014668852910295945010697943899887043518509171636153142828952554031252785639549357646489439792684722916736159583653563646975837518020633153082335840724104326916278985306207340924377153984847518502872110011540323956205277227307125397884444457421271435003297423051793120892477945182759054999955849432043078334744502127862911773947727592775688181582339346302786812263924172213290999836955762599558967417658199507105924456368501362427156538390010930055579703144657939268165958052340833206512012900690068667365726338252898723958258703073610537659624054716701033593757785581208873820358123173729094162668715347625792771866693457847878530896120392765154228699389332229315722142196908854885796426622385080980967729664620165499149615366109586716849178534942785952770261139011372597430645109371639317047328990184052194120147877177879830967390443927031891180402932600353309389914042919280618710987465560707595783709328790242498984839387636276638651022431539005329747711660513839358592963967352285986045503179159016226546995300480259304960329891021237678189248336778806809003153978116134582439171432461887121582679595961684777591536314985498868763454215079750302553855587574621046319584192911560025270915283788631449825595570147500199520071133093527022206655222064060335271347817377859410863002846732220918697874036733158152316960164962740264229944050950796512496670376447996672867662931710283015522686430423028934962879005305857842518085852788489780073576013248589587898839033316162696068253389771915726260108032406763520761723293054292284859912565815752234907343218060336190380567474544079239826654420811109083749387075257986197360849849457000882014767611518435506777125579887596734355802117942252331916907611228947932069470056171897612954877478219372015708071053999741467932773367202296591372350555789045328587799384723272951506601584883376858322268172175150661457324896237150764431505506620047153675697812083196565456207192161211687957543944941975882851010763686686823776622413347095345723201876416856283894266196801365081416842691729057205399605490987614492983380238786470902591222553252084928437591599460001847156992245781249834057724743107864985510494521443646864323548010487634705528628969517528630430884790251612168997330467836130295273739645263063289564491429430886629505475872825207745737734998527302896501332136606316725328466538549161026031034897654954041674070267227617511060016726823784796971105367418291639740956475865521187190313431039947277306662764450004203448071454713607688765891645709160532570024284064197143133169004291161655154912416923857140052247224253580882046477999335219928323105915717210923127694140594916747799578980619524698205831300715735277736394521044036844962936164545903048840828985666118659070588568104241307497926118366626786239200124021184569924514820854099133882046551681183383963682591348742653976584533917578116018131322474046980416801533904928090960571572244119959549287134026793251037185096508796856613806231582371834643851003818745432470302605658966852814436564106217182354873074577295207288669240863304993596229196063917522659081687970587883432925632582852281429905842629416506554063254742525156515759685937835799058706286872870333987154933792798639570769894041422639518432459581916336698053060059913306359346953441055986390319535349973108644334052906663913598268323626343090946162469103291514591791591769280239208347809009463433053504800357896397151047705983292132376047068298765950098324111060125205275501166797576090643298230327558090767384931386627589937006678020381337677408339450933318504330830253984567180496811116270861766392735236446387444850997712103429855925257386531908431944051351592967385510095369122490459775356343235376665866428285752146529288215839774204132745966082956454959042950828239032649081835934570438949910991571015526689024747497989435751132740035053499530017788433254826625463204620443294388282194614669485380723962358921679404660474577033047476797078248180560556843597754530912322334603882439079538259454134351491098129318209368224563469477516274163100600350076422181657471084413300131068103906026699159546985999828908485176181296178928351643292124098259625369315217403809449198576491390658420502693985628035687503814000358355732526769660008654315510965176114357825851469130787274803603480285873842551329664042531774296066881359157091015317343345690886327348188508696059555379765845225140434224346356693872872860098786649356440873236309751147960213590061053049778466485506802186488302572853293967734753759770317233730374469416137319548218720499656233428897862450002380853354978554949324106564523058354814712596354333686778570394457145635544702162211454095689208885435923746120745830719438444505076469540598129515156278284165044037151180865151819957168532212204611826733467104229724041556248608319855316283622197122888707257483696926940133718568928048473063802471866554587516065933286033246221908317916196846481303842882112170541762676893015381364062028709107299835465217701077985761776054418021938321288293998713874349438343981069694313089687932860321430682693515814461023495021642576929036142765076765016231926483361516049889098360767594216221900487009383806158638818516817843076638936543774190657642472677310036457027621710047682523570662177371702113528215319789736505269187669033952916076221476177808274038420890431929888321449404307964729493520695644508888737131376253617603670539810564473973512200823114842817513805753951594392373595741052751536990082425370354371463413081620418744339982010225341635022534634901220927785278997863802762537759111843668199439620653207734275974856373655832354211135131631023569303218195254478062969175993992321714178388239486519123768539058536071584772747220681277484366635738954792924469605205599364130030060153170516699076071786711284946743561770505152638481059132629870837607510085014367038228907821994421731429454172910855947890258563140433198885341927487147608660334542611649230789437650109495693472721887675974840076091443920082322882574735383819585257460886689500277697024322067372385989318684673003066039098496478086153601515810067787827652881782723547321343886927852910239346751727515502357764825118334435909334662409120005319794919908265035001455520833095644471007512844166164279612189136274121502491407182241804207785580228731925955206964131132791444008294376495614620628181383850284831265429423034727977761896806433814065168310526414422684006870032574485427087211589888552775785108738205871553850527672517587093074428461305317986015715709244113562262931373736096451688622520571771860664989337048074303336099505586606702705611259601214496277160236568689042431018154574946769102030572647368920112157752727746543809493539006971024113142989708424269950728228697704319325636535334777801553731038515924846664530703920319670284298801400873050760454955877498105386919479734123281915310699070736125477792200601065468041876620557080260520182193378931901735301227191455258563567788996642661009819071400451741938278726381840913829172166739031013958842722579006281103929786942128334345898270318865071877182082404298782148706084218167603865002153259516570959972167035294494716756291767060173410417292441417807158984456322955114412388426649723764945426569727379595866467422382458473854151353822253501730713847523556204814032025328229576483667233974933357959448690222599956045876986999074760470584595208147546093435857226509486762588926884448253635237884041690456509831500787117588094499240237487700990165861754356909847068095870123914481300923694066433613367623621379766348873724396742233568187261322044958709496063790163766740246459843971222796857133190120078390350067082089866383906642328542683528445352322096165537284811955649401102950140194195347183635828518106932943884747313682188222431366420654020489705055790832872611694465326767343977960263586580744705867829645287245035209299097996503027393384067750630091809706375280220382803089456617330353589677016691892781768498161549539642937964621806034314184720141149994835970337139193686980602275155634102656190147849944125338859143644167514876052197731483051522359092114219507040223475740381204339907453012252195273834260502046611684230885061186917817913589458437189246214639493975294636351924481612603958493410570679333134541109135772268218396366282970766191280079158419579673502342251945354131139420522783069389398842347476454504346414949257526868912333267679524922044826709359444204403753540913673744723037537790810433081078958408682295475359658255407332111615729189367373912135978566862152124324219399533563874701907534800500043319702143338743114106747634081164716663491113464526792825776384287040191045958926316671664193618836937864486886479410359373235109152043307618166130570082904744846359658625808142735534217503995942696852544682663758932873222726743313240761261613589818206229918097361184510267071770425275283681749433494597733856794130691857771258841177013103666168073795888751402354926340541404417828973674511652145778220621395957932760969179346433178712401430576031828666888419051874123942851078796475879064127777454829379185080089526909319900952844855913334137235496413598320667579601025033344386851767565739841646803068975751139415233232788606740684478194087133576095188935205832992265258599212412063151228861631891398909406580111893392471387514793104932606716006407803998812862575856629127350647763305444771762746580966790600460094403088438466673724526416386220462041479923359571129504361951260635484822636302604309191017481321235363556814226580932498650457436820760522562643747016053470674234865990277203039900549569134532962390512158792684156413517966945885785184546878686947253770161215372926402135274816643599926186826411092005308812646099464296886137656362024493916458555758217504503718037717226116545846225540251039049459434063892581420952403254075811987249820309241369578878854757994799290115886637474923687661651976297138369428531975618299576668877714379730951036000230419543253438187820766640772863722104682639201706619197615331459246218104188908242555346568875365020744313931435344095433822555973110272015749858048758406050747778560390727234675414308008320566286149187493368626466855347325085591353579244785747900056891110225547278966709292134331117106139253112217170655323542729488152768195251955675561743576845712215238712161174971893454629331679637222467987443243585491843588566912331567011077673396899412390466244639715233791238238499125864713061994300800099188402170421789145380066785694099240048341562793866892133856173034344693826468293633333964398910005981576227773043164756816315965533484917736559793343645453317371610138378410862473787536779410375427951656892492331522880947490692738886683567378428508186506748047804960598030186552821191589355778854569529646179815476549721861388513536834657459554316973826239075133684555893056582000863745080755093218683788761498694485854928007304751075752748396179948640092565670961252802698863920585267537789129308966610780249571129320374087206204420239084733329367726024864397878452365236024788973543817808020956444300433294942518045488048540192660886257944433197835484369223727844110092599456005035378871098089603717333514170837004006737369842046541341743543541251131710982599510934084300353139434777565448575046589542956600983020593270745462919892006223645125779135751669127087805547403645834846422568502360927001228049774756511197273858294782221046131329954814363106393024920190671382544144465385728599489299363234583235081348707753289015412427135931388856182712042957666621514971932618063687464463893497705182814670934725994731855359203805267749122754129428604001723718418971686956991226877977303238788401119686429434365228446272405066654095632494028827309332585354287994349043817636905462245475291166818391446077887622391108689317879961744363860644034289243636778331246828029525182657886598359957533582935643986644173223908294530416705798197539262199648411808780240183600237852496435662956687415372092036912590262123016992705825267227841713805525361040300039201079973103805557911731252298768460056270162834086985820886644675027010640752178884302192334666157593579843630862538181957943302893542660796385267433173336099162865525939887254618249888566642117718857258685199053834360988655499575252904985699015929295248567840716483491091748386472927398446033102511709117935582057128422059891630155676093414457061409281343734477585283494628329587406384188186971489514016037801921509599989950758289169600683685271034470766275140383616784952125673654105355547797936636239006483989750841012350708465518357257700291147149231298451782784033168694019579316651240826687222155246734676423100057242826366445891152294181318668155386229296665154492491909376071860453446305998644734911972330790179337547403932342377782749746289583521110733148387874850710430230092082285255886905194609119737060491857251676185873614760503710236249395353945942335245377838870919658832885873056518566683480250638444674112868038148701663036999287925395747858924603313155189207796204512670132806942958858334405170353711742749155392332990793792941052441786491666566466216547024925433708531274495071292061524506582184793174252339922380889015640934389832058691537287181908028342854115950998804847436319071935203421708688359912026294477216196927979870161727283716717348883434735816966788536176583079143639506345934451025032390957222823095361997642913332325322892805783903604349070944413497698111846337511205584180720045889315156805505823265627818322496734900926237641432009403841125502438468127483752444250191457627294237510433644133246710000200061999414930509915572249754848115445985000283922813474077693639620715052002350990264157226272185344349123725959627474017356301247231007608120681458524111235526172679764532012650221539698502226495286697706535245384174422811428560728581548397574414884318277359083004742783702227638723962390170881443003720596039186572629446130371786850639354715461380777363727331232508323608901316466234455853457205667664866478529064781997810512361556056489588340347921050746778716644154086670491442521412748176833418618856028074550072630386120571880555335498152262394975515056026277027714827692032388896210186696383231564796493469365696957240611817699520404819791587417488301169265760216899557085204077413866422629846154906735503874028103995839467538478322365192091902328460537205579555650258063684929745064485633175353941026496988042259157301584858570374009733231074326581191290040008833675453715327712333414604345098071647612519868239693262224448650643291839255894880718142375620918641458610112773904610816079535613305244894762150570375396966231713139882299855266405228620504711585846743154669718816645341213961178984160740368221404201653659515861596956155653569740210334575940649882940143368221673259160385931388449733519358557161613990746037383509743636452846622577240342408730685839504227839059210816409145439262913524437466481660001239922521206522838011412843085047020314402530198484234026955367973978398056680165833242705189347040488547658104329172960938412093553793849465347037965837566445556299347792676119444441039129511890761928091472808023978415039629843109266697458384229902487218161343567345233454968753921731846017071057484698193390009270651596404021001138893421765534693921944238770149121854361166049501525330198870847093119218859156587140665964292318249611967322744218212542370380398166962802715829671141602416720294728579399955202155453376557279513355376226821928244526418204154981565977001787781696189934929737559880695076794191760556605762762238619958450017781809889969153796981787077684794078512739484101821302247336432586216331259887482091069021735232863049334480864483686207266237263521313611384011671764325644006603884538527439848434860738845390336175893681611969951575441129356877190127787690328355200196313756765424852943292701839542340871333906644126266560567700806427998414312670335233562923096330629105226386160113959732154853184450958799867752151633885080757945533982504409952703459328165717324522118695287147620491072028428613349411524456003888824906958237030543469667366401720428263297647103980697652122166460860527763748394323495031282160576071063218293865307060049838685063896882094446649433558419815470391020374278280245886675075319312348972183078869027797134909520685416285523273315400583453336647062628375954626962299122394621791568969503692753554878660344941981523993044623453087930393299162869618157316210859407285358577536060295238183101630627666217662722538899495416588975046949732396218809452717403097402828116700614911125127292476648911778044577098398289072115958661922679055086804339741905088259206163338884370844541483809465944739494593960773743177057736938586830377405958785011341121658758399364697398967900004411380803567122741050978569128623386691595218292327902090550511705660788519657286983484369703042343164004340706746938116875622174851407960581317182413985690822774026329656938810331296081274046658193447158366637936910887351487286117750115361224442399863049433193430165720750954585383601807047506655044299104505949728493682972112039710211930607568168472023324499891583148355775744599786346374896201251380500011585776843164935571636657944488565637453480289677776912795882657604350972714399912985626235130119761325892134676231840502738170724929736345769889599653557354362419309117835606461851154240070507686626043493905568096328674431379327261110822542775596179966696784107737292146573998426526510023287344015455368047603711231476276728445820667195978546996219283026343735342746952940868408292762660394402130310857505762628301538237372859151045438938900506237649289460036501394527434289263931324312844244390631004454320088119558974192881831148713594667770322096126788488560339062154533252773837772722836223118740780210102261239525824643952756964608737158241444547960487919788377442140330568907348424953926186885760877945359273676787425829467925141231567399723965356575404681774533073005127203510093052951291883297681652562697778445000949829069515918024834496992462167546959778834667914646636641881754757499989338153538366390442111355309627933825774476445711059411350169582491006138699209050097823283932675227415639829040184765331254693335198105324730477843886390374298197874456302544919985323012795412010832824930512859347171924133009070779884153526658504068170138531630589410060993500378143302404855305080782279085901238147303885866486759182161801203130456975912196755523688850071638004726604002469566459382756676455193595599181532407320732434557810260477204307427310757943928682755184784774219082841718362567706149645716545912035074633314550511825098491021144228349606974349687718016038794347646447389672303713506700443557370243883157305396633918530482557049538832541885389121321291361607141384148908852125147473017233269713682180522264874131371388068348717706777051007125904729480419572100777835789929885236018459340961282580911026280567211374446579771750820643391817496178154823218098819269959191828849392957000945212179895898475496548901819356661473798930813733098198018224648504900777132449887988899790975830344247141134845631407418131025852381701131354365927985174623559478168441853555933884625777251199020666615618128198386828626139828189839216662295454907069223794228021747314808026300877934949611853633673923440688974362757502532096296526691459841516542333556414664740300621362415554879690853184905132613417109233825272202883772781014877907387024795408097497086881043509656359085791173658436758363233859535246114487418581148519381489952494681351064264299169186060905036308085656526975386871470982051395041145112457309342883541597350505961871420970775803204346885013843715948765372237725936086291862891109126379891392765963067216157933945575034973035268872922443022504702163446020563457419657045907169443101108731086801802005390504191852016877428880235643150276048043977194255912985462412088070729862498711274950142519749897026553245379043000948484720199653241532318359345949342136060714571875268708756618957419249054935830634272615856587084994918718815524145736355410480284559308499747377418091083248191115838225396248673903148213557732883325391706588370914499592726643403870093417957060616657096238430236368864462389113629128893176983985333111873184168970531273388172955321777307068630936927218298531940668498700997459823920245102894217792257803807069032390584690246834789432774257475500234182600904674927548785022781622315603347349221392560275465023714584239816492253511796577674501367527815129886386594736031185709196149766150355634036967176487216519688878441600525434140420204106306266227798224362190683492811500954279023281267469753260129079764897716166102828905884384667338954628650854760281384235769843540989772814663205235786902909400770159627649132738283299072649523122240238044013328659584852931716196927101400867986973221196702017137561148132586446670909137133435019816361835884878162263642168520535373671928566603145180280005287060785220973955823991055958974444009709387359598227524565997961533976275151276949384367322222239747366200782068982880763261459162727387010238279333020971777070365867237919503535908675614688439897002995366886608885683149190069484898946384304932784565184261140233825735118350036713339707534140600573928702352636352128496924915963781869653199947353199983255916958181827536384628123380593909661084060374359552351677790777332689479873427838160859301660971001056454063919717840779827112903178998887649430905614849193407848318399746913736043183489523202632112094174389846504517136013871468936771566730027131353236349972225008337046284845206996176707867606645907609054374853589792502169818060554091435059689276822336596565817542785269949271267282695252419212630745503214436025758536923025052467373145409616265941572919677717701081589743065965763069259687085289170899201506889767893587591461564475141738567556037678833113014233912395322877365521986579046614015467708701070176161466684086006141082338706642161684686412709683643528152856672666646245991477486400716778368655425460032288445631245790151426391961873817169337917361709743855691355842453736152946137484342559317082639263797244177377738755064656347219642594507252754671167904561814592375638529846987961263746614272868873557374466759920774382044500849103128201949331203205092521514387869131824707507814073015232718518352895346402425622769321810659611452889110843807338539843981370087659618970802793863823062733001858130978804130392855424580571082877170140240270423591720415387202120224051110595316273099466542701740480609185478814388847121789126761555197245990724393324366353979889515887929499629983472739374028034256980529630720749973654059692660921583273754149561089572377073985309306485099594716886332114064524307963890069700423692474858156929880865228962187703805945155213966815796758174248948747053242678939682854950548228271668691780271714997040770679973760236301527304444688223169420204478578867438133801342029989442385562988511223381823318161556014319190737560531852953416409389419019772726944398129218915442325370165212055854997858755144677282996650162440558580157368826481754619888824818551257825763815879725873794985873871613237303043525642274263566509171378193990471682186006749254637916871141979312734746194722061565163709369988640699991398340060737404606004028783213022125332243331837657719032085195050117099944680902894856505156336208319701707406155916038414599246128051602028853652613149963752118470704840691011189650004032683608464360085597010612091918844678826217287719225680453275105208612536975355732483948853497682137287753822680895568151498455748421607640493911068755811362851287364995544608138301098526319224279058068346958572017170422003539830955453162655851984868953192019505252430252023006613924797310127882186898076318436706437873803378920170878847523922960131466234435782826298263686805555753154748461771620080977633773431411370190457742512033498398309883701861637957313532528046640456013201851763504068439723120646646811721054538149842905126944270646285928771794966007702900803500268193273692591000647243945884120834660941388941790377268848589604068223088393578487450101083475420645625025234796212285554784117451899864267692103748510734682893618378166006851918676401298038609390650274336692631271656318029705320396514446667311608869634756829116508931467172817130714081149857642323804462571710074016594662594009965501192918825311042284784130890059613561228987117654916428792048766026018142117955093660062591934557079169569372468162411808151904625378055611738461885113822172829068040014915786041252512082362077026231709111855835369465509333019992518260339308770180333616229853500721059449168117762921525643881924100336693725074774050003230459692460843613017022667228257229943178384550437978920073282476640778996140090870557227907075445191978856969395018270598534876975478562700117766615190925283579652286801058433432540982818873037033829988645874104107172112175102524105621104642714795714734182735451426546802666579942988876479949624961659283267078856236935614856969554382765915860137309992599859097115305700981539217407418625873318993190857574028914558178967601055807026206320882544798772197326875577202501693413237355451533798132129654145725467108559684799424477575358350264019658796938648706313412333977988786683914663259740077387661570620007838618686454539930371392961061704421047885919264432804313421941524348631379314603818421919455100617265542338861906112908176266510684007528417890129737549500130038380687244013350158984445126538384446252285519166108754538427566983734413395602338606856171445689411083152807073734917672081882300532762654832424593603929125998095019654276207887031761654451811907039940352023403250974124219736020511607016348284600928669174209700804755629881882355445724879452323884031092130234979268517511112960062412770727724985002097419537661809218547369939804443807489210502348331059137341515969556145577205811488257413133756198839290439838783774203829397916227705287871202223346824139073874960549419340067350487911861770807573205692269548287103708326512610435784848887602217300508011774141204122685240038554163038246392392995325678268659386535935650086780457259293326414205373127060857033153004107916668291515618597627149141278988793994415801878064739551579808626387101150126095309241370488336426026067211537988053792472163308937004954106193812004832053305924400369350889465412780425473537675060029753111318940208226318495747928117355735571849982729140519467443092896284816429870780741573091083645163601544712630644736236764719512698037837658708383084660642283383424147585159849256973224481006489978964860401343482913993159436767527629793047713756011532496588558796723946791744829636298564462757053095176802802413114954888823596314979526538039859840902538642198648198716051604205187144623857976106912982048337069707066696984153829955031175722795308964033082823603772085904681852460755980208115569117122643163099086465580593187510553402584026904954835469971190392541108258986170477403512065287259767996881611011264060728584969317501966681449303118834739437678497358682438750635202616772583222873329117708296189187968499020331014193415647862154999231558190740886286890731585504853139378556913870947258990482594132485381216481529604431263521315699242498075211285261541617091344348473295609938568644798532745229416961980942108553418865376661945482089180008892257017484681314895130338528354183136298406331143210678015579027969731933386234018572984761736000662891311879092347652683905767181854928151714705946633603024644023822755541600465053769084195629633054331624906834167542739271137278200255306956735318640883162755954663022889191596411334875729791660981695740961538758766369972331417312068080596971908556411871567004907893858032668397732404567863768868721340366517819152038866824816038384592690306729440669737439400278297847111903363470213749940130594068234332460258011173643357712231227675413522025093701923457286670207263944456570629542956022885439737056468611942531988307226339431536863698281902499111376312040333407819583013935075160430794642003144932849774088678245740368459477423709312295435158685271744649573366773935064718140923171458087492364170541872963339553501420942265044172062476934297601365711161422156350007296379558384585543897962556573967895825631354762044757696471564183854532646250746366455802357247669383588206832534853548165141194110550907628482119987992520891190925198679868949073598381418616606399887732736011269867206099447663674001055717044311060873425560206383096970297878116721766480591112633674372061258963336595081193820556813120776586572481014758889281616973217378455549820991737804431949069030287031486621817545140074673161278029920015677480517710963202477826693797878169252867377283930684379642546788610503332439500054302569173705180615979356218340789436887378611000040277456972546364906142058160870439141800232813317915582873438219533289386518552950274577260129513487246390997885364435013621651008274462439861123262192079222788346341555650118399292680760469446073625950396907176596558789638412433239001193804164662812917235819822382746494723699672221543747253828088809542144317269984360687803382399285380832640294996997502850578677442590387536374198479876760238057679818695609282556555567920311588956387813801687487582563053347936457041745808366808052677810053531953539132323556736016711295629911989299875565108262087893458079727292011061656493302377063122826829273234421197504141872905567749755250120117742773374438999367467125395849034143933523114172658802411777660694324582571258606465036289383191042554831630474338248948404697547803444831352179596364498162243534805944500464126963813287119532811641475980927453402562913424845565810776632137781646201850507368032865340947799352840962723060308564240135695345394636218264119523722405719836839211198766620666210470160105022622321615264306183409841732014352179625027053347873227599559118659971928169250942840923458471879910850320533237234270220967408669160828957263883227166078523752277653769878950044183992929425828458651341372019939449371201166662146973246765558500454226515588741274621795195675168609104920318226028322084676003039405793477036419423829397641693625185615641343920063061735120174655855474301045775778532023617105940556969841983303433144065824251923579790921093811619071553380685055998891996819445750812662592679114157939100306251504674484980502180876744564707406163700141187251536152078419915469758326272959137566011502462386775811559446474240716073732663038240504812112974888430570198035223476224062686250346081160645700323479538570775706811277466646487706473019964237746373004870831103693882108426022535487203258185842233448741323998315070072032943489686608280331187698806674065645692701335690597803116662539771013793893401538646438025235605630556474313935143229973151582899123119634714571885383438657131245956222776990329655033642872020650051850296326541983636198948063005860176546256606690797275367602318293769166358213330386099394155083752765676121280168323941795882294463572296019105192656943313355203879746663120466273605270887433448008956044715958719631176370510664041980301823873100092447421935203116242625397412615675252470546338243660482941671088747759684299502049083568616633675678387678839528973119199040123050920025411325894309280956931032319764172221436359685313989028145991728538222807881234419145540570698923800534851870633028852109359395720906070348131581229393980037779683409288739704741797081538307247706907555610749436709007078414333383352735351320662047437301921076093253488717474915071551101603806945152059735880058722877289971614745357723679196253394444194456031233029676677774561572261347936706915853471347600133440186209902751528713358233959795274346953229205143129110534869542279300356411754060502225744128896411720346117140274583219020958866471760492675553703807910472132524423969275225284410336650692419799743195201289336294602532187605623137826222317710247859432165682884577714957835824138402905849004088938137733133054505599142810404598691166575375183953199066024840117879156278110518421330268856938501441090110381377404559626307943432255646029153049514703076729081640055615557055187082293730435079176930408487376661645971751722675787412256129625707625729786608648328424052843941905518003775457298049388715581983754270024397611950186079833425578003131989057446969707934855796229581413829371707440074656653333659161210746106245698686370210083398938788765337453082306571348679573199512322767714644160474949771485471823453389038601345990407717713222637349068676717913384531069200038109827539680672961769332526024763831305952787802876737453213348654512247169923414656083146825533704272371049420447495988401037798290808851072214481105720934403379566044490184187321727991416699169109237478088173516598050397120221603096731278929814597516741814593184277775212967197128136432419698915825825162335366681048766087079405527513884832039900521896295732685613389966134329059575690824505430532889726927660052461790592324774717144369249009474336977117503751862743361320923847117960386215164725333232668261031741165293288364050395255764365365600044944538062267883762704127077906792799209793148967751768703530958025214996330905853490588497068597927987455440766183079030389871592116105119932967531018679199753424635957280655934833690434850810432374687287663752662928867552095446606142748787201994465104344289155093362849856129302182869909420404895518139046261120862954520397616644754075056215187884843565885944945624017294533243892069296135302240107610237424352349410635528755343296689061447727438664640224001443972528480201898797719112084892353923872155578701726093105104355200762433643494293362661476259284417783289530349573802352547404534746001850183433593030091793386283304230982237849050755898603269881137627465319945616570255791143029299819450358444419128494089512755292917437716018877569305027247519580260689921132734999626095044810220711193070724938987739952722408012068330588418508693508691986559008926147153195164409575136927187247645637633182721211240391050246483921092108547313007838161763626914006467450970733775563087829909023373208440505113460470204115353960297632751558202363514369705703116662867113196428774308668182421983709031026076666353358221967097531776100564458682818427433248949848608740942058939964828857616979710874452189765894002939400086785012161757411767279743050422311129058203992593740750222541478734607116054403192526822293377691648249569602873247604520497003287118251644098335394152384798307635632964590803603088334192447946458906211302745062048512469879538708921280206894385390075827655787499566703566440272343427365325524864149728259100731516758670388159276665972891715658650186979404772449317557057013633902671867181220587486823333493613869543270428142678403418032288219006469393155950598740047409723251144106062510243660325728148573586769856265668580764367401497003028601794257942052984314770204949720066798763736509590516192379445315315593431949881592998928168352135648247531528675909417273191958625720952249821105322849572758090953646822182189712484861724621669324436748044390582362358352448575703152745703303459444977664068504812915647328862927870020056718598682475121223992022678290766311100712770558035254283116569812691769732539174527708562385055273686934028415583448934976431081485682055387760798524781960237780782661241245612121587082027473520328388537656787255690256374022298166219371007849011411790316255146393343727257039354305822527678543446832770567527365016408408378320644654130402061132104576846496779266893126613334224093873920838205583971374681346801759881996070011115611483773445193980290117601786808613474682914819926459889810748682119636600136491428360934499147059249208104491075603026769102971075456083735733994990171867715318788700844963469434279057281399008535755539364240871844541205610528989017631140195416372161848612292504897614661540840607562118061185923765426725642083956173418276212743603478521989459747838790902763149068630891075976393601854079277734314786969624927430719297654220998438494718262694188768766009938208341437711404818807171439421492567136320625503258671509553348576670670646038023132771932422838839061333394984879328036133925293442769630969386459567814697185018307093179459425027110332980256502000178988049748798705500982383216763915427771035413080690386013103714346443022858053722932966964491380683963439776264662225184995232120039966537757480155676574415870903209665684881775380579974050449737236553995183088474181820466874916249189367208144833833904801439910710980380881668342923697614461521313829251685291859464456150829143246130571123653102894785832379338131298091413221673440796762023655730716952857885453611474022036073649207090938129556147873800297594988048726499876234329111242065144974587243288210749492559818659395474187892534660145556691257452239276862591597399207095701823814667360651693852578311154437927748090455613418878705705546677425094001913785834427634940174476177054178603210136316157554195538703007647999633920696746796275322754915300267807706558843351472428441557690402081661404362213309684583057553248367792993413565875625122762836732123912218696707765078485495276544150059809944161725810023563814319378257575920560793396993063958124744139085406384260510029346445316873872508224405071561515887069822449360060850903990643624249647187712136984362529147444597478908259892025241285012394310407972683458930730908313907134076531077015509772421547180045950134536497519557475692519765346820619363284875179205401815770751012645664998327712273190336871306578762607724562441224003907117304240810409007452319464040188338071481546503771268451961078222270710852422988999652856862942682522241438154740465710931573346597610270571640900238406210056979088349751566031913435139617059926157766115777465653467581971533396074793223062270476878932006656149266175425942545316570220912661234370894592031123158151013893466223926054126625514837756432081611943498946979238336628079093309571089738740802366675501946019812801059028384702844670519208220471117752594244673562975197508496370314107998224962105674800999982816920703797898770483501218709384022154596337955385778039072461633671451634324822504633969464199068259451764159869610211667441710588770626877280897986699199250572552978492150486379756156738549463926053074819694999448773877137447083899527561921267419869731963226154422998394771053929005370269625987311309031114524997574141346186001606907530442569778375208276103004622779627021330061507783287752383721802313523451236306884899627015382181341186128378183464634168462187515769144606650878491592653878675786781965525686999237624716006062189332318405964344601030183805283394435142550971163880640383844705671791004673457355176553155587141997776166479703610659449101794086368807000469588424047756633862815522084915992588757463637199218923639396958693923353481972390865220216887425765169188148400493269699634407069244096183035331293409407001863117964094827427669965239627800714150326083039520063081664744796479885028072641297895604236430737127808528103842076170216268884438917737963896038214722796478683097418117706884980532121780402906776297742182737582882347735700852325192001881669729997434112093706887443239306555551712866778674427959607962270331462504789598995391816166098187659922394571957530626679750933885026867951370505273367200772286286710554276052913383742499499667863366100433816637417755945408121969653928068294372061050192654322389552625839156728347935237446965510207979816978547028861252366161677398289126266923319839088331434052182370168839065254784272259069505606928158503441623560251881644655475527936541819761209064394746060296984384861710649905011717525962599655656344023078042513675467450849553112595487673151857453456882103099069728931349860045884170080369662641747356106117522201350973915621409399933811644795326595301665887802847489363912808889120185907905049225807351424472456267130453173858949095937852726642081314119235599737768356412211979277595867977995941081274112428613917814702349653511781919053657357849082532364657222226595448324327825699702551572547287194471438271451777644284532133188072744733474133243309215497286385217529502052162145925916651667486080917855451995820453479486586051810800028986302673760419615952319734313662334219979457290801866759593533987177590119203760851032547253677028537881831593158393461623946495014350746543815493773724769077035967637750535808688590281338622227519835082308524266257302658271150739947976205217436765938495016462978241228646947610809241086856002622300327120424638220987382491331845035354238625765758710023709039637580524090975686175898169739106557453689100911630789337667175473141391431061082933599201707213358939340238982084491679171258731144508641362911929215279124277764114080793542570096836032900977035917138204231638607746141675428668000713049075696786836567496535991092837418643442594136836302825012916452593048576154168815106295057874366851508855194346888661476483067492199429908356078715416847385760523944736003844581567071633639290961059992379245750814514636560445642031714009690634717464070949778133013733000261569533996774468705222443277023548546282079001291397188601724843778976783833878522427609652948139135349890701925109914683670998127539531436586193646225808249312835952392612664528479155449368558422613635936343963947868626308683181369518776283571330284374377927443059849903260920650773681567728428991931856591142032763321651089980903441830399796670865125948321159112723617304398088626912006457751624055838071601353831479657525901546599603821766129207193733901859378834517449191573301759790303924063428516985942580432153452265518885693120917003987099787232703293276510865892501296962370282158646083141204462709597166451566069326576518345933274923900485372161172607916791536421740885461548250182988108650844836037117761670358004439793286170605867184687889921508709683522700919554509647156246053804186773151681318565490093996181717638536900451055835078774506198475439993321612857264888527883532567020737271228992964580215250689344640269074864809715438365508158313426347047196836078085070407256906072446088831252976128336525988892001970949277300648498903734945797244779284609409391525058176137968723131721898209984564672727759942490495203956152939327099366650922525000778234148224994275489530102601677982346400279021424111080653256949918971244019012071663377636446860259201279068245547058797365317199055653242256810634530930342308403618429056715424799826418723704751889519966661684322481112771418565442735420261025188413897926602681734976126887237473589665215538340006572193582720413897449136421072118488398470337647157346094973981563242651483115273597269936952579840783518996673823046684367156923866346153810228614289270167904139884389741876192717272014045817743256525716528615308232219354228645230463561198621305906254296532066818582254529772745093436424981697846139961472360516367712804458514171515651203235264072709909676947608036669137314155697238601472759084977727460441114072873405319242867856908771854980582660844469777723145511276633944579759317348433827826363142778423819100077296678776802484031467218319700286378548560091239484889981523616767134398402708585884654481746281387466848356146177082167494229315016005302493973541028210444315718513704858371669936099122177080900126802178209616327136957121351120436128095615461211167208779006764638090887771343853208250271368715040268721272028122487972449750527762535719072922009062077652615163880173812813014142664841781565638511460471608803058682052949542616488950183196772911306001785843869490575202060178070498124282113223706151929134192867291620070854420548008040583324942242697314862293829582620226544573881384814588298639491620455649849034591587545186099189777126369522736518310087580785254063906461451119894884926955341769912045967048927727422165723658953363644667367400932714526842222090293233332220544860004850448688058690441982541681441251797491540899214530421999277897470923711551311133332054552262047238323400666743380025158479684849417221175138972020196774112823432514365192251149493047842826129011681810819551009611975650779717644750000493580639665549317183846070060636855414404132780205469558602031174609023629118662990503059046154251804046497198358418719879158940277264654977395055500477292439705696892134910628923739850466973768000335165172228314094723677329103400841820565208905133558033514416997976844042566843762481349976876682334903553103216443482638553695351268231097306263899558196130313196550227479482421435257104366764029255834185979490528980715561565653455471673067191339522341412419491846737716172020664404916145834054323692134717293963857064529670132348722579582576835754411031518456265844922463434265900182911918530328720515500397405707610782416631575793009689623454683677809629426705952729344804606672914713594095616900616354213892108315667364464154884789616614993916658566387861712555876766654574595280704058198591151106088337119063356397004156793167491645263847226115419215898953786523339098777414681720500524359260084901964126919827947525747806313804752203466924815079997695141852829124195563761876627048990617071327406539555692685543686153433048189449883969724271590731374623117159841743926370681084702566576880457441171662408127633567446454060437328201837734497029988696542514447226601261044373118305905781081631922420244124691504696879784463686820277082462417793580447299877391395610374493646496318553616978875414715350062180515015150146415237765230570013629650680843394728116463877073228937155064904223639609061242421911933318824641140659433158857887013732486960190978346939097348684161609522690631317771127280418522693434205770849846108068696188684530441807660407813555413357407701363117086226069523775846665843768750349219783926601781540566973408372973555263989188964700772819385337980080578381744896556938092772209132733513676682967261011933366541978981778399197730297938399993369880401912074472372186336982368762799903107701220658880389773401033374543627385399134251260252710797396223837041697300687130930566769468677684624661327441362323780729571680370153697652065716688467817608034412312104234242682554858706681300366976091452809232757261779356838237475295780152968616142708796745349727098627027746716633249506456258194923748823180417898983996209883317608145500243175246145244592980583224682128815798394766908947511508116126987346629747864074872787563406359429078827391446567599724685794777056447910626069617742932717675050705314779251967399630938849650110027150647501617519915013969683611564178554595879883262339777550734178265069534173583068675343383603306375868042796983603634967901103393662800950129933273125476022797392739618482966976543965663479797209522730245500695520280590080511226676330658280734844894336372831823771768391138005561063486766472308649491919410551813450977537265575830958588455022141185490737679716403115512894977668888702411916335483631423286506860700259945009828036084582636484689409449922145462744124065260858664725812688391285206445679666059463270908697741793588334827092714341590125823092512650193125095901164049722491551875910495920902751119340094048134778165589141786206296362272570757791091161664055052747710032057249267449484163035805646153552374975859633364985037353960559556308363699090289559082407296772066956611439288142868201915078007326189538951807459470517579620448984196601961875179695173126751290316762389241708424851814325579393742883130094080030868402585451033128979050660364175516696967403611758725273138813076170989652203994705842383634728031050284001856238084923682749233986914607615723620889013817393748379921986955860256242472901666708741484686535335396431440921246023587211600382824042009680240605241785331177823491385012407706674202727072566147779775409608108144999579990577934602715663241632599272477691754646855149874945915437878841161949016160346487859190354518096350486698106207893619691425540100158249425039855275898213693084450350463802470152152083722070769367141751644323205831997988081207386430777918065337092726404050019509831223985220267629648569703633389181920291414359379233730895072735256666674218091257298854096659808256566323389112831518167188667849233614421248813008950333903725848547518098235180803464506090553046635642237742587805790961653923579082131032711555756922371736135736353337282022029619546189182026767455751442152883808992180522474846808247411689714114072369769007599482558747792118546625792125266354825070245614224360511450603268189874812653472022800552967023495988823571017756035508804257606798981941580662148207020798730213891050820021979551043027533506516008804823919527757366818744553290779056256031039908503617323462909902524772545825410580410618678139626203439194580152931857936112083316589339536647424626219566048250850441003601198099432711952693027841935014116952668694743139807911353768117145577837606284160195250183873801189454263954571740709231613424205951476259792191274102028723808748128991358077967129339286094193630429671245105806426604332934113384568218823060416714479377271001926484268833471977574296885943993701050629883466544391643890886754219452130342498549749873841177415511058289871191223751143177929591932279033833814467321007385724981370946500587143547848543769606925174382864540524688078160639179702483049774558779398915824916286861390730563358814221408685730163627366070460673935824382675751144451515030238595104559978070852752508873735590749715626119583047670406047959188342410926467292675799521951251711493574246112979589976896359082411764151165237303342222124741445696186113310075523956398170854450856504069238911317042473572153556425552032304958495299609494243010936615507416883720830009747465370094084126379866645195765614436005205968417487791357862221873078826598649488508818264193910016520123222579995142951966525186441928602211805088640448033940199519662129210294245118304821269510320534039009621006110840655341639389621834968521155758549468899465926661850979522392215909847939297295647102509656495551189747973044129364997894206417763939468624938245975947792244489800337298548760782650474173784454459742120853644581081420106227893433043715709800453410302678379817901176543621026151194921112587917988000034445358759142858433099204014090381210632800998699240173590788996980671430721744412325878407601962716763724469450027535572933926830237010984828231712471846407432661487554061151091323261333916387639760090337048804395215214670963635677026713653875789128784799095331779379132269306714415735914234978938112828134785406997278193412948913646351548676200157973715661934530307842990011931651584738304022729759045620175426097526699447122580277904323176274802031569495758478179089178746942326524731141127377709123267136707678040145122344046919872880957904561174958380565293677981595387416957443272155399180537754893989110768811237567059891103738722005007687972138497171617244854564916162385172485666618773311856099660587470708517338560456958140259726024552119306153874177495505352899261626301395429179066021815483873975665193146441393027108886081950284484701441352399487344802593759745945273355289603236913407058034419714389270066538475809947571029483480152981996671941259824944261879236679088806569675408374379483584202654164836855702769221191223550157027646976488303236953585190404526932872860007762588493241693454045238894025282989484297799249828455228337380829289709554700904403094319207839681465263301138940215097397143557306199313672111289234866446593954669437266327939066548319153073690370002104295781482751997267768829024418587108726067248247319763223103033170679212899744800303087940706452026236680947907385093318640722121342014716372925307417396984326856006896757239157225780449141007044858182384540215063083965096807224799156173005623739607523253525165275944748363524636662869617956760403987145678407194435546854286278588902429779991216419056511351371740622922331585285910621452702857491358254359866724532932098852224723766758601404949126809188935983251431972846105617662607671079489348607427513328960204554329987620178507743450451711347384828529464184911318687688891007063463178696383575306747592423418723995919738193169835252672848761041387745398566358448415277660804753763295116396878534853513419599808825268097219763030287751712524040005361402488775399734303454913998851950961514507989000277061842086026204098261153002517942269633368008588746417567990490580910873713290059994216295555702198297269132255985670285457284721345296336047180334170396344127664774772540282657355416679192243303041020834447192593727624573375972936743151437085045539995299327568762987499752604289267149181554691539011272179577031944077494790411780938500131181643518650509611184556610423660246765117224924224988596052537121127934110247877820018275526974138874499497627103537830835240990061429708032439867924930850737296252676846523487118758536983200395168116055270700766624668820257968222813462887933077259008469853464510611090475163160222940414107659900649156340737584636075575095750404202197220736041105570358477734153902542712204414247304590816652975935298686086451042726106329705928831864872096551172040790831888178575677479642518137335361880987279765786355194310724412774142141142533093959598048477997664281887172771643808917060188550625411953978249160588468321089535401414495041480834514043410387517756301844751710442001413496364485738032787753800057541942582617355631821115792912399157153389677900303243076176900879608193159028541842167582048920181294250525441105075749567061281705205252308021511994723423024058117975671439598240584726014548419141357460323848713734335952527018374892663367539634494046100824265320186308354490606191554870232263562581093548712718566921385724391471137188181208391296480258532689709717231743532573175208924021183763733781538432474504538680262529365527061436646943381017544895735494695051374289910463555742081066291542527630530758703881756648721771874306147130402107783360955084231558932071665661691992755424491767482914402502299244109969329456927403069417269394960862569616483202109049889978378896426405712429184902334747285027676118984614742125126933509427798193400447237373575628268233888298258866387631874708524407210892928928635935430448572582523207049668950169067343666498945612295173101959250801752843393696507480318093615186121097199835170977121582133622344331291868888362086476268945080057125406870731087605568312866780152190342262210449691498457512152614184068790875504712986740949601567376259871404060720229726480864949411238094671772541786016323608009724598292563271218126318158027922903987864883626715769082564604302770153243594212210198704930271384022995829962765750282969871155800838393689575119721115203262877623638069517018272469230630604280446762393580253958043739026922558596848348126540442784947552334640878102571598263798713200082963233027157486937345130675202854727035745072086382833611168314633199909788607664736342577602808261687928716737549362633934821933753590776212434683843631683095659050604693433355228622717974183598156946388301254819272791145087655779723205148216879703105867420659834632730430349195703103445913008090511688101690983586332252874361197749915954902603957907000317477570462298633175090204133030968159449348768244825977546291307638194628396406820841458811263256011589118949321714038096635972937555240504215929866824268202876270364429751619059917584834654681584034566833275197033115059978896084105970151900523452666899439986231314121868084947208989102613963123078312802157539615969818554796935951150829836799804314156989271402000772359443320773850802404724691144956787635869356547447268814817739094107287308549451101192356956356981910770640555328254450570613769272250145947199076045380840266205365819955624592026219599008021398346705616378587426970668583261932156849686418425847190199194120223824162970400632584122979874240066467086273099655654890883897009947265626855789873410747659836734277978886474640176376047096433564529087925750722750258976405956258149094874450038292027297993839247012810941235434208576290343171124539373075176245536094425787433477568646292623770593476287809862254035958398973244928647396520628711903230766304533022314441494155710648921894209007421547287012153298002369585775910174571383508418729247245511399488084800883669955901284775505916362300852556551524036505702386817664206373543229619211815508997314519749659392219228811784209280096023759409524598110014865449996802119902835222540605801099222273492762104064840345115305842651965251327496352409289288676918496075265343756590090757480626350620632542457024494806977922235608121125888558282266537318188075894008845491074334036012805775429965141298321894082777562991680303235789045563430137160896612637851461387710821169239443940893334774731949254744094104625321093465135005897403354022168942166740405814209366203003422181899533769871530435409099729488950131717603917579122194277358613148300112210453802722624207841581781739445234958707016107094997792199657310849915307567920186231535846539960501317713073080411083665045265280204909544104163530113257713150598919558150927819573073942582603583797415654686673876590075039462767401883781518656661262329114608855663556600942619823724410378406299084776575981943777206186487551009216722456981920564810713478606098981966569173325848959146594747325517083250121056689939978216063284962011991874483369776285798564183696289191904858348252307765223956929710373449975459617816947366005744976752226345995648037925927204613302835580385069187358645801373075503608724751613388589161070534937818981994296186288526473784216607978937633661957937644847151334376232658594933211882224250423578121438718722337416919458119616275036466988677255597639268372811575770950859416740292325434943921311620341306564726119390088672077602704060758295812837788811873128567424741275954397693520884301848245471283624565279239894560092784867725933800402488493976148687900495820153793380388640442669971738599782576412067130606895572979139317451666701599000548298379213439175229413269875760628319267187224495194496868465729007336689054619360295434846908030233856269055930902005792921210399386664835729858221417049048481504410460248938030477862491234464582536037823869284380558053526704141791351357169489805162448750112419305219152609134344729171875284168171956546726879439449629558610902059921207707189955517769599433974247535754327454081790566616227912231069965977006331099587313792329838131494405340909089977984638978249698348324208441860851492698804234923378798837925654186242856286972728146878845685842953427964786980699359567026107550037531079080470827266489195708805497336693723384023189281980650095777210551200248600720039514085246294871803118522233318356968280958438088568489025674366117061419553688283019331284675976493492500944646489564997219924336661764888779207821120287897237579823484004026786656203613410865234546789812049131081193018152297278142097738102013093535397167482337708932967034645393630332863302834958638857719509199349276071599014197664681865342161175417845694164958211292339170059376717147582981898914392166768975403516020682500006157498203774128524237438992962412117572253243792746835519757710006949981887725034257598453403795605425016357544180234197335822542481921963178587834261226664772878525153294250096293723054719594200279970886559060270959306541058777516397237563733061433769928779260341923512744113842288519275213861270867519292839380780157584600222541659577795886760702021846851724650258905312787232787821804993868811975718790124806355997102835036096029772405342750123489340092785818032403544430542803120415885472502456468946480679916723542003260790096549505875949970608177160782387123838801129746441513930191390724801423248647651692496382307686981021983534964698547891024676463663196404436512326374875339786292319007736908583046141207512939754607056143564369122201451513172808127762894394815459128240408729858192914687156465279808126795336248401078858274049674277400466095997258078649963082184000960705760369830597787600639501205446805245824818885034398572462679104150106796616529343404339756311310890979326210026212417851584272248190615400673782214984113588175966421857375161696868337217561383703702591696361175777536219298530989976345084526467817994764651562144091306012154744021079099138684018053808842718341739238562361100470690358399731428551238702557418318066716742283565334747298029299078186934204823008764670369207745411350243019520025929716742410029890370945517933842669345213543540539867981698594261348044297232076275558449268439123120824400328128459968862525256266460106893748870189393948214224715500285406559679770178323365139415538885837514296926388473717892875527856901758327967745898663559267141263733336383793200401524894086383817346175682294437071802633778023251467325701224552394977899507624185099833984678423596652756527415428103379172499556685359489804396938254025796692742789767730294535744532579539944785496168750766316899261704372658018770534304037584299063348058230317632987212549801025572410080550350044342723111651228145901834718655201442215255268209778328384920795519349999177937434635782153847468163670296495952270605968395701706361618139885485679521727717450120973226320091805572897825125120118344228870162885322584859894898806761767792135995103619527333365506252729452220003339089950095518647246455903584482291579121176425588957703427818074948027763163557993138757761230605539470981951355183673544359020838942652652222800600709870430369830954488878584363708102046499127940257465330628292914819939052001733646788427116509512114579118586301169109094650371887598623838474574818024951494117817642120140057592450832985547717936551770207244462201531348799420025247929155924873554378002271122192605895948007981301870098221581636228546578507591823405797323018926686452485103385184856920565535971709783584567127517715956202731666761688759381641800800175868218715247972882631509040945196279358822837648237246389200097215722511270494118946995343471514148984922897841424566617736717709379594892414724965599200340460733474323103012703902315862507101840521750294914811349484715111882944337860347022941400589560571406927429558160550173720469722664909196811757825374663489040562700247281285501680115036195264961509114510935117104512498566391570944693432939802938310873807509457585795877414657480300663868726888673983120374155843118097621479222113724300061921821001375287054589413835448401371523975998036552478468655169948027522213407292869781047371771444025825904073482402573534810310775005375082417313129797516817153681817963276435408647025477186568528442340560843192309091409494115395823586779122603523033447592630343056013920927378469053759623683012449486451238280956417674748440579231669437419114114793579240083086762877839404930317645283353423355843934475713447372438156611766388224491185617803864224407737709004787280833982420133910959315291633988056760487054899409365264913272415482482280284279907911866262674350099653165083889606104171542461809048020632976336262875133959374281476577449673195024976328610646503210149874434284443254915773292284178705904327768488060479013082543135803997932951908421558870273699040646107813006375846106428050874337858210687068560880372717875256425269445429068656749659008230902294027645379038461063805909666389202980403455620224269761585187694571372812558321750780846670839689421860529182041616447412122688789457222480457311318993278608324019537741125269700145960233572803415130000952255075664620691297223162612423938654273366701034750463289184218592526560200044644788857583366576485034378603565891272581329347975392492276150300097361189525881693525441971064491494717050714792346897433331271401330629511169995600309022175401626479912072739245541093428958766109583033831313523132706230399677465314260383181568446722862850951642366277615360985727131552701078513268637233188802006516446371603833942261133910877409951315192634514148575743231711650185683651027401466933614770220071025358466052497259720702957585446234657637152575131178801336948965391961998873776930658695549256505065627854781755802501977028447354631709541871206325565048193681442771869100119393954938808988939334268232583108912776121253849095511371914371683940541852163086433918915810213530198453289269704133003607481643917199551962083944643879384435696339397027340767703246143258189402836309375503202761482974742143971906736311413626028097129564416490641241863803204579592007119523782293478869257922064341662560197692611633423511689951180913120906011728405431790513747425506232556763121113507369415491894448510654557465483190884428008872685866894995418360847055808978443262294717784529648030891851074118420011745347141958361188854895753460636089435838500332817575045433375764843465702410664331915066082354447228236968657280780352756599792356994996047921964671367832415187134399476188256004564195710393105985765283550681574830876327164171056880230537232823510084313059079492851892367757248534965613862745192405808206271968037789747935328484005017452566832671267716047947993826282782279213960852494581721061900059286483122968544577421299587828690395974443552346079724004981206923565094443293110452806138442200276151067392674267884712839859090285159652265187956506200986842299214991669504802161423097101809633199708722308604971564452824101190074040021029365347435688717747402858573206633001689913806158740175748000556851589386344606659147022448210795885796853596745226642454928593004469967355649331073863407647791733601210512307003153785027752121147513603980634775061426612584477635018314753663212201255323764390270510801213617059852238263801631205903880014090772280004023637351477840086133787763113639066185407741896516476570730209133418958878709916437604216229343715105968530423772473442754548520122965918955161503710004852375812609266679261551624660742856299210677050276339903015079775023002282052648962410998280107275626805680302923664637199083467618634278248731701696272854647936238003782177570352181168206936024547224454935345952821859614962676331104606932834048847985744158626335754794130525955753549575976295211832510293061808627220429254685735063723307062790641333042645420981393669494892438597883717120885840144756020670340268542937046221583052648754299267357157884470614191482902836794288784361984835520887377565552139033974151196084187546114608930732222322072499842226302118449512007034619903808222960191601193972241822572833475506114389358856904777694651800790743232472067355732610756205602600536608785406275591030458881412427497289759154275943591393659601654083119167483778703834754677070981769949452125143497020945724255007049732583270626992251802793462089865667980673136420628998409440694829419285896492899187274735664238230466078063367499613928915353024197259553125824079174683409582585356365793570734651874974874916015616752479545142481047477705246734527923228811574353945591874688111182816247704618728808667005003321680459979928850002171182411144826866274139753240290179058320784475724883760478695332756931714254381272143882668011481516149927492311273551917984111804615990609519077667884504380945865402355067670062432626089854609138672572127058864363186527159862662211892611141306837656336928337983788868031847845562618777037369183913028467417237564654228119441168829918747436563254401040805847554103883960178964580781911609944397387943592822269150749057877473450838030568767937856949154094932380361974248166598065701130687027808840235022664699881728910412853687642591562664239889321280194859495038459429137718568231125448843617942074062702372840389507371852699484176029874408465859639741121652451687645469032436951366446998649523566888478609556195104538817768630473916029457323802888905469558245995605911283386228807796360430484627949386517760056336939905943915513901206835144264090523385572293493170459718568905230352733868946106425835655970970391163652066520759970444210961076790639807086767053803640606527188465007773793024439101620601892641140577280516153438540729434630442008463929228824194715172656215053614361356878216942065268424902569507844568472393295581053079784539582760354490798568280441161892476492881615039612890284217193898092776608493593745827474874134122100707443112188011310049564790251147711412124561961774639462690223748741083515081669490753319346120989665499993651442736355446153851882507164763949055677745623907682110398978776800079996666970205057062022610584584618301045811202853585053485837349791649397651750495708236753104384340614103303925568281985318464220321775718133643070526771448373123993936173022708489555554692365135736958426156976646419529549543988636979723437234568375257264225418617713481123379472327900216319375214772726646978070817233013116931197952047024378696496855349206229679410093158140234213280279640865520202373804331926141268222186928379822574099436427309603950914470482601848467852276481168439926330654107917595505896213266467158087401093443792577893771236969327783863253676100364593783095878471642275425983892437205521584371709557208651025885939409079308008287313535720682148965909864144256860733383507284854697648915726879334025823770290026080574808385180827881677789636736780063593985358648335746164369752918419309298837716221595408361385305908024779868867288219763203333244087431437958695225801531499195132293446537752819371309775964235751378927757082532619761806118386629336294268400914034131557282737257237307080767227227987601418203868231298280498367131941570642653823722791840309262555943776642211621656238936990323155923786993116004988560776360583700719336365645064661043812091588766023857724427426807287839257492294504961006418483528356114555700378430590732567080596636229950724402662638061744610269384816300585396968938151837669389657602332070998747270451501959791618581347629099539659396494872998691883072457211240131422284072024184168729487085716469954593589407989416101154427556251378661353922169982814067287541420358407653251681481457629883404107468575697397204813837342480632006750125425455720107758543159715157109319687165125756581073788879609719138578277400844987551640447656770597701016210651778098779335435519872686065530843436404671530553838943492241372991428009777144781346879134548295648552157408677426117139833741555127572104439166507982448398935280783578129145366461196481411144850420301925753734872389403038559263862734016430984775778663421026936048513809023206146732652760392736151725941649111552858769506186353003570792111965889656557281335132186845569194695800036301533582377789391871060671467394383217651250939667582680680294698586187837888965889432511825280371612248853607689770818395027487930735637356763667884215872472384049676020924746604434352910837170694625203168536092846522826344085170588598692050192304700546071514079019362729902144452600160524533669175136599427492551615845465158197381962033418731247693973103730866476982017847754701915734759265417000377168617841339170452457024498966104578093809532953445353982978238180870655495895114031354273692612501960492068231781476354405130924533322684649117958236659451282372911272555092411656407607191883749950833903773736919294844628362942856982272489582285655230533993938885342124586270502862669081555733562777604568301602551567476411724285693785663530296929313051994591857107407402813499882960290852494504868555962169512645680628831862710145259432322937219168891836116153259736229635710199431493073301493095775499979227926488448578240040569703799141464804213838865966964970468041987478083466552890970103507293928762450065131868768874210767798070623087847289582669019501580950744233134142553955395672974258941044694417381237407147390564335714904774435531400798726985306802695834786853675593790900720175226371770898164986018303011080846004681803837018863666850903156069666145689804026468745474758150654545688424267486687573732421955452257793302245897996214877249779189988166500142856531867891109325980520188497637392853226536930284322188738937630729963685079192966498045366869713219599305213857414902751599821541756550148477207340089837915698789045633017730618951987197559801323415893798152383459592848426972749529196658591012496186497710026276227346389157145885598397622070688496150152009582540879686798806745447175072246659367391773128512018408033045530003655308187841478056155332296049717363791184447533791270158651673147849083681676722880012417328774921309063855219241287238012640044824797547051858465627819109660402182276359804811689618345220758193340643002260178558982917494442544900552337852476981878972931399488385016925042354776382240688084288853426538212691279145000031433132312248719687792360321499464837077184327638819762482438177260306824573492573804315362861917470098867315570359451322373325198488498395598992340936580672529327858928260424962192039309998942929904256423831240191449346012198462660743854801583824900370676981604880103497344562102707520099014069459264687077477117605568946588354601792931990470065229405778836678843431693489775604554445096757387084128618245617856667743998841108110899595659805528234661189386095004362640473469536886943778082441418434737169145451807206682594759582391236874678832623017863463914892844214537850222273286129632950652430890996504731621199943457847402173864386147218886008092608639114599321729533397770347259666209941920922692349421876817481220765179692724915922160746068636072410091477439280974526925809504149886886173138969268874526780307358071135653792983356430119443186627889408778452784412224470777573622288532720288505870428303409654494032164576178676863269275519765161809961474411411894876725714197351778043790715453702152116100208884423039489342121678934474227972601744460848675574522456678562856694612773286659029436070627917602351073253240107712203685085747689292569340527093117707612902698732835593233383255536135622789418121992721274973879183972186241499110802113250530001934471930631459945182600490304058258705041856640618094348213605624982472235950640811743987640574073584739816883889924702317110188813811664143354727121427509378287594931860639810180382678210723776419208564155492134708474640843024097439800736085163276881650920243932231501342288630827880758764500483917276262252465393976395999192831408758035651351153582302212728704391534090055310704272155975921178721807640812051403927142514249765864517822790682664382013271482774986951394415479233441910395295583716748367681118271472376253356914817793575199379755901976554283887081085348806476227174408527698691464661105223970655831880777243575211048988894161979470615735739397213546221443709230693351897882171098252409319283489154132907748951912872897521245841407844102957512341154615213789552826835084277922593107733869809998119396943472201994600014164729279466598979056832828964052671875906709073445186766486121930032951375249650039840807499257121864831188798955457743943530768131358189165682942794967848885182416273408676005042312851007961850640950479027161102675398286986187352810195229065227930748137818301060272043141259250298735951861012944745354852675676891911304186714377598831556766016012227445927586156729737823758503776227157702491066424535560321600576847051643558501722331436575153437742304932431987551911293355805184656953552359760014353837454187073427777452478655268275091996141029755225533017779323873740481157012346579939649201337779448411876906069236221535374313907079784415687448606026017997605184896051765454167776064686505409897104014749492039217861056639657074143202522883217873546770414500707020209759014047554186735042450240948920079991712096007309422990530950486586975861302583364304556462041187934165132853045775876612531753690033698589010794451305069428934677351577712199550217818978094451366064096917120321970880595214927742877229202368080416250658449039787290408101592794921899889536351135613417470913825373687175426814444971339074560682229662575576738453245322308215996372604283906132245804374435223488413898841198578044843468788796376368993256405500127849330916917171903191420528645579660148364579492623001259663662862331277900340721752199324956995298824229084231357457275667369493082111381118108948771213683695059179597729924112180123569865868741819948314012049979177568294201062368276742306030837748446541990533980499832451431401028084404853010872221042525768740398023605345476660327141141812730154656410465733147543321294099665315648075533575342900775970302972337350241974958668629504508787450880332592619661320514799934865108424188854358094581501833049765221459226696964828366399207140994369288152428387792390544959216467965432044918291891666429951574800741853236027143080645613041147830396949668789574644657763106619935637547551902897454775482669548302899183739730810009464477970694152259364300024887493904137762040015596942567335566594483253723527204535085102201619475214533654417871918939810688431828819225667077000743718636022254985945495042760667331270156782983146990915068000937704543220301076553146265621693402020065472189755288561395016431174716612048061251477410625845353458046758050643280505235218932224706073666585340599458288018930360095324244576867969677234436292266192050207390275931658627187141240153733962467955890758942417559395345750091516065249512008117377075140334657985530702800023137448979721902933658052878175115533135355265020418651113090604846893930601112139163530056309990261208146998541832326999102469317821913945101892730225307743986735624119924310954980841939474138898492004664840548451980781920759304761205319029701772796429644807383308423925759259231047549661396343946735124309511983813896046081230378131443595676395056373868536509551250536720848840563771276501981116064165967082492847434524763950395910169118570182653703076363167553229272247621891408329379174507802435786533489168936366167949271226039376672529417130002006521325855231113524088279365613130428119884963345801326164883311401836426305926909976688154974285742998045574491603498848421633114137824398230099967278345585600113576509189693331245539458542560834454794047148896488013446071992720567474191285941367632509866147785937466545194548394433949440958524869214165128475193717725803625140228495484829841284228732597304053222275919848026476210435027829972446594051337148657878750580582490303083984685831552900591972873672003113516091245793085093425600000299700787992771629374288965819414760481614566744340052833819470349440897373201239593122528484760329986378090011972723306738956821003256514839683466355334125050029692637178878683437018100878609376219493811765440830816960566273438060383787103566158193027898348034045865081135482265935478488073090934216793245135318370361625707686587212857981548425574157864328931824157169625187262393771471670605371110179632433481841458239908402658767022759870067050487698536739300553330007933861623011734047127477767616158925374676261012291481067944916288996919964867934680173743491991825668018397316517906056120732453251345582173319658644269654725465676453223207847172583430970180099930938459928404131256873885195046539775328310693745254064764389169205127155048724909253590521062963011387700738550739653789565428953167115347774827782981352687593513170236361163968478644519311356364512598532105897961476124857838066191035966503542151082061178418375967198961834343291189015844508382768523754173904198334712951351833038577079101369071420108020412370896317911308638535628700425755216652795091769071975357496320589791111819773490971886828774956920513687815454436120125238304698610451367824099267627022792584099689435097408535348935591699200661049050056215959710364353379883058045137119513527199244200207964195074431999282715184399973229438763734584416967335926724446270508528004178465354265838426552005951583771761559766917948208043300071693263693082629452088985522662435487523239410020093861332485491750616461381939397848097518647735590109832803137282540526620978975539561865066364158240451370013889198548725347362336596946126864218181799898041109601371426694946001382612344834955668166519132190726004068374573093245375916287408980124851111004352912758588658749523832942862989404429749673289479254902024416338266763245268642696063171388718732748860194609056217021376084390087891507586321243063087225985651208095619336156958815960160841720045376174752617583811732810023124530963278992568958341965398587164085160717958293879969647088748563826337764028491073050773378646413300895999803069961233548028533551902350972684596172679085716753180475652716701376632620344676771591714397761994372907453367273687155467327671840895627907324473143638858097042139866880566358372190071074509275923818453846138894088957857364623115253513888628502266442097164518095815987730002372268235997691987978972655843711885023178645801928428539241560314036118208148542005289340340868121887770161985540641673678419139417747263599413289457771670573729708667581407268949755962475199852151138567124475830835915684980358521903977080479919888915872350136134990936337623719030117126464111546485851772406582000834109478934305585716797313880957241108128979224240684155992442920307987387026953547287470330110076841318747747335645824185095308721105198391671851816748248788209854380496718424837802111969631240291292728456959209414774363154626122812866079070185693918762587219411229414547579155970974239028232707237690884153218460087239980611251594438904316866366690492653150510772660359230028274112775335736831429605902159727201491023096002887069330874818982826216179505932021188893998512663404937312069333106227460652373856777900484670193692560696383432165382779075127952289719611635403370157977564110893435935723772462153470285310896105320545788412708729502907927722744197331048040637069129250688572054739438624496703288158610377292964565249726179559820374780392513221727338930636314287033362733454183107119032490124204695289758633607314557748352192661538547741463714697433725609687763901355995260969409415896628342798344278499766320247716878163730155564545485121567490240109126922701915256116415607844322330046239703476548275916348644414146308657408133834616600576748515894136199963362521253794358225510070298145191886506056404481339827663092465073039504238449553995698005897550723182736395868087648208224646664870814607433924367336679161934239471068840575573853691781139672395867212542891398360365604155243185424255405590959298758404588664793784544551849733372498968005645455084233210862042371823897392070202150248850173388425797397941317735199469684850330754723657938223250377276134375105764244095634571668432318039672404093259808029439951232904920328951176646676440698401348562019024297531658046799552345202484363702163741305498488523069018634103100665887508932642107770951092307768285598510724108720036798538342565975958980021081117270451496536360328070107370514288541010770159561625232020646231840007243715126220027087911130399116077996384743475493905494009223056992568808382259253533745342322692670537591925609304900346488216430642591904076841745135843958462656960696229451171942138813225310787669946224289399867268894605766647749790676816623797518023101146284535025255276757184003956133685735446269469679072776152639380037839203997537220602022004896370413156678166887350744755561210213618217043763473004870965822139210233590496008794629661959546223393863533208358814338731032734646970403976366486594983013026524335994269763503610050825970527123041970844282701952925832615140053631349479524616780176980670937743854860746759771661976806145888958156863270122844268210707297201083934056630441624770869794277627959816926270104312740894307257818541714871061259318553064400046180107239739342155854227885410222912221102648062864918522365721832086559274171772143269598336647920470145430798599938170317334535481288570073172829671453330413601305735492487134191309101762727235641824800431570045960456752713567095802825521346508675599320682045959963938653194733594766019301262515042080837123528606388894547756958724373754776124650180053584355663607241485665259979457358133909327131702111325723680774202496370613334282520532966808637294908135243451413959917082570504020574405376912213336910287127026897400482662290057408831804526466201022944951208427372741654718853068088261857467433817149329220823274133688900477055938537050602142977176572856724658251369401834649318085848027009033309196410916976228795349338390220545049148501298899801242338895720116562449987644184383834149067935669925037409951251103683682793299568101321939594435817643553054311143929155090784853448241559677068916970680376395000935831088307575426399680699939415239076868998253837184554868823830507529110973080225132241323265199080688196189985913382842955286470496650405634067918569320902725075316941038024764904762299730552401490582147596486111868087613227751115099180500201006798256589384578949844192750142427729446782228817483374014783653918704700642937313580481904846332229069720724706512393886983619628777550923275304671355409322663097121873436800087305842969734384729221904565804379026954900698811681256488607003229300783591651760583208672224531628518178931007070561075340689759102596733086316515362380946001862899578508289179104885046101687888218152265200881954892197728092177531117498480240018942118375537246516968948207844976210120413810759548280605071703323851348343191024276094529345647890843353857900224849699467916753754177818020748827455071174482076948221656690606156959907022366991875158709147974484214580384147991566197409936022524095562148180238009839405705216475773410401988038734177323539865313250381658110977315462389974472926302217832717974418955158822021673228067772311393989217459488694215647322002193852187810255305706834004701676542025139079195876883952005071008166735620757226643137383178188545257248805389927478699434409198489052083162665398924267608862514023739050105489911964208032890875116899059818511657566169130047076497179966358566747999769925364705537555953583851727771021990789130376052119428794684323568601657275002222856193940547695711964372420411640528346207580799370946222788625787436499721526443864823876321334602873958996603930788104719028124907867011203740440940321528141811723464428643649121202877179924434893048911571211596517925104753010898336217982463094568975929576127557994673009036892165700076496871169830051228144332648418118898252032588721331234746777337759320169979922943972574486149345708007958180912193541587236023305773238359764938124367354324077749027073430684527695467609194693769551331679901977267640821062839525111730974261281660903597319834959657804047891168647251814510974865658957814875507643681679098765669344099415479690760378112338572553302361821848115903947278815278223260748685515487841881289461069793395807734622507750944532023887973691512834586526313556841181104965434592825412505584189965918350829028207390235410465064587412019815070547234454188743415908286712767715976506457835889450136384287116279055080138018649445972168919403175732461506338357524915256774251088012220334414479513544428578078756090810514352714065531944950515538415852981579602550394290118463663859493538585497414746871506590274752539100581140729215465582790756580367610013724110054621463978216720003896893890661946904566638824269635250229514405290888943901713662637069215759474446804461923699103812033053322063184572781215459017836906193255209995850880187309307299066271823093373697977922842502641593864478386156231999840805175635373756756896270026717900031673638133579418527360455064819177984295377170679390342378045910367846154802932187313120861134924956460184165220860267297463877639683851988716134510180686148413837202527737592947512037032569081290436338984451736285410518450282824324112939256875805705610728979753836496713475512962710841485483098596519173646473209342046758975288989566335435550735897738435313838905888677985551580743388324493291622319537143642767991093472572300198523375573374693112455700784710777356506009183414985396623821262562204675024868973641623759464825824860318003473324639140292217142286395164463254377050188126607619126865666724062531307998672929849565185168725134440363925399809641810186403539845896796974336370592374666770696586794080821465541190887412181116945023417722446187974653703190722892190320202392928620495703862273753365806093011099847276505162452069170488463489053329340855607838815276437719628513104170546610271130884699505195458788336092285251684140108425992241944847351600340308392493601218870911132177946736823366681095859581358748910502937697850817003280567117559551339897502801769422420212681807249155433254699144408091926697938416081624910909189574341625096294730758833379318650155641182898599528485707729286233471582937466056223675341959627463712966606309401870975587252442027058833812725776223762072959403115105675776077094214459225031710758607667083587801691951455986055935094883063562175683310909128401419441361751555530357114453881619929922804746807140289650390407431168415697492313056454722001652076804717996042066293396168071544631197713114323499943596974591554873197094820407154440649178618754078874795384901538961891123818702916960054787380849031894685971545358415957142083210605574007069279204561143434763545904670414164100639159660585917765982321634482392487517206118258083492029480240376760204650757879170345664161668308781260364439249693307143620149935510372836685509368118001962164986892964124873464044848638374630385577095011843498607664645636549805093187936796370292932897596590132521255554547492927903971327375174658635524951487729965131884492485662422809901346377929605855144704031434573853367668411520116323331853544329442795130885875264661555094496652232270601571039452832921594971620965530444130293115684256619019747501267120146461438431262577171222230457696313223443823092951855414579224916737556755989157979202293856634893116886106277751750982725549739967091245102987062316333553395940654581534263641499921418160078193164210688172224390471656134949240143938590809883937211190713079727567310615288671899785333791045609858442083881125600163273025529320735645211946165215659546064561226052109544467376835844992332977940890161114368217876747194340120038549501656118556160717701286177102766589865385463799151803960387941100465004660625292678127112610873274456621914064148071669905014374295796590831318914222340551413135910390602355938757081286108041112390801402356883713365798834263116339773761974542186145820979359791992810188239890169830642134250286454905825980963962236422178340412050419738456320208953555819960565485405268875002722103495607891891504292690451551342858240149014569028444866670869106093537691342568923862955700204640044602029311270843347499314199658543386229570460763792571131626489774092508144203045446012648350108203401120313474506539723047011159713858896195155469192529001036738791582167117733236358030742811848124184781903602487296860649629665392918225586091444895997655164755435064165049771976213858604707417731440984727343853895574703100903251515683110341760131438657852798095411833285210750582214546951939579818368631898500027019321190046396226978927986726392065553995259106983503558598203429773232236638123513929994371241084154627797286875177204606711182849944854201878584589451945709410490932034708589639978561257170127019570829041642175310206981620983944728062592401909332618668396323113837810402259703930798395843437311985492266998386604075890767394372570612238554241619906471988474341229816018965188580408810394242804568012061920312487538412342721236305971124843031418341522853700701174298453189043882945316732391147137200096350345610185171751817727282487629215279207197785551475048183473169430566802827835563872489558155992322335152453308213834072117474389544421778949954607045673554800089309344845802966763276362182731696248514329792418699070481382619243543458533412687242908476917014234287611310978521207915600887018884120556142823499464612505784951925351621980091848976028388409892486528983740793396530004111719849078767024777344987114924089730603727885886793766343169668989514344462144353673242826969911831966346763906119512592155291055118127270632878089083688242805661029677619421789145154322104062981076117016850168366250871009282162370497148178537560655073275779633512580623015216789730410154287181786377178623494130626888910773649100546833321634950912724100623501135619316843199917120792136957142286727216220786995370776183495286444775649080514585453072079568432827711129663205989568406351136437980969211232882331422092424019604989981843597294745383588865712421494538409354173552969527356098868311456149482340497576795993772296216949676032777200455582137357354622271509665406848057516753538746760592115725667213290980290826499540192521854915189018422031183676394422092647126906318127905891574394551327357943252244476319446602543855620902350211983130451207196188101115728859791896846145574186475627724661974251137144440713052828941297817594797541600493241725961729068758638789430828598677761606429927974270997989986035352325467548666507765352386165276941674570549597246668991137460339288049982444232828148047991075434013542155182340372991917235179154772284012783729319932847047017206991799319925143738163781821519945674697852076776700937923082886989155265963227470036843423846128379615200021774452785394262968283474256701895601143755366364666020226025688995157955050724642643299854707584275348587520821066863143667527381329270966597988736382516551900768543635352910327547842692884205816604746203377870058450409962511078017739684186591348630392666378126466887464432133622968149751961233738130418505287254609863517807190830776502005662569673731793836848790038330210190752078698580221076222655591205155504135252264912635525994028664798135691431770967738562131732646900130628500735368642129949950050048316866150651231796297920219413634510216276988487430556142344336131775269321951005085689106056949864425402949428081449225231093655562374114663419430479541730846432176993077214624087823538876367818480010324230686065674889273616912747141475265082331073876526801484490758511261034760977482074929260734076482739152766222484782162379681804582081878645327389612069221889800570641902093874000747763579169140742517553924757905429637979561466408948034419506663568911982742278003394180968963831550218282875253963329941006594511456098461552796413302969705255202888219265154946109929526535319754093439018185818287140591227968328524578769419306890600605935679100167758262179202979521603541291349753169709164061611936312245902801732597659225427859724826813899424555072247721507927629876633721967142877348704475862825052846264418878733292536452338241094110489479509428660274903736752260795925059606736485344935588527483716957819503403468032465985042621389336691940973089920577031041831404481254896300552927354962671526875962321411470386168267386823909463163957814324968231732739846115129529423239154519812665210174661599627289866671170797928165305098212695933801067919050591078147389494470912178503951743193330441452895746847050613728940171814161347274186656581702904123146108292940036712748979191071578260305852845317900708856001146126444589539292902358490324511146671305813253190458954599927499927819162699814254577488190279197690926135920674212643626667992615654546839059156496146034748396527151349384726793867487328662070344829166142097306355293836010659949700887698496802915979198230659241684033423696995572461088885212249409197913894874561579534758251366851796343757560929302707174442593463871825984886354501615761923943575190991706384321282555916809404244652498260628249493899361435634388294183548761135249934127915671883803529015140294875585174756048911077082857969014899210375186003593133431236656586967349428963061667422574476843338783906268136779461833921959927254152566274453835903436648020798460591313375287831472011817101398974298983815398590196996688438519344100100850506660909380576239031968050322161304143967448145314860970066432880746815657758792503161428923875820724139568211381399901507915284176702225263323273733970473898734126356088013297557186080535468851736676466529282213979473201660061203339335235437285505744063974058301355008275670614547403604967726932686601191382506858680526358828933746614207454502463675777199065815386726243492186522842566954658150103206407600818452462403558065176462607910825780659547408056668201975143684171719852860192749329381825896558320494218782535276380782934130510107889360134007952233061817875442989231061674014733016729340214973002174838947758787655971940277195573955231643809589898232539511619963118800775787482171668219447974585124096473933730810497865849147049870914392001174950924763542086091625655920244947698503645582780323457355260438913974462369095905446112243465607542198016503589142916055014712644683368191178947956555052822934860443039567607026054317822830562370507647129877716454846822601625656826641192822508929605487583617035644226327575270738362061723627263723256103985000766455870446759607194470879892686899801358076372077931962994601250702509544304327362429637960198050267445222832617422361893910085098464751743916611725774440055537567556519118786696728709529419544187516925787540683064648550543156046092798358030920384598570027061928128989134120078952293485944382995559568813321072708884432819962595837263148174835419887437275115865036113087990876332758814530511193924636758787345155023960671040038046765767557329334782526914617248661731055544760817628079929911679462422352862318789704359201206481495463587998632905491385165104853686737436330667131403367301129380478903179583550030189127493009066940284456103106472855288560065258320411128446824122312307690849671756511299414799856080769779783181005860000536159917379515412519281490873467730265029081549040435810358044506974270603047447513213053946050140423782973002090484141614357388943826891740889666502221112921084493358445511420372648389638511513107615397837034688895649793789187078810533391233332818587623946388125386784475250611950344233883821062753707803885496312943176154002975471726217832989994031260469535247931118098339395415244233790690677001136769182785109221230252908163439540426625552530208890169734945725306036691243919738666722802042019035238616786013737704873885353201060807379228074828636306093685541959339162117736944406988522966690362648135994689599684239295910701678710395212230902471347924460653263323004594190428516672941065655819464549040579588963972418299105202552548912825626975429383524163474882654328690072468093029881897057024256988512873065562892081440799928478083694363557836798699843231681642090634516669437287798310894445584551947865268193957645633113865464749322568787919778290402786521728494422148438307786253288956341463828512924327540991544900183856530570915986200658347031890619587402258464516600203039328816328007576577564277317732012346072309406543863125133726558012452067317670378980504063100747405695511279556454364252885902018424598272078494679153310853031137859742873538694698970009722206229832375069148910177219661760836335800237542283837964440870279530563710040739966654931907566683921248421925345953002903208788543098055038857637649648475991568880029091787753485320999020876997973740385441111513570979810909825554296211980776417547245405363561752755065182811434442055596044998799812722422596701261453077985704502447934161750258143771388651508352852546944804783820157200115740972029127629423637913408720341109739902611520727252782391129363947581596172908243158959865280786715748142064763642302640382231914155133237041034667461849034778411569759425663217584316712651180404421887112962085019175389519468023219788233532596967484482467461249828560104677884723547334556849076413532391603110855793355894609685446538424543063613587727383499466792589875482798505283840190859757968007322713017949998713366623364416037612152054261185651193110606333328128335744887662167870239397528275898013690237730849798448558829965824770753888327755989239350740472661428848878871508816894843369508575827817980683707329751796141564229037682385852815286068585515141654518614981388451313375207360880432825902182828453485742209593439054799757333813546263763285793781894286366625289842857269829469934930224952177418543236407817247793975483687461341625589339705937472779447032272131516279153431226651993072263986350076950988824405683413709024438517469323298982519458666251600936948516341238913858648953920671690630876666868884740741764921894383963518461220808195816372801116706488976651834342453622772380846564811544818607750199276557859103401451248803210315427087860518455890696449874818955320002152441353702354980716300198589286056586010713980569505292785018680063248073959986020283117251996951342139546682752851219853094222714831516075323008808794519327561749169567600335272345783044285964059053161272098080466624417798945981228073281292855747424213259727601551161089910886836891645188455474003454932812065458619601321796688045714509181569013904167071047519793403116320973344834158949439986937806241414210953009069058054039557576833668626756444485337417186528515779361554664408230078525937925307534570040262275534307128960311546885142294819466450092365020121534303782137833172441715442838838949677134907569332205508842635208240968456159385618160372916324346115935268491499346954162438215419564563368224393358501859913918818729628599403584481027160374682663404632354887886673985579048098930104807225296722820802556271556469710261472797652045415962637672252260098376248657546309497458995736328542213349723094375583751629190690494855461494351374129278166200349689350537858764572281176633985486617663858058782165353477389331799479428253893662918657857805761600337311563696304225744226222890367162518500371327202885362004814559619937771204791065688860304132392639903747059358971801550870867471002738728095036394421750091037181152737280204951891225038113773141529245146102832034463658392166232178072329394524860114835322037325063909187602783382943026664947847894025344900919649924839520912364755733598427601116244668709658225203209774589957254691631824525544150023450448324628087589739314364483541756537007337763143101708847365384210886542403051951795947182233971698158121997735024092300038342807262786955303618965742568431463991413734610255383733093936699481473326211358801432393172598695176041884961051154139405794166819675561555018525414381892296407900951089709382128051937857377259603469237260826651038458004278296274558033316146145410432043534951303527547331827582626242631856143368484066293528560925583628959160646783962437826346550493951744445506358801564932960810437592296267023021681027669787814712718122766067944210670613950240648567610726688715266255190032438777145913450265567543412683965230174347946947786068884154268896720425184000225113607003248716627488166772656484250218001846947981226508954964687292627831581962495750786405028081175643139246444631397423490964712691786567248628452925955511945166257871122019285185077432599637924194580446679342469039724777956888861692219994583146224196918544747630171828780855016356024747263050710495811238585294320646257476985417017488118956338917497474650452004620726629585114086079394382637961718615652708947083691366872050996661645382485199546111917773194808110308126721891809367499589990488945709151743011463322269692351825051432779450943791953943762643482143637623977293536207376369954164768500395588185113766786223915123030508714271052254967270089916484442143587701369043371858441155032748823407841827803562272195930702678916349094470496586532643105888552812909439304291615132415855241029858651021452444683573479883601251121429618275958587943393940495483599444845501344152004663355074187975825365033238150902665043649099361915228305787946940466036586056372336654029008135801864025937435226306861621703536745595940685710144486853244227470529578365941416985549185861533176086894907559324466905751933221217281398598509799345984959292792397253147136215525800978792261037994279174555607221978833955468340130152375878457844058508648331895607770763836806012627114315227229258884234036163083570431065878817203896513234295206261755590388521391925492668794458593157271752077583413987545822609807282590645170220674783765013241401618062215232495416419665870144097053625353902370452314123902098971015877831476100925768741125495530347255934383637105633690791041350921976067015125019188892668479964500591233661086541089079017037564676827982880551382183003370750524095415620083657025956801100260006011296439458280423121696376502695747493293857270271574593164550937891547089717713564891121008213635478454068059782421110413686600266971669544428267397097574861955212170950951932507051288469355383389145413997964037672619959536790810548093523330387638530752295428786541688272097841436508045655314598519910690538049058108480152033312000224855389315346318977133679212626924641101231857354145376205453756480041320975525890478760978895724690562672708641498709388882835346997845939699685838648859937806358765851947771541735546572126796445136982767130608659232326256583729919048836318820614758573970900505745522529816690676895640023615298744651996419163238945825180411268889338855989030398211429356574027075345740750967082472586459086455430246258672408647761741759668415162253915669954357809922382378164443956940026121030237123480173403076007797524258143039556956781423382934010995169988884674532006693923350872376120134909508018096569442894612302609588033405245567244381213799393350218753422829242537514718541468754067785854109666686754857901466217768186027049311136885124651018241466615992065872464428060324005615041934347052667954096475352562732803028848553531368635525511983765739759350010445692140384286644433930869467273224761081168502459084937742219788695863964632919789125641300571058113229565212640300341545400109971165925104697976052418849449592530089698192665793945341226330236312184830632551167165274491830551001534797758132349922081283585134165487804435739487799292818822027983149295599044849875211730401508350412215099928632087442720018714417894824820461875588540961398048802384313847924563843430172555446335473332825769082022085297304238559193836860435321574411047074453842796861179054557370339443154609148450776086736168608818261783435388141963799414673693694662202690889826988602191964157450075256766594476192731896641114136011588979495159168782185360275442717945725934738931576450028112585554264430920198158681415614458152644768031693099315427257628576324957428495954801707065539940597069459130915023593576788431948905757536082783095736054099291656825881576374993319563322609490831360886225450476383829014911587635556981673595383411184037333656750270153017768930535822760934927332798775740378367388807547412073239329810960962952790419888910866873836532406553099571110074692173202118748661385903490875882290276384592425820564677985073129341618407608090602272205924005359316054937411749847270466187228299252556258054201731085341602495907494851120692246079627189357716710903681549346984041475328819324483184401342128426271003096402925623953108667569097095135465501811508447024831849451099282754227910136409752161733102913276089787599708610546184205454747624308289693304802735431132072103959246385833146937360220706936233629702213848402849517942568323258180492114791719522507169330511184189078025387272852495932135945838919510604244390261513778346731624581159647000917041934225312827366140205149595746464842394756763713071408097785139464323403645619121476000384279000880777092481694138328313483524703860374307294351795039681339104081802465437973092800224416924018050829745206503624769040171693062169357939447955821987311061744259776760781141219767988311918925609848402590848052352200435149618997847685163102971206507023391764587854070696872769614061644322792932423370197698628009843806096449502761542244322432906237007413387068083748594800342968593666797963183662582084848413287870191711082158507965124274318335010731047447684200664755546963501216031131966543339268450002143528263406179447860424966884713060551960038427265022829196472101431650785962220161638868776096763916778992694449088670163897588941215439356394305856551583151463222282060383508772467367317202175291596745383425577503132338566375735094837421977246738482101450253496428366552100092768869753816379826302995708965802638753369384083693107311245155956322306739121905828152563459841091364497222967592818908317105819163165183641902765421334755163297915315034978106798675586203511041013370790492567169961857352670158607614224699220875659848885457471856998627597713489947624501605493501677426176501432879307313256242873334797168080812589073808471326177246097926566836055807847326775478905463287577713714043457631421915746509295029317998213048805880538658176766743460281171032543217140355969031808147098140041014175845008268239857392967088997935896244109534243586589505352657062622182086616243814410498633957983671051346380972802890662934974177940693085959063587974434841470591645782326817920385920310600445804599642643889225587423173059325713323477672510798280861161013953017713786203999955243232262169950258096610429864100912068181883964406449846843789364889994482289997625742997104472569928906770002495224399331588473676454823554308488573269071763956498779526520598328515195854374227591821866406965656652223439642883438826943419813213958999099439219406188682700188486267406518047636714203930641718980693001565957179868520268840156448049359634847679761377029893790037272474857863395350885288134739645153862238895724318486145164486310566533269803030179478784610480751080551247188732509617257072864287456413618451819530415798234694130472363889796513389141426632674961306924518755766914774837685545751200050082465091597770942184088595780178257840732114847367883787787058956612016128048084350199116338827541388661266682823834614381046333092048266457389179331446876141950614961615917011151913637385865865049763965442956424966300100106164223106161025851907615288457115225056426892587502345163146865733056498947362302213236524191593159156676719075858170099816316072189829022572013375389225664601956952709107179387721277513983202478240509490965602029875942496604319434936112256308532908325244593445290498863809252359399054652738060559676692291607440690890948389189577100322320067484703976545730662993183405869665749298183856952356615290111428465130047887554957813221856803181737168274812386820027597218284667356103985445784696979648918919087813150947232067217396783602125839190122525783341312533734826616388157215557986249084515419909571139903948875152164939711654551260196416180264101054829815560008600416714399766364979166991623476773854553507026824826313155543835753278840799119530562622305250434016451034546255754628340182242066280083788467407103011588259885168193362260945489077584381802741382320355828021999232484437773262048929646951387283019099798204585251473688180673175511397623244976782023931903557077858192563784238191630769639817833305308878088696790199230873299246275088040331142765790172794486421782325612212385068934293666964430035977988121097151788442807397216275624500849279401084628820580785674336730548508668430853243898606138333759808325890239035577359487417158075762585869485547359054414962458485263475997857770012422379547284937291630258668440658700217783082397384241909540495978806136699401517837930578289296160120746811384666198834398304709544857191323240942465276564111623307526308286623134710447387394842547072434605800875249105840568680037153915132801970626335831820526342528895023766819946293084627454269096991894844604334365169555014056598885642936150012227741551166987728788513950955578837139036252306538014258204705057425461999360949890409930966547636428924684323393046233602862845217358765412818944268740185329463701100721058518900850319417147863209873603353500051697358167070164039708349958391985641890054085062183157313283103811904888025294312012765642826713020772746548739602018882306211672036377719179151737563626437214795357194624111844826741852045276827426526923145544787760167301620616019740490518577181379553925580755237964556666710875004463510188469916713138061586154940989367464083092008439916402423066567193095323431191761677846974791396609694553420358746639958313016850951882666745325786352104572760802550804608522659261671982875822309316829479006524701474935424508993344434344525010518175914079931845293002358181492589140123797786017468990175486169756988125964652641761114578253097898425114910500663463165297784119616080437857882082958428910656635402720170257245246785996900918262568484839525989346903412640032418614779779347158689553992747633098320645821126715280749508400820979250564414008295490314921923563709722748392123803387740431499640100741716597086823263846023531709098316530726218264566301654301191272914245221213852267974307620175532649598010314174753153678171225175233415910750628918086205098432847145639941578690004935296377222871088570790653256140389104415620750944904244425123590922681888462163790932115217939686910027246593212597455149117848735596026039010317967525102180075798292645908205734721565649812528999139203005559879979314224000159538801410742477866825672598500582193864058057577848800521699614809604304367711622960161475652669788800607747227747881097941421548698340185855458541837851017395560081779951222239433122499761586671215668800734294273676861380042809202971355594803485491324450208818090242034810345886561286774881738214876669772348229298623962689582944903601393592315139694360002641883867406780821022311803975112406410490062588780361790438205323121842596458711872354413728142189386646417374694295718572130502088046735060558493058377622959212022005928226530902719770823501232301579588795986865691341870613574302089545580412736341034002169705283512193085218274541742057161502071925414082769694547728851405208333484650617060538373653201816377244209730416072304954817287861186158525398171865039610552439048843201705176798759967245408362626592165724865441207218224484261990777058127904827726809032308069063561801496383505986248934502675835891205738880174281354673241365332408708132215159547701759090303758269490076837185337190887738133828509908242596360866898033195403783208270976350141837733760117348998016734792283898963240176374522373553644476089618409572760793360770255457703572225496606897824673269336953864236592393583076675494424367662121327652749817190871302175650913250999772838382068701261610349153863147082504197426701496858092025012520931231421463971951269734228711103908948280484600718630902276579219323819147323780431793601189374414653135210038773827822311272875171754162996018257090045515953879172674917756182218680338122045262656259589970065558235199280410695992000346219944330553238572659954709531026271257311512138630320183348757858150836851052942691745029199907399643265766210709818558676019298568988890153683845185346742793675394130937922952641747650702855133224057842752631081963667941992241044559883590241826025256111099603579467493901928925522119448728493429334588180104593514185937421002053401884590909978855626821377347050802861181412349843758548549087429312904359193976228310849175540780985889109899503008778255093948285214429400588665158340161484230963759547809053914563752271087356409677786360946769269001640255506748636144364182355077976626950494968166798186821906084208083967627203256868935593081321471340127651970945864416461274996079902230277377258732514155278319611170297877975480894115477154688992258278193085802538563556077803700470735672623858862037032447803601325703545398813670277944037560790011775589466968479541715074319965959231594580889331735328950055853871807290820068618096877050716261984893483353675224701637701855103248281264209978188464619307754394992623771015295332970457451357660908136477797371375160234117969753608906812260446182951136520077580802948627305787418297816048534960405738228634054571934022948015556509258079562392918115926399434309019075683104043211001861127563538913727134444008352487536774963147640925656320812748719344780045291154247583037447755009199835545077364156175887410407654666920293060522929702820409103231732421224050193348648598397319179790967316333571914244101918111591829710382640383693037630235406116634486008325519746620990410376896574597166602231359788951456887743791127869700769761514016266474986981051224690120160639105145865719470645791316566630100550168534560562044155036344878733958754164790787850230573697536402312199250799240939458457337975430743281749232917853930329394745372910221907684934411368630215386518962108394446504736472611663436808255635146212603272466609441849968623943451514198791724216432648645838504392025559663469632782821659579448146334824594929361072131513152923787335668447556088254766283888611555895432889056072643775802990638609810098799930311162445119041796475672618815813523081419861729011997057843654839025669977789769354630984171812655266693205104807508305544071917480545444338601455972742157998661548141129667457667755320609092388164644069524773317578454959550559493154849377546399403402649184867570981511389305091374962100055918850643917669403602181742050557574111024816049381698839547034635933424589728226453565239695034974391205168743296056909857472060182443521793135525258179549508805415186753297424623093198187780317188433342617720551843170595641286660092207616159263735587750726845532552277285089473655117185472489359579370869750016083186646130391111204856821418896479747993894964338689466773311148268259906890424237037269170111652469940402233091668803652929001958507388155910714592675012995605177155830610176469077756761640903990536823467382230527550665903389755937347381765216250631685992504564705826286638383145447511522291964807635110268795306873416992526928323668469782121870344550570847824925153993148244210116089843410709951451165743239682927801562854969338052976654610711591103904604210852943890171518794015868788642794671466780434108170223516612168057455838461466091509943514875228504408473339425043914775779653566161563150651167973859337069817016840858982547496062180095295096407488030555019652247808464155854369900261767186073204181580282776904018773137063821892870340760048315929346375803984214453517604557018495578468279498818583641950108030129123497598162606288031191054329261192971993101024951911771255584518299826876281541599847773769655009506532674812674545970044222788681057307211778673816161001797881947469504364430979905304336262907550748843293957749866157488790120989569424236454314364367501207430825082618053371056674092649232501736217078622181788181210910493337195705522096083856681682717225741602446263213933098711757895744940131262222549590783422849603231974505862872955283337652730002291081516068331572582437468016632317247379264274841531688567663375504947749471021854931622673858763139953570374159630528823287681075158883938462291115617591672266620679839084332619025950761554460053868717098178553660242416441912502299334579314780299351733655670346916282385419128346609173208001369874772303875946774147914503133430903536931413007716808205168005895204246559229175256459064599519337361590799454219870905222097356035289664026970652923079105251790643624244127406694863773350633728059448888874840142438872829716903584955840389338895011483818454049091876953600488909863526928505172507772961179008082678133614560975632060941402923077380387376294186735001660083592508244749845133929935632625325774974650504196094380040311850550094430027578975792431410121181643146317092105634018026485632798452809239792804744709903832333247270892280246088931770148941747706476645420064356387078588503386833802477789438022273346782961494709689323328098491950344663180277614429565835107288079138033885185655786932379277085690017338003145647839575129413750938754863860944035206599339644425156749409856671372040506534909073790711874788246841720690760720592936578097569561269908215552706717242841457446110762991480340033531078576326378440078684551291296957641438719419231589962025673640027252015899058382700743391764527280432794537850740997656828599442983157010351020216818271099828187752975390091162805168916268906411497755023460882573683737885045709231819905088070968340696868060006115637936317938530370008922459125670558790031650297194837808930048190356173552417755450315693632940634222905159016787792091093816250184665691939655359405477268660048334252254869350646535759958897523232208685455160502943961309663839667195397430723914106397024039208672316314832354776917526771543184961527359579471588733233642289960675723524907642483299512780850410272132280077384636225370223258650652929682217528309103990682598400027754948927835090429552691017393373795922309164220802526728933306424312786669843938732236911378725857752817438231885274496026814837577520359851620416968907247073416865070338550243560881261717889727568345959341554127196143680725914575271321157513296768290641892567720005061637087964546537920083782851005878523744129670002108555130148181154803649075361111075602657318184535236228538069443573176330575414031036040396445398020958209386260048697591517761292732996565110761052822990342398446915664842659433385211861694931643497390714881565240774060798741310821826205585235756222463356697124653564807691655679775110451811359076994764306452470552061992275331492767983103613384797625688404527622346367650437316721778631875072587983843648907822712224205029778386554564897774594698139621527483665370007706602147868762876558961020022683903429805162567138243052655480655490844282445641413543747690820964201989978808729276639057882958296571001876189483255384237117055005726860694011952235794956737543679344920736560560761329882869575355317224751536261878346500721994889949559249462298503504662570628048442756937030146665120334965393839697321318276736721656335662924593717557739749479229114424344099948301992295569070661417479660138651555647750501784276926520309026460519139230567057813032813379208054154340784895874351355963835838701420855361494984867283647467653836694293098256291491064168869359572157308131395920917394808322552226557203324520875697430510604637826779175532693498464245679631636338357239231705884614655887815249516269231473921086503519364799526811956749016515582054645935537858088023524677172484260521979031861969566249312103048241979102899790326223309292944960324150587678326161378075222864967611023016177823392597213458117573841995636083149537992753164099820424846632515080066345192361448191660255831845016821427999910936540161759431108125963377495192986305350441268108009495351345446645918019080565797647173400920385627282969360315078943905223796717236710627160584399426599395190469195942565632733716725177958266871733201424866709219967978536504919770873438621457148110740981318193454651055246897674417171211253557381267346078722681837260048307131138348532992821991396508128302144962352451289368344746262671585228953865310716951093546592167363870274428535838157529424453272668367196347265929479970263080407059988223481004173096028402916039747480638967489168492278151229358372379658447632704376201405563920334224646919788811042484651585334677229645171456506478687483048893868058308356133797544126274069238999354064963968473150535206267097485669246930183692663358709350097807136316404685297760322807082091325545640202956659350492533146344400199542441028302735731995265705494693411146731156793363210742952963640696949143667976602465861510514994286238722124964603822553744909889393342422378033140633170101228777462401611438457079329676753792689487215754771320053165377301994258665244657777792126444517826453483724496457780414578281088567890823981415746312770770912103869224085678676020398478713399363027938277058642631969634372067478482707816926390695420302061568623284374399023111583374817518247018579436665874269881787743413773463205293369928053650426552306383219340966411852129845087571271563839074789639068184755858088482217519880430756690532503904172415625959029869782302189328385931780068643356637694307729966902277995302871668714303421013279719284161102810390597437447468630828324952827821777762260864801276755300177774263590246713742797958945860728391186386028964493689448033067824278155839847516616025151666719134263705582067281447238241816855156644765836830549298856578677157086498285924366399394249564661856441787876588549742758882288506348299847667736619559805691987153495465878688121092428567292840438308915478292979586426950272031273791266539009459046564486492226697489316981327307013531354383294723151730396795240406867042942019193351659142724456929920179933628135504690482303490855883633191696459084677623503486692264028180416703685963544556376415903646870676737761502857882467375797751984109190277202190869469010250488680092766184529317322146336068170983491173788496478608470567476087922906002763716051236981358842415612023354622976092409499279783851607646046703811408980530752674053851008384336976533901653004086319905982644467068493608970957703543255626150871015493629231286666682634932854016896412806584213481711511817288624426361950534651193967594624800278686281219392394531109769260078447453976492430129263254836745564013115580048481100382993125574438224654499862812509578898378079131240962615791050502204739339330333892117787294120361513774988337395988382773406124277628659874522550786110750498656234444323239651171465287935244932297584583905763473525852392540296219391962093255610976760204898680760531291327743828582657708068779403353183804076733231279086765517384204549680219996233644371144555167747829949432489316076565785348332779055544222726442579549230108552313822814572568212844485609325416901018258168674677860023813556614368143209431722427433434454540241146690070745459366375150203360864635656889205878110572538659214425693972888643709461138623634711236231911044998296093954780884343237763106187587819300491699951712315374441753050340530394218650189552553609378313223279458454982183984352726045087594903086666086574418549322028952859063579029360373068628822376960259088128349505607192657364460057856354170787544462922038136401355386715987926940027117518314919262868746548655735291073810245255141476167543046743645682533828315386179169048818667058239519430508764224520767154280289799941901722329968644696776927039893441399067101890474123659468913896279552446414038083601521892943558873509889633573391302560784416428498125281873281190544562939290984735150875791053150740848915436730989182265954378772033741095839424313081265751336078744461714581379734643182834870104891757311882057999768330570793578038687564883764484400495735927527815751757000075314047291056495908911924670785375116619571199817596669343566213855731971932344295352687200021685063303068512613823751993698044117830502059268936641959840381150243000757104554375187016372571385104019687452769469632344251769762775619998391935823588319652335314752113813479284233863823947036277702043093812708815377797454474185504108852356735994596050338683627575293651239092543193074316691534294674582239131549470322155796435447821109730611551346710107463432398080595215027720550979856936485959706314657265339461259374005257908123895611612266228019854162701693522051102563562507200897674796441319759908608726128700108096951639118502261645509347228454087213161829655607848268699641772614869524740336614659237448865562780648354919185541435821342487386109875308053024391859343287892593162018276326974666749262026965108366029927167345658257053851873097944270768822866760885477993460516934254185400747111183299341813494376471157854697106791767093995132723961527647872174391813336122323674742312649817811559720831027426269313688897939653054381579228622361694215519483597173999148073918877979553381778509057775537178809763531967071486909765869662350700842336265914628955292939176933702970501405313188274632069872630547483097224225602275389605485125022466437565823147890067282602603175710211426360119131267121718352629994254370406711952755263248945259592918401417457015483850560414139091460996906114855000476797574088819050192075461210928005753086916294287966704673495716571800758414542606128360906667567880023016916229235963942125691326822170266528521405525902607549589513267388523228010038222477159680257852748620318217138014966443857569182202221209959655621102630725026118887398548928712012162176540578855000604499352037934416091635381810568811849755678940947869019998841555380216892440260120929387987511516482592664716257114076804387154919966074385309729054071771580912318406998321506374523437676276063371226227903014701315394950655030184325296479406347650155450829053010648368376538156950988178889934924020102270982238587653202203559999496434103082516339565082459810241361732118785904294087373042432577314311466076933226921863804287670482520120636782278244051469489901889577661858765012058029406303610621527736630940598903354096380643836612045114817657999108465264403799267074700858030130462353861122636811315254991960525407466763136337700632446822722900050921837860361784786652449368977184613989874051405610158711031102338133284256801388836054751291047349872485389383546664140800402698048766025707271163591968989931531281199402123527618760091906478964684032420182134217111789281871624968022421930797286809270284747917325204792608717567690773385709168363559161184035862506953981969498935431418916560027682863702079108308418803749720739805265838679961221152810246495043387098779488643928518832284911553384575340922218472562423968895676915455632670582934839439807126977933470105346366237431467810275056155072118236820884347404555250538144083358251090226731087053606472320557146453330309159590615717898801125957170481912332006426900981443776059599181775211489513938273462978747142340035903979924996356528294665671149733694250445724546039976400294438118881802244203614808819452966451410393786300984767905614137414977949314916164869105010191860504963070513624110403325257512325222834405962036979488707503669128486388242908220463471603568828048491490129735340237427597070173629814102888676843708417089859149979477055861662743221037888186200539778163845822466273066312072208119117402863571604159791113599523983367907867020001727911800084830823924954012008159481349092000626373379112654776326695751018707892781608657482850828146285633490887806264684074108066987779122723968052845776516798288581640170048478892593694237507296458766676443255435363249103309294349296810832622977016948610099459800326547108673095646428124409122923788803611235412488879496373167794369731407690014496738042352314491113359978274982090985182415309804513847554584235042592686380811912038836681141692353820263204574264090162426484573640117126824687776803858142530520054976414414651026582748363669338853385878745877039011991006478149068843044078070230830905727055939543007082434861796347804025367170536543970487009063698485483674525481119591310420712701465608774513753330648292125817571105232632444136735390592287434066019543551854935887773946226387835223078509551962648287169899335376334820154526969389593560487163130271640114958590781211650743189523088661052157918712692891362733941477956108213144977521649884798835955354074340077560580007825255319976946867652204723209052328150951550363143591136114656943844638787302382962801231213259253031966222481626831149059532840257552305399261034779894062763767305663998317670503745148735392952425731932448427732324518330284858742695702748139105813284441778274111820841768275844998212842815483610346965512163630423996717332079688288900111536056100930950299247480233643653325744872261669894236348391975049935453024406555595987270539075386130070650963964272533268751037854717464056928393181664385623016478775621706158312577108402064461023349762825228930380142048406869363193093955094894115398723376567715331709308335358669393853137674832540754444304202394489150097361032047624111037878290069403145520039299685030149410004337819562819987425188781161318495341348102387396296836082106063270885472243179214510611711146453870603311695704116303959844422391212256709766502352703103653005925385818102503127614324520647993765410926685498358309193295153708254784118316610788730427537417094289437543673170990313862752853321860156333931506706464963874156498748941685215137370061429281477499016703147386499631460983371797947395321076559325183124524035970209016809093226513297520254226496535058521050845191726399208913458950626446329377709983910455455060720340870076558224889180000084457768719788144360066158329492617831003225531098934449104257664534787250452266363077849657172462263454441948141459027130737865193398409969280793143280790724726896311621732221365728379809264646663599104638029620990210897718582802154186019402148502267225064150161931644372836445561249162442564953061997187720395868340214959344693413193849770440772982322384080396031276608409888464464553952260555561499795636547667912982824622299042997609676023498905953967552805273045535060979176592270483525307951840772004540849517634381830919545513475968449374818480024017891039312599172057223400622188066208394313794201460200796529010096580049589754642668151643188518780122940775100958782686382129235240927855343622272897107508400676756314831558702558604725449024569858059926111692605765039354996597082476481347316792398259585001851856016604722677822629983096154436845943452951043955026834060662264684631504835065757504627403521760512578226119522685406140854069086990177984771331144289361278152027831607061748739049508529779411986473442254405588934359661469791288944356737010612469492723442467892243770215111938146297044737375082649694811485801152602876030032048607454878803749900334155851803111082909025473048624279110553752019949395327121607689803520949236886469539588750375555651840081766099914976322478930658803359913453612620143517092265014930934907870887326642856851558297600433596999484249272734458653814104860319275679967320165823529559528130008742890339591047939519562230268407206004060259520627723173618314044341636910096445049537827089623194400360683044421829007525363455964126289803668482389116547924474215449524997618467586293382564946381364480886618824264267719637922697467745163469551384948402810376289829747408162163172560093356728837935279366743889931855667307708757431139201725960988181789197185682142299195116522784631999213780348375642087089659156614824408714964488073187035148524714484158868650031279587811907991441975130249739659170947168309069338933862027598326058652676878505162340990460433864505761237508959703089423885560087708451749896461395839855968518729270606339074929116142487711715824765197601370389549497154401068427600160272645397202078600853572880293292696291505632853282283931882345645252714362739528741234311791069538012371854787883212052596227379173327181232528569904668247956381106185945028756043240962114320492096818062837220892695486496081433432727871539883722218359247606252472742535104744344207940800754702038361285211334991477195628363947820496196214863847068994808033576128823074430988788569067461803325972117880709943556931166390353670479935809347205971432097542604492443794083508286108046528378103784531239984698908634299295306578035186422633384572737354401292132453675609557651054461060491249098423059231488489658942977704818978734279387487888661518604363340453704119819684233369948388846074147841763047491332728863538218249916824789785008743108135675935601413496619025397260341021262365743033041576266706571374456097716119209974179663819594065234901526451697020324801416531571092030548977199512901155215488878213517793672908251192680667251050579254134471209805958516514622670702825437770922843019006666063660177837950367396651738740422839177314367092162202462015534377313796674928172467857292336176175723873216472298310549087232994646486771189729761582985161146192529025547464202140199029405555594999371903626130718700891215090020546960431991229601132974009020549570318529012832774214238885525258817468788274150010463030789832105041856759645583866080360781043700628356313249306330141631759546923533055236710612290218779354010177480153031128309124438073752867381274498066261828273199164564352850887642225137564539645191141071051725380812754524737370985188043619399331507140437936909829666644439852642740344571271864579781875195179895653055422165383464658758728853957212972856390473950948900669259653675230514317143700032123254701783779040567097045933022255821949754855101076972385860955410049219285903988033154150954079943650451337791470243636319247551976925143488390027992168318362300909894702371980837128087229268789437570617443941414247183618903485883563658033657907538725727023597979952131793401059017585936442895234138854868523672387801793658398247247540624070897903505544232644789051490478599840799767977477126773580982984474644464211166783584869561399545437005849846950902417739157055337207395032345846122886971143998012543620268723526340352423953940228221912697584634884835031276712057447946053090557647844919689518806823442853014682745973147272034123468326021036743925740719662521222880625011230271568427259792601645972101080499005520591969860618140540834670422168845489953354954368127956450921536843031642516927619513957122100498498064600815582607149770506627113444912285652520304522682459455752590183942065037886178207391248908957702395701501932485497515371898272882182083670044652671207285232401385495348868937016237561012052027687147214382811051256198132683097363278006213041334452820326974786595568057765724476197740398987085897859391158961506374386026762748088946468276106657426782382141939029838642689172472590058446007210843448844767823253686307647389938598676246816083238163165955777166660437551423685150637029980814758430994814620400697697873301813252579263036972512115818361099585584572595301315793428798702548550064844969880903834068965207729479559154562614309184359497975226559642797936503411856144461167972334229290962096756415403820348714060973591258527017477815941282103679758161454280503390509100567668428131845223718841635055644974595732107276217179795947993682019166440442008442263487573449686619938919178181176222372466042830220841691978946454432882519156155703209454095883360542408675451576664421372920143466386294131154674670943819437840868416581631725984248637452607364166920581603055455384435200492541613779275175237504783328570604963280692873538267629683427583409127600640236227550579616037977548819579668478236029092810679947656127446056650150933892681172909606703929141955537685171231496627467142712266094451236626912053763183081608542014079100115873993680289685721819286533787427216422212090888437720098580958283162355398380088017915232682479542056623994385298253863445684948629731615513789037432886329119853250608993890490163330770345789105743711585427824234102286615770222062800949949476294720585270281515376169795766764754000959074417477419294548225027850155178991473622020648844234704341537110146312009879038458371479734998709317885545195481402427349701091649126303427053074289498571554036762294312882991582063523886269110785503651980880086977182567703263516259174372077224458824328224129306745337717854642799477508260679589169785492872741770437770022812813959359809862950049578219302833717025608753778301084203309109383581555764931450125810114083961508928337914670918192523605598045270337653885238569520673201841902484938258479992731420888845289975211035778893306318380208275082908458585175422005466274631170290719744138716744469900622369973928544068534002868532012957783080947005271298802951116066252066681627926823669203448733217681154752216025694213037468001203231774630885323869838189814022826302421199181650933400189654929887982817981514382194935863918750884844219641869276432944966992252884359089633131800850397074733902409580278379260903223925150503306861603941853230405121410821550922904492106911473197352768182955400278990076352935251739552583592905480171782036537017762392941089478212791459442321997313856597268441568382180960183748353954707076806489402966302027335200304171136438136500878791378701088437452197169958785190733354044380350942556961361042840135829510642454037227496066072314427015294439341343500164388691319483731545889438255535950656868328295531321142422699010696017201506949065819650373936346881781498030431466432212167873393660289126361467140057406993290639399681097794721291576853372471147304215922359423482179398190637470450088380403895317307091009429990697733468740942969710257714148468800574656229120954285975717136578472482477825164801740174725899745548844541712948465957460174359328311218649179255912338973053749268116238772023397159005911511057695524800457209804951893969554940530365812956271277709143858345605765500244718081126698774594032865732477141150340513561459141619646976031034197457154773005552014859190301996351309768008044491098195199929675967041406428702031129323958104635637133533123719328560312212231902046978884329504499560723405332728778266432810222521057132582141265453867470978234957104950855279372732227263674148360396489270113501239747675754909229151771234001200468531857573883727137609861082604182865997994238357263307225220869515929290981599519138717947859498458630190920934932210536283995183428848875534229510732664542118893803819154393399851940890077353488603456454485482295303695682201693964976822765467012932445890900788051557590762960190412442682960764365514836442733463073131257251666761338326507436012541977754729056968176910845544618752484916143312833527485987109944622974995939205767528105247659896534143070173909668818336679804758862541634321370605525324482247371531315102298097069150258865338801714058159940011801498569486443710379179449916201881097694101863436840180482024136577824474809826982517995063586149408337893585394609113553249032947678129859297071503999990817442153458118723190303503859616005802347481229968652532885714298937117830029548627805841095231883018111108570477564680493599320748388979144485869161205055681285495138307482089935855565572171980376447342707439081751955456011807876740024927195797219674709106889913530424947793664253565077985567555073852524035369544470410972723862461423185386497709241110350907459522197095910942367832444766646032456771864368547946395281874908431430149879301520360808385031339206181785552466917306991165743798955159654651660958847108751718431367639947641452711773631818415897628095678730989012544448071466834938343386985712527326831719234525566663752018741830084535708890199758771044055991075192332145828814888639592148305629506467739510684874716174592737853258663080695957045763651451837248660660437227463753585190039410044546494078970689949901633247109816779399950648756834536516729765877299659384002273410743907882593073042635572678478206427744789147288923931916295248548479187886911607366720364454838962106045721666799630435272045013343598366790989512904033254196512141146214230664797990268183084518264739434237843004641097700766252126342178039734208007862818050091248547737499699823983279250812648504907120510959543000998949644589654022720296719472526383322132032208504144390725219221720516929114068939971069959274422216204514356902641984637690815634106562195840912322181458581816049024800716009227102171532200556668329346986946443779069874514902195743253386808928974658042089470444269227541089026789226485188908260165609338307103046980993174021173034845147701360557867129719003502229750635026276338143134158856665154843553507723881052945104089670566339307932231665099734049547118471105359834607447241819243682441815373740393524642003286838732680067299713739601565876927813495838491745456264300874312676936607049238912390698265541930678764939667215359572119825650487364472792144513778743192858695239863634151889103248135237136053122371081782745920328594999545252671686541480057762189754824856137010566766107527559627064629686080266881358585628517166130054750775534949648219513626090970442469956979898471338677095713027194184525125871514613646722678401846633871835929699228593802529060424260209607292854645995997754824171877052276382491174413069627191879805571960849661865494329804619346032821032254383452601795785609100770075978885300417786925232855843134470654093999253706995648978878550635125365079466336525430567726078343494850516283120836875058560487084564256441824044185172342824759484622571830559676553162961154651041091351649805415311124357269778747012662675165083638296561310864451473802003565233481735461842781652743788931108544810087515786095131349991348546789786850823746154568582016164248935159967511359873221954859278117312723707505301334713281085281038104489131805900219152453951427167079553627217345138186432070059256151476424443954490941124680335197259001882933355300541728780014076534110125907245940846108534459635302389642125635159706331730115208409521319381410249326590925414762167673221853661669369572997833077805947700410036436434496043230223295794346653686388645313561824874743796377678885026317312887358868239737238964894601712182073632292319334799852418572579317638277319808481545209389958318555894406276689716966144145240872105738249664880165779798695184026738200665182753447153127006387437975093543315589189250016588411138563844617346797317069345987664312181870107013250870517148922598888028670533926264171625967153363223533132994676615508033872539623944144278885988385365459408870749698723337336959538864591413731852356111423701958825396418824061762474549252892464947102882050103569325595660790134434090895921773127910651215948983552964090941188448151864846579293883480046839115450672549288725471080943359770630069424213300472413104726646849248310626967247981086366858834431982543278598391490637271741592554902578487918842574741080954917826114959067767295488616686623938518863492456431219966309701557252504911555725221925788462471903631085246052146297136280547526152742289335000109808443412159174442808772454035837639121128595651340982340356490693017685743003077200851398553540160658059138628028437137788870903745631333189419392932666023139520250459039325398250344529610962826944284451330226408304717591794012111911064114199212659041863843454587004662821565606980779500386245171475627042655191686646207297085639143106086600397716560393114084098644042567935784748763785725454285665121728199049527650790530504908606093338890568939790406398268490203589252931346001124224524074462002522963945826069851978800505683510317567649398327587880144347671349838130663655912634933410450212451171548506867731681189423888702965355442217633298998534590927190615038189276313551263036584552485549480650878828055396777428272744033395620159776324421800811712418721913206597306663123149946189534313830847984067570953741074393248563960440383341953174150624713837909005748642484085387073517263758965971274376157334812262764235551720998767202796299401593819679928111616265558996357136823809848724845225839285460596920188165582994754603198478739604194105957837588250943982157915876559853357194047003884707938762753529720652178902306522319466506852636563883861060867282090346836167197474484297595806792463491698086388116636380021549741289712498512684020399003174901904488030595986468753772752998184428858169662439248961088074613018631187421171910656034215222429747728631797756704014024223911837981541588305752403527712586738877639905401458563288752583932682395602675548385271042593184025656638103508065685332271893737840536854812526563134115529358050634143739486350281400184896873221616093392336196124187674497994743515677271132717265283163054765201110750508108009152490516685705947373049247035947502456913987460055685517657885405704891642705784478442732957819750466488945966080106191169646597228737202457817130034115582573005837211902497255373982125914010845956107178488445268338936709268347175710456690256834125085877333999045781061423395709822593359645781209473952727867188101022908524176873201921325781328281504183470757984282906714274241683360771318995935672633334466251476199022628583110280839852875962657074301421582750875290924728601981754669232963407123961445345630984896471528665210886682613844804286064248567920197603897749939722494123927582473045936433925064478755746076873924658027211599436655886810669740684382180777920413306010579207047614436855230920660109337694360335421827193640175946022237083257744510072535048076625887322940182397492842135283362232068645859843575740809697090392958946170049847151790482929482694224453582182537340369222366062143112443242771177305127141617879748326075652793534932637013995921876809790663552225942014206864695986692786754954734644478422215955569463982863575364066664596518557869094205421941941651031001173960584488420814769183692282289247156044762323074295966782926995909970141004327257107175108021361958149414177023265184316699276206358955372299583450333976199887673594796791724889456159688714074987847887477499650534520259750430781422898670092936460724612262560424680270042922462871196175201067758880973833418374808136249065843176801815868626757327798966048126845734874627606219318154013697974255722413434726228577183956829710079631045721229729038905039985642996694292356804239260538227705913222481249780304716093620197183903803990169321070473873379966359413385685580601739617476130664274027644569537240164478239645606299123978796252996980399731733175862942062875245299246947081156917483909455382633545948757736419596177910169282122689465178564406246855903462292766722931877352529234941374413460528000296503009921950899057084445928169903850476381506551200255706930910056190135286712617265816422422019470659850728920741150654296028729075479341690664069422261708704646770976799886441542038076499274491482963515663477922079121829603408301091004347075510856833851826024305152814866710626640092628038339630763665259902455194595345613477720855667356767440625315717058738711248445099538187088447211884722627048068575248445477199859500313899505476649311280093982614209919205467392937219159253383418788253532866053811121637705632281350914579954920538468479741419033000577667948649656643061977550970861981983039145049241292366470493201097739391557778101204388439984127343603244276387345036686179967958427833295057314676778008790310630394630341822883537613986783089176084193632746023164575352508492817181966702137086509768679938693081299176205059754154873306917182784108246480545402348684910148534784213567074877233921617464237340836693320252533382102368433421027401559484929394667940549540508140186871556312702882281098609898573883186624337748291590200515654557237205324761900490003386261661348907040508171504137618338270181486267015766928329348474909258314501023834264776636772954212881842672369078286497834216556231984008947455802141222955628756546020008174050296675754519661659771332043460393502289380465314499518754153596255482368494924599381325492232469114821227790910212074061004007511882526330312779880004678396709389721049517611334427342245437840240856160749687369475156247336140118046298087671461140467656908803603309304346746072692739260055714544108034496141887120575673116483425304359448693284170461879182720991888853690898144300629823136683193602715851729627068750653897273867842571765956722410838498905457815943095616632302916565474847990886268504566303348964122816715792234747078276873907572090606456469811690654760497962280851546052423493994081718873070634460249381321798400044457906549357276362215475314331949536650623801599788821973076291337959766608892812586148858929527739987476421799212471902407300924712089675214140320365509837992165884056574280218569923222284800679406609494076974423882177445602232331162333546158610990533905692423748365444874496454241294530220519000592851626368063490609049198779120356461127082749488527172683693390980188385968304413764520734751746418492684568753609467897555158334762040975498409915691692475327725232820168867707713554520968094343315865720603255050408680977270856595744456478912456604507567965658488515170026852513824390662540022720773096780346189097044658352738493353846185745151290942293904837523640794228164491168756280113491222846455454793536525757519312656105559832852788586425440945758291169799003725312647645574654423086690677930218038207840796335579388693078555611989182009647500138778333953773177212685839652542937351615701715386409635634039485193962997326324048439159525301229847015654847207568489202468761172849291335920664996754759313123620034095228210909165736737342028043360423076200709453343963244256446800725323605530440953481570841559547769517204935589521281179860041682347174991069183874846568426517439320518635875326568286399062799891751415065839401114415950424319713460730423055302313302866488359415886323147757217573507471948212129968276334004612561872192299018246974705316743980566314486367599241429963150722921598977649049447815716936290445183670957493586150103049987326917061180102989535280006335061986019956586789744498656605856523494062453146103892048614784008307159793698341488015493801394729158461293320084846564349212352126659706877868431123066862255064456159582066237151808955438838113913836986984538280892407212316595678980403653773935739725194207570077100019106675156483449179539843428113453898163465337200896501305554384160264638017245482028552873465861699542991284922569469915361572625715279654956578338570213307816635422522366115859002896948892690635776977419001500843777236327002813875131912809474858905405425141792285533903997422360133768883550637150616648743245113220591774291627094425527287663847449975618908599769233670276741081994876219825039843610230615984905143158151848647475677093135858700004437096073101870866455981310529221364509301491963826690734271029712256188794733766701336399143327436274122801752939422542758864356834901182376484616575488047869015998262472026140059287902264965562168209803941929252289085248816248162124947796181532280794264008909787933037181836344877880670063445288268010362843772546009058802474552764686888132858199329546540771538206647523623855698141010602541295773542320574052411901696584767239798858228444100572624658569817736034577950903272523179081201839289076837241598998128323534273101084120825813896040420323561797084934571966714741636425870033307460765996313232004334201070921115786582256953567659816475441853368021024763413487761142642955134301282174666139385219788245050420491331798070332639096401672365626475762007967318801964173252265195602789010622447714308425322190751183483202413931292678822526446868393687066513329955946988147576875592006546636566437510949285497778942760248668455511190996266427785102629063937151193467762077004128557749628737825367210262943168031663310087503846141635848644874194243654115619743746878669728031943432241280143251623269337372632962137383819859994024609055785916599570118130184874861166375721197986394861346484908464663839750282785874393376915043371611450055405456974523059845988944091066909230983217352993485921768351496087684457475225948096865853892353428779740453854672050534089797718699987950226317695462072881933226769592003513478785192881268740289446975119214450953203790573907473680503629952464899350257510243994964551787975072031015922414873645199930756149106668235786323745614490281492831277893432403902291661626641387218309477458289297310341324022632173793050264570735261147419048833999193308585048333380595726491573635339437007387717475562363268271783893254761854975791345056087511084666617664571731467478585466623548179368227149839140829563083885066681992399545319341471192840965364149251875502447435030914460652404743498852024276613990243640632045341854719738675350671372992756969427655213320221517367072457443562012083116466865197543564567720177789637062970162346532720474028566856651538708030349060606715463509754857812810889839170476949964355390383307822413688087464103524436703638693354378356694860498670896012531943135219109077474362874201446296945691620164832910424927327722066394002425843176614362523967232654718536049123842045029315267049026453159926260959804306103897790708133884375609578356351615188789141592237607305043478294387442919760988883501820774205605904871388306522484933604917727949065073873416358032743161727738524813036697729081528562600347992995900020882692358081252562060647801395975842858065597160087998524413082390218300605292015120229907600004209813384217240686908680673612690293257832214307665073298608948079866889909802910241977198545046514326768972733705352822332323944883604358235000209945703485247232171859997923934839893942673691191436914775095122377634931096600295140312379260302681832981857483846110574675701677433284295991744985332488651353565863305713322130307099646254906558706199376571447276121374650657387418286278941964129406653922435519093472665107692562308238844730394437388950561767222973380846640304908050265488400108084035057896595256295997773873438608284660665141513366192656140340434325520843726960617247181910158740855204118557747114936974335574033145306539572196540893031618242465197559664300051060772161835757257000179671692102305861678529878375166410405948435312570433293207399930465678875838723216418486878854507800192990305975445276761449807701510279132259961607181279483873954774470642512072335319044881392721513745871334563539493541514306553703414649585317947052813319371742611906381658177040686103257058917127817864949838397442484142546041159578239157890109657914839300666744987820629201219674772246965533582643176883809327994429397268993880991103761475920132254055895446142862006150608678798590178750827572454032316723197117886281698217488264291281853152475286881310393382856805166968736075482092784883344291572451713373608996964137598145094120100471955615603034790617793403329886655761716019817733333028476505781163727522306354150683424634096467035199734096022279879349821466429683681906462447785186007090536139716840177064043868084210080782791715171083534042312209722092076485920487078864580856025278391475721723098811415174603293622983494758075614643617890411509329488843624510151421473276796920613505097992559254428046555173652065141214511472379882628495478544726607375936444045316656322828011563949910421813116034199441452166389241807144479292341480970999938101424596660952352843323025763707190405115611976071142360464876725378915181522574297852749427690098363894648142080748194655037085314567979386244065500938942323668391991174145850476996740201291626461487647585632516987467512604564175103934215345123098826908213068479250479046330820164552827206236649995671354243595918585093079599275825094590843991467780855355064137539358428503785793915045280678783981750552278980600414682330322897340812527880023347060804855942635679634412101830593866877184476839499780384654573463069621347759710904267423494131836514981354800361607726234871188687165846105736604887280469187930068278082480012935110141459111898121056707740028507756312160330909341394773525503226030027500307420454683018640290898540277069428632512982500499634721488466565139794761310495742543086117732713105318768830167989049997462802337075342587937903918084860886993866229314267488024434987365814915932828937157192887903470761636054627757261027642491708805638016047844637586156223321375077819885202000313428023869076600677001440315025029943015326551474278086392369273073332631756162841019954177822948567808863738593566502297049348863341990028673549521374036419655346949805195495233217904907005923183997578318844826461610925306834210265125881413304484061898725801807222893155484609158819542467239782418055930694602338535165918199075065353627677364782794383932842790620929439564684540203995278100702061648232660930299455109714208454732732485449700595314776515733771868315522287268834711568263868584911992209351371327859173319144557250119333442664988456167929537484216258187974395251618887151814495846277130028601290284862257535980991201380212734119761615609171738332943211699541479467369584360366236332183088127120618312952878707705513498337172257511535699831356994004470594319765366145759368811487463237093178230610748058168021902366675125342700930494024712819192475498019931170893371880998699222193809009713406547624945149490431384875149213108607553987071137993127561125315850414797850856310340068372526298227622385460926895452591860623929480151250127599009640909566062272646846189102296816752284418396785177233766040063493199962761917476240383001863657648052191709101315608554395700434814254560010916428410563605492341521375851693930679870841492117721769046926289331046379615477052545524841786922906661586537844644433183008597089747290215604252981117264594155819228058110649393847897977805535076697565492191767898751269202410189993682407369654967863083343742368418945499998777515996264239883664538979348154658360930021988074120209115983826520046483889437145992106923291361542010063912142926516140086648973440072342417765053091633424211716129132426396490913734687177726443508332240498766351917870229371541499087883241328276562379900777010346576160139251036232424803715971007129075212741828092599484715460351740250898729102532821043992290636467987646964267211866281523675427385744804478562036549014106916104767794399732839928946122894458342167443495298805812163335566986163029264668971423241748160815401472014719801625128986793643884110289015126034922230277106181105775425130154496433244738067690854874757694518515390354143698717788925039832864314938345011906476523406980707052324375888853630411002907724380533385824820281700509855718719053247553039077237789582342048794958747038291836256090963304095872629392965113271687064965729026349300773463637434452663534565199098230798614504565383558120943267894690545613101492244995004370942093591346908383176484105947548946871010709066802209940648345161831274346213642288767852514560782616569839903394316740039580432489111066976541701789719091843462364019930725440067031128835808529026771987983230016670748313514800298319670681415671861896784095874700421952634225633302366375560070205450696800652457739576161134202452465226024105835122617171883632417410658988201912808541790541008296140732223178476515729781224771320417706530209731540987198590566978738223211221200784274403377882936404965450122439667319665114929212616552499211391733553909449866234591803219251033845224383622734775553133336546701019119884802947263677357542975195146876683222361515396132707603684742094395971058119448896065555749507732839541728412541391269508192934260821303051170481733209895876744639481532496970749089560244153572119478123271742270621183203192042046212939378848843298352811433453655823231952108784596663539058957542790845551748564111819958788641764990791958953677835170892808773895162572626894643903625860784866921868249302553770880139968128690846360898634564405466162610237535502238006664385243527230391200741599032344891144169018168135882324108003601388802571473197349460744376127542520053711317313879933367061991493881233648729213131571125322257770457353268433163229270963608146021013652521332285930314717751881370390582701502452133451803269051436320091678524802181138022885197485716976781539023469792879186579402450293815698306836247923417540329163277519433911172625978063491876257590388660452182988718652192941439291859111941896312563320093051069868395966062242590870540854756225818529200222764800041566965645989409620917104661874990396541193057953611407400748115208125367585695787511445728830422611576648015658517104755267140674984062911820070397713925077119112096037649067994508282239542550272588968194993210190481633530078183403219009107837630577902180834104040873925969439602032593074020377896871639279629164620639014269047168262913270728157370146094009074581042264802630519974426040630818252011982374529722833740891611803570756459292986272961522721320930241251007544608749092065757994242365476894514078568231276391003514622635158816054928091912931898948871240548331532852077367825177154546909313482920803057296750219428511947025725636003939456254757868915627134259148872847674089328222874842039293535634735851048540502454587211033572738862511610106480689175355976385811726688355389901698896146705960758216937051982733150849944090096054139671018320528884712519568032066361293655985006487868232482149948228393991420769273345312341254284985591791981320093086258905618727276112077030102963183186079024358860012342124609435243050735793057494634608346995202421217645544278976711769251969064397903495908810720814933563718675055777107007902514328816455770405120134608810089603620773470819047308632004227050485359474148699109414525503023701333426900938970305168712462502792713870183372460860159884393896060040165115663435199806149330596079239918264843579029291400677382370584152336966060618394206871581166722487022694130892819768772220549304763304154662006666159952892998654608344482794492245050051066199359946304033643908999833450266891023677633861775680618897974752568521260353522312040592051872455768253839207148985063278997324625075868793020484571537513068536921480562681926285172229776326001651662948111531850310548757393586162094567263237529711737997590250891483604080311394658321811029682989923430263325869473460098791823853667492793318212681449455507915605996384238020095493934087428991452552545347055878782337119764271331979246491981307483422819461215024873491133578425510250689269951725816790465582192579555299871850024043973952265265615488749649536579820783091640633444786376755340957617392610290739507681302257677874975487818388269791174464119273351101849704613037777801813662029698794489406455790101351651174652598914713548963432962748941698373024530358919641892217821125566466462064523682118470340722616313380404582544278161426781934888812961308458319903503876306242150122259828310798943628311055746574442787969127816359389861303237193957253569299745143075797022756281924847694743912703856721264006579008641895458633719065872222371437992897661945194902066681347153365202160688133342099315037033544987326197041816530380899433831009156429145814659497808795765903237832174040249360430022962227588051002628244181292390361275502636934980938593209310632253434062117200047857782563853684810006506212262359434335472378039771978919259550886927434826628045647013774167220656287498414365972168987218724744375820060438179063110672472630080398517562307420987511940454866865432349875277070413504028845424881254092106944190124173640296204641427877404815386373759297137020467955556639385801604346378616818766556651850227006399725474248877098456536755503661119439446219555103237436786407962545309145128144266492270903147802136905504438858279821990364269223598958925490099556225175542065272954644338729544816772402512309389807305951130911988364234813477510821261190769106543717939634626880942097258104909494193693771228339697253001836200724584848210538750180231690112141137530177796279718522129332809667480891245078337190925677481589651025061205761056855711537730332945565044885417435068164993753492988801348349229409357348331658742209932486078236920330721304251017204909168277091795547882938752301814601014466595459655973316874722280684148383447547078022390214945209762579706778468891689901111559637234838798588512257384771344650914189461136797553280080144813841035673862371898836647159682458134267203693336327977039611084577764469209420055993296665647346927417301313241599746761003628424987328864167745666988405956898555302628729867856411031653604651626900925478362469364896735552083848465875728320390947917011313505554525026078850671617352494961163242866117866552368183340794512152828816023718758878429725734432062880037300577245216025281699640166601479055938725607437245006555631935274229021029974611687223952921724697409323663235778266814163243371856133133213254920174629418309892492408242307520261139407175222932983871211119864107328423811893399654947852849601363759675131256298697647561848321902735851298522028457772308197691336298504344920501730853466890753595439791514046103955301119145981395845898667697230371568207177500950363180454915534123299879015110345369047158925430643256682972346871406125898540740950783993116706602769419395243192101750170532138743162888197993943303106409404010929031970950798765659245155708858934176003887561348770154337790029656626005776846788162979415782047293378741154517101860992190918277090305687616201087577601878742237153395661609435420703989059282620481576875513295336237009828467797497698414095731811747845339983667643367028171878020443942923598523828750579137070227560958046097820493681002476016373333019401090359874291535256264920749523872783201356706776327102546402380176681150118559916566547753799004074814255200098846203459772584401371622675612121293052387424719105222578430019971430986131285603781782722171130018088306179908909118503156642316843431919537889700384602459035037186211047252463777066972195602826343542873159630992356813858637030793739132959982786396548726429985479487934107164793620506812998914791639944085044446622612169045515139147794342492738261483986556856527216354631469412412923182733661321438934879042024468645281788614855843220100230805968091412977580202993890553883285466861867889240806655500143588145797305515007371285629785130498324632329823012037307075263528585488426777943974973655167462271798359513861686672051120144267843374862801850657653441411103205547484613328374277562560626396198223264105468986846337126771192071668183506257214549317275317017364984098451393151507574450603244563316967246683249112712836422537674981403907255088562526796690401327780665448399546322973388530521785192317215314744295302562217338997139320106630994341775424820693070527306636213480508852669880081891433959354863013545553878980187638072458407008316300655851328630606415754288827453923018314065739246898252011548144676646164166763624681876789857558189851895412334679650281512703050562082196111960081383651059882967115887958758578899339745250117216610771394198947157372359256764843504633817697094450107715375721465563855739005261723289962459991936667976808448077580478980600623210213247501411209336045033424768212153783593783845435462881221868315125895750518232972167321312996813927195985151460482217349937130717498130949786330042850941040325687404870390351259062109752660979298211576814212005994145883933489838458856782761876358936373528597683263449258924333734351090343136876562940833203292949494086493349673523061911125467685594590632795033171780007378203667505474127591909453677501804746110129289857022524468214727044689270025126878023417450332084022230943487508383378211154223404656109700740499060223774456709052688886500867321770307317338199438012252192157975355209893234651734865113897176379729312542236212082645052060314303512721843599053225162096375219823912991377187030850880652584320472064247826069924623922396549840721936778577956035634760801208852033259173889418208020528895203182370224499005075208533497717515401158215775381466901014274696654833440310521745304939078748953450321678905653070439927263585512915575110363941704162482966360154787358586950666308923173846713369140836541262249696414748076187181196070651021924487446014037407925831664531517508240095685732106764445196890649741267416330987383513556477454797613570342497522798463933767532674280859891431255096919966047920619038191121182900074452216160970158445417915020443950183851874104567711974240531873748709285297390845684812129185005441641852685631783665959416489915914253166836751172730766267025069314431563841759096777270792987540224559172817742307358668135190935649171452535542958167490398999864072832533621753860426086876263515867688908259180481232457613602068183256754631784143743785539905197747939747271585533878779641125145120607345045818394063178793369539758045282002664794505986699319199733543342639900427226546301521351287772175453027696898098089022043177548651858490335888444148451816276947730591086465548966868605213446473833062334798917573903501534888482844949498604741223470556723069119496531238955542028980520607190848917578918641658228273972157741132273170723434770570042985524409666106712764800134177655126103517469396365400612322203707319465618739083153622389344029035279724533971265909212546445991887250164773861599561641774001176129146048864503853711224789369971693853596028349494454712855327315755939919503199314944325731201294302464954677466863169482959573269547417829182650638321018934984659927621948969892711606602796488750558986728336951180073389557447493513080952651050926448137258279942921077857487468237443894961776970250945015230878875787451002313978490885742426057016239385773521512850108910201135686886619652937599975418736242473023197605673021314671770157426492068355606475828572420190584954499180315407916318240792074374536575454822455709410969022518883512814800364518411875882789924989534212841942686909418562123557264943682900882269017565376525023211257190304078096275143319166503482534292256330944762476489219497534373556878913941182790297630832479814750852226393131598998065548847384206786175566236073122101606735286420373034245573795489983043413672848337223637778434453873937526988617136789263301908496978198779813311553706349456351413826786977285989246715360474775576073624905599790154242640129398590750193168011070980160351490553650868619828950309241859020163734676571725806332846863702317001806374671727592306122641874504047014081203277566013835502971032233769747831121500021361095143883695625573851736884156238315113524622332423776147295788140304381982131131948681718814362314480130748460133017612767508836295603047708945103147462260267519783729422771277921842824765674517673734839013354903690502475961655998767094620370430105537202733187380215534648328231776025371972026400657412445797358751243858967094026453334597521907343634491541044070507702358446435596188894073754307658499068160902938197700396777032006718109005253400935218059542540923320827828016262893427516827777353832245841045400607131732070762717460227581557390664558305037742228501907520514409562703155198096269398098003146053347592296492988851613107720041456607972858897396785733345777792306194224001326935796656330407218046106868790444868182396447886606655893079711836299495897820930659341549224278440736835966819742055336573561752513360154550434288808315547137697986924912760057398268215818698819535436919298620083646453176728086370585712357903502447578373622844083816208353001764645213427151768402435862648512028974671882429661187405829518441572892659211093746034604256245894706415184902813035507058370967683443128911146744833522198752205221899379425344784188510447915660987956459143791342047191373927878831790579802383617614924024821952884431095389853643233874832459071395700225639991110491583706326263153975348002310682765762805536518887085138001220910712435273280110383356190793002044868304113078697642659859738223186178634385231158305063670823899002035926460428799343235067952051561210712354578827719319526025591480034378109685319327144532259760872006141421904833249417360538629782128472982161130614289956740318475274502182687796883390321937046559958091149136172920998031810069355425015622484608129749310874844168335738698815119709717880723105962118168183521292922401473432723490317050212654834520362186314483193866186348260006649793034691044574879131167882011695207548808850882988343831747675964086217619558824154919860710957834295802642605887524795278595956630310309845065088885272634241597206123941644253274931601091968932191878993542474703254986505266576657015911541786451051064162448575501496379739759726795567360531548942556072215193909243002221931011971849928555422120421199559815367676792671471640847804893936245549035940802015596541998926446729447029111304918235091300330597757479832215426008422528041884818329440066149121184403413649266778547276068093159610608135962366682220112156953251354413903838915685698431386578839857302813564038681843525920180405685578935454185879507523039479759092991654880086304117416094013908262829005438838190079145301462028063661660701749051499264631596858514635753837516751826192222200956268249020409135144992007362684504581854399595140225954299889076637530201460027624329013538813460156555147282855031130029526532979780274043170166737868796015264691424806035818712798533403682250067594854807995257808643755757100663442741084785337197230426194581085242096594852655162294682839563543207059965098807619629367095347712484572822610341054666010384146416303544271474209558554765329150422459302988422894815558744687417434305550123396244002872418736577352976806142206686696786421478733213084333653583771100968841804166760331785076055351921102066639253659945234672019166891967113664511324614396216221694507637313515345635951643857857899377854626402229425236801235893048994084555587761994848837801704096400719819287958088927280487052053060645282099050346413618616021031498345345423751161588797739886098918931945908204929279720715282922137177351703171859209478360439123497467137304264874015857246967563899585886417300707757823539472351505206392954408903413098933850009329739189162381040805481686955292920313064702973977366609661933816405868052723686171989510193794460447402023263308186067149900832058384315269228116580974674189848735311267410209568329269815093416098615581414259462983276254582442624373756895621736079616497105525849280827451267705278544308015466366135536068400555832756082487408186593066046776884305040113071772984334626684380176994472930233642350717271382074392554160501637558978728308898600842642878254520324510055256611147014703677208125074915857879935431927380246762183858783133002429978271386578188032339489363328276295452468707716241534479940807766755873561153246413034603735410850059113357815938946574313503419028660022368638014044231924633230249789797534738775589066490709357566146816342584141464099860489262751398426771826852590658379622256937674395130291720493950502722136934128463487154359936393156265460022583189359262133860825806806963931267907866609117407181739034117822156885151830496464176202260302746038103559154913061847926028107539270255202887703149417789573157387783882653384759044568016508458977952855908030283070948311018325462512105141182278011047213978471137971150520208834232029976407484048396481654204031821245660972188112987796013181373031966608760112340258616537551596682664152976516546036422765441215101144941202511272896501873145142004741839843053986246423754788047621660007175103157487063033150176817789570923581086796719654717815252317897667657302511410748332943544662345247021106089278885015268024204958906718301082379842974814216984120305855747546535859979392401669165279604444898693409477715256334666154585361884393234641074172263445911586885633850896068611285329290435470519383663996388283447378884174018884882459307831758113148873633811880926440278388529298876232368765497612029955189677210918139354772306572932690345255647580648921572409379891734333470836406969937258211222000829990390839512678798899143444915607400938066098422299705844563314498465398931599297986811958220289136796218471166254483774272560902107580365299022525794765697793610459500675498336183884414651765447877422237437997261102378987632117458511312181142933158747853599387114926766690627880126209422572698538847144911949965354536970131421348800730718558099145285696900932493018926074654492218685685819122878851661848835204812268444607980039762302513922598964387008506906971335330484636435491425840240990125875119316089756136652308023511684442460299358410961195652380869750968389045755724938312210315641643821680006998251536865969825484440939128345448565371744989034559014926534690652481883819089692500699469880179570100353911241754026541929402057824250621086428103695991336489672434067312447614430068134202804473865680334116880668028628189472530081553705788663644168808414028217778657983536594530529281426422357040452862857140762907756779616472621609070188419398340060248352779183227789933647330201910765546571653813134759633673084040403871760827406100344860388483434279739399409862610894404814548902821120619686668981407593729489370689695781138875094092470299699904945574445235822290658236835867279126504052980744749543691244106794835909177158650832409814334457689836889613292523729238264983189261705478159438380553127052393998240719730650255203829343064697780939646415902434819815584951155005018266884240961669479595962740697278387133832334962475577524564999030360967674882531589444226162005149669187325849962419843689086936668611845567529651622172379862446212602494243882108898932387658696447080876566482396689959100558546316150396914920619917392849241542827650835804382893106936464390907552654382130236788856654134161344574458128183629878019742025550173478579774500169794312131106407790852877792358882652866432878011451725864834845618517144556759230708083138702566865942683206219571507383550153575751559329988895204513300509796854837279063334340329350079109831065764907283401090192965574121045346640649274875488471150701335867177024911885450286705557573527888968594034608269930398844137115343606114042894283046663746060387138335243414662332222035224703079616399194483023865465174419756209595103498041971588346659070930824324359016108407581707575830631233262267168634313638005505480001976211915318570416371823030896365286617944337743935920390404609677010784129361728341378741748216155030313001088343619645064906254445577527398320301158187422601512141089301721790770654172809875648380770514288710549832099512750687474023687923507675304959191247145373141181207506655805353651257646847703146030500966070852476805788476611527933396130648233892396196063080895179537546671785337002885735636588740630950002597060327157980866291813790429461164611980514638535206769760112575451451354046302941097965390982140293697590587591004111731478014771341153487070087094915533526925157188582162495931214902963663195689068705986025738689237253149562781377786598893275749625720513638139263202317619577806770607505180115932142192926814364659878207928662444534053067825013281695982804881845572061551273239427136860231399223999642594521637860349653697847179893496492567672580986079856053607279148117318433349775404256662713287334721169986540957050279749711176263653823324474426636972258472361647343756952686343222079524896889455378576144057303149630415216704987491166545649947714189149647649924959698418285344767440391532019528100250590852695645144153156745611937023796080530049265273785262159388606356705774238051689106739396824341217708159002859805246044738989403396527955340396570171835716432015655854296812722094728220261639738667865350356949325407142972389621796680983233719179658043788296661878355572623818629360237731643825040921258320788777366612893001567974473675382274021986012434759374204806403017752733622972809271999403939359384516639331908763236421156863709490115684958139954916045932609413731981655210391403723909345841247294394953703606951830272320380919134001008274664334414222399457819674965626901956687000785707553798502019481225445244269708914187256767365441054522664521725404135779255629643320370474817077483260656463910549000848802581893439838307834027099752739655749843749225194803815007648255198512163943396492887035749971719262805239725807715270947548212108835242984158999983091475821122141853612214998059323958673680663555773908603162146834586417306378389409258471874071563731302720792309540901182248411040240789939376824365691185623357823664587781152757384323595952862198025578133061917168119483895908094411907067623681314813479973403975597053049193078193463179342292691398445099158312305489561412384441499166222805331381682108759320352910229877869781015408598557389039122761531269007767431006350849467908462239028800474859434663589532175998848595140077479375754136306694643324530416949169469523015821867755768134094426501414618706074111394128304867684826617867428514245084904166059021166521718593497209847521591185064131158270782504656881982594190937038043038777681895585720071833687895610806611205687387338343965497765346685953775368195264125481387419992870263099790206537429811660367249704741006107812875974195104730708782181500197406488117873182968711348322445966381226358379651718539791876789204822379454509624114623429979053043352271354812710747290397918050655784236785620464709258443945805157651801023432844608488168387435815944856441549471595022157146088323007153797392820740695103545737977258859838447291370766056677101061732447238694258821357478389873792687281365355648224856497041898814631662437636931827515375987666645823169637428754068856944379904607112141821035569392574491738367411090520048722033271912791477770151527987095541592986638507013822857416101009563831006694453130491631486473650552186933696769742183486193302722752454468075994206633806994560117337083567682664894247051087272304534284343642548299180649985469301928434910793435022022833742925854543504613550000798322647797949955363812058293977773709222631072141262304608565842538257544346602812912961778860899811482848419052036320054258449437136889973304031369088830791244662156868117388936282834043223175068366988078843527428105785247070003795632843564735068601604190386856202458102524305271786261066266494250419118148076258606490366948425758594014006984758672649087353940350698538390423369156223359488865141670417138039604091324209390913026715689152617511150182424714621442463701301623214070974070726729267048052589545913504841908865270024015706703497569133821024329125583448104246362054055008908143387047764364934192355262759179898454384684619611459681877513647980720424223905595029261498812505636029893896995138539945340986618134967147673904453930119203933052007455305910949403562987556862068216346758489821226264245156520751541722657850055219289905649846008589017608765954993001427840308391208240164434526703122001884335570972156839256535808688893312819205833764747854162303204618763332563704686338914509973580510554407214334353318846781429914874404798390537518627110733902577127198195179377331735483888594535338281067494567948747462052652974898752880958552145521716281181871566684779036455274074122366731259460049392886162890137652766329130540889119489261618547352738358353216433885834620116080984982159228487411584734712278521218771067124100097241448226027102632946448046357324184933110268984516859591879730064035372385728861008380962300812527100380718194856632926834605910545500210566106724385426596279063612567578273038606651693986253572564574927313614113789077058588978698527203480678102637395113296610994536154094035124500280581594217434599595660484327344037681265711555781358819043987743961108294757372927698364450177724268669073393767043759390083706865115339314269571719782384344255193246347653629283266888900358438766830202918511841346629688792791181292214597146551091319427372411908845089893682773744986219007358839445644753729075816847430773539847500568293377459521981074287194233942617170597660435798870279857543879732197304056594427253873228269038309115688517410756061478244302632733109411686751147670999326111188292761558967902442960562034595826218853105202238867438815954086637439240667362136349358445744557194041627537973758861262765888190619257005004623711420844471014429750131091877489054137428689296318862187037492447803901989257364283024841029682104951966667979704269180838831834376171230900233436299377907508908828079229571442508083461224590903503153123852739762727431382480746687099580679085227525439762927231850461030909763594444411117769890185922187175950187313591449578468059865498618326502479688969006012840959728126809535298876212512448957613292060851880648086567866904107010914420781686154778699018103798981031151204889558536443031129163486028002598700612934254748968866584719191223331316242730432193909662806120551012839620594104711551384115477230155268506927930067557799666333637146716966391825411026837357955487937334205615278852603261663805166974737520493791309527704594901071681955847665042700693845823476557575439296080147829308371317291047826212786062272126351431947697494954776288830305191111928380574975513656547667512917407241287743078190795093010407060605960120550835712551682066723224227661119122469625671515636861952060535026889345708699363399965985609097277532816439001566247227607520168569276940235840348309223441510933646928294162059239580849631472228886152098989668650494434916222607956003673028399290965588878723075948297887872235912536077536314402569238933183648910342862131288158945330962966104959043831404833794308784400147540502425440446253433480490776534935126255069945923950941708209194708134183052291217945413748985932994239832579553044561168464949720662072864920582926919077228751268772710056452282363589127398721625624684401321156792168488812882742848752546671058433472526530839101175479062692861217702678453946470071795427718233216666167467541352002705636765918378911906829967433878213680719456220433398736177188456531982173532774607329291319742041414187010870874892527859041867440062790248366221137058496330764409023338118308583252155279664990505657031228077707131265325640248898122612692682303123727583235253440155100967301176890215743078319736652033843492333699532445003709041999238794193040976860048406707527144572406634562526302315160157809876658790514972668830960518660361756556135511516190466062035657979096353852971964575085715447188894519970156350352520070920296471764129401826141548254038896534751147306972309678550399621884376846867580858965443286343130135143888776869837505035953254300963610143533945820470931310180717759895152545653400304571865575377089468222149355729793806793835635776765103446983754961142185079167458837318367171075102663501368757820285551395912007062566315844258870098789884108068111509046680040491986610983001422666972649343635437265011736996932708257357416390341167139474809341067549536108976966734155294189564957325014550566695248324395031901537722356790658052522075445807738203705336664607651887709726692698521590164242435922996077157595886378326582771828120079677889061414734709614436997274715943527358327006007978267524155605292748516022505029733327026160547506852397897254343395256053654907488056156891263154553115172673616255417414997635656399057095792436072652346744479998590476581978055722625065592963643125811688454510409229722228400549044063306890446461155362846424080405195235660518847734909548418653322059887968443745234681181688200336152244839935740920089670392151444847130564703832859581745524001478127214140752651144218505602543527678523742567337421905664323351473206881807205244846309465144444039100576951062082246444926474688133617258479631415182896734199806756936705213551989339364068916751668770941280845360787454003568400066188361969760234580093459928035876512788824413467448185962665664584826805557317385277157188049655709447112732298418943999533107180102025750798390841257605188490876652921713925570630241073997386188274795643793591185318454934612865728014881985800365375350728480937623773411655588492850810381065914089780379738423258891761251006161563247816421168165885186999307975498853874272780192616681260840578823004579828729747799521175735038831558124205201511206118188275074285841584331402846324040868979009408918030270033915457358331430741732903804830465602652380474226829667429720514407156454074462274634106904516451278744269112545904673081501782589344958987816082434585779095339862709257794189969065121412331431609567131054342169717867348267156378587873261707144097382800918783234505708059779607457688830863904806346648794212286156764689694997254766787127976571921573812831619512911562979289712703704565760905460307902738282108519977907100957336862288852989314999929073820520661046625291289168455968969802389663960873157154074200142095826294282086832931007700244524054052336650226869999544385438174063832322396708421449988456585570897101613101218552297418995566810333956083799070461184101839701238847653474076383548630394046355291077892864273615116621508599971759462861369273574829456050870852652774526978314827719248252889032051421079107283678398907399227202004893421182940775104275346468140097886057553076740079387413529680937904689166329735493585165305474980957940851161131047419431470169312783544532233399625612285774920089119382431974246939727629849190468592644731237801936008939823923153176654694119556362090288199529160805324773318479507189899327600765851200744767385983334550950990129850080565433752098998159752676516657874383511724735948647994055316669024782401346423353639949841381266231583769412437803367662054272255930498820913303931072782221282775798121506705297804868295770812717088961225057653972401980686109204827332018000368120923454145078373289316018454630628859346516861145133155776454528636501193942780302965985751212848848192088819231723781771086253703742107372279668033345142489388315816369785584872540823349084031493917561040975042110033676376083438560823999860885278574744472540021034668494872225898562456981023473313942608481057062787249326760274172997660332416126478888830193606811608441261757033961800264303187676075713995081021391151239300694463499958709666875204633981192581722901949435695782336014025030791426920750912505268449854521146968030136614205090582530521524070656912276088221729929599395688917279911947718380976104042965333502090541275828061256586103884250701644962791811886590130182919532512093993586520043438883409294352219614373142298887008816965581215953926244392585187482254388776096164173583592574028172555808773095712644740035431930884163338490739635112726751147577400436626316860271959211009133817995709074399580277737630707189068973186281094105728253357195665912337079405059589971871723942466409196476707872424720652495074502048498791375040841921037688562429534101353562733972329081521920855585953259937985908037938815506415358372392198382294765509629903833665247436372207325385226632926674529908589532320633743391723498085662171746865172920095137586165067560744223784155689580305865056784386824197257122020813203920327154269253725688496161215134662910469115904195135566026672610348793909937234272393146700735420204952028507197594018423651870207151770790291989415414763837173429007425746091308488961552800557465539720919184727221077650403984942125617548468991615252379381456886598319480008551752364283120477734849445227768219089122314487325973482632145033382294816704608813268248371065280686329587844380304930127146349393248364038890903575022541275026740929774999228443002058274480629608399912598526101817215883314052847082385580805111468784031829721402659444822948560631972347432908536622596562060612772571036723684913827581204910055906155341011515952946269371762576790108141362666235353917535626351890574016289040717197239350797989046411024492806632040309309986949572484028416962369909822056998560674528170158712296706044124835324030354708498655969571903249428491518794024081408813752989855049958408082445952849256977663674741495711612912578579408464689951668381866650255713298835145782344426279371361889404406350662879750018253185157508870620649043765306844001856633952584880361229817198377118666692255260739153175954283021893815353268719779788243249062925324074441151149617787336067439154481849121975563893171420998921053404025290300948452659802407612460649508937991392031242690329993390391759631144064974579629676331595643413203575616337551670973378913868853962294931509432371055811352087598199799497823814876667729626443734559033928779684477359276068880551686980908496905954723967875031669042194611488566177283419015850417002966834983698939622497977352645403099883479055675403497797118076818141131364676937119371233157970388602090171312892269488886902267713791869016711651524635642210126288938659787599720988298094106032370856500802449233040095211833609805238785548419074880720693392606934322039449662795392749068700824923997226133581749244188099559986676169479503875746073822130448928394562379708301034855678839587422617544794198988213057252548475491933037325499681645289200945890092247908833210384569747945230021060104399771384249475227326849893890191290147132278914803631959976768365474860033014424619367108361849208404551838055000136801802543130845222204768605322903999657700664613528152024827856003905028031090938961974330083303582919651786348512367423740622042604721593852295900855927742352292327742225055356008937396853795958303770136918072532632085400974288649440202566602006608490187480827968131018577089475910768344932931446501392003336953744140603593295800066337385679047849846371647603935241429639892369098829435813998203027203906228844762514984221359175154628249870450873043998486067669887617283975368533946093127558114606110283344593195315211468612003747163856067981534458774049726525227445049633221392206253608875903919958105428132562760087210675024860088633414016779713391513769505118798361833101866632836714793680871919945647402143630310134656610442479243361316482616151996425987854372893832560432758344622034327667629418801461510120400730580834222717056463107112095963911207522196237832086063344516924146467344022086343495478720832247953471760261978533463891936793053955630867433121972052741152127159374618688359699124734665998490511190467588365240695775519599712318162224245103425116165857582935719566559697698103885149898275294964300902082719376185867995200082385913603400908898325960492051348844766675570251051691668913361688219051042015165298931726678204197375822440525286814434185138742408710117217544053716294043120901005136291644753915479266001736975674280070840386329772135341431414100459091080514663274174164623091115790179908341902832365381081203958225522481874180591563372367656162335013762992067063027024546210895114683483573922675292590870789538844635279600104316864588707468225635962338493430861916670323377181662117129435896146257335443480671672068113829071502394955027272106372435437274855023124911466856911256087148202995932831457516332593116398906181876396101178085568367395423722092818343704410502684587834671380931626641947771719803305849759192538588894203781054891253522391611030196139760772785122790649542759716975489317040689217805961648978080339224936058452948254667948412118345268136559521007049110441774914246300019000213569978278630188319973164682084538269520830337423745053265769912353091428949317993322907084578770383555293619306307144883893516115680329492956759566400721950988958430743600246640160854135134236613548472740628762052501468254911162078179641554129009421206817386673278350703008324775168971712682384024741531855647989913764707011788831285630467412729501429488098134253867576448868814604160869383733293524877552869154071002950982816384397253007455225442383577705621779603996205284000407040417403229610411445556867780406907458796054404408845099723095292414346419949316804293878366024825923942160201217215874049003452802371465931988550860219317920300450002075174347721682650592618532687094479470268166088672786857703719402602545086991884706939275110431456123149259519298521292179428611053458295110432439049661877789043241994168683845955715102770573812884074553968570299027374829080427118646647486159455034531118606865528796330709341737914873361534856152261625245438121872386642350849475860732497454527785454056708703403429397992427630624750785815172995974078736893515818838491542586437896217131441259074775320005257890245317498243817674013141258237902781389791136982818519218010146953287294689944195618376040656230409076195112265124794787930933576338169811002020864986925199937039718113858003193331393227386039472163812689102992340254622213017485687160683671623886871225494975196689070479552190173621045322749497237690308064131869871743048365584433819158291840011814609602754779734886666611457801717468937993576401973670034155554475574050700452615445342146274976030448750866781997204433302241209180913445125511031296518255757185705479228803175512038929415425094901492042079586094689621811697457959298118232394278668109356997686365558096758271443405861349911345099059490671299964440434137616338013776724157851405025280585573311519045577243942166385075647637074815964504809021978679170862721380394682073568635076242887787521477854005025988830059131945183900743474703822865450760081351235598596507977497722291380180533601695047868649701377949954879697631684039571146109243038034185773873563232224131816428837316407402877567139201346988329171327800422128244014802051381449766770577782221142052072794669068546389245876635322905125385174892873804520672633228917609066428293383638439490800681439662865043320474428646909055316279989959408896448622961808438337583254851827040071386463605341842296964131128952634021859780686905306081767428821421223025812496003982726255308961201056139284666386108295323842391887075985816922931823576133539370643823704636347016264812245194236030603450768246048571286916609469008843290106921449448881962111615980446761346839289533924643593278441036565185911579853496139216658674499813840316396538077693085875415389667443361763658886465182309528675206638632122812005307031078498967193579797784404564530352530532401630052277704491115015947774664188704524170773357334859872901374866940410511123339889734960153366464305019124254803218877861643902866070309306800114759777825626739138581508739400706962399461903866429084851268141397880481409207898839516970904213253388978607016982003154228788904333354877476029895893614602376236498535911194341285056069194828761011122718150698995510924811750315525865463457633195245472525669698147815945884542232409293920328548154093101103563121306251644304616091061628885515855910866404000187318868068961806471410528766836918318998608053377348034192083200287264659352456005338079800414484046432239073182171880816525928916014637227162289692979241925992454428385558178123657292576460830971668149195261561266196349283708322625568793369233953712862799598379791363586686122498895191601792189691387198964347215191855084835002774867011428129345143072550188681700006911824757622974334025469700432496648554894334594594812587454142947955550637454753043401058958394855440371458714358038583146322532433628466215089835279386431194370000123797135565417435086085330518954242352931761592320815736115115301089672723943982569863866732410430026922602659255897348112489413250824968490151657426945598747649415711133202382010631585320949425739027113505516162678644956039369047539670989748360768629993981659458469107603732399182901859649790604798887681482902944831064588542355611935802717577619368151268256859380388215271081107583210314971972047046930388765864914671290856394519968019423073504419096626901905392061931818802769255177385785619814510179114640961725547873268977577486012349093163251622537986762310249460564139505658381434673632333463393550208431712085340211441640973975305863232376053542693618982551446777907918875971023824834287916574164488636689500725287604518216473638198727231403212135749246702156624960099505149419923811344233846099526660348592931149875013254920748272866697526215418569564123019626001626808635093498400222351503497184166339805814853326858548521579668812334705774493731690572913775240418770666717622635914742437799872385160585417149084715290684383352839004704862379929866318599775191981739871148698291643425488022248636155853301668709063149945863777265779214127773595493223309364188623240382194409678525235739773347993210503208790050669784899433616038065623327869989512146424343883528829712054378566254406626987517554324624175587674873809448654353890518054489904045734052382937878491295125169698148614688283240077334385613540462277055642400951347535947887071973147743253065961075812612900725548293137151769135950144233052888299061453567230188547578684215400338643767701864774104157711688074683489676110203424841560868982512682572563596554970354245682017148787713895634310364856207573283037619953343893465717397871320088397956207098024785548425750093880599702304637502636494980341483102510304312672785407441645905979448466605948374858910380320620941341639782415011236361011770222438389745352093647181096973725409207899980791968744862807276035533074511769504299234869950442154242475322402072635838676854309675590051566156020875765701179542052382368996742126668507311645909804347893382501979593021025763471572884250630910082189665490242927897666480810068574567216247350661601882762101382638078874708693434704545575152067816081609913390448265499179639251108093871400751293394646643130592214450208367786878430151214718859695090686136503332187157352599258461359784319043628661455661142005283014257904101024882240232629605676868528463524518156724231978766798320321803954766167284240223330401803728895906377172779285143798931582565186436964685936287564241020265728514426348799497346180840118191450720848738676730868229655049132597499215515068378477773853531133090065858547983510845819570588100881423014213860345427903620822845720713910810958571182482714436470196888726154339115041890291696583648413910449795739844822136244603341608270907138006033354185606541731681961527422071720108621354087893721830600422587053616519903864608941007670573484076137598678697502373655546945257292576516665331294125481228453754454327278709242631219090485727435326496920637653417564826860084693943428784964692512751949715291383470566761981101991951585577217077595095840491695006140949647710185388851830223261083763829055522119066957810599911411366616884048714156619212181743316410600175911575912943660603338359843957797967074296169894339550626295979626031588453822293824274435085426015128758137247254448403574384968522948115330673525901874379530209850860563209328620526977521861311302321994357814668929536288305737274668540253219304914845729453357360755995973714498739087982875749186464051853601273764778724424528651756534611279670360965114822511163431255449441170009463383206447108409228477220912578343521551124633285421937381262366289017158585533234722367534200458300388767340146602664615922389607289937030415257789181067622238299556761379734242861795461141263482757673228468388347482042508207505418215084006211169207370981217645661173142589321027895759847789166674686129597646150997420674146116718767074380239991426194556664260973438551224117432495227674284118307115623590103109868168558669602944458196457399583601302820566383924637811832118790718161230803363961368134962034937199772610066279256703261935161062086033798389494628776573597459284045937946201011610663207019653285000703531916921984297354463958547722300381494408772512618511636590615575563582120880943230961378176953260413541348422551008043993134123593862737772351222308667588473948911499423693077651596711280966446167936868463004828785794458720513704609536154267899752464959891523427719446799067452577243692279932486484865896555231975142699885489361046078011615464586775503515565780047774028883439658372108211406723790271393003402581846904948025045029208793647037126749953913601767015999231091438068416553096862377275375997500966640061862151495659884458136907966410204168337058915928798468483415463639360121824458790452737638117440915018177679485022686651821758581324615288257409464165717429521947552236274166159961393594116249114004803919052708126384712063998920436965739652854513989308661118118701271028116158622266684260513365037649512127868463314519741972236266305721967204939413249103351633918559175235054550905965957883302969987016317626500902231516495552142993178397332942312610475724433146482584627819601389384222139517378369354736075541767223147663454550540665128903426955635076159090847320073272521867635582509784531016584748408906974688588724005354149995869312274847892906395281064759723500089048949392233079802786567931398748794984960059456117566047504013017117092065937582241821175622259542553026368457024393330008715827035690957104593514395634734173606719984495016321790720721097113769002714820839988359804835772182595820644785268808195420261330936024571806528785278242505256852281824156251900956896860623214098030170373271812140042770148580312903165916206158104503766203256829990932608824710091894231005382285616540462315395764010726644961406252753115303295011403500588999941232404294076600619805010838796501053935944257478655792409495536789057036447943480631798550218336408039915756374759779157902462146269316854091101254094547557904760073563432727409678348163556575330621102953822952403301938206051595000519846018176557317483753350731487495306103761791245642476772499495735885398920026910031748825854350008893480051964472116540497385623621477440291228956384650721219474427360209479019485280235865816627903142013489456180699467568101086727271798973317746590914737493293817971950569602220537689377712080811816753902272278523510398602642938179676947871369200410381025511430125336912057932095599273971294031269155354324282991032261145131950664346594510036687174782888498111998231520387464214438261574946936846926050774061959931479159251395934687718120329957817682066176395059012325024377056430595970537325899325889619477797107287586022234551311821943755075063997267033220167548401123768124117878457997682173372302772234085655931915825109789641834676655565371452351204305978315655545014359975239620626617653989576363452018976474217631401627454942523208447867902309550400798884803341115219948029274859040145294102531353900343111425624733843905674653747417656052563937633746138012408919156433309812351784958499449718097395871641729529823660337379395255960678103804518779960787765379007758504451617738659540683048068174557289613488102834517253324250898758840765980224008702972486709378646043746275197864854760696123876595174512181288611136947742079086163973336451217038551942736274113940048784984248873914113455092426467578860913413121999663369863569745757323043150938843130497504378514451135506853056315001344409603585746741000710073453086012498176339266756279100524052898395654779140030860895666396897941452401158406994743413307994568970030303917606108964971754195032480636682293409781495989525482928440704225441717601733832349008838334296443304100160952053373620671540646154925145236200697585217454642070034969337478332959260660550462783542677243278151252478195221677026688361949633895998930171674835989102944225907254664841668157460179099657017991661221100895501594474359048222461523987925570262287376221812439796005243413536313339896298468935554871669954507266425258156360509895138409459057108409076559800957139166320977843863096651849614677720783260840714190963013064629436204590276974627157007976746258760968753787156507396951872209524179719281262807234191028932814410005068697760526882282631276695229745246390478082708794040087297495592084148613692770300153107224296711231595543465927277300573808110389167464460803298647072716430368443956936316177631747101896264480006892044769174557923277392515744557367763698650427227188478835710893317325099952116152407422394494118472727199620043469826263354228924784584345021252361903009430166730332058836590278099841305167897918297687619357002799639629266346645445403116206516241658552749968139798374969865868273209413183360346419198436688224435620670308571588637088743454450360362194099350216675202308380599012619233840850135856351924876963628555472984846223118187555461214134318370085406793375240566440824838838006302125710337521791271327120395974551581644955095389513070061338137022933648953895558796650328035944358326611294743486208533356419761121249216522795221704729929892955804939297470643874665801764727967118719021252017240736183324401772554272220408101599759292126582139840265293671898106713593006814405104400931102375131822940175452095375272619222057257664793345843919763951140352959864404243621448149940653372235766986725073006984009624217927658457491154021181401813289873389042737653605873250888775794125179117219484000298865810299892844126908767057542526524921857235578001274918410919008730701788673545331547171166821538627866237408967966618975215836443397939029916777081773653139039810969973011167853331694424384919802275138079874741365214891440125652631894544061725144868553687482284987808409782163247491348320074982140805564939153608263831394951544001897993018744528938120728966929038840574755151067107193087612303559348141010310458809277453320059678462180111537296458709082837925676425365235467151625267156228841144007918924835652365618697313189226888800552068490975874763463662398782690033377959345922743646978889696039694362701763630882552613748047686397605642800114089923862161451629640565578451962174272450999628466426761267862684595657047305568503867242637004759589196712866141751574012618532355928387079414209043480452835066424727591997996303750007374886184841905253492602816270389045074073332405792249833968482557987531703874397335717497687251337126885625786823481965204795733837915547867004435610150343465617519310399266604003205032173645445058919871532085673042046029790812802124018192000231778789440144799381449134359764638063289010518379350064685833379553514477728918826371186103682582938202701071952874910730123590914713168336607222336530105159753312655203482410037171868395316797662052256867427196990065066029293264988163217325343189658340168608306203971444422327314786618107329891461271522357815297926706944783139177465832974318785989682076588463163716680887411559009341847798028952535466185842662837080346775263785202494637432921659434473039658090125762769080377813878358425576034087225927474381795216594855600482387105516163097148331235281153454109737291100339601128764514402176044451409983488873920749454846827751016980027310651309372749094598920921997003441695267753487673175689952331330035628224334116098107067068772637002439735445799915999083802941652478229552349611099686242805641465939022861878847353252380439686691241808518958810255275182809201089459405106929748515606772162685286635574458319577999886151552436468866577215523412155803137217179411556803690466173018382598210835492038584321076931697655416520580690073533383394030061012830762101366321015307612672944707856630257269554098847352892767642095795274689848149045689398615754279552549894084910607417481534097477359664505147621599100838217811557929703923721129901490026993772350221091381013570129793195510213241928751178561649174187728891040984150830977599504869057035043970312334468208523087071919112961120417961362572416233795332886667569638911366775284197340727310081382445561773751393356342737037335340472713470595267982203182776005842995137641966666995741832213251867945700188216926468144130382094857836428736919409885750363676307545099461744277960210614248825840290173510528397475621941445049394097104567755881310656599554043169317007566954935585162373295218443387794409527136817742469141976303266847675777797289949075766392737631440153433537309354300329421014561556399109214478248392443876452928498881074877822657566332891654651885082939818833353104759326301178955206131348260921115515414514439128521991842126788305511735346874233827531429399311308364523462854050605989091808128034116496103031893392198677729680579704431212528640508976284444004857847721398871986765312038171566448619365553505598392011102254017193144170888521282669674085642674235645067045613791347768191226102240326133298340719558099424120037617776089255247432862846189490986594414722511894217676538566125352118603451844236020475564782213433605701700010397136119210473870797626235115336850096276585480439206162179168918498371509062482823961030814758332678433502629875660385637246794410712025000313342581433174006665088294884919862128781138316775383477866155751016938086353805357132207403580061029833965863063281238815557730096315217743082392956173592848505061864862569821719728855643154151947241130284797497168359318565855982013151851599870594617128923235256515060358891883564597662987008176003532266378792166665202932592882187984792855505748521004959892371907956332307633825020638566108896260886606641789768972730931702653325318561098197837173246744162059026092350097504019972454027990219346050093996942670643926728939210860963672175045904637351209682891741354278409109985631197153079612857708985398632780283407228212845882451133677177603419320450601363646735117105431480210288536319706003404819162805366500186717820875616450840584831010668918431878710253766147801967818320233766108231897841403835641990693161018947317091145238195404151138828251617292123449156070782668148123848238130041055902168373070122082964814369551304311466791630133430054737147099408122924091901675088745949881186203794373098003651147687714735162032272060769563468922455959965374265318196702717796408062975578972773123453567323649680295893985919390303431036726350121917267372549680855825955070800342913266042532729607968067204872471689985360516014298918852339336160855092765120374555101698565890844532907970915092210530678395284904198209712614414757063651474815713898088602162020722021427705248324730940982136564770293699292168082447540846158281023415548531021811193434535915957566764609370721600738494707337666564738598965698479255589275137211438848443118351575771511895504957352342605758914347579477604259931443949360538740902899864104643411550462853736466230708122395863311343087238437384163330996698613592906461200402801685868246729787650023556706210191231722422117640662650216162672779718026022250550044911219591377886245247827978484962599803939423500037857434448119483089166809278521767834283282472697386295875096464351063977113255475164158921275627921169654613167164074929341704619016935809164219006374259545534933352104030229745037711137309665946486537114143502158433705611143595221234744677201761502884807080153154749951811858663120394578900140103363756511505040303510805816413849853867231958463936079744275656395222564203232022768613896353113652273595322289732770070049674426291848807523485632161062522842592921254801171557817726428631885207947867644804209742203290822006297614862344225509653549620947966571671374722781873763234445171752333411628512815511672715337948107788910544913270074838668377932143073536750543585008121392015698306704880691679060606011991006841654588815846882505552222123011670441008532520772714185543428200743666212263743238837661543437505483928336289209896998811662924910867947999033927099804624099281537999076100856837628122077238720782781569748261749251540739956246248500601583162611066034094160425996536829362565602107768904943547440877634786936507015133945417362070943186846369195750476366948800016687859013196187905162426286589931882832534163076797657969997821452492668678771024555630026274221320033216814651972865329834034608913203874372695672679536858153439417040740571203349308335584412147641275819253752026680781378476561791408474305184149739921313143744000288467652427628200155937385690399872637464656943724112281064040051760875240339480463422488501275938773861458099826586283191816663962943638700275684120310174960982027159363467745181424758185437502633610033330710096148453011288436427998043590564549628975277564516602379933827133869488967219681532621553808711994858825320418612501951047852281255451307122172710670794309308138523061320052834587635238135504232352732619055220664555216979750305700792036555091026594904902198341086735342687123563760812761200679852693721848643196059290695835330739120964949807926213155518011612402695954063728052514661294078397041662150512523800457933052592175851742970641031222991799026367769618555166176500421451947435068086406105873303986794873355042449265970060429845748540036330311166126288085989744182944762141021846690230545598729230176839914132827438497514054107868611957731177508119617937364639350042837664506808328233156934694478896303121134759005247472325266319377980327220742078314524557304435507172063852587088442801479893335483458133041573634504775517221604120128662649074648153578808617861798901887865638618833565049272029118247560511319571736859615313591434753039505029757493294490980753769758341732146819755499383204404204535875717097850420634601369676174458334171259311478691591231481335286714021419848053547558222713218886258747518468485618577027970234169556602881980981898109026733241131740303159807716249523869256007161041957557155695054391974490780492173558491350735530217399469331747497241940366711143910015955985184546040467959866708424857602080659452838764843635209986810571737939839232581183971240584299617425892879876612815379367022827615759672299473049215711722908413693698713037795305096688526267659583001414180382323026741062363732344868810951621713391992029435927682825320668010490548218273249471322785824242213980236503816132015160486312659588339222201589735795966004496004753299903542192620714789826225860668141531116438080751080768811300481345109150946143008329722937171658301760483296755099972855809385922879281165173014967348482579704183218436256096426564695241922390828474285653028753248674256621006391174339424011675495793351524532519298041380983527127432702645078104228007109113321191576762739456581379672283530882817370731903167012155706290617247380808715419722725318637395294663642520217155034321374773915382642003036643878695909270910460620880669554929415774202348672851454022695202214527435455547852364494105055981543680642293133258516736565640049525448882808592830111736531465949095775275210296068713495692998645015940244766691985471047385726861297496121790651470817043572572093528393364024696187483238331446611806089295743967324261867872380588519828690097914343017426740158290158418820685657438297405604234206208510501467127495327405635906209343372835307219112703506144376375978154348621370514324268505010692231643147373928967306419339689354787685439982317862490515313575325180699376512509377830754865700480804650682200776288918094412025482364307660420605126951955060105031660992464046316534483440377405776224492111120338749947316121200819747330188645493789992441139847666037208478216613744718804819572651943536291831358644698319903690993872262756984685979613022962491169229676602170088392163485020832768758349243310310897780760259217778477299247956331909217999086204557664507750403091747170021282622824119805813309617398251759057248912545291573335278373054664116961335718562146569358879535632703001064041108098814697379256809375789743708189602252779347732885812359647922264582670205716331298899125525662982342620603710596099674145662333467110378839101193721029363455396587708553622314495428057240503341292140578568603599039481063496066521568504089597867769101520116746801976656334451428779345028137998169589032793247862247586801700268627194474988257027746431999161496690743938287328955085620411921280282818422303039419487701469901674935681268572355870968381317468369269227243955861867282344976776187555658145210636153137048241237228820206329978697404530306357017969400494791219549141219678822155621089461179699339606627701689849936987896947103829524138732926693596650666984606707606408352813472991011223722522867057224694730219375960139336178630554046328641343482801852767404048520837738126639614141095104651796679886960519202118394390393829079579503636550502436526708978310183490766592668198487302828241238365186836240477308018914209118694541142724685012743737221295182297064497738822597033797170948721837140636849346202368802124722016897102920706226109556646873199255495868599433641161155307805139111917664912408904513018444745744367902788648989266855107191387787303694629646485511151234263072615062763095288252507997337718187192630024860713024536366190283246173399004199179419464312890526518020082460153950961170698643075157457133510554425150356358283424983145570790841161154268787073830086217692481121860234574652409427154043164421133601356081961391370020791090464516642064642916386243017438773110662060943601287233076892711018156423778852758854994001896326058913687381366523515414671451194680866027474602591517908319658378616527513057371430908639988803005289812505361833254590221046557155077277909534263185292447018947100212625095604823163560904849308494040985383982494513180028212450221588835155236526419445862536641821634235654766547206962117842525760385075797786827476478576804491169663499406720857530439251057991974517087139463126680457421656092067900150169020960809948857132504497587937163199694828755422572993132506764352495084570775967744483264164204024018986347483820353499719231627207953598836635988822251264098833910114609308087621533428136082108452442429410698837191697464681345654336674080573914404703001514909984269322384570684544727080935504244617394659327888445433797480172535055296967926724036302424700370748406430591355704711060421410300036564276553332505932531488795236266869621365861890204234716844991958053292011620321418957977565225629222646905457578234983070957955687973550233359535596273537992454174331531758908706897938442185421417019478022768716462376425682725626881825324106958786497650356403873028763276989601335272038367774576245601096956202043207980697546979795470757034541200274512751439056103051401008517611121620155229900075835509703133090362538127673040410023780556071407775111368629608557582439749352135579878418618993377469324357547333049844031873859231790834784679876121592703251690662089404925918314937386607041338697094670906163270763769886513169072039526569893091064380438482628484416696311187856571973278646923089476881520190401929018890370449850954190275884507863027132798589341435645330941402496886936708345041508416100677119764101541426840153217426840123328979898123046261364081579789538259970011415149385732461834573073042291333513628978005342720317901548399151439811440396020133057205424432803927160145410618409103102113673953331648853925554843626413971860720697943408111765965771812849824280373672538917224436288109763350856268194438772814407123427687896806078929236610811871871217901529086706619151256437832853696753240791259739638436516353006615574671808771553037214662661951639927628792616988450554501390061156202018774743528691094615775675371181819190821736059985809047034863439742611082479921792185164278843804348709649697620717027103585805217141694680478363881943271036948583310048646745707692658436658325723547260806778800351850628965796028459538168226495268949377511386465703583954196871634879271641291995584054118441296659278477228177636546542735815549926431511735576526766394099530852108221838411443901341293272422975457221797084870912185670182313934092128327181091843472835925299610989869285754937153927286365651354949200369764012789547605366778261241822915713315974381521684229155375887514800608745059229975686671709950150415386612273150448676569347770748746901248926702613122365375932469503675521852459759324879343250379472177463981697221099496093381922092572635438998826209744757922855312465532401067581339043581707554125578393822307510137345088918879858209807819099237443148743202363429307894371478957553846419897903346654362520846710900804014198599419911335347939697873241235060285817221774625690376584731903994476631942064609282568478787618549227017398032971844326803378975452184487773064554791482621100512190556174409541434184864373971389931599880430324576329548868475016597276734602219900894959295064774339141118454538653211258351651031170321032442877332107978725466809659574490699302178501837901652618332900262263437448022288389438810205927719935116371846526412419862875509263312481057492640899648696169202943050142937931003153149264631953053771367357089339000186617238331059280341296955340676323981227663924226012463431476469553004974072344650720705167061393399281647802513301809030809720602680727807693035477388050470468068691826260663959722473546647392461724291742649600185280993227015314939199418469336019244280901336044044283290805180744097957625482722362378255494170837975468324229347966677231976527198904524028856867494158449438388931664020663372533157059912543224932028967587573492544963159216788069885655667104867827220626952462755051164131658150358756692616643420147643535350405467579074389256832755188018883753923176150842356392218312901800124803590146477549688967892692423499919403810649825834711833334116017697949116912136584493544399528261595128028952620100722777678353759192748131898559287211144311367274705939904008601806842047140923959951018383744135708584987744405563606277189152717345333146637581465915639069706117957108355074452017863202812787058161328664158924608001320064699224872178361750596383518620439151951600305292610755072353950583538387715277278099182058308318793806978535861538464082947858399643695914179624438535300393963095527689723058349836071637935693992493694771974629185436117134013161483762014618004590339738104388808867944866620118266986707136130429617089166077663314752187442279948273430725214992011806547383529852879424794471287629235570387491546390557637074867475939785644047744424062863522860581966863660730317754433728038704470534280944421570628654665860487190250590538266540463634066904388606337701971566318471564165172369650378386628179601734516159347206252159446909260705524575867979825448687057863905627123675135801320663497722131298449435075482901766333844600327853735048340309044454450855891464484469860006151164583202238567773720269680550332752023057030833695561544567669067936637177211529339869114478923849460227268813762243294699835782100273827631069347285804904147533459437848902170741818457724136347382154114864964952771621662359880302087187214069502431589182358266820230789073076344962456083648081965103443878755135703134630721036259260682915399609202049471227782007229054102270610012396218323042141474722084480246052105546036639977638163636928875821089476231149042059952073967400718722224112729073978786023270325895529866205442263459451507109711316119002089489949099150775695624747217898245231276210575263220738497795675038515828118696016093010119022463529207257364244911026082832773254491221637291752659066857247257810883389496069358508995102745031622975564114096349039461980342251430257938672742946847890862725139129789295078158604568657100917764442949511613564746941389763281135534231091420270630294824799439478955073215652008522634689080440894873955441207691153466229570404976918910062847136014123487347071194573820153600278164719601956179515958261507596301426886961348625563479216329548400561275508178351466495254707630887480758127649349193508695716335279552411481482341025887759461551915370133845469837445910667376291008368192314118038146707960364706229485978614072530276055508340061128314870787011077772373413904415337208216760651997159215593634391267629671915961211403247823705187872350596116360943581129582981640540435786471000234133457802677692784640646828245910553660178270825751161001189098834806598129647018270357896747883769860139866893844228754242241565515755670488237495407641651998130374690695434487462643638168981702334162389869042069417079872640685896676635298653032812358568719675512964138007736584595874682586951683165388947502554952687633504205235059978258518475195003965708685277271890661847333548782725273259903075792570768739176316303659239849839381214879806526454458244734517133796124268815909818310388363540994340841972638102453549786463265272052942206599411360347182047324112593217859870570153653805400581021005377347665423179550123474748945656349492114882051878247875781987021665953028353969283377702853903854408492773431775891579154060233379683595344381351349211397591457615958588375821560546146080633687300105597707689161344312422819737265237878383483194716576506507272049710565281605772450348220751064915291813903453766643096202628731911728443815236115189163982089384028390788778316113190313926244935790565971061306334154440935222976930265966608204671323472976557934850251583671108629341066456517918667923225900162397494101347215274249338366434683805129616113362214417702279046878971162428011449678004052457449336567819043049402854354950432594169186759462399378767750866431649801990965224658422147903043828624234793199831794187186465917294041871750548640042881742887385201182832352676710057575863803482205262096775575314427198364737889323822138940610907272673088283547354536754052203600243959073140331646002369838417649501944564615193285709943941683098047482787945050803939381857607530336894961959728790923959237845009927574387109573577289636902797173636700464735722113932691368073187160818952883622884187484853679187830169443422335867042371116408503317327092655450559564056592903868857758075807380174699820127790018450400459926941008648431014999525740352688870650050981291892075694352430523990609857154662379127814723075847926627792917720743669576748123368818883068094949059845201500259171621612242575336591909908798410278623287604085782494685342802110636104678633586921945140154426188772101356725644551718080398573925558503897642164335586988215164491354284330893072277923879917389493891566053392764606648809297072031389885587950656669078560262844974294615470330224063256970318851112081701243959059270731686332045216725499037422840025033091324948030737580861308812311396705909362751340211280314378401432747831213831826253028482303703420958872394322598922700844910876691914801898859640618505953634217446257707537753079372788758579862915433122067307320097568626934313596859853560831999547953800974798981411380794209166570665072325172876306381859383107005992150611541529623023088409038603607010670649824196764615950054437559053690501205598295624869345539669316028926693232966684642279477301830311247313148817063291182388952374609409632810688201554439496931311688629845191336972948118892035906522580459122569132752832914996565993605950202767060801326953125822468863509588436115344863419347654714471406035372045434032074995133601341667977615477385870228167076133566937329112109108279722272144609127634686419391216674780226657825211604722611251022805511089758387571548127470132079329195270718618698625616561661851948359609714493330762755851369611959540144474895808787612484247319886698419238504378374216750440300245670166690215595267631574649450143287627650987394062150849806205985581287570938652774819669987856192680609073019580240258511066212171391548320190801691864887554783484765419463812609976206695304491748660127805097780940446932843274272442343051678609017200196589305132197951234850020314153014898223260964658049397760808520856770871924192331689615982251158121603547289218743400370535820376656323380058486443288579390292091604135322650230615049572157583911312146088102030829522315829434128413601777375316914658644237265543390603805516810887297662685193943182554587823977189206944700620891787731181944563449358412458215964406847346364702603033572816548417085109918139281312884821627639659313829796453904481321828035692872960924610296094824390608608226375363515592445800459002193488307517868133169529667552826456820877656169127469475848752627280216227713644416383766851353479338548768013070477005973645397645924230481119820588681662003643631578517266582912515075422917759019087132063278607745086107040542584910749353132219634966366315748799211322002437134429638971318447240864720988722295078880053391751363729148575459885418668957538177343617374462877157229444411326849833819178167875358404777931996141670883631021201749012651186420481526261979724726019400817709695209769818138775598663654765210937865442068343422802234909448507857987170338462105355743393364359596376499916781001128482630650871631104033185950228190554479895400010636019583306277120518981307040333914438393381146314876529838590002831533192911195113204199824474660228782413752909849913808137334582782110973944914202403701056029548916561850992278436447104643609603566050637909008441022068369718936872145158285719743651307126537233343630472140801484805212211555674578961084663505253537491709885677332480812921617510681003681283073997328814639828446463853115699578839459471274960512698632573940837337965334110793774558998857998054736523686842589493305392007200791566036159729855539955245110051275019902874750124260636097163403124546648326057958159893324521209099736851271986453291503594309687156481039581453695565521657644648321483283544083599004937620818490281705829680783275929570234785766572199155256395691653614914388782654808246051636861863797760257354062256722367206786916895177504380765993822593866499122299468167257378567835480822576926368119460344851570521820514807725203816899068654407037038682466163244885596644242085778060109193431497405707184097435128848317023534571039387116859770155206453288304680767181874046891939308187611077708152613921434450960443708358821145662593383924356520754225532123722675116342578544338273928042560261170593949654982901940548875033481662078196008097308748589834316752564761955735070122743237157327847319441877242715903506033176299145672344879640055503776405518438836373297715316821144199716926201820014445352045062960441241370376168006553502636041749126888147958573473941495990511093270355003418635737054585024718559462930218214654058338070022185494823499496774071215401951555511829715677617768742391979089293989176646635383406477054936031425407521683879447566465163457628769016022197854781888237376471079475398683642366375075859624989996044363336565527115678161983126825511343752988713606781969638614300320719173072204916181159900338003273736383438250960285107963532610909563217565649521463622786361250533994421683943238175272485725064721080418957294145571663218543502230814649988848118748529050296203646823746690862111744630170665527007042540127040494692753497343607293030038574932043348298752343371838297056199574791058048700810620461746994762699804860623522433162395099506795326412735715888481358790271326139808977934621201917982853408793963160451965754391451732397404326593051809196547705177000417533289090371200486072975358030124921331820605919258822515514304533549234077611998532616178670446977720119084301679727383133000402394933350926089565283802830743702999397016364918016837578289967420327366773725966851468447855011115570458046244020129420430544912401626986538207948925061735753712436222878905081848449295522556298114868206455124130123438062210614198816754103454828911637437953244179033677757935144964830368304157191125620762220911676661898387640350542977285467210391818156335641551102450772727706387820419486554023341549186544645142728692354387917521246563036409028834218676276511792581999070614765111200256978157400268443565867254229302778812247427421805157786881933316674885651737235790746422610530959497633706517422257343393852346201605364925914332265960225957937640206171829057058827218176178466841071376316413113091888715982599396572267005874047881574003874569786681422731727119794616425055073667222640276196310580477795995078705386866499557827928818438328410208327889314388334258319953975889707686793428371206816804135602306965987433986201852402569759767810104754241138018059909721053084726040302869552202008658279195779595376771543861809192308711820302387877196220455377223826129905603095497093781726173448363198429366468555943780384642848391180133452930112088805232813498221159579571998657809400692459870196016285081150097546218637477644182763443750406029862424365957388000039989430834921112598167879431907737767126523159046564337963516591442014981272221383967743648291584837597310856331688307573832256832344628559198005441414985070484696950088561815167869096031014219450139828293538492712271731752794845256808666848859903561210139066431107628242361483667997672630583533526772325102952578370005674092931795454365642616999784883557941467304954296375970998837350456310901308803858583265835743727602762936558979581063731989930393324385716566344081328327739228152687009824261953350977832711745250934809084943091582720298850264582339661142993482057424604959395774896204196455487665798070801575837380897828070147211435053709177856273455811849307051070283085180523749908968655659953622174725818692996517712599653102774160716744595779077575842724375121201342753263996309634643968740154504297711498664897796571537268174461977161314148098027338497540453982290647893251376381529088268850130115211803003954352775784244118725006848158776097428131980682710935889645813209621029883786158016920170069283857193735745064724320438987499428285668882580959530754536778780009815448881365657186119414382232538995228978627996271684166267024286991940468328210540185314722208207026495700693880832917458524389184915955691821211806782714660411386904223440860379424948837493198733487533094614218277162464178371819553403311950871285725708127166431799799510739531212506470425187747726365227319729861408445382092294082100950041290297550588945245571954634169426781335131610155223313385309128688169060054864769163849434824344476749022484323211894316219855552071355701196799692722474699024205871030219052915212118285877216674418147928079818264285117419706546301557914695721395143160599319414190834604085870626127566549603317408088810419192345767734898489015891243058159420684515696826588828358829761361301271875106578291921425901052852687930291104698847484420787017132177115683827904463083349775123831056918936457735436800008002530370125068401878252001982042983271867428188170998017913875859180067434658796119442816831264275586237014286389728997179593155991330439732248867041291689128241624219518540839859126950193807904761139687595316442332583654349820054419511418432323806786146288933504743101192940675140007742775239612235967848485129001953847370053376031826425269345696506826987095084256918345069736359880690954419541954309873293153087274471631818839009304074629216445596043396586546944735909352833134958865366685607208461823587414026509997360510135299882938043747164146729061735537876806242264303547026402695676885276155148781836059414015654956966590116982543869981521662996400299298319452631998095209488661605125797562648894659873165699789443333224320776064741159105477167619409313981380830727208546933602369856816832543377894905009232417994097392652491513632260953725416392316768550263866211531769377372377987665231083311986050542415987356952304659815603228384384159390568982509521682203494960085039007048708528889630481664639380895167643190262013213555708042091880070639082997910805691677757665101333920634055274712603347336318131636456645178416940694651504905319735374446514848418093337810600221297908669418831694508076065892222801609896437380369497531611197902513254168270564992908796370550667222110966532190078104125775762648399595173541968628912550996206071214621882294058634646046075357374596934409131400162981797620873367594521413144416681930008668468356788739163900752372816553740382410676130704808777874196017056449383439457365196346601692356160672313230255581681260262180813177658280577926901720697125497609213053518707525004851245606783348653300152976920782054765111559034189276001350380701416877336884689205405652629514530458986625672285836217828898107539807174916560262975731026121479723357796305424440896857376623379637577912764694338067193437408785580212691508193548731625569809923603833184591303135288989950350125639740595623164855294134849700761030176441483048494732129727827354352015332890962284963145826578371126899970749834461067621570637885736425370965483880162967959177305095123095601484880982396418888927730777702031920498664798971133927111574954939109169901363473472089909248488311757386013557854549300415713407050888726314886444870866551548714387164409279201569732753179553166244656039544088154642133869678462409178706416863842890721979724481631609687385879268925249560321411427923643841028423157507178067392315143677413500672100912586163960076336454012340063549675426061507926108105881513727173188311869301883343629418418473330329111897862417330316970560225670101112099732248790997048147727717577352966500058069983377628095350019775307451989366844078197784122694470643915706723850225525785855021453190011633477786579476729397489696207318748541211515212383662771798659238974228607906448847334855711762276292958540871078561502852804950759778778553221250447928412079403883585825583152507292816269201295007368036312144905583405866739011779396501154238790898417232894140019049854121924276694711455135191214773146953214298254785507098528213117800155155475942654457259385388768339867078069269355380377529092448203548669634890893647097790564441978537804382165291763279335898787149390246676838847488680666858403284604600199725950633587464367561490212925612228881109035190785493872982526381529876255869060851459192355390752655397776135923687904093072465112259501134418071992279663063153247754297971672079464907932599143382658014814431289682538843017053475525242808414461699210434098881971820979621998815388796911100472114201168959594808581943995439013814723739790846312150905405423759249224578132878100814034726863887304420732304601700935884165748925573583196915252660492315629723018608828052829743060545832425004169051312704263155794555941063486671025217951661544129835367844954968705451713554676143917589517205411405652140307235788843178207736738836141969399744356007599200438255353446507886668698322849449287751742455361772744074180719856277014997077274232521981698005730376480962956185879047015644668022020724259080188533903680065595841188790823121185074698835956785107243061482306168105776057186896300176312808073286241823367856613208561304828502875660682532396211272715464621547207711372364032977832994800601660545379162087969106853126420400439846133626690860974782318730745394235326106043711538219451581344256236453257967558553620707931668943135480187526826383630359777562613088174934614187195120382925011566833249753475775201479908643319270960743882834925178337257758340495661575001822507832334899817497876990708991676481855048271362328308431574844727170915380180388432874340799415687562437222973943258704166247582289522816405734143203821296086487478382640374001215092997030851909911516525402680919829918813743425843427223959502495733171775636180224566522330472075221317333099587721372710243590741202908249240937238377899957060063135749805294441823650715510963147617841078422031840610694215451522328975241498730424801840600325434095570094163602158884295832972359181899010645963039702559762265720841216168497541244745567494981853028071074630062412124822560158964376688117752198365511135843723191714017047982817282511074118549766229318262040433918098576705537009444206284843142466278107508202464248463191144787579267828116590326556942539036333955881025853692454784024625168709108001368313993237532976787406277387146704615845131223069353750672476522535757619087716657410332132693962299512447753952345794465163196360399584823992787106597664252717727084261521433639919426137884618343690733280974842744353908540103906622106584734161262017093645155431050430196846476774609661137060197748688093275188773567748328633792068232115013018715294816969406752829318231742863820421968518527224047654598127969697639811957094615015454338978357711962288129663462719055346223200103130953289634632187509919081791235851180468422258280855615516004667058392450840538485869809617013190742252558390983811808752443826190136977092265421013214836044497813793869430476074832287664191183907798244229896702709900796624510700665970248116803998531567560441885659745281648387718015735682549326428975425388839629162741836545460457614878084097471911103412570748923885733547329153585435225648833641244822160084545476952970299170128643045781890851632407879026952593811804035578502556640274198335940062184064038696703575873178367756595255569440233736148669069515526599100805905616727845165734169084850809220725415041993740297356318033623646332268759585761740703899994123820014346158764073575271934565275344835755127381516670796005586456746685922130342303974257295876990073391463080440593736764810794747146008945065275820908280346654714265367832577004015015066878055541902220948375589941235944189500508317581303961773086718255118980324288774754293154870214660850992005171783786999751694790783502593543515396671443496396062854803622917249171334757348142049169416665973326793385953669170186743172830096662189691049936525701781380694452056845950531570165406904667133118614413054964601223958441592796372252631491650645306883494464441390525410438122614907670593156852939717575400159417723124489994078255781101415179063063320652134204504149138288614139747011945577933813740677496669768972321255014357712775945336465922639484553852372600230154892460578788109143743086933064452141623177892839344731225833662143756125609262678644150486230763182343095741249749109576043385997599141700590942209693231090999502011874734393382795837782209470301238610073375067136670684872633240924063388829130401137956534491218620044254576818255205494865364588469815789207084209789617906982832699544730734757111302933870135155233926717993533418258355675287397400963918420169519795810273308825041535347223930896228998561549040195103112811857543447507649968830324632337452816307590271529975861974072278627570212884377260921090186478003151371733883266135324861501571362483384871399043886940127909322698581905040393980615717616067645794774373431925917252028436432562774466657586633713060272797626485951791430644364642834427188721990667635682965361277028354487842617251739965895133914699185878066025669927029674587508212431852759820846786296420778718226451998096049177869263844563768280840972711071915878442754968456916603491260892867402972438349428802639339267655238218398531082720755863371992453530453824370422803175530066360290698181787885819691271155465526443687942614470472231836811800266224292659771713265046709410988612274111018682287116838151091140744605124287535600886339667677379349566601692069906937608538561665349405632096901704075728891601057082465213005357047301253161417219921033328854190710397857736896751089121347007268558343153691448268077594657099358009475852539025935849658163606504078706864391441597377554698054325473284685120966595930153405888594207291135057990376392263242148614002936110036871425917232016939676099725554778403967454379836233600202870959242814511741577537802736176034836538611687802203631320947015679725977852372054725987929704411337224800680768887881015598900060185560420032688929583688818699539838915082501764780015918280533523473016828573108293685983637559155109053269067281914031419567903397592853056373344230878343770882899379432169546410775180513298850438698676133419320966562575752780541671556938346970084261851485616713762902553022030525621000824668306148513788033366044862517235538198559878595588139172021969479749084528444257261230678057216051436886385420145077295977288966904838068434980956189726390779987817373294229616874927763112198933745128735533236528392516779685025670560896490768811983088576065612365670567801916638608707738290780778963385314796849492900748134951973382026343188903219662845783689431337954785524105089582020565364564218716206695238490235938880373902712137075396935985666947073499330096820712500524078311292358537143718384571340578491146975363696025344237528505609309097068599380358292560035575886228787675580640567418650274054727147858246896925831459965617808518137343653045719667410015477118659197872610581747216162322832854875825056208043552941939860398183809035750970687592271864182708033903512673695868926771709505821388516792939383697356535317365779339603449581714772082777817169459709265579216115877018901873587749162561187769717224437905249375578797445639123435060188411473648896990399547116863331264868942960669550852971038113307886620031798462101371490054616187235516896944801124577661568678765915199507454185420154074982516283055139166341154116794757563106499781898230273465221512728927806623240244993215669068497202909918021126700133269274179096257987630979864389669573068812138888662032047608246375512946500507597729224790438813491355362854565252306282309954615976396127880192967239589246722442619295936021884103731443381231882295825859655956713303172827313362042287786622298610645976780695714733346046297214912286113701635087777701508482737183714256321848564901902990302117494135473438264509955938621521148496795993501681540139550170999222704850541310283622845811436699691249705630341981029077101854473924578198227556134940242774859082417883402038294054102117487681497669942365319395085780546277679228772560463717808110273839651998417948029987231135536130913138126116721923937337578042923943206698533159403207374948680888580043067524253714784168248937829636848178034272495058731377956201333404392981521724333782101944064863081426642638902420592320426546025579832783961676280364230336066322417167959448909960333730215482669131884572120166154467039805436366751758592355763831495056735338606155455878207126079314483933595174313423569874180170715471508032508389005147499040957753044329844441272728895382871787724998748494629119306061304777627932927684959649419416455809035818281138146578999982509840270510924243135364446645986399639593044586088545664652123771214866028839358221599572606545356606478076700521478626846077837438671020475285495677145327877349878656864597502434215307728613120873456151165509980124221382786291324046405571425377465365086850444813139425674739114995041832890665079920810463644093334358896468432770233183829391124718986767034061777423878111703434035612241723084902085775809794115114534725453304715030242566352841394594030206332373008023422387565998497062322561434232167965041120921199318692589001444500874232043739856157475833577047352517541347244254905948461558204986934475605329443609105896791574796677050414838112951040293012330503602508622287712620450865613120984778667419842672194360224675226456457599211303688624274886626222702748444604542965215604404519438357164586728911662211920985105267026457669714896016037288712254891351657116901518180449218592239892697988523204733600187183551624574652885545613660938677374220939992967493174795677971003969273760735762746905271090558632972889065466872768831893204833230202237982456795627044870849369006178693550363594777376107230728750644151025956222216196319515940632873420979430213945286470721320810815496848551725258804391826290395313280220393824348754104107260947282949387946979313047469589999460351362800550861280006059457252936895915527256294427853219127513990628990398112602894228849801260521251025112184801746478619762738106721865157421703209874458625774827234094710556897116762862844734683190453521338419364534491741016831501574308674357720718332014061073093591585543277233512872984086622829914939336104876712272024258838200925607903687230305698578646861582746682556795697369883040306985255742517456548939689945878026175764238958761888126798367819135603809095943329477422993235648281809308787270234596406579827449469642146077503917451026359671460425005070006247524103089027202175407363696192557628654894069850924662514319605644133632755995316022183927263647659870884058655834503660075583476726469270336145183145109215708547194186538321628586623306628222940090907442212659735483772605846661409825627106609804769614664846399979334519132775885026205013018501563550404648846091340964878652096542604489104688858850879328702936145332556778883354546634153209418391606213398347365950784851830138227043158786044134249355999716347521050924206043777735201203135281094995237753058631525576004508165807311767065851791216701794900529159197543174173368063429184419607885293486269432318706218718709663361610898322043447466084356940122188565688853395854190356012043162896266802588904789450742246258651283142482044207099640910840676436394125153874464154093245240508705612772036686412325703117152729878367053952148343928515877540881529169869769505643074998459416904946020325629717578222836811909006802919849198312052109628832359493328861601013442996365874208945985449083189949618166123347171308147632699746980710668551309617799325387319895863457442352540230825910795783249242348130437921433834101440478814468425861486661629045943342559310452531761324982735375651134539131873016769327160790103289097379380103907670535386064474184387589647164341984417438324187053497215094216693474933128635715211121818637178147177093653976704464871430317281309983408162650355574334749083703007944598254155697987063030479933644196647891768284645905504478170545443422449149517842096345963462832024140311715994892285777257036460784830211092117329032977475805019832482371793758474233186737580716364554162571271244110762445435258924225902593773001127131712889114215392263997402352410882111026997627507104676377786333462762023342558957174051078871453413067422755532856423143733940454008281268975870736813501149465778596127331366424952604667193896054503320137153464940133073108618599444742840584039683395416216304034954957585790486603285308079373598850710363141666283093747910499115920680004512171782163704158366764461171327617122609757849807720241766356919227931662217878794380483194266624037540890933370623217684070210739532344521180563788755510474092919345799984216463747048679873508499226855292480863376488256771970959219242106876429946316268114170949546551481920006174736494187723567471947683676303482307772408337237893278469963784205706632275507404466029785379944116593428495576492010789740450957215115820745343481110307478534954676533817357734645914599457297105693354137888101857466498756456077889267128334893620964624845156453886213313346861351512624564764920323056934917433033819161368455334828493561481845290766688896601827419140358017314074539016302075114474986360907635052963655532283921656419103058435281413064836860163859675760117833566700650922987763210165346399115329310178045088742494634507214538632903748252968825859096630529451221863927802515956894845000403149590612656769749385809316459087231535045380655037336703777346045928931472401838572742678959238746808579142537786185080362194244558825495927945416244166879469985208044065010680106016373268612359776227590046638365769609161427199011161970814830522857471825411307489545930959693951298552058525036554801122429551002070125081985667195994571683675022752802511061508538454494169262604678337650075354830025217652567320224813736004656569205847352382418988958121030254885354754415465889883795260018034212483518076660551010789568808206182931215351401049890699322498160486439422718838858098042685964788613837910876578937991869665974939809093630636777225855400927693564639096111559667126864539093394175475616814680721609145046409648562799914530373287789317924122059816944926995228545237369884292168148410670714962950785689562536226629446043541878308776136865986086492486822264293551130082318854952119556945331285132944351442978276164786581187350070557736608263761887787862170470355906805729553258558022704173402646310690849992540881057410383650066981145438243818695901383880368604958962428822763072274863094902685472560667344896928232680145002819520621822350530353165392509320175676586078970393509830447944492548807107393546134888343543424460539522540940109039691224063960771624638217965536045311482484436520114787000201503777747000060690934479446073462804478669928706696439480443466754645065886510445950938849889699425073021394009813532743605601937465363692560461620801559365879863001616595676764520802922694395134873179368870189900262521043553089384661069672057234002275651821949473021695947702075461246365401694323893589181242834821729576319543644685956601163971780461358244572863131701645460741486743842296616588254182882604992519468734055404539182228260037066146304947158140046884570831018860223005059157218305011031259265133734088640703667464287638908267553412742481169848317390909808415360493659167854420332525581621290895280617536217716595146342680774818907378021698636421418390659287291219869963449075712681438076130939797966862216021327826284401439058055623778418152204676233729082823569273381210094168105691728842043859403169256832638725675460900462816532273691355357255150025163026976186740646513123212495087467440591404098062652707434413996352259531677939210786223506595344831636984723140765021913266242366084437412236144750777249026199863967460870393401642169945889856361053620836293866063171533546914435063998940049231159463951906904216218367922762716268424819790507618019997274904884511124959617076241079609240055180570887194530606481993380824329090849404251354959612357781081890579932839531636931682709063103712044656600119071722121672404625826889637778417833496391051184390320098583340766292138209218069977802990937832160379166635102043718245979377316226688485904864194500634330999578172158649407895232975700671790080791563302729319694531010613035507754131093535272037909502796710226839888776178550804053681072622526657331667354284334418525475998964641176031741339941428852462824808251542685051636113375118846877068426922642746578209372579281988693501212731651918385236678494248412214433930111410176918170420833613642461041326870339381716437479561074312432325640079754013325474876878059489893517985099598341533704939990711229497658393453556990907965244337698684669357850691204906917214769147913296617747015265680255713769056241368540037770452423578732731541123282109875509196704575166705071940393945676705377388410825841967152854789695186885127916135354864071829680296401440527139922126987968285257310309538132483474636103302376054808525055090310983342035082414194328619968630902196467469218407530032102587046661541372333210055664510147727221246075764744322390947055015342090627763011544537529148545189032426314430548011869517222010901115244188892801118373009593196895148738192647458434394643765541553296414732654792137519542092876776501540562771096261624199004275998462215446533225291253155979759352566801182033857291809713748904957155842605822021284859501279575421675581165275954859799479587808760764218372981610017056490992563462883847316500868496058766229895656424996227453079189987301309744817805267894303464210174614036735948881433998373812225892337522953162093930073671466616778906886231828838978654188480664130331765932938020203870453346170902380360315197484380167470287864756955165160537942778252162016136820662715025853308970716551746932539180790449447655820766023443580158530998473590975360616764889959133867042079040845502083558014440255541597701075607900152581453259880953351296347232986149780481953143235589729273221383056284542752546427869701880083427546857837277322469996095995245682121667790152026121420135044523615341905449982429113563915973232698869630523681850929369839947813883781013646283275399283601944344800580462805603414847721683048322814428301235098155974125712303653002957772831590485444954693950799472270811160981324555174537367408547853989839862516720610949299305778827241715040084251138847069020258160595150470140231876272379864559211301223198594824532877617082884795199911553783090195453795230716723976924479211339538804979202919329392260723821223979626298142609289333818521792095259059673849918063385111714343551432820875095833715117001576537451842526998733442726600972115044083998939704039230364343646668724261203685009998974298570657416072185847689557005822994742339024856727678092443955408749572294470634292399936453974803841014708086498141752838989751031804257332204716541975714032343458161917960823107305155709981464125372056469604053847082965488761717537879173505002634011752524809078676772887167494180330099270759242056625501998540386569489726530292994983242581583561766509523228963014264562881524992279002732520520195082812769140121236276146824607277959383559912579689136140381942606880491825954974109180299260406398783060137058566249004604556025016965162042964734071545344082894612326568955556509618297540819209811779160940208465520209413692982067718257462032758117616296473902007908043980623783201778363691085836567938484269571925594116384366385659399213979738805880338173205089287349205665158928061734948655642500138741617345784933253395361908225119148948640387989518159285000423623114897420347607566724357493169896017498607354046552211784468825348008076874774516832273271577048398792810569633016221825580323856208683446625032674118893539900790439954448614596317064061393252270943367139991128391771583315382989276274134306153968887404618134131336498518398936671366175243394643262733412978410165785538448509845717293800276541787330172218476939562535967546406399532454100259829931997156283600738422229586360674273146488046936883178027670327570718189122438819137961284794544536539900015538254354327713523736763331840300968430070498261402843805339589729170111228075830779867319645950420115656134557957770077801891789244399146545443682879163503052728229048678821285579075052908271028185754780842260142966315592734661745290514978547079382951299532041303251666227841500824624299104874662366175586413437351441308244967933055544534699254656394995308685252167758534673594516528302785371388326935571616860039745034333913100819671125481474659785168459918408880193632279663450275714840572994079201344014608548236605436161836039080685706511976447068367145621432926389351413979609224627312569110463608183744758248620739264800848219183322873145383790615329225899066365010768065493564758271175102214481282129444984721920047083671827904043279254507327116034891019577559257235743439226716931752530847296449957818701064562021063047651028792671119694971292517861854493104438914359496847753672233589466633031472639153419028634183825416325005491467793551029655289186736864371944382469572768841121993412644431905988515342517672496035837719332563988941577756032590468583838706543534525743282793639612289366441887130457452713718504118835257020911822884889784930833798232789544912457874471733855357710342450085654014416885813565711790939672286647329093220632812099599594772296161486883285095119747045530085016247901930391714412210530741402650784017134901949987345544532068785846529212316036182067038605584530560548350335897025956530002109813029956670803837929059851339111945511707364658559814782105843381631643873839452552811493407111004585451201564772842638636648132181206681595906773452695986290477611061988753456049518428279438032904099656373044624939094198750770468878736094540868274901755141251789980759924533442916277803061590751731692313050243647039479533078280194318122045181780545509420724474476165856419556888594496763175135740747794778555052633079080727731542905185699549334241893870447458416043005656795926486243771588252561243290390765446975730936193856945994863764674830067643647124418384731721068620238427653620869095071438383639815389330770087787734227014879815665700717911031254800648518313981894877046808338231255328352787556785984159665227241704126087745108125384137727356628642641742715292368032099283196801637450644764275255876146304130331263041984359867384435324458083497115081477501691903885937310055937241937997329820113254244196681460386603627624573941426346349281357622142476281754086105957334601116629601189534995453531309370068810958451625817209916099645749703010377074516642681801571530506194273456709567146210120582420506616785001593942565861127178065352749244038532284454165101195478765689173816454138417740581573665834279686809263060451853562716297457262372261607318912074782003851226054191547094277966972376475476374530484608291056879730280391199174559865474670373582650383121628269347433380426065273429051209586523166920120526703657532748845121970750025209808016580574620669927164721043989201182253413972282989329062563722665280074347210754357347143954433737440688776091452268210262942177895628616004376185639537306380515335867816354946349179675321505380497814314658188061921256040920510327638804600881497889409714149176009027362651137406835859322021650915478170952377621078364410603221350759896160474467751086958801697472505745764872748776817397826111263230262858396059634757609578678906237166760920425392095379204179829411827092520221481154417128404169816231838975157018912638174702331617632522980351147104985492661339304386063134467137275855023768251603156423347046990718924688145464276728119488139222037388674144526625289771459803831244415383640580088544957691927013490174921081390883133350181510303509265145213008502022324778417786051165875818570370999348515896621195408955017605264460039413827772877917050906973383301701914972091622844217229280696309403945487429823947798008595279901662934979476283338433769613959698554100284901507274939830220425861795357988770971087711427699526008497596706168752631205505886566597352592636833068299639250235998281906870820600891875868342612378394585603217182992159199067260008710922458992532398161799989326897705817642020187175055994420857290341513141949349992784490223253407733239605880950972999556399556042678089510925281138707305302115139833415050117518976055188330097401805649189626694601608033760851536688250802954502389381117780375824679823888072336964074049099548070943129642380472036320836735150501216501206291563664033123453481147577570248306842023426596931081878133277069964149570343851504609835497565376752869114994086324808540854931979094893221217612825657056573152674830769699106773739796249297551514022959184076134482831438680668817262480546299508183817884748875967817377703827893896292229454993829648025468819553449848008113187058014040499086816093158596966683173223858303856988078220102421005236277181340916104865769352106995826686259931561786978935258127428788112112627235446036286213309630901539203295792412249925633562680714441689216215622476571873052206859312427126960181852492910824000636100395466947641032613111728901289260537504976746399613802831248140399996585247823848719916040718135116820834911599617270138725781043566346289503211574036938066835040287217346714251588283444492519660443781251878048718171474931193843959716272690061139421325420472901871096323051383732698842211026993389142406479010510536806952834981434111817569827877787025994573400739417475533886106491788940860763351598287303836907535824623526733711789673276286917400765708012601072970061338782665394995570955395604665491609937300583976538287651228303286495320940942243241013157476021081038781379231772733879325940540103710273479949016860469825167871611416650616441295694074447294005486956072327525246537629752162304874588190810751892292631506461775360499442312048150962221515167713238234226732967785498282302709558667502948748374439475519149871489582184239785515406876830647221749190914967261351498297067762958329371514828642909230455844228974376385282109917371823500530213583429452419377652741581312412690403274831956656960068463644337861727461694573792117930347595352964072041164614202660012490341330867803355779594489558357331175591247010869134890830607118817136061550372323586967734208867081165378242333026782657463980377242037444379313636997469238150009998428088373769275680436366456064813308842643092580142699551838559689889464658264260826276244234756812374767605545513231294200465045714753403921367593115220014058204635846255014917333656678971152098733137461970838063935145944494571289814111574354263478709795893344340488664359429464093807778892296947879239306688932923513694171163203108615339484281374549966924983342736411978504653648661185107881406313199513790899140638382571776896545599093681741660591178001109193274743498104771307974081407292067581474842777610425432415646799412722624196576941633897270320718397665430912245495695682963729524708291676776439000235331350357248101503130376180733460679057190128766360511339351455069134161368017927182510069608915541017819200734672952334704770291072508191580276386229198885828092045552467149276735734912948123973340176722787014830149861375300916334064686511146304374954047739546714749177528026670792464180043803076017638535587363042029986825816175414018148762566656176487308619011780954847176816521861549426777522129312533950210055968467454763050143110687292378747147164475976664090655227590964353139989682015688859093978046603288149138913268918070993372918023435481522918933174030629408357336828285394429050105771978762993659089578483513175417833994064317886598818302264227433651360584030811474042070541924222280833604695053074135785644201605135848308137284579593274463500542742544918913216916069149282912583429641748230131779023276297147561888141950204155083567828068474379588523725778716256182045633842348970725053189164018910270204162969067216614602911239294324305827300380016728898341291170801894836324690930695021683904588413547672746527072579318025106820588403993899733633280233529127238756468248660969820247108361080317055212148535213085612881568688069199427643425897527235108125729527184644576437024666307383296422795035359248012061935630032988771150208020857304105485388888185716673396483335265390974897711785619685750813657430960742761526140254169481731777442862236226495104183334893776773893486403974886028178999498049563101451940567420668854395855390078148236303577662153179425565341105856142134828922693675233747447661795646228198912688353683815978438876633448648210354806660053012381009088701356705881427524493985937686772791443311427599776633867029952642200149809311597198610524288823040612846050313697051896290268602190569531255219764493299040339592160221379607028325656193660655917847757764835958120282937497310149819857326439860096910365358105330563981830605580758905289330635066456614525987822549720774364605547425186089081767399473024870186440549049745137687672873947252419249446859349814250134300116467102403461498040154377416130593570540864504889851065330518772306928168140318466869569631332994105650533818725002637476778205482046568061716454146679240446614869649877010929240580277736288228472647072642132126392656080584916777523492999623296197224437296277680447719775100633100327175201046091921376390622909715663210898555915259103790933297622222873150192859893004911663493484744447607439286150236287332237296433432763863946501469978834806628608934841823010448983579934110228409168531519507589359472808716538009216111862557334491535148248494672023048581949297675471732725174071955889553720307158935090970987495683400166298892299813666883451784756182002501173803918916053018038556714438258051375508463049318616883311422474902411543848170452159350259631948931414320235117028389352621601992061387159432130967506085183728967004264845820862968929128120496504737099168788440940574286400462983250543750212768558034252215893215233948728231886045191393828558076612104909810864737911497011479762050415739856252901236276542537172566414957242109262099919231645628804855456874277686977390829381966719446657368136070901328934952838485425778043652325184109286718845049123633495171975529561790708309826643674055951126790160538745169546628182479703341603853651398077301087163629678608471719585456714441869523765828533250316979819391791876890163742288221798344203207252226162665829046011857471995263085390774114233735234206864392074001316508644242612561226537677177363504246023944940161424730762613637443852735195810413149153078161324128469016056419706175138817659715138875493116513730192654392126694572669739741023785091157546809402728878991916084133445460937592632277593194512799780043704758123636632000557394171168243281354842026813190769662347903780144668067155188612606468694807434919558599772250916117832642542494516207342485684370150980220803753822960565900722885514134411596877559026429476049543027533970736758718414780263001709347941378541559078437856437066389641051529688066475778353093469726782053579551123292208089592914173532622014972562087730139909989092901673079531228635942025233035357156440234198329662336761462279923462091303573861719508027537396108861016898796402998656934765235190831084431850131842121927555023460792179968489406166039197272701088447621577152746057949568402529824474898918447152652367957783454568770872428378626975843255339640257978634268355914151078801626974360584171449745284128384695471819193872706004008341504758084908039530576490326695245032539540650816959015043094129009450657484943230578665803154539764843291230309725650386846156870573486463396840604748961268537371052695823490033035038695934286912946581741110367828460265911717395883101285065201846254431024437265380446095186846761257898226666092713264203947880862995011718118265332747440064359090015025949402651150263891320658529296730163366480343904969618645494157868099547804551994375980994976728694038223917938371981822768283664396967865803983930725618029485289934979159739653997911187486716408316519681721029728992161764127879673117176369845061691715805799129548686321202692466753320954896837982585195119088849043079557559774714703086225694413243586607139554188045522976294635559850117651097044499522667040368490194681884384427719574631655517467423812833934173683408470219484431614743584986901800658874059081708219622510841163767061639663955589679938134765923377847347552811608333255011146644581368960201751409944609935656165079435977548516992946541961990096122466072248144673445724450274316995508818273790878178344078238436009924923181266282350852340362919288506856896575791587129413861225450396146977504165795472883751121388883756702989623837137232850091196485570408275412934594544988359790086275224285618807666289867603674279452285429746796370059843454899836731193418987855806950384463319410725595795793044506784013658065252802498954087915518361305409964303841109191403340666145705562308052000418266889200327350012894390711900446735513703767818722643022758865859738793832214162910265712652998827114106671827191320505521075441164863415802286648776452213876773774161714707658400496899567930245896289012436366579949896123326576498840447582342893142544643304635091700425047559669041797393748026336014078760339257212292081447764682428218615973776157469426361951924945390939106940655835410589150429002120955553888722120251077904582721769154334254107842106181860432405034456797550208768971606053392421415103297243064820804547567397283507918875883374397824425157288903805303042785829235933059963822438326992876846916540395183594718932810614537701760969563105205315832604464371542948082298060598438145429773534378826477784063857980472622982622243193911869830101911093779831572161664105165303255374008894261642287743671700164658583704345377822205862127118317426871393473940431790786662998270448247044136914706200739727785518417044096316366863516181502936101900622428389794428183520320062224136368953400127297142826055421497645455126088927861194167429033216799178294105759847991671214734167998780377297254515988291386351058663873178616917020242403331281766700162898944046138502820732006445926655316748122179133483344334036104491931055528099039141713147624752340029657570114167894722841214180766847936427593262771882411549710516259339363887466952195264179471691210312073896961738356599850830084487088495980458969966632903424961516784692920002056977691819559073319219608114988338692244072641342504634331811676273385701887811420777064314502584722235157119087233637200703020807971210782193011076671494997116144239442621732286310761822170005211880231871260653301078984031764681615911700383064230925558645327403103772042042887818459007475710626921064104385642766047993315954724355229755484327637224020066886812779458238285773309947012094576821019416611195974431999546150339412367435489663026281101450172444687372740700734748677537738882985145223992376021320057259709458600892146248249739726621296787290878712230518811433495518275091251364760681958576309903431448764839522557367659730590651441304513117227767533637962885001322293443470154199692487413411599605635868913778896646518814082354501711312257201508839588196160660560074310623452188402471698486651168618960549399025703102247511254391863491235477525046741553811678077894198251416455946030712916139685229375134348509646897367508611087250634430493695510529912985096576315290696442355063369979374375558014583267351505074459215535753438420099030604464504408846949340547078767878113719191392575605881834984058477150750380273390077946563608182213095041779225911948022998339397331266066525851305924896770872218678954749385906283725859726458584969847145255127385069446640819683710540765144827026048018926705827912917061426551063249955720791466331566543726310039050198266132596839193850998999307586018614550726851571943957402355214048695116372019921658553971473323861358678571917045716339292562584349051844467324687015918539298118055210293039292363084643055143754403578884574087817000870421298778527066029684477279565887040237259781822417241592025616767172356064184358018075538391879435779959706818254519934387271977675229834854331685731890326357285079123753215167868370457772877401452010440490528339852638985649831975195131070450866206830626961454066470509103604255185220336907176118233214471430189423986500771944201066526510875004357912075187343380200006682072396769569069089939887614221638390585016476269595229264194676162247455283136056074510150728591725101636464109421022763924272838660058629980155166700085970291384624195239179023394681728053313095333715569879643087338596138461748380465255635283430652630244898438277437868380889473545367379505934545953109227746988136688233144497727133196825099766438537344961480618483915470458238530651754331116257777404878822613388027096059582186063444440088049872665020243092678201584081243799293063662189987001577449282116621541752582561723410682508277790461087627593480025007805992451464626246079237571174100409917553970153863715333984805583405946085172454505200742827785640948311110508833600963741119898527638915877956874507910971496422651466264376768007231118253058976880866057350357572538955305480079894225305328395752149686031080436936384057967152396113824557364473453008277998330740283908426757611974919677712899438147023816353392665713451367066054618659646667281512688997375411000845218728500659540213058377161393810090755024051450144062934192466331856896852466786777392510068789632804551557091936102275137329063720939857823618861322201345296511230923190761170199390832584140559272672073159518193727770898992174445680812804153950007245796381891575694928577159944210645041367025707845499242306448321294996591797749868924043079594520672494197502177946884711068504051750584360491339749010615703062825816263315609389055571704799378150742025399042032830178418755861165593835625891394958613354275174900561030491475244638596948341950474187971880725836578816800861577519994022477846321745933615856601266520529685658936803497625118953663094431286595245177516287801964482935566884368540378115312068360871322625267678250806005339552506238579297611583910021618151817359816275804111531384815014027804689873759246967738854508106051274680354868452310694595267521142804821517636168469474130281486963050311425514104165172188125373214079334617429399708218972429626117974936543251336185231251427956934047055817466563917125501355380387856937501076202695642673443316913990506301835368507918984456824647394152246170464620135175788364922727400810021398299570729362952961690189656361260597995612218071364442829500215100341117265369890119552488961183891733115758462555433543766427216191313048440227062620479166866384835993737278526110647285605609130367385153054962108576094804682772158715682945823559005448658601792902687967632281943020111944895504165364295046756373321031992591957068500032480711463660742264080822748401149411081606218245825503471906567408773006798825941909557867103304481651692713085943361702108603777744162036154846761715717595603304330335843665462960365472682899920712916417609527378763132272027711544206858565816642718524018579075819683988008861795216586484758244798017462801738095726660609670586234831006575787351660537595763974959648568951644128159446364667319594070366503708153143113652643834992761731953375850538872706096941433974457698486479462329707829857770490022137810591553378417185015977761330652525552387905913169288623998981343573057443095201352380419277332514734233742791983078479620087485426823330691068140958144558558096691397556942234492443642464474965985945781373627372667734099242690469999366372962658178816585680125372430948145260346235594069726582958200691587064197819430466240251905150135026567547894184776778593253037969642117574803666250868096577487444443875389449459756409709645567860990125985271421530457741023026330729322525584012904023573832817289457895114373433270857896683865020331217047564376261932322507726999562243166435185250416207824649584017833757867770868844516578323477167470787187474540290538731866102211037373045654151634183660527172384828307309242873707977652679209848186736584696496675165823788931258690922689465793553733900665184008811344908274690285922063224158784889901084738832993642485556641732682552736936192604000606987714347136152750733091634514724595758516851407357309899962739908391048580640624679846076957642480550931364152750429855153003033175330656621125774853479172645503528511740962502531282572862660124425731512171885451817585091103712795869585522970660580862169346746799892907894020165542107238437225888525720205838275346417436749621909421775999838313088614623997607225587877074393791086012344760885708437377751983748728569320582560647895893853512650235039033911750450083109564053708456915575925521486614811210667548746089657501663731764835067131622061340798482084573446037036774883382624575749703578639402384671947195556250313409330734372095230287899127795970981989465703575811338860170539699808804052622744126512466856460846330138700142280237471687003087827587155935027342358162491188792020902856395945448326958737205136260515489155158820850920401033742336851372625242253049189434607782713056240398601056954109617887034127948453711992480828309979360240863040323289545942990050742896175475885595478747524882173812831520544831650511681052077707570297362240637014855704324159894583786697212749204393865267808818169512865998629078471890450645365870777877696195295434000910639896061504080083501701653310026533710145511331055031167209643911668414159194086445425547340170929765528371700111528021804276946217263959892187254229370325095433478349647640014239322138440297563033207015939594653668292345552856367955847954409906954921969255514825277833231644179123986802162837409692329138691073434119018300344250145289329015243202703196670193435635254679704734719867309914424994533505357186965929835373473994448656054036484237133906294903517452802455213710188694903754476253456116037617202797084292749284492091164909736125646553863746513961596594616112314321275249142870379290455220782066149598902794458611887068800969109038440893142241759073255497968555510935919620532800673431858506773859166790396058209612211867090335707064663279246337686301355312666272483704894405014680029581849723188572160538368756554371461841579742852492317129996906747264514336884836369795755372916385596090051936382252330101810305400687455193082198123290508497227670395867064886025733642388810555672503799818451685343905635200543380838653374254203311877746157241728813829444349094383355223844466513068175545855597345008603747989601903707806245626042017122712686215716809792486782913084083496424002767859411176161316200753335108076522613655108453124027646486162582579146780112865590189647842492156324101934304018315263858869295213928282020314885127591413947082928103064863489927811234638314712819436583586804609379047311343979657850756469070748433819313036928570643641199119630147934481106425734684860758998211635318971430209778568573893500058150293548884588458232201182348374185949415614649830082737189824281776783962771157743446006891001784301167026368779385772772380789151497369906998038818341239084651591872232975632039675550770989243678060371161695149781270277904285822099680140786887420709438849369094831026506756573164714069557971044081476956452247733637561556404292614655892986850139257221205566826302814773297927829781168361866533545240139429800158893271937534886803239837486081888086281285770240660776437161364542794847960103433747776267287003125073189592646269168587997532981616322000296298055204730189138944399994716694373236925976814746558539572746248342764794308873312501460101908847865740258159640669266346462206990572428123513587372102179760515670381564090592669342013288246443244228621816190373143220648250965942691284781073427375921508024556461632294726050349277328552347595920846487230365373726512097398964294710750444078902625798711442758110810182463220622637952915397892982314782224786156489584310231884055046917186968274054876515695326694672854526450034776617716388919253277089248484198095622640949590846240389263999489334936487755048579815254707761216451152041127553142813434189115571487609865979267152055228176963255514873946288246010599796666344203796331426399812837759408622129160837790269465275650386319500154381332773270704228574905300085955352291586273571548937552906698551436795278946556955257642756950165008575872448217979329177656820633108850887566256810789959814760381182000708097615514285295267964942123047568137660474695382230994193003346619367687543681155569631161164186477781652519199534598015407457035873811358272752495408614207606010480610159998146154999092833069819593740029127019770830497328580298879454014978056010977270358688199789669146906026826978788866043186290474069197768888865536536061730031996816588899791866431536405868013768480769557931200529431803059396552228332449749830924233909857974592394288720472396362808066856967423186740882779146635756323138743284629914681123506039917277831131516636338306891280141261674034721411567535883983594719799765080376899127621761605635775344274648823550711315532356163350547526156549976301818386888776736622856621069508123770926302006318303537772832193966321192678463569564908820317061883735116489166724271782166542102430325723180649071150861695875975483910493035957237804104400416709471088046896728571787454076666342110548564531006199940244849329673228983773493519429122990796554023086382116606241547479175066958745934010703703657141730212979327593193390560421499842950189449971193246250405508442177783682334152805029472036511709810043898554280007919200092687237231599553292053354311548785624490799335205696873656824005443532798417224207454480330241746377505408874360996836834025891925690818259366970533287469605458568405065716328997240843076748314356522584417560784561154598889049573284025498403860305865493057617967771469755612685467560462037669884281999174366257787330105140404560772141924382517220559658604538680891433388163299515723270680416325351134209508941399823805107316871723007637384629208610294441978210199535920643718334073275698867546819380245381460313175240004499073388180715527919869411478423982619263604980061653457046188019379033940326177240069032669948775025691242214679297782023619176918416876889507802987981461690329479437077454306624717368875499668031816811801548649503511266454065996387271977933683127687047961207136985794253437717395530456366742037209414314424190107537682267227535410737353635039787610965654152475939893993016263038614908980937716526186064752287164125172692540033605299860476464206338236431829927665503093942870491858298549873480813763954438765240959216472405138341514694276071179163317864096377573637209714681412096048561609626177503055530692141242538206082337940502678310729584590305613823432555089049839736818591547180925721658622921584167993783216162335674070702332054570012932551367843826261663659981173112814670601226044724013888699334054038574265747605230057453745891591823114387824128293595185507138432788238270041723837131459345449786635794126427903641814859555006051470238469901255572550608975335420245456927561252875021551073522083228082931042884049853143634273998679345368547137444111454367987943077540167170913700702226006841564052777111069630406042603495952868089907938562354728238412684195562977810455651641317829728133052744665091780853572131839078185436880524807482762556345728089613405369862012551171499999635493579952333864603472596395640873140105258843683084829161444024606841647935039950089544470027189255582562320352504590397587001178537414276649321597210572816302762333023812478397459825459261597520433941647808477915084641110152518426417147289714422055073225929405390599707053045047412719865252556327049946147380568691912652273746830360377734964374089505572684865120846670861281515180609247234285289381577201581246629794796735351207836188677672322787217421494970715799041646591323290661451682174504932640284619294455695270410868847343856877462619014519793576158354941693956048061091191477852432595699776252586981823849570569481472760839643686239411956680377886886026392458554422203580073365778097356470418070324699625467208750380311761907488937445598821204024639697885493202783597403918795051231424880559220505099880260540440443214045792820545716881781329347672827420374776026151030473806949744026534340994889311912799815349050973834379541806306592698092297670667323275333427585455283716152985100863138100426000696113343388790291459656565014864182268151738268950006459114928291386193470981670605213851264214430482520524677672408247134136458176966889842185490574146751081290737389630992263826441459159307833778679483138145778113845777008498317047279256895789096145430969574428100512543736600936247001140068178529579160688588663172509578577077545770103097277980859475210076080664457219317398422214664246908831029007719409343029778988714749317231860620848736263593018119731940479197090540282794992489505814595336648913468635943070030073637780656217525371024273854340293882436089067047019510221463857528219515092584019687137853471501129075701700027208246603650239969245448269330094125998686091853191891334453824192038034485395366955546579449334478673534126598977446461891076816649893712873936987144883151192461756734818510435855447563871683552466166170811199080636272606820484513055433197818147233177950703453372648620035077152430157991490045637907710350205014900432179194592707737540311893103330056265792667962843113663597676398436771933959572341371752177613984593549539854610676614159638229868148205770935985846286691595728644035708666653266174865892137997962372744307814020117830746385180538978341173982650685942132311740123300869593776666768928424408066795864384657426205683962669061510132154877265022814594003750134089982007606094157438932225688006445234438561809674229019633568430601584691922712644866024387253299051868260877727704533077294466805643395695452752716647608450122617020914964486225573586062726141264671241982948407496672500642373821195594845502744539805930529419507607536322799635749447143971085225552224183225221767817691156317969969213044255324233067460616530848157195742008399145699828265611358371163970787068348710509200311969314101028815341955041932305480193841535699187702509709970373145508792202278471931579199504525204252392821371329756006125405844449093416755574340594526436201767362474889726631850765367370396416592122003165490111932571039198517282852726230206439632337432119955389412723771286672790692076136573165471053449927298180739589925908948957196007606739258263469940969630376249337669548629449818443211985532151626792676950656914049547850375217774074075713222357009319199867827271465734950557141888102037626638002470446234385876703953376005628399843834761378205883821226936279828309809318888268983246562585931922273205070690542558486099962458254714391435657216306758173171502520226339710669318313400745325572045385115446773503672759958897494388711383691681099633690330707168127606832557502003944378831934404933954900088327133666010295947837600107955340158707208875223676434625223876701031095870851756284796846051717998563073050205304433510271294001449930728171375691484256979714219999148671411759399310619114775698623380319129762887684265535721415785252758709613647603321470382510344862757368872678320416104636032577413400020642943637661103233767433813967255001723545541768981897909866181423757057261108894285383595382355839689792062181075856312961766525120786475044344591961689837284159053433613878421657891902762040594704850047188240606787492275102052430488772514323499802083530677290768764021188331099701783889180805917116388404850646182466647637867592976657314519168918581621948998866816945948008923023799563370741993858949883658435235392899139170254159637281303848199161846024517776156743555697777312829533694810378333682242977539775087608598535074594521872502834661201803710764951216392734230707776451907870098958693827643287785122228731249832103107335525335324398983658976024075369932529760073610989702469515847882493605374749912068624130796632853353741816534281820400270271958772409406572836111277811230907084969452035018850084963915047785883139053403739764618036810707369879594455491770263659885802486100404759007087282880106429013928985417052189128496468644381574019696013840428200643739417657423772472889222775604765550530919662257701776608355440468373286571972493526834707515916763026347640761392578819433380963548283293850337216159521545285625049802260777238800057890474136742472781228874315988032842402521415180554513882382932106126971353024990295097681415320150102558575186037602933583841520958261242615875265000884576503228042954017801054046940823141118775672144636505825999793713240000276027867298997268129383352860547111445846894062080398123484134477130108171247620747947085941822825703784739146838426461318251885465196017014003056549601825806228368231205860016296553368135190570236243299980519958542268430327508321417252801937748693041140251183162724723176291492872970908070070707526072794665157480676385449160588525449129381841276370560015243371118494107557629339330677998611032499865660844474974364549339621077341075112888680337243779088384820146062432170162791288086980331649869044598566614899749866914279087710520457551570327913949912314862588299333312981972860960505804274150515388609348876863574380287845697637721514387802273060636214876392534807145943501994461411318661540915484584515605925455404758067790562940620263164478952245958429624464068009589624680982061317223323167282938473088017635069198424416628223549580947379282442749981932543616205578187298497452155891956769935530193614681560714144841999010072898671382053795545661248027395244302350693873968579169449785765511920695911904754096876643000737169949925053518977158777493373881226192306326560757340021791030267006337062592951463809217999053069449899190743067850067697081516524488461584684134625716192429191760968146620903386341189811659223114621181598430856072326984738673254546029488423093804972641791394514858667853486227933747823950461285454858206512716355984726015857741990291204927972968556259508068502999563695464593893748319123289217709378991303352559725936131439047781768464233140589090793253717212669689447256070813306745221736332647801042304417653493153550447389520935863197244922284985606924437500475681570395336609021292897644272071544336907139731382537589852187977470138937609975113032453253938604176028233169069531030552271674376345966909567508979725930564841466364527301471670890303853397668191204847472839515733800981579332353439949775675812622637599550412390281170056096006781142894504273690384278841753718322418737576445742974484106075765010264721565785810039509473973971131992463509687631904662692141666121096865119019911141428367767736036646274837946098548724807062624564320057746986670368294501271781183992231264665042032207066120114767043705920843394179842942102202591636159005627125331038454896264625179729274599008945841883522454270409905891708882782330102100803835881328584317256642098796127545355524813945232531503618234899427764115122702652649372228219275666250240029655766725943701719060719797405639029999296846309871830870973926561088457105600903981410180990687385368815930191035389296305201207465832880562993086099227226411478533855013716085553770707013423155368854244204051297628958558411487687250795679317625235944776431372274157906941141576904552914485113219880707905386792003871714292249985306687293387994681167513015379694869395288447410419601803181976169929066260180745482565814325122143646553446981149900412591416415382875096518413495824345700522853038296806243378439095996635473129598893065474398281126854049297815662063641589481460822194297958696980659426493563697470632916969502264733136044475430829017247243586886950995465478078755264103488434934288176456172664471962968633448593343789749903152529857524387556300233354809401183654998475180333351931014899957575007372099746682742943047315199897201923355349655012497474328366261450093271065931272727247514871636379044684336964105641877910232055889788545850123587869849020222508627331721288718042526832890756996749915332544305597787100736040809540063298841447651601787500666581977618510126646181576041439804960273963388793060519943041516871363715379675419975138924833561568425840895152376323345691718837124101040558849598286113781577152409517302242116884123710293668127736297915750300525902972446295874810228374167610280850315473466382147118437326712542489673972886323903413879655107129970283269048933340006592282752218456953838368157794668970139907172096924885664705762061394379781288665517757824292352732259769855167603528323078318204227912688794047492454719157517304814505409336019660829129493919373889952981175830672354808760453914481806491415002456942080772314112491487885504584369227163729389069624454022244061997451318295452691114108383040869688199032014713689867311424265062159754212834505268322845202264745525513790306987427486533558431369205310581762918647081799357107701496669621007584764365494022674321114889986819762126992276445698968765335248178080213452360727725254643151603089332376216767078270354519560783643750463676501300897085886572790060361534024346769826663640344015815141419583279622985054706763308838759413929345049339590618657106393555988633144888154427659168578210121076840607967267914403486817245842340989711035966487708323720635199028981030327374339805173477003950525936213247307138624073594215137797525635138852052415007897056412158643250439618340201733750528672503310147893123893905292698575051137135918031011532539451490982092358956211448594215076394983271451521217912375814217270989882450300567452113330499077900283193290212519225475123887864369272875789054433079774533578758959856161961798054487380324317172885050282584043357292789511338374442138021674563982412609489988030471440688082618239273610021810249333680018650318794273078759004182061378436684748197507108242592086998229295125550098081548362362701642111904885422706050625161906455184906014822285573485268389924429126799325962029963899799727748285358282005879586642658156060293563122363669290339469840908935441671481230467978272325718342290302400622007962250272493702185864774383761157702555683380070836201262203043276607524801033125764513491032926309760146061896390196118405677339617305547958370395759769295248876556689471639859595358906160764550412202040412238361302932322545215283696964183251008680321919953786636316450909220633091810385222454577594997438905477112146219356599578052988174974337555384362325497849500963115355005355982487906233064455741088468916443729389555499741314827778139323770596885937931249560392728569754681784515465394444299383920118654807550734478690837437800050756745154009562235727644274910987929294131636322718423254110198036227836718476994027261371604590212615627155575115211122429620222394662059665981184921272273873166094936316582118859301127822552880243980510281952775394966762683086003903153464218836007104764057162359295820635801641035478977276048786771837546796413422492172915157940343143748837828367122335791179104896067852004389104502082422428594379616196253369387219028049420576227415526267780222160417434174511921489140522658847117236180809788094474376685209131331329040358198988517165662474235959299442269138877915903640873587974552816987278344998961667424351775124983634312704335910137572351330458234033386993217893175555405072727179279607343251222756908748816928703669735663896783320279030366039478649399652806726169542529498928422859264176554929169384100031974451592842050053131921803955434322778669037364929201109188952708117240966751745342522068045128886916101099827140821111596417459228470757219805733875540850012936382095043341239036002918919134284966449387189947792532797232393359259375792828997604855497197895652469541252511868269429449370862885938215688392211213397381444679243141398390711710248503136928100099659417401106536784726301924706911841694374318546219592179295729294533430844695411696908810111091385773193026254948410711508317331999159601584749127762567696800025195433699498638732128371801266530033626583920286298616290265559051264251055435615077917227618622761920064785289241204491353680315275290852790153766305023863246009334539625608853039813827525413090776370166197481584112254641891092578377378122592902312317266697536123873775915849819382426844561739118134356176935300361653987278016190799990517134748286717798082689612554056070989463713082579043851863245735234467334110310232931680992492368034926605239182701340306564841945892505048696195263141112434915073716015038066426259906769131004909647437934124218008238126862045430881684705635551696328706263633011987123633913228537886070935825631303825313283953572949826536018886771866854793795543391383558085414937527409847283329767496335944833683557887603123450063507477881546093611046856141542087720917946000294275500665548266059762807024517029850110264197904759738677274642923606832382011186676653694525967771227532506452385857198725098210574812870446373905000104581511041819062685525012407295174010848930979199900110160640954392038509259527746153075019712659693137513668106538108630159753017661111935431582724762695806428995528745042518976311774960427336322594539922569652911254157971581965109526503783530983923730661017981833924353307961711597449516696418949687945211363269203949729188775242363698277282822050279954571229715214978123920165493713105782852030525392951499186762803998881538913687486129043814618245767808230054340590677818089202900096175416176759114317127397062320131837309013703593092672392574338856174221309036034376507575791457669815286609056197489616472876167499074277951099925298470538577449068723497706743508268701992873471707062016936389372216796471850725242909614218109730139752396700172389692657097649049715246928193133618402350277039586612389521690017991115062870354267485403502213321793184724331308627139718516013104140829743496010855389115875429801394801556158965642532230558205115097763187959832949232649574381589564768860786843202603934447458024190473028932384146035094797739162729005458348045715847341916818480671325165037662925946612129816435952942122876501398766969177426747482668326215093980668556753751744356056467147933047468247709380223936652008520845480868544928351820011112889379589775389392326540411674711662904326127777430118000709393413643958469523783145532262645180198482628734403852613337086922252715630095291209573042825472344551535046650491501838441014638634419420706544508693623747955569169698272297686093494860768398311010199725950421694472975597561647121869431009879976818328128192777308926323289083135278576906283732869701437781823214913853743086755156734198863659872152921013577229620204208164759155168556579697234920337287680982691131380392935738474207638821997814425567125560370092043316898533391690956664937495781942467482441596743031564259515153312017627387726797837416878781116473946391848130103771733241872377776565032701575556644030660998566029871858863313547638878078329192393263651414573397176191291337879163501538003474705015205078745636317649275205076906414879234027990139816398064272386079500028083641603285102689098700267203707899981143395578049269018781542623214545984131990119778822080954975816230497810134954173927016190337247954460773244399959619419529313981961235130705561076414167012255952547724514529287980110797993185618165333623066040362222723414012566983689676031889472772913652674233151200068150636556677192162348492192993340056051658047999565454391782851014973149867889684586879377490119798915510640117091674967331134887506389153848496574918865203730766812156261373161550812492217298870074089581534754393322684846859942992046166968167377474479152177091170624829942700029035976913219349608566952689871831266862533948007613956360369820233213551867195928677817479600952156106756579844236748264440045665827431914740375351124510111430827103078659252742938382738969679930244345074005561490818242781594680439761625533880893260348723529569921500946550370072997538396338032949630323687735822265108911234775121085424067672769973542562864052258548655276007429996411922602399924860977872860371014313971967878991961335518115243227663835105672093864669466260180175047677917500602384417148578584144867475887265455376338391028479748381287551235563196633318597514995795286313892313953450484018030642213225868727420641655476805234545859812991221630248837652612567670495201262641383621453661715215584532011098421330002608038612563831651721381856053841972605967063787144082905182114164037788977284813707587253594813357701666296398915755789186149006982545352011884122191785924907314781143897586614674915799009063097354038150297184036080156688059659531577647489913840267038975203490415975038375811681523773671857952606197862467685094058706602868795820031973163152760666825768287971610373224582506169791220071533188234637323900195984318970600355327702755170359096940229341090206477920634215101426782448393351314519342510255790717218318499282781705077836348698253760692791525961421683199127893517451312515603102072388796923679367895424939260495595768117305186858543243383545845384550089848096907347238710114629928313022499831758172450719305302802391178648450771058559587670450282681441568590927246194287172992897208241993340351026364668145096101366257552766089665262099142531158978245658237414244934696224855364096738963925083545427854174009661662897165862219676072441666794473352465615360778207887416623787381810016106108621563802181415472957569211756304270658636892130302889634720660461942411600652310975314821522226145456368211689937143613310666034926160129361785406988899747795842609281233993142254779977465235433217128469734399037084104120077565960557879604353323847324001336383066403259423325770572473713975213021506121832058396209372414975139465808419543077253050290045961076899135669349043723004104121152114083829171808465932159613903386601118495100773514335874690381548795651445704336088428092149600207353226833385071009109496637967867644203845582861656230111240857251334535858100144250299240605983851205746574342555000242571986846467061410744938334822132060236004018555478685393152142276693091939326448782095885246479886736617862644508240154025174708061415849178464097888466348398371173641182627954873773231521137981420264667421550011946200616185139496874619786449046670959287194835869633472901835988356048556826008166284778156838417662867902822360661169693285998518491781660188507228176499948775809397255508343487783052965881507148358411349526098052895137430157168926976483218493474979914827463056604787176016776196766933765574884807110905969588401904226272176436854802059702355062279887873278178320382281360795313264192411910902540386449852649245577902649368723863367473781409158515619712680539030537872800182849161750792210299640979732864975467017887086314691569731907527563752503122903406989208909918220866387002700891667452327540808384645830941992525070319055887283973459123462749834223507568761514096203408271025333475112529863757561073407598930623790076295123729137702837306741341509039226852279609618498035905340401129013069143976592150941823893853889421014813150558545038222014239585049902782843574955499338376807389205241201631035970777121181696455264308247674997173270062039291509360621078084130383480008623323144108717886107626250962069093128838977567951320326086577297138385889390931841294811783239703991487495367893118574591811140446114841587220041288033755793410240060716310075896042062613305029369761931042632041715128113022351165554838645197629453696805033136121398760139297280642114693681872272208945847358177217701828367334810207902840487762403998195211774489379543705152153077610194928671821893737191011795341278917746733235683927520835751021909225249190216733088984057811711517825537186274983635463240720566722902200994873060128839055032204975193808120284679607458824623105167799655381127077374131372735845627282790285044227191337378525605573568208882701142513410896963307649190559618881173303004760227813876475938573285536106045559609586672425292896153799215439690816234115164619555648480895065608575537391311198979730334467257837182961550405848799479361982274272047949081190188100800698794636930279049098081804492928570966773013494838481866109015189551967508699061536179744106610051542167475033258196186942060464664138239071855743019784951474741639588644589064031271818106743999872364372026375593244487409152904988142842104539308313217265063639338887499374284811089268928232198200532158872502756654856826195109478234590261131495470529438658362366473038496198733610974813128695477164145001163472977722543118759048282249260480381296455710467239512733580682083873429837908600935532576802931336134069154721374548030630567529632082832225511231918597987879633018428622852440924465537313538829006409782616015648018350657562817014011259721991567744876973183629133179915253707147393872050428935382453539758787473809692621465541708473469666309810862971230106661819756089876722288436135636690021534138369420334962075976590715820338216554099943347331849183369639850927703662159130025564426429547862632420945850325475832974957454888906550824718090414756591204050098368943743067895514717808339998488337686667526544446484899124375758927116855717124134800272370631610587636128534913390891563492239383245932031243404444817870850290239886913205267023540494903240185758767973479981644161783415154086621501867918549053003258447846440069124589965618495826761646784556900479625815932228216768097638290961660189126219863116429879580269671990600630099888425034522096780148895280535192110215913820034988015134763050342466491860933129688819884221643817716436883830007678447905314079880787813279924315138529921736489226823673635666305516449464083731101839821539735647308666317235892041647899776121787131894372884623246802308863392699641905361316273355459967002657981558314881233920309970004542713790974685433097125108796092019083533146113433329650898423461989452811156040975435281597830978389768741197418850005657305578637863035128708319255519944496174901244155677841520299845249380890457741893706334131795721910162525491761337726890542351558565429733094478177300481783125418054013628823829369146768015376712382306923194379556291401808870858604112768896596988217727904584552409176514867253766708895867224042605905554213444815265824891528799628439278444920982804146642347222093464573612931515462387501312087464589916270503347293387932838158230927640238184328258226823988129468089050758346393226706089557839507512819997452476149416372273272277066168668360139842089445884656793456396398282732063195665927232032273492425596976782147664813722859914096215288038801508954227881500633337189361760063312934665914631616132589431932996979870684560118101595850261418513795748601394663515394799438349752588729204685296055826518419369626370308093866818642198265357679883815539300538215439812137826586334044176841026084808015931717811287300784221649335984846258584058974942068145732694403894014986614427689143412137971894527093828387090853313369702956156705512702663038635984854008814329536047987488507183455987736940202689775009030263653736224888402731428306254870563476614349636603251613160697948799970623999879668677475399018133751267979554627751451059321174471062123766979288370401747409601605089488993834173596005083315670583997794837377195322695380263156881040580210306222805843889456538607326006759975366541758741868151835507663941456847449627847765797425551655106316010967238709726362843740668630273438207785938862107962612075586991066336497378625811642892782209942851641067148294912587626351996334853958024641065386881319497360905454315233559181520427173273450012710929735080503703023572449645977694318315273279874317484186805909702758444841616553889518929126281898615448620096516425945745724772028258376223986250725096430452671921117800457047623279293821248726847698078734754212993784470538870835070097145007354915258054028203990266574327611002151577053766709597315630458097704636053913656225968845218451669183714167043435038168244586348265243500868366955536076119016109144725527393339281680066610087783981474495332527869400774329551293271136261745825706565596927352058846492932640969275769524129258058520208267406327746593759797259342152785158169263877925165456937926725146921405250179401609393598639113386568198340989168041241223512946881379972619348271644851128304948852052204527232165669920179841455655899963198614759755281630620236201321450158528709533688805388230238210987546968634688640066794838029238667760654491055319830299033215540775278781947591476933420641123870995386154891074701018771934207605786153915674602480043897248295331574622799394685893149208717868300743832260825701416409179592059904586292405568386804833133525030389594817069777689437291367978793276619694027176757685681354659399721322096178161307500763754265231745097460018801151331170795500818175036071899185588138576025273415165506077175979699222107157706766404046296750600397405196770064142767581526283048516689179583781506104678161225706460138364892835484019051404857421051909938437402243123774802975527655599263650713039027533409742894887345690764518770838587428341066672614617378481392208608699044027952796467027574352844542547475951006865687389202902670171559530207178918401339052539999392070777713804306338555095698238814622659632404052290283951277228876830572422376151199817094817294699730385581330941053174018390220370999928100099934028834886364378727756698531789245286462331263588498090908687573351584378887737790617716217236121224279620860367925049751481465153778396405106490356074994507954605364728471884364571309031057811541520302232303334458743059518663442691290033151400540989633354556860485307625882568104889839108118027618853884080710451831197154897362891379340618989117466911069687361862642749910361072297644475668227754762308323470410004192684962143888675331931492624139359745982488995410183925711381867376182146743303557229375938721633428778303796296048775939783851699321778476451203162493196774922919346729810434459111786917043225288305823670234831516615936311189750297664832467027851688283420220459248718033431194472206880488489223109538164786285305466211385884417963144163977128627919980023026556538128006570318085201800031584147638347072908744360632670965742714180296079705648173077983499009107665622943908058374179096739488997466260961329150457446837467817773437664545695868768636360691698706051638914851153452057317179920149617627992330451547584649974001550565300952708317876720603452487755441256268863458611721556866361466092264915975841679245854105522926944658430415008913037873708404618593251516106812011232296895358753524722822820182413314105517075876151126013957196572664570736811667693709625715690988819110616174673988047463544584431314995288895918822973766044821993492943714361628889550401573577264986519397240222887727257948523771104159722088623869174762259789140979782679206017267679349868540712309814437914170578772040376497023259995211903332739087314162014493538673618517613515382685683080418176165903553589897254621904545429631220404227994054585404716280203708687135826913695054291909651802255147876783963071189039981572703818950043079066177138456761957749454510031227434496825011205529861174179952321352286077964105433439699305252461784501700226935733469507838449428733258532090309238031866928010860883003132051994740806546143865671184381695085318554103140440229747194011364540350147501031200808463786232743680184055407731869672765047923763025588441959422599642580723982348748136197777638805528451389954774726383169998650977567045027151662743077476623396593115890894144997443718358297013400390972468211608871961650066166056677392707828777487858793343068394221319452271390939502329240685212787430659721257127753500455679704542371461618026029446026727911464126007082065113570382291807282871134346846010781351113333249247284235970546220318379041149065672880695397729679597077178130374113329922583330493135751960396194754793786383310405236670447999077543396361506437523588092754793095922089781654511027904632572629369649041458359997098471870054430141375958758361372205743975468100599927631886270322741698506712631132610820281806371088018465246865037873032685780657325848557114343423765324046515188182105491844031567859621924357781322476988757465090953875821154790244839399340200554131084361060404278968228027279538664900827280007968518787935833900045023296367433878621248466777519408456401929050128714797855830338900597139901416222731018096059073672660784322359872610717639055951862095119945781458057922032789070831658749357199831158230021413456324962770694351897475352247293694469886847856030658924538592706380335357045298080875184868189810302497047685678845823264228674842653131651038795443141920204520380709117852463616030862718135497369293608628587595325440565385043559886320744883831139886356925625194646699460361162661448354588818444628548945106244914023828723729057964978427306866248053092084498191946190057813136995117939652078130262199220518412340026260699547077464173904037533058113307374782518723825879100340188397422264476790866713010854626524119571469513470202394847872490035292700656384396375788833671089068209422698884783941407464615574072175828078649074716245552909374748577957564513311149404280949386261773244662891073504558331370444824073652725447132683497700001114065267839911429711001623159517324239956404971547765039773690508183325376516494032427165991577112434634474585163713854695956853482681615540964956273091876183469616236879402531719767545093576191792708112435286037394560228467636693372682473053949356372742476753431440512591816055580431652531465004680976385035283557686711010560010453204692302981449724916298158475100893812057710900649714142765096333228481226596186260713496200407006351533784813280686128774483102780626217757690630396964874332784343982129121674493360754201492026851035704712184301604967054053876119799302560033079547170997422242814570880734875021229332829437214521173281448036080042683413347522387009667687247617299292157367207220633856038874221163740479997358084934284270946827767567371742181526041731289403358835571592065226781057439977658477853474551777298557327369865099090833599555287023528281816230518376445282636905407727906332988271370776747466626478156006989831234054717998823904907999942269919693968875143893007031273764128070108395408610500482858146419251512707194576966472416821139321959560772477792602407199601262501179912180914849805502678403349404192508660973747289669665039162086468695727965379293196285699586875483376205867207356500643446706220600091840457703733439207720729666960874148741221623120065839569955485673197133565986407049065094181872980728116806219590944121364318149568329901101063884001956567681310437668252608287794343728873954683916448588356940623455310666691465893869940285350262069312383126673302990204428114417553287036517602494662187425402867874198767511001088822361525010896796245333533970171673773610273180570785965798611981393315344015730946582793219628190658457361084422533876096530990044088630631107626594695562529163597215564385537705600413044016708802296417949306029634660814983960270811961367829857869964907106673081182746811913818584584346956799257208630032470221143083077270652342812484059712861218603874866288973948610063471588560303702235987741092309297338631290840864193188239709578967087131387179975622758796487653552174126104393815996509207423863033645481372666033049947887357307995439863439610688995917865499854877656908422468177436723395249244371197648423349225622714643104150472216929270696828096378662886144775331175619704372903395633551989775383996576583051446970610499365116582293499087732195106149771272670740471529127678439117022258526646643818192008737476593529527873638166155498559936213097248857732138681556559799012858129235070528649489327843487841976642425164965538461192569927357695694843594082282285287944867534701172043757220193935145949328924753242726355252226946165276302567521710073572787824292013385223534433639900394027240393714461134315379722506246335734594188575114460158320276903701573707102805113391231219537791238134735937434325465985420233394231806873169757113334700576498472673975190676422155313708669496968730372128707593293083028518654775688704637696756143672534990202940476996465205555281107134180247407006565122464465499474914729818422968478901236362840413450761373351289478593230436551573546572123672719813654850401002023977061291895629869139508681371323078856578949894687834513344042075143709831900519555530118806617470720945476799821615265289348468874626870692768463018315518572503351732868460931807868120980930770633294041998083481248872856019657667779545946724097388045589054557975761753453923248804117296762656605199337492226430140739944382905879266788809978457619509422668898465637876961160305323500529412946169533674924388096584361343419580458637242348976188666281439100748803427738202995423415352545290304899246600348782094045140292540762158973635562164838161700091038157093464496867514910404248799100330234014246860640662917868017795448907201650730330829746871114953273033712393022943131875424387027524146204584951761272003749866227327737154623614976428839870917927442160880698640751132943512857390180371714622884967869306936999628256903457696856520925633899888940549279600090308456102738413100429082857968845648621352296308188951711945170399700455636333027143439416162817258557280098926537411670759101550453986577292561318230019556238111184773266613560523677784312945783932473882374506375266220691833213662760994943252737030590988769380937756613062261636604967463914001954914097512406595894932705540357821788120705512428136117190330865835440962174642963445891755489960868970079629014811945857844405739580884217936963844787919051201263122480017728556073775462198654012401284648923501025961696484750230062102933805273934627376659171917169889625269403236594869365049700088240249442553856517689829278064014022430354408479957475026420910018869714273209473569730974254188670871327493141998440939496159652495879498046759014824423162473794745923358846483681298576661940824521279471789535595705371535491633314072728014316891239264999074580670606508188441602277751191555749097293493814381292069966410509495201856159889230216948045193630240625991360964678415119981639539062198898668328578324706709550760824559296489655938126026355664118963436916417378236682170890508299716780832153325277611107518913115735585777026751300088274533413579730148979212651563244908893450803649713704109650659677940472247976250577706917379046585190074568417508646809815665741210365754831995008479554367977404590635706849449729073474393781017588251525801723538758925520230013229447532670474458527251968287265885689321689231495426730872108448670138303325883364482508809009589412802974679420199154456500286835242821543301804575451087316483041379235149049983214884832053256514856626438800185080474771899825000972101861760472772352490088068530712079095566552201137106191497692618068648662986333240761562724299139264336006720452892398665489316367295521802458427570381987077493877386648405753192605858975517366834082636079652740696858305543607851228748428397332307539329900316216255601811580169530060849578552586901058739842116761891120924895175476854003705969486012189994488000128396229449956173004497857892004791994908938287829424747883445950028237780048500606889087788836539756897137421228500478838737225405186559380998943106208878607220992885283564908315043764400191032909673620748388042891288979459728189859555266107953118356823306552487904753706864169585905469473380697801155276997509759633160249746059683823711870422563525282887346402507285815356007995472201338495416429477461082651218461138565065426823241339132143356569333155870908608810236111701354706339937588517405407746292031240747760793380699008020021381850361858373689537334517195437029677782014357906435725387342927101845115682451094818832642104709433014374971500190815947586946040799322010086400872486987968989488386255399511469973132727224996576215899617520061237193068387279470700802889217486357585319052600839515036498460895060059780239563264068274737944670748227832171186222752227197731703781584050983974581779663459062885776169697113175877349782433293569828904730720475027180615497151916781946919529389166602665033788416766412199313101543930721330180624325441172049749893818816334077794492250919921440962972881268902246468724593163464020700016978843301902054438901619292720833862539156305770977907653080700037798182536094703014409579622692195667056374487808616560311110434381411516834088673167115282460497335184393802878194120966822974305190228179673094145005038408419858672749876232540503228447045647759488794667066462827560737170785357303982650241699087964072003586889281754831255351737671464671305052137133648586209441767251037283608140711557329055639505846568509798683741881312639677771171687726507005818791673624918743905586735917567829367431186459969367840592071085941722700436048268640046062033187978943498949548432775028285724926489324234306088010751237126447985957514945041047687808866183518329142361626422880942058039536131516286844015429175131835870080517740448383004476381083536504849004823080689417634127556452752796254625678349005541408450186271128984849808624890889671183138618477286216580931982570328367754216356006596019560740493438894733876902264414549538995008034693733731905623956275088746841528433784933922465686275569503635205670005256489370443584123966268498296204023813576823479201702107474166286002936846744926313080725439103577304668833167855716101962316238555664256840824292776237544829054604355720996007056823909299801089482393156078936758876236218561236278519343723728368743765860469103565082551654912818015733522606504138605555654635397547798406330809543262303482585080501570907279805658246429685851730931553356332899791431678007773760398524131247656529781002843872106668997134104430461366830841215836343169800197807883029376759460110547412239608940801603452357561613992783959711961436725252880462240575271370496343745384559527892288646841954959897759921002425324995440324291186252986654009064665613715332460056203165160305273744651019825609738535207929790645138869311891801026734522003448861187135556094287880662287374599079519008737914666261126058464616337036477077908292527020017949406913973814131424033976488013491825399830591097550398590694079694464327314252756960903437344866066094009540015398024707240750194331715630129296048590181510692113317003046247809794252627675096063847927216231159615804432959886060482023841863490823853658696733398475223355701945390857307750030095693235322049232032297255257550600278777571132420910128090058010858026574691935017371156264881912204256566315648702038118280312717679846279955653268814319943291263819128297652476876043882103417502760171921443908861106273771864632546801903734128825089684364843867695161140267537955065611899027092727129260373888692856446828788645428698215458593546613001864800666415062233630937734930521764420763266782906661417063588795534403225697742846644531211236484555301044960702245654952184240629619842950365151186881376398431691151280739616465435734178067919942146062023503029795553878819832185170736261319483656112456603654515336601869215063801775501561184496314907977809743391033083066845549983752648363377402915912742249892330985969111731517637124687235648279628358231341686886499296503393018555220125456562478788172959915564778561596627461385157211382225479486240762562311093221225234237932280604047620878534405524129126352767392924439632066101144024157953659538452382226511207727040396613818019589061910374881828022299382340928933745374530256820915939245528807919494783230750670396546374888017927092809634431505156072353442222611733022890646382018864190077850915461060034070222237251813841120199666456644970641962090539919950666423543841892223416675457150313485042116950476188634503829593986462009900236164525525545471437849551199523248356615140715294991190531783343230794113741954183828764713496884020868492899481014746143532945090701627968952838642980555973458300977335515267816362738787256833910912070985669918243477693499002180290949010132960464862543400271274413841875671897687303793816736607194693300204886235502751748237525063219379339575076783085546438353499159768372687152781031683737534592670020491994262731196756750176353319102107685321542489823864921312563583037736993428615068214085630430457843084452271697245063581560360948004153833870588673413775850296156623809646338181263742277295395206298623799163373103959595983971561066382043990540886995703977975839789551286835316458504900862905068460144072212768359534969481157409150380955214070285885250961753499206264451526344686468149486420224471495258643087467658025542419263103515725511885779260983911497016872728182547821492143651123958722442841559106695061627689235704538524793840828675123298432365183137792799382085123741792546031496000910139040307264781329883420851688299763659829650026098244440159239688763538313175911640436149304298045953615723800850278432217258166430068033607010060071174381090729518769352599813109853558963093433580649836442286760203488790465591773950486374650313594434446839380122069411461367090327491438305776243969383385587755031885197950956198097121712250933483556729497713388861638070272185649275633303662329433847860107845003990573595066850162413004691721257071309283402902745061882506119093864784177015606533925540149461036878098071542474020154544380197477362291362979530693031740200524718281776769482775066544224485548005258353160899310333352307465821610718726409006694933115261548490272433705809994783493915109330039755290179454885142669374341088136662284956976430923059821056099851881599448327402859350669336281731306787878072997974689988796470710572818986484708505937098693376025924142924695524779163894889349756958277853856183747165206371334055320314559321214115006600445046494833575036772351296818819162276885628710391764375609964723502856652443174605111580012976415028114479764986902900379088691239871589156995544775486915696997541825024358057841831888002474752493258415210436109919111719212476189529078152006318733387240645045519281277291911352086800473419630091347524433767213869581867767091096433813033047369609046865264245209230509387150671513456881935979647755853263613042791887807913655810734212776589454838880719183883519534135252775342917197583281681197215648520944805177733597288782241581259938000570029620016955819754656611243958225496599375677150648735631940849599573742368550805708687791033963622283853646978553255821377443366233999655787756484779963395921257579264140124552387614189322001777800948365117238091647495483796107952430467143932060847735696420080521559416795292955108815426784820168042194817178669754242113491027836798595829282076679196550057764286153610832467170500015137495320379700859051385305972183337334728280630217071363537462628308954359489040799322919952612717948014621620689533380489678742956686436980774083901235170089734976557178561608587255162592051906259903940430255992951422394521672571086133091787398625569406760287918816112707774120565258826078798431936065838417638789623935770047772912633653214067846773231874498145934581022403315608691332025454508000041825568496344803258305822120312025197730830016697643991186484214978996386252244593400683381103779418540850923401827490761966157768630667688961931751025469839005167506114412264706230988803291076377835361474048165132254938525797557699986770790196939819630262102414661109862660830460116027315802472034976622682599513705784845018686600663172956371591397979902709596294033061688333465446176622864227277166448228824491190799365600000156201879915121768337892602720073627564592624397200536533863309469994068989111347804058682406843450728121667787297250306843232190487541445204324203779397012471701255767286589582589873216304202476715950556212846023078952106409474048830515466772592251135733459035046382241478498612249264657835490284509434486588781335852626089800670577157394656892028308877601315572066334065071496636951731509808993765786612000995926480460571713967363310722973412616473600779506145647327809197133848611862965091603210219396266653305574865214815643241925490569583230833591028064569225149725177332761265686024640495436297231482128421105417415766183336313591132853260916158029967488988475543157628100784497630971589648769285112025652845479397587480362964601912459176135289345901477569526027163313402072047344928308763430728341438467461011944354619357683256247072848896194718645699496550600383554301130618726138898132917967282130717493831811588910441138989464743030070450490040011766753554799137891404330939343904951159110141229121531845602920593777220212935257493880207818036408037002115728640335601749329081689951202152660334316986990412918433525191808747119592285331584046539044448257099049468617337065060897437884699668369425138640646884595059062227296254164076315229148725849127786787071037254241453770391847288372328035378509183085170752525659669129839054783875509062424598443382620558458898899050878612569562887632599878063967641171129284611427442948706135522023059467495037460557080579799716801163804269811283338634861593396737235663410994504596390910440104805577011307767958883802147570346131902757897747168078009869429121186846226708350297761685822679748823717810409428715283394179105947883099346703790400320631903695716471234669498086426098117017958868731217532071158449848045164748235650442805469702918193947430038992778541779538744199325782003899063090191073535730738057076188798300576963091359868577505664490401886027114626101748372835874031237200780364810611380314959139049013947240039171476769021975687594268866229652737582004072046587698578419359892475982660952601451379117163293574472236110428798247048651717709976501389533242984216908462728928781840369373463454096417949460863545110486551757762940277779862292033728943837841677651654659315559268550115308110976233056980733693781623934248685753598788219289019089113704894938072261183519166582810912409606211315611252317181212539368911483048201364866939469243032344138123416053002768686335557729007090990115702036391835502843579346961638124773031347105845373443359086161713383991136918886913121172647095020614550917262227522272333156755246435549058244468654285218864721158640543966785433022949183520707294059962004411728993163875549358939512018996187919786032739227578144907351822922952626265560486982682096242868922767493187663430246931778909867396290427138226396748279086161556331489682155447647345913812665155525880668696727569363013671892512680573225734728503075275759486649173833352424323071326453665845645323198020974394005083055605101942642884948745002786871372192118744352013027530173076233734587623309932643751774437900079848068045207031009864229045069091211463184896480628720202931302961279400021121166112171550328892374057759338060881557104727254899196348721543817152274842795058091443853062752518885737188749251172880447573113229525741082961542975736333545908286338896780395176509383938750959781521014255956614883265177091962300016276562447749635589140621478570435985619663056387778531389322866593056360659192411053083381897130147781734028382038013519590816227388793723683004633049258300160946436290775300966463623940926384897631444239301638748280393565494714905805251983724625404612502549605447432332634114257629118465363712354982528207637982310278222771553624179963881270519187266565352703745613315165626719281713971091794609858782851187532671183199060790718537347278627409327552355543129272757697908072312683995313365376553580217815570633360064086039455249198736691016437608837065508610417680159145704163069374711442486310133517734648004198777241813014525858471879012653989586198182644692097887690032248351516170638992295159537569972035754364779207878421172510295575809148745536204752313444910586511968802689575988339528399705903548921665781154571628737698418322250317864877183358255308997010061576738956767147003757684674649553361146651667531381705936938819880198035002895986071262936722004028407611036195058585496825363153461566759988089560708745586408774459016640114169074878432838054820953447025704409063688862945417228023808905351296221177008227964131095147550469091627592929104181654765926790278160564744387283680346112872884538493862362950621370434194842463023100535128915408486194372481298690088532092055782474330584847400554912391419224803427878779155358810829756192709727520485197432623282980232115454815228850086044393289217067448065016802920263684200360198055756469636347598821794525420501411459820648783675306536294500754051314011378613931706656984383119410977863735524711749123392524377776283559586468982894490919730336584894538808806672371164830337074426598939146942517770312077792131538485220233771164320202534179964211729236095028273571407826642910716906310129346862763793568109573184987423238068764006942822983317857900682167937430303142550283185087557752928781166774846532574054232351611260441886622532703224205722955486905616197013559740981377841828343034777130782953548217698153521451758348975428397458079223667732026551045644231469589782755280461542237810655999131683437794377811024639559993066309507282080402067550127956595208913976299980737737747531319868027615809135976145723142562612306703280312645125956602340524246913947524745183782603947265327508740451813225263794674773047159135052660961365775635838702376438574465409200106404848848838133721504832036708807808963050195626598536362681219650290711077159575465188597839526742182860733903147450410670752483738875442857116871808754766228167695033369000510523706688575169033742739598367644861388166091539233728706322068414023949430658394867867906363386888871560311218059161170658928496590856816838815619086699044417201902914944178337589752739281285428346461467690693728390559144229548656884200787783827357930282611045498561089911805686215846499832924740851888859542811630777477442240481026832456797004850739341235725396584089950160581007288733986583746245244850804077971364039461474497688985589894954322949849106543334650934243288214035169367506466659720207329559306539307826500012524565969324227229208907904120997560825706816573245455829218960286265557659514075038359072486430315210229335675924584381336968312759271037127970532636766771370237370306821212358715566890102919133959997960416217855702031407387758152659527768298747941020850353629363353706720263325363447747251021946835742934885967142239073365936235111023390292892553279051801733419442265565017083623443611975727490299952900868588489785957957842134531973002317871096275410085144547138316724116275927319413389521944558987548337874735667429440764352909772157912058394175431023393211671746917056371585975122776175047791082677266393287207156420986546383093419625548489085372168066430160293582694737912851075105262854595252010435282483685707751422912560739351045211183010756720568118156131997546091196924199069207377334772859727426766507781554223828679603199538606607334610563756091199771554496158891702383721739292066210818294977253205276323756217166752371370150644763712305775669165359067146628728057970615206085978878252700431392350048141134166122127438469291914256086506808707539960584771197435534744800622565768031808000202710549424939670205267409534030335839967709067648135388066404388060172509072733805725593826377771699607968670646208691803650792950406804088995184824843903216385090877695197559296074413813949652775737033648893516982054365732588142824710377579371800406590469023137207495966831881729103573155987016647651671207433934466028059197774593560646011796875766207916711638403081957451839580931914724029577558077003695274645391796277522759501547822747531751153569288762229971380142353037174654377127089786546533358248559905956945967041729312000683739623699604943378378825212845597107832751906336619096750833451994000543446953097863310865524946575553704171685759818892043534167117299177902205762563350752054204101095599349156759806757605386570092204188769241575552369179014268119939792483680174765486218027328770492457620322459404443102997741017106882852523272451183930564672978587551700158246136508151994884979986390744327407830999870503263165252728871930763986620686713987913067188253312599921400198575669040162437884394339744312769987289943285413742655116398611358028129612980921408531849085704065459352850859104169567087622482168368750353741143144871487454117131475188933054099315155647515933851814345897267203261043308687019038742585753732488897117417141613668265734181152243606059055787190936317444568608128715066388372140487892093294070854792213103878677409654110767959139831594726077137624507077138510564352220236920694951906860421677361262987369565679108271223558021209416028944785956260329972884197727829381900346642929147232988863938183516043449803113160963875461154359823204905209887737054906028653739342664916019801155521872611922112820529472440410392182534444064305386199858255855726110069452851775334300985390270149477729402396181041457251822013874761532806884403479407779173273853570764191527134696329654253796226132758088235057207381304675882313469115574649524518226050496704794081026365140968169412497856443605061344157187437998642654204601071715255317974555469064649547226216337235493947763320577239717311103263839833969981659885812018514647171769255424087174477031020032494953400362956441275305052012906786741475633361762994716187300709314405524032313617466612483426726200645207225172157717148630410666820080645182603042827973850349226063784730234283993331847626353717571461283065022569661927607306175369336830289651699972270472394156828293706121186865801620950495334541843249337007447720775652969520684075884316580001811396063276061916044299421842498798839147915021340741165716412664083852000435937756977066656655767149365371657566695774666484113542679590525932980192979336967026190192151196516293229408035269045353513707020806463227118219307840855462027002028983266721006654222225466081499919006915592403263922316708790506121868797184902993777719279600527549100978962633626702675182910053337693192359420054956002016989612897317811518359084030491997523882271862359021696108023847927186094340565477120470234249412978581252586413889347800302796093890087779922491718897842774283957512696056214089963542749413165582534251610136425310224672031399667925747025776346850416537251702310111758078282098770327262342478648860505274608918840891019024360499439777256860176062202852266240681318123245138276446248873989324015289093066301946140846585882689203045970702455336915121446681547121299432903161651618381087855896288296090689944166935492152162825782909936289107128995940153170485671004200539390031281005709859489445300554233588936029960303358852019556354316158012950553006613223351052820749876097633267284291207308668928243255626944502822495404777232117493903225557004755773642111599646971928945378266369026474735546049126814141855809715453819283633178740268217045670940514930685799022212099584605653107771252201005839960767274568464817854922940023952184433296746272641705272056204691288193307213124035661384877286833106505857521690125458646431770353803748025934328704985442078783326068458921380584055203256545299457275812085767173688686140453627906769872698360237918738336266033534246544751933943674405210596852068755711131765664493651920652407932455142863023200266532168398612720621863184321109603032499764376059814152689942303321529203972891594378312641272057681210214355947640294360284322351158905090021555337640929206285936547129300343068153918534404332754795139282676547409486919055365149526268096846153872122402831458872836223345790456380846762029825994474908893625457197241831152383937759695936556496050876641410152550979052910553226177878791479202322747450663044810734167176824527341001417605439274343934903796267191822418798799350602683821298245257238173282542368284726744840110728251214128015782033823807957501870334834792377941578295336608108754670436979432614744329936220922598797202425826034204398239703735416934563032457662591538105269924557973763017435641236808582995557347169678997379942389331275039397619367974870531162798240129813981414833045652558059798279620222202538649873462781376544799544547960428256996641087066500278751542441674321892486583349114123235784386796635712702495430721777770827023246785087657466819741681535477245000789623314834647648116103631432658332868100460467939127637394727829537900672761308309123455497060099133747315944172560991290672610941862752626015868235800745261159436106867010544694569954208902114713535807153476213115104159717193250648424154519081791603753778138579017888871633231260489434338005276722839739499382292698248298967586691377547781778829821500203100938008528524510765440789656930289520712105437326739930054062633771546405512146145609631042739966092216737533031162058015030210540554321537796749109902559096024608061647430164697584647636731903935410186658811858563908072829852100573288735665846081575763756811550905561794070702253201396713985682096420609616279922683636861530501164762782658794479615180333410141980687507471020401036052330992664314763941677777588174523410749274501037073304213354135660706472260808398361157109999849237964787097852422626285258582782474635135913546392716419487942592542994564932166144384215521153773046230771859531858621536181821102113950571354107816301143091072148083227774434427071196740726524101003078978969658148466660921858605861063113244161606813362684801754753060034271321887392965402874930368636771803462774599659491072454696983404865236860587274279514868781197541353219297466466118256211717522346813435774822500515871256691933749816625187290209989225796886178613621507643584801823132275957944635226866952254748244040702572540428222507825006827470524958769372115964441175960442711529710697508410598451085705344918688917035496260476525905291978088957805774480176238535981396668326860915605273964556138816222915977890402784280350158882241487714922875492022610198672976731557863013979142090101205167180471036592281650940614379033911706693682290094811041886049006143959056871612514825115336665525264655251634795611635675690264367274682022409776670818374494308223219190810952990823809712112738952393250440386459826498695184230014542278856853014684402099172768643007979125809958342589568837072785546517893849369077395231329695531216088587200776545731105054991018245267821092198393403339154485958687137002645131376701877843770285523744191334535332965499878166192748084680307479972463077190472510857429661896743938664449362373717259028414856060223737175229519773220887362167480765990487433313709763213917818831168111497362157896651188676826131382823010664998920933485076947141840021720365744305275475729519122261372948443099063903015755003223409926937944205561166336618965649297769620762666165498843058135378746488777571619987180626555529669872865662429516272908507427182559025477740543139212611585877138105270471840011920668936500428236493638039863662424456339345860444540726732482870374168163260260927337978106632430796628138376527749124634845942390076779316226852274639207313257041880504948554653312696007440186515118176067837633914586604626223139252103380056840401093238086752916198476803926383226452767530310436319004062339448182072154150519497765466076731372112059825261721269771777768239427806928882019242671450067241236948548429848357287842964149092951189623617406549096207927489452618820654711702702363250029179316411452743288090590847554268933511809296565378162552162083865828516586635757412619944934561326211685598394496454519110881503973583301331669703613211796820343959730038330068146406301506632123583631049924678848575146811470436176472801233173107297883327350279896492519282141589510169130004911184923829999035236571084637871683156192965700799907486127203829637202868915265491171203632756355456003055962057920373193528458580117090775814053771519482056901939587649203748728394369890398342920003912580401782636418039812529082417769301687284502597213898662811579299714354573846082077370373586117496461631254686449331756372177850221652317121610153130011211258407275193036001851199067486860450634265768099862802105904093867691183230939246093729701034463912227915343703936770910230662280879347231502033738101223817427852769938000264468928088241626844495615795383177479028009041221720078307634166285748286324327864154768835900808200213282433740204842368633078257122331359269567888510060811545560862989859927781688096462506835527516696071050298368891290325546617010297794223846851194114139200340122619085050007687344289071003646111288827797494753336443016208082415994238181539751189730920229249042450858680349729689582230224055861781440316432866420291455421070262258703442077008607805441913064488172345388957816759275576515813542868588608734038428896200335332342220058822601903534419126054891993043738954478018712901604413202768443734030380316395727209273805083937964120588869765940334901506090915667357082592264638423750014147623620765019732222412292128199814585656674609510822915645904188890281271360223637317037378747791077608880128024185665438071505728578252422388512140712236801693592555570025780910078849817389550360552941098422832169351914449712556493583012939216805559437753375669293379613143917505345384391370923923055966940955191259555316290074711313655653992568795427679610961937581316760739854079461661690263225828361922168170008996748873979957916782820119142796879592741001786595195290509360688403882716793000300253785028180841888255668232950705535952776440742080420623217835590371402888211653081602681848063127039020860944380257747551775707866540355950051508968861933341632299141476801540703586095653024244837080425949753786382089812959535743053009536600081501146283676604194873348445699216660996338188074062998518973875772379059086434917599833723029300113159580267684570605104262954683406928361706996101375369172159383870345916788094027658598947573124032544056828065046962625484243342421816182435852612789374097444863087697631360810636974756235642180902173680887925211725859063066779352089727501201968009772985353526140211621857146440277863636828113143039611615823200168130152563729443560813405125700098636238304637452271903320921193671006836998340639203540517238764925695826828988675858933122573995109688863098137757432541077565587291809126084401882525351744950313555076468075527626396401528281076323822561974503738877122461769624636016978513330207010186801548061650840797997659809582262292868447566424842008273935957201391883941298436471321625912561585759356641701307658152183376763055181681727415294375796371026663143515863530325734447790058471924906581347677201999882440118175399339059443540454674499684623721384872983198756230123571527310111377933213641812088167130535919514162404159336149638554615943362919141851976034627129288859845330934796160469250166816096339749564694451669260356082387667955745665295033892058951385929289006809233045675606889085360760741114479765393284102854635734388917723390884799493145943158954492788034732282388668101253984347584946871976309988414776533138983996367514228457059278572369356608389389775008760716860588658422824434860899266714930906573671693432627295506434095367975703123742948492832380170915277016409190597054400546809424225321961107097417073015377665389138631175295019861324872024059190973402247257128238720640735222404410856132087321418743825639772105946233147954284442893217592476974456596591459498685879236268865528423090731769420034170794887890850743292561817595214339893312966395367571235903175904154673709048092533455868116888709510883696110909613658810468323783388191671443208478441666690942581307443183449211826045559910146986374214333104246633921372990033390832466618685946603925556788765157221579768686416160839610965281039404334534751655184410804647288207491476428977091045552245474926821991300816023871136525371892457866665149695542096533637829800163741430133082581390848046934603787901840168897674757684360538141652045630401652265801740066415667890032140564387222151717428374580627641346028650636005001933752361619499762650051932016640138974476650623808280247340651978176706226560732776775932430200848180716686409419232628301786636961743526271459847464123972906810649218362376975257177993943137237488034069123551295898250017991513921505182596646874475711179616533776787933675423926149461871738074383177276972466843950447673034852826133931402547182735692120439550917690578730802798830155330936028336232081275153928204066811168783265228138274348970510789046571740486331092694315808323218226382317287972580819924714066309087700127368494356403455228502018850822009495326940990357954315062700728706743518848236199922354465496858514316343588370563818238530917006160694538889030413219775213220115766450777186465179786565427705770411648489401118538976057059057940316866793889737789971592749276555685024129689102513719801164947055764343016195775841130039953964154365845661993239550554338329374537864795327344764964504567079125052041458564785397510988739245144659971396234909394592078066213734598943606668603062400912670346186033138234235333599734952564573799438731096166683524498075203215833301418890368683274128891057210233887054905198431160464324409867409343936982465542633946212024309205406339236802213110362092349362670890994594515657570459226827575959144477737890490772927956484517087918828734663231986596637609150167865492866203636305761641325459057989350716960215355262001671078076206309316306460708651739885411861737390577381275203215437981045477849926151393652322521029232462574126156947738858710645100763264924964682126644882111531648178431724100601411087164954663392692409374312659742174620017407834426693618621939567070793676635398992814730296814637780583549613493138898838982743988682362633117870518917582860969143217931211262315532883804580034320527306641448460799746850960299053907263881973424674154092666097487894146652031100158853068195694202248271438092089827237679452808211916941014053949648940042537743453312310066735110895945637668567240056944872026840609725507446396051509829686773897187634454484438083852558504722480035422775611124455680022047708811012599525371385209891902623221087669281962264373893190417689741796232934234048624225397733434071280794954236874711799207947304972585114521204290819360694982546332802369274572227442643597170600247947678771872273750839277855226822068017486757306185443039756624282264735264555365901727106148102903425366722083149133486436055796767668497590693959136165585288047804136936024304392156601820054811183115952600899568639908761803253783923582340283447262272377463663526065472895286497683746516083870446163934770104133399519277535632141194507157540839750071041759070930075069855222294824769376274858173650317359931730521353435892803131829579850632307179148928470291882290506293659310088237115694703343138215771092682236009523366073344646301500980510987495571713101252417605785264593379558276873970579916383830015438218203680605168111586602083048549824581549724343857965161962116540022599026639624754684013358426467473234761895124643551236974540516781504250973955073538618863439868436093192694408054896140756653398571393160000651349266876048283787395151100751594366462941162740042386551231499491560450555697743406785530676746303979879420447411660235014729581597559176026392910087454291992354394124958219724571656709709562906925600653946248696270753805159642782341546680169158999644721160937086354806694345984893019642648236336028366136913351713538188131036750379414651095903558049541531360441963302572805331417497395485600269483730866931574273661149415391399374081950595994081035032011272226638590010338287224530976581525047446336255698441517839674311200515790790874394810779661643247087904153379477073982145882812542230399652622553126920311986415925246691995299868622571129737842420704440492033400464727811838841735082882427922933153111256228796847404453416447403659609553052325209725265981017539791892841367093237579420229482812579508002940296920638990001799217671870466275937962672844751886836880951086579163867462226655239779161903555357076281672562725023265329432476104459662323387308434805554028648489643448616961386594061912241356819167197122119129430858774906236124972380216567600939130589490790591246431595631138609969204609509145772387289673131644678988955205206226673173929139114813479585592776894861418537431659372237619975853115607326453573439543378574850874651913767544288776641760505775169108715830599284070019198074557078073205145501594290646092265794883493084020078012176719702491986857535987216229962838398703628441002141250669681878823489449573147491434563706431247913179998134023909615475911891791717558436984260598255177890525339655286375422332882055385886053656517317052824791863156790133575246683188927269164097225681229899919975892805728669573867725715353245838734618945282640683969178837936662015037899846609926341200224088103126689384684818227618777458440251024005345206816687498556621271884116474722339483518782050864822949028580161416700719159769308359976456564482590314581032625922921048223297517014532417115357410242142742481540147100123624181856113841487365785642974949108027808765424985349521741242299311976301331671393210220349247521447051535046031811193612703423534572986450064301603084893354272670083196470003449672688169397825628862081264041925793514740138897119161529728023988625814579015447129184411713991919521258084960559683669308112405487573435148652473144334986699375667154937476309091291348513038616430207652136978061335129014420106601033250129661486486027243361851594259798791716161030280366269910456973230250525056626074780818761376441875387938861106044330297376256793044022196497757662165318257554379724135363894585890448649674520832817632814574784287661626063634961008080829545239379281897166784584200746468117402936044936051397329392207779067997977818786004990066813136126436616385606548092808527484582134834879483047515082638192527587465072713202314853317014832251061313949176218878571351774984809244825507815134144523120730953504673430642938771329741996546957536453412127064166315622912197953492285893752346104201828183869820338664067916661220058621664619397610092339689433752297632392195540118594804298657129454099471690204316063088439621035715631137545005256339928325384895495933940455069423448227373115487188570453390654504905791503821209033082728860489894941343240562740914461850295830481474317010483794213190790705132364239906933630961320596729293349524135518893762547573491859724509557545496799784572471091973099891643718427163692091795017812845155100606076831532705853186878366563067551760386565075581197443172269011367977715937804305867866075591638827368729667085530286053722840638935159384047367721210462515968000996500294333125086376001302493899729271512744640029526169514104052158434542591576649906995533656943825493463860136998671489465018889175729714822750456995782481753565556649620694979535220398060238416993475255228571690656695729101024901288749932044725170011999090555369914270617308964176050425071966735336428688034332467817064764770259755256976573457613361879336855150201576367924179936119283271386286216003976122926019909783348448748648930752905544868945146303802313614778616589796077307954700210956818334549863441806792616151798657053511586940159016251789175213816293209729426847528194816955099677134181896541907950958391778250749618358720342439791245171851196072949845252232067129461329808382720369908967452602944213531716203088749777054733804972602009660024091439608404960397524739742837461729647063311824694762646944549798593911679645377540951697915066525933429103473777795594695562609530955686693835065658325186841020442481087378260748615558149135789532725820814900750354369641837853392393204909106662175695398115599144050029385733021912896597274682782752989546547561513559200048015817245025863791060993299404388900345800947545663781788635160005505891584770364986436987392653673025996377602043024933912960953525515616887680219449721861888191592206265023941118605236377092148168416252622809284263479061707197367610261871011835614409749350178197942193010649692012852462439044337852556064896430367788931188827474521612369701826127487005898985550047920198339504488443139068174884369881691538122824560607044922681478349627622749225238807694299146027857646578037267457839958108295024796630002506248857364617089327968906478856635589751408578753515992784850083513547633176875973537017966701718648207667651341767391778302784991893283715639173735980096954050841795751473911858881699834071078384038593494616315473112211614646471280646562850457379852539407114460607008771587151445401498841225320351125194677315328676229797946283818899469365667297995040568419740409470700642842445289056633389898356172708898962376827079706056715894518098232327731082126803265426688266924564179518291649164909675688474257101181843971368728768664508991179237103906939282938362154098749186711477010322090586607587381154264387646678949311925964746527971980418859829492250402628518048508231896677985041278469845385896023712139713867020936948979388602133943758600484996912050145401720316421295964721229789783489292292695769025787159865952259433563520711433759799830363427867461952616054274720137314288597977003843241494756859260712559636228273396038407109096724354896166789669298386509036226158566503702369378724637882614717924467857122202023462380435850601914894670233510355938486226628264103203054441422973167750042978316869108775797806649709572977705467768499511575755211055860177983388140344609296494391628421780195552456164512823741603369620788861439412800913548609693425668970321554346139559454951893559157363216726938455344858947327197201240147536321370888354262145673510912601695813268332890832387717213886159406263883241332746248951425047128315936279670905160083909256599702833214990660717580285098297552348824485536285029293913932231561835807836878881459671340440319743270323064987496361793886753667545065385237358195788702230246479283224219372610400928898755583210360861687612217873393822013963136635150376532534168101089921201232081043405850685414121400345286623933750322607496697648332201572115102824349033598730463366174777565729018645215044830257394136884401960209833541701152746389615110480954236600613244736140419922072729729827418354756748306870105673491705342608491804891997794067171541626719499652855774094423965061765070773071349397867754062040735601999530393500917654496054780801832692307337161496633340342355994019033059299456702791435894536901219406793183914916637263691230381304218772891804235677796360776382774040113047753391985407142243843404567268456269729403850493182380687531714453555856265235231144608084996706542073485009945950295725350786374319368029220983178282142046921398706161152510117163754406895862264322089296554042747107842974599067719137284652840743626730642269155112153224877923222229321437800673328658833127992813480172185042391399232527879782756190941158976412116338798929753517852360015440689961091583806955502282861086362803261849932415061722656659665282415833832157445181669449656148055173130269723820948362950292343752988567613556323883875168779676983340685417349285016042059292952491862335209555251157922687316954932198079394293354403627489136619276981216633498990556219576214542495537585778290714548792547545747626230172173052583491203025124251077910363874811828183072432471365950934052195168749607079136051362974011332265905800727515615493424440851037394159617777886975392296394336542746281662987373183823092028764399496968896604571604438009969379908136008652695940474234884446427174337827472965725177514003266414957668499252636991229204519385519943748986007473590641731068467596850084241035467643422095357249765703906047477220753602437069827228247635723237663396541059765550622616600625519746152111608380702999426413870312231687169018249952421902308013246572238327852671569879389409969035137391977282264593089025099355615859470047486152431696459391234860956453255906243142508768516294258104013743344751405485907922142110358590799910318152587583660601073422810058612612109637070687094071165693774824314803536879706583669183472130571554276549221520173483902805283822087171834545603286571914862481680644486276620021313671011714760882222599326941687787111344752689494190661436784188130511336759020639175095216479561542177305370956739227233206456909403131361482376586493240731855787380547019218397414591994455231090293218155052472651014239539755675561465742362661439145687296359194078679874090271519351578918600746460699171755511615605814453898349350666263789666274127705132621538609396144693695326379465493800286404347795287667716736170089270136306693221521670941575176074369260454071588123143967189055183226593003084244340713468808602236443108109187171760395653725944759100129845721875901703245789053075326347766096316712441570294012100843813906369827693225502016152891796686448621679622366374408962617391578100713843847793836700654013617190144250447267008586166254066947775384875660652278740562792202365711640894957385221484473077032698530329107941798797270785438114815402174512211884996055226676044032485430122042684811725521499078276564236544316207544057502445620326796292465188894265563780589794063633958470269824952108674387405496309789190131122713726511841640961445659753406851532794465651080370074616156490574945992340287453954587729738957597838429786347296861543338956485579359849507012982916747110610798177413510208913565447865100398090830334413552532015521171877661165460110177283718378542524590837525977317832351118834890195992537450856685887230471288294969648481109332759880536795939295268556740967067984174279121607805049032139649293125606258871522870487952118808652249320282835405918560220725668672676864385345936935695778763089190420369130227618987236019921196200689700950730328913606909473486759888075910047033233159050349497197722713700203043827830699843727299460577174083685947645574751866135200994559022153890347212781216904418866094388797893065624249960790165288419364495966001285325645395636369628998298190199266684433628106252414663851654701739602515566116807185202025727641592653428331878565943051629497133320295225029096156549744145950208278854322564000654382642679462267368401085712416662949592059995163855926006893258654672341321647559665856344766741789267781817191322539145656071764187006025052467483618866350534705071766883215599448915744553241898518744082662774444199602159616819216719923875795192011719519298515236627528537918382260556387205339826205625732770497334103082408117030685125318569959555772048450148745149750166970863643093286561080195545412784743980853132612099218299732820127773816571036210135916078662179297862194019373101402036090938828081276440983679265110905468417985581179353912447742308554823081229076557746070351245096974592152676499004071909880671347723059623297132838099302814997660608781319066085008433719856521570360501769902184865253656645601482743380387104716016664287074111487577287887363138869355236718964870078963177528373240925262731158452851529909737554871934819438321217812038004976420614224410531256272937626268865624018172793400949604349802451830593659925028294256390183074207048662181650220988507115922632111076546435876546666205178768593510919239656080488221635013625824800294895517144738256825510092235198038637644216964737292752659476412962013265932231574783138548921105644042222401591123956900836217183288823881626268418858316181301981397416410456407930394106335403580982976572317392185897686725134230980688368062343337845020532981876839919040549441571400475798609786264273873849759039107850256359717505503071853775968402889300529390057263132164612845033182220300332826919893220838183476280880802201284790006324884721477297231301943047511230752013850063504823483541156168297409872544482639441382389696641522842075887568872889127728380235223361955454682278877584911507681821585452281579358481987498778179210547991286676386902522855054793936729546612024279793808629143487746931590086165322593286060195775070818093752096320011059733166944768824923246088802566293271563724224883893318509568416330747522737705846772382931087683803717030025973990196101676961781941372134391238160079829220562370237358250689725441593298749113354181810349838138031512801692977041711945530278112229325732330235298703020376430997393445985064679623063707847045227263692877293601965900073275708189821713995732010354258333800879595115346683007794780303318503864504676493968379663608192163437535711077346955032429238524577624672036291227202959084596848655892538147810005659268840110304655637177560708169784587357386854560840960433744368988753145131163689918552377849458733003908590346260525425204383073418952788529523835063302116890668851460995821037689757246109931893211351626900823651022069286022996514823725096255715817676395662972673363152034067621878992791705322524716945899078904663777241475393220464076638169645204868201304694339625210607925543349009093443581586882599635046959427979627029571842722817504137481035301731581769716823024769741912181292461999473146052038401624076601588871401814181619114648217998984038559626093170293785547836450703428666335414475389973086554433939194463688344657002557246020717237280567924939626386368520863742805121316674499744768104992898052931249485910485390166658545354122635936709233667573932290554561003388689452173257466082658489982026589177169930068713462172688497431431489062288686605091417879777142829988852133897889904667692517123017096190440411291602228239068069926083994987855144648602742505172033962369859814498297397534795988179285897252941651550483083418640364937074961299157927314213399929082442166144762322380387440831947728870136356193665610218839616605528557957629938038132852187011059078399130476778478443953839400323270234445373642735089936204303338338204839700633383053968103308607054619657447574961705136386899551353443943512148601621273196579962058691253832467754983087981856677543426666489438075559757786180441026683102022305517055245543451373927701875095408566782080395574418519746477724914138710930012149671181333079629725518468652300566931889149248453107933914364066063511249424647866073277422478938903226008030937408904018883150555961378239889856314984010899602403028932478751695061082589459385530036778096368702783721691255992975968138912468551730707899814669252935287820744294554296770514099454648373505049404233962317791398562288691398080768070208248979049392547723205021767001783538875000172894885444990484981927028119098569765724137781141734597550443119835628633189653707909420161058491389359799288139057251598816175241418007785207386863843545251956522649670540857368058885457350692906403109894470872363136891618486847864343523967884400391767841269851092632943924045962316570043213389848795287513797560344412259045559552389340544179779322252109359285264585285935769869796604523625587731368478646660702392323096898000902904412882839850159283037234730916619248816624296370224318190363716004515883838702002105003635483809251701049012648727277516960233156951243561774660600772518045460168039139274785945899016637123994410958067504949546111067460632715122142836583718002170069533774694051138886859771271634442892970496942551555743547869247859007553292478312977692821941099498181329160402622525446084663876185042789797572660099079040022057575344038763686343492824085367607304480954169973835278768489190537603821242747548189614442056276576534722063155279468218056931615272617334056031369191417463676306541441235699484500335947869188634823169109874826357460350568389977385812226838314767142534796514723224025237283177844286412203070252578597263878422392587534176941626828117331645351571225599773740796081630384405421437758081731310665828974716449907952637548711737815834242832831599761788620136074718529808175488550810937422978405298231053586108556600757299394568081629381237382918553006997419771374254370363353221748234674572434512460352725348496986489454590272946731762900271833493272644873082103972019474658740579443083095548349264199810143074588644145397735292460038112981576694436755463218458922693666768647838019084927481232511945776288926258180617100817993189125475343714195979399234788385453950591024780879828831880281896975264525863820177646039642300974242560222851346406053861430603607003315529452341083042106691504693237227087673912041115217695794438553729329061909133406599305095365939408486637901316020154383878507114182454759396811320379269494097058159907793466099624780327065274372928468719731495793961464877280205764601980948199252585920391675668553377064909200599580655847800693598409750446989602741508021449688142063293343792586726273610618842855566558642896846753055439897040331860145851223388247397212821095391343133346219036819441919248343744549936374993765710488920791581148712817854182276482932687719898054382338299683250494476221734138753629642469589216431049874550070616315973275933452668970330167020198875727310143526495471424151866297418782291282566177371705565221367757332656057320226611426950121851596710658654859619672324460754915775517528775721286445158091703871962488884415667706160792852271547759863866872866297692437731445939155075411853634917285110275919045096655518251355624047570632186550553974672457762353053422687554891764794442683515534517463008446712613116137937739283967714518312426038242522799743115526155221350049809620003051071079067731338177536280976230066991114943775313381262855440108378948261562134083868945786891571902338595634612027775901858633205914762453781064828689166727626310918143372413868299049312646666649780044986647786152634074111382198490773764999591630958216932139476877064194919884334853353269926363652204892508591336839334965591326233284353118044636840051882748081032190564924831009819554505492919568881668803536990348880359289033487158160309362797795786890589122686015516548033288551376694871007442657427755952402041632094699407435180888886397809031643711168371340155922676987754370858256335736684119125394020898103737440226474423098729035510668433257927374256625970167888843859617733831768965115963115430273353361414879904936673069529613497606258415959813520816223703953695899513633786494074201324762204568339107945559154607380945191720844632010693775350644891796563931306082230111690937098990530365741781346394426672540291824592682515356780843176660003627511939426884413595007580783879497301896764811494696030457736619460651090495008376972757132344249289781158392592243243778956229504902133074635330963983022046881689492319517694737639801789811823035115676512149428116815457422390337220188798898962509387639747212987008328565910034722347068890207070240068395937099239787810843875141643805978522243043117960714498510385667917201809389884217153625066290270221001191636104585989993419067687303011237261647947543404426485811847533729524752575110270199726852561974549399409838680646406521325796477721659419496474062112629679371045683835277027184229478382403691496101081423037132899789609366530265891488679607126278545156981258387599646148778680017776982442969273348977290265339808745285928631620277508295362530848451515083492804281083414491732335944512417524659750475814504046388188608985880505497213917316355437110636755841003621236595240684369301754235254489775003978930810423163253987120691734219957397378035293583480667304141621640387715062823406061548955945846569218057611597405202931958184030577378376771964282510132684017149725553013495160030205109752923276849293696700961630075182389829598161650085715534357766814647593402904268535489549884999819342799643916872199669732170788476386540134315013197427896376044745572864999140924050167698544812868967511081234598385755932533240924929752259695522463739569750642713566693681353837171553253874717169640135524619829929989621677016848786760082775419225189082412450925888462802909446412864717675956482966943308070451181540678928391827699024810989795855101298439046428020823546867928682667896813510135708213956589533488536285250560003333795841316447998829111364043233628183120868263421089645657690487167731024013482210021353839493761314033147757464952528484825894632615989385852824759345867842079540834212632507267363416098679960361818039138453785877114710946995960590075421269074467946170567507884409136398574034635026099968332823334115531612653421127062956473424153819467966023848252457552437143600796311069781578137494384282580443621063265814637803348440189373364290670970945344851910217136815913036255735635568567284414112058704862630538747665057171350759747916771985660075417575793873134346942996390647414532290883633543567211160257920513936807704254694714204081289625781746720887231004975664778754641769347306663904524171874507596373917885547335068949826021031896541398026486072994848941216686822706291501638240973119904641304975109180007461600117281312383076012295777012665955087270624037670083290165928680226256317606578026098912024470646201445737422146396193094600380237779615418002282140631619512689801439511211399077759418703789024607806452301772371499553199583596367142874276502105796023478288073419988791945238209976401220635324638485032754816282129320510035412938953031698902281541057579709649248985284092891565697873430615609363878531070580815380369545911955535848300260616681019075881066575321383638011088213064560952130021600837131392347006281703796208948122846622973763452793822828144223456835968320389961205760568485524696100042209659120870181097343599459217579117358756867042655850231786685652592326947120022718762554776745155706440088331299961351974988641446172522797801131516883621210471442989929088408773385431189730584115895172645978399259980761466593939184470991757475036583263585772442988312557798099757018336425937804113737217071219817552707204171717155946675325725099792838381210502970196506526556181238939694605271048388635366773578138642894758006650458491724652335949598964716701946979784956899063377488110895507268877362742795726347692388255816759459574094089917102835419510049920166962321741345109033321826833808864096700611728463311991460605512406251499871989845205760238562397771263926344977429839533668620428432941893028390484554795720528861256059310873867028842928533791015390879479679864660843992208774638551999314639333084891310155388100526949395918885578767076662025751415929133907104747564837739389322286104578169486629648373608511118512487623479650908661803495060848970208985924249164001267720995425874013712961709766669154322459681721945434338743795570643761275528270756452800892955238921195951364597272339806748924364724833340722908617573156387921495067070894466746904987454385041637169961557115350583425620199833687051080775841707429313955345071532414168194236039305683675947828078502728649720557478052624289197548786258645677829005891904902647250583866590342026912593332794476933693465938808225810454247704667467697906341586960741072522358141197908835401299647085568475936211896928780574354279651354231871636421235996450245027870711556955644645093034245017037627138454768310612633429322689283834399957533784622157427606468752364193624410681039617514178964604742478889196243526738448106325330571431733854974234041916114938260088161647481295536663389568241845727422750253406014685723378941513422779485221070709152583297139048016322558906998947667546947031889504778058635326329614666440960533934435584168008060896937150410582149695436609452620746414983327899463416502020522872203700781742340915836032054571708458881122345636367110171981360168990367162375240956427025312199222717901928076898832287596764754230065198803472224629121664374195044665305515027914800072378892965182389302342956426910115092930963171921842834396687953100206493479048606372403373240492158980658285802024072948201548881236822628224888367004772282363763326766641483095894125913054986227886989134323120114633370778785345036533490848966106851702500173670857190184517132773323549437278136337035265534030600697264500808820952017103453299093314543668808700114487223870489291494368782219602851146229843414717444441052245946066620345024256136268046132745473365967310383507045620636996806072827384174316751717496590848897836978744643825329906064133537050116042354849602736916099053586500453879085154844332285710877706741613207229809616532225693733190694594579631249686799889836364000366685655112541700917186293386014636032508680758668200011081976590774788255257657469684035056074224917535145555709801172717056903326842831586468502141665501574788993101098721355066717122293364944909639088404740744600490900108310689307757963512610635085781866571418673312034548952347373426998060323003544753436155848879029097207048929581128871226556475573672966740569685757810887887690636904400142783311699914083903655133471942136501512961570306510337043597682290868555554387034604321624425827172714718220600388127567943995389209349368653201523079086789515737498800012613484868454459909935133825825273461312568703265374245102773611046090659776197165544610021648737772304962712706448511312669636611743854838008517229167436848485762712537830476885873072172561525382550425849364664153604913648787620648847970768915021232496698380319669491549967861862564087332180916811879647925251703621448217944045360868020836535753688841037208874675112105479308486892070104835022663069012133060288392496902014420925076651816482680865167492034688309455974998175388186180804452192291270731010034241662818345147410635270045600658416048590858676551134590107845351934887820001950389436296711419118730727937796829704021101898951504694625322497885393317483593860529937773821559342877263844921512336859685867336821864045649974346856126462720494006121712006634086564588045753873400752573178751113143013974567229958712361138935104813576073322047751458523121697736469700632921342805377124092437417897952944166482530983283155394955922723785821100093780977812113009981648721711373954589212177322683234422231469647531968306171394381350200325903620850371325324718773642938316716064988891811510879390781625830492955835261450041323567703355190868606817039031083048892546964188008724136794002943235211287604211816327430679555582350607529896613273537065883426774335495114984416718718725337191100451846542874410613404089850084666174305573465402882308683683013264232585323485545374526541791062320075335021261120004303410491195268547794939026182253781261080356355489703952100679157969777650984584584017998554262865479125927018488018533219910001251882222378317298048971411490372848223320281998414693539960869272192864355175068980404955504711842772698534544602504993033067551749287853028429013612753065402691538931971254553363819550840046371056836929067041526166745032984769884703014025545010487787475984569535350533733685987453146620477767327453491382331747834569860885030608972558724666556504905851526897364490233282618103534643655166206723138446568867171782624183786367377180083361797358367562745239844048971108284537973410493667236362002300696425429702148990135911472045770209306358319050668749431114732147503427965574701142423134269327730643737818584370406953530461738455066478224709511758644529292288419077838014423903385918049059475157412686482528894193897132863817064356539526438730774783946771232508130206351750841775177145971139684763390676914958312767063384388884185654955273220392397252878483135145334451651736167484096408094782537554844852777648930949760100701690403559021495125175889704120106824804723116488756236065900336414650848499005697096235069135362217030126941086688375959549154785123369683132522455557809929326886963757458414420233915570671169889405547106515727479180679244849971815567378297767997426869239900076589385344285835025902781158702986707550133630641026985203349953884652940815062439415200341944601079421223806405411836776171283712944066336622596956548242610693556980670228821742100808074947652506354754970707871716743008598381425674626006409874461867674665901863210714464480211907680263646141105786901155923253272272560396299296561485324406309563296500509006979509879898950792650509071898915783463254092691845299004365581873879191757980252122128651509620278216328405541282878837097982938970947262758991494359958341716332954917667072300112929622374224257776654075592954965499355757768831998151250158778605307831128001172027766360283672803045546603752719980427728330458973305313899625906339960173914194524824117665546291453348155359432553405530834729041433849429493720246173497249473887988268968668385679327704548324296910250569731361919304627526264000612796422265613904881742888276614377017763188157324371619267140673190304413483564979303308827738535664749336454964446790406185200077470559723175803026833348795507216789477450845713494055162015883589331733975931580203504770411683761965772682777784614962608048696641108599851830337081745606125524316156705005084814797096877175234677395402617655880017116791072240945571120258412469727467899634450276401187984193682768645616870500699023263654883041287226404071290684922172927371492833216426313183494195898880262404778322551059051623511863499800463298613268733793297826704047375620097929557491974036359991292463033956169012266141224245394154600547439044280599591166440750305325127622223184019207037799950050499716481694888069402313125656318063066369129945909500516712867140336138795863234723845052878828259056246654086967780215283210024373007048279805955970953938183036614018088745635829067608484954718660975697458769360258283003503404600732356192707181793738313367333875872936900443579181585339635425567573800673004910526091286653135158038598583459502067490735470976582503710340636645239982190512771965895713325552004104949761981735401340437069493620500900582652603617209911811262850588333599098584570671378552645843590210626014362230020829013058764398600595384762526956322470422153474458662521386525049705487494348275153154148273161822081596346822039513006342568704088540033195888190465665195851530243508892045734179142341188181660800768143138148319347742580056130804325790804655097229843276532519934544155471924834139894174112491732394494223785584540899005421699670120443860188088024395719634661545786338131370778721873408464977713760726222094820501585007919997798378712110611282954073302924587370462845425161546955743179334206082805019251045678570023454524638961022426801505006362708406322978141456471783843609090815645453650493874425396615740018536458675010794760220135002117767415380009643234298784941149077879877645712181510811403157663214592378852801219587121234885147137758246791276672761600855924626231038495647213284941730796290293050228364540014171111402112710326654629904922562753447511472591728980824558561096898930409012290405005695295462137505422046685885205148174569293212301559439921531543466170346656375526908839186646584017227909150925444638284066619960995035866419555298304909792870578690720322391915516823727410897124816900728773067406354577218155912088425919351527165067724960469504535644571040130315449000411533262137360433735076326185006221431932147599834490659407515524724386403998660670720061331295043529753707336859481297942601571864951632887216184421594585390608459832583276944904276387103832254038860224452482876876274970267966795817151699995265083592261949205393472580743281190847839193078587488335631673559112226108750034799267814719149853250727683517264683352737670551772668879547273319005087486842279126903496101211830618619367643825381264258352883560895625674102547896022704591489410941241428244199539967372761441042476950571516908996604069806898691521238716454700988323754268512102487364129500386297317571657589487278410154879296462332958661208586093447091250407967141239718026903690654778025558720061370953413729440566728530074077260387216693423571651152569255549690388039086819503141818705342256718820103493584290187147287079437736481080813605585172755889200706757428509423170332851670239488873868359242007742749751625994650292828726934639824017982663336432335104628820152630911232187632703883056427414933140415861193219096904294680224187181803418517520017983570547127848519750148695262209655219669730154364209357410065538085192983844206633618488253037790228870259189645628552882547988279760745519549107020955863910362926226990826696931163041809371739846282218254131938359871628939212879347233104007106131783445150499927660097367077825805619589640316963741026552430926479470672261796620168656979347354272010991548731780344954845939914821637814170165816251407385264694384324235227714925013307244445425082327950819634399931237018809664701570910487699991963188662582343066597207188854210169141940173748720527831643348834183926841757834424397791660016715604049930992983765836611296015036096652223314161417701425757466500838549325973067086565718532732418471758689794659459221183120234275937144381307841244799530204560998640410010974999666678676379460190573622872217039918638852399347894233523394761107219243234326230838460930726690155030756710297289173238663557171632459880129237986859106902079200799467501541104401056827971636491539486216051087489994737572000005814906616061744614042279489662757084276885609264434372728394414625463858837430569460003343707024727503805215126481817113888417472351875924675782908134367187736899634776584044141767919029587120087037385527580241811180635691966188468745971213453171845950916412527200154225211301160544554216416910787052741267511562272884889807136786902627089488807380774887797647419610434149646757822610719572206628269789388827171253925075055245120899093032925265061773233957137656716310105664563794232201584913235301162839945161952026489933145883115553068341766521029222977488122953814495540973705239650695204251886393990474890173469328915576800852329778607503494233493672761832155820260127001833363413116680383043835048576826635857965232250426196894902315966984715800981360702738977698250257422375441562361996426908209998587611228503612071368201338212140172101415912137941312774985825261593874785063245130257928079742639584792756302478637095194342955481472873080487800818517727694442327800294259850087586067583843526924890805548830128818812435601794424951608206804658408441594193910392442202346422632950525003999032523034526928240242730736369140518438003001045304272259926923403313603794868070404928857367191781742696997255517302830579505275601003820384645538474251364522922154954764662054253136579620610313730399048608079670783406677662114930365331127914905645738382922031912434192064585066208248614496238595501555484831294611493985835383447400038477180861005693133920468848348907228686269104864072277116442562568243052487851923422243096979547511535828257335341222481740874472553747635969866541460900925724358054026981811966353530750844533669863593225651874666199219636143877452231122540452081385018321873257095611839592603497456273109644836468009126879094222057596802252347705284118929183418960409701654451570674969016627758272284687173111095021880140211845083667986397864705149545322080961125087570882240897576631220752397065962554079841100554313172309728094545010548530788854237224276817937398394383176837772114571637367361942877209061592980207875729086038490721373189165880399373044787825825013336566001152846612805880849131992930786465172271229829846209659951860282058436295742448805847828190865845923729917505542367469909312080602436613602384697259661677089715744726312718884926141680892259268338479210106687878002839432214679868374854583307692984302639582607149862980440875112466718960296494324961607147337783443518237967833802895781367782581081469155288759451124848261739227290348217877425331439327611954716908012365855895379272917870570300830113259090109225639499489235278427700278461656549778124424999714544413463008747563312180344391444236595169958489944652069158186132659358517603232529432925317828445241879489151452990426876270637270998278615692064248971124005941684571095907845488021014061597593853337799188449429828064367117592206519151084005302316240095021186792492461410303824934823991821635913488412314514553030426579336973679644022319266825330670850980455115312900032048115834551878979988947094058751028646686786521157420196614219727964407118855525760772984194152919080923371141573730202318812026216505209968422329265471181957970771467150603311386970426631699463226915647955105772820538345421589972246131766258135595686528243582009886782348096494976252771706968246661622865638288133975799696651296368495464843637317932104678457032103668562645820063744295409263987571760778896492526766631746128621453621298739725058461831005655104201423094792649238669789047684154907321158846209523131245975923225471950540854826298293099664514877420303662234551424132195627850830915669976327041740752300882221215298500615189979268372311641522624570529272934436144948706068463696597264723439216242436976122654600245989994112871626093004732279880986025938152039128661916425784318323955486038645869650004251415744835247742383805414839305239357149091610976900083210429630352473448266904532001194990731292953817458306847867384118129695375703840528229664599794711892263193281548075788320900966156359296081622656243342259769767223855623816991212289750659434270206275679302354201853234380702538377183826619963235510955385714440350514102903497702567438710829646680770103921970228694365452186460290049701320901757493608529320437354261636587177339728743686329612017853261516507790919020198743815128862715865340956162963709055135160348079820619878104517400182284092731838397817894868515623228811461462410816126232018547840452397512805641875645736515061817142418483324284578095833855468749221228201156914083086753071667613403021937200062810159570782801361137105636999877062784866264381771478961415405136056386729923940875773178481533147906549522816231352572350182260814230896672472863308024483425459276497497602231848570423084502630999432486014473777296323914564734323990495532444582252902243645963230983529205239168990052642329251875000550870200461121899771535189586524955476056051985459825089014874869704213407667863313772263091939581229692110768372680018376586375567074926758302565025727998652120349771014313477804822561989082925692720613169799153762688602838313455467040076906549651632661724742966492791905567064623079449225024003413968365769583222515453564565645157367923550777927750943720927688772241390828546516850354907047391245258188835823797399898076923858048447855136133730959595607918622338118699119516596785561270780069848380891660783062196489782416417764925538740605382041126304249053037377941681824673920376904240135055094698725660976263351180346964009632053386794372136847209448479438638536035182781221847254425326366233283749542178979540564427421783490200953650565738427603376145727532704930599858188743719017990749360536459296567030824803201376225718799833988291869245904706740037704699024329001006345112134481519899757361362557112694749891486338746683823029343575387036755517901925354340772416037564926373089911552714208901829775717405968576159310614007616511110435396580495685027873723630455604658674411799421173206456853501758410313450223572058682018649669260337145342143627679301615120760870156869373725515073635801562869892126500006542973043611499943184539429885858332368681946869895620986815625730586647042573086760241243777576335599489885651852835204646069962719845654799257461434426367751436372906947784163713799340554001296715027694427385918886624598609370021455851926818837160977747791161749633161577732054688612989520359733473244055883414405951225970139564735548492039515396280428021859113026304690405352702632921924782867247919838877154269935177240526563369934648950469676011734434816218194827469202478569592964475812947728335549440018796471013815432686386893360969108190064884169341930692498732484775149963973536158892034208938844747541150026043145452077722398933235520676326819377201597406054436802741375380807591021784542530915515891091797101422917456724089050684121439551336534956691378319620327363013618461241791818045469723998208981664760413088701723106482599380808355846282363905685815037292702938183494043697751076931965320827778617883272833955902016055794015534259132424680791970007157807904677523107412858708469046641955964435272354306416220560133889373852103890724752693221846489978343470955808008375049500946840344118965770627706353686961938611382781788266156270991190805120293459656680484970400215361988277694966473927115482305638233065723287190554302302072981024258385594233481152819261933076406051282799942830936810963498446409011186247665916661464707359111220324266606604094068339453827518737314183712920663153249565444757801681408824389602642905736793810658590454589372963730476877228641113473288123200518738420053251996743232474445064890974313147446095874989144121836789333971366644505819882990738937664925528804466179910455877927327843319138062881666179664485991718114807316755784514698221123125522890054876972735041770589850430092698787899379759005490861460329981809076310138413798341535209968737774274595992832381533061215548437702186977225723389399587783895283110888805367010070166598253197887138453054456698946109885768694631285836059454518291744023355170495828229818860552270135955487539746590665663103204713380803462696844148089871907692454816995061692103352015847710050868385844199593428131048552026960808157423454978692538925651694746588181553184720791485570884062844342716427634500457145669791226656236342820608807805402457323160444254367168479851797231724052206653058845508712119421316749404919132627273610966816644354162142877391215324470929477057825725221438241434764360915561675042135171099603424929655024679599062387141091005001128148448598872961973917600536833310254486392576611784907353336192580637155870567793412032832170522600006567333326542961358808938817076896274277637705435134076265350656726368206917402756558028638598768501590091594715744861982175100650516486659363657185357753257336345045134403598583039936951588996806901066217178334199200621911449545866874617738074786397697075217273916085876251325683970821630590049129739154359514990107012889555236237232166721400519321926144692241115682858217136003908335138576058965370502192659299904211572083641714203627823776553821915251977348532530349445311254280603535863044787240241007342496356320659146163992821413668582356291748091668375150899021285035435998524087437248114044962145634339544335381490427503318919033878187578292032222215243849445385420355472859069053640253207673493919346379881657120781941813395900099623572438707696893183659009505234359383103562782698031942311094231541263449882009828541946877745134784782950133485620943831463241930513438938970615294792196361411434464957208673676673016515871218782197183521650962094585016861609117610367534854023727942527255490855694175798728452020560781789922978436840193157454885279048761098775572697308635116145709880973341762824475821781317157687240988829954383116404343895202060121948270667087106987277396412132443588353342335394121049928234302708920454471403702721029441689554050026833706491676500402309155632031481707802070307091991403081785250513938993879468214664891762463362475950132356710158428676695284786335321254634845310679301540041405627761444028157301789418687201804995985642471846580401240672222154454425843660000460695971101339835363705680038536150796783556376340534298867648641496786510043374327324086196327921396025524725545838544705715934620223090895463524292684914380551502259082625538441027219847039067649860279033041794693242067766434019147715970869612135197124001982604196878820939226412241947830246693303879740186104573450491296503802758321433540181906542726100158996105407525539120789530695451600933940264711220962271026744878576569748034845247720846178340685647723304680125031318139940946902956668289085626817995484503036226435467335943906429399399356161565880426844272779805823497716597097791199169753373233298033354521137911562659572379863453562466096560230133307011598385344436166267776353095054997749707196259957804152171771476647347108851247538667013770743575679527714018302088230706715143387752343613158095498844894626882545643746901353096166728699493312350050099835869665035945060570057986822244454977924336281969673346358407283312947052081208234238474628933043305033847449996494339329433217244815925345971096092726813169899375821885942799491129400772335449724461056629315478923243179856934488391589883478018962413061573411631521619964253460857425190484679672012614808006712335505265329658352278142792847895764008119606166689501630041384702200831900386736586428185524707660920378890018478082914130464762316320039692521239278254669623652153120490424932822854037081605239811936687725229938545358468817211316620357782405299606848073917750503998090407374536274644639211688364991440796974338848026009844799662853140882629367286725757618903387047223647372001923068829412722196102159084854841289847701480952167605494754303633651735228209115004855214246138698020280510064049227497815345437377642431482891010790007143807950350974835046597020185471366898913235029563982089667412793977285314547201874142997632304154509714832523480062844295849885679977526311361656024953296376825775342846153840145831401663697915250227604041919649493373621685485203420685694549625120072236896488846301681874693084015015469280790367436198222015944200015417034310935577749750066136341325330973953810353900438956641719976884066230038955086565174246908916291424515547428574193319187436564369516167980511714729032318432002822300926292114105018913339666951979946902751299611257635689797988724252099847532087882053830868772352652980889548824478535782128901497577834490673810446927012573652616498766523820504066485566528495424200196866830475782250040639716040393648777978023349175454751293073907306849267426968469439301503199779188644846629164755847398937935095815486376396389834653363732837451962048474143077047624379060375296950224214911098344142942093481070340396626223496215061633402828549464513313926200155959171901813199000456008132774912755457001616331659266130211815932209760199797541720308115909947167717595419678807545104902907155532344248794533907743233811485189533766312308949182804770188841562267074830892774816864394070392900420317885964602299945706576122478273711460045004306157291687467574625301369888055214747423181537745180598672143539275252848611042100245782299130112853509975334610103807185615625771604698044739215736596492909966147418557618758822044587106413568895377085876895263872137484132986519698091045419574377470171199913810073049432209318398876837254227780870351383250568299486245667765871235913096648559985944404760517476834217634414769899953528092589970759205369058448253064889727537648089574532254106031605892239302421546868442715234340969572855200520700594353264515979098031412872434924500544809727462286073829195308578852395404243609643038887830775370654363279953387623567789514992975296439817293365997059921755750914592653105895754263271421075158411337045009901382487566086007816043678130416987211243417641433078217359320519889508135652522114306254635458312540302759307405348552796358470831071371047194882983941274296320219222050048516665192299372151644287557934136485732707398312764277287057567694149838009973811357908723952533093636092837042985186655944595024564722509611603729647446385270205273339558955752330395566050470529661578919747489479866645880060268322507876685923629953428461438615401892663145792416429142388799400571542590865562359433533407169093061022925065459967522871000097286722665081351038244888674824573401483611438878480856465144780672254568058264847351992905177520597824097570598304433621931095181379458532601252696151314241045154239982062453294343768101757543504998988583977981624398960534056227949220644304302449632094448130387202881317582811720488747305722340325130990923905894051987074415956217416821648562890107826438495254269402509301761554323402496883625357517395644610108290417649137329991779588153062101473302639457892350699859010080474758234056258936585551326101795094076108912358550831794156881030452824993167571324039822869661558439194301880183348159201940879549817327780423359825961260677802783198383833179902817207377425526543367504329083358620940130194009028263095717854021885757139864466779899071078542235255177802879343044685408283418264060803808513743663867896019245204299977664147771105230618005121099012661313241994749241011614287281455890803811399288083026663525095552481041019094960088080654940468995573842768549146469771413473781138713174059276740966696277941798553977600811095593270567196631014711712020735668006834932583178278139183610191125029701196632122237587587636015588458082526007811122294890354085569158563464694971463669546785740541660183877238218824628678443975433169454948929482932151118376979655700139580932805831695483435550842363610869437747858569476174828920653532052773767128312324668337625861491483732487724483969950908457395489587868032075213345640964298647527566394481097765757475343692195917547396548581232568231093420453707841321677533323720459659746624722209649181911431154617027158528628080334558601392014767600233732952424527070148798874920695298664324610431014213283110828701863028965609252843400201546817716573922817506821040683108269901735201557536004340482022096253309320284692877618493605810436510768374056649512827871499390091931379773452994152477237117928000352403080612157691171228100458637416824732273857967373741675263869835639660522295302503720103899183731747520884977128171192877674405128616132750312745819024128285803329652155826731845948040344807574103774160170564413625278495669824592745631813660110528640226188287010555249899269086146401065760871816705846227402761419254308447618435174888313493060190105308598425407200102179350982251075918054151757568283479002816967640934780865627691727948154403353955034651112686008131713408209572010846706258040803557763563499792622753635424025119118210768912157879570504406376346745359878828378388489049321415784502017653007279846566151660232611604343450987192578113060375846618204874255161478577911219576373067913970527727352529354374362819488299316998484513016663791020599333005358158363255977322302084486251266458391174280901831141203727692123554124508106562773352102758344715088194011785427006951361031524790500562153600771518030577025138032062188749563875595917793383934526283990676646438467527252787737220248892056755689841074356785830498686459347787100108361553639124233257400965501317833594622877243094610146845496511639548533469884811134105928969032865050470904149960864291754641229373822209059916338956004125463316339194964196060785950068846934122599887879289928824717446839186929382074658145309412906607514781942639962381240284330446009255591918527104867493846704013782875557571360541760081521963536449214726430118438583407496979047044470792492787163185242793501467792370484306412052367610144150212118963046337417222289413000522103770891297682148280635475931043062654817059992795760419852709495461568019718019618034660741971750436265773018937095450588647253056374004894987944432649023436938992389183753247126460040695590618271240918051557910366615181902097040114964560982665257770524130645542944613993036304129941548200980287228948072408592552204395500482365524685049586284884761276054034445454249018527249081367069008351844266381452374179631923283247048028035600664152091931124471351104211315599327945841373965207394269412072915480424772519744825614372369356536993121836289841714585243370480370914573686050476352727913019401252966419874875659934224132113932441750817496698408059653482399904225334889417136393080612144643638447050707909189023014635634408166375781528923753689082696256465526540179655509157506671483434766181739513708527763621480118493413041279497374748354944036645187494860688363997830545971325449042322052589869608054465718411893693279979879588821996038606110211249994744584000664928194890381581129472663360002040175307804031612757441667333392262503584263785094662663468442047335048848432309567333472774890762425401057200374999721720585820163188504202409417355785702286048487125794344725390005365325021988752492986362476887795788130106872360141142052778457034686396181251660845471940000789536055399213815540744424237956857111458843004576256092821793227843012757020220148382300894540181425612089719964302245054060196902462957906706891421891591574695500562184092383302239110102083340495679099503442470899580256913297412242249408205670011974278428580803620503724422921789560995255435374266503256520117021420316956008022640371412400493024020820212667843427459568952534626016926150461870098855176368381491740753544099306318300808976270359129789587995744691878476746678822636115974893557423560178392041037681577463679169081529266321400459533502986531297043766769730740729631014065178427184883611741215279050024254905802292042168597022481995585093461154201225380678462750457189112245511948265457904845833242783746092416619186441138513908954188719177776111265291968140450789156804113555204021634630179103383433316767610326101600621255959619743745092415135350122477094374910867611706479322099798901178321438508257274899718863941072919520177883292233085899422494564309074034529451995190463960486260341619667213026648172284237601250478470076758917646585515818708106925619105154644342702271242791850186539369663369722185086744921181287041432818442421044458054577489493727471930927150179073478967680184683389395758284448695100216449402283679826805453924150792702216430295140548107785036193615146651993312035613751354274171774120677753862080744793759456829642551932575926991226780608280839238874745338573015735861060555314300498880200510193658363495681161273349940457831563722257887593203920619532157650614047399662151600196124417781452151225176750375351208734253654932734887299893293603115228445189821541782799343117495603874471686508271839455593671842820918813927624239141981468316484848063131998425789862713089618549464219316734584716285597163556520882455467158108146448818409920660924924068202161090335244401276720984132179866013489342158976650192844011899462613763499913359420474966035545064316326900708926494267521038774332975491186985017909658834441157814206189419379332567553097312994797207750846121263932071909538092687483059381169739763451520477717466331744483985715320258665206191520547258962850916804949500884914884239251222073356043113555024382874921914945150552591287100875273253425827371434261544421228975208213086891085641845567004649996645764707116484982818793081529384108704713590574406147212753126735303839415543429734764109845188705833227987989955719964900169033893209037145928652984138935833431916555491842543075153731868373728227489311991632328308004975434274514066892554923695396691863779557755725705538218198222410473628647785587483189017600560333333731054431872344622403843596173342009281508786768946770780745650601446564017943474451520053400728710624483584483761939578923307633209581819480127312059443038343483204544192219114548532233099829977745679931504016028926395225118520406578980299640196866459307219737788701773799149947696100484022475547591045878495708803254828240073695328432540994895919959313884410469918741475379098920065103186537272236926718109534813375925768228823164995579282607030423722655447102913023363921062077515206048725847420931656736296299707812786655695233536038605456659859830113414048929976049476258395778055414044344170053495324347106607616912870830498539592126099271399535947327409584590600313137900431802937582130475330348762881637644016365365742453967074824068998525450349537110347112986026217428877417666245451628569357865283115298078439385947444738341449311930185484112495908623416521634358841852766379136383669396020637835075560648825977273597891474426537414234057162372041882339751771543161858155108309645040246950016587314699555088486413312073959280235181916733518456917110526928478614587498856872519752723464110283278634840591950221927428539092399615399663611609624656339334371337592757403564861156861947480282998636967611450239409647991834848011010735666162776143003528290872761144625104829479014817343146855427821067679300515439868554367257497929882627910927408940363281380763682104458149860765789488617631285072161454593955599378080526474046759419806047693024174552203301786009844461806342026857460153263390397615656401685315835813272764635492170349133663157808479029589798090209596231573713770330089098892953641272862985602791477538165475577918932027482306046136550323508067581414032688051504403522722513398495509033574435155127319594221419010107293195600255122697168385064971192036523810695670117924806595463461063549891410363167117641413374525698812369542362993009539655410665221807723194509823638817870480595270202275331910756158740261405398221845164996708739809127516650437005827673318885773263624027236207681692620491229531253499348694706192707740357457384978960617361637021529404231486757768988480573612024104632376606125969326309729501292733000044376125998312396235099604665490495396720208086979743800673760934325799013946291408979844742242644996419045940923006426032563178143291316930542826119164236174377823292830767912420311964359423507761481734335794861894538028850445129943075590161544261960043365810426360595316047834480493440561588621503099903388927753482183415549378361241158510108021285440302655201913920586849975590787451049522429425467321233697879652669663919421983808892014761925873130288753524481082925241546518129210874606030115327025978056630612334680159864136844823517372243086841188650002239244400198683537707140584431680955696628817927033378307839114776443246079900395399761984989025218965130824994226268944352478478566022790037592117380930417378584440422480383782480201526395759698155737775725769255465759339672523235518283989552670375317283481415816716217108874409569640791360212092314562278527944756120754117246075531311108095954497271937753366892563434203017916724027649642308397089866305641094893582195513513083492848988489824670818003213918304813968424528735417964836548506997445769438993188226250641341801148306029914219002689618746582314336466464466426602108661699786300972458813638464400214462842261886852775356717537909239102426268190048870548669936891236535924604187132820044497512273225838022085942234117924049691524544293952227710543552761643465612839234225087936144370702064905839726682316620444955666140113004129682754025415054685824034003445090230293196988563100944968489102331726186646303881346893774044269284198546121434487626827801997593264222934033366856467128322971813496186433893720372548136686265855108226873220024360975064247143027456502466716994212889391924079797878575253956702693346056733551898580642007501380380690523743751482378281476295553904903734704529370078540083455511709500901542492652177173906020045654551702663765256602897108349557011988498915370686920858833868021065234107711878783200402407760661127783419250963430023904395462655693423753128594897190306578602956440838004416706631899420471373897906386194203897397580743532039815986492494378673692263930891008611712266706893099505401086095007936492285899768432700785458215711525983481884768287233482287415401935121516114449506599240456980422785175428943939104490024847800336952107853335105658796235354738520546786880062452017340370633009169070988636439336000434073884329495409676788721089374019600279826648505840329933073400492689092548303260822704153935417014189281374963648831753638664046075651608002968153409423806254874782734368441381677946710159474109788346785891069092480990720641166832148247737276243813336724792133352825857993508651667047496831881875835279748629702961204475944070652270755083267651843976680488786946151462474076949609460270137717410021781666067762792620500614684841672142383542939577589882200898682294717072223531312984368775945873690927119009515114379385047807185689555842405390349413058090591697828505001667252921600176100727593571050755524098131779026674150402539262898445085852714580458291912103369099697938635786378614135423434095886545919729803080514701044768331873118317036854871722337141932874360452287041862409474124134901672485873882753337126189079349653285284014281647640024435035576153881943252210561605595789542798911585403503319870222143950281802760252385027168747255888699576716090158461499763268604964050658913521117888360883153326069861635280713340236822382015741370436760229593028409268648447414586914679105265622106498957719502469179522423422697699744518036303812386915778168364074391318639932891301526458647021313945692104367628907752079978872165601814946699025338575068613510729245488973384227313343418089520767968898262234621520146747994183664008276293759570871013195888025270519599516806013758325977343938758667655592189361830245159814476679115585532598955617704503207982233685998004052403248452336117569337005205986488177789494336754873518449792902645203936902430516645246120181616340554516385092691615336176232038803767966185260200925796523081047031431249047982319229135023458014381455856765581759306571986765895140469023036344056382367954097754314656469774220838260865115483638601985497158513640495816388646775258337521146732250628142173165267573799649853296260570861505850318626577400961603612422045384167876714091687504871597277713866968622537139646622471040495040705264202277282132009609694805249156038155208664588350231902442688527739152743774982778567391956427089830714052742269094421490289497161801006760226197332582428699950732387141806596000347982171172567416329660466494761557421303040140137355723219103225039457561050086065346706717395470938090232339675284198779414067467708402164315957871772360236600289445683516320689828781379406071811044816252771941028050477857738413474176910144003042260621951307596544064124825373093589215169131010437862834686580706884383768540857371324624001343521883680911644165324711647175120236420122993579030438353522500443728313956443293947481041714266880219285465458475984818491766228190823199707631243356612332642476939652600227491130427919587698645200527475507602227402615350191883965915350572235359382766787691154772282766968839724047194318670686791177829834319879829474592422748413639019039009453732976365841883259522443272759185132309901627262171486723015497092335800842122355601036350933339229459827361232845706534668948294392003290756559960601768036536741574784710629141196936687682121252469367937260382905129738874027408019611467788696797807365717932074207768903910091966434090390865083676072007701934844233366190079845571552117680025573217982919086679506565390597834285242465127898144884240003976308617680651584004385410164120172385123731115036349645651300316497699733432551500259682243990065552024462116139645191187552505219429972663588874347787936993419985616672540406301425536974442200159855074739871944692350126340973362832294688597539715859606420854322858778415703144939329704551258502056318117746196822935685342348841584844330469600929697975870445390408689644221707719871483519488082120250760698462582185939664662152839329235977209649441628827787703836241258151355907550462968407108941274646034950682623437135389427119756095802900061818825383453873047164553422362762428051552417598506499088517778521848573053334902016078815820544923742092863482835326076339473947943054482566933097732338257001888741250434320320106324758383568431387165277205464723249964057235574346452474547694631560965917734096701224116253809226048049060267522281672939252476110078990575939871093846814049623818871054797750665858216413354692746991932936463321970939536869750978381388119204759309299365399189429795618596585507008418997208235260537922558010122839857228833378473953448108309080440974364997210504676668964332963108895625836137406218121843703745140415563002582802102730033380081895137876246967904621991996098237122953499506977880738969527943178509278821397968691524042272599322837744305654463153737184362543170536427070087652035851144169308635441098283406254388151902476639792591961113661703936920296195740864549122069213250272890911004575102663828695142618709894762602144100864162927394132396153075030321070091788828593597841264671518753963256342815374326341060563072233755341325090640282117000155483352616020232063010563682750490647767901980809269925266184941966727932948043296029469085302615796331540151103718896405110209310276052498943559322584725289069209184287991785668186276528700430522179541041484172590240655002174408524950413525692596385353758193665813491086848190932474923417464938132609395167743904005999904186126612554301987659266292952734768104970701530024865087904555921231356664518119503302398414211559552358051107663956140161849914038513155549660206249587826916133403482226841206192216767903262782285693553307913096430684215869225511572646627796021952098652508270823297067528500672106860063693231968425069391413338199783490792170085503052756036619055783870209952936268747805243308421590384943652108403961251944460484031910749470937787257325976101485429926616852965461443183462603714320830501131872015892965507497179798695616579828375755121180705463430526231457963555746623627391083307025367867678842731404930440223610123839768737109946715335015471255635643855024521710650829618527721955157955900207120844329393910761545894101667518221931499923088599901131998865836656363352213399302129699182390869845785621478708424572819343506301114507899504996162544361468319755339543961401814891392391534889744427347396486245662098080313055886205760006427636227605253439237048493378991733028556778114428498993182806875158120508238942181303624560928427703915844312638843830392136257394374677392610374678420055178247593573893818078066280093550362380284835870433662224831159036167161589682109404452025275718314789091742372998579105787626779172251358095050574683754431994720182829105852238946378089682126038824389409187308431635190923632426637597930897534112162531927643245968666103928760772586711485487971909689605968698946258186212081339571760278991526371335155222558196729834094841993741591459915466359116291673496074297786776496223292365884400146564974698423803210017039717179848725204023597054009654350147006394578266808681886257718503764716884813829330920175415119413083177800333346334747767318017406869054180347814189798565085941443024418586774304523658858064561476761875979454088876490183624889599710021626450189165630191738790965792189062637862146658422911716145390816920162832799490893376731045024450519377153215984820350683699210242073927374174523768934909161482270370125918881512754822316296611109050443768542504944460168946770275096916107579531298542393922421265364317958833140732442551754723761759644859564982403919428172537060329551426547233456373156344112768787724208517751689312640457932661395030092262746928827204266340460631574598941954960684362346662884950520958723032645296972276257830559315113407100401531076596772603900151892807339372891240528073517068879187157312808839997324152011971221302014272938198305374824478713664376700786742226452520400617084160815323079711685750765015818233907827851945578615651803910107292064983929599229007991456689726912828346124281270144742630242337913920203826014656398617453638327815053908064625641471565482280478953608939724065218306195684363299576033745602402720818610783798247600378560097222611518429378690289878062515647705125319807522377956185713230175579438596816168465221134354189756030245513093757995519962371889896053302578788832325154178096080386613429841343663521697564922380874139680523740235874422565774870583738136279820010416560759571915320024909009161968509418246057625379629636232475909173633787532012029127298652632203776777617341614302126324199585932046140065545218412107947225832076073238648097791356135271918522860040529931548903438993296838834081223307532424990587740988127391670970431401952176524821727603486960238293415979093107985859091933938592840582185366189476896793362892695730520940658564463637961418545462546592771797095196791914445042743914268645989733661613320579780243218933963178733612517716036136667221754385464808976901537354906702575562534481626701532066052424668909011314866297775151550045975639844320245986424138705261445652981943650503731868162956803512281235261366956586659811029710596356818765353369465917873891032980412350563769895385346376604149478808897040013961416148341444439658197979635661958336739271064420854476728065731911567721788704098653647643641483287437870678757852405388733243867341564561616321382299397369149946911844244796811442591598202647672408688624481352758543765370763759234826179583060694365526346489449457994045725494424712800187311954069191804331335082861899303035145566156392075640378291966396681660127909020033483534319148413707096862141478561800572238147287949447824433411258738104687482785381783639972947847374644177426311396997690880944720553583656034844757097907212168308430798624342307708022487421425378173471950647721291252389578198599263710187714114971112893503511321283582590623143289297186615908814324441381351671482152028140206839281064336847528506565279168704710400761827104245019490452964917674822631618871103582624434836433705508983732259995992594822832675048076480250339408209400620105686188472504035811461504077478833748623869964567211199030269064536306471470271726725103104463914888378293303218094101412566951746128898580302795925246936862994364930752464309620567455196393775289662376366183808361913794720526826512884151731379454566906079332328546140124748609358408630366155739304982030776371796720032243414797954896984017453588678806149301877416717722203086947016129780228686858670856090759417060067570705945736506776824811990622200706355576373362554053992226084456700844781032128434467436015248372469604744833142830010872982979436569727428833679711701536435067547083560248137122814281370027203666303097030260676356049660994809073412481369236342564612163484722343183668443027669931856919308630850344989328317422863179416129237144544561233398269280905654780541344086848499392221574273551543539313427484235875356678221331549747739364290539065856973516782610794208454141781427813089742454941075150889735239992014471310940662011263765687546405013727496831797122182689001109789036292534304613337143703358908442075999135324705834160461983125648289592604707418645037855081261139170414310240828911832944709870228689710686938666433990866079300194466079528285430793607295477300237317912995372020091315064395785392700284483500325388504295695935732886191409536514142684240400772877057457957841855662472739351409490350684482512935253900304703616752152881719735834992540226706176496766340630437777356473530724915051532008287472791365324715713072862137433159326900811212582886230658324004546775042234436727806114704704529124287340591113242905527958206915872226263885976548444492603495101309451447431908699314516773800968629321762309489739674405636031669101692506706364048025415267587769243641435452057533606001703491305379087588607987945262507080169753086909784707449389342629646400815349906187856644640251884071405924420180012579858220867958788371378915409790939420532668405938747606759926996673665349114807971718193848052337686845358788942985656194517099830855441189059342344186072443037300778019322919799241456823700233599679642467250918843973944575867181648437382543906624547077876105567722933117215698841926195641620040522155322172885137783470408550554099183480558665937468957935189755260319971243525773524822358239497094675054492667339369562367153853839258459389062525308411286627315335447609731184126651770733934876889488286580958753350544604170753625618909679497214690855244725196011286677230561741259406482029326579142117566342068438702017730033491349455071631066870101732408283521984761160982568426750181645094477492613421777281671558549057072202811473008354073033742376767880800076358212806027594351550293633719779080784707050345926151804614887824617919364768613751679751757393397448327600976297244035965041160662146655493108284840504650893028289885283843576320292272722341630642491470556476916951816017731291980033156921322619300842428540664713703552547471882521110081572634562475151526411529422537786980148625718947750243261830521328415139480234383323563834397733860377703736381216852214386438704595245676315110713213680951144877815070835687986844496564517659580699804141945774005356984471077451931637102955136856302768271589479960783083170087484520088127651075341484611001557424764810130347215348725251578681754233397902077173761070704259484952496301786440192683077753587862833921498567409899597062817557825261813159698359740626695398524350558357224679518910594531436889695124397584321324243780595522779059114556194366309605784748505969571301800150652263201979795017556534773334876884137769039471657125710924293104220681915551975968257953950218548387931914448785273935057314895786811183270842892593127434672962960093395007769733299583910803441594084294755084487966495482372940091228166154929175942514527042419692165678489767793303799323803247476170096980640651709027094623626320011917227857139244616198229371135800473720541744778468972583402299473943071527786678645130356395176675243446934570967762091245953174655309401128818575254515363245019676945838258073236110096079870134806116370079195106975032175410664448777539872720321659202956668749922888185003474971188228256215500980160294028975042749702298121322836181516746138887270520801683116135285094461444173490254017727435311296187932209373362638520544742680733881224918410871649990535779008568912170433400425878121959685402510973639975880119722136186857186316201186311833641104440728191794468326952643046564809188566319677412955582938243630226856393849155292292998639306089963380270328889481141933646508595023349014819441663428180026134129517211052606537292105769762464074234187739364864414907845148153802519513557767300091287424299622079918969949977788232105387748385507064227195776062985457788928389183745524297079122248078452051768867971227074050709868811463342888131610797874108309356829237397560891358778824683702392831463402483162767251752296563552319818674363312565804523733482493700085139549942863671737712010162571924220264308633626779852466945077631645661898132637519555476848856795657871707745673540948210179039495115919521938795397884921382118106208664903096406306970754458661199068155788516331654277620810685955157887032075953869372182775567498924700076721537813237308368332129554452654764224092852815744293237329121442163189552894924665119011888808048639638169922267415302649535451982290241112907184532743595926145479207126996210081003567385848945021749350940566934355239029312476908855346216192512514628730257891137977077210962640554350509918012042527141128130346837363566964288478988055259460722963130608630811413154094377296868518836736791874121243875384691820931473073544995606482790920013679225006436521141393847019407872695750944939420560652371696778157008500944650676829561444327194161668057873271121876103834985520404289899115969223918609574077331430803981586609735931256972701561257000116350439945329415480020988311054676064207611838800635524596330059993249553472606310224404734461639159401249133013179633902584732345942298847641834675234735710566873222611740959597368128403976368528656007491916587525883449589132170232531065154123316759936499268670794359529084639492277944777028961920019007338192518416851542568480236054751850718277007666717774645527066408551456874538094148821389486958982688039166588933936742716884856419805283051517063603070163467151733212456885363169662168453035330480473750017730075866703229367250899350427703228444629229387972838512701551360341466031596803615852955289550985945431467036290593206331982162690418795214121384476998810937905894021849551860342457493215040988001040005740107300548252523664087447034392165552736845387318034448968167342093077204580466266734158057664361153412301701300396300713429206525232514639447129763746693229511169712418194443472006185515700053668344971885057752984246324618121116540975070394853438681241119754447454524100789194216845758741712025605196547513964413981863106328318540786961548507799388489371944718149797756345244163208913975546277757819737929365184542511999000850650908859984936106319890153075610279276123460295112478696720649603889299109887919563464890217239546655335305013489072263546488903928279074008687186703782853221991622889534331963681703382166851826352983208571883110168703164255905720814954727147829491956652349191607556202891040939695223614597001588021088497909535950234640669537996387209884332231943139102841367477750349463065548914658897085531911370783336772191578684498912044701156660477893346268165109798013960110497366332491954410778375863826086175757300017453573523573267839150455871268986667276594980456879130201403603246772467309610897036840844855601476622441793809973352034785538358971733605985135952792078098102341329902335567971196858228476564088505897103424932828532817751983175136536444376768456259429313855094374896209301155595679510126896492761809207044977092899965368636319613539000268592913863428095048021431494264658817764502879007023602770094593245360259899141428822448728021888186542762561440782030098050750719586571421424527210743136921629860806536007199643631685028991315232185300266223602436144471149939361363709744221174710504654857102159632497327323695140557267546601980092552552984742293212556062282508441093068456013493941016757592808368267599269148837549151167092496760886487581445753341658479782252298740551391855897474816580504367993542481038362182806135594174915852311920573377294565801071775786196486355921291515727989433976873241668080420876273113292634668901263125320550355121135375058541650098114680710401198886820890643418544139442671356487274948357787936964912417174253522561027208064731991354975813137026191664611332810324548562300300716637597737440163037262922659596174110582138811468540658250189248465445663590170254517951908665077431202977240234444603424250579179397370303699992078268009182830033784616160517722756413286107538874824465226615239439704759760628957482823844310296898442264573881181624057392262212860216950823658765788391789463820124182208752791156092836865457345690747979261722291790592515502155769433878318783672629300786471115726089247858772908637697456341729796209765682431591187087288489202793735013198554799350293760767945350654874891845770792722325773385053738162158386178305400439671741609554859159913834652641668898470532843593777963212225307480779270351827703160592486226416105897182150836259305918607573384955508025798816142045694949396223401982277789831746289653181230929340881402959340575352653327054355625806794475104319253484585821296559142938554614956726368433543182700926684210709063197508924466383141642544300341714157298839347549871988734379917924097362306852684544949543238688525593155704264848014889804027432203022692625445258914793335452745672575693421243162028660473775610134713293176928723079486039214308322022401982289686501617134186267507619137290826312086257493535173915153779696435606630534747077439824173504421219778897245710400462229144196254766846544457996044187273720522122782547944037273844277673613436115406769929596682163738058876715896938324975240850079763949343163597681169880475589880827572050805798748643143714248173399897002491926496125116885521178897719992650846802177526903944991623409482576828036464945862650744190167250817669709059463193632637274824381465781138632937076737797309916895816271674523695697727388479874291173366295008527739355276664910200669758133852442666064106924194705974151254174522352246174579699306868707209818676013384380324144012422422731577298367348424130093404784584932850942988924672069695643354226764501773311065997578593813122766791629385014747777874387341741599740074057994465861970903750791447084401912367530517777912231624598344833342528153337333089715376911697282384982658262679806894560286587082861591608178998169768426490962334692742150005107547511313594593171571646768914394994838391602736087315782029655817640998598827304145164880836841073258473268475513873627661189488381346201835066594953334356865077716213118918507217496406923290452779083271300980119425781895200027796374570329919561756620709225729292396818975832183560933203749855556669150426947318657657116776877593159990360970596929977137677043087825661379204837513609535545618975944047622232654203630895080142298490440705972967135525524085689569142584773312352895483025871934207769895700740772627640636867923989408046843749026119385784193575808753981457643287523295086362064581213703431464684625095122009747422745775009123766285560864723534346663964761920637022450956295855309397691660802895202230508796901102893023418783122734946564774720807755166705509996282537902115695592194233584904153723797830824607932478202921880735719769160787835142880758013587475709746018586218268062568951383615341624592399609611925221169623393100696683649479380854714843999287373394482154102991956479442257446012303703332882406847404014837456372344571364504365840940796972786296888576554809244870424019621413711134731261884171166271176125903310155484630563000977569662002363638858382829886469996182190156585115501549264728839508283570732047472998364597396225020213624721638253451950414948308888559753281472075512249563915557360180070557234273881140193244261292398705852081479789504907713669156300177410196753851249566971217483847950730551081188290959812861069853885804085418006764629206778982013576730011776152643094778781645417654567129066186015731620363346351602573843584050816937991027842643341493656311248043680793160223142651096422391813302916173521509692916575161179801762859595551209902094858214468789435334135377515336604271525743705077285336436855959816424481157104990892780666778561664424311884221619598366067312974865178237314131242538523674003389180808340358809663586287804002638310621303377682342974173181265335957089827910323711384989056233205219445533908817151986170823107082132469230991366659547028749842266422379251398890376698170315897144769033962696362794666202652729022645756615768346222722736567893027177833094088758941793196829916589399267357813582732124891560619241808894251839114502976171583687548346850012170997645255247645985949338091190886976410712564631711079387027207984766257185395844306393527073617989892118848602257554804540983844933528053093974686614556335651696547168328238643994623481521866392722874777725713275066355684785255951820396723595605438237499725597572412509655589740675038815279205519065377093925235677795059607424606259917240183488553295274538081331092188124088746795278284866847038089709248445153679753033946963030482747830295592393695328215819598282496185217763485162898760673798527807643750571908759008201675596516289711420169721131560197776365628564901572120635312453274884657168052824156889098313030295004424519343291152440073435168423240590859329812130779083396494924747284601241253705479988586779585524543772178647763553224502042048037584797259835749744278570046867878471412357102394761489585061982018696007099833752140373379025109844196774861441181405129844807640273945808221425816170422287793271747198644496772847185411377665433617851578886583389718823775943872004121964694684681611169811534228442519631432434217663940926495292550595749380920087446064749371537826733728062761078336037451478875707703335865681307814594826300786415603812211444132089650998136020621471002778568978405660539139523992530234832319248710471538357704643392175145844577092959513050319718030129026610274037632925680203302910114043400518045965294901069399851000327548998847828511174501669301934055861743243422333143190423336479650288731660445912145341972639607768572182003328615746930734839668220157519820262672595993511806163821896760864340939574123879953508613012798781161418521630914924842797305973219686656759895833059075295541750471767024142888249577724432291520289528298833440057664663083676617233209541841560572198581188393894410456029918952280179293837180269891934198972018214093995319461269031101192505184282985493991317579413773690218154781097704551182159774531412445734797748469770861794187404469455395330602705862862661628705446087661047666924628706565379703753410836990681508289981023389678756671102146302498899707145563391820617029101710350928533201245571803658946659837417002238648870916143361923067131169720770273624378604792251499701272217762416006098831673699251492101932526010958200989537865840878848385517853671665385479332322163046775586356372116061138890363847901105028153760712154584149727992886355769076990237257641024287971422843693414287823072791693467925324748006923350288375588836261055783518826109905266967615479866915499642286050242330375874956947427099249298211014689884154582840057716682116299714511678519133815262405508070278320839412922721271362750277581324828768706341210128408098579609912305535600376115668631951441961405551783005670823210345442833604027975768312654623676532581322025686973532175437784811745046500527085533254159119046416499007611683809085050500145770458681216121409486281611041404538674605515246502704054950398381457565772519919501051254255435923308682880297797427250544911609709221778629920894767830142020920964775369017460396591345906507992980756973653861177390963953414126543122021183849047560068350046606310064666144521336739311631002679498557138815018360519174992664660708010124603490751507676003623761459737276956716860334352722657079884077245739699356571264633554711697539447542452345806562648327209809555540567829496785801560974931746135806022427710078602510986748286181028891034825513186386963386357891587945639697992840326182446919739709949185748884053311564061570818050422166535171881224617281967353124128396354913124331479213747570807222113937974362926974565353929827446089239041984035390020626160434032816283273628145460067044222149748424013642044395530232116798756540467754030178249756144670874891829856205845144122718094518003197108930290911035295004347614884725362390431077626858889365087575151099458840760223480504671636148544171903894509788466957884570947651728779805606136217721024907698491445199835838870777626605457224346096941260286809988288736490636789809736490043881908665010607788993663549231737981975868347531381580210134507250176806015714180701678072045239741134032561110066356382995405378774789296950450328288533868876953951796793620588517287208408910002058196274249829041958597975531054786122289881753467593550358707791565945706046978163950050026160322771515499700106608627610117558495326005990858416010063783923942547520870350553330473670304644497959987678206685388197272633672975306226545437376304428423609770070945639957436246872188848360189614589229607335985477805090231031403823831076709935718467198625554684345520424995572212693668315550808409628235007043319228871291857708690350705235914177474606379881519970518128084271654113083050872473311501262762620662658557079795546879445986123044992228701942720994117755168767975736035052555796925231850817918269652276883573891023235541984511559305809233346809140596305036256639487060727202691271059835806721094526155281811392518448199470421326114330565778091872767820629521625882165602566261868247550969273534583028064395100097693150586756449273367086626376057272792805970953042577991132459101876044127496920690607062160689446852886892867043513266087621448270771495484792008513314603376721490446921838035026277895708524158056070048240621997035912193709434163813882841422224687668311470621337823367355739788509559940825290096541129113595303413109568630608476511540268358696758018261414843056280121962109944738624316667055844938252725375994687562727891264244024868131583227526020688092081661992526718811652811320442207053458888290045957390798947147835347744600206201130995944119912823385276537804257351269535078857616922066032624394766930692495710114828252401992918134596542374961461787669489850425031279116815797081531278595935596598103742023618809948967719222600209342507979774398086979621122203342382519455336435699286175356140063312291527656983121858860084633464513210824416620028857380583242701378842696524232875157802333979421179112876530390417237032458524077876834483045686156726705978593029963716255344355674184335254923720403575486594684543797095892747465622332788432652273988103630292652091027439173492573683534625331126917228449198581624044727231322488833027776188402046490993007121347661764364287551338055098747767443135993023831899245760194639936734487892835283430628475054167621008557567774794392927635914745358242368908381016622540803724084065175936226769618072318434731497104756451553196986519205753689364539807242878479640283566638036051351444414875032356099717110152046518223822225918522116782450884848058264944354962553473039919850873479471633052747360256492968411728297478376048939929199946660254129139533473293064052291611168566392634018652934965077828918595893203538205096367751842448768965389339155332582587144288888587889330113212292000716026572137880487452832216154645589289951554703431074525046590767490870492869729427911609767018412677563446280678442344208825817080447658929854473424750324223123396198302278983554933546224492102606438465662940489614636558888485823037464820240140230987806069168332769661259566548418748119901036018470862766664123948557598180883904946775395103771368224375606337945628805284531325600275980831445915112204271657250690880094728466668706614210187312818217114234358493717832585486773819533162677277636582609764901552540613946003187234626725552343417162359793865243465186651120913829472594591855680322534069151039333755579348638217740858618306016900533074249962399628132685099614434647178451898162875601111320787330657862162707811569429428075030412341570410510845909201310695208178502929788731991246172147306302194884111826753863037171422450929468608900412312344986936946979588940953121384955559074522084199415403678574456989182407291744540305239021790053463983223624871550924030267683974196651480529251417610838710384556529579507930678130186807364679370022045291733184883965093054701829850688291167619192097500373411538059784944635497094171881467474537268715252359035812814408894082921188480466906079676355048581158875465410278623864722716670365336436754541688748486957507136006206166876301102507246110300682613287701158438519814962976683694119042134498247923552423386586971116304303285292254132367837863934865808478575700109640952016283345958018531238174321593556946933129372301101319205632875478999171790133612229118533316169118539597006792942290023824610443856603433166279905342521662753343519099390485364020507402617799076811494346325432081936268340040032658549542160710894861982797848030849130850236864681800942879727092632570041173217629667486352605533365089843378783486173364737532077451470278779606519084227097947100505481431171457000901963746808787177226597250337326908858424786764739139915057351575723493627099532032382689478004114001353293835125077518922680045588644864986106361402945697956263427460730244730218936737188819329454220893070211920226223681025337031890220849989444924122456162104414826996512249109381742753994907380690617847045268544278293761076398857063816498844118812946390134620079623244121578328998039018803951542836678356519161403265295426099741255933487289917876648984060031293332844599632022006899672186617276483463123911994229605104645261320035588511908483946543341912521072922986841914322322353331893873167545696627916168016058043470597747530767414028123363271140536790974005429993081581218668986529491512934222082502722986583980607457714684117872125908261606137495625011303307314571738457520941869217119092586306178478254965943539580580017854331702849401050463233995885252698425798362551518841290557337951837963739415466166906172471666831489902318042597631074097771518418787272716161258970504606623515674331277688025674302225957239921657752210502582680730746822020449834173447156080671463414484328826018438931093844574164745230144525450796719956573810427701214757690915257468093297226503128294673531727629614113123617484308243484778839218276402243900236297214105370495758542594175872113205523472876357905252640042967004835405131708718435443936439185362125488483548932514238238033377037478629444600594324340263348099613638791241495949437685517969591722059356400060446368689561977330633294607896360457438244359621832339768165516399239499200394778781024157723259742795315296873592962311732702008357765247048581757486071915651657087513994711946308901408887976387793974892894881084070990258330826968280765171355039798997321312326836066999677496277323911509327564503963002919861003742912849204934544594191292958686620068979858179080253795284593660137107576667787634529127994529838081328233492249476624551025446529426657916986133776373586753107524268186186516707926493558899866942300128754554077941867668759404433824238129928133562091358626245607159594983761734002832379876111753520845408393835532976583086285223902700244958344630857045388955749102181410661543762828033826167689680346692932822657541068611216440458054484820153556042782687390259549723181083147738122661977940288428346897752106823724929885503692636774711376170544549232076351057990772831769483858676122532950113565875399444479403969755560937878446497494173010663996711999972129183333722070960576355767883010299738036481741204324022760527223841642426694573706413773848812273369188920465275279787971469956540632532548180163460846525543180041183157146058788446675336522485847827272665502170243757718017534382046138909593565116444229676057429332428796081367547616201106519431936926148247425735122361818614767471346692732848108771292856997285135248636435341405127171507634535034827345696609418224970041601925740512562539636848907043429586121383640221234553415137257059320090556236521152847952483056941496507908520586733006204092577840143821624633978080669929147096505147246621204405788582215016344335509057943338472814135445477933857801915512906240807925351229265918032884933459270303377595294240342423268014086549579788435896296764149782943840517416702354484845811108368793053323620993517173695715784778588045936329924989463950552352498147650536743996104851396561662791664106188436731834295975278433265970014865765393356853717251309402388781947466298170266138834897870820031690080443467300653474150300564707545466324381153588800664980029514026519622325189120172642910574870457230517204424551827354417491404409046376338710635024110929894499667640741855978080073651228196102546879004948409989465872551295613364313000127279166528600317768287123842258814590352162276077889523473824467420365485164810021212519716467925020367074142266233658976777046953132047371904926627941673922367301868669903663433650835136194245331426456503304169176618081679756940157931434852348092847626111552437241744181942212642483587023931163538552262930183705139953458119605300984373555245347094192993891346092461093309198927843130010858066835782958989170943975830409241452747367648229408141269969937592729670571194727247816639454915787004372455589046663688670157273506107236779806647321325445293329298746714842797873368621909123483651294009325377376088742778641241869640387293963399993523994986082785343237139883683443461771222833534618035589303472455816911895580054100724485049511325541340653402298841129473121596431061669114973597884104117733748595516913095115568865143361388892571808504447473177965706633197166248308109687512792707582241381775843099599053867070870618091278661087647695474160170107532479598065929955425289617734761579246044121054114721383449723773311171208128027092928941405704903793002884424660595725236080530202290488374336917475875868308740574461749342418293656528715139520175387209434523666732031559033205294303108798563643469794584231129418327601970544817629878282324326048084950146970572121802504943318082816210313581202130427225972319492171745554636616214980477910114025934442588162311770658983530057495961646436819873038312251652740290100938029081525178599593050769486886706674740909177451200716884398153112610054398974167152746256941406426618450664400267776064795733866065440831978741492280034594530454703128160785249992244319921363616811740118649741918298957696766937693510289059917459595058556785936880087174900691964397657403440763081302575915133028987430965244026291119539341582088042485736713967716104158100967234332976004879633857291134829099230051946477032436988721311014154108778087247000829798843692148307836999366943806982767382912464967175928495427506728722660061472958541139777774133558516950757067401450603728942787117859451299377296838914818861804485322328924536043339414290886296861854450366117100222637821295265277048555893602535353544113929108072997039753118894822687105918016696522637023937093479894368402493196090499858221609695813446412175043168159290730595716967861405990272205145836884478830732811177648599011030643057560093954079083872590543561346872633568166038743299899921930268605264886642161795946055183185437356128135127883200635755182192102316252259337923388080618693244709034515911641854532023279927502614998848184503329230617241816972993805987369229227645617516111595086796238842818776274910417659152093405156996345870415523920225726602409877805624983629699588327412666871598043247487243809647691978360596718408853402805752136642097394551419800813245824167949604248327728468299317493498165158259195802234848121474287720537312727733280239043155997529399107052624185093772255779099858591173542099827079494622638114166156093401580807960025119115128158856369811378585177680467918202687146439379825508394004579802247691102908168568422451165377877891345006733831482746047372650502881203925665449395119737169256486517557240577051661821017586036985480719990963785942410773630372075361264377647346786156908569425588674855482042381200635124449949752486458173785870936905980953273681182716291232719131004850524222506411345585940528003822299031497243873653042284646802210132954707915547073143171058984154170288991967515992754919185592441088232501638873298932560338211256796357420519757275980501834991640512457752186506078687529295066720414068990229625862862592279746996137975494024033163979173513154496338614083330010848736585286825588379314353608451582771771514640001877584349530779927475173748257921461205557559567027050149774168872821775150703591395868008211722323694962403014563262262798926156714683996678718529315826103735216727622016309592575793059796619457416060341777471003376724844699073235423775254942162606288539892086237180394632443531980275215481455273673046942038469653935802142248483694773636857131845250233551798368402205500408750409212881557772042349173221415457909999653150328409207723227925126091785079437703646139664263242076287495866412024554020182319803064859563481880630273625007352495359920865542367175470936370147618825001393376280295484960697939652807362284321776878731940512740080641549168465829791447718790861326665248390131229029505808344821566732844009287861608866438313655470705447242213436050654993426929119138001540735844219903537958449694287722499044095224667987928398862064278028155801554057389325943949564101299871004322061760845592929355462396123546861451021765895161577551921860883301327111600144659199705525870257036617532857625801513413712442471135036025237543593599828063789227987640027784613117738822201888540511265725689722575510473443413308270079332156490743340014073919008030269894586027841622277684292576031739216912118199767656818456931911388183399648475299138123851241284315957465372472856769717299763669104615059985626265938130251590610946349647024044102330426075684099009941705048247876996713705532911274290879820514790654365451716363098176863479600114544990160262123410593866439842756110611577788064114302393526014671530963602973587104383640648701110355930629049052764709244838013486315061408384474571915608966876027162055171581770495345580802544819979715467363679230672078162021828069805383452345892987920663549548401730832883373057066410868045276532506536333862690174089344339320482720743976710348931407389004652934657841003989117132356668933755887338569604126532908108386211578778877650744709925337421174494767313944330460121300513121481336772121410686847201187459037681125787504078521912372319248642110251269875421096877929994995964957054716483649892741728285308303081110766569192049951355541149655586153388115654217353308839063033371420801449606655732230876125592295166918971918075955780214509814621900542270566062723247254587137576779583771470927358394013626197860478619217645983004833910783107507392494743927648900855023042936978821585429818870234798445655577156440197850580725853901143706196542255858443140108279725055714188744127694234999293700005584424152463978853523021857506194356492828424563728271404265990184968849274338769878745546675987668361698806119609552338531857204526483310261136130016499602059291919465425323842753854194955013233000394125046081532250340724223263591398802276053713705179134812669224366420433731710371299226061525192079459768992245629445619492074784837105546065278363070340682542879311904502362294297574088301429669103887742198820251145626992069606371478709761323982384443824987309970332939814860687831709008504697497070479000078669918365964191951966615514058422448617528640079073330009231848407247953053071316936974672093685433100442572315986974554140832581499532944864998997275330769436015801076951638936204492851719529150943965050541320233930556882183505782027661155618549795913730683596268680522394665508948207815512396016177289361772534009608871272740875288761297234209859441969597814161258602230072910062978171949692036312444672086572536858804065228066633002625458248583621346511452496249678501656336776122040460658993738985838456656555910093313502830606002415600221368262805872481935126672105215664041548615759924550677737457232657619166530282013151127741823467745357057712817311056200551936480895727140279797518877890855628296989870205107454349397182585522617329998610501159071880678906862590179172346440228724121654164663010330701870045725930163821868856985302547301210938968672361916015305331963566537434698378986272322186853571720073633721606246749705898159940370763038097161324281888961689263391183682282841951646915505663496706599158272379216414719443147951991938494724207069072063358053817715771012875047095108828946520473873964367652206552514830343873967480636652812987229581941520546397215285147044144603513719181432853648584188576334440821116769665075203820291486132788413848047695893934366268346892377624075875483483122926513440681421545207046087627965164737708124759367169741057239964678668983113391585540962876323682159995517063829125663067863764636760432829745899067701881671406015159198165412810717984226312462417001510616479826697989268342656768496725297588017588533472291933786578114297981806206565582986209667129850420888949877079401039103259259591451416637711183570546417890250114070072825309982014291585870603819632782488337516502967195023949516745572952281685318083326039876461136012309463183708426683927974601696110333341933885083629264792837046664502638854097214105915373739121632664479165141081513751570588148992001720494064291404610616903307256185387800800032172423694125232202587602224417909787566599534024063857772741675893659094753456636580005566636798168375563487974267116401565523585194446296822323577684245408603158547088600513054961257169899516675378471752878505374779190630586017832029320904429947932691098420591838205849981647560265028500798823298722711228288315220701576758768457182360762677704327578559075045060809827426181431918397370761403375715208890857818016974936695467650610041734835373654032335565850198929530920347000586189391749701253554189199042676809084186492793942426197639076871973310865852563669075053087062423548414605460850953138122463007560035039610763371054372605877166064043314067570575992683869067019669991896983766625737369320217277727499660485902171255905865365894794813581092362098522729575556170082784231894379282356566525934703583269483698084195413746500278093535166885209893639838445100573938479576164643607230979035442494556612142403221391715931513785962607906796559799170582182414327429540971548159735304569087826865797589394468184548426979436907588893269794956233122950815222716101893193194103603833141812432647637595478047017054051109077679432690123660000809171476773499025192019735438113053659887191194470410584918495263532873151979108315650202747003058055889786702540878159435236713577878630549594636429634164683543791307868831036410323980746933239761265499112642491267617513464537552651894464461337478819853414036532832537827260766192540992374010061256715573174410696232349286137738506576207272940638363144954844230482793157039127182533241749778169795196656981071462859852549180731802442391868739907541398382217494155106248653457849655187605467285206798863853532497995302601271122842977479413312987943351296413131737997939590860697603093785767059767541593575595252750249183132896185486026016161892778956430977874932578912303275548907858473512300771419131453837036230425656006230714287688012135159338884602929075780363432321714051107759280895419480242848109083359971936648969442057083813125213122717946556252737087306251198484364709271901389850294882854388423761132287474671227995581076788390277797176561490738379354629573211882569885770179368499810968682741206190578217655294170345340899668194912746475306881039192068859564318494595252580702272285530768641523880182600355054121272784957430758488131531476016700142453083841654170714137019883247068913594881792629074238698853649793728630547571258747394386692615140787739979283613592020883153773967333287827954561577571137103268727685373776932645388795115364731418268376242028700349879695442659216155246127226303584920746295261839073835019859512129664192269693269237252418229030086323697864566699281455354568671011635066583973935191299399467058810286952143996215082019709082334473147634858828951558175161198079145490236684536726276981429572846903836027983312791728888367616328768974184153114904858888498851954969644890768306283857223966435814007704074114836967428046354067825433984626863580110808563308465340223936905232728764386530725073319428120493652286435918476403311782779861455872128956674556502882348028285839803519563737972445940017274698774476118428745092270655181555863892694233509093849271387467011128432777886225426709511078068208406549510657033230653706284343656879944520472702390077733365122914169455062751350462376883798807055525745513025161329427629646480729121009600936126261246601040617609047311002776947029477762883459568246737743273664355789958845714859347239814362732546786756701104163162152533193162331755835935571051705366165148324000824514381340369869286390530667586707515680608242401523670939029607689739783437682991474892235963125037353951673016692226789516611756858613542240968847876891145973206622731848089637859615414635270210694193131407933045953589811142179172867150860694907231623857835868318842542053726505407411421689505005114708925509602458784810860813562490461660322846279891293157827836216085977827399966903387392147108986441386449673323052529972402931247802302709205027737437607692554889681856550752090556257154426895508330681152526400680918283560493594163637170961225862245898730943923009097671524626501222220166597305768462994569626792683437403461080433528529086240016609911640231287716195107562562919118313237434142709233459211879305643160139988677711682716492117862788776391430131213717253291853547712750973963923155290121499776005983495908866991293746296882507207845667279726292797874826222097140435431602647725181482820886292007920229126045594180572241718875043368474867429357024937811298374176087412604712797367759685665012219961628647461700929964511966124261057461027775399459209952851660932386651047037669790311432053228315211976622638548372762892466477912608913997129209567967376476338760920206755056510605619807586215158236902280428952485415694365445907664107467844081529082959359793653090677989854843872951364292675596134412717510262340738815630845297471549457234206030290616382280995799832818296660612303996660292279808029634944753476881507464414363395262557351964109106471096262983728439262387153424136418816451258111256791198469936952950217312757392570786976969733784850198128070196677859399084644873045091290035690244429984290832773648474672238435873327632474622211437638163067618064497181849403105311021996148481326698265088458819595279177639185852228395779509807293254829578270908130186420541751354340100397598708056266058965556014631208287428604099448598362341846973039079062435236891311763741795405776824361919878076921420185180354608709131358484678676010591385884364005669518001640749792117364555686416828914873950399402568846557536090528804262965813218355987233762448051394762046003054524392410707101129342704299838323802954982817458633974854556776283713462523490372707096240105280849686622037048382906130040015209218277442822916601265085778384950872551175466486065566017491813742299869821589682401463618942803245072664872692645116824022307074494365178637260511329423281665000761759740624400252633505668352771221818426394825414791054379287028347406946887309657327306914413270488765077357783684918136876724967406095569481533645728730945176936556847791792703447458359410128754567884115062135940298273396843619935268600022798717421479031987956843489223322817986611846084967587749222082967972289747451154335522308616958487286214737083877125851558422614508226149824896341766234324876882869537389949938283078514215786049612943689061322629488369220070934329750451763389466422947749740177877660840103613787286238294635256609681863030428120815736434904333278713357121579189679674672143477337952907867144418809813265125226911609217205454234241374844762487370245660099172562443661945658594378458652654509255947245700298281514301513428014036250708766338817393778296145299399464137015540584446459755002480421029625830718881664271955930604371879281011161934797158896188322321334781033095509516162529136879713241118930444439185184427186184576605616244196418483398472200622064065910062080967097389274573154847488199507677724176973905086236507231859431116742923436782322055012676621690062353605534518875579545980861207957744299447616136483890305607383961326065884086429451723679969117219560610892400601801464646422098754823670805665708681484346647420527072963311263494220901804421334760101985617083708605458016021962164950707242911457494599482463167928924208620300258452366078362044539427136305138768899295813268278799201830865111538793365404339238094844493507810848718324083849498425043099166836220721532388059886818036464674536178617664365618008777583320717055075712835923741530516711364312891314505114011953882862633894988816978271883192149545569730528627834298600982964441342261161974810312716327185073853333818118340861801797718627082413859942359881377820561210918110123300038508477956261169613603546261585950899863649289825339210386569314690467277692124483462961435922402560310802397593914609702913685971369516328456723425750170863991751308021600413878315688712339413887215094412469316662536579031041158578666967315373086914932070877676852658516768064822963322145967014762463525561983610643686870708707547010661314694904402514283530055903915678973949186930271143267862280662338296587296631123460754928216098938279520441148171834786520851185799143901700842121977893457275929152673298937091366677488394819839383255356019716671755719156547057480250835474991321065513824455414105142569566689236659496040461871846654780190862933018879601669714572617501554636079018687529506623519965025545164346222682864471752548304817320908300557687590285373335275677740610783547163672668151789960306556340873156550406739912355102945159299818837413503018187643317010919353105657353397898212834252924563235937655985092668176314220461156028739960788125698916983088411929094857387232348330582649489280311868272784864651398288254701248362946960392395494985117004292894339928361498739363973403099143677505313081806876852789859674826625318147194074655251688679163437931100193558799464149169559373505359972936765560527370524762095730204678893576400464919777492646456778744161578017689456165966295425663570752923110691120253576574887409482663352070871507894679407732963518515279049359621311251946471353887000408335688860690441949492879891819960303382847267363707138411048434808672251677777399057833377854603453022505383344484560956098653675923219048130723429455807935497754839190039899910857868364308910562033292456976496855890546529679672754307858392476548422583950914430941807411730843924390358088007680958209599630254366942068840644747472488068930097207870598198244083095535111617704242733681545567474323486681811237084805745792378448369593840048867102242992025123851830173276822891171217731392672647525656232485960957049107933655047618188355726390166921774578653061176395188815317320309708955716124620778062490221252707698802577543053593934120591183236395463132228040142150920333990027269864915577741591998845244097960379525027776585311864280474379993235957214611729558511693079547491039758094139533865698380300493849453136721764307299285325880071037427187689377985175228136656980768528731551509838279197613819390105465514692233433718625468720643252689135916313182993906815802376045678489854858143446821901641573898206210698386230956818923730633047884703153771653733479825776893465904194385405538715708420187275401387759068060862076424882808401977902407115101551193020487709277427688023303395617329171573176288935959673161024360350959319011007507568463947568551021311084690816346793711295255067071092784388813800611182462844266253127506899971149210613254503100592644557396663557444583091891603211636623293209206095281117684512839959569899759132011188377970019608797472425968414339501692979831278392305353622885284443550255399478042315857635703726836132766796877978509438971977603148589136905591747572784548637204862227193256085793166862946466976073820729614152954703546122494810697904599408347149227911988846629274273899035985498977562283461009121884540439581086918473366851324075366049188845076258606208405580064164030789962880489892167554929890045683664397049138150767374363195431261440103961864183298163753050727004736072679478032453225087795754320426929501499945689252772908684027795656640936593762275178595206600173789325111306875437715868232339558646807077087419876276370479170365503029319497039781408929512694225566966961415028908119896636570709733779160547516838194917493451151506599694714097588186493606404838326134700797754813315235050813496946135669551867301856752422242711415299233320235198412546191334336054522252510807437744890494479456792050067033032968616027942523143018813358627809252517822431738462493472384065063265988371969782659446017648982556502954779882515059905665927457676344321693792066795699340916498785524742120735322436724030781580046199104043504317089681615544647125907766734826426394872164106342783491062997381952119986776370273528613688949166734745645475580991161484350874212336073073927436412633996831109150626821120220332417718160838047143698900895456549400578422739702718429973779759370230807211680772379515131755544450599330041593180350704340486671035041940269161321054677034611046531608357273221366945652386524037317679447155467947545665351833097132444925404480561743417122963542570346946088691274442686981923804119020385417975357578769714673498060300072894877824400357229980473897472522372124758199739312382547298289594666597958821157083696295118722045934515357335179287278203021948643906214292686740485254037202241286280996941346438238965552589023610056009034637015668239603516753356362580525412690873823591206872025257184988649155204289699113600349561421913775325384740479082624559145343418607383083246049364874019607886576161115545861221088502262931247986478190759684767467582488031673817863505961946390540983581548156120818832762478267801237002686799354226434458468933220630510231558916960267914876086644868178852864835009820538776241688185215636784228524322433965144461776351802447314276278348327562357067785166690829552272638963523221886271378572646483137561525673538258054216362586436013745118958923569500654804080515071075326297522051749356758736666105797259481971593776674858436498146339787333491411252511097751177380336640154805546837342188308461180788541717851560713417938082440421741912612769569358575148864201487665421579826428091520465548557652549537862376815409170680161385078806856411774124430350068858951624120550761739036949544550135498633139229303713850844435588367110901243495931206608588621764740537790551763410937860416922860931494846129121629686028615533806334503610006880961228727574592992038125702648520491295626130049758472123855644389254564159149132395385543056160517893757529673122245957526824471167341015483825231578512156582535437203836324348848469174326390112614689553752999009660813344375293587669740498872001115140550984079830224854080465380137173945563168033254313731569591166344778635406635126358905571837734865183372777767527282207330619615637959100707778313189287450121191773909315182255998766253630098467008625509612932297184078776096078711348739747157904814694662390464908526699922249038984902217815341693355686341749209393664728018173365713968686548531231691172402929905752270971266815060554624769999313500067401319051233016152845473629012660980464917468843327430944961563887734939870349742251804750857186033552120132505278441372422135149413210948599748802342809188084951993869159120028107479318171033646495982214816420198199028037155184277908474620597188232708170661574905784114872733539655988112498967574806645181507362296450575058696056406646810981824845293291322413358082910160763098904975233005804209573019811155069763713751453316677693425027234339398102678405612089128847916614764848326344613943429807083661790471882545742681450275924639726057281668049068365477628850378213286318796015051737022262306069343656859105437932806128645691117802984405822219961419600976159220901616092628213269690015138723021871319168915064450730709338586362480946775395586610640737231325614404657224949863180722285701329181974936384684572078289905712655351882947025984608520909314006487525516406885217422652469766401000308430303488531502940490446324922865521074121267609040446718117552625935929412462606915929683092538327835236754530541940576300252699032301458729506128621228697523619542075706706787568680600943330401590127573967544893175262079058741724805143404172619058165747050895486438454110617300858390834604206564023008641161277605855144911383765923554294251689964448581325241239397731797296285787377334690489312981488390410262735889097748729071000250233830218563306247352930698679631964717134112038526421054920720555998268235029923253838280212477723729647291443029654015586804519893252246668218285436504504882508152869329872231899060441167962203421561669986410928643878900214573355495261412192194173371509010980811812830220918723316723027147910629137126573238860554143064632929235847320449428539379883373791548705950424910509794890979526257110003347409579493636342450725279241639767554873816774543656810832663204336487640765204278218197903158316807625726583191616072879514627211908668969694372028685347935214963831917985669026908586273565212894025975655789628315724100150985463841363070616798292439898546675961930183660533326836510632410207476278199930572418433182538660236703875086006476355312530112891033682630975900236242674694290103761835089265330921178606271767512180014078913976867848786834276521890070375531565886659209030710850335274633868156878981074239736680434211127117345841762386277551867929463718387507340326421953835544045655612403267866550351018899752763117127616971179831898461755229515964411780371552285078080729026387058082481822708088650869216346197364886309899422385099892278148733266847352439191762319145098315051899626333078025163921920111976186462446178162305003425893242502117085208249492589305770454892076179284968771600093180389113350735959203276716551887309638363228756226266545384708737870414470980503204462877395446154831688915612805537221626542710053427368055851118498486470259807464384555437099778374632101490248009166436477955088961993234367420831097544879893253324698782196953517833748465446809803856721126922064179188678163366263415890252017973856234498878461046624975838345137505326929150067993614256036478295251713941641101993375203548868601500088967226022247674053739204866461461417438192881923598231473197653227535738493866466035279145430942384103153511611745382151732241313853424768278814646457642058446933965541935914551573757287314458990887395751377869053786626630090037390790213891332193245389666385459730998733324142401721289526124344808088746363519821691299509961278648952795955399350819195543213329641484757101159826975510346756547916199170454776375678807184337813929960596753120651053834279687275792933283737351969472871430143694699521032686916028360135561450017900777477604443251330821968477664623038173712095731225542218074724662863840023126870554490470243422408159864485900669353117165853560818938563853469621195415408535068556804136964596616000063377586755588315177784869542004483396005391838971134100841320132823278465335080136103741767939192510542048319834134783440096311108809235313462637305210438113901161255309342273313365565420063548153319906953195930216043326232913482407189926648848814145312668055127015031530637013113478528060744198886248425053700320980333984406871666798097612910845411505189022400220301480202360149372229509410326358610755120578209892345975547514313274077861486168796828523159237204261184265847364769326341814113395760744884150968140285984568265201124534867350855222044267805606950070187636681833230480991093532320655476407428404220078426699046442416772570496141975091289915436352960089999843412632015314363692106566936201796439148932310183213675920729370066613118446011049460025349485934489178368202489266851295343167188656737927524314782094126396394486171891403322682207310887927025202505394094188194515501437090717966846329135064706141776454853787460536564867276456105824761106070882285543811224638341135930212132405686428906972957016065049485990834009379908865122586218141742982873735208090843492132636788933170252433848045448860997024812091607914012487706524290575156557458449125202738614451324823728663736926994490802807146683882535805256553650170894083967260238284376446721543582358556950939643724661859965289000053289108868552052526264054010079264052649784308122966294346417735154095570986213847055395853071672645905431994586424912588673335930972002006717881873467637661408423433740873487503989871853167645680399112194638709461487927411509588938609925185148645103270972701951357207593064142542921800607646107309946793961622068684126096533390512722056003036743332584902652991692367104017828646384426556946996366770190333198340515833766944123504429704569002239272850325488358174279591104258446839704215591853771830790533356016635423203380683923410166212663191857235795415684012127198717022322152253353052848565973422970835079322420111490330628589887995413903885204862086457757492519934628864013012773842524296005815375498035873456937140884111652363993933475528619543844960432219125085496563808912653698681082257253364194662781442363476245798855299461484697018265233912546602589238427652724564944678714937495429066208561740190712366339151783701595512272295641719718847092783973552179532812469077887099616700539313450117715227465939392716504217615035116149736102286070606280560422233100406323943803037193964072518036269821503134765789344126966804209568485560019342939533667673352224431947402948673235547226580389030434485105644652459540390499064875813191290303415047670949379335786068891524511770935837053261425378448492282064112305695448447052934179696727747338196440485138437565132981946402487250861925045868071680463640957357498753946322876856188486816832288528021680026863031989242523900173906998856574591214696861883402574936565297293449229042665897511621183224030344479439310089666305390096928579232999641683276714480043798721490663832230845125226453130795632168310783944718891651533986706912528756105472795118357797329178821330162437165033197640236473227435938005125467001892986895619554895954964722583051397901192618571019731427289593612782292420794120845398545001972917183020475446707181266907873870759759720055037249158731076525917384100186120932552529189413865754482363118611156817681153605808147644197022611476062647976652689343281148247012327058617228649319253589289768608428162608390788013508644989838073410714138544593926703234905049800759993205248439934874300079952106841801610248193738225534030534226465391630355541731059627999442985150564356550582283572849171583318542922482617433184181618830577945644682965362487487917231427967903174840294726887227330903789419486747698458223849078697941690854974409817198963907930862319216782149549658772330742426576263556956328644775326226494581468080870860047521304438434396268413674349799800621661189909646547840341941380180433826390520119455596975367966280030703873810123271132904211064147237072004954716878259516668130677426512145497757603691902560877261200447309439035454735328734155367400449164672881930414458600922888290527219562299288470344514197008022690937071197724269058344180502264237673374577806658200906228914425743675918771960084711286967771229347091697450244452035273393683951711240209764282297667992299264364223567793431341919287414725103757696934505462224066937066403100403169831717060958195180729002041868651106382609378357515598881165466573616878051218524025439674831027157735048083665133698686551722041456611765555608381340020570357797781769937058457426543358573539030485957004586889634039942501498931157278785080604842381467568798945567392775321043331081204304709076716558633137012717296722385092634139778394870160099866855592389348102323142995902905508874368708645040293591239258733728029057956802349225190170050988424047379583074133642240262187583359572128994501475792126569838230502197073786987317057759219940791904867922578376137660340424622534019675309084724714515674452251139167298256675636984129481622500186662444979893307769407973538533800608166187911804406924935034456458191491512869065140907984809808122616269636635535554802708401257099909460551706624002762668495761506728511913464190336550693980840920720878017870733862771033863086852039996352586977599649477864096242654769566151978721560817179428644025416149242194061595040991392234714848031843206046432464897584622804587407966932102497773900870809548394259420975062185350284079313616888442380957916271673267448520505766342627053909273813625081917385253002413075817825309870228391950857341219052531462405250865540632755326229874296273696506408355098452324174767137235767463513700986577896701006718756306293936512078133485483794654464933769093879737764413866530201307315142897746863518255890866574449141464460624338319133239346848290506931000300669651981017563225296105434820713174387823062265626805091468159762056095094710533767438632572876299597985355432490928279418473262263820455140587761644781615522904892313486492038268561336579678283566576159256199453215772974140562180978265430014874604281846850776189584285213097640635189556353008211201168361635590025925493214292927763872151086331119274932209996122737202962853503285833139203467561859469286404578787476895421070524065904491375861988797784430461763844755288842631273462425337165145392822768329622859737082409369376610781875232084614674364977828944607902534074916924735574247360685334270255179142858897489062238426026594578046858640321757951961174926655630199451274535119477319472149002890895386540573342598137458853862013962554327442016234487262558315660725836526139834709887441254819046892107537056869608881689530576227302478947920434136231206508401077769992408652435847062910064134552312663956907316354358075991346071508197256537742500476142055408094539944897406480118987224722863037840572542746360732303550652554385384579491945215328277210391125104963304885416304908898469969323793271577059267420103103923018791255441625537622533275936945450096491974510336953075186513530917671282638928191783185478772692163070880099715284221499152681127692880574490621735215602395820084727287254920379613686797868749848937279333998400582330775941022477344875419536596751834706020663931330478289350771336998940234033256302029216910579661915934183281156012428641031501050844457270479493224688427885963597004784560681873920432358831142006204324689332623476734829383992907565736012004648397681093184953144997188221273917671314886722070721984969932106555152474395762911348902908859511331228972101771115347565901417358768626605892262181469963335186438861143300959392819644183898424774482330388592437045152870226751227338380521559765553082174262815346362388194758019577469338272735510868629733473947496942015607676047909841168617902939037279379979784280949294775316411352419177178941035364053636661824578794496936199506017638736043785825763579697976036291097188023354033044459847938889157846095502250896256538174970675426153551914881205788270024400529316452065101906206525053621215373574876828338053710255352389129849200502031454054846845978056294030371016355744863275274096034427098912168212870365654535205442779523571760586986700690768377539690713886405064217695280964686238387790584688990453899484201696768620124134729951266432152652086065264278317664318603693763744094329558399668127520757591997752347325893656106165711252114553455270395998278125381132704379857749247759397031987428339757634632932589612805266580915185342325192619106456882068255689252002133148892444003691480608820917428335972405984185240515882767973186399812862546877623960797486025561966916308061362569732763392302447254632447702341201742683926924015719786773825234417775384203857276861153949575551088464491136650239463319682257575792507793866377981360648950568093434457680083297488638889814809572046439112934717853739154967233610454865672000362999839508963173057701224805890697971528170296444718426468240499650203207687156821742437017189437089988058623923628939454759688683336877641733739665472839171238011206418100366496001988158203184241781613623571132587469425696336924606890303583060025338048918252077101153919222274241336049900372351892616542899309639823962723103575818915588779565168898197748136020465258404795253896156206720241081314508639546203374491079746923609862736071311718650070260625476577663123396225177194935572242667520016301867524994750946421365913762725236960803907280015173546926931172080457982043969736327285446225047309744061247380534120727103056912279019177827187015481738819004839000531753555758455346584666516379584599000645052885653432842708372592997315131448056003580673131233493024003142192110581326275230470058175432440464905754504601776450693690989395244112236429395647898136060103003695928587416260066964686676220627841188592615505460204430562885174840214238377365991871895081883592708827100184943048653764310420843744115984784492774446825947513056869635299492168964739246055005108601089107973383032465120152992610553942827704603436883251201678027267129708656088444011684863356481173014178657151137636846596701448269530097971391641170192475985288314781476552786575757402794236856321244311093127244736144164664252574460903917726885909408287206645880785339370843453792444076762851068879898659077119258126461833513351623245823540979801740002425106800846721880936390557136632658801130631341747875006425808109832494966137581407971410066232865722848790334276576388866667493326751826481195657717295017738447927030894866053803685892109132379657589597055345530061158408968773167825153954073607515964726910135032985161035850249562625690626244430740521437907080125683537655043008570067921551871015976825846414921716552605244725137190479636811035701197038002154952705156969392790623959945589095402809567133584449427512458971782171247765770277702025705768365757092819213661397436700155552760836956397367744241650043618259322772374138668308302225775324174296870182759927335077326177116921333784284520692500739219061662100930781492977404750682607966924353040144849294821632828152537795435675269482394802792790944749717186819467856710559056433914160818685860029375986653073958991932472844548700430091631104720352081673826564021748115189320597596966747688040286832514964560257571052878177525254864737763425037686301527960391588813449731340408748894033266059996335987262427884410356491987105620549284006371222863132308243597566169488669183364305610707457703362552860628191837783162472422216834873574029991360002607636991867338619004849894651633814820260938794396980768588000077795833589344040696240175121579209340468578755684197491661627829755837280020117872768885206091134646142366040604826672580045549403839631472942944955305722749174992431542882464965282761111121559219199210188431203403357841252387440406541490865530247513439453593233005972984973860245924141177411152440730997917803255189886338513431111250065939986102811233521402879377888122631089999074423767380103451640206423256706378062843098722711897479447466676213805971629573853878029291028260869192511764996281526321684632851483172118621090319541774133289708323060675585860201193027594114290671810675017208603557997360494426357389992357932231163251590784702789867694111298874197283567919867462956064058986812263535999731639917102104369220512648622739764592256618239569740482583621735607529516370180507815205167721130309964870106376698411211530446376096275993777973960954460903151063783618225979046362958533561207577508587244568555979960182985913542686985027630266575373086652399639189520023597728650158461269829558156202859369454137405535339917051435394865005411860518658514511710785762579162917162272726884067018009764510980248900766658136528188795860917517265635672675048871635079393412408912391375533626436011904404755087492346042597677090712219495149831664377760111919544104730086141972377553373004369330580722461804917197711526265292137557367557985390979296651703762414322584568935377703182032399826864606501309595584845097325092573121800549941182726065336692517100439122684776486508782388770576568083344660854796321787581720606263065915885196963822905445173399134041917616995405868491111461736527275913311806962382188552138148033534205840505790945285669445421558147680461804344778501272158146067166743602742048329334259052667932691381578589006800270435385596665520610622315079156079582147465865905428658971381452175209095076262863898153247206545850541759527062368857949583350258986782625852581220366832690716743210402522096125778036532835656506876762419690725535852984158958797346233073268480770116711654217659360554835884749171049157940885220666377009871345241155257677699462119864572506236789203682690502990804218627921949465368096773715365950325995734810637128733253990793178521991321192885406814379566408885462974646165303709406487644372537488121904163865687302153922157183213575710029932038659088587420633627536209379133891763513718300816721767487731966379886963441194496377042759534136871025630682812788863402026313581619452796812965571856095808530618363300401092913366904920635582965530627911983459802844020830471599610809201657726680368230812380924846441967708766308248839884810143715593956807891240310317392327869314778547638223302243884407584479476764075670699157711244591799457493759148749342043398715719571645282068858474171078843452479724873163188556275893122520193805702202397970882784337344509116846944158326288506509445687877455443492379568770674900120825569736180748294187060277738515302752789494959845875080824607650148955996251295957373521645312646705593194359558556891457504190779404173524436717609937058730946245399636129651222510793889598223068919491175617446702053089329512780758051414488416899311004189841418328684648075824337383492507079956082427545177073341574391622551011394212317783021629054379451200205574320191067324225595161511613022699865606759767799993874533242534140527267424939198356766227660627054042222022150250315863800140472380496388329893172167714036714499887502506883528317725351263102201380080086408175008481860890000042582207961460725167524886181139553585798689622635181498529743500084586851602691199203125282017788189844615336665141111073607258309926175612862622517131669233367340845071360360367233979734908637508878742268248302230355828410984089938924148873705549637056176890842644575044134557687214097151290483928056274925199890410782302305744134675858406823887331375798212283903279294590481983651855879119656866910500083444412121928891758620124731525814091318396145934650064081822956868654555341403041124587729236909685403508051363487542591220128412469230764870929954099410194701187687817491429611169045036036725715501785662316372704543331214375807800231961127366825207764062036948058066437583370449138599261331395620764564474996242148627436353194456113973693205308954296050633942195018421550857511580939235221365394695738710416115082191921453835234157933674420918216092607696787837390749820886403794935339282287518730912287221172640044945091460143166063071488032952567172010451929078029522962368319966917941651881210931476585996440857465448944568792286821990848524386405146616391323273425720022192574696109074337265626092396329092497545950854475090055942697484443342896568999897623918829252002041609143741907594157433072839164833050687447660741818131897192601074092393483650922341213358821791067709439442736742005159589678427446792862687612255869910759448093203269042905655285739062566501484700064969964121943796747073144227076985302950418212574153439135484144763294394322783319615635073177996043791488472410578561434640059682740849609075633148496719994933727285409270988808407597833009290938163307278542096795303663433741523875850091068523507512540692783463564736707189842994730676753118824342626487011528026960508556871332599131408395006544585129775046509685716146329067393416137147989171475604408867341792951677361221376481495368356846271382954292356828693433528867121737156205577405229448260055277709650893742594974005313623470722401116599885608200962496436049565158827206908547407147317064516301407595231267437189961314440698120762162091657513780074418223820137994494346243359379942200960409233827348268578467760658708223642534400501233594679890093514784517358993871301990060441857409669638048760287798646047063597968510558440009646130139401439423125390686145694741025561309661494490235774338015662203156831807446341173068681500479977338512683424409210480462623436421514650275524006998157330023591907586119010697103992920256817327755999684022265975905894081670082256845681144733074258138338843548323457820313321838370473335103343044203523917394535197978015436695189231468989937758220078577293131506960432506408368666781334201948848398009314006895697720182142684593679920030109967402276766990391347275621466068553780841356163211931372111096648058364834885702430922894651596902510963815339006514847117765775625313151095858331943773528489096745151079363555594100562839517684334905379521602956388491739119131120042671247039368982289559801234870317628394411521752867658213944774563121584025979199993934881376172931685719760207294606250811952806514192181272071529357305206273325186791857258811852709308522476713278077857634912084914422018571028475738591227854089776329890598752917543096470264799986309819788714206732814091996701183778746663559409263265314825776202718845403515241802634337560153875069803163328826963008377662849232654895505854859414355004578379928165471282227960796636564456053903094761467373183244439605819712000382868436116249705524456204597893547891696787873960492605507534503171607999234257035374302796334882544568076311414876188957014310821095419894677508245828907247978136001748816334209180890349663039955382295780084678890155587786415320946427988582702908249879178353664702433617409098797655097769876081648619865717930171033678889211359103157824481195069352118807001154642357445873270600204714024414052219454957923249714516932540121440445946386501640689352677507532423729391696779461648027368700303278971110014945654923653705441635449829343718620742758114306756674923913640958546623369510035990916671822928127053678518199161021185253366738032446322152704040160354945665928701670081535385885437596576447540937485508213027670703215928357165064957126013275742924680722021094322946435140510514129658194587139641729890779136635606279584508248926496790865773156888701421432958900921851010290612799607707598887292971771003066543556328221628787187469745308597797902205594795502856328029445129643241991969196792149001995972214451631078282795955298931182950253177941336111957651208871363682477840493148448295819594782266377421402346364141229515623687598859377672903252840297928076575435107082222259657456362869200450516777894980346358564428017308114112805572545581438217109174929353351765871304974390307230264625898879428276160431786599380082284298951474022418481916755707955480809026819998529014875285079824457170948569325918749074857249902140557496411369154380759703522417535573929167911563611745878269271470318527395812963842686007350852189681021772837335365200228080330378088178760783304439147406526809849945223363541069068515127097216571759346514131536380884405391524649957353167961904193676350621685316968150535404721656059662885979721889549613704393161265179192395217478119817524801936058698935938006198570135104433808537099631763294535281367344037766522210848630283463978192645723413474578758627148732873454425801427521241736875061642162582222245005027189606599962707917585820067587691487312045898883919821266422187600481319236912544683285672549338092612554877159012338996282746437751038752674723604970521658579425493310547171015250387266741996438560111700030266725679204321572275205619902904916091276265640207681485707689444255070153134515983831255545795362297256760460717386422699569387047247671554993389915046212059778398063205828730281744294341880170625231627729155199754397403528971158434791562745269908611686955635877213659847130422603921900102076474663223214541644245193123271911816214193195098243299406122136903682760018145434630718413663869987935895366125531283837291061555021038623174647604051725793101771054266060530395516941041216645217308088738068498813569595925122524411889720478409633427824629185023361988215806745735418334994741976309675897776983061521561529756218028842952329762514990929260399271704600376749354839159909637990322399415422865996434877324191016772896649788225114373755655900711271519273547099035345377332444609223173855092650280630624216416448822464302674085616832835524838444162454878559190406393256571425830985009781137717138276400814374239640031038577413091020071510179348639157524138980288700219290167808089850539032086103611748957011309275921233193577920061291459383871175373871078853223565509493472013966890154211737349346443141806804042451177857237215347677896469318887560248934277453215884957868369219167522947048667750084299177148842223257727440930809740713803315000233990410050634166535651047052536800728582186455963627799391789138106830744227402542655745603220239581721232761127788911617528472287150633313782397233042033247822476984139508183209856868178604052288666053829657898670896408010668904141539651472309035383145023285307568894847769717737363684252593241451474716096536362068462624903475171918742541522809708912466956677790715461586366810231549087209792081641177785061151760520094054630598926172866864793078359423395167030292161213366404106519633599257077435326062388531488508539442994307429656612707867919223762083292379131884085105040396028959042767938937116613154748896833265170513367872643284681838527057401626004959249419109851912450249953115899695114170966183890876141889806954284465488553615488262395364388433217998652723591666991285029562255792845252290878919531327337130674729489341088328076037742786165733607034281183715185333835391521988610515167699355192675328376671545944195129918361867379822581168230460963935856274116223030966935424525743133883261283562639516859137930422796958760857580889103999636237003983205081217664442809021648480979300472809813959559208535022823854396825392820746204407429851633722545590048891418580586681027394772923303915486225761646741853263488761267723271048506402145953223319689634693698146905698450487825709930996501686199093082871017019327113696106524057949079549462202401779744604441419489970034692158954781699320797378346803104100828516280132326654890091362950360610336759460611226656093693619368656545085216045903592203187758942279684689678415438202573910879764826912784532614715959115704958522409142124401228320179495301430026338008524638887939198808360423913853489137638806147274870198137986465670329041848518974292660293299154296252232879615397182888731272700733632895347279886707490974978242102423070338668940215382549497545487103205681477862026273097113315537297950730857372429447248308325742754837153614381090044085399622575993108790416205161723300414358477463006274643872413193630660888804072978621203727736077149583199668590407296580798984188977435842703420575336305473457770535381510868023140132423957840798726367842908771089147028146374012745883779273183059971033992418357790796314649974547664568104434566067219756009926764600604244203457450773012035307848446063601737675259595210673778205574091408962284823411543541298195940016815706421856488133445226920499636317318748537014317933660466165335837812391877466925209703181836868628330130211370423805131070523536940768298805485260192287557541591880789196548244792593304201742276580394280120607739655216878780252451287899948428244338426048787689418736083909731349543626858120480249745787217053987085347772658391120090465629910502359014809565318052066026402830903248866239924695469666415445782382391385461652299296841596368735596784899815531448642009982546431527458021093822059612299774207610623599169616093610404338983529088132397400742005143769100262917388167625186170345761653005392647545076853325514743208225333407221990607007498958341217042621570497316780865863979442492904389351921585437956177614460292266257907796905294483001937155989526840971996303682658245104146071903462289032827192990631590376266069227469628395753334422456433446511437203357378968890392023223240641562271156507038994173080831812265177626242072316238490470109609391027198858427855906281455967888206654712706748286234330410796071085001489511451771433013386282729643828218101089227666746836733496511130414910712351751760769125345078970852045576397674973209784387663872403806125941281432241742793016581932003878418081003836836157329910537231135273690843609045916975304200108937531636987215771658568102366913754811793461228947576018257035446005944254611995214092346243300326775682003366744093291283787114812875805809067074195699838214900619659283686298773711111880416064949158162958522097293057808490964181423577284607290718036126986287050351266986685635272525498215734388974104498777085103193109362945228133968881267719624662208505279057344513961183949126100407631605381303535042981205944749957613218291087334492050602523671676369742283487972380202011503421059468606482341924618812179302736937355201736432869756107328800012480945850930560646727809567238981091386149455126051104403923324689770351183956181505518195212092377052990737555448698620766813683800109230719274557234690012675114418433341347338436872510106459449630503921927967975821091355932921331264217156195232608876970759947611261433070190815547756319592282868906005367449170948971768970496307987575001140227203978216063993761604982376791385011475190126499376715135452099822663362648503282227506159806747562710146717436659442098962919877304208278924232050419281771779910110306307850760786476871311420113183196224331873651451067050970084169410591569947118630384171106396567226477402390888830538031425352829134412357426658460447364325196051350377058777627381778325115090507784945274584542282758561353480867954698567977054488519456034953772743498315916935096172019916457753668471119847512003081382081629281742438190906898876812013869031080729987085448740768393333830206929626639537403143192668763920766045699776103022051651964998852486665226906882395140477978120551656672091006615719846856609621833144775095115169645057000091638405383360278912516917340389121150410099011447488174175413318758866529921916933073716644820688671809787162207342731961322156651712496290946091725930371463933932398860519465042093433402617657886970013361647490222341957286652236852268097729645315687972457303474536398698739417523392016762683642257901558472392250697082929244625044542273006662335449280430402852641299918367631964373650102369300264019381094886309020570257877481042427361150843297633032104227560683655914674547698031108295632103928663402735984655350909469509524480016692115619530398827157946484832205856645582544655167677231660048452468161238433029112883962092072718889617838536869868386414658263437955098255660364470707783340679192234698816069701810673561229566884881190342627286465714291173407780667147048431381948577573615510083094834462903131445725723923832672759159998954689056985324777285339704015481391173083210448074949682220107280566400710258852964772016437988988399866070262054855662782289100468556305322661294426769693704761024319835991825173385578279355103856838668875551196735116797142769053133959070008116746000943413969898132280223701877980225497417953503560318469969463501771632161568757258502693749336109639343100513775236692016400268337631714087680917374393334304725019456959498407630595689054757937057944460249288044602416375973706944776973943368353504487320048885415603468441888827629775404565267990900738451510544811891910256093691120102428063418427878623251246205223828942928863668881425413927756752464511967227677381797555599089965156527692990532631075680209950716664092113228401546010798412398141289016606223272222339427937505389401073650130672372003751509864688451854143811219781665903201800971125121448160586311246322149714987277867303735075821260549403308856729812528347044031785259606362623327656006437468335861326912336313980353324606942770285316828116900799043454720710941079424621303900842555561422088636007792530874214874118133102032269126476986390205707421104282248210333993724681645742891541081848914005928371550124164581286280558237665725623481040339288383649390383980054778598807271419968111065075986981767574522044320736182720457920283864147781550721582519715695761127608512131457476238735417358962984589308355144208266777665261450532656800716715811582300353705436365615870780090251715753635813697092706335826749762388682988532996663659497557774856872813465282451242630523227253123528188484999932838081738588108803759587189974941810639955207224008409953913797810668071659333400679113748292604804230725720245285765528150807632201336549512891497565103600809522944996047153130644910255463858552404975626722812608379465153411943185892814499661117353756454968222001994315810988735826509997182282431608917858766215185047182555114682977168706962190441208427017919614689049443269328775121861857651416102751262421034533368337633200879027112798444618165870971116470759319573385258041324348113969911800918613993697292355867726963428682703702124427901864674567887561286489438827440797546310675879579611309715211975047851940005151822743031260826605924045590674643696978304310659422246341108723967248495248722075480083232502732303955425550694399299971642702075481868949289129831372757372839162075264930920001167894175655581314158887822298028691220124973264810472865184497229181787835853032355008239174948153838412162192996819828442125746684665801865116443986585953567701654098965119411791201612685290346380960737004273080188090911165793879889855824435333808345037172845105961693781070115051270440372087213695351491358660993225052364261802603603761516347980321982168774179506160051269231019471695560291468218520779471768963928098001029134246222713378694836527293370191336809924072354146887759779378121673682800991323916852982300850192068319635189197950435354260881254699522425794256292749013221381260772162034669676345860178316378006418680007646996346374875211069895045308104158089714461575871554749096832569790515698663126471653723133977602351920972926408974831937467829104978341593851750830740095323883195744883287683058533425404683268031668415105062861885249011210570338745716473970116069641611480599754743714657230510509481038382666141804973071337445548182542391811489405915138337894497204268759197259160982918329249218968305900067248986563546081709045511482155722692917987864922399300454915311937133828953638149194231120187382149401909108543583208156795656740773462666368173153349887264054322009108641181523491909021292824341582855550648234842427277241053679665662714189699843453232213835432667467145655277609457033646680334721920874169348924400363489909084311778789793331998351626381180748460224071038747586461873090891244158930646970303001448314425340964985893539533543318547421806591973240791564128355529716875834398864445608195389889409836126585901588877285733206911017765502611853995512379342167453793141640995815153392807899579896898074720616626247578418758892901915641287299990160475387512804378116032529690218576088303229488173788496097845833614943780221802793808339935253330676824912722315829078279389488979187987330312428164172433174027691318708590607621263781239554554853423775907677444985589272551313100164863989347684289964076209243069723621158910438664358630103769452131760056500345346460362698534478871199483143245333637784286235217689534140307898167525454410591184035023065117788812865312902504633145475231636642885185325865096539790113385082781668656866686693601715019585971190587064524259868133628179068789101009820846469472014403061087231672759496936058434800098397141499820665932064935354249300656981285743854514498611619768763454954662149045542306701553193064920596950490669381412249693319522031736842815387598505418949343362098366989079421878130399299727173841006947333779754987926859206558789919638531753972597337431990741025736633714913783871649388240929773538150869206398112047496946884564651122150288262870056499061634215285839199401166260822125756386138195263708755010830962151886743370303927343360644580737621499305379387885920758870895215334265018982947132816603419774884287408454924098557588193795901272222099401373570774371208284128403998821026194293401189669300094152223256617568535292421986805696505175607626150759575839188386213183069706680881928834724579165479011279158942272137286787022840999409693944753192441624113647678144309333512080915730111356085857109990256114463384159619926282370195719675026971530701344989176245457203672569632229551565958397715652967129308604717153750597067947232832860975082496591055729947798109346696227442589023029536110526071575753796253306586439771952880312455433422168483229080518662572980298373397526921211069536846238921200389691510868228806611815669901398836606702519792760770109564002759913859080964004577858935423397745517073952242341280727890936569182664442118421235861163086954050498899151305649631534254025998256881670600319205509693954995391334551924722646255201694169378714786012347506116395816730907603430718147964068452250939446556521980759834003409619361044866875677470293363995430031798679616438632829585242190175964227114838263102893119714843028913672391124198696903849594219906034353215093384093254925515310385835088869580430840124818518257420386093209382002702925340248253589031385460295334231249477871537936521845706639284783650735303959405091397952837928237671719755453546935095420312686963538620793282197281978109498574585660337635692588416034525195492594394450057364512759738970061286005481105073317263304163903685182212648898086174495998684184304583338802835800085718398435445548044034747726872484800079648981206597688226025346207904238123525274538278347075276861501302866597513298306334369092962243599561082892928806751650249346158611045787955235052967725730856284625380405884426450388524193395263474627198097641443785411669364778730436573078697600747269572044440085475783460040607049686595844807822136571509649887765299700516871379715002413196945629653468162718178640285814473513040431545494498739178496087616669914476314807750004787132435352757398983048681559471541561080164260228344184412569281049845116372063610455918716260275656070148312980177823729085999137960278597566771694859192621315556526782634683394093688342305847197645511781324086814275275833024865404960991220734931761978048418901648060783201812793082501114436963105237639621155674014616101912207340467466286086666464491506049372933734918369820590773014797711930296158904175851694474832519837915210572282355960893033173127532659324113335227985170520042565797945055950446205183622359692062246047390824678051949190308626702199232170548755974491462631072693472418753776379394377026359757263813695064995933577382592286300819624382018926770610811468315964434181443072821301490011310227390034263507151386431878841992113025792569444776941065412504326988874053891941370005928467533466234521890329518580111171555211835709453721031854386094898520136878544530277152919656385838624146986933991670433847812855930865039067799122033161151588193318001610806948255130115282088513141615507551159766286280049491290698673219159636651979298252120154538867392891939648824783720430262691969558948612574489177829059422131160932211945954858583721794276789823783724472868243359784883608120216256591996930537088650344301305875482584113911147818736887420034601673060058851059626612271973346199759841204206538013957650868822703595281299621588214271173863361094878412831400563609765244010113266284719832746153154248462526662990577948813704895981508097193514525139124238881445695426433172363927513071701476013885150976993422464057800345681384327531066623745190648622294534083460424350421135938954811748832348484955779782504145333882271476092719457735731689199448512010373626435162884012495021855235767601602256522103484288853161013499914323245153483163725949342496920143889786317887784982067445737509733577097537741433686100891115390335715191327251196812443064709980882838972926213505128903083223085584107129539348973583331613861721512645319172260875109079941940227745222276271824165676431160982790557214901270160840199154804012788389811905755790937930509388086718793936966209761251106981346976644445478170265099496458916523156671311796776573435296381883057213107747703418879936637638714284926577170197220808951481507879460664813923423136003711622195867090753606610900615632485879302638871883390353662653612029267232607322299963914449631252289281898995659711606099149202657687222166149097699597129365016718037191152865688439875549651051337473991229293557293426181696184631848512449786018163037858306244707795250972191454965355051800547976293051610027713521050233822744233048047863355003977225886875334236517461216512499635447564694364270506987809004668119821395417426722816419404603942399748914471026657869066712256583190833901265980569204521605867981702894539698548085909614122371482739672772774397985005965999707473592003275408115917163576169323983276454440599411354189249140275626294886719439742594329900344921628901127424089441373761972955053884514889692331469785455501655547207231449983195827554996913704389202848840384276902794763164393263941397075473445594924370781547576759256672889552906559112776655155789702647518969212726527923034721705510424681066865377824019842834697501495636364981749076005086732587234717887450017342113847353550305415227737059928054992936926337087898290432248081345418536387346668389191605501409313085262079381167165024265120722144450704415935793267869808487444481904663005801093088094232342817063197685639202557371186078231586602559013214363247991360705779270812954233422501161411155525947325144633279146003905689978512955294500319993425896071066532850401360742601458667937700160451264541389854178930119838714891285663315986179108503411812381607390710492684362262656832056224516099546025376192154178765536913063043683619464979175694599571897934317534802839078371532680139602323950071047553046476027157485108542615369665324075404824864930742873940219771864419027248448292406425455665061280728420248902237638768808714287930892602843730178973432939032165463789323656464439342016215134749598904295456780299191728562167777383577124595646725234376156156324263033160951552478749910909936350604440918257444297799730971282110663434165662114625939452924182557784270316307485926042573044939291131603523423230812938000117572898277827008372499912618131291055003393002170456451884305411036784575055263570220990904831806771426450044323215179789000347946141159535812821537023199631550648674766075034663347675000884302070786786071817885777835504290913660327922753952895858746913163472935904471288486402811491594890314348996874464575835048315487117087794284192338528510556232530365738535293160626618408188888429396470739477050180808631554914400287960384999165926076522438923616916139893197639546711697985235350864566845568982327276610745288318773908551703847671301258504141747627319524247921649336781139508131380256036543016757288507190191164817325713334319236654609534066315710064158670649835633024035297672752602296737106190144869164971157753057039886020367538264343337388759763247362975208640285900091167127436980313616537134436544381091210272972415715229248099223127338393220189320302721541808836523398872644882171530487620348347022117305630252743528067309596415517270063089246928821985891037617931205893892798439405785909249742618543993390827241522843341720564279790366684666988756719947025388132061551283554986600508210711276687406301893068060539376381850322590421957754987852520889767459776389613694603565313205903459020064122937030934202165781352847096661105685023499473900239595784284778292645017043131347365198467865609037396925033300237377908584549785724940312482088121245881967998645723323767492165677681681160459878105944368114234936712083449701386541937616500391149174677354860434898798247306578723048971330457037761802042809161826549363651777142723185997702497403486844600734248811766511073191181045043343603971557459556494568908601790966491790326445195721855938447426352830593096098788878947409782865197209112813665386253135810105137973997124918856740125434206071691858011420875491288565694191740606871704254586690164182079086645810648925974159561054264011056691615715662201608049384598466073138467012882078286775395018136755207026623272264348476562057642624178703655687220814070020970772989828100142111955251600950920278506421796059928822865189512513489511501458959328619158786227946938818448857049103822185173274663447373397521835213034566292824161291516218843863918470341993893752178135237081616987565785578994059970514080920660159120879336678069519226089887162192792760777361374787815608904329343294252770118325273820963001028843353997701322448845859467896102284344433330741839124844746162503539949832493339111755517456913919561648719351274493659033459937127106026692295763885050682320179349785802902226303027266171022055409840071112820374492130044240206390487944178152582596450972435483763699832332762542739969209151842064301406720780682674870530321257567618383583668644095921079843345789710692418721520885652581429044302603801630962940691356137388021219943752699833828269478783790756378504827150689418465866281395726965053777618538710502020169606450875635169890206177056666528928374858948167302392598451005616740878064659159380840577753546136321228670193074274010222483091436911594665244540319050775255558153050067495588317966961596603654363453506880255486789830582538699966465842238665709876972589405461295762766511391176170989814475624521163354654126719673978025207977011855723917046396005391010448368692180179537754536805328498490772420895279349149098831372195463486476562395066978002284064277965817509432977098866838094954456404143701181239670754081574144141801424315627572457176861301430582143468574721658833712495518813598253160626983052557230239719316120593143161964980981426594456375254076896051438279727563935261911879504104392322353592356885621305164398663816432431898835425610147691132524618905285510351410428278654036007664341501022236668410386757855906177686666043754731724996884013267914596847570171988188178752342824476802905977597888931399137450851046601706151980205473445792947297472980045107462079959904830066851633890232436655258123210144980370009443576557787898858471181095994860950772783436726775363413068614412313013113713031841839858042864242463533175036761515096072957893095484943277014162070025934737863857779173970979803993326592310119153098561866338188044804386623734795798146734981946586546641450994793932163050598657725805559338950657743276240585104734207904933118689088273309970027996042794024886261005059369290370604498904216935231179617184662553236328303618515188856963339760179036545388931388544685443347020583207944308800045730961384804458912038756051621676794641184695473544375720723398941826401750560035159757529615943901415340058108166860078628429310322383144867361173596046906077947206168224969140326804749153755754055255558488343722148595188367179179168637851160584467744530606755246220074030435983826556623752855999336750313066537919852253198877595588867564348127241216222251396997441365848107095203552639198306882838640444416199221073075901547265560704477361389004785896488626743176990485986606917104246429344156132078222293668521555192460798416735552941171836058322023622157090556538521765434684006439642801411273864832644240344685187442406436154105166425228893655163554895972781783089481196382339558845811244998141848150146718993062523812621121265175824852245163197253830877589678495065565693448188988009537774776197608543569555229457820208215056659195044122235788654668194597107825199807591537339003950379528210848991522839579450702348864883940838518842502374200555152298864380160105309939674414799512060655485873392083475948221091117689935957482557954734340544668309311387495763118736553576203230895425083531374665978204539390850364275970995466104367753905130719472130902379021870308053856780677854072217115027180170310611370156373826471719372136651501770295842559672108850035397697742626740204249276812419093253910666347922085747311665587224257559521416785653796149076581569935986561327444040667875228167346756524094878216473071403683261596420727646655942403661970250393975410063301016282460472998924466257584131354987328898458039122157497313691802330679660769995092781846214830698753858668256047608084470466225877522466249568246299998850142616149937849720208847957770573199509178436298200080265647315213819300518184376082694037645244863577343178033023832336002860941156822460306745407194028600402137936216811735214444965645247184577925383362340065092747980500053034740173162033807942294462530505877109088230463352921541065594928584927803668832827362047898805578772279902722545676071876422068288017012301412431902105340680675825140313951797608352603841397197129744263313302904298257773171449131137010773808169646593642483895573241400803105972241864236275663622393081796638295747030563608346118987034581407424836046420489117654157541345470739411980241242783331219005569528083400603667517373906886473985173126772734930471660753536656972656666969332962516818881703497671358733534237214252278313614353930551451959814195227172933030600486393632925200782923646133971212421643465184511147336152408542422632180200196037359181877299260794175077245826478952505492144174492771478652095285588782926377898460124189029036743019844157882251834739326379131127719989061725857027205093273117937790836583263722045785673460792007234422810272487674796764316246911653858807243440554269488178435057957747330018665345824348895115089734017267895034163442329936118110448657649055834900602773750823606949275066454308913953392527533722787118967024806720278320101126572420411111471867469622448955335773292836203803038178268414407364199790263931904360617386226744799173377379608633742929208337899833204424596820049212107655460038817988029072011217419116097803426262278130207315052616449803325726649825975239479238947775606992290678350774412788995436289722262215529785791028477835434986991174554275247373785636271448303052177183458321987124757757041832759529023370879552958692678921157965943390901686533485740268068734253694583645441760019820192622627646271650574943057079356985542243554111892126553917071090355948787717822666058712313985628902113066983447524177766048676758510934607420749462753690246883295017111199449304799482267481973564455636285921256847687826769778735437503442469154482925728252364213272293804017337510792452575623556778797595552507152979845007788513799582029469126748933308590995373694649908326334549132476020474741480971701517004154997723572738293982760346247052143935790961993167406911166934907158992141021844436356559214018869526326671293759584654451327230758434983435148674754459960172105380078385900081535978722557463079200146857630088423582046961589816038992850769661856744980992229504337196808104612215562268595915039428644526120856548944451783213279885228660304567856807472179082735952071759917621949095259277409532117969005426206523525385094486374572579838789078905215481971940160188773038680108250243802959093757987488050991173603370481501590410262820546662613520667627550680553031056148722049336461927651635290770257859779707989929707151888630350634090918607027918949260149539541660472444633790109722546477093925769565496448667863771611904391913264511467171043072636444416215346786751369289370688433132320256945124774703359945363522662696170301407442170985969044121887054607817197193693829163825951732186685559690723040080578458997530298029530037480832046085571809529369724428998419431098075109218763608376675444434378570906446650035766475771843850840341557668943212643264101765982964247235614816505792163114504643970033272940789069029385893706290204017235151676776051216204399118230308063969555385049079736032640242939843891623621932177065798441660209643136639123570063996946923588336339907546693692996388159682987407111393722734414795356658550237803087265683298254355152236191677544358612598899964469598442878759084457646389328866887270075311198691067184565701119061536069274030338582653508952157515295987686160612008841936977149970364562161950404047671748025563991830228395694468684244490613846501358316174340579539988173295472670034938863979872603602894695124341722805189922623606424044945932749961063064067731441433187222834423624868474590673361525572575964330239564163601319788447440016403793164108989235720523154428276665649093501291493486126872564561205260036180713557741583243667161033262135705851929135218441569538043597025569079847818521106822820477187088449138961473320205659638007313010947441816548419027624973562949822522777329524378928794192255906130393058423205361324517299176760662025201038973034713862410871283868771869749140142449722860035336076680697251597612674230218628788060396417890917353469497872910021902240827397541307368664061307491373646867592918464821883493675200059186925200905704145591085056836425972151370079664283063891095961908793687412430449832600534573441392900118339957157203951066692770051384851001531048197275454030922695140515134457138632974982751275335492982463300679587809573384323542771113087813508191103119132925077424626125838350383300643601679456960259508499280710392794666138510836497226698326399882900156216870255261840812543639454480980034285231422353216599669049349211667382511455969229872257109661846350121440381155680522241135623314790527146888627145907917784500378150365582167983840828638498382729368740456873630737927448481322475399195261008066674291189215810459661761637310201312478131127766124541939438692465529681645892693064134876992046818014358984519862317203945803211781933992193498450282816937024301025696707751179902838966788731865416963484667919831671482982604633052863978118177922770581408252202512809742190798155708513640378328719160464722449554058193845896115502270420168782351736957917788051381374028095643702308892943507080847835364800293995560416467464571766585352069777975266433607915041764965183213283597727319952614576860379243664255809559359068297049707579594802107711306379931469196081911125906596784505450416952983535843674695010855607628198508202431810132424577131388011859086619700877915741383149875639179847015007999071207806362355575387949545136757337174348262426599240952047182130996848389801875101187327169275181714991342378923887557566318507219894703299313063943615102632616467722480792439258846831917527672589859046020633682892114561698686957895184164779314831505084677570393081315826172208326805876847899487714664113202238419227734573467733217483519946719119694883624651095285157766616951121726906270789808457699238799650066419959958843663407300391225042623886558705513437575840238573112294963525724858875187205748146981695952215625839229259157854992145262538314786333348534064031124057189667310250292528714127782544125689341608040406380476602957568299719251344727902574202190148251358454553370911509276780538138000911217624597973117585264367723020288294943659512647858885242896472058898289735825273541088048348431334181389105922059128255469225044958206876777320827544829853443977221717055698779166021684358220067519976552089328886159735962646031248548138490053961871715009124320897414398536221435471688590097978835795645830975608109370778769128057719442814317082465741212940851635862708996353922344423951564261065437726380541466688234468292191200888815080224147564409269694373185547744724474072361672864991797407966188602566863051781761467604883940403985370504883928793218923064392970902653962321054526801993434735380022612526656112582962298586223575341286940273124319865426898774220906389771663745061262442300835598760223257738742580973986395164499061463400668587290362192715686944506698334368538095609061799903121641931652849482733510380200732427338991952245627538305749516258084915035672325861573020843892940026390643453441333077274928573554926120677509693524708476418195785600287918169129765831441006072918955354362811895742183810827781490806373904859606996055656139235033485705203680412786389266852584912805159285594141500648578127743510325750647997916528947212872609603184870987285348428095743347096065961553620736090531947504300663118564684998738098368302668005835022149641624087799715448380370046865482886828107999020513748667398964892512142351776383109830439669287854677372741186167539911840552760334414806733073887037100458571439345350021074444989362036572223414591834818331610662492061171280834759997356520815509386265185980084341328956370061606054294137409794901506424687568470439182343546995469236811425581144059030700909591432896665828495700653894495040764694890320310358075587247637212470439025651272851642950627860136319261662865164956247762593737230212631307733926870506201569375913881677723391637443514986222462776871403092978746250454197779990064865486338380107970472421768521326386325725464533807870942868936603564578760103387799308805246419223992122097804058952266441758092255592435807739937988780463949693626837485706464221308558673841985384346533858228129492199358800698474817383911175983649899167506812890197952423547113068750236744475022388448040148707168423611360755741860270885776729787059395194949826884349027103747052397430717526704907964373099383908573102244652073218370548600448548258122417987378874144431978621756599157698514761806375876671585654844412232174404412871615321867984345247995284552052999792677233262383453977161953427078443834848881909569798654805795978288319745785948597878031944683659180537455450930377796587542924667475983047065788545061430813433417162523636684181476713596509623696877772822743545880177637264574840045958681360303811870055220210740303244058545743223985781770408699211331382862373743415644358147706404381208362941752877555416284060879870977837717869369377408407416273746372673712028005866986764465474443268890783120291208178062737795562219612168171566911315406139486311049896508108625744777582564116180971667472884549322615499507879475973050705943393539650243031052368504257025983363884489740522129459873911009409105523157778256882699193143539512596495242173823132957637410726561273502112326420258288115429486870471157636072489027531372196710951128147231158559176618745146807974587436873899594519764437431338624231037916924828082936202186039158387439920956601812561150609862979937171692075219448044920725828889628571068507022421927691199098375601196081242492106008749806072882031911755295357009076582232577579851414305293458209892287052455783883349822397746816057131322353345012311849579833628535108955074130913315610147603364423667043358296463055049633507293273694532669083923310725951364289815009713441084392333448244189426334785634133990369403817967933076989910199623689514042123305524179117383113599362400064729141560156863606634457051459605494797938277252514507848245028493269847574687518832222915541870977075514869289421566341238132126330899897001760558946406333242984382322976816249389073110643314970128340964945749333476739013658449137152213386068261079461859541369202497527201209989998636839547246122288252925946837207617895133497837261791884991319411269268781894025931010080808969982537925202727207919271797412953214001949431284813414723895455952835700441821876297174633578960196609057536717768101572210209185240516611512834226625418834616491967317708470231082729620381829379995494328085792411793899233364522464755794755099805179067655466241034740796867096946222206045170076210160957441481068871732023936005618483006453565815035061759008244553507441080000862617423667681804586028478821781000144938289216277029500538009908767844398095517403204527183470627568845845690931750234769133102395528819922311520631365839385449928147730533904785332925612276048272746539505534314716788443042638074059625494904963521351105808268065331863591116891154007370084872663378545164028552842689634447093710968438904033395306351796627706597773207581607980654125323132600288238369544201952040550573038480553583862513531478593250140123061401071241411602761054583625986911283710022755649483636079050140199393327453676306120683954219934586737889304133336566559018120032391534838613741135125126609910868412186020374091834057481510893681564845135122749109794872014397141210210911213291565333688137651464709893971206789608639740380911271807881146710764496514707804453220306530907905989493846671770270103206827280091233565515830729853081939103565533801163264962739987056937035407758356212977148364275373101732575888878561813130948709045005860196945873814842958616643285693507175001731633088684781681309161593965927913948241880053663053073403135383053875838170144365808178415696589162955543551789586259921989788771226949375578055256882546670424455898205769838137779689955041935842583743631512703344673607456010525663791058577233927283195223592421998505221221556878836106455916137915961873950701466717469361826112621276214588551335189373000483141628390352412599416230331871889810505363193645798282025488839945068278996005241488532621346242896952701329753351080011201520223204495014868449166936170872338781951620754088552279410357486549838664028827370702213288223990859594752318337193918215294777891359913071319440617910974916434373093360318346636087488596671673940300975605515412871417838978088851024572969623062183502098597872434149983861462342095482027815905357986140408222380682155861771799489451806900816128821054494953675995943929110887912331905754114025803593529319341077806130039651831764206492282850346966687495597950790805859096174500987700125455927273665096771987898742913228627930342780555433761671347445596378498176059730839118560164285288828230265872091805201795207819600440228618798947065069408313503887049840790799166323446724200015524019168890468157785082934343702651996720692392234519523941433318052819118654499113305596236632708407250152951296672135214711464623296967673311960697576231591398391796735377927922932591320837696514980138371876862711123838170825449720803289915406369802117699519400717166474932124660117085766789869187455918604546149474316107478222314209802573580006749618151079877531451344786052662933587172245439850918513273924852189569997808684558691273233452951287210437424753285913456801368649192088601919954930188857898970196732140124280544639233059573948390021273369429196817944071452617595233883808592468643346756902768394209362057091237580257380518539977651371526555139840054919159545345489075900378299229697221345305327267374035042554363144053097164237786893297939139388439985439597064024880700081699200803019720136440460446038435504352724252698516904754095163818618895875126196304036629803904027007585927142950047575386158833069458582990939074534884581783867504876890078439804820342956263475224908134074728742869080233203284525263845597123601498587480527173566305311891004046263254276186949873928349993024683718821813512167960787169416287880836332991405374359451549234720742908833767756996522739421128808217654646440781857173250368503835553226621962698686552469749627889620076601183073143054315056088424321959275892711788659292435172420486880666824609278193040363735014946951862272175764159672437843958916731490278692200582046044441650443157817242637823898674112165348435584681863873391922503459943373959600127050853773698259986421199259475421967357985227201079024297796003022695589326818605996335512023681328182823626799733399675653972549877629501269316170940061570366763283782111095949765521336215549983502314648724692311438299542931803970419587131120059756257963178099095861376481659716083560301206962987481478628678652230566734876982275173197965832602029717118194928741413145439440405097633901760413642066786412432908143307818176607218359480628896321659340021130037358829370747335447872236996234512972487412658913271813277241733456240259705612489775577956974268553654765867298520062092231742398168134038229919644607915863106923199141790410409476054088781211118422274923499132853106027236647121442416876027550233699871106205020465396092255761168507647950400081515816507331370956705177632463155109976594763626827201878528384044783466240648651806748257350629087052730485767663547976990400330653241803440072882491939686888127219257461642271972924921023608590046367938715403145929951374069285417396551255363935362264102993739602259495906337632430714377934450959180830068615356833326716900212197080719977859713761094851386907214827679721818755335372473604210676853413452749191807629192546987193039029300075000107657840359781642521347540769635707036880166583585860494703869439069039972273123050866166897096630256004724400127553827533614668854164912311861150538160788653405105029233465475032397928415798200371245325700535473994994653625976586325793713484790184242299873122257668320805247509268155472482364688925725982303586547699080144011625886378338173558577552217030757101000694987075242384820591129739747936712017690882114757626643681509365637113479985847486333023040562901560369208404461156919966709804374844905549081873228308298728930510008346613526345524815532085696350429176285258869580225730729862269032750915925567912060863375500522023739237117509059479344392823897186099847011935678066909575640728840835559434230779253543113193894915516465619345889486155351333096946756007203483568929871692297603806877946780075884815963250204035125779305646831702363115159494778404638268895958249446567217153002634202473110390384026109075031367422427343696953942184123152817881603584344211307917147536381335398404816727063423863822862222863483464181903372634678515221189395963792701981250158720219841757693086061715626574068257599478102199359810017608641752950915530414776082685306329133150204377919637505180543282499688433896561130790106194383950381788903375170049834113285745815535456224086183707946861148960094406806146720572590679343221697728545628197369839616156353766824799778976547674860603418705146814292314498588493891672120911058673373307524015196824541923359794276029061257898035280762794246151102047375435866899916634665637036458846025450148076614928986134682006155575064097765813013775671091955067143814490371300837362829571652514655844764902051785310754830039976884533093232823249364200620159006236317621647943492572563466611906927642341084228068009483452833222921899760909101661367641008623294237558362945337899880740641875020082555061182888038651700557273124006262518088722528454664170875706877343171673971005695543763537879075548358917485537174052198230186538292586208861052924476603154977223020726799091635130328193996778734448614424224361214907335872176616809325343119012936806020963326015358077139906669298057430481936523098819872003507764762517774609783290840356640709414331654857137211090821928670803999179068196819956201482519388937179716183071347553149324642504225461833968012415232737032783720556983314478156005245509930460256835426198525449002538703638146185266823878496071937018167064375825900126007999249000146767969190585247254152233261750197724448339096123736638587917644602556108363345082616184033247006889648081393647615034405011104525710099688967440836866230951243291764342990273248049516612263214436611324698742006443403225637623683212288997745878603134324057447315187816321890283095915667048056479085639755092729112633490743002675314321461913561102484853140517881435849706558947837628676029217544628775293193907919285060741268709487069173347018711397763127392942189526502428925363850382146257748690653825993824641536215648151590027470242817680388998725309320251731306143985498598106120650031856747089829534544853679359890595354015697278267517310041033824916244982011872683371182221573682184723109332774674974861893886461772284401068133235779806754171610673847489494014543715693532803128028346222066641031494003857262062101435473627328247012337431121430764292447365243159700576211389799235585940213480304502258625693148861295945712472411242589101560320728481887005022858272071480119236985798990670628059034623686029145557587369726271367907702847086224495648962176959083750793890591862311211371093476931703367029067120656735266370870170814257718547763058393312550071961104648146062238011781525747630021235804041315791264910473390400504170966074218803862697065250549777690068958626338015570466093786120423482418785443064822231183480016692586926805196766316319250565990886059181432309234648002844236259969155282140877349938739616021461230816141878374951929088682483146726991893366412266241549209889639690681577234515333223597057944948611176566825513400905464549311537117469840362994616758392260338372073709268530017593192272591719421965596339509031057119264233678250534747315340880766019478326189199638371394892892891514996601438930369750192187821875388916771055302663300898985119875888751069736283866277046509685829803596069156669517928795496723252853063297693827616753835385948745527982429736010813325223542254485982694548555327517192971140103393160244170071645607506752024509412011208540858503739441636349147600517591618328236846906773932137667683055412314568662948041141228392580786601084299906992195694154387675867248742711370821958971250420380791299377304715532149244086162234761657548608729707878249605102254581035650414545710072028758306324385839421479046869653674541804242147933879054177287159675373758395033969409198679782356592047284202956867141527251286774233320248106910486360696664326992957842044069780318170214929951155923346778510125284835473171238314013940474375359324164442464853950355340415700630258524248901492748757688002202349521753023707956215816207625130909310694828533957927557439734219216199045053920790623055446484866590619195280618298348743524482593045150181583170727330014262611140368015378904694971490838743538299133225830768059075601908614965747791470297339646330519563508185731619155000284821039995819964303203760453232348490271353431904724538169552936352683771083258781388911686837779314536329827840296098806594703188973129477551405522672072213220198792304447177654601861782235659456236413330365998657919131056735920445414270894103892095891339643979937743034353849166792951455231813140663736067425416527034280637050201326235454479070447414051859981614392503693370952648681779392282387799843780074573261970594771083542012185733687873683189597255174859537597016572450180747096912737769973402347791874120376258692328305457377516257944145766319279367348388860067914949279012786986643340476235407479081566756397794167383905424183736902361464070041538546266003752362090782102215598848895509694262218043304201785332329924224313882232224058489205634817894904269783177980302033653146277807081291451871566074818537791506872878524736685564891537408599473406653624910232051119125152100856146566062625496375502391421787326553344124640476471500604597786757295729218478714926880574853322394878568535378432897824462223683259100423658402409949696422973709650412093789332614735184497030983675713248225047551084154222161910286248846933010772327286533688936155151808675402116314248346206715793918628281180303071158641324745632329194448958124572602829077414396493444331378119393804300129317783665393100943231511293971937016197417832523026801775184720544864215634897592151335055621311334004129496835434088752387629174174192608704447105710390629864297712185013389223323626562422868886659833939121357388223482973624798258387517219492209637094150276616072548688091553872197342140296183992317056223567277061807803633215953552951899735489729844502288158653587821398905709646725020342553582026743189114981497184030342785490659913562414315715791018471140468040890842840089094541144555267808249332087466991065586491721247133464133479870572736244116022585092015665400770031475080602139215987476536441114561110844179416689739183488342811410388769375527332051953727155713708178136232445330781064486854822679564210043431204019315543302874536211089050609093281010170858860348545149664369505114577769905800375683682721676007443729158936766668664444502753704866050430653109535603689678148948132726296962306517593434065693874465148062599119800119759632662487871075643049506269220005727338509238271600866739788530133875592812846434322352209183011153364744642002929151582753929785283908104069214196605137054011284318258928377734656133409652107127132929658610472620141152625817220135006901243470171901976378208440225281557832338496502334006576477381247044584288548152805220358950932321602115221563389923638754102924365773561417653624111842057229946280659186103312662197340917592056892515304495235570733042409473550517365556929312733557085933760251216174708443109588343208151653836400965365706647782882472472484185979319438285906488944795344427133496308354622052530182399485092563906434126852313394757727584007934881988243436507247168584406399311192349862521556669565930404176124524400748645044109801597849445837494629467431600784783828933126226942576044418494044530914347090956822671934052972419798546204686243398014893566731626443188875542354373015799418061006297439975766161530747021345575349086373749927488190727071108826262311710294363726646322624766115625690354770821615838954922090484946789605106908939963647599883627546274269852738941531464851682058691715982034739345467515865614855756540973137524220671043825269524769902262080697735582586878218472854543697471763786476730570436244338194469420587722102547215513615585962020715234659255043824939051611964610470585014193815978999123893191344002286691293376888599003112035196348871849974074200366578624189013662127024227091574468136332303487297302329286495259765065000226347422445251927666058893028437618294656076671234217260506817313587594691190794984656763450582485177170640506763567181933331886299516058200927199879066767505026796950838570515320073318826584969123081975199610236084614467885788353102147172879325111771065063418098283541027863464701500055564640285446503192288040267478014996203477781556301669615686555640164816219854778239834094874946909797810166589924143782430598364080925769620328906055312357746509714852798731077574553094279667372154617494329922600795916188030678224337541422558322218713145646857257083755833755402585550349633296447552925151816155395229814569902947965095624670378895645335851314479503837768117186515097698372838122183863038134535894486081894087190346223717914198185284911516804275207086745575569711802362898804261776000539825425955922337497040691946837308707161443121419858911206739755344567898261480436954046396833760840048296959272930120123500398995996147224050571677306197236668913833342600063106417073688061954969784673723040993313208723488992187593738954436899103293949255886526804899415190354008487137010083241854827168568929881357800967210105929043644188756871030991350020037965770305407571899880433124890222747518716936953306947181036053879441014735095047460694066875315263560664375606660727601918291488345345975114738863416096313002153399857962322737749711662657713128963749692985108422957042639196369269162322638714894765137585332758363065695534819294448862057557213096845951948255312868406727202084726281407899253916859140632004691915956572138912260124100222125990197937923972296834115495101799126128789260090392639078332322683869945334837965809469420990041179642937752322801209214174563552292992048319033802102603424977364509344355724349635533803576504663248573328773574884336021150646322176365629123658840385711680185778940533354657556807484554015847438854354398361863700829973433888606878787889921563132806799509144475291673377386521184848863983597367056318808109929942597203408654444015239876396924432906786806067109374335364582209557296977779577614476022993786715662179762036821991477741746709533641012461898266842601557658333668301766954176540379472899196469911591436452777506347578335748566344776642387861502170616455102396294323942995788501974490016281729217503706347909905277565014081355129372627061110272503907999117627395191302803291809200411772483110267208466893988989721883124199457292444137021101904128092166079152464738883982928254463206104166698782290415644065847035567300059429498608214872018455197731009983608030593787275837993654955558773414533788447206420558756882279246010540814979928637812879474609493351158654279578473079078538219359777553149529397055687334096727042201790176446053409927067012687947828957932967776320367486024107390040226869678511268176467994223293333825667085022067632530735567880755325238823195439947757559215283352818955562798239553197271220866986755621509216440258887281402069942323796649028543481777627014821806126151311843356618218837095101323775893371598317586918213039898728073964662266485146147840552305420605241950182548728388780786576053770069463686480493849117693555180379710272223530360042614894392023911750755470945097220151218554088829553127966926407640564017618447229567845916408299522803346184819124356809898971255634814714980648000979787187745620759426501243736106824257014452954888255788815311110667972214574592207260911806679895932928657807340936854935620623438877127648558130026186710484251149486173607236183722493151200897184335048538388653320839850875602550674172891465062346751575792060868179060866294393943495369460811009610135302333900000889660039498998757639074807330684864668816636701708912104269340339235102166364733695409658275435078956883310433237056059915374379866055142072848869391306378026577185089581339845434481976059669596092237881292541289321459107501625999296359985629689061919012631727003079223191613514901894306867837611315095774798927253675360286690113949780060075651257034925121723409549220931328284157921540378750158635867138598657398467983936799335007409891827733852526902464786749566880202285281956019821254845117472284317634790581386861187767030036899879911628917578485630702929448947189721651877195369843013388860249708449884431456286398390374977956797239853139833345260570908877163281422266057087276352390990210412546799832540152551812773684012585713331650210279166231641794150134220949339119778175840367845461965032931796060479038704922078893819544853906409385294733089916359840726851002849347900849146866092280392854658332122389063862617158900824544532829272856865250386195347757527406395274338703118149518249519777470204350987227560423951056679915427962988108687761437861368333382369597054978573406979198984129843458561154276126698601242487868873892905768137099591095683204288858408885054913107175518661230457477624390077485165417681594955852725054968256198961498005157994836817234646845723248092692283994097206702659987089517636929724675744931447954496608063928626945693666717910471980315519880065253499960943958902093359917408844622691071550544912834923162463489290016798994704945252377947096222756917765435576528033081137695154246674878125582170605869880459197025221418350693386808203430294285034878677394596709473700968046430421535299940960133266283965969467102595765886541772761882359139376186382287295044651161243697370832174398066722927063494960995870876797208508676681610746093573328969280967651989359733726536230245613843808153058377708909757480895869764694519639710862289046236582827633228951022800463989651492609033934775755861585928094054678594529533735160366163405131849547931322935020321530702114805584986070933332243709308831308024726951210280252156035809718989379047975908836099580547844177434744943570958705827547758323999365859622380448958828582477545453125630479622555442044028179210381363643256418839225514384384804894872119788274663613859605691683214314897673985758808204159760663237397231645077195996921904507132274123290078952369872885988280068689534825545330801747707524419314368104449663323051872174167783060985979223409755110414551384256320104722544014656402085236398491691700186513245507796290960258332288129364039820896898162132079866720733886330280000002885133787356642945823183554709345940968877500060439579513946410978320626676382998199012103106015027117600815669679903010502039507959029527502250863760070740667408239878425198731047818519530280610402578358436526438885850026041335240880573436684915878814926114791582775643181794269872725824176781319837589887703700681396991741780573002671617400134288013791599338416240170474667520805801468552721998038806135795360951482335369489114556407995071318324794360515792844506215834138580378708232529391293755860445594311361933408893463751494218573313304039600903528930992960669757658750414522669340930423640477016694283392461442723582218407818292610284854404551129936127473740448860938692857177977642231172478247350462357891960783277238061348433749148670498915213077214295096161179736367402638644576370236994804814070368321257837425281571236580336548878607902231646600652587697728798413773745566744593567827391559107035595454062834001184688338079644512954325343598267294802447463298020683527141251799901773164302793143044914959272490027893652309918195649453602911497017643097713970729513974193719996435169922445392882380500150707621333399814854320674434411868734254452642183780318353629122155579867108343223161021058722507509115702640946545943499633740538184611804115420574256274886413190355156447204021961784044193760551377299532401479474320386188911527249086527325179519929418353752689511809875339081522252999235997499265525164020705327752786133510827782368909089959439667155321655789292828985942606265843491450964514637237465503711478091201389512105972929347791968224439722705270228679384212992652341018977281716222883468867654011498291115253031037009414593233592712427368390394664178098197633600159528340536760813105382078500533918658640317806543872914163446985851764131935009564651016701873874918207391667749096817533745077680469692469870142113227107815590427521980419490238243097313853113793030073679881765739570148225160562703349306533418581441554081718457938402742483550787773579064037522831054558046821662224702948054936774085319507076799375525289266832814092139142934579259605092573765341164487579448621364906733630345032184792527450141566305202923844542481539534815727309679153519234126665371247916368748591135201993001373048248468878936585949781111997491620963695051079261872576576980368789314990429496104708046341378807296570314411863702812163248785296479620560700622269064695666503760819547546411780212415676873336891248797558679197118744096091411948266424585383758043997925958603047413852589138469362325007256729010993549649065966237761653154053843965854323745595529609424395973545910698373371766201311293720875515348902033888431985085299205108585372703750413239527561026411250430953156424674678152752635257354165574169923253315992743419680199970282096674776456233989022636086125173984873818719827663364732129632212529296399307571113335968367861724120280241081019910164761066090689647605614410400003835339310955881598306586028956718643839814909428611838292997285187190449660186751546809224497635481839815423732117422338267895877686665189189803252643713072039532973726016920717918463288486782841423331551446807600252851231799340915377861307246636211302012872278077578360826018763221771803032130161092140346526027716589553104818342560598859373856081229627090182600677092758802578693239763832699814839302161861842166200646363645490046141323567629806379742920823675307027241512865049609549030948996698808922355460708881896810388633373724009611643898418638565087042322698581935647551015849263981962619774616995039147832698520967650175943317641420070296860309489538602168059120906423411663236111790667413433047968735632400914753388121924164909463550824312719484370050894699045317481959277453115621082895538935958744974834732130986797611043155453197924931491754279906955043517907893979078209507514760099295725845122723741936134868858129988597154135544051243145862095150348994066188999743502569726741104166784132893674036975297541119284344640104096660449349928038135678537323355090350885145898541910464752494610741674418064864432458762631763677283208680574828217705439558074538466181853453275071807711351120528505227027116326066472533387759705710865641081306923773336067769927624668445980512122620262645097667748443224200416759225720993176900866023725181292187984032731382967814462151428293850157094020270243974568664902301196927682943461911362821170156176736524395086251490587803782091499606975664526589737134782537942983163257419653405434203419098236564574168641509543022443125138048995337969407456599473594616086436630680251116066021553210224853616246595618449479713010866967089044085857305424570700348895420144903607929837144592831049558166413669024690158077711648422067883093900768195002634321936501832964248116395422216840659047307362310520867119052787711370828431191130101883284505717454174309825221643402165368320242788469770876673086181705972886556626334102265308057312824746630821030538928972193620648007425552114701952079176532371893086065274480709967093832011202140819598609853977069049082339357440900267353181658404414310834698413620505999955142974728606387041315052999548323319440061585862237685815213996398669947439981443104085462645529196757979915940382084042075512106804322292517205047496263430447614144262249317297983332121617242858901294965932438411823911254161102701865444400902103410297776608128935167102616151324177981797201150486764943587563732203492552661304281003664498580623928263821867649265776886317053390760441738490036538135806111301965561152616465790056178110664958304239579709104321171160847441064908779540481672487465739839403202941891458352802680001792546520776913279504215362918425604265442344131810077809564099094063440839505734860447093889118820347885748909195829998486670664104533857236235645015978067111630470144749010240923358598959398730471253421553807423827699291078277518080582647862177758511864534101429233998310405816491866038246171206277584767844068702291041861492247743763564131589017407727254987608490165278614044005966630711349871537439151333510699493213446142064170030733164976494838389292114247303982278307128752747397030144160984050442696825047291757384038276241149463918840530514610858279732758704450859773225414916186107886404093800926409376909190860082187679685245163024330491214557012329980883670238392121122733603679021735377280898004713636739906302219164899550871757329180096622529038655628995860473017151229969898087728580447410551731595851712914953691926167770404992974716797181785646348530610862250158701431112517553796976031057279635899181110677485908980741268957579447095782725472740990118833373823992167527043132939161332667451581693559224032254648705471090433174782140486584804631076206512884881970879016195005246799198101670782410058724247320664201269338314917999055040137511623806434706665733685642716505314485721720399954917384119347766983022138164312446839471062539821135153963258593131197788308187332450186488458604859452652081302860918131158870350740854524151952191049661835208560298361319912521288065200943172420161235692941799900570667793581940099824862939487773939587298041195510466774067758854983489269787528779647117975923921565355654643543723392224552042453665956836444538718365574208226441069342183329182618556477034544265988234771293228738160159412427280684673426858614314391707302804858830988406265433527461195138450698930893945208358559973412895123376407876820302038938717655045302804326947114390952076011812285516289240752088870826657794087973592888785516374395642734584627505072540730179672728852617521745772099859417401715110988161188042652015047131903883842583463205249933174945906412659729334774990905243812496964432781691849277582669433631470226680980801753134177728061852317018924692127426883272312849864430108068599291543424367491472505738490577116829448547702479322329970960404724956220303892048358928227227991562662952547314164679891196080447059613743077357238101722108827796823237241848685618135700781090364978052981009466872413725297214625738141053138663048045299565961050520934147281349500999895956949282773636163386249662264692593828862733965039985425507004294977665674638521024295784713032592675954141086209716493721405415146033568588170118637284860511347995323073166894052969945562650831453589363918505179623248953263213475272024306726957912918446725924316860204365608070506872338945312983609479972556628527969242887903397747632072000962601471179837008812456121468996963832120827869271968073235107801220187763336175466675201760765098117576990613275809564714656477071509675756641816648114083239563999757326523951760203274125554746520964064851014055003010937932200560983237564045799995285309072592852401677604848139850358006364526527087707891038081892537333415016935554461091592836251576933653948779298498220988912441211189082173822560466880669041233419029758730585076513891899137624232108888385880865534961362571714554310424191526015291558537438481101053331416179177063687031034257536645213211119609377604098714830945044418717161062823515460005000649584361486991185286180388319962297609133564042851348936314085276642049557496743110304450146021214805496877344525431856753703113945747692740950479535753470560100747106042334425764378363458838644055048295056666315482583933212171262060296698220301807400811014206071517398136476149271033467863253183591321777600983853604312786271382764349102312028872146915886304342469978089282976419388761655351255068402277911875823190859660831861112450169025082410484196948986307167801138331308624753137385328077242446552291435599082212015300909424488164151102503562693866089903145004659971435969365618044058756536345180889827914661226552794367694520434597789996450505192596673945700377235880573689395452018444271051832322816429549653623316575325615285894003974450895764024410805634846456906688899164740855603617131960718664119891958776680579881575177543058630200883735495949677399509237944881584996359097152106034401180709631428165709869622634274446901944327548223338084126256597292572108805320866137692378094676104516267343137051800643868307611696877120426118220327615786381960180013676496434778418949204094783847327062454331620119519092417565066131581760971199006746930579850174055632407449628502684718993843089977001011454630612463024457950958431934662659956426757006802245142355347013093920111232751985890166074497127081515590548961723614957514089850369466911978615746377426553839847935443009147416889202714915838551618957714864225068214518020430168794889690852416694475275465884267500897905733498252496702460357313426634653916111411516603667182306627523381874967703951886125525041867301086857812510049541134692480927489964306927075733225272621157431487681494351824530868604764279857251041229913141270337552012091610833723070279361981299838177702432046472065622237768269690591868488951681814236392017286597436627664385332986845829609204830535854235687661853545816052289042969236403636783095569381108214562846414223840049372890232785938172848457848443118448404615197105176573203350846286835189212663655338200465489254306983702215273015864083615369607209693927485412109952069967111208212282271277556501410940045595237273623253601023880443646103632020391730282193265681299450554799462975110790722681883423656279681409913523128927761469065792288433109229885548133146156753427663900215559644740459896843470166801965499389517285753898599114949101457202251525889709948865987036103702696272529279345992925871346586907845374777300971785989027140114123396952573161737361797803334976087878498099159050005691350017912763417669375968866108243474760811464148142151072117688203652533091031137395564495901401049577257045917599276102768767610679882715722520878331065099466533857559257650519260841273604797364017784180704046331892934758144226768489499179307702602629410648000802024363800892815513951036279810894276226886627331429539327133283399636655198207162563106168231641942375774821797455418164707446420203573201116566245149108129297993904535162379134384271373884894574626168969284286898106396815177077501314845888716466112905952528113221656528187533456364521809866536985512852798247906400144672264747742562616841618349475391721957890486531962482264988571567609806855048249841883119665153916343727614117558460694446370835834603652873953922589729440855674923568526596535233939704508709205791611200888024087207199046515519216975894101396261027486451998642921096702162889052012110182249085137123290291616334622526862987818732263242230010839225602768299640442518618946493530399336574553444305626015377350677480564801125565446309010020472075960532050136101963011141518219453532400198710480176287496678369823397852659687276289990807734532787839091740740757824331123726346843806091827577555154297330249240430515634225654795476583908657463807901357505436453706511979906915110684909949544930736116086356447839997498493396508822869211799335059534700993392949616672752981540987536236136896673632311906420948206643512655827894821211621227245031583066224908979894277008647606800146939516137220715979306043234818326572118928600491472794586195410516238570623403216446428530359634087873088219999584129024462404314388733518152397892842384901688707958907155278068520125814442134224370037969902773977566207810816870236901902794495564019390470162012451542908614919098014670086687886855042238516324271460720770598258543059700808585031203870859302754916488477601287012629865236626757943220151548422495420023926824659175716821283833814230729542525937363717421460569282821076363736022135150672508891962535254088815330711464959363366176460873764037050564536351982035477156415471822011548713190959391162409083911747486851754267715346955204889489795628766683391334615901959087079087262385090092591307046325612564590986422712924163306115842798420982952374002626448953274302371494571963712285250353442206192182216856560711490777016141682782096386998277802338725889536224275411728490342186146537052900007067865235331154879900807043055683242642773302484667670787511611035160798328189081861799029712466202479999748030715441848996739958276368697559964295325612606945262790071553728755868081174664139873975736007894951643749230256034189592529173865890960319069556626604208482858607897734235780627322379055299478014503182640213934909350748781906828316956816816575530480176230806328090035877061305468694946778388917986682873576389847024542003234688068109458453437995681600182058015210432311401321076011458904068203898050123978758751478254209311089728190555002703972943110009662606847120992934490864672916793991055022262308844094043321074630103439831203751177764444029760355256563149634745765406288870895134308760510277651689265278709602483671756753198941165121746909880368507916203531628057536424508274339579442020972249431459917086009678273267033069968527606286733184171747352763584486174293295782768045368776454586739708398706524244894186401818720267814388609649755675996973027496673946312578729573277060164582311132829988351991037603367818843496356802348692189746651780497236329104460257104862521450896334692231456834624805603691450394098965852083211921306023405510631675388652080376193354374526312608768651829590795786659217270546046970220954587800023184682545307383339518608079228693218134346615739374403768008002567145417042370379685437136739543220163904420196644284956076847102667915463363906542666303420236936801759605134809460538841414433707152444730559293909888608465517173925483498101636359149153827578722163574535391281029249255813352991740954519578992708983850671866972462750552724118141127076090729092841307315842915680998306436944343746224738931685135898493286774192058229687967281644266366061689597134317121938581750149667187795841209662863703211451979416335682027279364494738575978919804340396003810691595907493701647198762979169244783901861359750520043951164788571048983857977870109964700167563669508391426187253347203121448320150741937674149157565129774801501317337759236783996670869213247026198420493862688622217404737911076774812640836112872565005123087435021567467361830573083365941681898985759593105303670814609497951930648822288010863886562234390498373440598343786427920960313654766483115201370866382876166152344997433904161405736420280174701974446516726420890366680940582488475901818823865334372972155571229101061453993867432602004711951872376650026925657830843527048902558396336877244722202705563635959773314814846687165787621768573160237658445413226159312885295481426386082601440749231115301521011096345693778921643495875696362924506657590461605607723358840777904824775780428550648093000391882358879535723733737524216076362419454553915284500589769108191686949545691536093563488720113998556847038257786591199118587326215614129075903354432026004527776194256733185347184236666511981703177079608411713476811894524842506821749236707740531280305630315149456260703253561752987113728060209289837666604696146351423057359660730113055206438767138998591734848964244205348545654388244951788591902872317843152634998490422147124610257353697447383503948994097926160266528426221804242394480630990406570087465702832505825292036574582514652518057306500078923339778441651914855835869551637538655652857776684997106682013829899863301978566281117736126768345561419188657099314963765950129783107264461227701723561707467903850088483668501210159106712656744279788957757762657994855542887949035551403675321622926236522949051830651314748447146224449701032156708749027065327183954102957944829441070765943451671904834110675343833962780235403715948710017505220425024008960312464676743421690632266983681886162127673364629138805414491736551001841576918744188382681150799254285239053244979616398975648665089436288573379204844874712035012026919450676645563939030181294133197810947287381108313580090543801165193564322101669833210728876227226633374727484409345042230424640261864653774099541796885518016071840151758067013975610805603024546437490205225000814696138526765513318863790469676342593465096505388304474762555138997492615307940907279173748912379407806346957856155482735577644241756279930410769681394399310145291289591318014935567053360066062417081553066579309368317673233995986429964121598163905067556041206727621326425502583363055894580068063839504789356031982106222501771226399942886595527884357348190780202383179842275905117110264606531873952351407235721009005486831761853437000557615625503586469935076488246682357956665575948356842975035621107823392826726951585864904835014038634919386266286971737722806537631188792735518489855315014944446229052504946400122287719399990081213341537202706666585685727469727182224543130232344155245815668143695315511996036682447992556696954409138958560856674210851375363939372156011783164380930950264150970707990678386558369088110943058016585558060246598690479352519959292641520352202886565826403185395313859303034315682686517808333996273104609191939786574900052477724443794538034091000272325253796855128250804399528700828437346436261641736728884280998791559536664792530496853886081231639290225972041640490393235039849692604983744987218034178265818970976870072775070453494716763877135503435363380988730121568730495879354126723477558384113039820796891364902545455107146916991973332073320047737015334587825447429002811970215090161644054993466345047946729927208496606669043840960199356239860759820698583723721197925926115323705576717093299424050226350332508862826319256112849905338007770189921104202490876858823377469164881778454853362237088457352985430714944140893747068033217067598442663469084483713180419074907409264672273148133021097285720096458385624234068551953795917180419627670742695263100239915264522198232316785174398169532212208074307410180383559910895105042294680332726317151823384992691334360905770391158584618773803767794833589517490188322972762404723561199806201620297096311621542541203564654045102883596832442467845523808216124298791301605375673219364919376570185712110572860505046888171790471266891135874237883746361800427303016453246304767962840222857161176299485490512725021889599696120060639702748336029244713568864308655178732669109240495856389360051492680769368516440872671966423338918747852709642665434321741306908033542759963871611012114133284521551355717593472728400973695484538390644865185742299352496405869976630317846267859429067701277978479520543243855388376655311723944531544376037238349666498390603266087340554401539801619713010852668409594837071522590045715143489942964660469708817787817566278619544521585699990805823167252629834911508804497148429081648247160434880311032556802363667889472279291315224636159513870609704132723967726002207467310552672402746652210592218100696524637337562357143242150718504915378952515596094848277064428980445358445735025723381157079024526909585010610859174639189897014747253859941178485814849015709332265821353631105122177529118179947098735457611134397197995147029161518732951925975804568603934773509281512706710216772314768413778275927452720269507235026863096767154721310616349712870223619224517130203505683470035603616571125288237588474557540430195494488057140965490853051307593716333505379097358270105202079869701882558404789660965060086593796842804953252284125044862424910844827402800735436047490215997804201708354301127383933614472400599999356079061730398530004379316245537862444046730776305656821976798253202414894274795681176912218195136160500712171849273042614000737845592170543656526489505317523642579949571940681996156479741867177139811660392283475690583038736844679252775283605761257475008742515386945478369520378675951303852207235036016692440023727112011179982188005598788090490454613232532692452709480592055343014831488320054254364463570155696096709019370270066193006658867307843762460086549375083537390428815431620561215885198081091940954967159005376364544992196569509588458405016212001596912981787942327861267248540894739629491299013704063371403588122386572922808673004192355845333459520359716988943448469472774818680308783665564978492342546658419244484661938120608327553343560129494173527482299609949763806676075013017215375454422309057795909363112651410964539243294160913838339832623566767085370771655196707235105636810353307601535419621373267584988604274554785867114907025151531971939011450269561594224155132202035014597566938149622740620773304852738855537537779609194885871646570960999964558136608234555938502568530877144171165720487202551963041616724466511023255345324396849015385173659476976485018174245096462949439803416899386694379062572651342056058761638701083245004739505318036216996396329062283600370291200080535878607258167968547486846514257315503050542015421979432612652074101878106718524445412785757672243667642697817283780475761680168987798453763208571937741661404504999616442305405632995683734243074527221183423833702846606888526198382854674946219063029628467098436139810595250425328997070735295976369666632428276966118510374404975898363517156374666398318941897403381308270739923401293000719858080188870335958764017470272537111602679607353183226858291452226523775858650985886119552684286983831000885430213615007680284620382195966681258207063262816248104923025914162425267710255222881726158753041394765964660145571951739781398286108177932358944406293900749779214700353794114493348390201804764926671447724748802908576220577382154849520035120637832020322897718865520407147199798932163735334470912570724385705046618748731984434399174186912440511053937937182969124286998807801998533019102518238793926034899912944296117660834677454932441539520347709758365869294230375741106828916455679418550168338126049294813818936312735799120967257852568416031148978736706602130298730570297110904685858450721584850124466757742108249702349325749176074577185756185930614324799693908846731883856799220460014028736797341513214804833181757507888637309818481878053408202741967761757850278739778006548521220693445376452715688430026282668415368260743761245052880588816667357861250058807905313546280050905508452767257547775191465473443821907286232864558333655894630698811261336661439476640029577009176077030036990064057954531611093223432660425646728888600048428774589075926512011053195463867958767134532014660383208729630037649232467880323006474440849409052856452698244776264340148519672115406650785417424460749255687445538497102932686831029527711648408722983756564725939056586811680114344718207062083833784291102917000261458302689541400683886665441913942436693149958903147507024318613164043953441423470338449712498094842641157228178837375358839528968735341402844893418949218178986620419933977870981980466436455516860650787775604445256307456935995435606721658056427155697552675194107078906511034437753329982891022683161655703689807479415690056162701897229424166530054977481295121281701164714134437866087859085021334870567385949653339647195823224832080884373559390362570778878104860278573806914681682258310887064847027123251426253512223160323234103751725655007924103188383550910844327581134435316907555663422609196265615880916459730024784830763097461957866628812934646505074886782819473192610542698261659453414401596144096104605171905910725380583584776121904917172785231480917019837791953381112780893134599538116543708298602447860909189554113239740960918191127382921955077219029076980619825790607463007668160880347367107036101741388673404868723686636806707277522668769445360921848931518158252995890547148604799035935410088006745777291526081949338120239659733822329458382337041101502440302383761943253213390475126973215809951931161508442078352488560808467357247532361089710034171863641648183229014183497382369595795529411297139335877313523704181842689862830392959944838810602433282206409635523720176758919269782405441899025529064028729669259630487521813005199053003669465561926337784534694968521841037524921623657949349637863116185776751980230233650382078859179886000126528847154094487891645418560336163225183837317138335074377568452235033193312804432214921820537683812688491055839778012397650896322533689573479390135843480731871829366078938004121675642049035145092702420444881471735726150413863369303443873870877021365401000263629418882931262710308968547085440828331478542827169526529223342634211417958290771213812897240690712479746468620274188939313908784612637825531064285937593782427012308627658186002737692990277256201757851656361398314801714450053737670064557699601526975335215555501811949582517521642220242233522638905892006123691308907951259233827178587482811168004261514608539153436242577560968480571118247985550159547055314588316614116704230267107961440462229328061536556056289528473430449157233041171149411645216955161173025050357473006692798811914867672683506438763432455924144840222095928374036157262398320780151441330706519320297404167597944566787650620941373086588796055056007464857278943392202428042508781364486495933197435310012749773921346024849584743912500444098483221629937332510811445439300328582382179229359548513515159355753386200320805432165708973045735401433006820481518777937502015433425027775798205652913468546358001138077747597887884329952593745905253745113127074397426846494405495395796701916205131417021111955780969265581954983170759879485720404031804809212987133624278083031114878570875680681909947554298145999798037414413739561896296777407787959770620754858295498610964875741455249752455593175220198995914781125310946410124124906358114685290859842938641706724264792323397670783854849136339340668004931779075130050912086831142602968492132818951401518813128322559219235693974752821082624930420671072029420989291610036602407725782494855683498058034658655142871103354630379695533075055362927538752269891451455815244801120111040166742427097042224170988357833907779549892140727278147249372818084689428470384381524100195555247613658140387136139684913273573604823381912531729028330515035608092420031545504313579424883668410392745402141546340631246518947401727567871667929266989762137113153394373323685745611551052335867964806550816296538876103636395260602190963041484716436786203201149200930235198667877672236244842578004371004581789202067493450344846355206007574822530590219012015446490366910294148293566061091571274063830796936409285073881144579995853471070820725890583755612272132736023067411884344332705453520304362951080990698837042700542723936554407815996350980367208907262431729955721722344815654439019940327469399156201703056981439938848360142239792517092257418690777643144615526920238004318182945679713441330967732000549395126943909981622642989043179012500286627936638469584174648809197638456601498639483725590410702235010708948795353483690815354469842726254492603899669244940074041854006746764979048392422245033034092273664550084700684998471574636327171230632755567489664145035308394756509458085307369191449260232185040564207514406287694838137219540883339823803311805782331517685545166728640297283527618666980866433814767845487246071992898459535781328170908308406628103002839420537927096662166166778711192621807533741546801426283210632062310113995024875928755219417444428621339472156326694908254141827303218437251121321039173570987636620139858747591273159108326770861886040292590344597807705325593385351979720548376331366771906976936925911526003935748980083344975212035031443654551928101824703916395105065643910563744215561528382517841610589753858986660619790449679910881319193279493735596386001991951450498260892987982277039395720370551564013635062776436240835710020798418726284423371809541771954686739510477297137026289980606447965608322571907064354503649254912656245734972907960905287360412313229612308853274129439818958245798496174103790132792996441366603095427626360026926341748064373396720289136436963996271612346303730477232980491956992720391889431204573045218037308502197851952354711806287448290667377415777009580396691783834852191947844226759289843496638536592739004790239590824813380638304340834708882503156705291691483916873030172915935730007616637934122841577160669033273283318047259612478792940812102121977936189452710517515116413499830419429715467688473239015822190361093610839332579935892809011714964886246277658230000742305280768409242852570852786994269815135034789996302461785156870713739530858840911529116470391345670933780246761048891887640635421895324301613018375806417378510190178671585495389122950804589528296241028928816708156076207057364336938675496624000510373125646427663700955944546296452455993340697402684163707291381992792022662542621692037550554821062123255511590882369611588765004228034935325050494651991824087004639823116826189000542986820324859268265340745880588506555875968690953211803287326085552824811054776998246551636550417310355055622924197160311220923677198247265164446960791351423778718512325836436341848791542754303032543435803673194001514167079870247897028749043046326679490744728058722057947122734736489960666471048537528464557556723020875951844326749890039927876935575066781914956472076748068575125732239037105123829927538567495499637266880586131965223675160097434058574531938156875425276613852485219819195123453240806554455606046920723539631261059867844922361680932830249695379035472226205636524394534697553344497506149186993849893782973246286458915508825322701974975989618932537649401261074158972730872518992100185375019124769208677801689502227766735676239060538381624968917995225768415092670066823193706225230128295274854138009723263269258255140154690524105414871155586519609932190686967855434554107420292520586784409559097071805583875397949110039879454015762126821451798522155092738936998827825446704178014607945110251838011296529000398881754041902595322732787083207367815627439832282847918797339843105914399082647479319709264025358520887410517256705114364963102400777963573876528530356484886303980057780618571242824675587556391800916737734217063881723020426000351573423657417515994951922237938689925733952973033717092342534834660396061136631005919743486572719201204841072883193451135090432193971448312613462551628574132746017418581121237477219935929070248282561012046645229434489172902468983544174305889925238448048217103875145607757715871307993737811842106096037393014358715011549584323156545976586273948606802562376965222139279698164444296477631630801293742608704058568069438634986358678009696537577983220187112457601711080593908223793893478980691573569977178349970098349716922836475043836190965448263739669439446217356223927356287494729315385805405858948021686838699321625562268252970452765571431543187662818267250054834468938446869433647547714629141101389045167460624975012114126864829447001198798535699098085401876505360823133586978061079706007659119087588429257540419651522470616697959944015632734336378350806099738613234586484371296175528643160321811279104854527228676917605952759913886825680794098998871456431313928113379947972561194215635133327421814111190400413123263269734568476025680916276182730101646512587814504594503134242340382554300814964200043471333001825410885710306567377340201681913791239584411107987721793565400881431331034663848855488364582791811707288303332769336476424095170270286465616071628110874650425360461663209764221472177538348637235487536779625628180179387271828438303639960630373098775331529329723707869943386141308138443984248633993459286747208091040399401054255318437906229062530139488981289633725948918443553794379017012512249290259546430871469142815195406160954143879661092338532611766118727286266518830265564464531115335103238982058722251721004570794859700403774492416405922130607611805646719083063285855928920460939663490175338918047754431559380117855477312436018652490676805149607262629978731586577790259874692485796908276148870390177463108934840760184421673931004581454657580138146957070962358401958019144517373972076269491914409522457376676132185229624399298627111761311049583076133459191632069698711283840083643175543305466326090353957314776906135086494616379830851730961865895632350079285419085242348469524046543375324104278536482732048057232515165461501208545711880851881929649147581413018454835983825126662137482885458146623745688545883807462100161229989720730770530291259773051987376281639290854379366072563649742846307118901367500062724160065166245773087805936158843215885303428985878075963320710393088130638552591663065170260278610692449146893572364366770370055469598981123378983155930498893099046334639701997489420557089726175446889335693452742010788986384138646372960055951183232921350957694653268945379937649980509081404899145312078350033484800865928567428613891174354375443040068584450044151465345985141850565878033257605547925379445128054072100231856624787187657279516431788406524704256601276384141562187621178603122875510664854759430764498471266333446056371320950361932681074463414318328689258230761589758347985846007166458350426689429286491087952880403591920174098653580674543695118619757677839008440602278018640151011213917797539526004834771445238994937380322994289777602504475764932599328724139168992179895430982348549115006942735257902021189670041300872283509013674437875916459613138878119958148147951825563727562189078138614016071999720502632525514207895344954177970263817177338322762177004107524217095769090371816860295687917442829035775400293505129939527873713898016305541052986237666835937133367059522410410253276378730890943458172826109944757469575774330922352942080804182104769403763937124520480560355408188471862083687618396556851724069365709527908301240728704751847607223292466314997243492477642055020469716086553870102965770624845841848297983675703929916057177427216129770740920030850329697354167157046347360656881540742867910281552690730237910285811345362795208236424178646453583273156882463120786797652567030261201138964856223233911338544927900574855487041546797575415256805151695394587921051613995789011411703369969031643443279389465750310888449115593858127712597494116041502797508121174727694087228168127379782861370041105271125526062979297649955960116309648499894333841913679157370003713679901127077065318895019741719366462402272090032797538483456249602088208984456986243110469138748992405001425328607492446628228581127743566296599878749059027525163338072897029709356158280064446151919735106597324883441471873187803542149892459405813460028139069647445173011559327820921469063781598747430632842997884270389545651078738935884951667077278527529789844023160475426930716023100222060618612854414848325023978972193159240149157131861511609827388000856482738387972259115600484191149333363010045212393426353873990021240016900791333697829445802053550158566800535739778198542182732922801953683924137013617618442905107112736462695965412897072926240377872467776221907078834791953085145213685380850479390471288346856577976973701655107217533690321482800528133715899629546464503458896228452454224852411630041892675895121524529840976852347136972732996838572054061393144875856308613213295811032775824944182024507254682237944325860194206938969530696507764517363596166065846103116685573608960971182259734386670748727234116376958647475932503601319069460773316212138757286929625048511133312613221646338387094373063282849018095651598757982176247469483466949032642934512356602386473636285093011160802402958701929498459334139194222135666348102163983416476200792532148822250615439481712679384955242973949257303724638920063450011448206794313669807732641916821611715381115282113494012601161210632721695121226295411698388586749736300993419536852474464083659115408100397577998008715688372471294910057423530322186198075993953304271796379071064581541539077726038032565421316833922687547853738306766149629692224759175993302357714461471804568508995636888183925340432203566927506554827297044409407983913507516696721584324656942927447462681123778332752663712235231988541287029112685553813852789840504813280770719635024952146360216078242359622791355848845981442553509854702307351249302927314567388476111396440958406713626947665489446641715732432724651878118462097023844579176786692193509156598467411803736440336413941596807856400350031844562321477741799505585026712219457099072962471199354895914741381618112170804164405554557030284013362734713816246407311518881029773832249066734018639367803926069242845361823404233629839757860247809686323838295910366247933368794269967607436191418185330040440459569441969758208202002841668044657539189604250918898755058024838970480834808645968733623404801458217124517798672000698676748305791414510651546188848731321099065165314843453273366674185918154489155130548460029994088488832954483454226646893999008242120134283380449158751830791514791538023047985785849194205623302684284427247890438272330761530074315702308990765823090649915772546008436030961165243845627017491683529811972627018261689734052034122714273237985965048883611983753771630237578347624352236811939840134969268703082698001187177752522231782610457139406669162706171043049258258157951226005727318532998888800689716617654776156092964762117353040384499629132411108677875459892571219111847181019858589543680727381397779280750626719853277098941683619329639635977886367705138685787566943998775014239697961378099318343619116180952495608258249060050642868882531047180288426833487851191525782963331685816813343634128004846185114365498656854879550724998293499920382494809911777562079274392179965035063942823730499193891548866723774566625954674789785393787504414188453336151139494003751686594754360302034309887216732761390274019756855709343348133587720541870933681933693506132434775750603017414723511632503505686078028023649569290824655277803228588706557731101036237956568526149168323824700725629417345643884676514838175017944249542536238319181570372092331509791364592283310734747404679406229070565238201362148168111934557838913187184756739398593991270746897454123352482927846234072695459779081693413267772731472111143597809152604734135130129920097688512191513705309883690765779753390295008238072680580713647255084371287955505851963460918582709267459666183400697420595987350587159293130252572912484473831657003472815342498458368373541618529637486797803815080672236669879247770928550305113762993486082568444597406765476205743645870720445746084342645123059547599164405826518696653605325198604197672450462624151194312091601733465865670677419377092748247025764958217187853242132880403453911327119100965841838579166260064737553644041792760116907230743870036101241775795700964991130156812740086027672854178660145710508885634740491084010411929491077790015746030713025894460933759169297417752169795886499429479282215643962089705301408278433897284940107011118104227609023150397817948552174609741943410875388665123530922831918957671730890191779710052829303388199452870531031026854939616537806096255785025406204052524521681065188777398586507522189450008590566166759461583079984357321473296937294763442500685083832875352008724548781570891203328423862516990945378722068926673212850180191726253881093672104443427099208807466586691864887255617388517946635392562673991663395497142896061267357520631585361893181012981653051346103673564432374052276635746490817921067076931055117094996386077745447547885986063467379118439673110242979499740279595247364674257424412720514867165931417899336204679306524318938686427508205771373459540245073879133308542489490605036125635649040058974498105307395343598248198186310152425410194431787109174616161010701859935935637288566431050700188756466516582043050950421513550869734461498361740606134013552739271679674260598709346524952105086367175527882374815285660281216315182650087774496670786925432773068227800035790626101647926178570530461323863874228180662842983572916206123240927787767771307496936225787370095911593735937221003773171580189721254537820468130220361727598198500292782935209665142474204528676149621308615547387288939548771290548510738095124459229628228822432186664258884730116554016920098243169439765263571595291365292387024682820461182618160176973972483722445820736326429065865633965809992627028270102602526197517934023283823619967973232876871321141677567875816157888944711108295845804817030722636763195752863922923580201893515870915539811532698794194925750512520768871794944961713675735465695743053972626651969960864534431300198937916237869183534676024360007576280937960176911867900632499496532408548353071481288745828231129354589692542033228311325666895676197063447577753192557108519137560012371817523504281978601492633659631532209057003120500451341113264746447041882108862990294627613561876168449297852051092178923944784743228079435620609462984488159503577209452654049835507190422676660877161182153388700179540403602394774047738210713439878853782811213151386891180522969942894013567239335346153125596828580341055004444493917643788134287998371000549715995925421632880743178903877958937494742964877226341865782700887203640901221528061511294725820146342562438796809203737160080742087868360761246197624681867977221537807259685629062742809606535076410155779332699453401512276888036478155472003982624278888626589500556985032867269329887138787213572861097940394114366904450988227889565806374315310656312047450107073147438695498400100289041418500127551550655994916606858833790541926274036297296689752430559615506309779022523747065893000867926192516893356870873417499835546460942360018634066396879584790349430030960339064076417938854114477351921996658439390634941207153954707785589334496336926218531594798619366920547647615235913362490040902052185219410875435204587284144688818890439357092785049308019102851401252045140669642972998050357171335134231703151035844548405132062501290360795667538418552398151489119532003841038030194869963834476686373063157221653472328935503927000474410430132848064283447038154801410989521546868976448059869441303080335792535333937897077884240640026334496630517720962519680804900623754321905203707197216354222147929057052817824879440843303715335437179798578391649578474322789038863613231293795470816142785534696586525287903346648855208365985016657172108716383974924406850328585961422040960096086348449362452343916735343322726104655377585484626112163511645712632976093279719506145838182900857873105903309685784924401144124149169647918479548128448587175463806507830194297894637263718568632918011254662724728641883242692989607926634875566367396837203258351574048315804619289848895485815521134284655538848704142951385047992358058227018775233438570127135661073313861579034839501678118948899889663453760481407573655565329375405731724209553039701074605924045779366949657671757722685899033519772471175079489747047923229279563368677726728467431973319170685179323921986222627473459904241852291320018463632982900960626145114237464567370907593578252063656685304483047485497839228065016020499736685064924529183110815157399887919448410116531093472725306041433891506036419370690159249650854241362938627290488210955049771530101658070719403315860638721147333137306518379417791632942158710424544299534110247246834013696599679246961418206030581016096632851101358841265288790865249254834075395843998646617430353933175883484577860954842839539465663594688193263912216329259820409075736825704415923909787233451360762330819930764212688494188437763235784140126574914065023361893656081118960384042422063204758145679153735721634290363704974084187387876934628857423187438712864477681669272834879350913035361585791457043406779544934355019576724634896337905483957955890367676812528808595210896887368686969534369649904548153118651226988111233989236266092290527900004947961049735137327419020931879090491635289470259839887616713809820250491053239403083171508245117875332208675491915781782323476182827828127790752148298438430694879789160781063796446395805933730417822303288611676748241581973696968493712102377244189033129788977979892174825828199821700575544436448820596822467848331730777510291754297448640635840290209897948175690598202772639612491196019333863138809479086661029922697042091716810228682276550080798419638348361541358334218965095684192940532748085163440978247100343558007869272573709606058677240953734458355429361046266409249419854300850368645470326389308766141140915626969540605027107257117846996038066519378707330408418005149218191495306938917811518557606899507789359073330161923769918291287774227403144645271030923401655932851089449193027755337059918097761808102010963820885426312283782998074859541739291827939022123386112785060877455033371244736778082864788599006965800645412466998951100917682445470097176956539865857234613234385688963014659951002826920460250534838238766172342215103549580314890787498715602546740197215148964794733192549665703486148820574047754666936817954654411595303730710462295896211705417246602091623765777661185713062310939351481042655918564731143959203341304601819140389973101506737063514288050246267737641532523242127310815128029863352128011245854199723110255652262976750669770803753743400207246239232748510323712622768415012982154006008279165296289216534006278222473640475037069365555654520450770437383944559498910544283004719632642611564544698594493240429118114573274288379559059938375060699138373091540363096647356496067731496760077575399599207218773167221958935639595120677612191185849208439904023512631642291164755640518337504611440946384788450667702695339191799313787458361268727675675694756439559963541551264665671114133413583695768360558828362633857492530442422351840394500577442713619280877521116923391572416406461490585097150244351437900327587119442651703828426689929147526594946477808287101058715836028351349591721967419722814283203553731768943272654704006892677746625214389616721963042654788932328059719705963710131448201528905953798041733040540460184365515717327991273840783877885948802968351319279568544942077522500268629885501328577352559143520248427397748873809722846618156228747305469965656055960881144883341480988189886744878863402382425751240252067663618493428791774516432873859736221659161275226861330179495678456417816957014503171908423866340239545197543702865101453879518993028082087097718790083254902332066359652928500161038956515634217355359650183110766457982083847641351909820663120704166088097182908534004758419614305077786094196253216150578154853572628626903012978112867788748497984002628644167380417762709492368311645943406718467227371722748968149026570651203419176084815419271518783802595649881443305225963307390115033522839447767570056073776449188972875417894595557805378479045884646135668650600934648687775820900397648510123536399951231005495805246998208960327628911043242811713956845484088340422216001785861770357949476969107152384211515259220174058240520044255744931167766768609612512428228583095045569162193033328877956101642690760630065428924662803442675786395891082902878425831146515383134299226727919184878975539303039106705116806542825988166433334010053326800260077963810616325566492245128583091025697270281856392841765831469863148305920472723841947786184605285723000184388586361567416499394805281364620247303474549925853554147459718582617189451067241939346538595493897980011716966614179950888295528258708542922660684041972360767237842148529203873134878543596925100517206720291577297338258121801090050657313782520265627341689432104228428710070107817176560397406563462372859040903350271806314706873756012008708298763062945603234281079175607119217590715103742962180912367948106846808786005161054297778058007545626284007458407895510636042632039819358912963289354979559419246645656285307503288661025572455389401971858900574744145344073521318658814194570068081943913117240157367046831805165690082679981146530115066618746512657958059732829113208047110759221031971635041897659338366722744207619614983911618732610245528265466929751310751218594896714982424519618658759316668166002844264252066396356061874955719572837185919557212977250933620243530816202417190129694388882244977462119488456835704597485771652429831717146421330756955551273469476650137516574145900462783034268459383068112678001174777126760832491618395063942369092650051119209338463012877991498142484218608042440562447567921145477087845210657469237247937882950261525646470082005072029500151857849746282487358974132535392158789961202099001710281275968750685452402940172291468415313978844209774187250747987365805566855882084634018586769659358875376602652275648628747459485192603146790226967831838916623996699347229379210426242128171413951362317461548443909412387884787446252324048662128580487702872583220692490288695307973151032969897978823375581857615270967870827027883780719713419837490160850634113086105943855096674764532919668867148191269954675784149478005325942400528955038241397507709974669462641843952848623461956155424365354292283491968507519216896073885726450725154583252893818664020393432293642167702397202393377229044541575895817153794884930874867078262679205699674924799435467614548050923582105968293769702644149313905210246384653180694524842712806039180321479037086877444876845053073936808675867181060165422801200920296483873462674850407921258093331143439587456223359839444178477526217386878133216167597176943581288367609543066996200369067791536564006355839966887772820207852561073307671713365972433591630668023425089585162544856490423644077604794489048196400547034668712189248150640991075491832652245666504685898958429021963973533140060575217660200870202913352449800910938481215510724630291624515814292104396795343577760122324187921150324419195291914669129332153708517263286014194463428358749717208474885469865421838974536589371681108819562885371929239842663561672108263384660725516988744634736035273943404799102264955726416114945772805006521372843872433165271554708007846604329661471584810464314986377906074339316557171415359264733197665723103569525330498253771703095883845762040343796683842857137596536253674630545424294788653915952776788181431335865721103371380182846475279864521393821251784596481662401668454543375633663915432667427179011335891319443337106538366145364379404669981132870651159823691863366313106487784674756067770075105416132905921317733090142688122886097412045449348777063901394817932297902418935035918082911338087316567955812706861852567189952324928504548095697896799389646861169432330090246296603380846732708722915275814589680056086284131791200349896827616477483811491694130008328565353025237529657410740314376027951723547588079518953062520483742018187089276238513933849689244077955730771817491227294356496001991054326585864517036333553510811389247740289602196609085017705048649498918298498143079542968287436461591023298532238332998141014767600983051210950234874543180817713593205187023508269035398285895166423717327715440421628068256747065065026221571007858021995186904388420107946866440209495235616770706739551690024600105053607563552839142665239913490695645221281000415099595835028355137781316558032518543110801453508960445907333966616002057866656956962445404121621506207448823177709583116606993461276229191664452184476526652918315954669910144697310553219666968714261841632711813067243317304272382435063895930946987922805316395134727966316144843702663585484674942570905099819573531775813057216153050756714296307236869023019045890390200858992091605733408056107308142480078142954786581880986742378089077830765203535359337827752023031913456328560065646048152398006291498524961296638294490664781347437431598691344070040441578400647073915373365769337069250925724300454318759763927719209474770424351167710185659466648753703874932454609279914538254800783417905997595294488974793175147735729607491739654781993696406279348990612013957591981698850886376156189805926622126112932069953072501355351006345201743763010279005147881593194132058119733048166715511078154585715462255030065970374841523503889650300583029065795131781024300077503863896970184593078903935961430648737364977384652484696758163578912975780183765546504814261557874273325428181452585707448259851258689472477976853138472838183373919436876692971551527211503955693325981291044378769029222557742718377545650632767425436492473648508208530990127812193855948233677112209509001675274918364854140053897603025283472350091852391331814809375864242419742356916409105268453146897305210537163514267225310894218666768902775750033435246750924875769987638459153787812365201208024311076515558357410982528590337198932657257246893597083638209250724132015630211343811241869103644742134356938364767796638108622997802731117737041260014040370730449318777145265754922319681485664005246746822458546040398607711896872634993786820731697847246662725741895134006254974415851382762152805617958997167080663498710420911317100442935214614861764895822220082259021488690872933787345632717809452165521118352726533445038159168131319078901196697541057993616005658713763805069647304331855848848469691426901580941383259522354359640679992839004732026493321174370211313568523639460029967002307954092065655510783960908922138374430051364127631115799091179177210999233020090123385538915441284510056301254112249102971897766637858967349482429291945376079428175621427634961628335393502894488270094591549745526349665995502968048110766925417507675854644155167111218384002735249748179748655370413146617970733911887367836178087640791835186520859245514087264196602447617966447312871920185237994655803541289046539443009247826488247357054728176798184635869364448244784247121094142280085853855634127718035074030398570500473652753130714765573019295410821210138648591678277939765893188878920696349279147942789772312677468279266755090928488892054157192857717652322802093640426967760482564039781343644812687246272471248462155652644482219288654632522337431790969416165223014881482447870584437974422985444281833112762207980668313942716665050782023593514976702668843163970233095052540336905548790069848523825296096428512577747710675796977671537056147468585664368630571536803081365758997963525093364509187091219794089578907836634947552378919026599550002608545171506516540457684063503477596361494321714684839467988930267149533564311987820033835410713667934960305444311480010103295913881051226531380389714744540789890850894757490135491528398300480631526370919612318690266299645644149256642700877544437253426066140111204399038547634217389520595268486273417735793348107569559758101175994864381855500621057101428885333451028622672675815368090589124855021162169465812685304342894408041678469047678730619879296460858700354832156515591978209899882499195638797600413142290736539695958147466925710206936296060676630322256706336827766228982816076771094941219308603388886447935847111094581635326500449398994456887994260778145549703785775115859320698974927355612747435704868069624479926913492015430867620207035405687832913530534239706435792440737571682258377707506635063007479743847617698304942370541591071060341279609366088737347896123405572833141753434132328267490235872829571597722823675935859100134128382290863912713411838143904688972180194486249326987039231644158941920174482256959171358796929855267460926700173836654205753962015554380489420683147336269995603037717546126120600068226863754307550839283014286855367121147633478185252406577896355465609045078938292648085672769211347805004389924613897418576994398848994016370754245761033310244079149314156625054870617670172790936975132206708207768333452266075984633990166219974423884183261623784506567835882059724742305739042342120874528373288335595554885358522466944947762221409049013712780368592385134371091465576223965843379811061313617115226917809378725903290484226849999986802278378356813910613472464180836827919779131391749103170364544126738742021848542617775126708288647878091090201482821434750319228586596224848531683583021607697587712511749939790678674385144641513447448541025899042956111868066211620000169919733192976270602536105170565266088313250014666682013091643289902469914278283203714330348704894339406537899721488101226606706758279765272930072719049510271489786961524004929559967888470199505930702559226780824306546945879198304303184458056443608675453637818267021700753997654015660507516496414036865026578953720893696062301648380559045467555458525641942936797480270045603466204832210825841539760070208561231409279855875824633469163586991022739960056066584916882184335404401204986604181386393060764689022807065217195201205097448605415222594175701253974092525067539069893682122137516985588881024203472016575968993381513904260950132240869347711783234749932934061024994259803946691502716983927799910802862376788905089421064283254693027413307799570509170328262622353819373043384525668116432564883586268139853623014316400943218440315763557145339468623122060014915265705675441531320997978971801999243014221273143288523138291063701768931398065492612670362247461100206216416369149587968888263961957555049488777946772843997883364393651136648317724901832492483272780854129326286913642046279277093245272433031527277850720364524853666917571253851613064937914468579905261140378345962621295111124161632849018093105387370609670339693368856221142908046983424184401292109265226129949155874859428888888483273836343349510975412879373618482705898900437098989084832990794215516172441161189677771537580181715420002835076327526943349030507776659267297236098716356568051499871664404060454872995848185459692791877422572616994836764966886998651056302177738526231321321589405225364298273121601822380898068357152304615930296913434212396118497669059719859327514068452717114450453689972087280962635505589225098677871023089976988847885663305494797106289099775040859390279258196710748123946474990452966526643440157230935275628835260400499808130684382996569916452554061528563107662461492393105146143805290650705472182062081496795962536119682424505512754753132248307850879205034045608249032855389811493221984024633298458679845810150388318659436527656683312182494620380220914715190851283009213307435286764958775430405880138645369293656408671257260753153180237079112829866690158395817971093760079659422898653701596817867112072901817659288104996230197845281355201313631568151373169552342569090781694756540203928452981934069463762659608582983490867959397882945178542825586591517589602837910716862678321979811365102145479858415777589504821793694745516673555145343306178012144998439041713457982515044133162968530037171526166070932659284750860967185781854103791524262650524172560026109179476918597745067003481700994291624888497082102804706263301095764168909905502465586347211965006728314849919277394208636025955466985538258473915136051685029612552776114663252256286912989372024936130693958525856339664560038441398017836583546256813428660368396793359609932451596259566951182407132363559032633996610432576569460133996337056328259468417333647231089243888702165151026754897976080281979746709484740163327730796884519150582487148945575373426716766715931686741259800738377484747559849687765993599233988064061919266526791082986010870979946582173664613542357364949590228911514427832290462470687390979385361805202121033400384777003631523261322159799245182272835191910264032500029902974126664293180561885911646245246261623792874258084091065343469934039871878460681816089298691665236409866348584761615292446390898738432101063942519707360782186050463417129688085506190715293909832005304641791122457171781336951475176842027747744413655820615963414087010505539114907469271997355833768736935451030399183975476305852071943666336633540251800694501921175961537515671092102170235953222559811788582427535969532765337110635500330701760666063055778418264544906906895334227654232516338495066354418227262389158658421014308755518047846684724813203733185119023418372920661287845181509697777371122921908408522245788920599244609795586453640240002595439239499375790677963835849313935144717175837250500209835676151421716899499855473278436806159469270957330893320587387564518673903524490181988179296258264350687214181462461574529567793954307091815225324157226830498935460934549275721305630288914613611461173936080360042477333326715293757400547045469160692533594299896670333881186573009323869100553968849812275095218880531833665558653122974994409095298115186214454947099164668860523563238279092147064428834658283147652335703818861122635987158211716903540523438562990951819401589310828074012683950794801649977383831250115222122086596762212453372686515116676023628552893044017335388184743220315009729085824778700585801044953065385758303402719492009066651272098886544468551981900621759643535834473190587854176222779133479916007362337241987809620203951961740591508747788895141808865222151325228696842006405818769992408199785986999734024148369496832054992079173815725224559697203257846423081869831912397660256562469125095779748003546275651978889347131950935067345469625475882299994543153868807951041772572894473207150553661648652223790468118372990417099778888469678454773808194033878778420229429636052046714259739817373640122974538875348454909270283979725197074327893408794103568029572278742779615689757610804498277043459509885310839550707740199801509481228937902409899974945196258599400406252296192203275084319611487219977541336511830999405303122734176857169072747084447243514561561684504641772560533840039958154949108307667074791206677147244377133608277828317383816938893986730433581627862976968277217912598680142381168485532668029090587506865601543426574855060930318546111615036612498673596498141206255368152404107894985118510155542740004421433643205730058562998992004274693804811597962822884496982894030693930050855244263057177647662925350905268545531596167937527343067165620817574503450156540122332325037147869667358861681310663851389196142835817470735902505777237031359352244684457599651185017437391372669343681476743297993573793867434198641706262472427572186055434120605110114692854603739831348950270644292137244428415158992746202165683082452707895768425271172188041221930012664884779601989721290256411773086795581859587247106743865076058870412600448442566704062828815322372388208693040863578482419615826714403881977162422031431893043022911702650943510807832720526196051404862294697289569827917018271041964943904737508291220644667636740911820306739255241454980570866043286304232995369182861278945492034285679186567451942908190665455189543178582903296987895620315904013789776292996248649659052855008985634987804874595770652463956435088653089570217148894489177340878144928775325256681001597617593558575185671292297402924114783963739870712275652456347560145469321615306410171646122384911672739679553653083376407905071487609738516708509675176289388883899978605432737734030700053582825537308586531444599723983066591772008443182422320477080870491387088981380465920817091936583479611183064436625035654144011684465077360043647262397901630350020759350051334869142724683097766044835091538587525976170599087481482889030848335285182850383757774155509342790560272751974994543032165250865048497498504623002166557062256144776129396307944548726668465856883729342462615548672309401794289305783667406886663980662700340984774573178815809403821033797369193659519310931620059648459348032361542192443613806057979289142468835545392582417764253715067380275113006951791415872724018205765857150829312813621267836193542119477094508729619945915089021518330987647105306203513139545552884949344770500014529531024299182813056402734693626787752995540821748249900073352882631950135876592671508168396699835417943386994466326063227777844101792743732049444430947728723218394475751709209889381303891340494258096001243104382847820097598537167026355221649895191813977821585690011561620595052296884143146530356431099670204199374493971167123290724207519033667991847677263088553560291720743579825917218892766620884816240856545789438685414065717008659272471222029240951858185870219542602074574108211969560152567567934613450882785827406106444237207557479234853137356985194167755926966491772905119962437200360130921225930077958280424509675758510894748291482030799447483970903164561197891730419375155325247419894846567022220877997968238595067460742471844339915473911632478273766303619391677458577628620861894459482723731371510361776784914208526415834329781540070044269723460002652624441057446766711364258150961155829151984723291627150918622236079896194107542233023731970531822254241160560734805547491270595202377438937099586006931153918779164591358861145135291398149511481799607960581830987951447463977102804497578571125592925716358103039276978499480758979119794066415319322375506056926489109263921561975589382644458826352403731547458421671438963512565550507978257126675616735185990905031047861559077101396445318839469741086268958012375021168402673997897549948691160070440312483723429747009648565733322330962082794916624359603436135730539581549496024774617783548514273679477073849316536858088715628414167622703223273448955798017585395131669174189527232005220681412565628327374098494669175770528382587424218361779656399751533572406360562190340201591045680998195134120872681018720061783935582308511179021774344156747348690868164178394989689416865496342442151042331630110988443264433986110012363382778987386334701683994788704308187314590874803689924188113856886094402615615114812350292812579421902052535216232298478528390182150306070402878785584550193846845366521793377667849122970326446743552373773387109769339313733445469632822902321210747456245673878150702977937919250140305294087872581955726063680209882404801519189275051292315869501020078132491874936290555703895192332371091318825516926955250862666701156961353026789092710552352385611097089487356019462593231011635229227635176736398150346422019186869728949115954259339270524765342746971941668717890466274138259650860010104350432877835559141260479490736088002302305494074092318045214292949491205603479172152717224476778521135987914071246729535714391632915686907935659298360858892453398975762567133254155081074394275467052660994379123230346583803174633213223305566698134806108498485716365970390131829296646071016619488947370128203801267812276355422711049771689161800365610120140393480436033388757900206386456914403115078736078732469709506710964175524155624774399290138617529083485348793381553445586552465228162628602066587668120220258602536842111355825535859697721376405522809161404020690179269347481300466538385264389280303175212792416547753790953465751717037094002065916588599490090804337174399274514605860939894587525124794570684847517198188974418214263244266384386778278448441397000566893042113560124893308016487488152889406310983573757970596703604804934318640005942843112515809260091234666807814581943638215238089473918060378767648188089557932359445507391384840623028672060713439178671182620591598833936034169021971639137403613291929226175864874034914454226381283513088380129421743334586507031848367249178483263683796455285188070877462496454132910607479351500954739922932981649221799856204724028114849784520218110917264753977161356536324637967669981009083705161186673098190209072300710200835721448961535107179508106736738424051210586966367035183029789999696604510328961200005673478510708787017678658813741749268575815584578898984683673434481222700361158161775684151599659495892107077490015071429570470951314952504841803412313242863558636143658744083654943919891081520620943761224322569519341027949138576693811765937723963361069166084921432996926331777961490142588781135795022505368128696311630195501056343244618343085842910876685653067228650985383933400783299593522429943357334000544413064200364887495879275259683869546995533622108025381477840091213823220312933709522795919614814621193760504907531050633648362994562030537719088216953567670367735678187971583561038963858983392592399941214044674277547532900728476129498388306714852509956984813930217553949052398384252615659609971360242756436090623777738677955579124589853017286338210390920881861876096765363220803472810397848078948641340524780695549293809527340381801963490291309889778316024894294313489201857651912999750986100031574252683331339418795406518638075302840336691474090433848301027336371901255100795422779864870457530598156660942243841398085816903333405820194323932130181599636201565424027449347634643892666362784113925291417061420072005028681982886140340434492844680086160732013500167190639008903105850791749240865489403294481480188425349087221382470483694466203062404721929515925245651496255882569024883845509790306315240630712398732724543590768142743069697182686497749934612417111472134401368903933278997399845115884024122505914496870719763572790190347976700154192830614315315507480604211216849369754569650003808550566520557685557163676709728147450732435644268352378614185950656938687891805810785051376522068457201081360148646134806492476237567973598618637266630260719638482966095647205497856924673697826738423656905866936536823466986497357518286011706143528039628154520543548772930582255013799053898442228410483773978533131279195339791813221641727915215416320130685162307982242166953776271038838234824211185918874593659681115816580378365917383530166031754798066322714986573371657689806692277241986295549240362560890626295780958439956219612843108936760817606303938584224598062804478025768129290351928248339870156467656066074933776304816579444082766861081159168630329839525811521200507185994310332929799657246576075448258088190663502370404513562525242248550614164356478997439816952535637882615727878407394490448402373128248518759800689027983088127120764140667078338471109415788588558860141011162723765167271554405947315516253703925542984758858507068328078311484210064071444949219277542961724559663123049249097676191196723234842845814902831682132682251119374764412826557521403905271562969147854841434416114131912771313855882295017874661150833630833993504389938101504980805482017381618908973555239906699606672132027371188206257652178879689301174925485548536967529442948212078063129928306493096029928613249705035968626558839746065296073290632520190236687183100553451959719192820744462043370939567291650209418555625817939074484617011900436194168528199432468160165504060132603056240012622392223817836553467751363645898555867792595912915333325870223931365892307864977011246036514852206718399053000627971738012067715450344523067849405217996281947942224615281536964050906109356110496294840494629636976781111537449323205681368034822185171582427945227511663245107151344614028643560367386471621040336091692986578553570975756896259642672251804160631468729713716850748409722757204984585635959685170281953376131466167035021067125902091260332405554121209511706561211789454603287172878055330584557812608642887822522896838567439102760260906705535116860483824725609304497344882819014853450514929330753994781136551370341414012511059996252389545792467662829510579835132176131069729162793529283491814140014396766675297514364149120473281989057343901334358124105275879352702869840719363417429982176584818246109287406312201894884760257273011247631670966455140032311676104533577631277207200337458872381149126751038947129337155449641223464748006368523498895724899133858818095286730024865319204440919721917844098312645904063190519457424464897926183133842938432012552545751294116396716964268712946723620906794822320704621886170292621188063076397787287246583079814891199421620690893775672753349090747972953011146799284444195426600762360189360676136382835982195911958875109151098011942619189147054336961498787586737255152174461252388277565277718585768439988955405903279693680854226538519902831225678472536456722868276710013384476920886178478755932502457284217933732660697593002903579724717843918700737991226365048162867396262761138106222424629295817309715590074530504678142616873576452636387714620823371266899319498362277749399366852649021904126301550866796357129084664622153089888897408167614647286019159612968923581642656880378996678965499161833691887800410135908623847243550621194062393805273843149189848898247197524985876901573393181887116238405582398178425280421711729656592472107802794343444519816265702077607948621992025122783660325205690233946629746086538467702152252675447336555187506696312338744948714350887754152636992698202335798192122887881855883040972133675295228612558072275005895371616914704652070977819480682281627740490300216346255573134276004941380843847258293459913149085800137080782850730345781127352628968772120842753447348753983392447970155584213344841555403353933744394600929290328337133953526087119499152916418834248491580640560529185779910190639751690950341804307081971667595111140424477939918068438656693536404747383862277315148828971073788366474941824346254070951606919367832955791245796004315200686309121909228768205082007886746651572329766393572298542086891302675205416342565460448266284493586451740385324631027646488935715648365653115256853811636696533984756187211145561368466903336629918501536826600406665987009844431515174084071773867629970967469314320327182173741532435306026603306268433687597499713149436187262997463777918377810993431725527181271050495395187432239206957315849322188069444858141011874905712997990813735059896241951284270187197857404640007587300961640858728596920747022287766108044891679086980978270058857148849114035072446413306223773008334051770357630916209086623023256573106535094689817857302590532774316257484820583329381639202267992989283920611371884172795023286461971070065324566353024354328595156224591809847330103624756786853940713919690313267209213049768781678948731013802411238010743224385798833653825671424602750727529216586468291774658604807915673379543882383610946589338627087986355170282751650251539962667677915570764354717736267542457638671390226387462702592915413908124404140700260736986665527808180187952533500230616137690789343751395527182137630346739971848922303677952477802256274561663867328387683631079276815878897503662581488436467167482429718727418610223149639208225304066218952137793236715967451479731248578068572489168619419564677209939737463128216629092273411678448824076785279104926262342579667742796260240939097196295317295694616283907809678133328701021686812143371467566461387861084054033696455695574018173146640022414016233469044031321062340717083391256719305795235426796601240868224554632212290550800898341054243789029340583879466314702085329723939018188558467211842981939277795503891172200246167342981151761580705392504472917943181742233327214885128408675799727712610545611034678256654659528570237106239059617462103215602231986873540922192672307698783307386225285841087851869236854015866024098880265505287847966256758260260681332975481417713683086011869201441937164344322643565616120046300203809424030728490822551740541931480731212099410740884858117362013470706586016564421297194225726063181888948555289413437634859749406837094229122570434808865427537795852253318141799574702588998292345252860927456310220152644461410257989658805037503509755775693875115908938911074151682186412003989145980651083922166616023690876003322001849877434194398110439973753261210060254080282219265104964497302842659515822803520560592769074024935915863651434712410876028777435300287504096352845247640157595358535723567512192755363907963806323219446087447615609141917065676689966587550173700845031401391568592697004919442273491609328395541740693189202763604029366760358637185593135952616219898768928052333395563242459350856329669884643400276888975160572231462961962799556412327240023721043127286224953445573801475522807640311419757565513582819567692174144735272493863390061131026451650435248637271058576686276205376868397981354736404338585637637800376531885652770011213559574004586909541229333872621171868860310020616981663624663078051666856819705103157484501990856961496843488199189731959274664346951678569493293872662797427571536512698073057049100364406480028529100775737564454038295295287689725430699476838291986556050968918187669948983969391566482335097220910123380079751662567305673599544528695769409449876552431072108756308098396120440704380522657261381868381034801648789396636623518042549851597275611292362852038833433508100835133160666582192274988166945283612832866479083117415160012113496251519807350224050263680901043896398202897702626607833389945231608205944806831720908383425090701448687536439439908978341758669045118762639397178789848966155011901375853875504851948915484547529352660977912133652701698244905432029658316197633253731968661996886395438438106873395421644776797360326472871674736989985063472288983638500779157603965476490148273143644083571647158862384872697681215496416510063879037349566135124069869481960599993846951463861637576097469859226278663040340421338853633927825634367299012831346408568204002323104889377374163425069845376503986316219703425504471196779900331269989994778286307715775225946655832245896686819149511903826461545021508787483365606196771039307551552143471613926999885600880269134211425616223799234168013351760619151673669826140135633642486268613713694147874906880077613761485499438332998534901673473750718974295118643389763399703392741916482528721439028179223246658501870710212224152590607187289603766177114328043659470974793507462764661792560035168448930369044647180029677170538809554262118251502380372011116975543027527879530406271963502418103121423743153168858903195644468419760165250726622217129868253602508221726932657406291851094145607439565212001329951613449306061124884720779582495733005469022537450469248034949669424926260271263098002334321227327648305785473768205927613044944036784249937632539115841935431077341983011726802631321046649820943036541165095601884270551717604920576382200292806293510488035259979529628326509960369362484313417639843499386743019499316016031342340952871121902399354928287083973739735128323378311475510144327725592105184118149341641695012794325712865808679390490504973672633819492661740524644854563476439139835692989754777898950609684082096419811485152335531684857047006497028486290271361589302275637246419447323604371692157001068954268200735466715644163847536356428523376585354139857307156795876994803384951462984520257865853916054418059111635890391588116695552911274096516406185777035637408156227449356605187638503940308590903346682012282585454400149015626987127913571605765293343733074121315127840817092233047809602195322849033794248572317601737805937783316657968023133341005089583855623464087009052481145510504671247727170896278973763599976783025991641301524164984517055262771505361185224413205590519576028701228393197074821053622327268347659424172068915163421322325566872267014315230212369036330913946535593910373185392172206566689741843602953888271533956254091315557793709436100633438359463071458911706071545869270213855683939245567616520383038551629843288934937382477912238030496070341013061208711944696426674606675963455038084265224610579998037986051172956707737244779462813838267339889789654559555722759032513729120060971495495458571821419713478643272628371866135575626476812944122271411756541897170919361227893576487318499050428015322189525479550932905259870536649224147304700329920913279183126879296769649400518795700708173529921149794140649822839480569594989661819347964702258545124086996623150356300423045097514931254158973907632243453588379905668755657363336853157991792843975868066279964583593180237384133711490850702877985038371451938456302453657811768613224284989741249257181014075052575196718878023594192684034405807709803304968986398146078908444442850568802224996606225726582289253004226753525612380128629334435035138215893354476715836732935291723371642112695556705136770989141469901258292895917104448967442595272160111935118538520005517386147583387086201417301229502919088391557653406703455652439322957956445742531399826814692073250710895440552227641758603869546862099828782541569541556508285695844058361098516419867188446411611873596843141097275143155377869694601883822571887006876191633728015955366803861566972153966855035158269012807337747973603216093052791532731196761750424281865774482756945828313509354455817086263485767264638738842128013705160445504678871789822105624862186449187470112429480323176288007218943748195671039204837134974958780290732871374795134400727771852738668177260931577515167217314868154978665331187915886086343360620962913756141124729894417086762343875880691192214934714669909277953342227308814412197812877195416616457582462434212278421834497965102167520395947503531328943802675828484278737909998542898548032240849197871516613794859535115611474458426895047718207727443557779461780661849901005700856798493755456415004156839542712886676808894961282859238010299136121970175418030220978905019288092944074951451879371367058484660146012942112034307395443168879267401426440781773197630027941760039797827615806118617345653003648947503339903473705626291995764869898004774464961591765245538107194294243476604335738629788741545069016703696496245332185871704839677692070063947573469040759720100529940445803865428626720089480293980227846813070080410244280769464710603233408643044065611394609239237032110872099441004002549706591272963166932539786779711700116586878389687972948117245124607950144678402696677964851804986476939959093525252300318745407543380020574821918342114593336735068990533557465014768578264512322955058896901601933230890867469902428326230533352714143651035106147802678793156942319664654320304256637713160995688210080471375404782623627108449426971724148911135742957856699533761088412131724921825620939936867972118441559053266046697731322470059699793640209306150876176780243735149966772091396335336977427455331181679453469642186435654219032040770395275963831233585440267359124759279913538140528629174674799422157141303287294516517552609671102398234888797911353870449805618959729321074646639453804033011049910728399465901963380666349895450098214434316416917971966071923824018759833981819740840719512675731870673325351340810124811705475196958513728266769654532751803443932049545061461099215713044540669455411129848708863836602598000350014036126778709472123127169908806460690779778746692228597838860784804294351783678989284775892254821344623539694713970777936603195624235075404290593703607521395831757893966951017633548993604827284954788135425721060982766197389587753481820404384049178523841276891975923781673267550049631048514286871986334226398549218361048383091502886926372572644357627043539209269842817664536282152319500503967492422979007102071584332170939259954619188987359458008435354224105888316881493873233233765520425365348362046757933246167756352005853567251132003713340493437331807259203652926827168602589045669680025147430286405029170399899068318964697180277741545572912515155795186188032612527599268862168580853701453638490048780627341795206935584063389074363018986009266625624264504751998599142821595922270243969627912253004952639559975144763839330577164102622260443145640639224671305882632697232673079006634458015762739729361607264493849725542220492774837734316245862263607758688985628187985961890468357303392142762583597424472911738178624637862601302173093080656389028375175348719116525571848404769890977677824466807740864191745057936815845942007472450601798435218527028080308111843867828586991227263642294759254316881634180524862830433465329822956025636225416666128894628905522062749788599552793366786317449748983555283003858220938949711235219122744646484801870211199206671442773900165121136466821315488790025677519888917094431997366983158246416238359040026893222978974399444562873893696111354934610725556000557244767328093999142011680794160995116021398660058681017624913940185291316690284822185058873705867131425774737272067630238842540413207459343583048956866793007519107322230069674435069191366355666628423398173289040985654084000364287934755334104969026252003005354938727496321270234036284337231234916308759488543271560971225723810662085379755410037373226395658922000290024537711470807158124401012700066534659979800734610876988275455346369441298979139718380705422784883284768895635086892473796014586336412889851055562079480824123165925723201496818511639024295464267488538548182831219486491527197366236405006996155768765613878215045955046309379825643987120915534784763122242407916053585265615404551317827942925485577889236890286713470628876726340093026433230109486168477615034905085139531200512377568215501137012800832960623671494003042960372944644268621781971156121654202214392421704742416761305915336854883751174143309783376631346680507750032877207902229472339024996713445523433816921268862219233023190939586885857202294016650065789946711359366612408064555796187491963109057104742323627534285015450960356784775678809370529891182531231332739201162928483582936066290841281705971577869297864570949083373163667055585276902350152268022661320087608859504649554198412371680167160179534744329310066432092764488731968642352246004020653761525887386525981280950376027255165633732132966323673860869805553507967519206334964509686510759521364667460763047348182954693975928619819945142479318750635665912955792414202093290901928206179169022940588065582614773158126914634128465203159562215527733183976949877168092013197473885640069349359261080105513649807378493388141510314343765290041131994282926738513178266095259317437316334849986610289120996862154515565490069260393398825133662988282136892991853622868630083396676042279580455709746236680193772540483669975094488337454577147169430347168293458687553628706234268604383329898594861316273001625683279902200950628046592210139948465200523382372983584913215366738851747782081230291839054774472190954859098851257134553173268739431877038101574305867558978782890112690844428242384210637471266886185573326246186415385363573615133009498163377674762168816489358715786721642696489604116995282845482507407597345869561232965142231777472827620563392835449140491208881264247386604019741406642937484909056540871849091977065256138797351490423238042717597369009449286792124637478101136841201451425030064244423049135138968331632874021636970241455885118147315932228996769491549947232344417175239586006031026579507806961012067175166754408633296287585056912338242949232110303999758515050558547559423574496206190946813607038749007210927435109778116873832257380876977601759188453128711158689664394547872527200049549697924016464246763372646195214349977146097051472804657079290765303946988173822859592949179231324781210960079569483611146290713600386672621956846741095396498132462663357769045910229927449391506032186560232087110594357541601055056184674538263508916866844336853375692415692354375664607718892455543720792929989696944480206129719587030504424900425337919377856284110566585385933840440833155758135548229465399060032050115074590703871122773690569232676038053248815685182329197508043739890782658696927092056735739856570915943331221191068161929198583018864522428032109169097606263309429783318392912231617882222085302985464850823323362234204139035559751168971551707853632153497768600200437681280105277959398766248983845512814785263830096139090905940908826995676989872557566081120994921549278178598693358163268490110450405839773258515624628275490506353011444996837583418246845997864552485710898656053523558127823552361779798262579074996253680428346264695270817092132450441881854784282932773804290818009037846252280459724502798635508182242666031484257376542765724033529549965342406563131207334662363204443590940318013559717381938376540985691839286159040623265357359878794902882601426450992882729243380604048731860063638637711727726744238669714812141794957599288362407055060106080532720168243780618583256151198162153489668040643430489788957391915493451941528267203673108462550166076109150820138629874152654761600177424008517460867174408736561211658667898618679479248474716675233435263228121119264235250317006568773788864640090667784798885782684920102961663635228057741281159241542846452064173054731634174154420566481082678363664743863988583400632383138670334284315148928232294951865846621052742070084468542146365194055531447636828908957819162398611874701657298608600451407139996940212482334193639831248449586292381826331257182871409405032435134712861679205968159124288839060493311993636004723282983219347181442642794376314226435110609964791781557269638619220777661165060388001024369478899100530550398956868610831286265918998241579588230544655051323922127215442920633792005069351105392209983047652417619737062054373101909258780353787606799130487706093136974836919204336145637133305322325424203296758409085694272376152056756207900184181589799017703177693651336874298109319750660450282888552606158025981947706611185344152570645189261808690824464245048436179060430591752264343533877818969084720996508613480834961451476186688682587274368041024128787522829314948406916789689184677141012968151364526032992890864019293269878821339895579606370844984482029696333750025101076326864483802487946777781662868995714766194193018213986908683831571713782187290195160567661301894525571923587402782812985205816962672894790086769550067736401020698744455939258928673244044416810997162362889287324904397921287224003410893787548063230319831412682091385439858253555778098586275478668685614669484126303819528151916641954841651268303489129162845076694038263738541689462797627274293924830634245237815821706585827243843379719392603589766090664613365867411289764183799519406929558592758106546094452488973170234442331429626993142933162124165671612428716583143028886193261357213867465999427109810343941609725728140142026862513881065761523899060715304978624403512767931335026721544383444021878619341307247324364756000877946663419818514210939833069891235590884675226100179548536871039851206768464830643616254433992318525652749683418953192461588330125580989633491387581048488996145661014518576684275944319284255062696096931939933888245623938227577817976564395451936933472910554096717951757491173183642165992100745478696446252642282735770536020683529174073559885446829077941325367040503204141549085479702907239604279933496708603226587608520620009839580895492140990564153270609423989763619876223972975263775022267650112128684735557724940938790231964906918739760220923681873971937538655768120418253106693806907270790898093103950351253036983279433354215215134358256488376374027403026121045843789948753937011263690536555231123003483928461165132541028822294538662848062006307549573991938002763040719060932379465519996493119166060233747976864493302170575979799014979816038828966224694480917648319855588852563732839974823755674124903117021663646582574185880922087610186494056954305092812740030091962205698903666524188164476999206287690208992031858058267329672770260251687820977458392077860883838671112418217385971855163524713094287114775851866002439709576364745377020827348486209322416076650052273715205399435380165648626186720021978899133209426811561240491963591219255159180096845523225430187814979996776839449775561814817805902093311765745483901095316734339446261539701176343831201269557480162443831484020207955805848008174203229269624735594582745456821529390438083739109602067895758300792572039941406304337501138612842533416211608140988029110809330768910152237390006872405893742107173260422700039014824593304113639461773836991963956179571616954158974012216339693618301890749710910599893534937802615256804593279088917418549026055436334440912139732622994772573302982266983877099585559068654738126347459644332398920691234092737229299255530601430154119206202596184186207367711103864607782278168721491249726095187838074057653605734327350126315282077937514394769618373714414373087309344827285423041945485921962559110709037389142205850125067723786243377473839429163130758811065083656038933675510801766758825071460649529043977094118650771550367634445047005528422478990527836571347544263264728684247452234410411184537534470108207822145096022947309307376923524147236019470580910004728077823894984221426465588963261475985553694036190636708482482142934373999087041902941733674419390110618778571259292532950399732780442650176905460545316176852006893170342786628357982544778449060673953063415114166784081290268521142976664470515867172274428416351310813375407802764874147794708868309750102622777693712500043954845899506560015991560126870006101999052171630428571877650234544591192885287341290471790545789549228373033855493012239285117674386039553894341435896916755149805907391789770031620119251488276958810637034052096624773150138415202588762334416734031367260254960051836646168341392273118669866536971674873196641374954596819986807113234744652123202125482388483631088736706280925582419115760157097052218267359028267521723104603490176082169388289440870814416255391809026396844675733298682145221346652123487589446607819504065764824592315630487420865230266841967518931089179425203193214195106097436560206256711404821420483270428056982770134430435378841207602017127708294565909377998044178657824287191944068345336102432602159350489974274656923735581868374853556140712810663534476975162734845299425373590037287166559566693615957943463731260869679314304703301444333056360518030549839356446306796619373346128864070431225978813705094634671429199274542323744054850462762458947015247806737872043038292522950568842780969089277010787853225070036987915092514055049804310484978257912575026047878806384817237400160586943240358305502108576471849822069157153674206976614799840834086664324685045290847620957530701452803250484946527967908359378899137088148379284610758164064015141853274549280706786165215300323007662371850876124619922203051880944138603539438514003346542659941509912448035383859025819150093054551341178246593880259658494171445309243011316693641509492435690024247713877980172738319349587406908105583950471499200943622025115575968921924228314001867398319604978504115436568388002241446489354874171591605743337737395477080261482973247856189250548271517729872961178344655229329696734229456710335729558919149875979206691534087382464732179663563018146863741983655016409851499649651725981416309990153541848506663860722964627637645622202411108942560663532995248214574598564190558060078417924481367691324107718709081757812712935116612938641800263604396164454369453349036346535423599134741354565297388225034355016249363590992228834681486219461284297083258790659375174470163177398611104161170011427507695890814499223957303020876191072756805390632098646021165406231958588682029140548410277139633820008556426827942713872088623135251387114266685397531906798606122876458646092678158182789563713618588681219640167952154352271866844929122676993651576901202934168494517665838714545011187736948162219514879726543427673031952134997333135498663779440658401159000980993197206288256599971689305315462792017009240777645039602467365050028151378372150122984544760281928874182166187129217648095267732602101007791381621498800513582143207654147054331001769793853610518863777459509794724725136951790309746807192079914725902866623692895266554291953063082104657382814079441635500023023925064459935432006916061424078505523881574750599485392194558477041133303778301948332874377674586388751495805310631742658937105113348637679397607846966686301352928022188094107670104821601353457377843971652917116905854276545343506879868376953380523907843054554176393496869736819528923375232564741658202888757736355388032913630708386086422731892850846921777943613505848093003419462546465686404880606059893923783813109485828333352779382519230897397076601833396419890496869125840620804662574866266556678659677386931629106781620930105400203972383767280404462835068514487556063626036749704593400826916634919741826033242923793609058987390105166727832408501088251062051853719019481282223724731156784541885788806172891754916516235646977544522113712763289694516384144375624751639236148302721163052724780041296788725737667129616849265288860618177952324512846447857839341147056026306591081722621213288642228254687058121765654331957260841934773157300694622908924962453484678161199854036515485348124129036395077723064144119014210169086884946026226717652943023653950877575521478232044149216400886413243072592121736507906930807831096358720777427126731116198955293418756268350607943125827776264702281696352402131467160132575434371425808429565755034383080764611738024580112744223820698327994938436459348955717252959474619797415654642803715665311126737846905486484737480888397793858334084380789983522367675619372869161784099761807917682085030046618477901315238490568847476625765955090988793139871760392279705299603892321628349566889779560949194216515138056721829975553050646799242968688657019925591810511429322369099597816414656400368829897939419427686882106876167253913297709715928110312024745301354874849912840793397401976391644318436148457967154703117997787519518037263643750793426601920243170496374301109838579582853030844433996118720382663972594015678609842136437878897287075340632064334570611787245570293617223406243315863633288541669668498994939202927051354852688584985016044179241735661259149318905787374883007017947668430202747957090096535183722452985132414883178258081312314301910939678172376811093500170295695226004555014825645330612221616119164949089954879251062021896141728596470581982192389347362472236537459914884414274052371092901278002583728165851100055965717032686166740294373319261918146393579119562567016831039020344149403468258114432072823117760425301326774925058140043631503537060520133560476288623409931823809030418905180246842996274780404508798962644283791973261059089253084894478280583759768883929914951042468599284735429946421535322504145980862634362292394717972521874661432006673919006108522598535879924834619941123711273769796195382282034100825846890274550682382141324927810401556642954603379863882630080247032777074482517805133371861205763294498571025327318797653695830919647084378246648349447668866471519687332948242106102894883997072512815589762981101511218927396607221396660352931252069045517778097908464142681228276001358138447817723703724254971386226636608849782009300077428204650629835904711717941322399859955034228140305888692645112383889756298527975998656013601485454628828343954175197774829403991533039279917935636228194463070894272562589865908223169135706861673740241749324351435439280691528064803416237501517448091576106741773446394420885549655963908377512121972290541181109494660282910083887764771463386177238571563904607272413612746116449362434507815574936934930259786804152680574372092547986814050814030449314673932221849111805933021949640748523303800168994320699475617682300748623484329022882078331281069841497872170565676819552960628110230713063521026022757963800596358719850418541950288648819455618725580171582178435287928169473230953349531533111357894786590745993756035357859345195313756529682502413389062804173387408687769297770977507878361275119146557923312017521070925044660694774057096011789594355235777290635104907436936604232851983793743563768600613791910396477203234551423740908345130827213019784428748429105303079594577416631939093983334438550377365581503584605288498465460740649665557100190209328807348692224165113485075356496926678693986122096783548271152254154186724369915569011007599236762433071481572861773159663161082241251221175632259717279702796287486564464859858212909294126984655652668331499069452534453606115363292350265046536894951252371301599334851790114611806969534060193447219878912636054970181505589852482020887267008759671584634634373269622396967048550604159073543814436066634162619014274433221053050076468986319305310484057512155993369522999782961089800186396382731898603914033068498919558685613913426944329993623383164387909693531407885105715613025283989642460057265225288634338334414566950651013679116407562674054209269573781895577476457833186876528480807777254674769653760351663693306210502695965244498439568934684993041929642180963616821929956660504215758536409073909401118208770690266018364433667304384557843361595474829751284506964129570630049793807236243300677623726192228572357299776100254126606049242464840451156008391728361968538179320353419297477582581335721696115448846960881648265244849822948077169826330776561169833281077446365465075125580197430265324022045865751173751097454942435886198833346216921887674071210551071195555761628546899524304444321030426531729101638822637532204746081913527846636657523893673326139950357410300811202794865180390363534379978178038495465910985211082489279545328030314013306605296993523979079788481473918529799005081943512907885284592457125435746314967879678848654964256586446810829103872418993158437904813092553199850031799771683550845863153081237180743065259050905255259531311486722087332623471207349868976961441359293782344961168810255265947064270686692639019322970174798808269313989200977254031409536644891439380427591204188265580384641855725222450001241314139912719423995010345127192523034455570133707578649909786892858011085983720939768896188790246985935385229421742207667213518869091086001752280127121340508232241622554731649690875795195245793288614762527526558559156891714056663068397011109181142432750025935874238279051265480961966698458387869172804399045590315155000223909447573086177964579471235362045547120232912772873859128524028536213353294059369243670621030806166492489768284288463370910301876258006975258372245559591391499796834661597424618463231305624961293227701708568707584646098870031827583804324990975195420442106149544308135019917458381002672960752661097212913963083421805211721901554856873320895352487643581095181933792281396545487536340357566200212964204986707643857539756954717258170629921015289467330210870095603441104684498557603320798005621537276265983443753736390121456872371162784487348282130320306982996454819565842560105962740794548226498341318871480863633526353197862148675734622879222075148185119368365290725633213524219559793340287431790415026784805302137104084119034534830944332218424746130181776862810305073470165474948142388181974448632952200229088661850100096400013351509269694951684538718840650745621607008321757247862927664440298939774471652888533030905219624863365782954254369688650343003541835385619791052672971208423907499647001667455720410812811161507542211711319845159276508508540013249457846370940928885209189370484775076283282404436703898405199909631862932892297887903215361861953915716989662304973303531577318957091585330906256241480397587896758560434530263715673670264448010969576088752872008162448509812433652325116401331812668771104870400290425220601324187513619298519005620424682179369773033471576324331343359795922303290596399011817886346581545639015358216658873677849144113728779121477832717135080338573705564196378379912917839344013422061373239872855316630575089353726961747865310940021701352289458162492781967061770291388395317294953575507290404349952246978321090374988258603658493840377496873032305954924451384802931050903660570813007107344352454196374883804496430046972083006766271275502428722900046570593675224693443762011708998671371740049548352899400687340656666025785433293850482657340006455372006456324059214037081403648534022428935394019281541719479992747196904272249046082470925195566695181436534573878641789305064608091750977660643042326371757326061709382899607088903194428745308060736103319139685834888896032004268412032511878483704746508265104950459840070812745325097078269326789362877289236867126612851610048446929582864272549866349170261053128193253129199916576247787113420618639338642306744498354153477237482143145998350193020977791729191486710320212464628716782650060901051301927029764562565685235226212046747716377645832007007215211787128437372420382205726311811385370070649514538634879567061621354847584837853849163174231859574044743526397532573678772766089776594632577544977503438727770158949221508313931757922611325880524941041684807489467747823491339313733123742119766449806270338999811827987491659182208563518767146846309087202474466147869775849227171997223829232363371774432209598672647557364214975140516505583708020300582377199512265851670853371463118583913022615253194872132226149200942555883869019659941159949022051830359580969361912118046078394164673397903284930822384213071196374549323335653943452972543575052638170773812361257845361526282545869976088185488321149873874129417360872216363353239404353922936564491793627371669726288451916859760838922539759396025111368815625097590492795313308559606870445961182781912558641810150893276039296660035560319028912283544643409068991377523381559805738215110556408247827862587797652857669001268595044224112807857457917079588073648163174078481923134833223050622608025845536250830307130479432930769938210020971953208381273791802016968779775972846668132947602456982418347996923343492586997544623830207799426339777280573547615907686345313597407577451024360838442013328761588439893804932134536298820232314110251092410272600753406136590178148084857044715551750325974929808873839223476210836696110424417071434139040619427086278588866959877577809204516424144463675990314764583397591385667236901381584848837624860258014398628617167762602945677475301352972100777675997099008462709087057939263914365561679971155955455511615853072091972424743045452656649364646207416762585340020890592017045343295776195126866054864397166710699881897937190331626487515173348604836734386211287841205497273939869845494872089545362244364606389056586477688250054197465409032054717793955953573897106559523055743783359219122347413149642139616808504957877501620767694178258387623556037579744469385822950053065740404786534084609265761359332487597333582027134465392377751158171874040946417519905178505029246786344531947058604006165123279376201069568998097061186490107922588996248259534772880845819942825860334248877253322045930834858233610346717098847373667265050178864593781621851348660219564203378996996398853273125820411749231562549304906079564021801279699674909118134353394935772433580693538857059338411607582236409969413187485922608360303225803263182923703695120848665985868769017227518493594214212612976818999669999903895295312670275890975521663862372335235641068071631665011260394560302346962625984818724804867791494664631437706551556099042293404203985292167790989846560189365732765385573643533880565093890576687813440483324500721941964851930027214111264508326222245286265480641469556259540645043859951183608068208732630400589610409086300300689565654186993841502305731674007207761900267089953823435583515451560358692568837344543875764830070636202586877437608334296791543138844366504257285565605927118067310615614781620790184253697531331749133138646283909657182924576651491881093169682319024789662894108648219838106326917285189590470476428738291230165242063682624671467312232602589090697310099505219634187749284708203820960933591801056562980677793481068781053171555456028616643211532221505234467735094236032705213353049028626117986864619105128555317021699387537185303563844501645644789104305409931636937818186722727982232696812378413388998755352528648289292492255156400449953806095666506894714775605586457081060437181896485964281763651115817938287576949427931276478671020968093469680558454112026629808348958127360522985414582422450466028377624629230267228473797868321058806155878052964824624801018162151606372523885109159933951883723874726049253437022700681824138383559602341992099336699225208380589014753506140636536601513081976562445205560615592336879116117752236614878882102173637791978234912352698467390746462695701816500101914609874180234215315976222238022189653690852572275030841158839199568850459644326223127342982850808780100309003275347691036808490256073460041130296490949639016026487090194949737151602428584040933777986776631972781087893414137984920904748759796772977890761901469854348824706870714725372931226427589710045461987195527122759072935176724197127070930980348936447528170400259744111458770426022383372133176579231511632290456922490052810619115265310596364572960013565049697781893884162328494523051324262304697498790849785856484681633468907403425596834022664141797335104766584830502530975253226351917677664049574553001876994389256618238012016149647839371821578109337204427755360406013893577841031162336111574735116948487362070190531466892641946718416199662437767281739955305879454291356183456847570550987437634660083760392469223487547220313021600450497387502088709194844025513163781490934843053181079762172539331143865265298092276614383766357503290059612325116151097054521366501711827242986015775809624057639511820069765695335846224233176408333878666185262650336033100694225272987537749420773091281875210348566432274355543723885890124625190956404066754290461006823599877785432626445942961199030460697728684440567967732540649977112540095958684337436910473341017595634661125150231736128770927301025931470136585503069195793505189139437636448254510827769852183718038611279338092458943935090628600662749093089244084146653561583248883409469716804060658771731449148753545948589614028677695786889066287133943183023732192277202320119423237182700402849812577656728826579391556012352606960631863207036095523289894031496470722160906038587672383170153414541363957048032421194557211606507995626909376434870504924507307790324610250373896729438060243337628753982562882091699239982855799225298498794291141992579674008740339870985093599415220317814090520280479400998344732005962440723105992010460249609824050689655014194662444368190595316782609557850663037621061930740330628183029004814447156498265641650479573657276624169890696982189673905486716044774023318202610098876040757046239200123535019182180201692008800419001372174808393287180993373053329562669575783447363847249707069107058727623387618346432587150033416084332515741416650077503616739537005320981166026733656345482481139815788174545189917698851705379806862677134412728888759297834782924840070792184324169319031211427340004240906794864171962239358788393663902963633282911446401252950780896736072733472796614441091814854546998065318296369266464370519984299318102377608412820778547274337886477495405778510938430471937333583187521662828595260555423104158288824752362518211727012716176960741044345632854102370659665433484496754222970647343987734824048706003037221672550951126353934994060130974189663299460937386547829047738111124985720011277341830702000575115166625335112197128281759675707250232575537787366579548336521887761141741073392028156268090054755948063580306881945625481576953352365257198007397523014457568093528980569346068387200721193647037371550496529579204072221551627854173553529549891336888086790139576100245596858811124850091057066737761060074293419654848878651709449167368628450953276680514307564032332207605701710801091400099899445712243207030153049453792658083786039990235794097103701266812922218208769126377612742438000123392107930448220509972256133236737979069676941206122224104324303082166056085698436834702490975272168151335217006434420156933627572827860342003253024629325081825480283458451503200432073856304212153145392303575846713809696021540061009295794026345931843968511215305754950610951986023918093789720050189102331447966585439212951654332957836064064609828506983869835517307354769867930288322519578258819301512603366688639221893312254314989039962718046850996863865211487199088486094720363337171767007044216162548157552365190877436132328668291927528935990017955487070031478360093648902683385398174900436493942805058662184436247044946330983565738712210396890497489546923274785521186476364215036368619393334078930381969151010158390471793088340615009318776206950831541834282662207044387743694924209549620491456457100239593121926661678609371765583549691344753727648136172743843566127147951110761541692912273667808514737005571459314851474000445744639419424988306091558291991503780391762114417395270286774299144165360517868964492942003240067283675297161231529737220697066755305139216917716916344717983390385772159646819466147697753838008678745444293419368472772989121474377725225228734543157256231342831045171777314079827133897240121921138457070879516290345556385371593681686073884635991176868799189314506507376682182616800586568998839041809156552766455736357501921735409278219720943415588297430756275648820834315409397821904900381442863140965817462591459373193841064919113233644220930279581858934526969771170659580348878263903709011108685626893399239277105104777163488970761696113378069424453769166855118934566265203957944091139052851804132167075508813056232033078687671922130148861790734881891087239375285755500256233527606878515945272549951638311944879583714810175121097625106252120262932455959130414753940468909700042561590114403763774389562039616801915441892675775940834348489158452925813371566016877312973807021443247120750409711401874594941722233147053750521787292078067617825040276185569706400144661030446910297153743652991366329024667553197562953860956781612852356151115421034782346521640243024210887391526122555633812569961079949608918953353257605243636009298052766523274501127716511232251171915940157531051104679040472244389231041002277332503845830335762805065529329558025009503072118666562850370164614100721513008004528904744459961405885731126563748284387963566667236806075583329436029698952100690669152516241516001682301611398946739038869772722286364265377658537004373211595335724883149628023577259976450930442367259319804090544501355332079680642387489132196083040795542399191395281582147751959859708989443904998684676116965986096589952455527660532137847366911679479469677770895926213294070683869441116453015881215286857923440703158710333389356378198539781338604650537601467095039531063536451448534032165545037837863812556047698835235022059887884822742705750928796773893458102995947807944007317076001126917798422164409535371283688265131535950506322442744119850630127879355238946931812483158118391109577163434890156250598376646210421653062881436510063143265301790096112420002530185503335235819343205506583192737461162731361941982189731574126801862806961900337013342249773002058898286889679826817707952189957584474744383226986083565075072659089050590444099240454535016343905160632653487063523729430582241619306348013408505066318992731602473176166580974744280448784583218951552406465065499203999267391960855674693385642456138682913806729176350230092166082080415780037701301083041371913679948117111759246752984837168977316097740767342252298843646514398962244175604864776400570735048957984250981968142132486143126345352370887595712245263563822648116051919095413247850744074839329596984166536380573238489999074452386623567873382134288319191116783951669452434487957602114247368911607581650254756651738999719685920567082262796840199201461279183950327576138465162236719461807818050416489192520742556996387287968802066649816166648665730536359301239823575093901568032284740624509301814660531141166714551210492705961032498722319086548039685596384409427993611168694139317761935875491852854850295626391450797757533725100180923520325659034932821136039542073319547913838077331231592738014380409744088910883741612134884800681980369960676791943089264290555808956854835538295278366134063576980879567572862360163930880540775779412430973013186056002795745472541191334513638646984413995069754657181989804507857472279347224181113423844154388210076242194411061296297728154548857595594747267954976070477318765614115964079292047076545457141612409793141494668801564271585691459438160999845686213360882999360310948987026641949163593089116575255089610989379214029047905226298447179640227706197404095422926838152900811100556712271931176765569760370779631918218039747690724128515977392418103905814965810779961179890714292502261160933969183969886280294766722136046857892050197360268850937169510460887481256121040286941698706846250519823111128422746847765682082575375758031601915331799288108744652076479003313448778380162364319906103446184680102877272234656922776180838198577398332553933674494343408715369951331256073019989674085063465972513998009846792732155448396795415894700785798025400528011153621770621603783313834231443157057771750678508320239863383174990559699932685042675842046888889855366676589974823506562720622534999412014510559790762630131917591716095719944387393874273876390957734186982771441403649889477855676897945189404875533257365898489772298873524232618014163617622561369370622927334025699088629552433023070306790466623666421353633941254267451391257370435578062463824202555333421982012507924504820955958061406367740196960546581822242678387324096938442607315777814596440990422462543757342535233965673946994131849600960864708684089409421438425964464040255825202067060680288141498582480915262468565369809252003793538659123408665601191099303349800826375737094809819806242059015226540057727188052112179359316589124171834231528780143359368313181169724531597484684535176435720357881768693473920880117972593525161045972899558071726530317383152644406795507726735174008194919220610768494647734516645722909736000126776573575475072896738112272099103908604002705105659176156220004725714672545833119069472639943828681139571310721270306273086304074349656048366957601786296292435974500810850317075539411142198036613265636358810753327078308712490680561990461564946464915259202749249914976336609443757743161500762165835102354603571668754672796288381273069779877921386167521102913032546297185514541039091850487907834730775042396300226512644664472764337067093415618891456800163899519645641424393204307613086063106830190014721069030127446661267863523155941973017263191865317631802240708061868522298350922505676388979458633744699288093342771926435311284464272110011701716898870910920849950024607717020373569900347068391090274667569725652401839336427405945047288802549836969279543663848878488644626415415439023052231073348480358130266009251304158105564494569948918984751296242085375563940267719229398578405651435235012428929102274017877840163441373701562434085437025211327421662778040234452783702131236069456180967571996553025660344385768841635672609331309277453248553060205356027629991150610415000228681574268769088556465745728985660860411128816057735427157014524824024092160135304618570523219057152828107225369897500047685513529294743836256717959452305478761443362522714097016355218067490488581207942474365977643432159544806158865783376615422809810414733832032446788857641116405747622950359463934837932973646745619866637719356299452473202746816091726942860639568482717982748579579174739849094981639423264366781458522063554700400209346073025515842297933325120680288459101394026406256784600535820520661690169493009773850206236052875178976313205592191808270192812948369619873711576265919408285095581439122931257145047970725146070758509102846078813247662913206645710128048268161372117329980130794441912381017628848800136157721011870142377464486599435816122430167373371428417006447250736860117000756978015639584912334703451901635617966654111259424488330291238042276762872935638650320054328120051016168703010638409639228621123148801670162291982611672685202719653710754551819008700948068430602789402411414914451388698405372356303069583315160799218001346210531596647581159820382335592661153612134881103974893984663126015232328666184429246620304473352737349405717238892645692765544755035301643808946858741317795780226456654948901932017930244076208845533532714023961265761328276515874843462522789123572909018231515610640064701907888775332363965245985570659583931479697840775462370746986259252152090570790785818005512574295090126150174634225424443911043708530491251916873495854109357100562605471636478535244932953145992187125051970787726333215171702425175886341626408350733827137369380762755139401305461756466027501893196661131851479976802433028836742777204753903076660426256112973095495495061698297072855912466325965609637305225954980062986179239693769582445894887156808434566455048274192232090670199759501635995732646283064366677426585381859847349803964562419248187709723251457770221853403201902588833183661945684249403905884966200913509808036956102070356416581830113182821454945456470821681421635685064412915443395548068328252900462105686462658823694718385508992599920865949080192406448635640741932120753673655131545614292118210594514461793566421561228164850447914243147664541137118484041109003823591730287219337651761770259400098687616541845316560196740975928320577365478482476996553467768392416918385476523650194227433551872747471094721743067110397689972082011595477938024412685803776655537076381086569929800933401946814201054140264516574181797079090857297821187175348230317139350009764412394291960041973999381253345891927383617743881474982303936846306173076344336960808098884959632452520653269866812890348597404606570786126578766985281502072704311667058485366877793530047043197824417858337009249097900623893312301707053133553450225296036501168006991259926428345311628385834544830020864653578709807032194497762170749600588559370970900585366644274596014669975034863891723013988168134756166841650806356303063269735653318337981437762950135250165012000586706240026311216081592761964696168618923399713792700678787299731772175004623008873393294587337688694359083328211317564987220333863032266411051488995672663416460261715089586007678130114791536442891655743742346663150025035703614681448141607933029942122262098952090849057593072683186496629796347688257940796510258946630010846525034881393691360509440994103384940721676141459103606596282183605543917967776294709446120448993248670072973212440991719770520174479038210820766680587941226821055891863877874851982929555997553661052355668789607658810512296937751192376531234630160158357960309515296077440242685166280322810019885911381782799207807135695737071606497193428256207772756824526193060031219475686144575844613546969661446973531325488790670762681045090493813151693227595156151335342138448176640576911746700264644422516352338871604773817104068010601252733648363635033037228322560819640705961174777726437055092596918568528560108057338717498017775224537584877221152062838937053914015978151967633228710401444685298269892354351731451734306395042984826356637345533525696686318124321583142490309425463369064860450901342469043586827955400743254548431380059114716462053372648585705050418746526619691572255962833606766912371604448337782345889915310637745151364317136652077035043348918412618326742577466376723112805254482629924339236263401670940411174469275976819383962106949026187759694041559981727795965756655319978675949314376364806921951370839420278130204914647558700331568322534485983664122229829170276362572858474867495070605049718554270131924025093105081622839497920891503959036760988502445586560335160039679646692174086481838223086841869098155772249564857581093430887931023556661918633142594520279221080568076851106746957511226047116544623134008209525295551279855879155504883717800232323712541485465422715494152620678420342259139319679302061183501257786861402890448813715127999595701301958842972451196081683236298475805992203919875550501345061008857895120176854888675477005676590342661234869540750473936021698104269154002975707728218898105618107827869611591199620374540780768329634709691007657899707561819201510092255331575539442100223568352783186602290653495335136050160144072140980457046080281181869156174575159141830558689449062774348928946652565585645665533484039889640796821990496923691470815558099507051484148106336552716747060528639145452002881928386460273468175912688009422485253103965254333304629115629158600414479286679908228236522757994892355838282647113222187591307736218737665476348837305689829647508443898517618234560691464118934152496937131449613994051731676260189544421703082376813356644214922427428498313442406187037256410667043542643400658856364145871522836756587415860700920202608003503338839621018893270562212295794878566137744530947608892895321046387440292039841708522600038183212498667978338930494380834451927298955019389556060618671381591691597564438734323388497504517987632937677455366898067484269396004841054225285508717531818866630193216914171671232350296775799581475551435190873243419214256880667259863114358211905181844444723020444092891301706516774231501937218045006373369342710480357246700518709314390749873671823732796181489168205779176325314375215420715573963222347888584827303977522691548257796683861633328207212045900087655399406785657473005927091322057711211583261154373951377419439258770191222382998447985889781117316472861329598806797010472064045227441646084966323648809029283620800044812624353750172884025199351089302884946126699273359893669080556091578252265772027103830896675787977656244096271234568760981197014318868813384169190819902302278756107104355776863640615011049067264496402173470939705109428618553919858280804342585996812656975306280200591650202543919191278096083484121193039407258895929858534389141314732392453591008598525514852448108580070885957188160123595621258115977077899872418280334022018248882801021752950424055751360901590086143542996923164172978007203354997968373597520500967356499537608455735280623107015272008724535030265154585596209072042319953861925904567125827664485446434543051662993645097245601767106366600615122671642579187963921422879715516095773921201465396624682841123653505788993435818460011426846322797471758909354839223038784025930368640003863715966220176915522483324510406541295667687677934874980856007214099229024692241471076994205719429536669567991226432583402546148359034953076035435206133448859856484692634802778877717270874698737726211677213563479571630408296780945258251454327525278840050334390282035868019131775836956809381873983444486060237133418224527085428336483842963674223060705344596189299240170145027506990349554648666736577316644465799599794314588193960574465769243713072413775003452948843238803485679645030331120230035227297793965737904795923419220673987831401424527389720115671518660271302706386921448175047781259106095736937316241123216383749313011997169955055948578922147475597541202062101708656635492928654041296260477309533050661773681415066198631245353847120409459718599661267484840830570557272678962033819035305417586145504352873836115608953614011107515489676432844316171903673244808727951891971185492930621069344846092070847786907745844446363012368428067133568596688471016933289535621589597505573007132837299195932908424722616426499516243878380212200487750259872412956561946983230826528751642272434047419882157673974068182209489611269262600852141220727959084533516455629963561062908266399724754819961255681009371487577986779350947536509126102129471900034969564425839359207062043806862909404542160650511142817022112602206713490606799080542623972880778377733614322359695709337517085233017967022130274098210513956349147587923212276337383488245540445085710978671692262546646318012205663242016619490505748706003360807273252150470944295972836689121278105223521279559967358112275035263597139470609370284026902740535395629088718389301585636033792888540087228058360141420262190587622516413396067166442444884113044792480824030778210742993303540268589167584755555527491804526722969259056379722506241970415070975225961351522113271087770472453489838364642450924540230049047642010684158406730478242670546589102770346245413967632645078277747220348885926098886123616765927844853428526502323797066393734585399611493441145344213378238528233466323688334221781712133507038611618579550515212892336840184448585841137369522662932890037276532787231402130451207916392957847126727767112345369618976341801164911597682099057207188237502058997253071828288754007368968331140949623103355147353666509760511104230583837636187803937735052493174823138105747075996546155673567298669858838356493876521324355097361122371655788622298970776517847986576614327348611373468858957601634943063904232105143322731310041718317336802380040934832003049436284375845732757094127085991584542813743090287417849540628141382368123102397412789242569716526950375673184853981053962497204744850484762853983648455926067615733387951997076922453236862500241910670863049394813524938181361093402371565830966929968429945116482207397202998516372043687659311729340990548941820026780911048174438992813959973697554325353807128663224832960425615636372325206259476325341670394305263922391170877988844299299221534311526897259555045255541002624857904536501589621748912341455467234104708369767282106155415913167858953670104151741719526191925829420698969766881116104825010979093991070593994353041689925020353424517980702081939638176234820254997702639920711874167391066505572779313118547082843499694929834603462009162014895732707119392469887695822289778513922383577879963364180388306059680145378470957231656963774054492234259475229365166565987499725784424280875837162991440578515686961578062462229761486064500977769150514132655414572965038445729407914699432712263246429096582319164405625925461300628648993149039158521359013085454175895370787241332725960079249268240372511408486715892012192846954129607862444297653084578004660581233461164846740158420516488860187837824099521970809181537590398364123224826867560698645861573716183895252893312807107175040641117661256377546191436926277821204179425136532305617352876560825299269970771502765776311024202979276511724593749042027958096134478640365619816867453804786481268499731508634830642330963033464254561873272522076573082768246485675093476950869982857813192303707630733712792980864858598302272538453381773976194789175164029672325241165702198228954696084369364136538519638402600962462276517507135286372761661525203388511311458929986746607841538013705631881521037490787421080348110542876593199497887258017382436421308753787004518223457054631294205018923516040181815013270680164251231218104840421407403875529482858243517943997755887129678069153831778752696080509169628174012913187665545417961337460763008312146242703483265941585918873268504744825752738789948567083665862691426732138059634110048249098954153017291642165689230262410160817542544802485509915236974922809144397439359817481699415311893338205226170635944172752844547062847452966079023519274345966831076392354341432444671501621772548561646503711144669710768788604801719534336127081889968212949454838237263267424367810339099060263628302321135224042166322001536520330432528512332535655216839749419909875544274710915402069037553446107656699250558264544960386706126315496410944502274923250575379372274927123921112744179417304314952646906896293520937647268477065738744770722319460655047986628985532461369322561104880549675815117111220145793189888165566080935112849057091062004453942716043747569888948540806997792416003232883586155232338791916552608697230079738529306322108176077588362483417665445243980497174987504239890671001554959577938044126555018344033827601120435522695598275489943794098247521238079732269485663735238110132510764266559290067795006813399814741206499697306219672602922788576938179034381535208374326040269567747550853337880340625448134551557542726533433053681157706101668845226584015265445693477938455229517054630418156432402734945592319385045234871170351140946925581594195963702528707015768882864547248343263096243477662427424024861513912505969966912676705320959305006956035600581607878229485101483726402170610291060785911525649103138123119786739784577550088314226355747976868826200350911994246782007406273656799952395261367982844570289196349573753337780939017625140896829345644671733790008007183337620024394897768636746423942256634049116377420348745096246426210038184644893111060234491308211319218241965763328651831904162311979393512489859712438738161640577636267254150637325214484186972111254337969144252925469083711706034686887787795105322415739432241580672855580131851160112876547753842319585886907141637423006323573910628992582670291137107030860070128783644989925216427220915532347648966825262548283582071113105176758277140104687204060659780828027517288157214334717245563981715189459814860824335965178448223075896153422634715243720370484411308204067995447320191148159624416502428111126034970069602242721972147901996749794616574308589833094056871980905972624949752930189895723887325010340932337041487568795669342585101075064215987729421995535127423805347435108887412665852397101385091519551162681893930393037966040798882254002690727539540326702938712557142031064279059858984899715830854907788845316977781580333247885815716380358649989402888712496029660454314683899208636805056076677180676622347381166930886091622344650006348596887284064610058548306193415936047794022893242986539208178815830882569324345025748910862650462784795401905907395474572745307312822888292114582122189410525174632312519681671055196644457534218945695751110628947159290020623179766888375293876477362875596454510254419036479550814769024333253648648713596420021835440494045482171373591239047309100947774024397578391374154531125992141738328393690213985511738693009741631692646651596186220550129275124102609275532182829784784394245938800192621247574138812940595375427767462988045883450848795049561643849406231740248563797708671539187991792903050372187474718656577323341416565389267115257338297540080568941177118409421406555733290230098602273554678849907334782479557100192708693358218936764360960897277139425940643596167063257799568969587514304243039654655858876278627304560116345147145580618940176274043391375491471378046278447459392471512370731824712864152017498234317323823097952066686251979852774649606380384688458119135007942433373238922942238331310616646944648076071814293985737581875335773446219590522805369253898556429955472192573646178810179612640719172872461700950770105670264338555857695819152924039472504748027621074281042131814368020438862960802377005452040403099135549942441673817141247702204320643853670169106159114472916205152125832035050371543227054659478147758421751930131857520445516666002494140953687786334755266695001920892655625580042524631089099407840803332842072236340592550553357200444273522270894673906056548918303899444095620456817971019265278476235357597228976517406574954548182390321452028338656138699834482830925106027705846675322196444134440637236801085201059938124978436196137131416673166384240834941771929173072529715995487761367032394848929653115785023422757740999710913496054492440832450929012198400161676901470308715276175743210281780428737948816070902116421268780076678092636108953349265352055592882848034529433809435354517965379985799531100558073355746861332309759748806482515934039447198804527168486690975399094833509655875771094160335014804982845947186313768416832628291893227171973223677788216080793068879764626266014331555138551086113454791408841972413691766969427523361869791058975966793135786573244547426625687826966341636018472142385255637866412063626371262617094201210291541500654236929024631034771039897563018529200609053642996256419721852016754380594348862374710629089390533453980112096470340233924518677639714749559209932689873259681384617465411681571614912309357984494667159932543339304429248733797141104860309621834540812925111209529608466599709942079807844886889623347515392683432581682355867375862346749926532326829125901614201627957569256050894780127889514088925368785578322859919370850328138476371284970061778628674224019327352973927110905595060520236021596871436877680698233705725996322342627020163802568926336769964135039036848042070973461304855790955873952872246548064267479002610950192029952038448434631005321734941636047509424115513588339798014848242177299847635503431142249924925968390293658665873204702442365207826132094684019421506912072922863026938301906381847838806735400259568010142992183504125237832268863241523991675292691606425442277188657852595546691300990645215113657866848483333442008740865965178174084716842704884919202782724012518590023825207651066226192689495675591668479026010103862908679285681135122189998583526506117248541317672543481771496239664290033416886915505234285419296194463380912283263515597790718628850790503094242566997146637286801993585911241785468423263832672286016959212539926742444755858429474474640061076223862450312235348397884673541396734479444339319959073221142775380451553152800592501316028317219069859725856530229999126951871774379436248123775267242961022867991958974800558398696106664674207323715420799687818201975547623612374146321444502073612120746271549438587132628496791291755289192874637386663555657568609537388814137461891316153166449462240380228920253575145699098714771277892346940119378925643699911952508170642532927270446118140531262043378745162663023076281161129990873984677654394150872767279707699401103667540981138434066832670810291292130717315196590924526662190175746610114684617832160862089765544612676825731209298865682556947206654234134210672876500118566129345863469181839196987788182095345891050642895802169906085810722576032763266211318524105712879344430300042203303063215781548490387223064165962443039638851373671668246958769920718664454913949307388454472332371228729101956643165576401845508811871703398831208120152158536029692598592860848855427971726910632430655024906416782520989685340670875209556398396800581585361557454887037130310331952626541535285576957146474184719359238015173937371330258229258481687990802542954435270642705416106145973762381088993038066490447891208179284997403370970936750415498862405554480698131415480415454418615624308699205480987995334479713155485868959748021332409106976406271813851262582584024221890239720141070846465319890146570322803436526759835397582051195458138852106345364297450710977425547340029104374538085198791993852500724175586869855721072308176933452811029985489250722992868372923498523404252459337023710423090976866684025456538710921004226840102942944579653809892973095399304228023663344416962737693116723260849452528457013909239901396973695672198570347655860277138469472486090989550626284233459812519892240524178874174020565776876885572512188959698164087139713639001535214194769704694257032387287183976190783156465699717985867944264952531071355284746340386527935932985940711466546158071962736180533049454430299264771836460472467273376597730170518508626952262020645958054083284239132695826859066130696385059534109470074133150231275513140036408400375600087691669722252922532650301660013746777507493726083084952742257529685785731553047115087536245171987344232758307750940689303055528718564650626540018873628138646462303638689745652370491526798233572388333988714698591040515538833888414069403974257732220912999910286332628371549749454601926698501030322039038628509357984712747000670757224954146191425490850065861893264629562100722960324321417121068801534517394443281974094370459215406162687409347172676088647795926698203970907633416937290891191101052325795422989325623174267614080106362123849334191041104245225569138346460766646466295473676692507479597780411954849889298340440283571311500258517198418285462252507739020381529870752236897812919237713813541538336629552962551701381989123866896286513467618556653893100068789886439366017879547513173318767010527254776347025313133714506173911701106053589395492844778647005012196815326518876965127715538598793586250477702057757546536685701191715944989389190174563836090501415250325952100710439379206170032085785718990549243228768819962510587937057516325987872751539663176689871770177757862946176487248274832346196196336089903795702972668713052670600333291887885961667231356061936675950851721148249819892859015392932476445327833995961192688304428774913603755117567200798358939482162432832581916134248893255506101923058032189043459480331168670461892150018792350113686199219386368902067395867874476450463809086123052401053744680891536347998004596811398850093242136617576151729851509513603901322049812675671657368204021939867006549305261330221262113685466128118919753137982133786794895843499074535648229001473261816881969314372427281007204335364551945424013464315058843207343517747700584602998465720307565147200206320434688446046971948829230969099674511901955306354376454750338455443703578684041947484742996047716293804298539879049819043126341219403236676811103286407483386233637256091651212309333006949201690211025080307633875966194407585932892547806899693305620208320545584272777130176716121468047984972456634307331520974478388665987274374346267431480402932423537855177231116335418660941976327982477116147011417157948923279512782578614800148561574743905648772414153683385565956964314111204399528127124967415205760854942071330295842802335251567015006417772109350954218532892582938598219878288056388186184546149081678096297019632015044778195978981597163358784276453058426549910728911611919868078424723677035153113518646622234364519274168436250620996831538328675047811638363996136714449900596780637679392465834187319157981758703056064433011549613387134744941066217511801300228930383658076164335522040034975429498583566150456716810272159448348950323349387789754614766156710202386408375069235420227383212372477099812526788425399023292388270376656988922038819915003516874426336362566491878045999294507640620628268106005858226794578507143682767001646708342309799794776202180977120394686459315717436507803098579341150474769558411506767883228964678596394742393081769235061144684834832170187229565364441739755508464669684173470254910001893009665903095672020443825632959115489404303976647379267491824581870694027436552283240277804245397074130425743443925894174085887610934673209895520028195958102170334316084452696701957518319927015237870922654172616874494849194071246542546458514572555956784519394140550494645467157827300798054633511015324039553569401605083627293829489170506593985537035790660407901057388795402105422532909117413104143125677338892913618254681338974270612546905757031292283363704118556576192935389317105587766462491792759233197908825759734229503141448158157547793560586051653195549924694327981781047974378802387983567439007719696591540388650406241972639492115881830065036355753657749500347099668982001057985017720337235410156542139502293037274320663249158310588375710479945775606029923407786095532656128260318810903695764303227296749599321277255039284650501059219618892159652237858938315614974238118464717707951971358003596939730296530915492802324124635584311839230297779537473108551182269268425568060308133339857511734600999055979274578618296989431516171134507568710633982028285470452812479953776839427226264213304969976562222523090957600387239763897425117157891266542085040831516791171322607122321061679902829129375745704226915076907045265577533018791867458692158469295942970499840967070827070997690696979284843724831247731811944826716515023898472541994502507541978572316855966751527400714194057270266323129560111626836778124949335347019520483679648650805880117441985826027535432126074066927530806568962110513234843148786869834113156162601820004564030600946323868944849730930775132694423842475628022294166655268918847870160587723013323084883304265608715640452698843638934095447537485326474714910998040371289003314492688571214708068289115781177551885279330457119405020091803683747655524637113064020641882758598795498802277677241439793638683819415422499247850909819691175685947244828669821915922773187999687783776978677930583265720234406650276579398238106143509258919631785062827688172856128582691144243169885984143507910006851156648683631291093856081717257177915053020911641906266162617958050865127089704156889111114325393337267350533655049957077920621327128396738718421283397577771650564370896014748130134674734848761255098018949551213977719598221074170106574698351582200015045200679255664776451325357696295588679667511708856261702012127527906809572161839606733193834116166565158579190017549170397785477825718803963967326115372355168005085406412687469186000372670072019645165341592510689476749784256002185958776869235924436275322232923332389288292652921207884206044426353474590021080136286214185428428206322566307162566945549023818784961823609643558240011761264562834723423597281370413048851429315981359253170012114618247312397585492016748895124397351649272584904403648637303863706830787547124058373732678529671214752093911590587267338163105135788586306948474312379421007573345494780086947606986664775124454374343909529007525236278708346008778737638346190017014183914293798156852106767823701488882183980253531608007618544647014257922226094406866553484874875746426591425516422197697500556795816171829102747791603176528591063851134347102938836247784250351822859424174460227444870911971707659036965833965969249841607118688475094614547867658965121885129880970833987777306606227698052165986693111965442606165725260544555318113317765562064302082995339144461083713349119642078205746881262848999591273076343690932580270246998097489498059979453588908547836326995437470481157967644227294771685250201254251094472425052075886874509238984015259893100780351610571119990702075223327124212496600300239927617161765123683840939230846260017284820476796011205182409896247314561432153131911427967424415242337056939272052263662643819399586433651700173162381193098843235676476347731179050030939965168945631622140637556887221485219990324310551806898030328011140691445396699897228314271196118019168683404994666985042029256460956266493320876505259119068066173616244508654764879398263126368810807359701466840987547625417083799755666074244034146873579832454088162041368604907145184821826216447642481561487637092082359823989800335087490276661731660255406674920075407261066185064865678150122682231078229898051864740606503395369879689196685302677793961268413181182730051328881651488420024334649976079523637249341758491355508155612328379549944782444550070769555850506798477554149069325825435186265152100799688375912079632890980147227661840431576935592614451752472696973957518067823263325234671977505072951862457420892992296505788828879474549900832297407034914163971845697005302797796094508970747579904167716990302417601971156366632339728266375516527662360575616764326802178245614388687785558077096785790865936991846392002827461155002649616442193696004959575286108352513755372637587504293714911842250624701787966587980117124060351416398267162430951232084188529650334820584424924155004876678048360403395858592168200076142795222995633302668320757710358464509744966688962785837620073002371534513422336385982672939844708299089560044553381281639493740090286777169558549398495440281402441727800927618654767614428960247766169716990222008203973149943805404641385459846798854705991455188265555865174586693462888903453872216798236041369372532876449115563570865965970451236401116929605241118538680925140524760147979148474855980476558481157119862173516473223852916356511687315139011747662156205026027040252995642113050425759483395287727725404632982964084130482059624748553880880566768374100749068159990067037367603086242692878523277490314225767041015176789271135298375211621589410536098329359164876026626024469677406194596352418470466122270324808931721071147140377785951983298194082791230325831476814597773187544871849004080563528291168426039806262542678220713116216048764481154539376702908924008996241392352041934857677323512574874202393201738925972245225398415879768974635231035927661489824032767245937018351281530127545602539641513158758018231284881152674503481968021332209111243395339986136547412907167426216375788311748403630048764503169815726620891387473740331283349354453741161438442108016101940387974374956062391038820167203496746856338851611205804064024400637324421959564183416618653413446312901385881734467559653551936988958588099713056826820918790184768843831203202232485407322749635368610992399573675214013864423340821549852405183180740783743602482231116089330590577740694142417930553152895181216575082836918696862923409724930256407777576104050727312791771633062068359780179017191640191545108222063991109692062534744945936712405206777323805858889285527023031060915832254001024077771794988112018389715072044953965036417753968022078655858440866865245018817340247342805310653516670116698434186478649728088489006260682742050669194441576679856625549299448088920186553247148397856499310686399050804559113356680301068278583202373075363913477033704945513806431633986087762549088831375912949404461099328891873598565978648969160460094874467936308615987444474070735895206828227469452847729656259762283498548652268446774393519218561830209560545198190024621054436631335917281108726911953458919752940106776789689449859911119652380173358168905282658137747244016852064698013231380238575673259527893002091604962853792192867287412600299411166461557193785785455453798263402604899119406497169047545030412022695905229929192697672492326162446251810325010798842755754469631618946874997178724379179526909200750731922283626315770653063165980431070513542267030465055015514798239390137115040779606765308864152200235890054141834412702535203884748465023565625347753332967626158541631385204640320104153569116704011505250782808829073296596321040425166420338483350227104774755962626117917900948060092941555314787660250160705109078427760945429704589319502160419719824808372845026800747754174197115298856817853086630313504983838211328730772074415263362047350463444973167765291028840760936066864723375408536230640084659662542789739308388250237050575761415775776663519895128460997756640056761503360504079200542527921386159859741207519719168867005973452987515336506378896779142287584164926718072755647462742011137569061145186830186999673282162977157287686646256622619954829775898557649878575114819426859017897908612919887183971345514450949566881252581636692426866627285180850925184552590480424947461039229216770795155719955306608952538105123887703137437812537730734957826330762542288844739803210072585615809615560671386471232980068689492795219054340403201277223803507050227331658626495663724980016636408734313183615631480464379339496108771309450475674854159228424476026646110386981576347259253473645520446025050038950865855911814019378734443384482449841287872717925481832344245072572753538526010870501276208082631698311366014292353489176583093091786946137973658492005255835498265261805752711195670329219783081420216952901497103638451530772405149001625811046572811745084878669981366875478751118248976970738603832519175851860764324747383154762395924904633168337550040115083594343322002147243278669370028414699647429222062223436007079145798146145411199006043251607916734339469311865156234121385235279492278373593285112077718489192402534080439705937318959198023230534138762145737607991270571876934371827061261768374729096590412626090342926840151739341316421980414364950765967317553206827710864021389791332293620234938524045133244667429377277247877849938479755098383449936160271154311812531010001057775691904812647770726285603155992837306658748582937895955340613624601143835515529068957976070545373812757504314886939173139327343287881376002540656873313087986482889159160967766191662228793158166872012554603075479265406201821672596325934951113170585338494944766074531702958984041722726336105551744072143561383893920867101903798370626330846514900033378334023470402374939788852657067340884139285954045765225428500677203892343793946660419729267139947637017250124535703394971093770025312577107240762237098566829600939317361755620421977946509811360400077546868632472743149017106536327201155518876335369174652839946591354078020194793326091286586495922135844249523181574614012293376165631502475006800970723989412872121687235814124414221430524111851490377843229255445172559729296642593977191213599846694232055562634147995022183993356438826055277292979779878112481087637093797991917717666605571516398930867132615714931306123074580204271503492002525218699845408270223464456428939012158167758775122666324336500125463114144550101660044543641246211875665335068299697136131284688296901286535295567959638479806664464955828683137763348220008211276458037273843060313799904428881681994052572706384672287510468616937558880554082960989345643275222333957960505929590495387145030818911326225492704599583228659903972982924965092655047758400121838968549867516990665439775030601431347715313857553752307128207487488048842234818279954334000325877131873323280069415338368931970498630982169514060921763055725236958322335134083462877484565129717538461995553574038596689470735973342454355557227751231892172847204801983768321781979262436354190308248421664471135288720456775783202091327327826913855300827357295550070078205199844650970557724616859650567287410159447224809030401161411899061714153188949486130481630121701634103186414391780210653992560052008162367469344139023414999120381082082264149065164023805050797439012036398833496635689034225329140240705186886025539145200825562939492848172124629558400920965595634548621323830149774944276907988942016346933697063683156843770316919756421699445806557008327327551305128516540333397429772507950009102779185197302584393815089577353692386163015996622209752625993682838748802153222761540794338545549399605825188007169092255997754580240569496074490518767678237463387964640581723821672082221493553291232334321809137811943488549310244226899648455251019861101519364818252287213662716702836240669985332608758098830346945719576377370403805552091899843592516577286859261634608800504640811256117796140191697920577365428036726746626435933677131148547855388449484999532543423083677807839138004267364130956741549831043940101582587648700965236238673179245022563200449270660943361675686736722694433181291727041913764858760440279824302505858607353564115072846388270738125228629715846667405977523450368408507577728515741094746232797825816784901621808364101210430032753594678771642441544588609644086273150201030999881304077617293674533092946638390666135136488342806017409496111267900312660794863366767453265229830614839303970921009850951546586408301544779522803813255092461083752881682841693893528831424761386506192050560786953979600931008676493553547774577787294145032626229185400892548565874826459481237516322321539334974553961418410555776650486093038299711157867234205526795332866167238718874867326565177587063684422006956208437269741668939167790739893848705914177530267744372770574198282948888211208444127185268444235298736902529899259002822792379332669121533742281528411107970175436753485228580578911155585300762559075100907448644934576627805963433029602488427670142276341183661167368827536257842345996758954841454355701002231894831909721470311095840935244524130932940794839709304581295631665181257335978388062664830600089414829193804674252003786460847086604599640861888015953768570550549333309556546620527517233950970023718593586649597031685701287467639212198772387046890378680668922270788173827399401695814083234093883256204879114845632815257007509751416183064360491499936559453272937246479926104376558886834447965408861099429173490447915312681317212853879775159277419082527718660528654970247782437873376803782453089704062215069611698423706860532421691550133827062822741654020401125614841072986767862651846130872086729739883871752580168506529446411763084311449782742721937893882102396551610092803128507692242735828020536727676568699405812306551525103298751671381809495433332693256044989410189173791614410023066391548902156832035097142468395452414231386206156748995998957194078899082874954484427408222472295122202374873910751273927191265802847347966712635605791517961398897739049706185742785766356470213427307879274317231350560020305630694711923054848072914455253128705486086467028282351703741260018073779488035596232033964865932111147541722578161557894883525090237094126457029271125459777686165839436309116299568262873923773496541034534478978494567978394401639082150250547480594076708462769659672300065683497576281523605414298459388428164595285191808031514634717394091947270209540615147964530217413551042892051228902814144668430710732235463904971854449619019695685393339547273178487305760428750651941607879052069723456572343059271752705556150744013503976993445900868670817614507395869092712095625725732781031445407618215284283060391832163357489135849769824698668704819216176071555274029540209498422705757775171173027082797255597047179065183811776421679075606184990351806894887473012077265613446963892582168200078223594465687458008531705515772483175169629703905987796343283578650003034366341526346033441865735880142055710321080674982971743884978448537647556839994445937283361700970407947679601426772586658527331790806252971835686577271261036729958721229340171660405991054112231451953129589371353033398845544991514024196499261652689913632820189568516180022093113434891672941375464220215923669889340327351706807257504201349136391077063784383759242025365547051121831105201650393297123460365351726831577554582874378399555180504405350503413288922411562384241426668569766314645880513196928482539429197138120639160348301532325317314485626649005650368662925457106064998054158634043196257290410308039639864077913463429763077365191887919981537226636231698429131107198102600825654163593389915290387456649747894774434493382007107028578575387997113953243912771012337015771012810202957248037702071964691345454817369540298586430653524702267999725577102947829784047919472056754368439932393415308272326774441584135705072035307079848011068758467367962823681548095485934838345304950294167212695621103894704503837745012200599377391661225344072063899225651850968049824366597428469894587324125208118160759633427138733322150692977861631203720035183728158111010425245128797699821283018119953431680597759193465569440625809987983412341681579074835821207666932987456227476015667146066381111817449845703477092725516746672217977978349793736255166348993068424101926330531288655003015162750335756098021594985801785511970503861267582798874118088776166111889661431299698700795100649360094302348894723964314203984163571341473308780179511586763456444368356507969045882818865958469464641254523591979827413493358304150174637037168685439269439497650568507011323721766681566900383783797221023888720936880574671035206638367322172021887482241489409824908281931911123844094214784757964700717830795774320637301600336389956651892376401742063607965296962533391176515655978742640384529187307159298908095736183324999390952672897884412741634051202149017188015691306719100968219308606445900409263026684258341996612844807569038902043591577572657525766110946905202479462050691460115678285947217491305471979699519946917068560545775097864026136668282631998830118760432200836633230886633809343346839635180574272296027861018935389216399947261100629482503804743084086528863887059227466810495142762219161888124883680198220306743037445550501071024477841156956951451748183604079452938102961384747730904723392059678286455960353669011064196806408576894871035928598043497546506321783864158178194582955276685573846151876840490493457384555430533508669748387011147309952836642969744350347583967823329578727366003176482940160196397905097319613930526432890920348024540407644668345351441161951156702770654302192137578732879292899112460038258092450971141438008931884528639705971156651054131104918886081335755974418463052301059085772711388419774310790893679487017797532440177929600660978496702132448163913001033295025375872838689632469477358973385886215831564886592981489101989628849964301914406694469139923697952617670735645794481226873591895662840044923230784654720105697532737734194481521496081359071555835297577470170554142137585089660514597304213653686571615330776319272409166454475243529081154557532497766661759450287807552701255916072556783193846978310716101976404046621290505246801657269284887717637513332467007349043794525536656272597682433007133416101445041190037788065350857829764413972401216485952707565034626174157903396273171569960889432160154643745783909765401170083741220465370569896805157949412440108054710574186118784586579417485688444692033633384386310128529637093531582331771583536973232770580878330612425032046376010760050404560339953209773821280359691715086153702447848052410781448069554952594817583949976395235562452492915294970832738903589935317852136118881895355458367775841651256444976055498206702015833802323262630095043403057479824461698926613589403728117889418476848993079847113569794711010304596765095948786007342284249158636130746428587615540176974861831595015375662695516848628290268781559080215221404327094314998455671457142085355745343469753831544857362530420339424522171313833343606280790731756498186047913379223740162166950869090193477129107815311579772703735319638734682952767938620063430079229046799834831608852268222892632545816291170151101302500664178153973582473469307554936106525737376722437715158601563792727416374516357043990293809914688970161643262315403182638873662973713993715292219512775873772265421277668146709408661583949653263572796655865258112240569034528100264709108265734862205466741984931484051371520973488234541910630994406812973959151188359647715532258097372088676469191076879511914718469009109636002325450051809665922337520040465362774030796771255864878363551819151856918445950096384879308598140426716016987651443304492484004420607230001573068329394690335376079699410970361072872301503779158635430919502605860808694486476625287120841963295915748423819613403250133096045376652333551707458379489241694811224719308087946021420515529966835621197917232888127063054877611749656918597390814583577902543988296519989604479928271874109607966486994800369405386421602913730930190111907056834998390108452886674634329831840806561014041105816782748774170594917335839468336831263735625679577194707806444428732247652536827319880617206502209660393413895301673162871881295515034017093065491644548341952090509278883368631185079149311018577757002609122268227868420077835942320334188384187295604170832203496524490509578347773446620771372246292906393683461806974002148767863808373683311024219038884387274078415300471783788691825592805554091950171025440668959714494924178767493951971560358164182358946120630275532355141795847006314734521269942592819599058244191265637209831778402926170021256686916311606704820418875044161443905169719617475070614478227526012600266466525572017916352479620235073619591575087268811030815386855959378542503400632104214934223104861841036599625159768617610351489885754390851054764149024485690104609236303962066903667477317603397973185116453438810555982342283907899675472175427989902549890521169669132797170111526953487906695958977558564073663072606657635289732532332551957057933559298154335864087286265796139338052713972852573649098523524617444874471201250789412015161339390033977790351525382184624413337358167109803462421715126881502866407735918410770732315105874702274431602844609347525508634693821537795819069869161478706290065249232560739479493706063547051854291090439199723434930901830295781483281211546849122407142364948616879902225163254622862698304605794466979179056135148190488913207336689918445058627420825774270905698806707835457797235044822135626023507162494647610038842237134751779365405253304678404466090990921778695716307623220145320011501779386724846265045720329421270784220525806424634124565267175104720324771366975811790865890571348039044426575264976551275358702353541295187953012559130708292608540553099470709539573802341708098231775860076082797821699350881793140765351766580526514202273920249406804032181128853682030812956342245338462950759061717927194187612259219458833977313727025727831523619733899363044101435932266268198839751589769625726094892480929416640742248694129569371464012145480860427090607859284852393016930301344119560131052136452713805678848627149552809470658770573760074534619255295026354743222745078665583224152836727798465426167985572481981750675855525037362775701386251312601285497709606386124336989437597330503278978932603773961351930447512386522541589013951410223336149978614193188179607526615237032148680454061175364407906568091210185364433884183955455180671985463297881325569421637007704955626991085169136850233688059663303226610185056861394485423918730292346024017413894414245986951520852535414505904292984200149288162827431805822970268061484618549787277082750348647849451581758611465860415111858828240051515227226262690925690988963120617754108060315206848287615625850630140609587900117866403837580388387426542274200433161301759244852617504722792029791172642862573625379570922084021637087515430524574217272917129188876870818752480933541029183046934357078677130229063425881780381827315317133613675724829798142051308703567226452045712180435020732055105469088671783153262563753579751781319016894687883643234072972356286722015476475630310457063870759055848550040926373438882832284839652850190873646573326336344741159226711234326748155758605728881729476689746804569503368710863910996064557379234865864476961321119545118236708151765154349573807092183682061418635551908654495655940473688720996460906560296165722377334160805089709189249853844083845293800324656952577784574778262457690295690584382836887294857388650937261336680092796123350087755968102372887085320021812757177354779910326739416839252421420733307485306625477386021459537522221782134917514050267510762161480030796645948431650667329886070008179867710291514079776644382375678475815247323762866158468222463333137389919638219040473752756422204727521076665053538650162149056907289441509251954146521762202382821580927804043815974061674540060716378081984698346476312164098450778109715556452687964445808725332543840740090073021185108121553734523234002146055320821900964730857868759313329231144516884322144823168050004657104587726380821915818900796531292796220630808326762816174435506348845096123915549926073069609344490195729139595614250409093744037342618676839935204124381376585513319405046993680195713657119060068365130134892644016041536716575009544994289716761058432498644736811153551907333242926799612980998722539503002419386732015026384977887278420791343232180639597442839322402461880420176308359918245371834089891818632124297936667865816584690287977934415272237395957562105496691446972849106368561109458404999776991905754531122639729805830199990086660435444914189435003612127825805228840737795180872003193368675401117788464716863276053161928414080132227037737153263099557732086817067961399158912915084323659991211166481404661972964027368984046807771745375523350085900196286390224056261854982085100062141653654794127511102376581219338183888857507757124756542028841154118448393560019191429188076338622142486421976442665360504577844760122966891005186828679255063318036805605281584351351313715080071680142141310659956718664424093269520148076516181013391660752010502477901915527788668810021573165940040181131524579338038327748403488136631468321857629472292420598704637084362745196948245205535667939907646919047638230320839651899331825418757122233436647802479409196600790902300992092800504222809352358793322905867411794872907056687376580488001266849363437851406796873470200209500323163064659798383125801238184912260038064927642116205392423257712961232756113675729605817775274627948818711589988295919105484110714388830727374315707970404920487896817325403164374735499121410967916311196665191874102175871123916949045544301502159325150285212500286913545689174078881249611606282414404095557711556490834592079139289439284494905169451604688116223109824776194773091154179153488795551780816786006871584482597747959971482931026727734389968506022078386428191685603421874047136490549534892654379962111054512165603617681995204594174962555926601555496006509285473402325236643531301731602249095951578694775691238329646187366310430164685419075867278878028399600581262950114966955628786966615085305995860168090033315753730046415528090973143905101823855617042869581899535396511847825672135659840844042596267478952928820403067332580523191684759331647749201643186134520804268393704358338117488810604187253226764831585278219174919113811730305122934160463257360162774255515504941706429564396524668559621695000055431381663563003611712269172602123671384030322400824686403387063682516080578690819067054825285014985823889578281284596456240066172240785277120709793786757569388106964952424424950360314873768589968923921236801000303816632525152076207306465894424102398254277717218128218380181739640041493441174120710766660476026997293754403193213017622261978614637922525417235341319387429955754098971899305396313885270683976206449937245387842592366692663139263271732968408337495628902516932899699821821503119718527607738735234820475788771869757813173009948163326730776633515014386490299778577772530339078906602719340043216012386884533075106053283302281928174672099638511981409444486637897079902209288236117661975090837111016048519342528961632196324717718592727145630907947424551215071958953611257784253696203871440939634290633425008382888662414193752300270713302755574244459378976612965178878650866189927874959925811137677785013431508350753921430722655756803061395225396876391450903560825995702241304424240262666307891056760818754159482959694840374942600008791902469032009584418288158046602086399331811107288107056781387720123624802731962227423218887125458394614056599045466854885926013215054487010018339896739901124570205049664430240067966262545668525659463946481471869195920937585765696724467353099099589178069062144914139469976428858311641884309166277510421714371141682846059817475098778565089931470899657075808619855004736614197365004987932228077568907012442283845228290822825038639021573197515806543793129528796582759502508632073832426388441929527961212122587261396764080459000162266453801029744505761472166678562342285803747716609675812027658283055940535152910632992145056920759713970087752941263383149710871539125578090279467485662847409627878339649887911551930116512187181235965597091410790604227324000516199564742732336399921908255516062006025051232440425494823129138368993609918396446039320463981253807512949018237836620074599830914326200096953795010357813121724202939621761779575096330318838359734047666471153547211456280011768733049286461999280622221677163215188788853760122268589256485022544630734483423545521469172554821140909425075787409251377948312308311214242178235707504597260210945276560811493604944776130395822194027119559226299522606053370939807542285382394398457980458638912980862712377240421879099696806516333027433955533284901032230920915651541447281675473105462414912603629547439512197205381987463001806725228326053556641673263322896886693853937772137139020433813500029885877746224036343607448893452753008980677117090763166706919476196851198975488710594696682560055606143276126633725757342213842059882578506799269718317375514166605793572067970810637950934727743769464246684369782508823371713699758469482206331776234797787698508493970674868789696476230607838133664297105309431984743297364023275041469464488308990428540233787203674727876382855786804603635666035306968215284710607576256755207954488587857751210920512609763484490601359241562465029270231038589833059228660517434048722624965512749226234814769824533855233442470570403192880899721117810963595680975994809436544290602478383448098996821232530524979931302605564516299491319899189929898804817612623867290540204960411937062797432189160399314277637759379421901409924538033409050707951574093823428365672659949130811818859246987837660654883198591631909670663519369191794010408342180792705127009457916965315427608841914750796177914658796719844888872226434485514428271185651424063604677409329180887391862335088864384036045269972964527438368729257779333067927076957221064999105837052021741486218999513878760395655198030126021300874040540136376927503305495038879308797711855616262242726675761574006109208291290793436436163018696300413153826721607966333127953012752808412019107784450522218191453909434167550738768263355641257432006426891260401594707062023022247489634065740720730372206810126157187911285491947412535781779043971900704737574877834558521902450727542655844690073506838376036028536360797824502057062398224831136099407338516955724626336637603115556656431255456287917735286389455737666026643631378453551322258636118560358353930740337641908604381437478391972337204995640453720349925342761329057844466346907300747696263418695262894531549534377085533815013587685908406336105470195936168885508512321320263748865648221175043686905510346864831794963955436988730902650856745568964324075752196270355682340725740030762896977242771970643073028853956829078431989133164476279001535167975596031603370029682803826412189035118420926457352122005836236980636852124647934574012078164831518487860302737839596674953901644706382542455200399941810579820442024161255640640273579554343397481433503898899798591981941547280700466050168641603540789353211744007150477142798328496780418327078503569896865235863044533246907077561080398263538150776478132953783678028730614929284460235919875023769162473597360824806010980207048902908948381180946251359132058107811271232613144234021831831050121256204652607566276580606447925083761039901013870145382816502786055580766263256934794486166095657900283920426728662801874080730043162020445400281181243695184657080874104256371112660740267277773783923464209720209156310702168579148843189651338855268361354464431270639614440497321395080306158618717231886099156470511205599421353640128789700273513196658788296558991014359197388607036057483345571221376365267402679332217793485962196845905754130103115990160503331318769779765713014900660632690952349283266017498955412372862623277645626984293069119596982370921161414237573640492623011950068318992867598903015742400637913672011221923900238460606570065288660706309027035561602305889697582456321826838430542064290379523426718358833760714260570508315079233199797108443219441610590046115647789437447629494417849382406103569372003901602107664825406533865288963960153096852152338306957109238658084590688343996771424114179770159218815019328815018249438342233291300371080282955637020745787737610951074271377247908708647030455715224735944318264630614932498925729009710803987957165095720334036864807754923974681227375349359895796176569476090047133811875343633496567413561323159706874214772156067371042913748016070884522988737980598035491983263869919640114069792952699300015258794689995490309152513031476175130123333355268387239072489489135498701142315938788026203242541139012553962539602951558673029742952505548017556382942762356292673580032754070491665556056771662949800322421218209411552426554147950874920697698464039630782513198825982320425195347500907124340086164289132707995178681290104594514646368993026519779864951227417447201280854030528051930696950709843635024145156995381611142505459978776447933425434493083837393358557712409107677247968204922712793514673682362377408781853979065815102346930369321095815387563558151581866902132738087952273736998025575018155785010204687827927554429944576247448751896800282781100629286869886625399631491074449174507203837138079002984403560622124648277403944609449896106332424315015685412187502673248939247406243232762395018028199983915331483862996597464630206348817025688823439700987205552140099260479976091306914688870224228933746574278037336707433896695889113064277019274323257210328096799530998057189251645734872678734911118211185041808254181549797916738236301607334660625242056521312951429652263028557640101880995276652326734133164725286797712627629177926831209823187984615924244993853332598497586831023666059934961653954195640578494341061449335096998229151586933199642732417560594458736443582662122636744264240354829876826807319442631837801109572910671731573209721262782189254529841602855866631438864573607388127667522132960386074861395910934957023209810208930394065933620759216313034944376269186799427038768104429552740400103461030510676012974563694434964240219431402974490785475313054661505262617109102221566474704127732968132676082102100564462207819533078827571147076964897179901524136483937830662884480584704317249638546602308588235126107279935121265733018577448685291745180700758583003971042951076910929683265882672331760752801567519885858482755255899823647990826171612757640696805294233440685557158005403838901349256847494786785685021120263421967275778905351703745648787128402924946021420262596858032667794224084558455400761785438095959323914779489062447751142015663085594015365245332951278738996807983964776738261356423438853207158501249378825961627964436849906399408514783903400179333713836577876861658787685718553059289074043633088809249504743191891605295086262259840672323253513081072571178033781349309289757121319019376164280869651062804723675069245670063008889717396221790326101825925644498068557493416946220393667952804271023895096390965099209922402882910273257850066634605355966520310677744491408980605892908379474845571844995633457682057670301189882947346489189726275303848843563933213966019816359203204109387533924426294735063883154794055636249294110206096309130583804107265181759035596284524229014130731719972015070431661484644838358444756529551646076226285256017086050479388705643218729789385968908395656924107302589505018529979217462259884139412712599197646867533607170633682560195025573909974137655113164861172964310704700630220153284612816178546553508431442007727551353572934706020159764939871928730234368501540667606309971270375022066186195013882278762406515675091175531033428758282715898773948102237502756582705659767737169458331050240630022147143367572267217934397093684333542051351799927498360577001546206596691856141318431196230000869897013746530465714401306845867092078570527607482578784825528429701484348447317245373440265481755907134923858609925023358373921191983266487781182352074997586273237650500256866083895203210318347554737876026975692846674763067911821804615522576306443968101630348464592557885913674166364158147614325271790733799418025547673683289583866993763919067392621820631405594981799454915961032263770623795698769587335466785538313968785294432211316670556921219161205726350108098790420652300238174375218266196992093668204963497312464068196317067775566545417319844561419296403903434830754599639171960158822842411027616061840621583815854232711004558945314013920182221313051346589413754573862304773506126360104131087810382887267041337935872701119156136836762548240277073694276008441167780465832541653287272074086281532336504464173307068418917009156074624313523359082110180889031820415253760338105139745748120088609209966573792528149078641494690087978535558827728481962630658065900054437086364753066574798686112119738576596362685732518500425164357507335359037912697226450857060994090314745809961586917949707540252204260588967589950436521410986570800727754730894644987018180574986373738493230978237501984501638569017624047655712348555077349444901021170223721913302686081836060956636197465927196607703864686255230569326463313259819854636565816093728675725169172820911753803036489350214823504492360482252556237464155924861319432623648557637601774897525275891078259087618366341275486524233697872888496924981911493876288155577650099495770140298294614163076397595725668175088953197150971775711227732801349639649360484462313364465582419526961891269772005759155059248967465029011444683878100595673138504868569409858555369620685447060999210690956728946761704104797481830678412536612568284142761510729159433440231315449408705931309058155962238839813027546792500058276768941930123039297681113015561203465762197699773125080972744796410163298357823599458217463039737412586808282728918684964042765449499073592391342421360562144436166658491241724096534494408104540355400006555099547911725449759871829118103305059817889406797430087848638748535586149604162851689830194182834864620551665108092179341274705593421098363354324542920263148752286167094578652259787251531325194535937048341784829439666304583320985966846200318684230184848487028972093391800615324391669072123596094665631154287268686840641770686755442447293881560364739654324208186355801353412645176198484381339687337657267720518813390885024661237326461946820053968549540478097164735502459845210518584331800224547083545378563793502934779893835084037606042266680344054936535281654795597602729784231529151098671634883892099366362836202689303608401877622770288725309566730625549490906218645400928507251752212191998363966737950152248818195534833388464868277578312658954876008745929030955786217369706365026467855431062100956723393121042435449068994540601293568197435498983854462160969782379010099983116135518838657527289477296479727340161924008857641803790709136754007850915263591736221151048200041400025382551131718149419741948470856735173338657018390490401275934697676798075865913359079231187711976653281849018834154198598677220937049814734438575825525399279083370550365830153889554476561343985615279052803211710805399554068049879262449505478765294849798162499900825684810493200276302961074340333975132774249642198455825251502681563117496575845954058061488527439004125807880815879098705955731539668780644670332757472140689153773149727161553247795133274849320960498480796882307127720620604971622355495215148893209222204397192146864578151418144733193996456899866344966198769004266850995963340657272962539459807136313434264958552135898467046095463855875827645921564591242510851313710996180105420598946099658824982267558335898426269477975918812341626280741907931862857745012251813591903895274805603705536141788011213500711906495617532838286187263469287585526466591191940539384517943378943905481505310683273644908227331426934857852511043164752918431708669380490350787374980431110995855504077178565575784453171339310533536569021146377455547687398080404106547781600635702059471126534522244720252470931375603379676150011137994063227943951804039677241747901427127206186442884309745285599605715066752515703930506785456753008963049695067091562043053854356288135514695138746853111663256719351724057940542457130106564892593466930031038040729291030447292862667985585494167007919085903427331942738092079048046846593706968599165422307150672259037095928186539195725674476076158710808788466753753499241614084296593038038580747286010376315732771654269835570687605812144814233525753523902728317791575085603697272878666255089915074349075439896437465990219581763704330781548545456160159802059527915461616191934218794491596952234728466817910143628478813966886475568651446091762953041539536847927932230088094110996989913739755700375845587138504752750527524485430227368489310920336635202902785491375208772350512011767885118812948882467373898355855379305479400409349453563881299228080875774335671931367489573842154714691493064438565926835427666867160823858071692479379813672208781616550016487249768714137275929810213277158741131754951278372544056101795080110789773838215618173661458206836520978978831393282900706778894904063777005378932238800460641375401669007671383088547837682041116073986637165963512656508523323631174785921479302109821844335776160230489976841821737117964195383376813343699437883817807696267959701037362190353966595705148380971853606509212594331505317050561319347405022863815683157653117818051323037320116782428589997504300783669921130375633934906328707279023086157487418293104034658237256095977235931954221035878573804501611203542625413831909114428739284237826383691888325717073317692228322694137185591257968493974763300791682919366335711772872126732183592974348623412624872689095229456020328876097137070045536173311226488073448442981881429764492197559425849949087016305413687975505913754089211741979233500070848406300589963766944606505075361942602816233817584765415659682525894139121141072083507426373785675121391160627434320326490538372093707265642017996249622682529093435115075735595304219173884675692986897507184950334694986088104523781185299386751494173694840123633425737219696315617700029487917630965569100275514862645011158456221360504559972133434917147955281563216508442933397069499413064086242948319833366761620660001469881796896633103341962037688183486574176657816409791755819891095706686323910543655286415050442688431534178372461418421132833135834089664856299828272935182552295373267087007322136953202104016951271781781343504882525123822866675065526631543679507392728167398627071904825589354746915749085101815298452596810828304666057184210916878377897649474531937109782999584554995616970730835670403891496523351330926176413515922148171961287308167073075382717119493280135749088204714549411511554075156344806408760449412937700056815007152652974632106590576817176862131652149910316714878059178853361950974619414909338375782394174452361049727435770665393863561296366410184306465526314482908038544359792737366730212665005360057792131878885712100060631235457485790277903728976195341285994828630263985372927955362019671516431040124891687481473182922757325537942897492886578632041887414550644788073541892782244719698376908795634853270315602906366102585255617353305550101286859008871496507233368897572379444808258485521613021265534517800275496599092832590175049836038480234292550022465794601219530218502018809801704964457917841865610068348001952103845596945075040394989825110689309724814212489472684469019065037908827225159466041222519996958877624909624772185263536447446473090096745365848148499033892783000941350160855858581964203352912726654006324683095361240753786312243115043912166469282914290032007413331774927562810530609939987412906197309686971850152211507610920211359691430026548712443317528717860716006768154645499363882321395954836192337693715840526021256398419150852799905821039213644614470058553278518659566201813078243313535177230686541418338811265150055634025769053663952511658366397199152308926198234703719046529956047829324440439790628398492510601783756111475578824930067154521471380458989783428718794424797835695761107978437159514669940768876259327471845648757678132247632261714921207080741859971976912150492962357468861355216281597384991652421131766609505976861491206286095239486957238100215264928339350949558474559571263141171602427900288478132586957098558673918337900361672249431952660927825172294718889687903864364678338659873327714940237683169682009317139094361247763349807825873851422243849859280559374372148903232921096807494348806888371468062312768354625957222816969855639582391498336033986023163890080418047711074246712731264618221335755097332595500693635356166633458398991691973780284395101284877916122936845291669507458542718279537868353316117498959832052485459464423779822758886071998059928621383021797626641516945502166826880211230758089224837729083122455966715823367609629439382677861951113458915340792960507516050841004630458313510452971726373933203864846144877944264337539974273368137424437443457514141141551046062848215740011951502601626543399591901814657968453908079461692071891300010064209269419891831818164247684192755281785359629699524666036576503999595503888928863277361645139857706880967308858323128907033331601382911469444179580142614851151928383907123385020264017405162727248477303611029428894064021053398518449532905782494737388311085011097131471365696084774796462865311710136469393877122818093353535787096814279015088657315602067881965195847373298890023648262803508833565059078276423007860867153514424173998032006875967529776228589968141616936833887071184022296853058299362126703765801842004943769016215151200030939799609878324443999225735765887799036555018051001156374481477135352986965386210316664122650722434115343602199088496352952598948455024016716695147336573709781905221745988286946866483285007273909159043803381003389187554687283929221164014424150849364147439854770817105241039298064179273762880664497735729711318704055156712853118052960952372378836148088539468191448904452839849959741148140569398089058368912899913060122313722998023148362317557328951382677258819247236385787293220552796618677383765088408174748818760158583252933312679354340594754715671245817826288447643721552202312054695081804789163840600472275612970912115566640869070055509635860214774163123690929019576051403600026424041484511018434124329012140068133161301508077171903680262643670326346923865024310081480463587407766693856681633237310922326001559617843592094832949675885584528194974947434029849550386420041359877899985847365917184684121183999284933323924291109261797298890422630048740885606329420048824314336413023169920154950781093853725526907092316697339115071190811694732782382735217229571079270579832316001673722221779631533869117678774337063680435087252315436893108908774152981278347673020023177509982526282079796406758906542186941869772722821280949821952449724454716678957234928064383619288557814961036164909822885101540212144906959326311827228975363195475395377274010918830468849055584935337538357199890162727334184961892750574481706034940986232132513912942664914300336973899053020956518314496904505730155219578193877884124496067206071687630209894256849068758576475281613780384268883034943122750464376820589966943039067436980101260213215355636167931006982877689121750251077303328816399253956028394955217573849849230107833670135452888300229477299721041530964142510930127275934952199242160328095103306924551223874156302649805111684184553006786995365543192079188104749987786165659077861935460752497042896050225812483512843242717975734380862369538598887514027277794057278656187250416500650868966399196051417635472167775325588012054145040442580477644694222059055981752777234978601205325743376254574210192396037603612355806313983810055256470155519915115452167018859555543354841772360169955671734824999541942850957131086297349111432044034000242390320002052663321639761594849688016876783863030801941354381310005617770360229202409629098217702501241645770843262643965741327645020518935578691120057426380544830458726563784629399306103340344740435775601924262335907966999846019003318353562044256374586465418905374748847220064760807788538477456729353187542531353611512565329368821318882274782353464694184598303605263018327799161010238078120028327914508466920184287047258618109776231634426974756371852114585118265541255016527630785491041965252544308270752299003015127295308304853284503527001689811409868269235553086725259526545379696514326895218898140548657956772336117060867153981935323565299846783461896010978559108392762493886460689463660389887850790108520276543879690493050906548167431948570197047945343453020491587657626146109643729663623408660404832983856216223740988943510089801786541210138611478669323403159005612095033678189453266208078472033720574962080492650609326274842511955029206238107299952312596907276349661752778579905614550992197641668446431305924472312790116239821497815727390211548269671933750679034181124467602197849309790013061969960576417009668886850582233815901435644528587706668276613452658310347271127200227395588252833736765650101813193363089773261914855613481222402243037728297944959217967646386698851940121262435633515971382180020293799341599263868374970669330768787942044415350205536598412502581722592772281467320894628718896607311479696281816256195743510001146167111995855531258024924824166529104328026828214307110513098267445505517903476746860690014034287404288482392899921684542273833975102203275975658250832291667175403948718976026046479498296449923038524554953376119450657752211486846863339015595339296292224906921654150390476260751187278005967126325370793957902996482571990986976369432921746559297232283655489146705519200410431910464449150831009780183174859944945631911244489783025866303250131945713450686862251670236593225191428256816195042157935108232617180447782076226195864124937317482251173220682754718726251926752715966178448131722895048824547108329259080944982130017081721088636558193382682768898632323629750944950933497389033288399135853127088941311754744939775741831757602904493558169601489880234534650152000065526959853959722343421811547609514996866410752964957848112943750788132510971467894470296346537999615624111618093550732528047779130342064981862514825413091478120075786352310260118398949045715471488604564591521574540298282577741547029219988968888588687925051091194313179204401986675295703760109496318539732945431993661643438816144631755631086036116523581904006964240759262860979058343963096774363004740137396394889483702535240443492957696214371493368340631262465611781021949321694275571435457364131613236437747034175563809392241434837387247757647358104228015498781543169515666932841699717693546720403698494977158816095545188370695170575382157944293323952658176452761219665267136231780245678391114218654187162907629595085689119743816861933595001930499827522078344732292261237182766779724037430605947408772256477687231841339333498767193770549114407693591110544860361208759392202158592062502567950914767271313807769618994448243034212017673449526663392980844639253209737904106191663976468000835796538429615231575168462306407219696527075736580761797014087409282556546026692372646078674737520470913783987661512701057608591179858059916379506236390695475774401196845595863843348224332085848960894353092782582894686322975456220992357956392819710174566243814286931419171912805296539528033566854173124803647297780822895530133177971096456760677357039306830496417187460353160397863061444305370852505687192037486165827956294321886467497159251145744252234064324883931510063212679516034863899656649603163005389478326878030648310947276401194236307379190994163418185883999201527987628980296779037396624309763470066612540649753751130083362558434179643351684712095375634018902144000534593046078065355787903758524287246889113605161771074844209254719737712810091960987308445043616328204355186565708312827427060027607504865369400172531836418737188330814830663793165525493955728251554877715497240280550399121098778439151259653917832458200889244842918884731759851762771558279119123498313766360909453374507717178032031544701974818355901738601727070415936878122213004119323045763978138849417507782734020828914373728995354228507774160907396007841780998977030451226807370457686462663098307267084532184168525394425695055840640376098038374189013263314165454231975177775736139255082793649188346327258890069487783753831210267028244048868576713816533366485818153006992396681814158564951744816865527552910787381029383411607554660554056358542676673480308703238699001292763217307391272070042436939213052299654543385470846826809933510840537340837719502095383095531736116278230172631752191053692922047817279903131020911544394824005940828864120950892601487534179368962939985131021086755662524421680052859339342307744931882217827952449428109740134568881573212448041794905996663621695279387277510081469805887168093861953875523847854830777597163723464168266677619340305565694285447268581398583590375900673246876429718864139282840889932676249647265045892147408872951979096808940439149665679480938312867820114567615742394912344750162895591747591535746616712051579182430998049854729731733642905304298124820034948778445914007578958055529423909184953440217060308510672948005325614996014399179723907841750511381312067200989524141061368291999561452821652850379586248413244706768034116640697338719321169156479325971934402795253722292028256354768123672232467420172057219696378019561321402189271202615992195116373682365099310920549227644660985915522030449285650996890235106729541699482198816315469331068397185378458593929556291394340134482063335731604836105101856522117758450189479913636382722366938198755011456268142192352794708532399180481111013229252701576263087036669971422651922762720688616198490709039735073527096975237256889276356083925398226111090688335824251480312176330801499510830892301158911099689253136231582416009622422527896707943160826461521969016028243373264084176348338924167859388272341658523359343998521765437081368658816765630204213986925672421838505140658229210772218670067444976112158153688822522824039553713699498419512838532212808761618156018748975072054633338746279269339300453018963420710392659553908293897303381218914564778032299248895898874053959325654046648238173663910124864776845128234203927057686528992703101967250062327968205215015334066954490253354214368661144233622066225413807372378123029232060188501657475920072907033240535707555551935029759690774371099056389496263696172207815144298323002830030536204407444248784158576930074038764826894482463376650574147373238919945203981182153853466898589231002295180654066620359429387491149285388091137207330356856848053458348362893050120473836934891496804843004936328934417006798370926034863522434533628497847495839437203373289941134406273520410741268121481864868096067421035687292674759549875649086088235936331947781423504491661946519384642779876624277427037854297363576344475042716847359584418924377099261509470370482298264822477519097018452910453754143631842634242112723997671782002877197747849153708174992448363499638355486179871134573561134603969465876540371685700524743085891702783592460340376555079726058982377748381788116634315610078463145328674747836608831798191264750632228634688366375417890685473735316548600534808455372805350286745469568460809770585065545713226039986481258663976265794998822097999071020460186449606764346844105743136457896665596713227591426437956030679440378626066354826808654944732424636432438953319513790614915922129754442851974046346855507222565979508071150507169519433059387842198608426151823286445737028648482492767622342230860591134289153462446624043036591135199243484499338334111977978316470900557852840527205623620209086368031667649149493216247743768642387604908032607707487953083039174233504545846199290297314352380535870748193847067709655898731962537145288738751093570981629188877318833688020029581238384443744316192949068211603852645922555116976605622270277938592490888210933763532482992116984034619791068179122219515788685806478281904420254444195585349893785589477544842537604813737209139271087961493296866086693873908820841383085020149929849136729213373028708467538762470389805193326245637255993056094320971988724592431895263969911293986553752957936292409908803943360919858528033171607598697914839812433858659183355030721728853711354181354911212232075121361040823296558125687539103056739122160168046006275611461429831405544522665397285454490851865835603969953827813081123938338046321149633867128677112740730224275683636870377538049126167506216338015348605199840028256461164883610785412769309684045944089394707577728702017012671278196972557187112439111407172922839666171637026826853217398899588058004883185328670375463471211609784785576044997515881236706610637397432425488029469798390560460389093988485281178753047041696164322349575955277274565641420611112988713600571602950224669179866626105745005310283895523411412403224582918434219076808491070091106520946552851981917445771213120535234680920860998341303496329525099718914532735589537862055818682941565071869821637843675120332030163479190117414607668362388181449467999352243070884278374173016659284001935840105567651290253462516996197802591718330974391104858098778977590906825542539850129765524167768291759841143529123022853214335924036436908201522471471702613364532562404763682572732201775645155498581646575036776483670228441505662348071750968528736795276487446387271658986314531061405263751315688713126049439761227136213500089931157765877710277026354707098694969545162689331279812644248424911609940896134890292979231904466308117467407142308384241225673180318572130245304821749778167635698785151392060591581662932672391396745509529106761688904541754997360261291767810034122493500503177200937615014910210709359442169642104598483982331176735842871018408437659236687370665855184297840818905998241259630267908892450398467293646275493271509909150381033198258801251783475146809621402417560077530932386381473040059955102715574125867590906400992200680974327447533937138469483466276123272823445007619252478324653944107392172225110123123693718408276705051455628515782919376811891387362949021946626352176546659820893722901900063823704451068736533495964247929356452618136170698552761403598304520058798838076633513569898319664764039761275802766295401128591624080061841417676880153817859116364684230550167177769611388918028284175618679986421594185170063492373363365043346179871710542979892107380583172932562471429208613371238663313520450878023298263674112476549992278945962912848628931973970041887791103370929611656253396861524673377893375746658118889885220904264763056698101143629647501616394818824780323428425631408191696746289954263917528740587907344886615949273137240698177927444889894612822116311054566863336413485400330885063096705933085728122959129618845396277720792163303640188835316113386234988523394839082882858887969326317995342933078616025366654043047346954804934392233991179076291652684023308569409727955703544130463311714876027150552480124644848425788980929265346244284489333073480443836902100755502707656258078218580483042532655005622112652280339199393230261931243711298305328220156711411416611395070531984459688243626821499828684155189462753087585831834604284001245235859162304062082437287919141645607551142235085107887082526504415726125058102783776397027327499431014855125187057618700661540369309955013416182890317722881210994652868593164941436970720846943846862409282982797467699288069844464136415047419426138897943077483461900896710176531115989131404919828178139907649059259553799541528066085251941497794086338761070233345959032783542215924530189194532670187805367243987615962604064980846305801106793965661356193707861823619686679351185444749271424939013875331307575525206363417557145146578658305830403432463929756258665194664920224945019869952836215248886715396775767304266728079782544981579585788778072062161072689482111511099772953330069352794442151298730375149600259248777650358938644527610557739987255990411742301314304769604310747178782185800734934992930233865352648775662377778113457433624070453932945009297359865728250730258369927313714115368935441321115560241181686051494384469406010795744797066214735551505327952324828145801896904681677012902350469150839363468562501446878201585672854092113655799394367150741401834183156766953102691415280697390147986794172010498018284919061337427473337363813364022559178957127939373798613752719155616702515559288839802392673090727776495051776250315299042561627041034433748787586197023964486160315455230468948546964016770275990285130522875929917481815426439329729525465531176633774923080779279769784160776660701108421980346757388687808242205075415710916369940481512713763455180194735547700432081802336343723698196913444720684626604722899524001921312515454551900056597508601459758246622289227949964342097896847977757855332027649635522346224664289435232497821891075695139050887826341542192502584838724534218808002675911462651377894226509916081086984449657579884879792516463052335844752388447263005937282908204814215217539120759264709068725552233711646144041294484913018693164530375505699858861953856446168649940634443824858338346558075580481715234660398110369444799759697107902183442584028270366719254761069891338715266043979743846849457092342474783506412528855905188433062664956560805076596823857045465723263849495221141106425497159204336854683069602820503060486901787038039183433746891650911941860091440375996731282641800087513352063431504270173506882817835114826819487963779853799206615481147222108659353816353346553305710372639343896802507551070727642981545288557630440254691799466109418122377889566782433110570944425327571635780403555371094148557276637889709463748398788409186586633060847832996530377680529336120011696032467403692000185263957941037043732557239435849730100781243476663012145498860025942987935962184724197668097976900243262029254071154955996409571861654327059930060312506016525143249246914757487434137520471013861050110295916918958073193605400779542273051151155433537349806827379236566830674893360809616544464741453497586619952888111466645238348400514829600752490556377621684764923895967952096037930585347617855660413760482398816359380372334188879232860988147284029967930183120545320381286246128650450157118549069199884852432548398084103976890418527763188617287940266329022035947587935712824690041145382654584259706838537004498517861061678614128769133094270523577372946155634996048686775945341425412623194205487108732336213676831524202301614032872477771468045230708740291306791952345452878120386267529347579429348861576553029617771987340032665106917808424506851955243500689745582569773859982293361142475794726650449370374082783951399546867527118309683024766131307915527237851564591239642776609956479059886973059202399294923782479348871886743768691996721635465079683848630305176762269581145468413617118500686595250919146739853981718800134738687365230480574569326053965129164112183983184138930474234108304618349561248005025805822535335008441096771611919943094374369632583848780865544450046211993743859457122014679466106804420685641061462754421641033778010871102871139942520887493735338890406166775693847471406225034407717074804951536174912984860452603029743934583191148282664737323284870368826938593480157862322093866959678987211894234254066192638254209907720097001623899628735296386856699879210792011634926905171049108132398936775780873686522218678286922377258684083587638939686133046927103998118036506318257222434536913480724691680873574666392559624183814667113673004565258519222523999686838037723332142883653464000494692779369992815127717698592350296205870345498227310600122786689000576988565106459890761593070136580814226122473186517478140411062613453556887303688825233113500825385509652710167293506819802325413498150588221540459549580076467079691261064157029177977573417493683603430313722053797645810669462050364844650158626189402586959945343602904138198142565577468572047147382316632227431814778163228983652089555646743102224742192771157716160079972205486582287554333987852972243270943885571098117250920529472418658964046072315108403432098058656554293609645251258943932155389087868491178883267074892004446448104859521113441443423477117042189784924629816915451734140041380169075565886106114386210759953726421115975100934526642756153713617809784568889936720407861914072571693415084007895475304276616488528497647075090788293471100010935132571625548243662136455702547720913097738372001489013692152261932347185905702984079376639118840666243253214461314033789819097532009352272654679971111784524732807967766881068507015684857864052288850235999953669254329418993876441179577182475557528500106215505178890588661027179459478464096982395058302056154955091887253839231715163298611168441924236460793707342574342277921885819625267922525539602830129231389097250079013460910925105161691431104575863415259724464993702152833349993302589318299097532333460722543287446945300391963380109131750823968647143782655658587420197276569692361591760365058501249039372252231382442987103518482971622133704113624955725534101243129431687298674465023626635228140599761383256706572743634102162550938138028967258058803581995403545172521218042393664856874515817316136814507537924397468410352410300403602007736074111117530166043295374930413786948699914458383150858952170191236234681292497442728434555954476327781860332204201183389213555891647858826035557535414317291881657636544530088373235741271951573588418553495848400616275460852778010404584098258474439189042916713924693241980552420641520265187275129742981851017368167628118540681827911971655093168311792172955702000488875991370621791873411250808991043039635086004278186420195981557747754097268167771909147076757273030127853061395207239738267811441267042428775170250046507489107835023409869006308308466262337589883399058177816334559256554704198224851336915789945372307910580153164787785769852811632381555076530650068301202903418033540343650317570317508267047542748565797091859603091374736698683337086371318496097139612401828051028228927632447077866107549178542528811687954049990195731551215486266737993287196587674630934277660552532590649263220928193538575882746211612329884354535181710144185598901787711871851245501823423402958221022063616542523645947592362556559326809895320705773900129824398889657041388973916537314860020561278087291968165328255909465745858441139819374297702307594440287397002987402237016731859398597465654035279122417976628403759207336065107494756710820363712506480692837175117841368322959433682849984179117932465414588371108098759370971193431194120574800963000557659312548700459979025963757388744450390047144220314484855163014777142198519228609546330274912524365266327648861558422713221945139406482704304075121330979431877619475769366567286619695767847781458346875490248130154521101658297474498060878885602084799428376230223854147201072869500446779521849082645888912185812791039869514121913208208170667280514866816051959368382425563230841451436828819942717099726070218755254769426315662566641273465365533413223882419544233672809478317609226430108872786359861704631939828075283626202131738002428957532871252495812822589206208171928885585339895165603195250204674084417502132587975806317730934400590384555338327860949453899320279071225306870645558462047847465622263094024238971098445489194920334545575942935947225340381351392232552434140846725441524958455850710662144713687165924419782049746810196351090268009503035185540087201696821007615065550482675840761479396514125113748960379137822739351691231815938005196054118840941340697220762727547247499927876962898323405744180373461760369344194978871331076536681433499062059089932432328099395471316325857753128379713691289508801676175704147008042074153273823072634929210824560532316804166982796486829263732471537499686320213286659365216676062419884249571925466239172072255463033065454780561103729484860551973188427394651965249325175099328174149770000717241669377904053527662363859332525701786531458617126885843812600450196685464634829951940367555854095855831749638333219265461252895717719787630741339613331195085659489191261521813673355247749279376136179452767471951458863601591325642713086490494165754750130264028510593140197469085602947086631627154925039633027619058605676260697890032179777174070102198952818735345224349180117781011215762000182368976063409171434447810048219278284197055320526037503806002745044899764486285372883537336866776817602633432919207868051065809227756866048894735106107392286558185412815949343790080488597441182702623921877434559420009239875426880618330276362387